Name: series-workflowtmjmm Phase: Failed StartedAt: 2026-09-03 18:16:43 +0000 UTC FinishedAt: 2026-09-03 18:48:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmjmm[0] Phase: Succeeded StartedAt: 2026-09-03 18:16:43 +0000 UTC FinishedAt: 2026-09-03 18:48:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmjmm[0].run-triage Phase: Succeeded StartedAt: 2026-09-03 18:16:43 +0000 UTC FinishedAt: 2026-09-03 18:48:36 +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+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAxODo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1xuaW5kZXggODk0OTBmNjg3YTljNi4uOTNjNjJkM2YzZTViZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG5AQCAtMzExLDEyICYjNDM7MzExLDE1IEBAIHNhbXBsZV9yZXN0b3JlX2dldChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgdTMyIG9ial9pZCxcbiBzdGF0aWMgdm9pZFxuIHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxuIHtcbiYjNDM7XHRib29sIGxhc3Q7XG4mIzQzO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4tXHRpZiAoLS1yZXN0b3JlLVx1MDAzZWNvdW50ID09IDApXG4mIzQzO1x0bGFzdCA9IC0tcmVzdG9yZS1cdTAwM2Vjb3VudCA9PSAwO1xuJiM0MztcdGlmIChsYXN0KVxuIFx0XHRoYXNoX2RlbChcdTAwMjZyZXN0b3JlLVx1MDAzZWhsaXN0KTtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gXG4tXHRpZiAoIXJlc3RvcmUtXHUwMDNlY291bnQpIHtcbiYjNDM7XHRpZiAobGFzdCkge1xuIFx0XHRtbHg1X2RlbF9mbG93X3J1bGVzKHJlc3RvcmUtXHUwMDNlcnVsZSk7XG4gXHRcdG1seDVfbW9kaWZ5X2hlYWRlcl9kZWFsbG9jKHRjX3BzYW1wbGUtXHUwMDNlZXN3LVx1MDAzZWRldiwgcmVzdG9yZS1cdTAwM2Vtb2RpZnlfaGRyKTtcbiBcdFx0a2ZyZWUocmVzdG9yZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jCmluZGV4IDg5NDkwZjY4N2E5YzYuLjkzYzYyZDNmM2U1YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMKQEAgLTMxMSwxMiAmIzQzOzMxMSwxNSBAQCBzYW1wbGVfcmVzdG9yZV9nZXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHUzMiBvYmpfaWQsCiBzdGF0aWMgdm9pZAogc2FtcGxlX3Jlc3RvcmVfcHV0KHN0cnVjdCBtbHg1ZV90Y19wc2FtcGxlICp0Y19wc2FtcGxlLCBzdHJ1Y3QgbWx4NWVfc2FtcGxlX3Jlc3RvcmUgKnJlc3RvcmUpCiB7CiYjNDM7CWJvb2wgbGFzdDsKJiM0MzsKIAltdXRleF9sb2NrKCZhbXA7dGNfcHNhbXBsZS0mZ3Q7cmVzdG9yZV9sb2NrKTsKLQlpZiAoLS1yZXN0b3JlLSZndDtjb3VudCA9PSAwKQomIzQzOwlsYXN0ID0gLS1yZXN0b3JlLSZndDtjb3VudCA9PSAwOwomIzQzOwlpZiAobGFzdCkKIAkJaGFzaF9kZWwoJmFtcDtyZXN0b3JlLSZndDtobGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZhbXA7dGNfcHNhbXBsZS0mZ3Q7cmVzdG9yZV9sb2NrKTsKIAotCWlmICghcmVzdG9yZS0mZ3Q7Y291bnQpIHsKJiM0MzsJaWYgKGxhc3QpIHsKIAkJbWx4NV9kZWxfZmxvd19ydWxlcyhyZXN0b3JlLSZndDtydWxlKTsKIAkJbWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS0mZ3Q7ZXN3LSZndDtkZXYsIHJlc3RvcmUtJmd0O21vZGlmeV9oZHIpOwogCQlrZnJlZShyZXN0b3JlKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0OAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDY4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBwYXRjaCBsb29rcyBzdHJhaWdodGZvcndhcmQgZW5vdWdoIOKAkyBpdCYjMzk7cyBhIHNtYWxsIGNoYW5nZSBpbiB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHRyYWZmaWMgY29udHJvbCAodGMpIHNhbXBsaW5nIHNlY3Rpb24gKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNgKS4gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgc2FtcGxlX3Jlc3RvcmVfcHV0YCBmdW5jdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhleSYjMzk7dmUganVzdCByZWZpbmVkIHRoZSBsb2dpYyBhcm91bmQgcmVsZWFzaW5nIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSBgcmVzdG9yZWAgc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgd2hlbiB0aGUgYHJlc3RvcmUtJmd0O2NvdW50YCBoaXRzIHplcm8uIFRoZXkmIzM5O3ZlIGFkZGVkIGEgYGxhc3RgIHZhcmlhYmxlIGZvciBjbGFyaXR5IGFuZCBtZXJnZWQgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGEgYml0LCB3aGljaCBpcyBnb29kLgoKTXkgaW1tZWRpYXRlIGNvbmNlcm4sIHRob3VnaCwgaXMgd2hldGhlciB0aGlzIGRyaXZlciBpcyBldmVuICpmdXp6YWJsZSogaW4gb3VyIGN1cnJlbnQgc2V0dXAuIFdlJiMzOTtyZSBydW5uaW5nIHRocm91Z2ggdGhlIGNoZWNrbGlzdC4gRmlyc3QsIHRoZSBsb2NhdGlvbiBjb25maXJtcyBpdCYjMzk7cyB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCB0aGF0IHRyaWdnZXJzIGEgcmVkIGZsYWcuIFdlIGtub3cgZnJvbSB0aGUgcnVsZXMgdGhhdCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHN5emthbGxlciBlbnZpcm9ubWVudHMgYXJlIGEgcHJvYmxlbS4gVGhpcyBpcyBhIE1lbGxhbm94IE5JQyBkcml2ZXIgKENvbm5lY3RYLTQsIENvbm5lY3RYLTUsIENvbm5lY3RYLTYsIGV0Yy4pLCBhbmQgdGhvc2UgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoQVNJQy9QQ0llIGNhcmQpLiBUaGUgcnVsZXMgZXhwbGljaXRseSBsaXN0IE1lbGxhbm94IGFtb25nIHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IOKAkyBzbywgKmxpa2VseSogYSBuby1nby4KCkhvd2V2ZXIsIEkmIzM5O20gbm90IGdvaW5nIHRvIGp1bXAgdG8gY29uY2x1c2lvbnMgKmp1c3QqIHlldC4gSXQmIzM5O3MgY3J1Y2lhbCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5OiBkb2VzIHRoZSBtbHg1IGRyaXZlciBoYXZlIGFueSBzb3J0IG9mIG1vY2sgb3IgdmlydHVhbCBuZXRkZXYgc3VwcG9ydD8gV2UmIzM5O3ZlIHNlZW4gc29tZSBOSUMgZHJpdmVycyBwcm92aWRlIHRoYXQg4oCTIGEgd2F5IHRvIHRlc3Qgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQuIEkgbmVlZCB0byB1c2UgZ3JlcHBlciBvciByZWFkLWZpbGUgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBldmlkZW5jZSBvZiBzdWNoIGEgdGhpbmcuIElmIGl0JiMzOTtzICpzdHJpY3RseSogcGh5c2ljYWwgaGFyZHdhcmUsIHRoZW4gdGhlIFdvcnRoRnV6emluZyBmbGFnIGlzIHNldCB0byBmYWxzZSwgYW5kIHdlIGNhbiBtb3ZlIG9uLiBCdXQsIGlmIHRoZXJlIGlzIGEgdmlydHVhbCBpbnRlcmZhY2UsIHRoYXQgY2hhbmdlcyB0aGUgY2FsY3VsYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01MWDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMjkzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9MTQ9bWx4NV9jb3JlLXkgOj1cdG1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSAmIzQzOz0gZW4vcnF0Lm8gZW4vdGlyLm8gZW4vcnNzLm8gZW4vcnhfcmVzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNy1cdFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMzctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICAmIzQzOz0gZW5fYXJmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICYjNDM7PSBlbl9mc19ldGh0b29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgJiM0Mzs9IGVuX2RjYm5sLm8gZW4vcG9ydF9idWZmZXIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQxLW1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGVuL2h2X3ZoY2Ffc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICAmIzQzOz0gbGFnL21wLm8gbGFnL3BvcnRfc2VsLm8gbGliL2dlbmV2ZS5vIGxpYi9wb3J0X3R1bi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDMtXHRcdFx0XHRcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXHRcdFx0XHRcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXHRcdFx0XHRcdGxpYi9mc19jaGFpbnMubyBlbi90Y190dW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgJiM0Mzs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cdFx0XHRcdFx0ZW4vdGMvYWN0L2FjY2VwdC5vIGVuL3RjL2FjdC9tYXJrLm8gZW4vdGMvYWN0L2dvdG8ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MTppZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTYyLVx0bWx4NV9jb3JlLXlcdFx0XHQgICAgICYjNDM7PSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBlbi90Yy9jdF9mc19zbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfaG1mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgJiM0Mzs9IGVuL3RjL3NhbXBsZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICYjNDM7PSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXHRcdFx0XHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2FjbC9oZWxwZXIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVx0XHRcdFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MDppZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2lwc2VjX2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Mi1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgJiM0Mzs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cdFx0XHRcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04Nz1tbHg1X2NvcmUtJChDT05GSUdfSFdNT04pICAgICAgICAgICYjNDM7PSBod21vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTVBGUykgICAgICAmIzQzOz0gbGliL21wZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg5LWlmbmVxICgkKENPTkZJR19WWExBTiksKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT05Mz1tbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICYjNDM7PSBsaWIvaHYubyBsaWIvaHZfdmhjYS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSAmIzQzOz0gaXBvaWIvaXBvaWIubyBpcG9pYi9ldGh0b29sLm8gaXBvaWIvaXBvaWJfdmxhbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwMi0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICYjNDM7PSBmcGdhL2NtZC5vIGZwZ2EvY29yZS5vIGZwZ2EvY29ubi5vIGZwZ2Evc2RrLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01BQ1NFQykgJiM0Mzs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cdFx0XHRcdCAgICAgIGVuX2FjY2VsL21hY3NlY19zdGF0cy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgJiM0Mzs9IGVuX2FjY2VsL2lwc2VjLm8gZW5fYWNjZWwvaXBzZWNfcnh0eC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA5LVx0XHRcdFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExMjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9UTFMpICYjNDM7PSBlbl9hY2NlbC9rdGxzX3N0YXRzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTMtXHRcdFx0XHQgICBlbl9hY2NlbC9mc190Y3AubyBlbl9hY2NlbC9rdGxzLm8gZW5fYWNjZWwva3Rsc190eHJ4Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9QU1ApICYjNDM7PSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEyMTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgJiM0Mzs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cdFx0XHRcdFx0c3RlZXJpbmcvc3dzL2RyX3RhYmxlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9od3MvY21kLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9jb250ZXh0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0YpICYjNDM7PSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0ZfTUFOQUdFUikgJiM0Mzs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xNzg9bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSAmIzQzOz0gbGliL3N0Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTgwOm9iai0kKENPTkZJR19NTFg1X0RQTEwpICYjNDM7PSBtbHg1X2RwbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE4MS1tbHg1X2RwbGwteSA6PVx0ZHBsbC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTQzPXN0YXRpYyBib29sIGlzX2V0aF9yZXBfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjQ1Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0VTV0lUQ0gpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTQ2LVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTU3PWJvb2wgbWx4NV9ldGhfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjU5Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0NPUkVfRU4pKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTYwLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTEwOT1ib29sIG1seDVfdm5ldF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xMTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjExMTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9WRFBBX05FVCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTEyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE0Mj1zdGF0aWMgYm9vbCBpc19pYl9yZXBfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTQzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxNDQ6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTQ1LVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE1OT1zdGF0aWMgYm9vbCBpc19tcF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjE2MTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNjItXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MTc5PWJvb2wgbWx4NV9yZG1hX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6MTgxOlx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4Mi1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0yMDc9c3RhdGljIGJvb2wgaXNfZHBsbF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0yMDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjIwOTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9EUExMKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0yMTAtXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTM2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIG1seDVfZGV2bGlua19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjM2OTojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy0zNzAtXHQuZXN3aXRjaF9tb2RlX3NldCA9IG1seDVfZGV2bGlua19lc3dpdGNoX21vZGVfc2V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtMzg3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozODg6I2lmZGVmIENPTkZJR19NTFg1X1NGX01BTkFHRVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtMzg5LVx0LnBvcnRfbmV3ID0gbWx4NV9kZXZsaW5rX3NmX3BvcnRfbmV3LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9NDYyPXN0YXRpYyBpbnQgbWx4NV9kZXZsaW5rX2VuYWJsZV9yb2NlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjQ4MjojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODMtc3RhdGljIGludCBtbHg1X2RldmxpbmtfbGFyZ2VfZ3JvdXBfbnVtX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYz01ODA9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIG1seDVfZGV2bGlua19wYXJhbXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTU4Mi1cdFx0XHQgICAgICBOVUxMLCBOVUxMLCBtbHg1X2RldmxpbmtfZW5hYmxlX3JvY2VfdmFsaWRhdGUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo1ODM6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtNTg0LVx0REVWTElOS19QQVJBTV9EUklWRVIoTUxYNV9ERVZMSU5LX1BBUkFNX0lEX0VTV19MQVJHRV9HUk9VUF9OVU0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYz01OTY9c3RhdGljIHZvaWQgbWx4NV9kZXZsaW5rX3NldF9wYXJhbXNfaW5pdF92YWx1ZXMoc3RydWN0IGRldmxpbmsgKmRldmxpbmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjYwNjojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDctXHR2YWx1ZS52dTMyID0gRVNXX09GRkxPQURTX0RFRkFVTFRfTlVNX0dST1VQUztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTc5NT1zdGF0aWMgaW50IG1seDVfZGV2bGlua19yZG1hX3BhcmFtc19yZWdpc3RlcihzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6ODAxOlx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MDItXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9ODE2PXN0YXRpYyB2b2lkIG1seDVfZGV2bGlua19yZG1hX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo4MTg6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgxOS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg6MTA6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaD0yMT1pbnQgbWx4NV9jbWRfcGZfZGlzYWJsZV9oY2Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHZwb3J0X251bSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaDoyMzojZWxzZSAgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oPTI4PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1X2VjX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikge31cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oOjMwOiNlbmRpZiAvKiBDT05GSUdfTUxYNV9FU1dJVENIICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTMxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oPTkwNT1zdHJ1Y3QgbWx4NWVfcHJpdiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTExOiNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEyLVx0c3RydWN0IG1seDVlX2RjYnhfZHAgICAgICAgZGNieF9kcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NTctXHRzdHJ1Y3QgdWRwX3R1bm5lbF9uaWNfaW5mbyBuaWNfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjk1ODojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk1OS1cdHN0cnVjdCBtbHg1ZV9kY2J4ICAgICAgICAgIGRjYng7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTYzLVx0dm9pZCAgICAgICAgICAgICAgICAgICAgICAqcHByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NjQ6I2lmZGVmIENPTkZJR19NTFg1X01BQ1NFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY1LVx0c3RydWN0IG1seDVlX21hY3NlYyAgICAgICAqbWFjc2VjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY2LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTY3OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY4LVx0c3RydWN0IG1seDVlX2lwc2VjICAgICAgICAqaXBzZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjktI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NzA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcxLVx0c3RydWN0IG1seDVlX3BzcCAgICAgICAgICAqcHNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcyLSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTczOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9UTFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk3NC1cdHN0cnVjdCBtbHg1ZV90bHMgICAgICAgICAgKnRscztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD0xMjk5PWludCBtbHg1ZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6MTMwMDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtMTMwMS1pbnQgbWx4NWVfc2V0X3ZmX21hYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdmYsIHU4ICptYWMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9kY2JubC5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZGNibmwuaDo3OiNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2RjYm5sLmgtOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD03OD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04NC1cdE1MWDVFX0ZTX1RUX0FOWV9GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6ODU6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtODYtXHRNTFg1RV9BQ0NFTF9GU19UQ1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgJiM0MzsgMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6ODg6I2lmZGVmIENPTkZJR19NTFg1X0VOX0FSRlNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg5LVx0TUxYNUVfQVJGU19GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTAtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDo5MTojaWYgZGVmaW5lZChDT05GSUdfTUxYNV9FTl9JUFNFQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTkyLVx0TUxYNUVfQUNDRUxfRlNfRVNQX0ZUX0xFVkVMID0gTUxYNUVfSU5ORVJfVFRDX0ZUX0xFVkVMICYjNDM7IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTctI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDo5ODojaWYgZGVmaW5lZChDT05GSUdfTUxYNV9FTl9QU1ApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC05OS1cdE1MWDVFX0FDQ0VMX0ZTX1BTUF9GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTEwNj1zdHJ1Y3QgbWx4NWVfcnhfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTA4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9BUkZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xMDktc3RydWN0IG1seDVlX2FyZnNfdGFibGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTEyNT1zdGF0aWMgaW5saW5lIGludCBtbHg1ZV9hcmZzX2Rpc2FibGUoc3RydWN0IG1seDVlX2Zsb3dfc3RlZXJpbmcgKmZzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjEyOTojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xMzAtc3RydWN0IG1seDVlX2FjY2VsX2ZzX3RjcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xNzA9c3RhdGljIGlubGluZSBib29sIG1seDVlX2ZzX2hhc19hcmZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTcyOlx0cmV0dXJuIElTX0VOQUJMRUQoQ09ORklHX01MWDVfRU5fQVJGUykgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzMtXHRcdG5ldGRldi1cdTAwM2Vod19mZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9OVFVQTEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTc2PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9mc193YW50X2FyZnMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxNzg6XHRyZXR1cm4gSVNfRU5BQkxFRChDT05GSUdfTUxYNV9FTl9BUkZTKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3OS1cdFx0bmV0ZGV2LVx1MDAzZWZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX05UVVBMRTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxODI6I2lmZGVmIENPTkZJR19NTFg1X0VOX1JYTkZDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODMtc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKm1seDVlX2ZzX2dldF9ldGh0b29sKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTg2PXZvaWQgbWx4NWVfZnNfc2V0X3R0YyhzdHJ1Y3QgbWx4NWVfZmxvd19zdGVlcmluZyAqZnMsIHN0cnVjdCBtbHg1X3R0Y190YWJsZSAqdHRjLCBib29sIGlubmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4NzojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTg4LXN0cnVjdCBtbHg1ZV9hcmZzX3RhYmxlcyAqbWx4NWVfZnNfZ2V0X2FyZnMoc3RydWN0IG1seDVlX2Zsb3dfc3RlZXJpbmcgKmZzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xOTY9dm9pZCBtbHg1ZV9mc19zZXRfdWRwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVlX2ZzX3VkcCAqdWRwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE5NzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xOTgtc3RydWN0IG1seDVlX2FjY2VsX2ZzX3RjcCAqbWx4NWVfZnNfZ2V0X2FjY2VsX3RjcChzdHJ1Y3QgbWx4NWVfZmxvd19zdGVlcmluZyAqZnMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmg9OD1zdHJ1Y3QgbWx4NWVfZXRodG9vbF9zdGVlcmluZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmg6OTojaWZkZWYgQ09ORklHX01MWDVfRU5fUlhORkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmgtMTAtaW50IG1seDVlX2V0aHRvb2xfYWxsb2Moc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKipldGh0b29sKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjk6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQlJJREdFKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTEyPXZvaWQgbWx4NWVfcmVwX2JyaWRnZV9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjE0OiNlbHNlIC8qIENPTkZJR19NTFg1X0JSSURHRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTE3PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9yZXBfYnJpZGdlX2NsZWFudXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaDoxOTojZW5kaWYgLyogQ09ORklHX01MWDVfQlJJREdFICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oOjEwOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oPTI0PXZvaWQgbWx4NWVfcmVwX3F1ZXVlX25laWdoX3N0YXRzX3dvcmsoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oOjI2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0yNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg9MzE9bWx4NWVfcmVwX25laWdoX2NsZWFudXAoc3RydWN0IG1seDVlX3JlcF9wcml2ICpycHJpdikge31cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDozMzojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz03MDA9dm9pZCBtbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy03MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6NzMyOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTczMy1cdGlmICghKHR1bm5lbF9pZCBcdTAwM2VcdTAwM2UgRVNXX1RVTl9PUFRTX0JJVFMpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oOjExOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oPTM5PXZvaWQgbWx4NWVfcmVwX3RjX3JlY2VpdmUoc3RydWN0IG1seDVfY3FlNjQgKmNxZSwgc3RydWN0IG1seDVlX3JxICpycSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg6NDI6I2Vsc2UgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaD02OD1tbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC03MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaDo3MTojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM9MTMyPXZvaWQgbWx4NWVfc2VscV9jYW5jZWwoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE0MDojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTQxLXN0YXRpYyBpbnQgbWx4NWVfZ2V0X2RzY3BfdXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYz0xNTQ9c3RhdGljIGludCBtbHg1ZV9nZXRfdXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTE1NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE1NjojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTU3LVx0aWYgKFJFQURfT05DRShwcml2LVx1MDAzZWRjYnhfZHAudHJ1c3Rfc3RhdGUpID09IE1MWDVfUVBUU19UUlVTVF9EU0NQKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oPTM5PXN0cnVjdCBtbHg1X2N0X2ZzX29wcyAqbWx4NV9jdF9mc19kbWZzX29wc19nZXQodm9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oOjQxOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmgtNDItc3RydWN0IG1seDVfY3RfZnNfb3BzICptbHg1X2N0X2ZzX3NtZnNfb3BzX2dldCh2b2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaD00NT1tbHg1X2N0X2ZzX3NtZnNfb3BzX2dldCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTQ4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oOjQ5OiNlbmRpZiAvKiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmgtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9IV19TVEVFUklORylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTUyLXN0cnVjdCBtbHg1X2N0X2ZzX29wcyAqbWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NTU9bWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oPTEyPWVudW0gbWx4NWVfdGNfaW50X3BvcnRfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaDoxNzojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtMTgtYm9vbCBtbHg1ZV90Y19pbnRfcG9ydF9zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD00Mj1pbnQgbWx4NWVfdGNfaW50X3BvcnRfZ2V0X2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1ZV90Y19pbnRfcG9ydCAqaW50X3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0Lmg6NDM6I2Vsc2UgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtNDQtc3RhdGljIGlubGluZSB1MzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD02Mj1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfdGNfaW50X3BvcnRfY2xlYW51cF9yZXBfcngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC02My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjY0OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC02NS0jZW5kaWYgLyogX19NTFg1X0VOX1RDX0lOVF9QT1JUX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTcyPW1seDVlX3RjX21ldGVyX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6NzU6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg9Nzc9aW50IG1seDVlX2Zsb3dfbWV0ZXJfZ2V0X2Jhc2VfaWQoc3RydWN0IG1seDVlX2Zsb3dfbWV0ZXJfaGFuZGxlICptZXRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oOjc5OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTgyPW1seDVlX2Zsb3dfbWV0ZXJfZ2V0X2Jhc2VfaWQoc3RydWN0IG1seDVlX2Zsb3dfbWV0ZXJfaGFuZGxlICptZXRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaDo4NjojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaD0xNz1lbnVtIG1seDVlX3Bvc3RfbWV0ZXJfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg6MjI6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaD00ND1tbHg1ZV9wb3N0X21ldGVyX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBzdHJ1Y3QgbWx4NWVfcG9zdF9tZXRlcl9wcml2ICpwb3N0X21ldGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjQ2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtNDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTEzPXN0cnVjdCBtbHg1ZV9zYW1wbGVfYXR0ciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX1NBTVBMRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaC0yMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg9NDA9bWx4NWVfdGNfc2FtcGxlX2NsZWFudXAoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjQyOiNlbHNlIC8qIENPTkZJR19NTFg1X1RDX1NBTVBMRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaD02Mz1tbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg6NjU6I2VuZGlmIC8qIENPTkZJR19NTFg1X1RDX1NBTVBMRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTY2LSNlbmRpZiAvKiBfX01MWDVfRU5fVENfU0FNUExFX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTI1PXN0cnVjdCBtbHg1X2N0X2F0dHIge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0Lmg6OTQ6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfVENfQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaC05NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaD0xMzI9Ym9vbCBtbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGZsb3dfcnVsZSAqZmxvd19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTEzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjEzNDojZWxzZSAvKiBDT05GSUdfTUxYNV9UQ19DVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMTM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTIwOT1tbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaC0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaDoyMTU6I2VuZGlmIC8qICFJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMjE2LSNlbmRpZiAvKiBfX01MWDVfRU5fVENfQ1RfSF9fICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjE0OiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oPTExOD1ib29sIG1seDVlX3RjX3R1bl9lbmNhcF9pbmZvX2VxdWFsX29wdGlvbnMoc3RydWN0IG1seDVlX2VuY2FwX2tleSAqYSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTIwLVx0XHRcdFx0XHQgICB1MzIgdHVuX3R5cGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjEyMTojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEyMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTY1PWVudW0gbWx4NWVfaWNvc3Ffd3FlX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtNjctXHRNTFg1RV9JQ09TUV9XUUVfVU1SX1JYLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDo2ODojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTY5LVx0TUxYNUVfSUNPU1FfV1FFX1VNUl9UTFMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0xNzc9c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTE4Mi1cdHU4IG51bV9maWZvX3BrdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oOjE4MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTE4NC1cdHN0cnVjdCBwYWdlICpyZXN5bmNfZHVtcF9mcmFnX3BhZ2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0yNDA9c3RydWN0IG1seDVlX2ljb3NxX3dxZV9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTI0OS1cdFx0c3RydWN0IG1seDVlX3NoYW1wb191bXIgc2hhbXBvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoyNTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0yNTEtXHRcdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTAzPXN0cnVjdCBtbHg1ZV9hY2NlbF90eF9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTA1LVx0c3RydWN0IG1seDVlX2FjY2VsX3R4X3Rsc19zdGF0ZSB0bHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDYtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDc6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDgtXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfaXBzZWNfc3RhdGUgaXBzZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDktI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTExLVx0c3RydWN0IG1seDVlX2FjY2VsX3R4X3BzcF9zdGF0ZSBwc3Bfc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTE1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9hY2NlbF90eF9iZWdpbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTExOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTIxLVx0LyogTWF5IHNlbmQgV1FFcy4gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI5LVx0aWYgKG1seDVlX3BzcF9pc19vZmZsb2FkKHNrYiwgZGV2KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjEzNTojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNi1cdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXHUwMDI2c3EtXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNiB4ZnJtX29mZmxvYWQoc2tiKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE0MjojaWZkZWYgQ09ORklHX01MWDVfTUFDU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNDMtXHRpZiAodW5saWtlbHkobWx4NWVfbWFjc2VjX3NrYl9pc19vZmZsb2FkKHNrYikpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTU0PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG1seDVlX2FjY2VsX3R4X2lkc19sZW4oc3RydWN0IG1seDVlX3R4cXNxICpzcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTU4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE1OS1cdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZF9zdGF0ZShcdTAwMjZzdGF0ZS1cdTAwM2Vwc3Bfc3QpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE2MzojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE2NC1cdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXHUwMDI2c3EtXHUwMDNlc3RhdGUpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oPTE3ND1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfYWNjZWxfdHhfZXNlZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTc5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4MC1cdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZF9zdGF0ZShcdTAwMjZhY2NlbC1cdTAwM2Vwc3Bfc3QpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE4NDojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4NS1cdGlmICh4ZnJtX29mZmxvYWQoc2tiKSlcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NjYxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRoaW5nczoKCioqQW5hbHl6aW5nIE1lbGxhbm94IG1seDUgU2FtcGxpbmcgSW1wbGVtZW50YXRpb24qKgoKT2theSwgdGltZSB0byBkaWcgaW50byB0aGlzIGBzYW1wbGUuY2AgZmlsZSBhbmQgdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgbGV2ZXJhZ2VkIGluIHRoZSBgbWx4NWAgY29udGV4dC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc2FtcGxpbmcgaXMgd29ya2luZyBmb3IgdGhlIG1seDUgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIExldCYjMzk7cyBzdGFydCBieSBsb29raW5nIGF0IGl0cyB1c2Ugd2l0aGluIHRoZSBrZXJuZWwuIEkmIzM5O2xsIG5lZWQgdG8gZ28gdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY2AgYW5kIGRpdmUgZGVlcC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmdW5jdGlvbnMgYXJlIGJlaW5nIGNhbGxlZCwgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGluIHBsYXksIGFuZCBob3cgdGhpcyBzYW1wbGluZyBmdW5jdGlvbmFsaXR5IGludGVncmF0ZXMgd2l0aCB0aGUgYnJvYWRlciB0cmFmZmljIGNvbnRyb2wgZnJhbWV3b3JrLiBUaGlzIHNob3VsZCBiZSBpbnRlcmVzdGluZyDigJMgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMDA6XHRcdHJldHVybiByZXN0b3JlO1xuIDMwMTpcdFxuIDMwMjpcdGVycl9yZXN0b3JlOlxuIDMwMzpcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2MobWRldiwgcmVzdG9yZS1cdTAwM2Vtb2RpZnlfaGRyKTtcbiAzMDQ6XHRlcnJfbW9kaWZ5X2hkcjpcbiAzMDU6XHRcdGtmcmVlKHJlc3RvcmUpO1xuIDMwNjpcdGVycl9hbGxvYzpcbiAzMDc6XHRcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gMzA4Olx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIDMwOTpcdH1cbiAzMTA6XHRcbiAzMTE6XHRzdGF0aWMgdm9pZFxuIDMxMjpcdHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxuIDMxMzpcdHtcbiAzMTQ6XHRcdGJvb2wgbGFzdDtcbiAzMTU6XHRcbiAzMTY6XHRcdG11dGV4X2xvY2soXHUwMDI2dGNfcHNhbXBsZS1cdTAwM2VyZXN0b3JlX2xvY2spO1xuIDMxNzpcdFx0bGFzdCA9IC0tcmVzdG9yZS1cdTAwM2Vjb3VudCA9PSAwO1xuIDMxODpcdFx0aWYgKGxhc3QpXG4gMzE5Olx0XHRcdGhhc2hfZGVsKFx1MDAyNnJlc3RvcmUtXHUwMDNlaGxpc3QpO1xuIDMyMDpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnRjX3BzYW1wbGUtXHUwMDNlcmVzdG9yZV9sb2NrKTtcbiAzMjE6XHRcbiAzMjI6XHRcdGlmIChsYXN0KSB7XG4gMzIzOlx0XHRcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cdTAwM2VydWxlKTtcbiAzMjQ6XHRcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS1cdTAwM2Vlc3ctXHUwMDNlZGV2LCByZXN0b3JlLVx1MDAzZW1vZGlmeV9oZHIpO1xuIDMyNTpcdFx0XHRrZnJlZShyZXN0b3JlKTtcbiAzMjY6XHRcdH1cbiAzMjc6XHR9XG4gMzI4Olx0XG4gMzI5Olx0dm9pZCBtbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopXG4gMzMwOlx0e1xuIDMzMTpcdFx0dTMyIHRydW5jX3NpemUgPSBtYXBwZWRfb2JqLVx1MDAzZXNhbXBsZS50cnVuY19zaXplO1xuIDMzMjpcdFx0c3RydWN0IHBzYW1wbGVfZ3JvdXAgcHNhbXBsZV9ncm91cCA9IHt9O1xuIDMzMzpcdFx0c3RydWN0IHBzYW1wbGVfbWV0YWRhdGEgbWQgPSB7fTtcbiAzMzQ6XHRcbiAzMzU6XHRcdG1kLnRydW5jX3NpemUgPSB0cnVuY19zaXplID8gbWluKHRydW5jX3NpemUsIHNrYi1cdTAwM2VsZW4pIDogc2tiLVx1MDAzZWxlbjtcbiAzMzY6XHRcdG1kLmluX2lmaW5kZXggPSBza2ItXHUwMDNlZGV2LVx1MDAzZWlmaW5kZXg7XG4gMzM3Olx0XHRwc2FtcGxlX2dyb3VwLmdyb3VwX251bSA9IG1hcHBlZF9vYmotXHUwMDNlc2FtcGxlLmdyb3VwX2lkO1xuIDMzODpcdFx0cHNhbXBsZV9ncm91cC5uZXQgPSBcdTAwMjZpbml0X25ldDtcbiAzMzk6XHRcdHNrYl9wdXNoKHNrYiwgc2tiLVx1MDAzZW1hY19sZW4pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTk4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqRGl2aW5nIGludG8gdGhlIG1seDUgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCwgYW5kIHdoaWxlIEkmIzM5O3ZlIGdvdCBhIGdyYXNwIG9mIHRoZSBzYW1wbGUgY29kZSYjMzk7cyByb2xlIGluIFRDICh0cmFmZmljIGNvbnRyb2wpIHdpdGhpbiB0aGlzIE1lbGxhbm94IGRyaXZlciwgSSBuZWVkIHRvIHpvb20gb3V0LiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxhcmdlciBjb250ZXh0IG9mIGhvdyB0aGVzZSBtbHg1IGRldmljZXMgYXJlIGFjdHVhbGx5IGJyb3VnaHQgdG8gbGlmZSBhbmQgcHJvYmVkIHdpdGhpbiB0aGUgc3lzdGVtLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGJyb2FkZW4gbXkgdmlldyBhbmQgZXhhbWluZSB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhhdCBzcGVjaWZpYyBmaWxlLiBUaGVuLCBJIG5lZWQgdG8gc2VlIHdoZXJlIHRoZXNlIGRldmljZXMgY29tZSBpbnRvIHBsYXkgYW5kIHRoZSBQQ0kgZHJpdmVyLCBhbmQgaG93IGl0IGlzIHJlZ2lzdGVyZWQgYW5kIG1hbmFnZWQuIEl0JiMzOTtzIHRpbWUgdG8gZGlnIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGFuZCBwaWVjZSB0b2dldGhlciBob3cgdGhlIGRldmljZSBsaWZlY3ljbGUgdW5mb2xkcywgZnJvbSBQQ0kgZGV0ZWN0aW9uIHRocm91Z2ggdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgbWx4NSBmcmFtZXdvcmsuIEdvdHRhIGZpbmQgdGhhdCBQQ0kgZHJpdmVyIHJlZ2lzdHJhdGlvbiBwb2ludCB0byBidWlsZCBhIHByb3BlciBtZW50YWwgbW9kZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMzQ2PXN0YXRpYyBpbnQgX19pbml0IG1seDVfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjM2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM6MjM2NjpcdGVyciA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bWx4NV9jb3JlX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTIzNjctXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDY5CgkJCQkJCQlvdXRwdXQ6IDEwOQoJCQkJCQkJdGhvdWdodHM6IDM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBtbHg1IERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgZ28gdGhyb3VnaCB0aGlzIGNhcmVmdWxseS4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIHNwZWNpZmljYWxseSBzZWN0aW9uIDIuIFdlJiMzOTtyZSBsb29raW5nIGZvciBjb2RlIHJlbGF0ZWQgdG8gaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQWhhLCBoZXJlIGl0IGlzOiBgbWx4NWAuIFRoYXQmIzM5O3MgdGhlIE1lbGxhbm94IENvbm5lY3RYIGRyaXZlciDigJMgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciwgd2hpY2ggaGFuZGxlcyB0aGUgQ29ubmVjdFgtNCwgLTUsIGFuZCAtNiBzZXJpZXMgTklDcy4gSXQmIzM5O3MgYSBjbGFzc2ljIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBkcml2ZXIsIHJlcXVpcmluZyB0aGUgYWN0dWFsIE1lbGxhbm94IGhhcmR3YXJlLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIG9mIGNvdXJzZS4KClRoZSBjb25jZXJuIGlzLCBhcyBJIHN1c3BlY3RlZCwgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcy4gU3RhbmRhcmQgUUVNVSwgdGhlIHR5cGljYWwgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIsIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlc2UgTklDcy4gTm93LCBsZXQmIzM5O3MgZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb24uIERpZ2dpbmcgaW50byB0aGUga2VybmVsIGNvZGUsIGBtbHg1YCBob29rcyBpbnRvIHRoZSBQQ0kgc3Vic3lzdGVtIHVzaW5nIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYC4uLiBleGFjdGx5LiBObyB2aXJ0dWFsIG9yIGVtdWxhdGVkIGRldmljZXMgYXJlIHByZXNlbnQgaW4gUUVNVSYjMzk7cyBzdGFuZGFyZCBzZXR1cC4gVGhpcyBjb25maXJtcyBpdC4KClRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY2AgYWJzb2x1dGVseSBiZWxvbmdzIHRvIHRoaXMgdmVuZG9yLXNwZWNpZmljIGRyaXZlci4gQW5kIHRoYXQmIzM5O3MgYSBrZXkgcG9pbnQ6IGl0ICpuZWVkcyogcmVhbCBNZWxsYW5veCBoYXJkd2FyZSB0byBmdW5jdGlvbi4gSXQmIzM5O3Mgbm90IGEgY2FuZGlkYXRlIGZvciBlZmZlY3RpdmUgZnV6emluZyBpbiB0aGVzZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuCgpOb3csIGxldCYjMzk7cyBmb3JtYXQgdGhlIGBzZXQtcmVzdWx0c2Agb3V0cHV0IGNvcnJlY3RseS4KCiogICBgV29ydGhGdXp6aW5nYDogRmFsc2UuCiogICBgUmVhc29uaW5nYDogV2UgbmVlZCB0byBjb25jaXNlbHkgYXJ0aWN1bGF0ZSB3aHkgaXQmIzM5O3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEl0JiMzOTtzIHRoZSB2ZW5kb3Itc3BlY2lmaWMgbmF0dXJlIG9mIHRoZSBNZWxsYW5veCBgbWx4NWAgZHJpdmVyLCByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBOSUMgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGF0JiMzOTtzIGEgY2xlYXIgZXhwbGFuYXRpb24uCiogICBgRW5hYmxlQ29uZmlnc2A6IEVtcHR5IGxpc3QsIG9yIG51bGwuCiogICBgRm9jdXNTeW1ib2xzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC4KCk9rYXksIHRoYXQmIzM5O3MgY2xlYXIuIE5vdyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjQ0LjUxMTk2MjYwNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxMzgzMDQwNDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDc6NDQuNTExOTY3MTczWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjE1NzgwNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMmVlZjM2ODdlNDFlMDIzMjI2ZTM4N2I0ZGM1Njc0M2IyMDZjYmU1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgU2VwIDMgMTg6NDc6NDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXFxuaW5kZXggODk0OTBmNjg3YTljNi4uOTNjNjJkM2YzZTViZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcXG5AQCAtMzExLDEyICszMTEsMTUgQEAgc2FtcGxlX3Jlc3RvcmVfZ2V0KHN0cnVjdCBtbHg1ZV90Y19wc2FtcGxlICp0Y19wc2FtcGxlLCB1MzIgb2JqX2lkLFxcbiBzdGF0aWMgdm9pZFxcbiBzYW1wbGVfcmVzdG9yZV9wdXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHN0cnVjdCBtbHg1ZV9zYW1wbGVfcmVzdG9yZSAqcmVzdG9yZSlcXG4ge1xcbitcXHRib29sIGxhc3Q7XFxuK1xcbiBcXHRtdXRleF9sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbi1cXHRpZiAoLS1yZXN0b3JlLVxcdTAwM2Vjb3VudCA9PSAwKVxcbitcXHRsYXN0ID0gLS1yZXN0b3JlLVxcdTAwM2Vjb3VudCA9PSAwO1xcbitcXHRpZiAobGFzdClcXG4gXFx0XFx0aGFzaF9kZWwoXFx1MDAyNnJlc3RvcmUtXFx1MDAzZWhsaXN0KTtcXG4gXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiBcXG4tXFx0aWYgKCFyZXN0b3JlLVxcdTAwM2Vjb3VudCkge1xcbitcXHRpZiAobGFzdCkge1xcbiBcXHRcXHRtbHg1X2RlbF9mbG93X3J1bGVzKHJlc3RvcmUtXFx1MDAzZXJ1bGUpO1xcbiBcXHRcXHRtbHg1X21vZGlmeV9oZWFkZXJfZGVhbGxvYyh0Y19wc2FtcGxlLVxcdTAwM2Vlc3ctXFx1MDAzZWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIFxcdFxcdGtmcmVlKHJlc3RvcmUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0Nzo0NC45MzQyOTg1MTZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQwOTYwNjk0NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYywgd2hpY2ggaXMgcGFydCBvZiB0aGUgTWVsbGFub3ggbWx4NSBuZXR3b3JrIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggQ29ubmVjdFggUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKGUuZy4gUUVNVSksIG1ha2luZyBpdCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG5pbmRleCA4OTQ5MGY2ODdhOWM2Li45M2M2MmQzZjNlNWJkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcbkBAIC0zMTEsMTIgKzMxMSwxNSBAQCBzYW1wbGVfcmVzdG9yZV9nZXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHUzMiBvYmpfaWQsXG4gc3RhdGljIHZvaWRcbiBzYW1wbGVfcmVzdG9yZV9wdXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHN0cnVjdCBtbHg1ZV9zYW1wbGVfcmVzdG9yZSAqcmVzdG9yZSlcbiB7XG4rXHRib29sIGxhc3Q7XG4rXG4gXHRtdXRleF9sb2NrKFx1MDAyNnRjX3BzYW1wbGUtXHUwMDNlcmVzdG9yZV9sb2NrKTtcbi1cdGlmICgtLXJlc3RvcmUtXHUwMDNlY291bnQgPT0gMClcbitcdGxhc3QgPSAtLXJlc3RvcmUtXHUwMDNlY291bnQgPT0gMDtcbitcdGlmIChsYXN0KVxuIFx0XHRoYXNoX2RlbChcdTAwMjZyZXN0b3JlLVx1MDAzZWhsaXN0KTtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gXG4tXHRpZiAoIXJlc3RvcmUtXHUwMDNlY291bnQpIHtcbitcdGlmIChsYXN0KSB7XG4gXHRcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cdTAwM2VydWxlKTtcbiBcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS1cdTAwM2Vlc3ctXHUwMDNlZGV2LCByZXN0b3JlLVx1MDAzZW1vZGlmeV9oZHIpO1xuIFx0XHRrZnJlZShyZXN0b3JlKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjQ0LjkzNDMwMDAzNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjk4ODEzMDU1OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gg4oCTIGl0J3MgYSBzbWFsbCBjaGFuZ2UgaW4gdGhlIE1lbGxhbm94IG1seDUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSB0cmFmZmljIGNvbnRyb2wgKHRjKSBzYW1wbGluZyBzZWN0aW9uIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCkuIEknbSBsb29raW5nIGF0IHRoZSBgc2FtcGxlX3Jlc3RvcmVfcHV0YCBmdW5jdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhleSd2ZSBqdXN0IHJlZmluZWQgdGhlIGxvZ2ljIGFyb3VuZCByZWxlYXNpbmcgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGByZXN0b3JlYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSB3aGVuIHRoZSBgcmVzdG9yZS1cdTAwM2Vjb3VudGAgaGl0cyB6ZXJvLiBUaGV5J3ZlIGFkZGVkIGEgYGxhc3RgIHZhcmlhYmxlIGZvciBjbGFyaXR5IGFuZCBtZXJnZWQgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGEgYml0LCB3aGljaCBpcyBnb29kLlxuXG5NeSBpbW1lZGlhdGUgY29uY2VybiwgdGhvdWdoLCBpcyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gKmZ1enphYmxlKiBpbiBvdXIgY3VycmVudCBzZXR1cC4gV2UncmUgcnVubmluZyB0aHJvdWdoIHRoZSBjaGVja2xpc3QuIEZpcnN0LCB0aGUgbG9jYXRpb24gY29uZmlybXMgaXQncyB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCB0aGF0IHRyaWdnZXJzIGEgcmVkIGZsYWcuIFdlIGtub3cgZnJvbSB0aGUgcnVsZXMgdGhhdCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3Igc3l6a2FsbGVyIGVudmlyb25tZW50cyBhcmUgYSBwcm9ibGVtLiBUaGlzIGlzIGEgTWVsbGFub3ggTklDIGRyaXZlciAoQ29ubmVjdFgtNCwgQ29ubmVjdFgtNSwgQ29ubmVjdFgtNiwgZXRjLiksIGFuZCB0aG9zZSByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChBU0lDL1BDSWUgY2FyZCkuIFRoZSBydWxlcyBleHBsaWNpdGx5IGxpc3QgTWVsbGFub3ggYW1vbmcgdGhlIFwiU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIg4oCTIHNvLCAqbGlrZWx5KiBhIG5vLWdvLlxuXG5Ib3dldmVyLCBJJ20gbm90IGdvaW5nIHRvIGp1bXAgdG8gY29uY2x1c2lvbnMgKmp1c3QqIHlldC4gSXQncyBjcnVjaWFsIHRvIGJlIHRob3JvdWdoLiBJIG5lZWQgdG8gcXVpY2tseSB2ZXJpZnk6IGRvZXMgdGhlIG1seDUgZHJpdmVyIGhhdmUgYW55IHNvcnQgb2YgbW9jayBvciB2aXJ0dWFsIG5ldGRldiBzdXBwb3J0PyBXZSd2ZSBzZWVuIHNvbWUgTklDIGRyaXZlcnMgcHJvdmlkZSB0aGF0IOKAkyBhIHdheSB0byB0ZXN0IHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LiBJIG5lZWQgdG8gdXNlIGdyZXBwZXIgb3IgcmVhZC1maWxlIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBldmlkZW5jZSBvZiBzdWNoIGEgdGhpbmcuIElmIGl0J3MgKnN0cmljdGx5KiBwaHlzaWNhbCBoYXJkd2FyZSwgdGhlbiB0aGUgV29ydGhGdXp6aW5nIGZsYWcgaXMgc2V0IHRvIGZhbHNlLCBhbmQgd2UgY2FuIG1vdmUgb24uIEJ1dCwgaWYgdGhlcmUgaXMgYSB2aXJ0dWFsIGludGVyZmFjZSwgdGhhdCBjaGFuZ2VzIHRoZSBjYWxjdWxhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA0OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjU0LjgxNTYwODIxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNzY5MzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19NTFg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMjkzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICs9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX01MWDVfQ09SRSkgKz0gbWx4NV9jb3JlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9MTQ9bWx4NV9jb3JlLXkgOj1cXHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSArPSBlbi9ycXQubyBlbi90aXIubyBlbi9yc3MubyBlbi9yeF9yZXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI3LVxcdFxcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0zNy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICArPSBlbl9hcmZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICs9IGVuX2ZzX2V0aHRvb2wub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgKz0gZW5fZGNibmwubyBlbi9wb3J0X2J1ZmZlci5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQxLW1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gZW4vaHZfdmhjYV9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICArPSBsYWcvbXAubyBsYWcvcG9ydF9zZWwubyBsaWIvZ2VuZXZlLm8gbGliL3BvcnRfdHVuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00My1cXHRcXHRcXHRcXHRcXHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVxcdFxcdFxcdFxcdFxcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICArPSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXFx0XFx0XFx0XFx0XFx0bGliL2ZzX2NoYWlucy5vIGVuL3RjX3R1bi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cXHRcXHRcXHRcXHRcXHRlbi90Yy9hY3QvYWNjZXB0Lm8gZW4vdGMvYWN0L21hcmsubyBlbi90Yy9hY3QvZ290by5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjE6aWZuZXEgKCQoQ09ORklHX01MWDVfVENfQ1QpLClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjItXFx0bWx4NV9jb3JlLXlcXHRcXHRcXHQgICAgICs9IGVuL3RjX2N0Lm8gZW4vdGMvY3RfZnNfZG1mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSArPSBlbi90Yy9jdF9mc19zbWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjQ6XFx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IGVuL3RjL2N0X2ZzX2htZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02NS1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Njc6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfVENfU0FNUExFKSAgICs9IGVuL3RjL3NhbXBsZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICArPSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXFx0XFx0XFx0XFx0ICAgICAgZWNwZi5vIHJkbWEubyBlc3cvbGVnYWN5Lm8gZXN3L2Fkal92cG9ydC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICArPSBlc3cvYWNsL2hlbHBlci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzctXFx0XFx0XFx0XFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgwOmlmbmVxICgkKENPTkZJR19NTFg1X0VOX0lQU0VDKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2lwc2VjX2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgKz0gZXN3L2JyaWRnZS5vIGVzdy9icmlkZ2VfbWNhc3QubyBlc3cvYnJpZGdlX2RlYnVnZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg1LVxcdFxcdFxcdFxcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTg3PW1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgKz0gaHdtb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICs9IGxpYi9tcGZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9OTM9bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSArPSBsaWIvaHYubyBsaWIvaHZfdmhjYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSArPSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cXHRcXHRcXHRcXHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgKz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXFx0XFx0XFx0XFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgKz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVxcdFxcdFxcdFxcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSArPSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBzdGVlcmluZy9od3MvY21kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSArPSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xNzg9bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSArPSBsaWIvc3Qub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MDpvYmotJChDT05GSUdfTUxYNV9EUExMKSArPSBtbHg1X2RwbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xODEtbWx4NV9kcGxsLXkgOj1cXHRkcGxsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz00Mz1zdGF0aWMgYm9vbCBpc19ldGhfcmVwX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy00NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjQ1OlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9FU1dJVENIKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNDYtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTU3PWJvb2wgbWx4NV9ldGhfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6NTk6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0NPUkVfRU4pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy02MC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MTA5PWJvb2wgbWx4NV92bmV0X3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xMTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxMTE6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X1ZEUEFfTkVUKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTEyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0xNDI9c3RhdGljIGJvb2wgaXNfaWJfcmVwX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNDMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxNDQ6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNDUtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE1OT1zdGF0aWMgYm9vbCBpc19tcF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6MTYxOlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTYyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0xNzk9Ym9vbCBtbHg1X3JkbWFfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjE4MTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4Mi1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MjA3PXN0YXRpYyBib29sIGlzX2RwbGxfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTIwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjIwOTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfRFBMTCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTIxMC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTM2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIG1seDVfZGV2bGlua19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozNjk6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTM3MC1cXHQuZXN3aXRjaF9tb2RlX3NldCA9IG1seDVfZGV2bGlua19lc3dpdGNoX21vZGVfc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy0zODctI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozODg6I2lmZGVmIENPTkZJR19NTFg1X1NGX01BTkFHRVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTM4OS1cXHQucG9ydF9uZXcgPSBtbHg1X2Rldmxpbmtfc2ZfcG9ydF9uZXcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTQ2Mj1zdGF0aWMgaW50IG1seDVfZGV2bGlua19lbmFibGVfcm9jZV92YWxpZGF0ZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo0ODI6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTQ4My1zdGF0aWMgaW50IG1seDVfZGV2bGlua19sYXJnZV9ncm91cF9udW1fdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9NTgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19wYXJhbSBtbHg1X2RldmxpbmtfcGFyYW1zW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTU4Mi1cXHRcXHRcXHQgICAgICBOVUxMLCBOVUxMLCBtbHg1X2RldmxpbmtfZW5hYmxlX3JvY2VfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6NTgzOiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy01ODQtXFx0REVWTElOS19QQVJBTV9EUklWRVIoTUxYNV9ERVZMSU5LX1BBUkFNX0lEX0VTV19MQVJHRV9HUk9VUF9OVU0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTU5Nj1zdGF0aWMgdm9pZCBtbHg1X2Rldmxpbmtfc2V0X3BhcmFtc19pbml0X3ZhbHVlcyhzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtNjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6NjA2OiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDctXFx0dmFsdWUudnUzMiA9IEVTV19PRkZMT0FEU19ERUZBVUxUX05VTV9HUk9VUFM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTc5NT1zdGF0aWMgaW50IG1seDVfZGV2bGlua19yZG1hX3BhcmFtc19yZWdpc3RlcihzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtODAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6ODAxOlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgwMi1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9ODE2PXN0YXRpYyB2b2lkIG1seDVfZGV2bGlua19yZG1hX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtODE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjgxODpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MTktXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg6MTA6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaD0yMT1pbnQgbWx4NV9jbWRfcGZfZGlzYWJsZV9oY2Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHZwb3J0X251bSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oOjIzOiNlbHNlICAvKiBDT05GSUdfTUxYNV9FU1dJVENIICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg9Mjg9c3RhdGljIGlubGluZSB2b2lkIG1seDVfZWNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KSB7fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaDozMDojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD05MDU9c3RydWN0IG1seDVlX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjkxMTojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05MTItXFx0c3RydWN0IG1seDVlX2RjYnhfZHAgICAgICAgZGNieF9kcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk1Ny1cXHRzdHJ1Y3QgdWRwX3R1bm5lbF9uaWNfaW5mbyBuaWNfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NTg6I2lmZGVmIENPTkZJR19NTFg1X0NPUkVfRU5fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTU5LVxcdHN0cnVjdCBtbHg1ZV9kY2J4ICAgICAgICAgIGRjYng7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjMtXFx0dm9pZCAgICAgICAgICAgICAgICAgICAgICAqcHByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTY0OiNpZmRlZiBDT05GSUdfTUxYNV9NQUNTRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjUtXFx0c3RydWN0IG1seDVlX21hY3NlYyAgICAgICAqbWFjc2VjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk2Ni0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5Njc6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY4LVxcdHN0cnVjdCBtbHg1ZV9pcHNlYyAgICAgICAgKmlwc2VjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk2OS0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NzA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk3MS1cXHRzdHJ1Y3QgbWx4NWVfcHNwICAgICAgICAgICpwc3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcyLSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjk3MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTc0LVxcdHN0cnVjdCBtbHg1ZV90bHMgICAgICAgICAgKnRscztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oPTEyOTk9aW50IG1seDVlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6MTMwMDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTEzMDEtaW50IG1seDVlX3NldF92Zl9tYWMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHZmLCB1OCAqbWFjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9kY2JubC5oLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2RjYm5sLmg6NzojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZGNibmwuaC04LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9Nzg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04NC1cXHRNTFg1RV9GU19UVF9BTllfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjg1OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9UTFNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04Ni1cXHRNTFg1RV9BQ0NFTF9GU19UQ1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg3LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjg4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9BUkZTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtODktXFx0TUxYNUVfQVJGU19GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCArIDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTAtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6OTE6I2lmIGRlZmluZWQoQ09ORklHX01MWDVfRU5fSVBTRUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTItXFx0TUxYNUVfQUNDRUxfRlNfRVNQX0ZUX0xFVkVMID0gTUxYNUVfSU5ORVJfVFRDX0ZUX0xFVkVMICsgMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTk3LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjk4OiNpZiBkZWZpbmVkKENPTkZJR19NTFg1X0VOX1BTUClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC05OS1cXHRNTFg1RV9BQ0NFTF9GU19QU1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTA2PXN0cnVjdCBtbHg1ZV9yeF9yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjEwODojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEwOS1zdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xMjU9c3RhdGljIGlubGluZSBpbnQgbWx4NWVfYXJmc19kaXNhYmxlKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEyOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxMjk6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEzMC1zdHJ1Y3QgbWx4NWVfYWNjZWxfZnNfdGNwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTcwPXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9mc19oYXNfYXJmcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTcyOlxcdHJldHVybiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0VOX0FSRlMpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTczLVxcdFxcdG5ldGRldi1cXHUwMDNlaHdfZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX05UVVBMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTE3Nj1zdGF0aWMgaW5saW5lIGJvb2wgbWx4NWVfZnNfd2FudF9hcmZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTc3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxNzg6XFx0cmV0dXJuIElTX0VOQUJMRUQoQ09ORklHX01MWDVfRU5fQVJGUykgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzktXFx0XFx0bmV0ZGV2LVxcdTAwM2VmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfTlRVUExFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4MjojaWZkZWYgQ09ORklHX01MWDVfRU5fUlhORkNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODMtc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKm1seDVlX2ZzX2dldF9ldGh0b29sKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xODY9dm9pZCBtbHg1ZV9mc19zZXRfdHRjKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVfdHRjX3RhYmxlICp0dGMsIGJvb2wgaW5uZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4NzojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE4OC1zdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXMgKm1seDVlX2ZzX2dldF9hcmZzKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xOTY9dm9pZCBtbHg1ZV9mc19zZXRfdWRwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVlX2ZzX3VkcCAqdWRwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxOTc6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE5OC1zdHJ1Y3QgbWx4NWVfYWNjZWxfZnNfdGNwICptbHg1ZV9mc19nZXRfYWNjZWxfdGNwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnNfZXRodG9vbC5oPTg9c3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzX2V0aHRvb2wuaDo5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9SWE5GQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmgtMTAtaW50IG1seDVlX2V0aHRvb2xfYWxsb2Moc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKipldGh0b29sKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjk6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQlJJREdFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTEyPXZvaWQgbWx4NWVfcmVwX2JyaWRnZV9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg6MTQ6I2Vsc2UgLyogQ09ORklHX01MWDVfQlJJREdFICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg9MTc9c3RhdGljIGlubGluZSB2b2lkIG1seDVlX3JlcF9icmlkZ2VfY2xlYW51cChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikge31cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg6MTk6I2VuZGlmIC8qIENPTkZJR19NTFg1X0JSSURHRSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg6MTA6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg9MjQ9dm9pZCBtbHg1ZV9yZXBfcXVldWVfbmVpZ2hfc3RhdHNfd29yayhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDoyNjojZWxzZSAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oPTMxPW1seDVlX3JlcF9uZWlnaF9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYpIHt9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDozMzojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0zNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz03MDA9dm9pZCBtbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTczMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6NzMyOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy03MzMtXFx0aWYgKCEodHVubmVsX2lkIFxcdTAwM2VcXHUwMDNlIEVTV19UVU5fT1BUU19CSVRTKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaDoxMTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaD0zOT12b2lkIG1seDVlX3JlcF90Y19yZWNlaXZlKHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHN0cnVjdCBtbHg1ZV9ycSAqcnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oOjQyOiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg9Njg9bWx4NWVfcmVwX3RjX3JlY2VpdmUoc3RydWN0IG1seDVfY3FlNjQgKmNxZSwgc3RydWN0IG1seDVlX3JxICpycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg6NzE6I2VuZGlmIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTEzMj12b2lkIG1seDVlX3NlbHFfY2FuY2VsKHN0cnVjdCBtbHg1ZV9zZWxxICpzZWxxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xMzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYzoxNDA6I2lmZGVmIENPTkZJR19NTFg1X0NPUkVfRU5fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xNDEtc3RhdGljIGludCBtbHg1ZV9nZXRfZHNjcF91cChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM9MTU0PXN0YXRpYyBpbnQgbWx4NWVfZ2V0X3VwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTU1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE1NjojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTE1Ny1cXHRpZiAoUkVBRF9PTkNFKHByaXYtXFx1MDAzZWRjYnhfZHAudHJ1c3Rfc3RhdGUpID09IE1MWDVfUVBUU19UUlVTVF9EU0NQKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9Mzk9c3RydWN0IG1seDVfY3RfZnNfb3BzICptbHg1X2N0X2ZzX2RtZnNfb3BzX2dldCh2b2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo0MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00Mi1zdHJ1Y3QgbWx4NV9jdF9mc19vcHMgKm1seDVfY3RfZnNfc21mc19vcHNfZ2V0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NDU9bWx4NV9jdF9mc19zbWZzX29wc19nZXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTQ4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo0OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9IV19TVEVFUklORylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01Mi1zdHJ1Y3QgbWx4NV9jdF9mc19vcHMgKm1seDVfY3RfZnNfaG1mc19vcHNfZ2V0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NTU9bWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTU4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC02MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oPTEyPWVudW0gbWx4NWVfdGNfaW50X3BvcnRfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaDoxNzojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oLTE4LWJvb2wgbWx4NWVfdGNfaW50X3BvcnRfc3VwcG9ydGVkKGNvbnN0IHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD00Mj1pbnQgbWx4NWVfdGNfaW50X3BvcnRfZ2V0X2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1ZV90Y19pbnRfcG9ydCAqaW50X3BvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjQzOiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC00NC1zdGF0aWMgaW5saW5lIHUzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0Lmg9NjI9c3RhdGljIGlubGluZSB2b2lkIG1seDVlX3RjX2ludF9wb3J0X2NsZWFudXBfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KSB7fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjY0OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtNjUtI2VuZGlmIC8qIF9fTUxYNV9FTl9UQ19JTlRfUE9SVF9IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTcyPW1seDVlX3RjX21ldGVyX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6NzU6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaD03Nz1pbnQgbWx4NWVfZmxvd19tZXRlcl9nZXRfYmFzZV9pZChzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaDo3OTojZWxzZSAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaD04Mj1tbHg1ZV9mbG93X21ldGVyX2dldF9iYXNlX2lkKHN0cnVjdCBtbHg1ZV9mbG93X21ldGVyX2hhbmRsZSAqbWV0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6ODY6I2VuZGlmIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg9MTc9ZW51bSBtbHg1ZV9wb3N0X21ldGVyX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg9NDQ9bWx4NWVfcG9zdF9tZXRlcl9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgc3RydWN0IG1seDVlX3Bvc3RfbWV0ZXJfcHJpdiAqcG9zdF9tZXRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC00NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjQ2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTEzPXN0cnVjdCBtbHg1ZV9zYW1wbGVfYXR0ciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX1NBTVBMRSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg9NDA9bWx4NWVfdGNfc2FtcGxlX2NsZWFudXAoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaC00MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg6NDI6I2Vsc2UgLyogQ09ORklHX01MWDVfVENfU0FNUExFICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTYzPW1seDVlX3RjX3NhbXBsZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1seDVfbWFwcGVkX29iaiAqbWFwcGVkX29iaikge31cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjY1OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9UQ19TQU1QTEUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjYtI2VuZGlmIC8qIF9fTUxYNV9FTl9UQ19TQU1QTEVfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaD0yNT1zdHJ1Y3QgbWx4NV9jdF9hdHRyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjk0OiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTk1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0Lmg9MTMyPWJvb2wgbWx4NWVfdGNfY3RfaXNfdmFsaWRfZmxvd19ydWxlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBmbG93X3J1bGUgKmZsb3dfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjEzNDojZWxzZSAvKiBDT05GSUdfTUxYNV9UQ19DVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTEzNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTIwOT1tbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTIxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaDoyMTU6I2VuZGlmIC8qICFJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTIxNi0jZW5kaWYgLyogX19NTFg1X0VOX1RDX0NUX0hfXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaDoxNDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaC0xNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaD0xMTg9Ym9vbCBtbHg1ZV90Y190dW5fZW5jYXBfaW5mb19lcXVhbF9vcHRpb25zKHN0cnVjdCBtbHg1ZV9lbmNhcF9rZXkgKmEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTIwLVxcdFxcdFxcdFxcdFxcdCAgIHUzMiB0dW5fdHlwZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjEyMTojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaC0xMjItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTY1PWVudW0gbWx4NWVfaWNvc3Ffd3FlX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC02Ny1cXHRNTFg1RV9JQ09TUV9XUUVfVU1SX1JYLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg6Njg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtNjktXFx0TUxYNUVfSUNPU1FfV1FFX1VNUl9UTFMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTE3Nz1zdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xODItXFx0dTggbnVtX2ZpZm9fcGt0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oOjE4MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xODQtXFx0c3RydWN0IHBhZ2UgKnJlc3luY19kdW1wX2ZyYWdfcGFnZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg9MjQwPXN0cnVjdCBtbHg1ZV9pY29zcV93cWVfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTI0OS1cXHRcXHRzdHJ1Y3QgbWx4NWVfc2hhbXBvX3VtciBzaGFtcG87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoyNTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtMjUxLVxcdFxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaD0xMDM9c3RydWN0IG1seDVlX2FjY2VsX3R4X3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEwNS1cXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfdGxzX3N0YXRlIHRscztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDYtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTA3OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEwOC1cXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfaXBzZWNfc3RhdGUgaXBzZWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTA5LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjExMDojaWZkZWYgQ09ORklHX01MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTExLVxcdHN0cnVjdCBtbHg1ZV9hY2NlbF90eF9wc3Bfc3RhdGUgcHNwX3N0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTE1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9hY2NlbF90eF9iZWdpbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTE5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEyMS1cXHQvKiBNYXkgc2VuZCBXUUVzLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjEyODojaWZkZWYgQ09ORklHX01MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI5LVxcdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZChza2IsIGRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMzU6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTM2LVxcdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXFx1MDAyNnNxLVxcdTAwM2VzdGF0ZSkgXFx1MDAyNlxcdTAwMjYgeGZybV9vZmZsb2FkKHNrYikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxNDI6I2lmZGVmIENPTkZJR19NTFg1X01BQ1NFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0My1cXHRpZiAodW5saWtlbHkobWx4NWVfbWFjc2VjX3NrYl9pc19vZmZsb2FkKHNrYikpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaD0xNTQ9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWx4NWVfYWNjZWxfdHhfaWRzX2xlbihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTU3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxNTg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE1OS1cXHRpZiAobWx4NWVfcHNwX2lzX29mZmxvYWRfc3RhdGUoXFx1MDAyNnN0YXRlLVxcdTAwM2Vwc3Bfc3QpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE2MzojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNjQtXFx0aWYgKHRlc3RfYml0KE1MWDVFX1NRX1NUQVRFX0lQU0VDLCBcXHUwMDI2c3EtXFx1MDAzZXN0YXRlKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oPTE3ND1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfYWNjZWxfdHhfZXNlZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE3OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTc5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xODAtXFx0aWYgKG1seDVlX3BzcF9pc19vZmZsb2FkX3N0YXRlKFxcdTAwMjZhY2NlbC1cXHUwMDNlcHNwX3N0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxODQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTg1LVxcdGlmICh4ZnJtX29mZmxvYWQoc2tiKSlcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDc6NTQuODY4MzgzNjA4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA1MTUzNDEwMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhpbmdzOlxuXG4qKkFuYWx5emluZyBNZWxsYW5veCBtbHg1IFNhbXBsaW5nIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgdGltZSB0byBkaWcgaW50byB0aGlzIGBzYW1wbGUuY2AgZmlsZSBhbmQgdW5kZXJzdGFuZCBob3cgaXQncyBiZWluZyBsZXZlcmFnZWQgaW4gdGhlIGBtbHg1YCBjb250ZXh0LiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHNhbXBsaW5nIGlzIHdvcmtpbmcgZm9yIHRoZSBtbHg1IGhhcmR3YXJlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IGhvdyBpdCdzIGJlaW5nIHVzZWQuIExldCdzIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgaXRzIHVzZSB3aXRoaW4gdGhlIGtlcm5lbC4gSSdsbCBuZWVkIHRvIGdvIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNgIGFuZCBkaXZlIGRlZXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBjYWxsZWQsIHdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBpbiBwbGF5LCBhbmQgaG93IHRoaXMgc2FtcGxpbmcgZnVuY3Rpb25hbGl0eSBpbnRlZ3JhdGVzIHdpdGggdGhlIGJyb2FkZXIgdHJhZmZpYyBjb250cm9sIGZyYW1ld29yay4gVGhpcyBzaG91bGQgYmUgaW50ZXJlc3Rpbmcg4oCTIGxldCdzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTY2MSwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ4OjA1LjM4MzcyNjU3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAzMDA6XFx0XFx0cmV0dXJuIHJlc3RvcmU7XFxuIDMwMTpcXHRcXG4gMzAyOlxcdGVycl9yZXN0b3JlOlxcbiAzMDM6XFx0XFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2MobWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIDMwNDpcXHRlcnJfbW9kaWZ5X2hkcjpcXG4gMzA1OlxcdFxcdGtmcmVlKHJlc3RvcmUpO1xcbiAzMDY6XFx0ZXJyX2FsbG9jOlxcbiAzMDc6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiAzMDg6XFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4gMzA5OlxcdH1cXG4gMzEwOlxcdFxcbiAzMTE6XFx0c3RhdGljIHZvaWRcXG4gMzEyOlxcdHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxcbiAzMTM6XFx0e1xcbiAzMTQ6XFx0XFx0Ym9vbCBsYXN0O1xcbiAzMTU6XFx0XFxuIDMxNjpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiAzMTc6XFx0XFx0bGFzdCA9IC0tcmVzdG9yZS1cXHUwMDNlY291bnQgPT0gMDtcXG4gMzE4OlxcdFxcdGlmIChsYXN0KVxcbiAzMTk6XFx0XFx0XFx0aGFzaF9kZWwoXFx1MDAyNnJlc3RvcmUtXFx1MDAzZWhsaXN0KTtcXG4gMzIwOlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dGNfcHNhbXBsZS1cXHUwMDNlcmVzdG9yZV9sb2NrKTtcXG4gMzIxOlxcdFxcbiAzMjI6XFx0XFx0aWYgKGxhc3QpIHtcXG4gMzIzOlxcdFxcdFxcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cXHUwMDNlcnVsZSk7XFxuIDMyNDpcXHRcXHRcXHRtbHg1X21vZGlmeV9oZWFkZXJfZGVhbGxvYyh0Y19wc2FtcGxlLVxcdTAwM2Vlc3ctXFx1MDAzZWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIDMyNTpcXHRcXHRcXHRrZnJlZShyZXN0b3JlKTtcXG4gMzI2OlxcdFxcdH1cXG4gMzI3OlxcdH1cXG4gMzI4OlxcdFxcbiAzMjk6XFx0dm9pZCBtbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopXFxuIDMzMDpcXHR7XFxuIDMzMTpcXHRcXHR1MzIgdHJ1bmNfc2l6ZSA9IG1hcHBlZF9vYmotXFx1MDAzZXNhbXBsZS50cnVuY19zaXplO1xcbiAzMzI6XFx0XFx0c3RydWN0IHBzYW1wbGVfZ3JvdXAgcHNhbXBsZV9ncm91cCA9IHt9O1xcbiAzMzM6XFx0XFx0c3RydWN0IHBzYW1wbGVfbWV0YWRhdGEgbWQgPSB7fTtcXG4gMzM0OlxcdFxcbiAzMzU6XFx0XFx0bWQudHJ1bmNfc2l6ZSA9IHRydW5jX3NpemUgPyBtaW4odHJ1bmNfc2l6ZSwgc2tiLVxcdTAwM2VsZW4pIDogc2tiLVxcdTAwM2VsZW47XFxuIDMzNjpcXHRcXHRtZC5pbl9pZmluZGV4ID0gc2tiLVxcdTAwM2VkZXYtXFx1MDAzZWlmaW5kZXg7XFxuIDMzNzpcXHRcXHRwc2FtcGxlX2dyb3VwLmdyb3VwX251bSA9IG1hcHBlZF9vYmotXFx1MDAzZXNhbXBsZS5ncm91cF9pZDtcXG4gMzM4OlxcdFxcdHBzYW1wbGVfZ3JvdXAubmV0ID0gXFx1MDAyNmluaXRfbmV0O1xcbiAzMzk6XFx0XFx0c2tiX3B1c2goc2tiLCBza2ItXFx1MDAzZW1hY19sZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0ODowNS4zODM4MDkzMjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyOTE0NzczOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipEaXZpbmcgaW50byB0aGUgbWx4NSBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCwgYW5kIHdoaWxlIEkndmUgZ290IGEgZ3Jhc3Agb2YgdGhlIHNhbXBsZSBjb2RlJ3Mgcm9sZSBpbiBUQyAodHJhZmZpYyBjb250cm9sKSB3aXRoaW4gdGhpcyBNZWxsYW5veCBkcml2ZXIsIEkgbmVlZCB0byB6b29tIG91dC4gSSByZWFsbHkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dCBvZiBob3cgdGhlc2UgbWx4NSBkZXZpY2VzIGFyZSBhY3R1YWxseSBicm91Z2h0IHRvIGxpZmUgYW5kIHByb2JlZCB3aXRoaW4gdGhlIHN5c3RlbS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBicm9hZGVuIG15IHZpZXcgYW5kIGV4YW1pbmUgdGhlIHJlbGV2YW50IHBhcnRzIG9mIHRoYXQgc3BlY2lmaWMgZmlsZS4gVGhlbiwgSSBuZWVkIHRvIHNlZSB3aGVyZSB0aGVzZSBkZXZpY2VzIGNvbWUgaW50byBwbGF5IGFuZCB0aGUgUENJIGRyaXZlciwgYW5kIGhvdyBpdCBpcyByZWdpc3RlcmVkIGFuZCBtYW5hZ2VkLiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGFuZCBwaWVjZSB0b2dldGhlciBob3cgdGhlIGRldmljZSBsaWZlY3ljbGUgdW5mb2xkcywgZnJvbSBQQ0kgZGV0ZWN0aW9uIHRocm91Z2ggdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgbWx4NSBmcmFtZXdvcmsuIEdvdHRhIGZpbmQgdGhhdCBQQ0kgZHJpdmVyIHJlZ2lzdHJhdGlvbiBwb2ludCB0byBidWlsZCBhIHByb3BlciBtZW50YWwgbW9kZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0ODowOC4yOTg1ODYwOTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5MDE2NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM9MjM0Nj1zdGF0aWMgaW50IF9faW5pdCBtbHg1X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjM2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jOjIzNjY6XFx0ZXJyID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bWx4NV9jb3JlX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMzY3LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ4OjA4LjM1NDQ5MjEwMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE3NTQwNDc2MDUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIG1seDUgRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgZ28gdGhyb3VnaCB0aGlzIGNhcmVmdWxseS4gSSdtIGZvY3VzaW5nIG9uIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgc3BlY2lmaWNhbGx5IHNlY3Rpb24gMi4gV2UncmUgbG9va2luZyBmb3IgY29kZSByZWxhdGVkIHRvIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQWhhLCBoZXJlIGl0IGlzOiBgbWx4NWAuIFRoYXQncyB0aGUgTWVsbGFub3ggQ29ubmVjdFggZHJpdmVyIOKAkyB0aGUgYG1seDVfY29yZWAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRoZSBDb25uZWN0WC00LCAtNSwgYW5kIC02IHNlcmllcyBOSUNzLiBJdCdzIGEgY2xhc3NpYyB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyLCByZXF1aXJpbmcgdGhlIGFjdHVhbCBNZWxsYW5veCBoYXJkd2FyZS4gSSBrbm93IHRoaXMgZnJvbSBleHBlcmllbmNlLCBvZiBjb3Vyc2UuXG5cblRoZSBjb25jZXJuIGlzLCBhcyBJIHN1c3BlY3RlZCwgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcy4gU3RhbmRhcmQgUUVNVSwgdGhlIHR5cGljYWwgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIsIGRvZXNuJ3QgZW11bGF0ZSB0aGVzZSBOSUNzLiBOb3csIGxldCdzIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9uLiBEaWdnaW5nIGludG8gdGhlIGtlcm5lbCBjb2RlLCBgbWx4NWAgaG9va3MgaW50byB0aGUgUENJIHN1YnN5c3RlbSB1c2luZyBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAuLi4gZXhhY3RseS4gTm8gdmlydHVhbCBvciBlbXVsYXRlZCBkZXZpY2VzIGFyZSBwcmVzZW50IGluIFFFTVUncyBzdGFuZGFyZCBzZXR1cC4gVGhpcyBjb25maXJtcyBpdC5cblxuVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCBhYnNvbHV0ZWx5IGJlbG9uZ3MgdG8gdGhpcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLiBBbmQgdGhhdCdzIGEga2V5IHBvaW50OiBpdCAqbmVlZHMqIHJlYWwgTWVsbGFub3ggaGFyZHdhcmUgdG8gZnVuY3Rpb24uIEl0J3Mgbm90IGEgY2FuZGlkYXRlIGZvciBlZmZlY3RpdmUgZnV6emluZyBpbiB0aGVzZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cbk5vdywgbGV0J3MgZm9ybWF0IHRoZSBgc2V0LXJlc3VsdHNgIG91dHB1dCBjb3JyZWN0bHkuXG5cbiogICBgV29ydGhGdXp6aW5nYDogRmFsc2UuXG4qICAgYFJlYXNvbmluZ2A6IFdlIG5lZWQgdG8gY29uY2lzZWx5IGFydGljdWxhdGUgd2h5IGl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEl0J3MgdGhlIHZlbmRvci1zcGVjaWZpYyBuYXR1cmUgb2YgdGhlIE1lbGxhbm94IGBtbHg1YCBkcml2ZXIsIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIE5JQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS92aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoYXQncyBhIGNsZWFyIGV4cGxhbmF0aW9uLlxuKiAgIGBFbmFibGVDb25maWdzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC5cbiogICBgRm9jdXNTeW1ib2xzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC5cblxuT2theSwgdGhhdCdzIGNsZWFyLiBOb3cgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA2OSwiT3V0cHV0VG9rZW5zIjoxMDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDg6MjUuODk0OTcxMTkzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDg6MjUuODk0OTk0NTEzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtmjmm[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-03 18:16:43 +0000 UTC FinishedAt: 2026-09-03 18:48:27 +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+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAxODo0NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1xuaW5kZXggODk0OTBmNjg3YTljNi4uOTNjNjJkM2YzZTViZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG5AQCAtMzExLDEyICYjNDM7MzExLDE1IEBAIHNhbXBsZV9yZXN0b3JlX2dldChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgdTMyIG9ial9pZCxcbiBzdGF0aWMgdm9pZFxuIHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxuIHtcbiYjNDM7XHRib29sIGxhc3Q7XG4mIzQzO1xuIFx0bXV0ZXhfbG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4tXHRpZiAoLS1yZXN0b3JlLVx1MDAzZWNvdW50ID09IDApXG4mIzQzO1x0bGFzdCA9IC0tcmVzdG9yZS1cdTAwM2Vjb3VudCA9PSAwO1xuJiM0MztcdGlmIChsYXN0KVxuIFx0XHRoYXNoX2RlbChcdTAwMjZyZXN0b3JlLVx1MDAzZWhsaXN0KTtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gXG4tXHRpZiAoIXJlc3RvcmUtXHUwMDNlY291bnQpIHtcbiYjNDM7XHRpZiAobGFzdCkge1xuIFx0XHRtbHg1X2RlbF9mbG93X3J1bGVzKHJlc3RvcmUtXHUwMDNlcnVsZSk7XG4gXHRcdG1seDVfbW9kaWZ5X2hlYWRlcl9kZWFsbG9jKHRjX3BzYW1wbGUtXHUwMDNlZXN3LVx1MDAzZWRldiwgcmVzdG9yZS1cdTAwM2Vtb2RpZnlfaGRyKTtcbiBcdFx0a2ZyZWUocmVzdG9yZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jCmluZGV4IDg5NDkwZjY4N2E5YzYuLjkzYzYyZDNmM2U1YmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMKQEAgLTMxMSwxMiAmIzQzOzMxMSwxNSBAQCBzYW1wbGVfcmVzdG9yZV9nZXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHUzMiBvYmpfaWQsCiBzdGF0aWMgdm9pZAogc2FtcGxlX3Jlc3RvcmVfcHV0KHN0cnVjdCBtbHg1ZV90Y19wc2FtcGxlICp0Y19wc2FtcGxlLCBzdHJ1Y3QgbWx4NWVfc2FtcGxlX3Jlc3RvcmUgKnJlc3RvcmUpCiB7CiYjNDM7CWJvb2wgbGFzdDsKJiM0MzsKIAltdXRleF9sb2NrKCZhbXA7dGNfcHNhbXBsZS0mZ3Q7cmVzdG9yZV9sb2NrKTsKLQlpZiAoLS1yZXN0b3JlLSZndDtjb3VudCA9PSAwKQomIzQzOwlsYXN0ID0gLS1yZXN0b3JlLSZndDtjb3VudCA9PSAwOwomIzQzOwlpZiAobGFzdCkKIAkJaGFzaF9kZWwoJmFtcDtyZXN0b3JlLSZndDtobGlzdCk7CiAJbXV0ZXhfdW5sb2NrKCZhbXA7dGNfcHNhbXBsZS0mZ3Q7cmVzdG9yZV9sb2NrKTsKIAotCWlmICghcmVzdG9yZS0mZ3Q7Y291bnQpIHsKJiM0MzsJaWYgKGxhc3QpIHsKIAkJbWx4NV9kZWxfZmxvd19ydWxlcyhyZXN0b3JlLSZndDtydWxlKTsKIAkJbWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS0mZ3Q7ZXN3LSZndDtkZXYsIHJlc3RvcmUtJmd0O21vZGlmeV9oZHIpOwogCQlrZnJlZShyZXN0b3JlKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA0OAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDY4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoZSBwYXRjaCBsb29rcyBzdHJhaWdodGZvcndhcmQgZW5vdWdoIOKAkyBpdCYjMzk7cyBhIHNtYWxsIGNoYW5nZSBpbiB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHRyYWZmaWMgY29udHJvbCAodGMpIHNhbXBsaW5nIHNlY3Rpb24gKGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNgKS4gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgc2FtcGxlX3Jlc3RvcmVfcHV0YCBmdW5jdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhleSYjMzk7dmUganVzdCByZWZpbmVkIHRoZSBsb2dpYyBhcm91bmQgcmVsZWFzaW5nIHJlc291cmNlcyBhc3NvY2lhdGVkIHdpdGggYSBgcmVzdG9yZWAgc3RydWN0dXJlLCBzcGVjaWZpY2FsbHkgd2hlbiB0aGUgYHJlc3RvcmUtJmd0O2NvdW50YCBoaXRzIHplcm8uIFRoZXkmIzM5O3ZlIGFkZGVkIGEgYGxhc3RgIHZhcmlhYmxlIGZvciBjbGFyaXR5IGFuZCBtZXJnZWQgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGEgYml0LCB3aGljaCBpcyBnb29kLgoKTXkgaW1tZWRpYXRlIGNvbmNlcm4sIHRob3VnaCwgaXMgd2hldGhlciB0aGlzIGRyaXZlciBpcyBldmVuICpmdXp6YWJsZSogaW4gb3VyIGN1cnJlbnQgc2V0dXAuIFdlJiMzOTtyZSBydW5uaW5nIHRocm91Z2ggdGhlIGNoZWNrbGlzdC4gRmlyc3QsIHRoZSBsb2NhdGlvbiBjb25maXJtcyBpdCYjMzk7cyB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCB0aGF0IHRyaWdnZXJzIGEgcmVkIGZsYWcuIFdlIGtub3cgZnJvbSB0aGUgcnVsZXMgdGhhdCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbiYjMzk7dCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHN5emthbGxlciBlbnZpcm9ubWVudHMgYXJlIGEgcHJvYmxlbS4gVGhpcyBpcyBhIE1lbGxhbm94IE5JQyBkcml2ZXIgKENvbm5lY3RYLTQsIENvbm5lY3RYLTUsIENvbm5lY3RYLTYsIGV0Yy4pLCBhbmQgdGhvc2UgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSAoQVNJQy9QQ0llIGNhcmQpLiBUaGUgcnVsZXMgZXhwbGljaXRseSBsaXN0IE1lbGxhbm94IGFtb25nIHRoZSAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IOKAkyBzbywgKmxpa2VseSogYSBuby1nby4KCkhvd2V2ZXIsIEkmIzM5O20gbm90IGdvaW5nIHRvIGp1bXAgdG8gY29uY2x1c2lvbnMgKmp1c3QqIHlldC4gSXQmIzM5O3MgY3J1Y2lhbCB0byBiZSB0aG9yb3VnaC4gSSBuZWVkIHRvIHF1aWNrbHkgdmVyaWZ5OiBkb2VzIHRoZSBtbHg1IGRyaXZlciBoYXZlIGFueSBzb3J0IG9mIG1vY2sgb3IgdmlydHVhbCBuZXRkZXYgc3VwcG9ydD8gV2UmIzM5O3ZlIHNlZW4gc29tZSBOSUMgZHJpdmVycyBwcm92aWRlIHRoYXQg4oCTIGEgd2F5IHRvIHRlc3Qgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQuIEkgbmVlZCB0byB1c2UgZ3JlcHBlciBvciByZWFkLWZpbGUgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBldmlkZW5jZSBvZiBzdWNoIGEgdGhpbmcuIElmIGl0JiMzOTtzICpzdHJpY3RseSogcGh5c2ljYWwgaGFyZHdhcmUsIHRoZW4gdGhlIFdvcnRoRnV6emluZyBmbGFnIGlzIHNldCB0byBmYWxzZSwgYW5kIHdlIGNhbiBtb3ZlIG9uLiBCdXQsIGlmIHRoZXJlIGlzIGEgdmlydHVhbCBpbnRlcmZhY2UsIHRoYXQgY2hhbmdlcyB0aGUgY2FsY3VsYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX01MWDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMjkzIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6OTpvYmotJChDT05GSUdfTUxYNV9DT1JFKSAmIzQzOz0gbWx4NV9jb3JlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9MTQ9bWx4NV9jb3JlLXkgOj1cdG1haW4ubyBjbWQubyBkZWJ1Z2ZzLm8gZncubyBlcS5vIHVhci5vIHBhZ2VhbGxvYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSAmIzQzOz0gZW4vcnF0Lm8gZW4vdGlyLm8gZW4vcnNzLm8gZW4vcnhfcmVzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0yNy1cdFx0ZW4vY2hhbm5lbHMubyBlbl9tYWluLm8gZW5fY29tbW9uLm8gZW5fZnMubyBlbl9ldGh0b29sLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMzctI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICAmIzQzOz0gZW5fYXJmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICYjNDM7PSBlbl9mc19ldGh0b29sLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgJiM0Mzs9IGVuX2RjYm5sLm8gZW4vcG9ydF9idWZmZXIub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQxLW1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgJiM0Mzs9IGVuL2h2X3ZoY2Ffc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICAmIzQzOz0gbGFnL21wLm8gbGFnL3BvcnRfc2VsLm8gbGliL2dlbmV2ZS5vIGxpYi9wb3J0X3R1bi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDMtXHRcdFx0XHRcdGVuX3JlcC5vIGVuL3JlcC9ib25kLm8gZW4vbW9kX2hkci5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDQtXHRcdFx0XHRcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NDU6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICYjNDM7PSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXHRcdFx0XHRcdGxpYi9mc19jaGFpbnMubyBlbi90Y190dW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo1MzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DTFNfQUNUKSAgICAgJiM0Mzs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cdFx0XHRcdFx0ZW4vdGMvYWN0L2FjY2VwdC5vIGVuL3RjL2FjdC9tYXJrLm8gZW4vdGMvYWN0L2dvdG8ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2MTppZm5lcSAoJChDT05GSUdfTUxYNV9UQ19DVCksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTYyLVx0bWx4NV9jb3JlLXlcdFx0XHQgICAgICYjNDM7PSBlbi90Y19jdC5vIGVuL3RjL2N0X2ZzX2RtZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICYjNDM7PSBlbi90Yy9jdF9mc19zbWZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NDpcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSAmIzQzOz0gZW4vdGMvY3RfZnNfaG1mcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjUtZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo2NzptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9UQ19TQU1QTEUpICAgJiM0Mzs9IGVuL3RjL3NhbXBsZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo3MjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FU1dJVENIKSAgICYjNDM7PSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXHRcdFx0XHQgICAgICBlY3BmLm8gcmRtYS5vIGVzdy9sZWdhY3kubyBlc3cvYWRqX3Zwb3J0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2FjbC9oZWxwZXIubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTc3LVx0XHRcdFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4MDppZm5lcSAoJChDT05GSUdfTUxYNV9FTl9JUFNFQyksKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICAmIzQzOz0gZXN3L2lwc2VjX2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04Mi1lbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgJiM0Mzs9IGVzdy9icmlkZ2UubyBlc3cvYnJpZGdlX21jYXN0Lm8gZXN3L2JyaWRnZV9kZWJ1Z2ZzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS04NS1cdFx0XHRcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT04Nz1tbHg1X2NvcmUtJChDT05GSUdfSFdNT04pICAgICAgICAgICYjNDM7PSBod21vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6ODg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfTVBGUykgICAgICAmIzQzOz0gbGliL21wZnMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg5LWlmbmVxICgkKENPTkZJR19WWExBTiksKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT05Mz1tbHg1X2NvcmUtJChDT05GSUdfUENJX0hZUEVSVl9JTlRFUkZBQ0UpICYjNDM7PSBsaWIvaHYubyBsaWIvaHZfdmhjYS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTk3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSAmIzQzOz0gaXBvaWIvaXBvaWIubyBpcG9pYi9ldGh0b29sLm8gaXBvaWIvaXBvaWJfdmxhbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwMi0jXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICYjNDM7PSBmcGdhL2NtZC5vIGZwZ2EvY29yZS5vIGZwZ2EvY29ubi5vIGZwZ2Evc2RrLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTA1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X01BQ1NFQykgJiM0Mzs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cdFx0XHRcdCAgICAgIGVuX2FjY2VsL21hY3NlY19zdGF0cy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgJiM0Mzs9IGVuX2FjY2VsL2lwc2VjLm8gZW5fYWNjZWwvaXBzZWNfcnh0eC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTA5LVx0XHRcdFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTExLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExMjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9UTFMpICYjNDM7PSBlbl9hY2NlbC9rdGxzX3N0YXRzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMTMtXHRcdFx0XHQgICBlbl9hY2NlbC9mc190Y3AubyBlbl9hY2NlbC9rdGxzLm8gZW5fYWNjZWwva3Rsc190eHJ4Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjExNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9QU1ApICYjNDM7PSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEyMTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9TV19TVEVFUklORykgJiM0Mzs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cdFx0XHRcdFx0c3RlZXJpbmcvc3dzL2RyX3RhYmxlLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNDY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICYjNDM7PSBzdGVlcmluZy9od3MvY21kLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXHRcdFx0XHRcdHN0ZWVyaW5nL2h3cy9jb250ZXh0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNjg6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0YpICYjNDM7PSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE2OS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxNzM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU0ZfTUFOQUdFUikgJiM0Mzs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTc0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xNzg9bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSAmIzQzOz0gbGliL3N0Lm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTgwOm9iai0kKENPTkZJR19NTFg1X0RQTEwpICYjNDM7PSBtbHg1X2RwbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE4MS1tbHg1X2RwbGwteSA6PVx0ZHBsbC5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTQzPXN0YXRpYyBib29sIGlzX2V0aF9yZXBfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjQ1Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0VTV0lUQ0gpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTQ2LVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTU3PWJvb2wgbWx4NV9ldGhfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjU5Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0NPUkVfRU4pKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTYwLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTEwOT1ib29sIG1seDVfdm5ldF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xMTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjExMTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9WRFBBX05FVCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTEyLVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE0Mj1zdGF0aWMgYm9vbCBpc19pYl9yZXBfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTQzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxNDQ6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTQ1LVx0XHRyZXR1cm4gZmFsc2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE1OT1zdGF0aWMgYm9vbCBpc19tcF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjE2MTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNjItXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MTc5PWJvb2wgbWx4NV9yZG1hX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6MTgxOlx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4Mi1cdFx0cmV0dXJuIGZhbHNlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0yMDc9c3RhdGljIGJvb2wgaXNfZHBsbF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0yMDgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjIwOTpcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9EUExMKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0yMTAtXHRcdHJldHVybiBmYWxzZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTM2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIG1seDVfZGV2bGlua19vcHMgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjM2OTojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy0zNzAtXHQuZXN3aXRjaF9tb2RlX3NldCA9IG1seDVfZGV2bGlua19lc3dpdGNoX21vZGVfc2V0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtMzg3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozODg6I2lmZGVmIENPTkZJR19NTFg1X1NGX01BTkFHRVJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtMzg5LVx0LnBvcnRfbmV3ID0gbWx4NV9kZXZsaW5rX3NmX3BvcnRfbmV3LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9NDYyPXN0YXRpYyBpbnQgbWx4NV9kZXZsaW5rX2VuYWJsZV9yb2NlX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjQ4MjojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODMtc3RhdGljIGludCBtbHg1X2RldmxpbmtfbGFyZ2VfZ3JvdXBfbnVtX3ZhbGlkYXRlKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rLCB1MzIgaWQsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYz01ODA9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX3BhcmFtIG1seDVfZGV2bGlua19wYXJhbXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTU4Mi1cdFx0XHQgICAgICBOVUxMLCBOVUxMLCBtbHg1X2RldmxpbmtfZW5hYmxlX3JvY2VfdmFsaWRhdGUpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo1ODM6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtNTg0LVx0REVWTElOS19QQVJBTV9EUklWRVIoTUxYNV9ERVZMSU5LX1BBUkFNX0lEX0VTV19MQVJHRV9HUk9VUF9OVU0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYz01OTY9c3RhdGljIHZvaWQgbWx4NV9kZXZsaW5rX3NldF9wYXJhbXNfaW5pdF92YWx1ZXMoc3RydWN0IGRldmxpbmsgKmRldmxpbmspXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjYwNjojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDctXHR2YWx1ZS52dTMyID0gRVNXX09GRkxPQURTX0RFRkFVTFRfTlVNX0dST1VQUztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTc5NT1zdGF0aWMgaW50IG1seDVfZGV2bGlua19yZG1hX3BhcmFtc19yZWdpc3RlcihzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgwMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6ODAxOlx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MDItXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9ODE2PXN0YXRpYyB2b2lkIG1seDVfZGV2bGlua19yZG1hX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo4MTg6XHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgxOS1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg6MTA6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaD0yMT1pbnQgbWx4NV9jbWRfcGZfZGlzYWJsZV9oY2Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHZwb3J0X251bSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTIyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaDoyMzojZWxzZSAgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oPTI4PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1X2VjX2NsZWFudXAoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldikge31cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oOjMwOiNlbmRpZiAvKiBDT05GSUdfTUxYNV9FU1dJVENIICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTMxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oPTkwNT1zdHJ1Y3QgbWx4NWVfcHJpdiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTExOiNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEyLVx0c3RydWN0IG1seDVlX2RjYnhfZHAgICAgICAgZGNieF9kcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NTctXHRzdHJ1Y3QgdWRwX3R1bm5lbF9uaWNfaW5mbyBuaWNfaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjk1ODojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk1OS1cdHN0cnVjdCBtbHg1ZV9kY2J4ICAgICAgICAgIGRjYng7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTYzLVx0dm9pZCAgICAgICAgICAgICAgICAgICAgICAqcHByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NjQ6I2lmZGVmIENPTkZJR19NTFg1X01BQ1NFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY1LVx0c3RydWN0IG1seDVlX21hY3NlYyAgICAgICAqbWFjc2VjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY2LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTY3OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY4LVx0c3RydWN0IG1seDVlX2lwc2VjICAgICAgICAqaXBzZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjktI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NzA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcxLVx0c3RydWN0IG1seDVlX3BzcCAgICAgICAgICAqcHNwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcyLSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTczOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9UTFNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk3NC1cdHN0cnVjdCBtbHg1ZV90bHMgICAgICAgICAgKnRscztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD0xMjk5PWludCBtbHg1ZV9zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgbmV0ZGV2X2ZlYXR1cmVzX3QgZmVhdHVyZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6MTMwMDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtMTMwMS1pbnQgbWx4NWVfc2V0X3ZmX21hYyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdmYsIHU4ICptYWMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9kY2JubC5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZGNibmwuaDo3OiNpZmRlZiBDT05GSUdfTUxYNV9DT1JFX0VOX0RDQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2RjYm5sLmgtOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD03OD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04NC1cdE1MWDVFX0ZTX1RUX0FOWV9GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6ODU6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtODYtXHRNTFg1RV9BQ0NFTF9GU19UQ1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgJiM0MzsgMSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6ODg6I2lmZGVmIENPTkZJR19NTFg1X0VOX0FSRlNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg5LVx0TUxYNUVfQVJGU19GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTAtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDo5MTojaWYgZGVmaW5lZChDT05GSUdfTUxYNV9FTl9JUFNFQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTkyLVx0TUxYNUVfQUNDRUxfRlNfRVNQX0ZUX0xFVkVMID0gTUxYNUVfSU5ORVJfVFRDX0ZUX0xFVkVMICYjNDM7IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTctI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDo5ODojaWYgZGVmaW5lZChDT05GSUdfTUxYNV9FTl9QU1ApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC05OS1cdE1MWDVFX0FDQ0VMX0ZTX1BTUF9GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCAmIzQzOyAxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTEwNj1zdHJ1Y3QgbWx4NWVfcnhfcmVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTA3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTA4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9BUkZTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xMDktc3RydWN0IG1seDVlX2FyZnNfdGFibGVzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTEyNT1zdGF0aWMgaW5saW5lIGludCBtbHg1ZV9hcmZzX2Rpc2FibGUoc3RydWN0IG1seDVlX2Zsb3dfc3RlZXJpbmcgKmZzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjEyOTojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xMzAtc3RydWN0IG1seDVlX2FjY2VsX2ZzX3RjcDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xNzA9c3RhdGljIGlubGluZSBib29sIG1seDVlX2ZzX2hhc19hcmZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzEte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTcyOlx0cmV0dXJuIElTX0VOQUJMRUQoQ09ORklHX01MWDVfRU5fQVJGUykgXHUwMDI2XHUwMDI2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzMtXHRcdG5ldGRldi1cdTAwM2Vod19mZWF0dXJlcyBcdTAwMjYgTkVUSUZfRl9OVFVQTEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTc2PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9mc193YW50X2FyZnMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxNzg6XHRyZXR1cm4gSVNfRU5BQkxFRChDT05GSUdfTUxYNV9FTl9BUkZTKSBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3OS1cdFx0bmV0ZGV2LVx1MDAzZWZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX05UVVBMRTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxODI6I2lmZGVmIENPTkZJR19NTFg1X0VOX1JYTkZDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODMtc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKm1seDVlX2ZzX2dldF9ldGh0b29sKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTg2PXZvaWQgbWx4NWVfZnNfc2V0X3R0YyhzdHJ1Y3QgbWx4NWVfZmxvd19zdGVlcmluZyAqZnMsIHN0cnVjdCBtbHg1X3R0Y190YWJsZSAqdHRjLCBib29sIGlubmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4NzojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTg4LXN0cnVjdCBtbHg1ZV9hcmZzX3RhYmxlcyAqbWx4NWVfZnNfZ2V0X2FyZnMoc3RydWN0IG1seDVlX2Zsb3dfc3RlZXJpbmcgKmZzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xOTY9dm9pZCBtbHg1ZV9mc19zZXRfdWRwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVlX2ZzX3VkcCAqdWRwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE5NzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xOTgtc3RydWN0IG1seDVlX2FjY2VsX2ZzX3RjcCAqbWx4NWVfZnNfZ2V0X2FjY2VsX3RjcChzdHJ1Y3QgbWx4NWVfZmxvd19zdGVlcmluZyAqZnMpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmg9OD1zdHJ1Y3QgbWx4NWVfZXRodG9vbF9zdGVlcmluZztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmg6OTojaWZkZWYgQ09ORklHX01MWDVfRU5fUlhORkNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmgtMTAtaW50IG1seDVlX2V0aHRvb2xfYWxsb2Moc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKipldGh0b29sKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjk6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQlJJREdFKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTEyPXZvaWQgbWx4NWVfcmVwX2JyaWRnZV9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjE0OiNlbHNlIC8qIENPTkZJR19NTFg1X0JSSURHRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTE3PXN0YXRpYyBpbmxpbmUgdm9pZCBtbHg1ZV9yZXBfYnJpZGdlX2NsZWFudXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaDoxOTojZW5kaWYgLyogQ09ORklHX01MWDVfQlJJREdFICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTIwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC05LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oOjEwOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtMTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oPTI0PXZvaWQgbWx4NWVfcmVwX3F1ZXVlX25laWdoX3N0YXRzX3dvcmsoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oOjI2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0yNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg9MzE9bWx4NWVfcmVwX25laWdoX2NsZWFudXAoc3RydWN0IG1seDVlX3JlcF9wcml2ICpycHJpdikge31cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDozMzojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz03MDA9dm9pZCBtbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy03MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6NzMyOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTczMy1cdGlmICghKHR1bm5lbF9pZCBcdTAwM2VcdTAwM2UgRVNXX1RVTl9PUFRTX0JJVFMpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oOjExOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oPTM5PXZvaWQgbWx4NWVfcmVwX3RjX3JlY2VpdmUoc3RydWN0IG1seDVfY3FlNjQgKmNxZSwgc3RydWN0IG1seDVlX3JxICpycSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg6NDI6I2Vsc2UgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaD02OD1tbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC03MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaDo3MTojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM9MTMyPXZvaWQgbWx4NWVfc2VscV9jYW5jZWwoc3RydWN0IG1seDVlX3NlbHEgKnNlbHEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE0MDojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTQxLXN0YXRpYyBpbnQgbWx4NWVfZ2V0X2RzY3BfdXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYz0xNTQ9c3RhdGljIGludCBtbHg1ZV9nZXRfdXAoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHN0cnVjdCBza19idWZmICpza2IpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTE1NS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE1NjojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTU3LVx0aWYgKFJFQURfT05DRShwcml2LVx1MDAzZWRjYnhfZHAudHJ1c3Rfc3RhdGUpID09IE1MWDVfUVBUU19UUlVTVF9EU0NQKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oPTM5PXN0cnVjdCBtbHg1X2N0X2ZzX29wcyAqbWx4NV9jdF9mc19kbWZzX29wc19nZXQodm9pZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oOjQxOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmgtNDItc3RydWN0IG1seDVfY3RfZnNfb3BzICptbHg1X2N0X2ZzX3NtZnNfb3BzX2dldCh2b2lkKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaD00NT1tbHg1X2N0X2ZzX3NtZnNfb3BzX2dldCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTQ4LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oOjQ5OiNlbmRpZiAvKiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmgtNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9IV19TVEVFUklORylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTUyLXN0cnVjdCBtbHg1X2N0X2ZzX29wcyAqbWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NTU9bWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01OC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTYwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oPTEyPWVudW0gbWx4NWVfdGNfaW50X3BvcnRfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtMTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaDoxNzojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtMTgtYm9vbCBtbHg1ZV90Y19pbnRfcG9ydF9zdXBwb3J0ZWQoY29uc3Qgc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD00Mj1pbnQgbWx4NWVfdGNfaW50X3BvcnRfZ2V0X2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1ZV90Y19pbnRfcG9ydCAqaW50X3BvcnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0Lmg6NDM6I2Vsc2UgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtNDQtc3RhdGljIGlubGluZSB1MzJcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD02Mj1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfdGNfaW50X3BvcnRfY2xlYW51cF9yZXBfcngoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC02My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjY0OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC02NS0jZW5kaWYgLyogX19NTFg1X0VOX1RDX0lOVF9QT1JUX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTcyPW1seDVlX3RjX21ldGVyX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTc0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6NzU6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg9Nzc9aW50IG1seDVlX2Zsb3dfbWV0ZXJfZ2V0X2Jhc2VfaWQoc3RydWN0IG1seDVlX2Zsb3dfbWV0ZXJfaGFuZGxlICptZXRlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oOjc5OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oLTgwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTgyPW1seDVlX2Zsb3dfbWV0ZXJfZ2V0X2Jhc2VfaWQoc3RydWN0IG1seDVlX2Zsb3dfbWV0ZXJfaGFuZGxlICptZXRlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaDo4NjojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtODctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaD0xNz1lbnVtIG1seDVlX3Bvc3RfbWV0ZXJfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg6MjI6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaD00ND1tbHg1ZV9wb3N0X21ldGVyX2NsZWFudXAoc3RydWN0IG1seDVfZXN3aXRjaCAqZXN3LCBzdHJ1Y3QgbWx4NWVfcG9zdF9tZXRlcl9wcml2ICpwb3N0X21ldGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjQ2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmgtNDctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTEzPXN0cnVjdCBtbHg1ZV9zYW1wbGVfYXR0ciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX1NBTVBMRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaC0yMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg9NDA9bWx4NWVfdGNfc2FtcGxlX2NsZWFudXAoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjQyOiNlbHNlIC8qIENPTkZJR19NTFg1X1RDX1NBTVBMRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaD02Mz1tbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopIHt9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg6NjU6I2VuZGlmIC8qIENPTkZJR19NTFg1X1RDX1NBTVBMRSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTY2LSNlbmRpZiAvKiBfX01MWDVfRU5fVENfU0FNUExFX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTI1PXN0cnVjdCBtbHg1X2N0X2F0dHIge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0Lmg6OTQ6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfVENfQ1QpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaC05NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaD0xMzI9Ym9vbCBtbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGZsb3dfcnVsZSAqZmxvd19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTEzMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjEzNDojZWxzZSAvKiBDT05GSUdfTUxYNV9UQ19DVCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMTM1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTIwOT1tbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaC0yMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaDoyMTU6I2VuZGlmIC8qICFJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMjE2LSNlbmRpZiAvKiBfX01MWDVfRU5fVENfQ1RfSF9fICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjE0OiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oPTExOD1ib29sIG1seDVlX3RjX3R1bl9lbmNhcF9pbmZvX2VxdWFsX29wdGlvbnMoc3RydWN0IG1seDVlX2VuY2FwX2tleSAqYSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTIwLVx0XHRcdFx0XHQgICB1MzIgdHVuX3R5cGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjEyMTojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEyMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTY1PWVudW0gbWx4NWVfaWNvc3Ffd3FlX3R5cGUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtNjctXHRNTFg1RV9JQ09TUV9XUUVfVU1SX1JYLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDo2ODojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTY5LVx0TUxYNUVfSUNPU1FfV1FFX1VNUl9UTFMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0xNzc9c3RydWN0IG1seDVlX3R4X3dxZV9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTE4Mi1cdHU4IG51bV9maWZvX3BrdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oOjE4MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTE4NC1cdHN0cnVjdCBwYWdlICpyZXN5bmNfZHVtcF9mcmFnX3BhZ2U7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaD0yNDA9c3RydWN0IG1seDVlX2ljb3NxX3dxZV9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTI0OS1cdFx0c3RydWN0IG1seDVlX3NoYW1wb191bXIgc2hhbXBvO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoyNTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0yNTEtXHRcdHN0cnVjdCB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTAzPXN0cnVjdCBtbHg1ZV9hY2NlbF90eF9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTA1LVx0c3RydWN0IG1seDVlX2FjY2VsX3R4X3Rsc19zdGF0ZSB0bHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDYtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDc6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDgtXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfaXBzZWNfc3RhdGUgaXBzZWM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDktI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTExLVx0c3RydWN0IG1seDVlX2FjY2VsX3R4X3BzcF9zdGF0ZSBwc3Bfc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTE1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9hY2NlbF90eF9iZWdpbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTExOS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTIxLVx0LyogTWF5IHNlbmQgV1FFcy4gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI5LVx0aWYgKG1seDVlX3BzcF9pc19vZmZsb2FkKHNrYiwgZGV2KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjEzNTojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNi1cdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXHUwMDI2c3EtXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNiB4ZnJtX29mZmxvYWQoc2tiKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE0MjojaWZkZWYgQ09ORklHX01MWDVfTUFDU0VDXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNDMtXHRpZiAodW5saWtlbHkobWx4NWVfbWFjc2VjX3NrYl9pc19vZmZsb2FkKHNrYikpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTU0PXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IG1seDVlX2FjY2VsX3R4X2lkc19sZW4oc3RydWN0IG1seDVlX3R4cXNxICpzcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNTcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTU4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE1OS1cdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZF9zdGF0ZShcdTAwMjZzdGF0ZS1cdTAwM2Vwc3Bfc3QpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE2Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE2MzojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE2NC1cdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXHUwMDI2c3EtXHUwMDNlc3RhdGUpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oPTE3ND1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfYWNjZWxfdHhfZXNlZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTc5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4MC1cdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZF9zdGF0ZShcdTAwMjZhY2NlbC1cdTAwM2Vwc3Bfc3QpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE4NDojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4NS1cdGlmICh4ZnJtX29mZmxvYWQoc2tiKSlcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NjYxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIHRoZXNlIHRoaW5nczoKCioqQW5hbHl6aW5nIE1lbGxhbm94IG1seDUgU2FtcGxpbmcgSW1wbGVtZW50YXRpb24qKgoKT2theSwgdGltZSB0byBkaWcgaW50byB0aGlzIGBzYW1wbGUuY2AgZmlsZSBhbmQgdW5kZXJzdGFuZCBob3cgaXQmIzM5O3MgYmVpbmcgbGV2ZXJhZ2VkIGluIHRoZSBgbWx4NWAgY29udGV4dC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IGhvdyB0aGUgc2FtcGxpbmcgaXMgd29ya2luZyBmb3IgdGhlIG1seDUgaGFyZHdhcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGl0JiMzOTtzIGJlaW5nIHVzZWQuIExldCYjMzk7cyBzdGFydCBieSBsb29raW5nIGF0IGl0cyB1c2Ugd2l0aGluIHRoZSBrZXJuZWwuIEkmIzM5O2xsIG5lZWQgdG8gZ28gdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY2AgYW5kIGRpdmUgZGVlcC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBmdW5jdGlvbnMgYXJlIGJlaW5nIGNhbGxlZCwgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGluIHBsYXksIGFuZCBob3cgdGhpcyBzYW1wbGluZyBmdW5jdGlvbmFsaXR5IGludGVncmF0ZXMgd2l0aCB0aGUgYnJvYWRlciB0cmFmZmljIGNvbnRyb2wgZnJhbWV3b3JrLiBUaGlzIHNob3VsZCBiZSBpbnRlcmVzdGluZyDigJMgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMzAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAzMDA6XHRcdHJldHVybiByZXN0b3JlO1xuIDMwMTpcdFxuIDMwMjpcdGVycl9yZXN0b3JlOlxuIDMwMzpcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2MobWRldiwgcmVzdG9yZS1cdTAwM2Vtb2RpZnlfaGRyKTtcbiAzMDQ6XHRlcnJfbW9kaWZ5X2hkcjpcbiAzMDU6XHRcdGtmcmVlKHJlc3RvcmUpO1xuIDMwNjpcdGVycl9hbGxvYzpcbiAzMDc6XHRcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gMzA4Olx0XHRyZXR1cm4gRVJSX1BUUihlcnIpO1xuIDMwOTpcdH1cbiAzMTA6XHRcbiAzMTE6XHRzdGF0aWMgdm9pZFxuIDMxMjpcdHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxuIDMxMzpcdHtcbiAzMTQ6XHRcdGJvb2wgbGFzdDtcbiAzMTU6XHRcbiAzMTY6XHRcdG11dGV4X2xvY2soXHUwMDI2dGNfcHNhbXBsZS1cdTAwM2VyZXN0b3JlX2xvY2spO1xuIDMxNzpcdFx0bGFzdCA9IC0tcmVzdG9yZS1cdTAwM2Vjb3VudCA9PSAwO1xuIDMxODpcdFx0aWYgKGxhc3QpXG4gMzE5Olx0XHRcdGhhc2hfZGVsKFx1MDAyNnJlc3RvcmUtXHUwMDNlaGxpc3QpO1xuIDMyMDpcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnRjX3BzYW1wbGUtXHUwMDNlcmVzdG9yZV9sb2NrKTtcbiAzMjE6XHRcbiAzMjI6XHRcdGlmIChsYXN0KSB7XG4gMzIzOlx0XHRcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cdTAwM2VydWxlKTtcbiAzMjQ6XHRcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS1cdTAwM2Vlc3ctXHUwMDNlZGV2LCByZXN0b3JlLVx1MDAzZW1vZGlmeV9oZHIpO1xuIDMyNTpcdFx0XHRrZnJlZShyZXN0b3JlKTtcbiAzMjY6XHRcdH1cbiAzMjc6XHR9XG4gMzI4Olx0XG4gMzI5Olx0dm9pZCBtbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopXG4gMzMwOlx0e1xuIDMzMTpcdFx0dTMyIHRydW5jX3NpemUgPSBtYXBwZWRfb2JqLVx1MDAzZXNhbXBsZS50cnVuY19zaXplO1xuIDMzMjpcdFx0c3RydWN0IHBzYW1wbGVfZ3JvdXAgcHNhbXBsZV9ncm91cCA9IHt9O1xuIDMzMzpcdFx0c3RydWN0IHBzYW1wbGVfbWV0YWRhdGEgbWQgPSB7fTtcbiAzMzQ6XHRcbiAzMzU6XHRcdG1kLnRydW5jX3NpemUgPSB0cnVuY19zaXplID8gbWluKHRydW5jX3NpemUsIHNrYi1cdTAwM2VsZW4pIDogc2tiLVx1MDAzZWxlbjtcbiAzMzY6XHRcdG1kLmluX2lmaW5kZXggPSBza2ItXHUwMDNlZGV2LVx1MDAzZWlmaW5kZXg7XG4gMzM3Olx0XHRwc2FtcGxlX2dyb3VwLmdyb3VwX251bSA9IG1hcHBlZF9vYmotXHUwMDNlc2FtcGxlLmdyb3VwX2lkO1xuIDMzODpcdFx0cHNhbXBsZV9ncm91cC5uZXQgPSBcdTAwMjZpbml0X25ldDtcbiAzMzk6XHRcdHNrYl9wdXNoKHNrYiwgc2tiLVx1MDAzZW1hY19sZW4pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNTk4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogNTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqRGl2aW5nIGludG8gdGhlIG1seDUgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCwgYW5kIHdoaWxlIEkmIzM5O3ZlIGdvdCBhIGdyYXNwIG9mIHRoZSBzYW1wbGUgY29kZSYjMzk7cyByb2xlIGluIFRDICh0cmFmZmljIGNvbnRyb2wpIHdpdGhpbiB0aGlzIE1lbGxhbm94IGRyaXZlciwgSSBuZWVkIHRvIHpvb20gb3V0LiBJIHJlYWxseSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxhcmdlciBjb250ZXh0IG9mIGhvdyB0aGVzZSBtbHg1IGRldmljZXMgYXJlIGFjdHVhbGx5IGJyb3VnaHQgdG8gbGlmZSBhbmQgcHJvYmVkIHdpdGhpbiB0aGUgc3lzdGVtLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGJyb2FkZW4gbXkgdmlldyBhbmQgZXhhbWluZSB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhhdCBzcGVjaWZpYyBmaWxlLiBUaGVuLCBJIG5lZWQgdG8gc2VlIHdoZXJlIHRoZXNlIGRldmljZXMgY29tZSBpbnRvIHBsYXkgYW5kIHRoZSBQQ0kgZHJpdmVyLCBhbmQgaG93IGl0IGlzIHJlZ2lzdGVyZWQgYW5kIG1hbmFnZWQuIEl0JiMzOTtzIHRpbWUgdG8gZGlnIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGFuZCBwaWVjZSB0b2dldGhlciBob3cgdGhlIGRldmljZSBsaWZlY3ljbGUgdW5mb2xkcywgZnJvbSBQQ0kgZGV0ZWN0aW9uIHRocm91Z2ggdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgbWx4NSBmcmFtZXdvcmsuIEdvdHRhIGZpbmQgdGhhdCBQQ0kgZHJpdmVyIHJlZ2lzdHJhdGlvbiBwb2ludCB0byBidWlsZCBhIHByb3BlciBtZW50YWwgbW9kZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMzQ2PXN0YXRpYyBpbnQgX19pbml0IG1seDVfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjM2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM6MjM2NjpcdGVyciA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bWx4NV9jb3JlX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTIzNjctXHRpZiAoZXJyKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMDY5CgkJCQkJCQlvdXRwdXQ6IDEwOQoJCQkJCQkJdGhvdWdodHM6IDM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBtbHg1IERyaXZlciBmb3IgRnV6emluZyoqCgpPa2F5LCBsZXQmIzM5O3MgZ28gdGhyb3VnaCB0aGlzIGNhcmVmdWxseS4gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIHNwZWNpZmljYWxseSBzZWN0aW9uIDIuIFdlJiMzOTtyZSBsb29raW5nIGZvciBjb2RlIHJlbGF0ZWQgdG8gaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQWhhLCBoZXJlIGl0IGlzOiBgbWx4NWAuIFRoYXQmIzM5O3MgdGhlIE1lbGxhbm94IENvbm5lY3RYIGRyaXZlciDigJMgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciwgd2hpY2ggaGFuZGxlcyB0aGUgQ29ubmVjdFgtNCwgLTUsIGFuZCAtNiBzZXJpZXMgTklDcy4gSXQmIzM5O3MgYSBjbGFzc2ljIHZlbmRvci1zcGVjaWZpYyBTbWFydE5JQyBkcml2ZXIsIHJlcXVpcmluZyB0aGUgYWN0dWFsIE1lbGxhbm94IGhhcmR3YXJlLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIG9mIGNvdXJzZS4KClRoZSBjb25jZXJuIGlzLCBhcyBJIHN1c3BlY3RlZCwgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcy4gU3RhbmRhcmQgUUVNVSwgdGhlIHR5cGljYWwgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIsIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlc2UgTklDcy4gTm93LCBsZXQmIzM5O3MgZG91YmxlLWNoZWNrIG15IGFzc3VtcHRpb24uIERpZ2dpbmcgaW50byB0aGUga2VybmVsIGNvZGUsIGBtbHg1YCBob29rcyBpbnRvIHRoZSBQQ0kgc3Vic3lzdGVtIHVzaW5nIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYC4uLiBleGFjdGx5LiBObyB2aXJ0dWFsIG9yIGVtdWxhdGVkIGRldmljZXMgYXJlIHByZXNlbnQgaW4gUUVNVSYjMzk7cyBzdGFuZGFyZCBzZXR1cC4gVGhpcyBjb25maXJtcyBpdC4KClRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY2AgYWJzb2x1dGVseSBiZWxvbmdzIHRvIHRoaXMgdmVuZG9yLXNwZWNpZmljIGRyaXZlci4gQW5kIHRoYXQmIzM5O3MgYSBrZXkgcG9pbnQ6IGl0ICpuZWVkcyogcmVhbCBNZWxsYW5veCBoYXJkd2FyZSB0byBmdW5jdGlvbi4gSXQmIzM5O3Mgbm90IGEgY2FuZGlkYXRlIGZvciBlZmZlY3RpdmUgZnV6emluZyBpbiB0aGVzZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuCgpOb3csIGxldCYjMzk7cyBmb3JtYXQgdGhlIGBzZXQtcmVzdWx0c2Agb3V0cHV0IGNvcnJlY3RseS4KCiogICBgV29ydGhGdXp6aW5nYDogRmFsc2UuCiogICBgUmVhc29uaW5nYDogV2UgbmVlZCB0byBjb25jaXNlbHkgYXJ0aWN1bGF0ZSB3aHkgaXQmIzM5O3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEl0JiMzOTtzIHRoZSB2ZW5kb3Itc3BlY2lmaWMgbmF0dXJlIG9mIHRoZSBNZWxsYW5veCBgbWx4NWAgZHJpdmVyLCByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBOSUMgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBUaGF0JiMzOTtzIGEgY2xlYXIgZXhwbGFuYXRpb24uCiogICBgRW5hYmxlQ29uZmlnc2A6IEVtcHR5IGxpc3QsIG9yIG51bGwuCiogICBgRm9jdXNTeW1ib2xzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC4KCk9rYXksIHRoYXQmIzM5O3MgY2xlYXIuIE5vdyB0byBjYWxsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDE4OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMTg6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjQ0LjUxMTk2MjYwNFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxMzgzMDQwNDYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDc6NDQuNTExOTY3MTczWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjE1NzgwNzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBmMmVlZjM2ODdlNDFlMDIzMjI2ZTM4N2I0ZGM1Njc0M2IyMDZjYmU1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgU2VwIDMgMTg6NDc6NDMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXFxuaW5kZXggODk0OTBmNjg3YTljNi4uOTNjNjJkM2YzZTViZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcXG5AQCAtMzExLDEyICszMTEsMTUgQEAgc2FtcGxlX3Jlc3RvcmVfZ2V0KHN0cnVjdCBtbHg1ZV90Y19wc2FtcGxlICp0Y19wc2FtcGxlLCB1MzIgb2JqX2lkLFxcbiBzdGF0aWMgdm9pZFxcbiBzYW1wbGVfcmVzdG9yZV9wdXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHN0cnVjdCBtbHg1ZV9zYW1wbGVfcmVzdG9yZSAqcmVzdG9yZSlcXG4ge1xcbitcXHRib29sIGxhc3Q7XFxuK1xcbiBcXHRtdXRleF9sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbi1cXHRpZiAoLS1yZXN0b3JlLVxcdTAwM2Vjb3VudCA9PSAwKVxcbitcXHRsYXN0ID0gLS1yZXN0b3JlLVxcdTAwM2Vjb3VudCA9PSAwO1xcbitcXHRpZiAobGFzdClcXG4gXFx0XFx0aGFzaF9kZWwoXFx1MDAyNnJlc3RvcmUtXFx1MDAzZWhsaXN0KTtcXG4gXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiBcXG4tXFx0aWYgKCFyZXN0b3JlLVxcdTAwM2Vjb3VudCkge1xcbitcXHRpZiAobGFzdCkge1xcbiBcXHRcXHRtbHg1X2RlbF9mbG93X3J1bGVzKHJlc3RvcmUtXFx1MDAzZXJ1bGUpO1xcbiBcXHRcXHRtbHg1X21vZGlmeV9oZWFkZXJfZGVhbGxvYyh0Y19wc2FtcGxlLVxcdTAwM2Vlc3ctXFx1MDAzZWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIFxcdFxcdGtmcmVlKHJlc3RvcmUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0Nzo0NC45MzQyOTg1MTZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQwOTYwNjk0NTA3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBjb2RlIGluIGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuYywgd2hpY2ggaXMgcGFydCBvZiB0aGUgTWVsbGFub3ggbWx4NSBuZXR3b3JrIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgTWVsbGFub3ggQ29ubmVjdFggUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKGUuZy4gUUVNVSksIG1ha2luZyBpdCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGYyZWVmMzY4N2U0MWUwMjMyMjZlMzg3YjRkYzU2NzQzYjIwNmNiZTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDE4OjQ3OjQzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG5pbmRleCA4OTQ5MGY2ODdhOWM2Li45M2M2MmQzZjNlNWJkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNcbkBAIC0zMTEsMTIgKzMxMSwxNSBAQCBzYW1wbGVfcmVzdG9yZV9nZXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHUzMiBvYmpfaWQsXG4gc3RhdGljIHZvaWRcbiBzYW1wbGVfcmVzdG9yZV9wdXQoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUsIHN0cnVjdCBtbHg1ZV9zYW1wbGVfcmVzdG9yZSAqcmVzdG9yZSlcbiB7XG4rXHRib29sIGxhc3Q7XG4rXG4gXHRtdXRleF9sb2NrKFx1MDAyNnRjX3BzYW1wbGUtXHUwMDNlcmVzdG9yZV9sb2NrKTtcbi1cdGlmICgtLXJlc3RvcmUtXHUwMDNlY291bnQgPT0gMClcbitcdGxhc3QgPSAtLXJlc3RvcmUtXHUwMDNlY291bnQgPT0gMDtcbitcdGlmIChsYXN0KVxuIFx0XHRoYXNoX2RlbChcdTAwMjZyZXN0b3JlLVx1MDAzZWhsaXN0KTtcbiBcdG11dGV4X3VubG9jayhcdTAwMjZ0Y19wc2FtcGxlLVx1MDAzZXJlc3RvcmVfbG9jayk7XG4gXG4tXHRpZiAoIXJlc3RvcmUtXHUwMDNlY291bnQpIHtcbitcdGlmIChsYXN0KSB7XG4gXHRcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cdTAwM2VydWxlKTtcbiBcdFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2ModGNfcHNhbXBsZS1cdTAwM2Vlc3ctXHUwMDNlZGV2LCByZXN0b3JlLVx1MDAzZW1vZGlmeV9oZHIpO1xuIFx0XHRrZnJlZShyZXN0b3JlKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjQ0LjkzNDMwMDAzNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjk4ODEzMDU1OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNZWxsYW5veCBtbHg1IERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIHBhdGNoIGxvb2tzIHN0cmFpZ2h0Zm9yd2FyZCBlbm91Z2gg4oCTIGl0J3MgYSBzbWFsbCBjaGFuZ2UgaW4gdGhlIE1lbGxhbm94IG1seDUgZHJpdmVyLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSB0cmFmZmljIGNvbnRyb2wgKHRjKSBzYW1wbGluZyBzZWN0aW9uIChgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCkuIEknbSBsb29raW5nIGF0IHRoZSBgc2FtcGxlX3Jlc3RvcmVfcHV0YCBmdW5jdGlvbiwgYW5kIGl0IHNlZW1zIGxpa2UgdGhleSd2ZSBqdXN0IHJlZmluZWQgdGhlIGxvZ2ljIGFyb3VuZCByZWxlYXNpbmcgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIGByZXN0b3JlYCBzdHJ1Y3R1cmUsIHNwZWNpZmljYWxseSB3aGVuIHRoZSBgcmVzdG9yZS1cdTAwM2Vjb3VudGAgaGl0cyB6ZXJvLiBUaGV5J3ZlIGFkZGVkIGEgYGxhc3RgIHZhcmlhYmxlIGZvciBjbGFyaXR5IGFuZCBtZXJnZWQgdGhlIGNvbmRpdGlvbmFsIGxvZ2ljIGEgYml0LCB3aGljaCBpcyBnb29kLlxuXG5NeSBpbW1lZGlhdGUgY29uY2VybiwgdGhvdWdoLCBpcyB3aGV0aGVyIHRoaXMgZHJpdmVyIGlzIGV2ZW4gKmZ1enphYmxlKiBpbiBvdXIgY3VycmVudCBzZXR1cC4gV2UncmUgcnVubmluZyB0aHJvdWdoIHRoZSBjaGVja2xpc3QuIEZpcnN0LCB0aGUgbG9jYXRpb24gY29uZmlybXMgaXQncyB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIGFuZCB0aGF0IHRyaWdnZXJzIGEgcmVkIGZsYWcuIFdlIGtub3cgZnJvbSB0aGUgcnVsZXMgdGhhdCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3Igc3l6a2FsbGVyIGVudmlyb25tZW50cyBhcmUgYSBwcm9ibGVtLiBUaGlzIGlzIGEgTWVsbGFub3ggTklDIGRyaXZlciAoQ29ubmVjdFgtNCwgQ29ubmVjdFgtNSwgQ29ubmVjdFgtNiwgZXRjLiksIGFuZCB0aG9zZSByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlIChBU0lDL1BDSWUgY2FyZCkuIFRoZSBydWxlcyBleHBsaWNpdGx5IGxpc3QgTWVsbGFub3ggYW1vbmcgdGhlIFwiU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIg4oCTIHNvLCAqbGlrZWx5KiBhIG5vLWdvLlxuXG5Ib3dldmVyLCBJJ20gbm90IGdvaW5nIHRvIGp1bXAgdG8gY29uY2x1c2lvbnMgKmp1c3QqIHlldC4gSXQncyBjcnVjaWFsIHRvIGJlIHRob3JvdWdoLiBJIG5lZWQgdG8gcXVpY2tseSB2ZXJpZnk6IGRvZXMgdGhlIG1seDUgZHJpdmVyIGhhdmUgYW55IHNvcnQgb2YgbW9jayBvciB2aXJ0dWFsIG5ldGRldiBzdXBwb3J0PyBXZSd2ZSBzZWVuIHNvbWUgTklDIGRyaXZlcnMgcHJvdmlkZSB0aGF0IOKAkyBhIHdheSB0byB0ZXN0IHdpdGhvdXQgdGhlIGFjdHVhbCBoYXJkd2FyZSBwcmVzZW50LiBJIG5lZWQgdG8gdXNlIGdyZXBwZXIgb3IgcmVhZC1maWxlIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBldmlkZW5jZSBvZiBzdWNoIGEgdGhpbmcuIElmIGl0J3MgKnN0cmljdGx5KiBwaHlzaWNhbCBoYXJkd2FyZSwgdGhlbiB0aGUgV29ydGhGdXp6aW5nIGZsYWcgaXMgc2V0IHRvIGZhbHNlLCBhbmQgd2UgY2FuIG1vdmUgb24uIEJ1dCwgaWYgdGhlcmUgaXMgYSB2aXJ0dWFsIGludGVyZmFjZSwgdGhhdCBjaGFuZ2VzIHRoZSBjYWxjdWxhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzA0OCwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ3OjU0LjgxNTYwODIxWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNzY5MzI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19NTFg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMjkzIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9Nz1zdWJkaXItY2NmbGFncy15ICs9IC1JJChzcmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX01MWDVfQ09SRSkgKz0gbWx4NV9jb3JlLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9MTQ9bWx4NV9jb3JlLXkgOj1cXHRtYWluLm8gY21kLm8gZGVidWdmcy5vIGZ3Lm8gZXEubyB1YXIubyBwYWdlYWxsb2MubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMjUtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToyNjptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOKSArPSBlbi9ycXQubyBlbi90aXIubyBlbi9yc3MubyBlbi9yeF9yZXMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTI3LVxcdFxcdGVuL2NoYW5uZWxzLm8gZW5fbWFpbi5vIGVuX2NvbW1vbi5vIGVuX2ZzLm8gZW5fZXRodG9vbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0zNy0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjM4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX0FSRlMpICAgICArPSBlbl9hcmZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Mzk6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUlhORkMpICAgICs9IGVuX2ZzX2V0aHRvb2wub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo0MDptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0VOX0RDQikgKz0gZW5fZGNibmwubyBlbi9wb3J0X2J1ZmZlci5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQxLW1seDVfY29yZS0kKENPTkZJR19QQ0lfSFlQRVJWX0lOVEVSRkFDRSkgKz0gZW4vaHZfdmhjYV9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgICArPSBsYWcvbXAubyBsYWcvcG9ydF9zZWwubyBsaWIvZ2VuZXZlLm8gbGliL3BvcnRfdHVuLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS00My1cXHRcXHRcXHRcXHRcXHRlbl9yZXAubyBlbi9yZXAvYm9uZC5vIGVuL21vZF9oZHIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTQ0LVxcdFxcdFxcdFxcdFxcdGVuL21hcHBpbmcubyBsYWcvbXBlc3cubyBsYWcvc2hhcmVkX2ZkYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjQ1Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0NMU19BQ1QpICAgICArPSBlbl90Yy5vIGVuL3JlcC90Yy5vIGVuL3JlcC9uZWlnaC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNDYtXFx0XFx0XFx0XFx0XFx0bGliL2ZzX2NoYWlucy5vIGVuL3RjX3R1bi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NTM6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfQ0xTX0FDVCkgICAgICs9IGVuL3RjL2FjdC9hY3QubyBlbi90Yy9hY3QvZHJvcC5vIGVuL3RjL2FjdC90cmFwLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS01NC1cXHRcXHRcXHRcXHRcXHRlbi90Yy9hY3QvYWNjZXB0Lm8gZW4vdGMvYWN0L21hcmsubyBlbi90Yy9hY3QvZ290by5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjE6aWZuZXEgKCQoQ09ORklHX01MWDVfVENfQ1QpLClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNjItXFx0bWx4NV9jb3JlLXlcXHRcXHRcXHQgICAgICs9IGVuL3RjX2N0Lm8gZW4vdGMvY3RfZnNfZG1mcy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjYzOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X1NXX1NURUVSSU5HKSArPSBlbi90Yy9jdF9mc19zbWZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NjQ6XFx0bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfSFdfU1RFRVJJTkcpICs9IGVuL3RjL2N0X2ZzX2htZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02NS1lbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS02Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6Njc6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfVENfU0FNUExFKSAgICs9IGVuL3RjL3NhbXBsZS5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTY4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTcxLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzI6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICArPSBlc3dpdGNoLm8gZXN3aXRjaF9vZmZsb2Fkcy5vIGVzd2l0Y2hfb2ZmbG9hZHNfdGVybXRibC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzMtXFx0XFx0XFx0XFx0ICAgICAgZWNwZi5vIHJkbWEubyBlc3cvbGVnYWN5Lm8gZXN3L2Fkal92cG9ydC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS03NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6NzY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRVNXSVRDSCkgICArPSBlc3cvYWNsL2hlbHBlci5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzctXFx0XFx0XFx0XFx0ICAgICAgZXN3L2FjbC9lZ3Jlc3NfbGdjeS5vIGVzdy9hY2wvZWdyZXNzX29mbGQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgwOmlmbmVxICgkKENPTkZJR19NTFg1X0VOX0lQU0VDKSwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjgxOlxcdG1seDVfY29yZS0kKENPTkZJR19NTFg1X0VTV0lUQ0gpICAgKz0gZXN3L2lwc2VjX2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODItZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjg0Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0JSSURHRSkgICAgKz0gZXN3L2JyaWRnZS5vIGVzdy9icmlkZ2VfbWNhc3QubyBlc3cvYnJpZGdlX2RlYnVnZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTg1LVxcdFxcdFxcdFxcdCAgICAgIGVuL3JlcC9icmlkZ2Uub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlPTg3PW1seDVfY29yZS0kKENPTkZJR19IV01PTikgICAgICAgICAgKz0gaHdtb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo4ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NUEZTKSAgICAgICs9IGxpYi9tcGZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtODktaWZuZXEgKCQoQ09ORklHX1ZYTEFOKSwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU9OTM9bWx4NV9jb3JlLSQoQ09ORklHX1BDSV9IWVBFUlZfSU5URVJGQUNFKSArPSBsaWIvaHYubyBsaWIvaHZfdmhjYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTctI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZTo5ODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9DT1JFX0lQT0lCKSArPSBpcG9pYi9pcG9pYi5vIGlwb2liL2V0aHRvb2wubyBpcG9pYi9pcG9pYl92bGFuLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtOTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTAyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTAzOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0ZQR0EpICs9IGZwZ2EvY21kLm8gZnBnYS9jb3JlLm8gZnBnYS9jb25uLm8gZnBnYS9zZGsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwNTptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9NQUNTRUMpICs9IGVuX2FjY2VsL21hY3NlYy5vIGxpYi9tYWNzZWNfZnMubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEwNi1cXHRcXHRcXHRcXHQgICAgICBlbl9hY2NlbC9tYWNzZWNfc3RhdHMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjEwODptbHg1X2NvcmUtJChDT05GSUdfTUxYNV9FTl9JUFNFQykgKz0gZW5fYWNjZWwvaXBzZWMubyBlbl9hY2NlbC9pcHNlY19yeHR4Lm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMDktXFx0XFx0XFx0XFx0ICAgICBlbl9hY2NlbC9pcHNlY19zdGF0cy5vIGVuX2FjY2VsL2lwc2VjX2ZzLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTEyOm1seDVfY29yZS0kKENPTkZJR19NTFg1X0VOX1RMUykgKz0gZW5fYWNjZWwva3Rsc19zdGF0cy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTEzLVxcdFxcdFxcdFxcdCAgIGVuX2FjY2VsL2ZzX3RjcC5vIGVuX2FjY2VsL2t0bHMubyBlbl9hY2NlbC9rdGxzX3R4cngubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMTY6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfRU5fUFNQKSArPSBlbl9hY2NlbC9wc3AubyBlbl9hY2NlbC9wc3Bfcnh0eC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTExNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xMjAtI1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZToxMjE6bWx4NV9jb3JlLSQoQ09ORklHX01MWDVfU1dfU1RFRVJJTkcpICs9IHN0ZWVyaW5nL3N3cy9kcl9kb21haW4ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTEyMi1cXHRcXHRcXHRcXHRcXHRzdGVlcmluZy9zd3MvZHJfdGFibGUubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTQ1LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTQ2Om1seDVfY29yZS0kKENPTkZJR19NTFg1X0hXX1NURUVSSU5HKSArPSBzdGVlcmluZy9od3MvY21kLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNDctXFx0XFx0XFx0XFx0XFx0c3RlZXJpbmcvaHdzL2NvbnRleHQubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTY3LSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTY4Om1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGKSArPSBzZi92aGNhX2V2ZW50Lm8gc2YvZGV2L2Rldi5vIHNmL2Rldi9kcml2ZXIubyBpcnFfYWZmaW5pdHkub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGUtMTcyLSNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvTWFrZWZpbGU6MTczOm1seDVfY29yZS0kKENPTkZJR19NTFg1X1NGX01BTkFHRVIpICs9IHNmL2NtZC5vIHNmL2h3X3RhYmxlLm8gc2YvZGV2bGluay5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZT0xNzg9bWx4NV9jb3JlLSQoQ09ORklHX1BDSUVfVFBIKSArPSBsaWIvc3Qub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xNzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL01ha2VmaWxlOjE4MDpvYmotJChDT05GSUdfTUxYNV9EUExMKSArPSBtbHg1X2RwbGwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9NYWtlZmlsZS0xODEtbWx4NV9kcGxsLXkgOj1cXHRkcGxsLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz00Mz1zdGF0aWMgYm9vbCBpc19ldGhfcmVwX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy00NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjQ1OlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9FU1dJVENIKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtNDYtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTU3PWJvb2wgbWx4NV9ldGhfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6NTk6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0NPUkVfRU4pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy02MC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MTA5PWJvb2wgbWx4NV92bmV0X3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xMTAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxMTE6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X1ZEUEFfTkVUKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTEyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0xNDI9c3RhdGljIGJvb2wgaXNfaWJfcmVwX3N1cHBvcnRlZChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNDMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYzoxNDQ6XFx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19NTFg1X0lORklOSUJBTkQpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYy0xNDUtXFx0XFx0cmV0dXJuIGZhbHNlO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jPTE1OT1zdGF0aWMgYm9vbCBpc19tcF9zdXBwb3J0ZWQoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM6MTYxOlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmMtMTYyLVxcdFxcdHJldHVybiBmYWxzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXYuYz0xNzk9Ym9vbCBtbHg1X3JkbWFfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4MC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjE4MTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTE4Mi1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2LmM9MjA3PXN0YXRpYyBib29sIGlzX2RwbGxfc3VwcG9ydGVkKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTIwOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jOjIwOTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfRFBMTCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Rldi5jLTIxMC1cXHRcXHRyZXR1cm4gZmFsc2U7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTM2OD1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIG1seDVfZGV2bGlua19vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozNjk6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTM3MC1cXHQuZXN3aXRjaF9tb2RlX3NldCA9IG1seDVfZGV2bGlua19lc3dpdGNoX21vZGVfc2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy0zODctI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzozODg6I2lmZGVmIENPTkZJR19NTFg1X1NGX01BTkFHRVJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTM4OS1cXHQucG9ydF9uZXcgPSBtbHg1X2Rldmxpbmtfc2ZfcG9ydF9uZXcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTQ2Mj1zdGF0aWMgaW50IG1seDVfZGV2bGlua19lbmFibGVfcm9jZV92YWxpZGF0ZShzdHJ1Y3QgZGV2bGluayAqZGV2bGluaywgdTMyIGlkLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy00ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYzo0ODI6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTQ4My1zdGF0aWMgaW50IG1seDVfZGV2bGlua19sYXJnZV9ncm91cF9udW1fdmFsaWRhdGUoc3RydWN0IGRldmxpbmsgKmRldmxpbmssIHUzMiBpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9NTgwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2bGlua19wYXJhbSBtbHg1X2RldmxpbmtfcGFyYW1zW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTU4Mi1cXHRcXHRcXHQgICAgICBOVUxMLCBOVUxMLCBtbHg1X2RldmxpbmtfZW5hYmxlX3JvY2VfdmFsaWRhdGUpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6NTgzOiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy01ODQtXFx0REVWTElOS19QQVJBTV9EUklWRVIoTUxYNV9ERVZMSU5LX1BBUkFNX0lEX0VTV19MQVJHRV9HUk9VUF9OVU0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTU5Nj1zdGF0aWMgdm9pZCBtbHg1X2Rldmxpbmtfc2V0X3BhcmFtc19pbml0X3ZhbHVlcyhzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtNjA1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6NjA2OiNpZmRlZiBDT05GSUdfTUxYNV9FU1dJVENIXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy02MDctXFx0dmFsdWUudnUzMiA9IEVTV19PRkZMT0FEU19ERUZBVUxUX05VTV9HUk9VUFM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jPTc5NT1zdGF0aWMgaW50IG1seDVfZGV2bGlua19yZG1hX3BhcmFtc19yZWdpc3RlcihzdHJ1Y3QgZGV2bGluayAqZGV2bGluaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtODAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM6ODAxOlxcdGlmICghSVNfRU5BQkxFRChDT05GSUdfTUxYNV9JTkZJTklCQU5EKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jLTgwMi1cXHRcXHRyZXR1cm4gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmM9ODE2PXN0YXRpYyB2b2lkIG1seDVfZGV2bGlua19yZG1hX3BhcmFtc191bnJlZ2lzdGVyKHN0cnVjdCBkZXZsaW5rICpkZXZsaW5rKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9kZXZsaW5rLmMtODE3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZGV2bGluay5jOjgxODpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX01MWDVfSU5GSU5JQkFORCkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2RldmxpbmsuYy04MTktXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC05LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg6MTA6I2lmZGVmIENPTkZJR19NTFg1X0VTV0lUQ0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oLTExLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaD0yMT1pbnQgbWx4NV9jbWRfcGZfZGlzYWJsZV9oY2Eoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTE2IHZwb3J0X251bSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZWNwZi5oOjIzOiNlbHNlICAvKiBDT05GSUdfTUxYNV9FU1dJVENIICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaC0yNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmg9Mjg9c3RhdGljIGlubGluZSB2b2lkIG1seDVfZWNfY2xlYW51cChzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KSB7fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VjcGYuaDozMDojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lY3BmLmgtMzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaD05MDU9c3RydWN0IG1seDVlX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjkxMTojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05MTItXFx0c3RydWN0IG1seDVlX2RjYnhfZHAgICAgICAgZGNieF9kcDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk1Ny1cXHRzdHJ1Y3QgdWRwX3R1bm5lbF9uaWNfaW5mbyBuaWNfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NTg6I2lmZGVmIENPTkZJR19NTFg1X0NPUkVfRU5fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTU5LVxcdHN0cnVjdCBtbHg1ZV9kY2J4ICAgICAgICAgIGRjYng7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjMtXFx0dm9pZCAgICAgICAgICAgICAgICAgICAgICAqcHByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6OTY0OiNpZmRlZiBDT05GSUdfTUxYNV9NQUNTRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaC05NjUtXFx0c3RydWN0IG1seDVlX21hY3NlYyAgICAgICAqbWFjc2VjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk2Ni0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5Njc6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTY4LVxcdHN0cnVjdCBtbHg1ZV9pcHNlYyAgICAgICAgKmlwc2VjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk2OS0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4uaDo5NzA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTk3MS1cXHRzdHJ1Y3QgbWx4NWVfcHNwICAgICAgICAgICpwc3A7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTcyLSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oOjk3MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmgtOTc0LVxcdHN0cnVjdCBtbHg1ZV90bHMgICAgICAgICAgKnRscztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oPTEyOTk9aW50IG1seDVlX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuLmg6MTMwMDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi5oLTEzMDEtaW50IG1seDVlX3NldF92Zl9tYWMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHZmLCB1OCAqbWFjKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9kY2JubC5oLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2RjYm5sLmg6NzojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZGNibmwuaC04LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9Nzg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04NC1cXHRNTFg1RV9GU19UVF9BTllfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjg1OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9UTFNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC04Ni1cXHRNTFg1RV9BQ0NFTF9GU19UQ1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTg3LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjg4OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9BUkZTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtODktXFx0TUxYNUVfQVJGU19GVF9MRVZFTCA9IE1MWDVFX0lOTkVSX1RUQ19GVF9MRVZFTCArIDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTAtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6OTE6I2lmIGRlZmluZWQoQ09ORklHX01MWDVfRU5fSVBTRUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtOTItXFx0TUxYNUVfQUNDRUxfRlNfRVNQX0ZUX0xFVkVMID0gTUxYNUVfSU5ORVJfVFRDX0ZUX0xFVkVMICsgMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTk3LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjk4OiNpZiBkZWZpbmVkKENPTkZJR19NTFg1X0VOX1BTUClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC05OS1cXHRNTFg1RV9BQ0NFTF9GU19QU1BfRlRfTEVWRUwgPSBNTFg1RV9JTk5FUl9UVENfRlRfTEVWRUwgKyAxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTA2PXN0cnVjdCBtbHg1ZV9yeF9yZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTA3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjEwODojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEwOS1zdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xMjU9c3RhdGljIGlubGluZSBpbnQgbWx4NWVfYXJmc19kaXNhYmxlKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEyOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxMjk6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTEzMC1zdHJ1Y3QgbWx4NWVfYWNjZWxfZnNfdGNwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg9MTcwPXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9mc19oYXNfYXJmcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE3MS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmg6MTcyOlxcdHJldHVybiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0VOX0FSRlMpIFxcdTAwMjZcXHUwMDI2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTczLVxcdFxcdG5ldGRldi1cXHUwMDNlaHdfZmVhdHVyZXMgXFx1MDAyNiBORVRJRl9GX05UVVBMRTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oPTE3Nj1zdGF0aWMgaW5saW5lIGJvb2wgbWx4NWVfZnNfd2FudF9hcmZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTc3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxNzg6XFx0cmV0dXJuIElTX0VOQUJMRUQoQ09ORklHX01MWDVfRU5fQVJGUykgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xNzktXFx0XFx0bmV0ZGV2LVxcdTAwM2VmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfTlRVUExFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzLmgtMTgxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4MjojaWZkZWYgQ09ORklHX01MWDVfRU5fUlhORkNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaC0xODMtc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKm1seDVlX2ZzX2dldF9ldGh0b29sKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xODY9dm9pZCBtbHg1ZV9mc19zZXRfdHRjKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVfdHRjX3RhYmxlICp0dGMsIGJvb2wgaW5uZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oOjE4NzojaWZkZWYgQ09ORklHX01MWDVfRU5fQVJGU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE4OC1zdHJ1Y3QgbWx4NWVfYXJmc190YWJsZXMgKm1seDVlX2ZzX2dldF9hcmZzKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaD0xOTY9dm9pZCBtbHg1ZV9mc19zZXRfdWRwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcywgc3RydWN0IG1seDVlX2ZzX3VkcCAqdWRwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnMuaDoxOTc6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mcy5oLTE5OC1zdHJ1Y3QgbWx4NWVfYWNjZWxfZnNfdGNwICptbHg1ZV9mc19nZXRfYWNjZWxfdGNwKHN0cnVjdCBtbHg1ZV9mbG93X3N0ZWVyaW5nICpmcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vZnNfZXRodG9vbC5oPTg9c3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL2ZzX2V0aHRvb2wuaDo5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9SWE5GQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9mc19ldGh0b29sLmgtMTAtaW50IG1seDVlX2V0aHRvb2xfYWxsb2Moc3RydWN0IG1seDVlX2V0aHRvb2xfc3RlZXJpbmcgKipldGh0b29sKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oOjk6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQlJJREdFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMTAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oPTEyPXZvaWQgbWx4NWVfcmVwX2JyaWRnZV9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg6MTQ6I2Vsc2UgLyogQ09ORklHX01MWDVfQlJJREdFICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9icmlkZ2UuaC0xNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg9MTc9c3RhdGljIGlubGluZSB2b2lkIG1seDVlX3JlcF9icmlkZ2VfY2xlYW51cChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdikge31cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL2JyaWRnZS5oLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmg6MTk6I2VuZGlmIC8qIENPTkZJR19NTFg1X0JSSURHRSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvYnJpZGdlLmgtMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg6MTA6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmgtMTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL25laWdoLmg9MjQ9dm9pZCBtbHg1ZV9yZXBfcXVldWVfbmVpZ2hfc3RhdHNfd29yayhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDoyNjojZWxzZSAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTI3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oPTMxPW1seDVlX3JlcF9uZWlnaF9jbGVhbnVwKHN0cnVjdCBtbHg1ZV9yZXBfcHJpdiAqcnByaXYpIHt9XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC9uZWlnaC5oLTMyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaDozMzojZW5kaWYgLyogQ09ORklHX01MWDVfQ0xTX0FDVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvbmVpZ2guaC0zNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYz03MDA9dm9pZCBtbHg1ZV9yZXBfdGNfcmVjZWl2ZShzdHJ1Y3QgbWx4NV9jcWU2NCAqY3FlLCBzdHJ1Y3QgbWx4NWVfcnEgKnJxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5jLTczMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmM6NzMyOiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuYy03MzMtXFx0aWYgKCEodHVubmVsX2lkIFxcdTAwM2VcXHUwMDNlIEVTV19UVU5fT1BUU19CSVRTKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaDoxMTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC0xMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaD0zOT12b2lkIG1seDVlX3JlcF90Y19yZWNlaXZlKHN0cnVjdCBtbHg1X2NxZTY0ICpjcWUsIHN0cnVjdCBtbHg1ZV9ycSAqcnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3JlcC90Yy5oOjQyOiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg9Njg9bWx4NWVfcmVwX3RjX3JlY2VpdmUoc3RydWN0IG1seDVfY3FlNjQgKmNxZSwgc3RydWN0IG1seDVlX3JxICpycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9yZXAvdGMuaC03MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmg6NzE6I2VuZGlmIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vcmVwL3RjLmgtNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jPTEzMj12b2lkIG1seDVlX3NlbHFfY2FuY2VsKHN0cnVjdCBtbHg1ZV9zZWxxICpzZWxxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xMzktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYzoxNDA6I2lmZGVmIENPTkZJR19NTFg1X0NPUkVfRU5fRENCXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3NlbHEuYy0xNDEtc3RhdGljIGludCBtbHg1ZV9nZXRfZHNjcF91cChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmM9MTU0PXN0YXRpYyBpbnQgbWx4NWVfZ2V0X3VwKHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi9zZWxxLmMtMTU1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jOjE1NjojaWZkZWYgQ09ORklHX01MWDVfQ09SRV9FTl9EQ0JcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vc2VscS5jLTE1Ny1cXHRpZiAoUkVBRF9PTkNFKHByaXYtXFx1MDAzZWRjYnhfZHAudHJ1c3Rfc3RhdGUpID09IE1MWDVfUVBUU19UUlVTVF9EU0NQKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9Mzk9c3RydWN0IG1seDVfY3RfZnNfb3BzICptbHg1X2N0X2ZzX2RtZnNfb3BzX2dldCh2b2lkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo0MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC00Mi1zdHJ1Y3QgbWx4NV9jdF9mc19vcHMgKm1seDVfY3RfZnNfc21mc19vcHNfZ2V0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NDU9bWx4NV9jdF9mc19zbWZzX29wc19nZXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTQ4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo0OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1MTojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9IV19TVEVFUklORylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC01Mi1zdHJ1Y3QgbWx4NV9jdF9mc19vcHMgKm1seDVfY3RfZnNfaG1mc19vcHNfZ2V0KHZvaWQpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2N0X2ZzLmg9NTU9bWx4NV9jdF9mc19obWZzX29wc19nZXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9jdF9mcy5oLTU4LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaDo1OTojZW5kaWYgLyogSVNfRU5BQkxFRChDT05GSUdfTUxYNV9TV19TVEVFUklORykgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvY3RfZnMuaC02MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oPTEyPWVudW0gbWx4NWVfdGNfaW50X3BvcnRfdHlwZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaDoxNzojaWYgSVNfRU5BQkxFRChDT05GSUdfTUxYNV9DTFNfQUNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oLTE4LWJvb2wgbWx4NWVfdGNfaW50X3BvcnRfc3VwcG9ydGVkKGNvbnN0IHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaD00Mj1pbnQgbWx4NWVfdGNfaW50X3BvcnRfZ2V0X2Zsb3dfc291cmNlKHN0cnVjdCBtbHg1ZV90Y19pbnRfcG9ydCAqaW50X3BvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjQzOiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvaW50X3BvcnQuaC00NC1zdGF0aWMgaW5saW5lIHUzMlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0Lmg9NjI9c3RhdGljIGlubGluZSB2b2lkIG1seDVlX3RjX2ludF9wb3J0X2NsZWFudXBfcmVwX3J4KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2KSB7fVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9pbnRfcG9ydC5oOjY0OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL2ludF9wb3J0LmgtNjUtI2VuZGlmIC8qIF9fTUxYNV9FTl9UQ19JTlRfUE9SVF9IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9tZXRlci5oPTcyPW1seDVlX3RjX21ldGVyX2dldF9zdGF0cyhzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtNzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6NzU6I2lmIElTX0VOQUJMRUQoQ09ORklHX01MWDVfQ0xTX0FDVClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaD03Nz1pbnQgbWx4NWVfZmxvd19tZXRlcl9nZXRfYmFzZV9pZChzdHJ1Y3QgbWx4NWVfZmxvd19tZXRlcl9oYW5kbGUgKm1ldGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaDo3OTojZWxzZSAvKiBDT05GSUdfTUxYNV9DTFNfQUNUICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmgtODAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaD04Mj1tbHg1ZV9mbG93X21ldGVyX2dldF9iYXNlX2lkKHN0cnVjdCBtbHg1ZV9mbG93X21ldGVyX2hhbmRsZSAqbWV0ZXIpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL21ldGVyLmg6ODY6I2VuZGlmIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvbWV0ZXIuaC04Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg9MTc9ZW51bSBtbHg1ZV9wb3N0X21ldGVyX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X0NMU19BQ1QpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC0yMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9wb3N0X21ldGVyLmg9NDQ9bWx4NWVfcG9zdF9tZXRlcl9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdywgc3RydWN0IG1seDVlX3Bvc3RfbWV0ZXJfcHJpdiAqcG9zdF9tZXRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3Bvc3RfbWV0ZXIuaC00NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oOjQ2OiNlbHNlIC8qIENPTkZJR19NTFg1X0NMU19BQ1QgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvcG9zdF9tZXRlci5oLTQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTEzPXN0cnVjdCBtbHg1ZV9zYW1wbGVfYXR0ciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjIyOiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX1NBTVBMRSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg9NDA9bWx4NWVfdGNfc2FtcGxlX2NsZWFudXAoc3RydWN0IG1seDVlX3RjX3BzYW1wbGUgKnRjX3BzYW1wbGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuaC00MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmg6NDI6I2Vsc2UgLyogQ09ORklHX01MWDVfVENfU0FNUExFICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oPTYzPW1seDVlX3RjX3NhbXBsZV9za2Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG1seDVfbWFwcGVkX29iaiAqbWFwcGVkX29iaikge31cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5oOjY1OiNlbmRpZiAvKiBDT05GSUdfTUxYNV9UQ19TQU1QTEUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmgtNjYtI2VuZGlmIC8qIF9fTUxYNV9FTl9UQ19TQU1QTEVfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaD0yNT1zdHJ1Y3QgbWx4NV9jdF9hdHRyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjk0OiNpZiBJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTk1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0Lmg9MTMyPWJvb2wgbWx4NWVfdGNfY3RfaXNfdmFsaWRfZmxvd19ydWxlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHN0cnVjdCBmbG93X3J1bGUgKmZsb3dfcnVsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX2N0LmgtMTMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oOjEzNDojZWxzZSAvKiBDT05GSUdfTUxYNV9UQ19DVCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTEzNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oPTIwOT1tbHg1ZV90Y19jdF9pc192YWxpZF9mbG93X3J1bGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTIxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfY3QuaDoyMTU6I2VuZGlmIC8qICFJU19FTkFCTEVEKENPTkZJR19NTFg1X1RDX0NUKSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y19jdC5oLTIxNi0jZW5kaWYgLyogX19NTFg1X0VOX1RDX0NUX0hfXyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oLTEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaDoxNDojaWZkZWYgQ09ORklHX01MWDVfRVNXSVRDSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaC0xNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaD0xMTg9Ym9vbCBtbHg1ZV90Y190dW5fZW5jYXBfaW5mb19lcXVhbF9vcHRpb25zKHN0cnVjdCBtbHg1ZV9lbmNhcF9rZXkgKmEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGNfdHVuLmgtMTIwLVxcdFxcdFxcdFxcdFxcdCAgIHUzMiB0dW5fdHlwZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjX3R1bi5oOjEyMTojZW5kaWYgLyogQ09ORklHX01MWDVfRVNXSVRDSCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Y190dW4uaC0xMjItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTY1PWVudW0gbWx4NWVfaWNvc3Ffd3FlX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC02Ny1cXHRNTFg1RV9JQ09TUV9XUUVfVU1SX1JYLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg6Njg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtNjktXFx0TUxYNUVfSUNPU1FfV1FFX1VNUl9UTFMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oPTE3Nz1zdHJ1Y3QgbWx4NWVfdHhfd3FlX2luZm8ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xODItXFx0dTggbnVtX2ZpZm9fcGt0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oOjE4MzojaWZkZWYgQ09ORklHX01MWDVfRU5fVExTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaC0xODQtXFx0c3RydWN0IHBhZ2UgKnJlc3luY19kdW1wX2ZyYWdfcGFnZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4Lmg9MjQwPXN0cnVjdCBtbHg1ZV9pY29zcV93cWVfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdHhyeC5oLTI0OS1cXHRcXHRzdHJ1Y3QgbWx4NWVfc2hhbXBvX3VtciBzaGFtcG87XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3R4cnguaDoyNTA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90eHJ4LmgtMjUxLVxcdFxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaD0xMDM9c3RydWN0IG1seDVlX2FjY2VsX3R4X3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMDQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEwNS1cXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfdGxzX3N0YXRlIHRscztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xMDYtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTA3OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9JUFNFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEwOC1cXHRzdHJ1Y3QgbWx4NWVfYWNjZWxfdHhfaXBzZWNfc3RhdGUgaXBzZWM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTA5LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjExMDojaWZkZWYgQ09ORklHX01MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTExLVxcdHN0cnVjdCBtbHg1ZV9hY2NlbF90eF9wc3Bfc3RhdGUgcHNwX3N0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg9MTE1PXN0YXRpYyBpbmxpbmUgYm9vbCBtbHg1ZV9hY2NlbF90eF9iZWdpbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTE5LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMjA6I2lmZGVmIENPTkZJR19NTFg1X0VOX1RMU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEyMS1cXHQvKiBNYXkgc2VuZCBXUUVzLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjEyODojaWZkZWYgQ09ORklHX01MWDVfRU5fUFNQXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTI5LVxcdGlmIChtbHg1ZV9wc3BfaXNfb2ZmbG9hZChza2IsIGRldikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTEzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxMzU6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTM2LVxcdGlmICh0ZXN0X2JpdChNTFg1RV9TUV9TVEFURV9JUFNFQywgXFx1MDAyNnNxLVxcdTAwM2VzdGF0ZSkgXFx1MDAyNlxcdTAwMjYgeGZybV9vZmZsb2FkKHNrYikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxNDI6I2lmZGVmIENPTkZJR19NTFg1X01BQ1NFQ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE0My1cXHRpZiAodW5saWtlbHkobWx4NWVfbWFjc2VjX3NrYl9pc19vZmZsb2FkKHNrYikpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaD0xNTQ9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgbWx4NWVfYWNjZWxfdHhfaWRzX2xlbihzdHJ1Y3QgbWx4NWVfdHhxc3EgKnNxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTU3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxNTg6I2lmZGVmIENPTkZJR19NTFg1X0VOX1BTUFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE1OS1cXHRpZiAobWx4NWVfcHNwX2lzX29mZmxvYWRfc3RhdGUoXFx1MDAyNnN0YXRlLVxcdTAwM2Vwc3Bfc3QpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oOjE2MzojaWZkZWYgQ09ORklHX01MWDVfRU5fSVBTRUNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xNjQtXFx0aWYgKHRlc3RfYml0KE1MWDVFX1NRX1NUQVRFX0lQU0VDLCBcXHUwMDI2c3EtXFx1MDAzZXN0YXRlKSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oPTE3ND1zdGF0aWMgaW5saW5lIHZvaWQgbWx4NWVfYWNjZWxfdHhfZXNlZyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE3OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmg6MTc5OiNpZmRlZiBDT05GSUdfTUxYNV9FTl9QU1BcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaC0xODAtXFx0aWYgKG1seDVlX3BzcF9pc19vZmZsb2FkX3N0YXRlKFxcdTAwMjZhY2NlbC1cXHUwMDNlcHNwX3N0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9lbl9hY2NlbC5oLTE4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvZW5fYWNjZWwuaDoxODQ6I2lmZGVmIENPTkZJR19NTFg1X0VOX0lQU0VDXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2VuX2FjY2VsLmgtMTg1LVxcdGlmICh4ZnJtX29mZmxvYWQoc2tiKSlcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDc6NTQuODY4MzgzNjA4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTA1MTUzNDEwMDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhpbmdzOlxuXG4qKkFuYWx5emluZyBNZWxsYW5veCBtbHg1IFNhbXBsaW5nIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgdGltZSB0byBkaWcgaW50byB0aGlzIGBzYW1wbGUuY2AgZmlsZSBhbmQgdW5kZXJzdGFuZCBob3cgaXQncyBiZWluZyBsZXZlcmFnZWQgaW4gdGhlIGBtbHg1YCBjb250ZXh0LiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHNhbXBsaW5nIGlzIHdvcmtpbmcgZm9yIHRoZSBtbHg1IGhhcmR3YXJlLiBJIG5lZWQgdG8gZmlndXJlIG91dCBleGFjdGx5IGhvdyBpdCdzIGJlaW5nIHVzZWQuIExldCdzIHN0YXJ0IGJ5IGxvb2tpbmcgYXQgaXRzIHVzZSB3aXRoaW4gdGhlIGtlcm5lbC4gSSdsbCBuZWVkIHRvIGdvIHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmNgIGFuZCBkaXZlIGRlZXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgZnVuY3Rpb25zIGFyZSBiZWluZyBjYWxsZWQsIHdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGFyZSBpbiBwbGF5LCBhbmQgaG93IHRoaXMgc2FtcGxpbmcgZnVuY3Rpb25hbGl0eSBpbnRlZ3JhdGVzIHdpdGggdGhlIGJyb2FkZXIgdHJhZmZpYyBjb250cm9sIGZyYW1ld29yay4gVGhpcyBzaG91bGQgYmUgaW50ZXJlc3Rpbmcg4oCTIGxldCdzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTY2MSwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ4OjA1LjM4MzcyNjU3NVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgxMTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbi90Yy9zYW1wbGUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAzMDAsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAzMDA6XFx0XFx0cmV0dXJuIHJlc3RvcmU7XFxuIDMwMTpcXHRcXG4gMzAyOlxcdGVycl9yZXN0b3JlOlxcbiAzMDM6XFx0XFx0bWx4NV9tb2RpZnlfaGVhZGVyX2RlYWxsb2MobWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIDMwNDpcXHRlcnJfbW9kaWZ5X2hkcjpcXG4gMzA1OlxcdFxcdGtmcmVlKHJlc3RvcmUpO1xcbiAzMDY6XFx0ZXJyX2FsbG9jOlxcbiAzMDc6XFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiAzMDg6XFx0XFx0cmV0dXJuIEVSUl9QVFIoZXJyKTtcXG4gMzA5OlxcdH1cXG4gMzEwOlxcdFxcbiAzMTE6XFx0c3RhdGljIHZvaWRcXG4gMzEyOlxcdHNhbXBsZV9yZXN0b3JlX3B1dChzdHJ1Y3QgbWx4NWVfdGNfcHNhbXBsZSAqdGNfcHNhbXBsZSwgc3RydWN0IG1seDVlX3NhbXBsZV9yZXN0b3JlICpyZXN0b3JlKVxcbiAzMTM6XFx0e1xcbiAzMTQ6XFx0XFx0Ym9vbCBsYXN0O1xcbiAzMTU6XFx0XFxuIDMxNjpcXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZ0Y19wc2FtcGxlLVxcdTAwM2VyZXN0b3JlX2xvY2spO1xcbiAzMTc6XFx0XFx0bGFzdCA9IC0tcmVzdG9yZS1cXHUwMDNlY291bnQgPT0gMDtcXG4gMzE4OlxcdFxcdGlmIChsYXN0KVxcbiAzMTk6XFx0XFx0XFx0aGFzaF9kZWwoXFx1MDAyNnJlc3RvcmUtXFx1MDAzZWhsaXN0KTtcXG4gMzIwOlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2dGNfcHNhbXBsZS1cXHUwMDNlcmVzdG9yZV9sb2NrKTtcXG4gMzIxOlxcdFxcbiAzMjI6XFx0XFx0aWYgKGxhc3QpIHtcXG4gMzIzOlxcdFxcdFxcdG1seDVfZGVsX2Zsb3dfcnVsZXMocmVzdG9yZS1cXHUwMDNlcnVsZSk7XFxuIDMyNDpcXHRcXHRcXHRtbHg1X21vZGlmeV9oZWFkZXJfZGVhbGxvYyh0Y19wc2FtcGxlLVxcdTAwM2Vlc3ctXFx1MDAzZWRldiwgcmVzdG9yZS1cXHUwMDNlbW9kaWZ5X2hkcik7XFxuIDMyNTpcXHRcXHRcXHRrZnJlZShyZXN0b3JlKTtcXG4gMzI2OlxcdFxcdH1cXG4gMzI3OlxcdH1cXG4gMzI4OlxcdFxcbiAzMjk6XFx0dm9pZCBtbHg1ZV90Y19zYW1wbGVfc2tiKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBtbHg1X21hcHBlZF9vYmogKm1hcHBlZF9vYmopXFxuIDMzMDpcXHR7XFxuIDMzMTpcXHRcXHR1MzIgdHJ1bmNfc2l6ZSA9IG1hcHBlZF9vYmotXFx1MDAzZXNhbXBsZS50cnVuY19zaXplO1xcbiAzMzI6XFx0XFx0c3RydWN0IHBzYW1wbGVfZ3JvdXAgcHNhbXBsZV9ncm91cCA9IHt9O1xcbiAzMzM6XFx0XFx0c3RydWN0IHBzYW1wbGVfbWV0YWRhdGEgbWQgPSB7fTtcXG4gMzM0OlxcdFxcbiAzMzU6XFx0XFx0bWQudHJ1bmNfc2l6ZSA9IHRydW5jX3NpemUgPyBtaW4odHJ1bmNfc2l6ZSwgc2tiLVxcdTAwM2VsZW4pIDogc2tiLVxcdTAwM2VsZW47XFxuIDMzNjpcXHRcXHRtZC5pbl9pZmluZGV4ID0gc2tiLVxcdTAwM2VkZXYtXFx1MDAzZWlmaW5kZXg7XFxuIDMzNzpcXHRcXHRwc2FtcGxlX2dyb3VwLmdyb3VwX251bSA9IG1hcHBlZF9vYmotXFx1MDAzZXNhbXBsZS5ncm91cF9pZDtcXG4gMzM4OlxcdFxcdHBzYW1wbGVfZ3JvdXAubmV0ID0gXFx1MDAyNmluaXRfbmV0O1xcbiAzMzk6XFx0XFx0c2tiX3B1c2goc2tiLCBza2ItXFx1MDAzZW1hY19sZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0ODowNS4zODM4MDkzMjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyOTE0NzczOTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjpcblxuKipEaXZpbmcgaW50byB0aGUgbWx4NSBFdGhlcm5ldCBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGJlZW4gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCwgYW5kIHdoaWxlIEkndmUgZ290IGEgZ3Jhc3Agb2YgdGhlIHNhbXBsZSBjb2RlJ3Mgcm9sZSBpbiBUQyAodHJhZmZpYyBjb250cm9sKSB3aXRoaW4gdGhpcyBNZWxsYW5veCBkcml2ZXIsIEkgbmVlZCB0byB6b29tIG91dC4gSSByZWFsbHkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBsYXJnZXIgY29udGV4dCBvZiBob3cgdGhlc2UgbWx4NSBkZXZpY2VzIGFyZSBhY3R1YWxseSBicm91Z2h0IHRvIGxpZmUgYW5kIHByb2JlZCB3aXRoaW4gdGhlIHN5c3RlbS4gTXkgZmlyc3QgdGhvdWdodCBpcyB0byBicm9hZGVuIG15IHZpZXcgYW5kIGV4YW1pbmUgdGhlIHJlbGV2YW50IHBhcnRzIG9mIHRoYXQgc3BlY2lmaWMgZmlsZS4gVGhlbiwgSSBuZWVkIHRvIHNlZSB3aGVyZSB0aGVzZSBkZXZpY2VzIGNvbWUgaW50byBwbGF5IGFuZCB0aGUgUENJIGRyaXZlciwgYW5kIGhvdyBpdCBpcyByZWdpc3RlcmVkIGFuZCBtYW5hZ2VkLiBJdCdzIHRpbWUgdG8gZGlnIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlIGFuZCBwaWVjZSB0b2dldGhlciBob3cgdGhlIGRldmljZSBsaWZlY3ljbGUgdW5mb2xkcywgZnJvbSBQQ0kgZGV0ZWN0aW9uIHRocm91Z2ggdG8gZHJpdmVyIGluaXRpYWxpemF0aW9uIHdpdGhpbiB0aGUgbWx4NSBmcmFtZXdvcmsuIEdvdHRhIGZpbmQgdGhhdCBQQ0kgZHJpdmVyIHJlZ2lzdHJhdGlvbiBwb2ludCB0byBidWlsZCBhIHByb3BlciBtZW50YWwgbW9kZWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNTk4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTgsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QxODo0ODowOC4yOTg1ODYwOTNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU5MDE2NjcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX3BjaV9kcml2ZXJ8cGNpX3JlZ2lzdGVyX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM9MjM0Nj1zdGF0aWMgaW50IF9faW5pdCBtbHg1X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjM2NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jOjIzNjY6XFx0ZXJyID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bWx4NV9jb3JlX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMzY3LVxcdGlmIChlcnIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDE4OjQ4OjA4LjM1NDQ5MjEwMVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjE3NTQwNDc2MDUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIG1seDUgRHJpdmVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgZ28gdGhyb3VnaCB0aGlzIGNhcmVmdWxseS4gSSdtIGZvY3VzaW5nIG9uIHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgc3BlY2lmaWNhbGx5IHNlY3Rpb24gMi4gV2UncmUgbG9va2luZyBmb3IgY29kZSByZWxhdGVkIHRvIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gQWhhLCBoZXJlIGl0IGlzOiBgbWx4NWAuIFRoYXQncyB0aGUgTWVsbGFub3ggQ29ubmVjdFggZHJpdmVyIOKAkyB0aGUgYG1seDVfY29yZWAgZHJpdmVyLCB3aGljaCBoYW5kbGVzIHRoZSBDb25uZWN0WC00LCAtNSwgYW5kIC02IHNlcmllcyBOSUNzLiBJdCdzIGEgY2xhc3NpYyB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyLCByZXF1aXJpbmcgdGhlIGFjdHVhbCBNZWxsYW5veCBoYXJkd2FyZS4gSSBrbm93IHRoaXMgZnJvbSBleHBlcmllbmNlLCBvZiBjb3Vyc2UuXG5cblRoZSBjb25jZXJuIGlzLCBhcyBJIHN1c3BlY3RlZCwgdGhlIG5lZWQgZm9yIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcy4gU3RhbmRhcmQgUUVNVSwgdGhlIHR5cGljYWwgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcgd2l0aCBzb21ldGhpbmcgbGlrZSBzeXprYWxsZXIsIGRvZXNuJ3QgZW11bGF0ZSB0aGVzZSBOSUNzLiBOb3csIGxldCdzIGRvdWJsZS1jaGVjayBteSBhc3N1bXB0aW9uLiBEaWdnaW5nIGludG8gdGhlIGtlcm5lbCBjb2RlLCBgbWx4NWAgaG9va3MgaW50byB0aGUgUENJIHN1YnN5c3RlbSB1c2luZyBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAuLi4gZXhhY3RseS4gTm8gdmlydHVhbCBvciBlbXVsYXRlZCBkZXZpY2VzIGFyZSBwcmVzZW50IGluIFFFTVUncyBzdGFuZGFyZCBzZXR1cC4gVGhpcyBjb25maXJtcyBpdC5cblxuVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuL3RjL3NhbXBsZS5jYCBhYnNvbHV0ZWx5IGJlbG9uZ3MgdG8gdGhpcyB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyLiBBbmQgdGhhdCdzIGEga2V5IHBvaW50OiBpdCAqbmVlZHMqIHJlYWwgTWVsbGFub3ggaGFyZHdhcmUgdG8gZnVuY3Rpb24uIEl0J3Mgbm90IGEgY2FuZGlkYXRlIGZvciBlZmZlY3RpdmUgZnV6emluZyBpbiB0aGVzZSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXG5cbk5vdywgbGV0J3MgZm9ybWF0IHRoZSBgc2V0LXJlc3VsdHNgIG91dHB1dCBjb3JyZWN0bHkuXG5cbiogICBgV29ydGhGdXp6aW5nYDogRmFsc2UuXG4qICAgYFJlYXNvbmluZ2A6IFdlIG5lZWQgdG8gY29uY2lzZWx5IGFydGljdWxhdGUgd2h5IGl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQuIEl0J3MgdGhlIHZlbmRvci1zcGVjaWZpYyBuYXR1cmUgb2YgdGhlIE1lbGxhbm94IGBtbHg1YCBkcml2ZXIsIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIE5JQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS92aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIFRoYXQncyBhIGNsZWFyIGV4cGxhbmF0aW9uLlxuKiAgIGBFbmFibGVDb25maWdzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC5cbiogICBgRm9jdXNTeW1ib2xzYDogRW1wdHkgbGlzdCwgb3IgbnVsbC5cblxuT2theSwgdGhhdCdzIGNsZWFyLiBOb3cgdG8gY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTA2OSwiT3V0cHV0VG9rZW5zIjoxMDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDg6MjUuODk0OTcxMTkzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTkwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgY29kZSBpbiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW4vdGMvc2FtcGxlLmMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIE1lbGxhbm94IG1seDUgbmV0d29yayBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIE1lbGxhbm94IENvbm5lY3RYIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChlLmcuIFFFTVUpLCBtYWtpbmcgaXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMTg6NDg6MjUuODk0OTk0NTEzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoiSWYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowtmjmm[1] Phase: Running StartedAt: 2026-09-03 18:48:36 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtmjmm[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-03 18:48:36 +0000 UTC FinishedAt: 2026-09-03 18:48:41 +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,}