From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from eddie.linux-mips.org ([148.251.95.138] helo=cvs.linux-mips.org) by metis.ext.pengutronix.de with esmtp (Exim 4.84_2) (envelope-from ) id 1dOlR2-0001E3-3f for ptxdist@pengutronix.de; Sat, 24 Jun 2017 15:49:12 +0200 Received: (from localhost user: 'ladis' uid#1021 fake: STDIN (ladis@eddie.linux-mips.org)) by eddie.linux-mips.org id S23992028AbdFXNtLwhpJq (ORCPT ); Sat, 24 Jun 2017 15:49:11 +0200 Date: Sat, 24 Jun 2017 15:49:10 +0200 From: Ladislav Michl Message-ID: <20170624134910.vgtusosnpzat6jde@lenoch> References: <20170624134751.gfpub6mrshdwz6cd@lenoch> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170624134751.gfpub6mrshdwz6cd@lenoch> Subject: [ptxdist] [PATCH 2/3] openssl: add cryptodev support List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Rm9yIE9wZW5TU0xfMV8wXzItc3RhYmxlIGJyYW5jaCB0d28gcGF0Y2hlcyBtZW50aW9uZWQgaW4g Y3J5cHRvZGV2J3MKUkVBRE1FIHdlcmUgZm9yd2FyZC1wb3J0ZWQuIFRoYXQncyBzYWZlIHRvIGRv IGFzIHRoZXkgYXJlIG5vLW9wCnVudGlsIGNyeXB0b2RldiBzdXBwb3J0IGlzIGVuYWJsZWQuIFRo ZXNlIHBhdGNoZXMgd2VyZSBhbHNvIG1lcmdlZAp0byBtYXN0ZXIgYnJhbmNoIGluIDIwMTQgdG8g YmUgZmluYWxseSByZW1vdmVkIGFsdG9nZXRoZXIKaW4gY29tbWl0IGYzOWE1NTAxY2U2OWNhYjBj NzI4MmY1ZGNiZjJiODBkOGVlMjU5ZjIgYXMgYSBwYXJ0IG9mCm9wZW5zc2wncyBlZmZvcnQgdG8g bW92ZSB0byBBcGFjaGUgTGljZW5zZSB2ZXJzaW9uIDIuMC4KU2VlIHRoaXMgUFI6IGh0dHBzOi8v Z2l0aHViLmNvbS9vcGVuc3NsL29wZW5zc2wvcHVsbC8zNjk5CkJsb2cgcG9zdCBtZW50aW9uZWQg aW4gc2FpZCBQUiBhbHNvIHN0YXRlczogIi4uLmJ1dCB3ZSBleHBlY3QgdG8gaGF2ZQphIHJlcGxh Y2VtZW50IHNvb24gKGZvciBhdCBsZWFzdCBMaW51eCBhbmQgRnJlZUJTRCkuIiBXaGF0ZXZlciAi c29vbiIKbWVhbnMuLi4KClNpZ25lZC1vZmYtYnk6IExhZGlzbGF2IE1pY2hsIDxsYWRpc0BsaW51 eC1taXBzLm9yZz4KLS0tCiAuLi50b2Rldi1GaXgtaXNzdWUtd2l0aC1zaWduYXR1cmUtZ2VuZXJh dGlvbi5wYXRjaCB8IDQwNCArKysrKysrKysrKysrKysrKysrKysKIC4uLjAyMDEtY3J5cHRvZGV2 LWFsbG93LWNvcHlpbmctRVZQLWNvbnRleHRzLnBhdGNoIHwgMjA1ICsrKysrKysrKysrCiBwYXRj aGVzL29wZW5zc2wtMS4wLjJsL3NlcmllcyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBy dWxlcy9vcGVuc3NsLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNiAr CiBydWxlcy9vcGVuc3NsLm1ha2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg NyArCiA1IGZpbGVzIGNoYW5nZWQsIDYzNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvcGF0 Y2hlcy9vcGVuc3NsLTEuMC4ybC8wMjAwLWNyeXB0b2Rldi1GaXgtaXNzdWUtd2l0aC1zaWduYXR1 cmUtZ2VuZXJhdGlvbi5wYXRjaCBiL3BhdGNoZXMvb3BlbnNzbC0xLjAuMmwvMDIwMC1jcnlwdG9k ZXYtRml4LWlzc3VlLXdpdGgtc2lnbmF0dXJlLWdlbmVyYXRpb24ucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42ZTY2MGIzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9w YXRjaGVzL29wZW5zc2wtMS4wLjJsLzAyMDAtY3J5cHRvZGV2LUZpeC1pc3N1ZS13aXRoLXNpZ25h dHVyZS1nZW5lcmF0aW9uLnBhdGNoCkBAIC0wLDAgKzEsNDA0IEBACitGcm9tIDYzMzM0YzNkMWMz OTE5YjA0NmE3OTI2YTEzMWU2NzZjZTI3MDVmYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBOaWtvcyBNYXZyb2dpYW5ub3BvdWxvcyA8bm1hdkBnbnV0bHMub3JnPgorRGF0ZTogRnJp LCA0IEp1bCAyMDE0IDA3OjMxOjI1ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMS8yXSBjcnlwdG9k ZXY6IEZpeCBpc3N1ZSB3aXRoIHNpZ25hdHVyZSBnZW5lcmF0aW9uCisKK1RoYXQgcGF0Y2ggYWxz byBlbmFibGVzIHN1cHBvcnQgZm9yIFNIQTIgaGFzaGVzLCBhbmQKK3JlbW92ZXMgc3VwcG9ydCBm b3IgaGFzaGVzIHRoYXQgd2VyZSBuZXZlciBzdXBwb3J0ZWQgYnkKK2NyeXB0b2Rldi4KKworW21h bnVhbGx5IHJlYmFzZWQgdG8gT3BlblNTTF8xXzBfMi1zdGFibGUgYnJhbmNoXQorTGFkaXNsYXYg TWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgorLS0tCisgY3J5cHRvL2VuZ2luZS9lbmdfY3J5 cHRvZGV2LmMgfCAxODEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t CisgMSBmaWxlIGNoYW5nZWQsIDE0MSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKKwor ZGlmZiAtLWdpdCBhL2NyeXB0by9lbmdpbmUvZW5nX2NyeXB0b2Rldi5jIGIvY3J5cHRvL2VuZ2lu ZS9lbmdfY3J5cHRvZGV2LmMKK2luZGV4IGFmNTk0NzFjNC4uNzViYjg1YjI2IDEwMDY0NAorLS0t IGEvY3J5cHRvL2VuZ2luZS9lbmdfY3J5cHRvZGV2LmMKKysrKyBiL2NyeXB0by9lbmdpbmUvZW5n X2NyeXB0b2Rldi5jCitAQCAtMiw2ICsyLDcgQEAKKyAgKiBDb3B5cmlnaHQgKGMpIDIwMDIgQm9i IEJlY2sgPGJlY2tAb3BlbmJzZC5vcmc+CisgICogQ29weXJpZ2h0IChjKSAyMDAyIFRoZW8gZGUg UmFhZHQKKyAgKiBDb3B5cmlnaHQgKGMpIDIwMDIgTWFya3VzIEZyaWVkbAorKyAqIENvcHlyaWdo dCAoYykgMjAxMiBOaWtvcyBNYXZyb2dpYW5ub3BvdWxvcworICAqIEFsbCByaWdodHMgcmVzZXJ2 ZWQuCisgICoKKyAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5 IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK0BAIC03Myw3ICs3NCw2IEBAIHN0cnVjdCBkZXZfY3J5 cHRvX3N0YXRlIHsKKyAgICAgc3RydWN0IHNlc3Npb25fb3AgZF9zZXNzOworICAgICBpbnQgZF9m ZDsKKyAjIGlmZGVmIFVTRV9DUllQVE9ERVZfRElHRVNUUworLSAgICBjaGFyIGR1bW15X21hY19r ZXlbSEFTSF9NQVhfTEVOXTsKKyAgICAgdW5zaWduZWQgY2hhciBkaWdlc3RfcmVzW0hBU0hfTUFY X0xFTl07CisgICAgIGNoYXIgKm1hY19kYXRhOworICAgICBpbnQgbWFjX2xlbjsKK0BAIC0xOTAs OCArMTkwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgeworIHN0YXRpYyBzdHJ1Y3QgeworICAgICBpbnQg aWQ7CisgICAgIGludCBuaWQ7CistICAgIGludCBrZXlsZW47CisrICAgIGludCBkaWdlc3RsZW47 CisgfSBkaWdlc3RzW10gPSB7CisrI2lmIDAKKysgICAgLyogSE1BQyBpcyBub3Qgc3VwcG9ydGVk ICovCisgICAgIHsKKyAgICAgICAgIENSWVBUT19NRDVfSE1BQywgTklEX2htYWNXaXRoTUQ1LCAx NgorICAgICB9LAorQEAgLTIwOCw2ICsyMTAsNyBAQCBzdGF0aWMgc3RydWN0IHsKKyAgICAgewor ICAgICAgICAgQ1JZUFRPX1NIQTFfS1BESywgTklEX3VuZGVmLCAwCisgICAgIH0sCisrI2VuZGlm CisgICAgIHsKKyAgICAgICAgIENSWVBUT19NRDUsIE5JRF9tZDUsIDE2CisgICAgIH0sCitAQCAt MjE1LDYgKzIxOCwxNSBAQCBzdGF0aWMgc3RydWN0IHsKKyAgICAgICAgIENSWVBUT19TSEExLCBO SURfc2hhMSwgMjAKKyAgICAgfSwKKyAgICAgeworKyAgICAgICAgQ1JZUFRPX1NIQTJfMjU2LCBO SURfc2hhMjU2LCAzMgorKyAgICB9LAorKyAgICB7CisrICAgICAgICBDUllQVE9fU0hBMl8zODQs IE5JRF9zaGEzODQsIDQ4CisrICAgIH0sCisrICAgIHsKKysgICAgICAgIENSWVBUT19TSEEyXzUx MiwgTklEX3NoYTUxMiwgNjQKKysgICAgfSwKKysgICAgeworICAgICAgICAgMCwgTklEX3VuZGVm LCAwCisgICAgIH0sCisgfTsKK0BAIC0yODcsNiArMjk5LDcgQEAgc3RhdGljIGludCBnZXRfYXN5 bV9kZXZfY3J5cHRvKHZvaWQpCisgc3RhdGljIGludCBnZXRfY3J5cHRvZGV2X2NpcGhlcnMoY29u c3QgaW50ICoqY25pZHMpCisgeworICAgICBzdGF0aWMgaW50IG5pZHNbQ1JZUFRPX0FMR09SSVRI TV9NQVhdOworKyAgICB1bnNpZ25lZCBjaGFyIGZha2Vfa2V5W0NSWVBUT19DSVBIRVJfTUFYX0tF WV9MRU5dOworICAgICBzdHJ1Y3Qgc2Vzc2lvbl9vcCBzZXNzOworICAgICBpbnQgZmQsIGksIGNv dW50ID0gMDsKKyAKK0BAIC0yOTUsNyArMzA4LDcgQEAgc3RhdGljIGludCBnZXRfY3J5cHRvZGV2 X2NpcGhlcnMoY29uc3QgaW50ICoqY25pZHMpCisgICAgICAgICByZXR1cm4gKDApOworICAgICB9 CisgICAgIG1lbXNldCgmc2VzcywgMCwgc2l6ZW9mKHNlc3MpKTsKKy0gICAgc2Vzcy5rZXkgPSAo Y2FkZHJfdCkgIjEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ubyI7CisrICAgIHNlc3Mua2V5ID0gKHZv aWQqKSBmYWtlX2tleTsKKyAKKyAgICAgZm9yIChpID0gMDsgY2lwaGVyc1tpXS5pZCAmJiBjb3Vu dCA8IENSWVBUT19BTEdPUklUSE1fTUFYOyBpKyspIHsKKyAgICAgICAgIGlmIChjaXBoZXJzW2ld Lm5pZCA9PSBOSURfdW5kZWYpCitAQCAtMzI2LDYgKzMzOSw3IEBAIHN0YXRpYyBpbnQgZ2V0X2Ny eXB0b2Rldl9jaXBoZXJzKGNvbnN0IGludCAqKmNuaWRzKQorIHN0YXRpYyBpbnQgZ2V0X2NyeXB0 b2Rldl9kaWdlc3RzKGNvbnN0IGludCAqKmNuaWRzKQorIHsKKyAgICAgc3RhdGljIGludCBuaWRz W0NSWVBUT19BTEdPUklUSE1fTUFYXTsKKysgICAgdW5zaWduZWQgY2hhciBmYWtlX2tleVtDUllQ VE9fQ0lQSEVSX01BWF9LRVlfTEVOXTsKKyAgICAgc3RydWN0IHNlc3Npb25fb3Agc2VzczsKKyAg ICAgaW50IGZkLCBpLCBjb3VudCA9IDA7CisgCitAQCAtMzM0LDEyICszNDgsMTIgQEAgc3RhdGlj IGludCBnZXRfY3J5cHRvZGV2X2RpZ2VzdHMoY29uc3QgaW50ICoqY25pZHMpCisgICAgICAgICBy ZXR1cm4gKDApOworICAgICB9CisgICAgIG1lbXNldCgmc2VzcywgMCwgc2l6ZW9mKHNlc3MpKTsK Ky0gICAgc2Vzcy5tYWNrZXkgPSAoY2FkZHJfdCkgIjEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ubyI7 CisrICAgIHNlc3MubWFja2V5ID0gZmFrZV9rZXk7CisgICAgIGZvciAoaSA9IDA7IGRpZ2VzdHNb aV0uaWQgJiYgY291bnQgPCBDUllQVE9fQUxHT1JJVEhNX01BWDsgaSsrKSB7CisgICAgICAgICBp ZiAoZGlnZXN0c1tpXS5uaWQgPT0gTklEX3VuZGVmKQorICAgICAgICAgICAgIGNvbnRpbnVlOwor ICAgICAgICAgc2Vzcy5tYWMgPSBkaWdlc3RzW2ldLmlkOworLSAgICAgICAgc2Vzcy5tYWNrZXls ZW4gPSBkaWdlc3RzW2ldLmtleWxlbjsKKysgICAgICAgIHNlc3MubWFja2V5bGVuID0gODsKKyAg ICAgICAgIHNlc3MuY2lwaGVyID0gMDsKKyAgICAgICAgIGlmIChpb2N0bChmZCwgQ0lPQ0dTRVNT SU9OLCAmc2VzcykgIT0gLTEgJiYKKyAgICAgICAgICAgICBpb2N0bChmZCwgQ0lPQ0ZTRVNTSU9O LCAmc2Vzcy5zZXMpICE9IC0xKQorQEAgLTQyNSwxNCArNDM5LDE0IEBAIGNyeXB0b2Rldl9jaXBo ZXIoRVZQX0NJUEhFUl9DVFggKmN0eCwgdW5zaWduZWQgY2hhciAqb3V0LAorICAgICBjcnlwLnNl cyA9IHNlc3MtPnNlczsKKyAgICAgY3J5cC5mbGFncyA9IDA7CisgICAgIGNyeXAubGVuID0gaW5s OworLSAgICBjcnlwLnNyYyA9IChjYWRkcl90KSBpbjsKKy0gICAgY3J5cC5kc3QgPSAoY2FkZHJf dCkgb3V0OworKyAgICBjcnlwLnNyYyA9ICh2b2lkKikgaW47CisrICAgIGNyeXAuZHN0ID0gKHZv aWQqKSBvdXQ7CisgICAgIGNyeXAubWFjID0gMDsKKyAKKyAgICAgY3J5cC5vcCA9IGN0eC0+ZW5j cnlwdCA/IENPUF9FTkNSWVBUIDogQ09QX0RFQ1JZUFQ7CisgCisgICAgIGlmIChjdHgtPmNpcGhl ci0+aXZfbGVuKSB7CistICAgICAgICBjcnlwLml2ID0gKGNhZGRyX3QpIGN0eC0+aXY7CisrICAg ICAgICBjcnlwLml2ID0gKHZvaWQqKSBjdHgtPml2OworICAgICAgICAgaWYgKCFjdHgtPmVuY3J5 cHQpIHsKKyAgICAgICAgICAgICBpaXYgPSBpbiArIGlubCAtIGN0eC0+Y2lwaGVyLT5pdl9sZW47 CisgICAgICAgICAgICAgbWVtY3B5KHNhdmVfaXYsIGlpdiwgY3R4LT5jaXBoZXItPml2X2xlbik7 CitAQCAtNDg0LDcgKzQ5OCw3IEBAIGNyeXB0b2Rldl9pbml0X2tleShFVlBfQ0lQSEVSX0NUWCAq Y3R4LCBjb25zdCB1bnNpZ25lZCBjaGFyICprZXksCisgICAgIGlmICgoc3RhdGUtPmRfZmQgPSBn ZXRfZGV2X2NyeXB0bygpKSA8IDApCisgICAgICAgICByZXR1cm4gKDApOworIAorLSAgICBzZXNz LT5rZXkgPSAoY2FkZHJfdCkga2V5OworKyAgICBzZXNzLT5rZXkgPSAodm9pZCopIGtleTsKKyAg ICAgc2Vzcy0+a2V5bGVuID0gY3R4LT5rZXlfbGVuOworICAgICBzZXNzLT5jaXBoZXIgPSBjaXBo ZXI7CisgCitAQCAtNzUwLDE2ICs3NjQsNiBAQCBzdGF0aWMgaW50IGRpZ2VzdF9uaWRfdG9fY3J5 cHRvZGV2KGludCBuaWQpCisgICAgIHJldHVybiAoMCk7CisgfQorIAorLXN0YXRpYyBpbnQgZGln ZXN0X2tleV9sZW5ndGgoaW50IG5pZCkKKy17CistICAgIGludCBpOworLQorLSAgICBmb3IgKGkg PSAwOyBkaWdlc3RzW2ldLmlkOyBpKyspCistICAgICAgICBpZiAoZGlnZXN0c1tpXS5uaWQgPT0g bmlkKQorLSAgICAgICAgICAgIHJldHVybiBkaWdlc3RzW2ldLmtleWxlbjsKKy0gICAgcmV0dXJu ICgwKTsKKy19CistCisgc3RhdGljIGludCBjcnlwdG9kZXZfZGlnZXN0X2luaXQoRVZQX01EX0NU WCAqY3R4KQorIHsKKyAgICAgc3RydWN0IGRldl9jcnlwdG9fc3RhdGUgKnN0YXRlID0gY3R4LT5t ZF9kYXRhOworQEAgLTc3OCw4ICs3ODIsOCBAQCBzdGF0aWMgaW50IGNyeXB0b2Rldl9kaWdlc3Rf aW5pdChFVlBfTURfQ1RYICpjdHgpCisgICAgICAgICByZXR1cm4gKDApOworICAgICB9CisgCist ICAgIHNlc3MtPm1hY2tleSA9IHN0YXRlLT5kdW1teV9tYWNfa2V5OworLSAgICBzZXNzLT5tYWNr ZXlsZW4gPSBkaWdlc3Rfa2V5X2xlbmd0aChjdHgtPmRpZ2VzdC0+dHlwZSk7CisrICAgIHNlc3Mt Pm1hY2tleSA9IE5VTEw7CisrICAgIHNlc3MtPm1hY2tleWxlbiA9IDA7CisgICAgIHNlc3MtPm1h YyA9IGRpZ2VzdDsKKyAKKyAgICAgaWYgKGlvY3RsKHN0YXRlLT5kX2ZkLCBDSU9DR1NFU1NJT04s IHNlc3MpIDwgMCkgeworQEAgLTgwNSw3ICs4MDksNyBAQCBzdGF0aWMgaW50IGNyeXB0b2Rldl9k aWdlc3RfdXBkYXRlKEVWUF9NRF9DVFggKmN0eCwgY29uc3Qgdm9pZCAqZGF0YSwKKyAgICAgfQor IAorICAgICBpZiAoIWNvdW50KSB7CistICAgICAgICByZXR1cm4gKDApOworKyAgICAgICAgcmV0 dXJuICgxKTsKKyAgICAgfQorIAorICAgICBpZiAoIShjdHgtPmZsYWdzICYgRVZQX01EX0NUWF9G TEFHX09ORVNIT1QpKSB7CitAQCAtODMwLDkgKzgzNCw5IEBAIHN0YXRpYyBpbnQgY3J5cHRvZGV2 X2RpZ2VzdF91cGRhdGUoRVZQX01EX0NUWCAqY3R4LCBjb25zdCB2b2lkICpkYXRhLAorICAgICBj cnlwLnNlcyA9IHNlc3MtPnNlczsKKyAgICAgY3J5cC5mbGFncyA9IDA7CisgICAgIGNyeXAubGVu ID0gY291bnQ7CistICAgIGNyeXAuc3JjID0gKGNhZGRyX3QpIGRhdGE7CisrICAgIGNyeXAuc3Jj ID0gKHZvaWQqKSBkYXRhOworICAgICBjcnlwLmRzdCA9IE5VTEw7CistICAgIGNyeXAubWFjID0g KGNhZGRyX3QpIHN0YXRlLT5kaWdlc3RfcmVzOworKyAgICBjcnlwLm1hYyA9ICh2b2lkKikgc3Rh dGUtPmRpZ2VzdF9yZXM7CisgICAgIGlmIChpb2N0bChzdGF0ZS0+ZF9mZCwgQ0lPQ0NSWVBULCAm Y3J5cCkgPCAwKSB7CisgICAgICAgICBwcmludGYoImNyeXB0b2Rldl9kaWdlc3RfdXBkYXRlOiBk aWdlc3QgZmFpbGVkXG4iKTsKKyAgICAgICAgIHJldHVybiAoMCk7CitAQCAtODYxLDcgKzg2NSw3 IEBAIHN0YXRpYyBpbnQgY3J5cHRvZGV2X2RpZ2VzdF9maW5hbChFVlBfTURfQ1RYICpjdHgsIHVu c2lnbmVkIGNoYXIgKm1kKQorICAgICAgICAgY3J5cC5sZW4gPSBzdGF0ZS0+bWFjX2xlbjsKKyAg ICAgICAgIGNyeXAuc3JjID0gc3RhdGUtPm1hY19kYXRhOworICAgICAgICAgY3J5cC5kc3QgPSBO VUxMOworLSAgICAgICAgY3J5cC5tYWMgPSAoY2FkZHJfdCkgbWQ7CisrICAgICAgICBjcnlwLm1h YyA9ICh2b2lkKikgbWQ7CisgICAgICAgICBpZiAoaW9jdGwoc3RhdGUtPmRfZmQsIENJT0NDUllQ VCwgJmNyeXApIDwgMCkgeworICAgICAgICAgICAgIHByaW50ZigiY3J5cHRvZGV2X2RpZ2VzdF9m aW5hbDogZGlnZXN0IGZhaWxlZFxuIik7CisgICAgICAgICAgICAgcmV0dXJuICgwKTsKK0BAIC05 MjMsOCArOTI3LDggQEAgc3RhdGljIGludCBjcnlwdG9kZXZfZGlnZXN0X2NvcHkoRVZQX01EX0NU WCAqdG8sIGNvbnN0IEVWUF9NRF9DVFggKmZyb20pCisgCisgICAgIGRpZ2VzdCA9IGRpZ2VzdF9u aWRfdG9fY3J5cHRvZGV2KHRvLT5kaWdlc3QtPnR5cGUpOworIAorLSAgICBzZXNzLT5tYWNrZXkg PSBkc3RhdGUtPmR1bW15X21hY19rZXk7CistICAgIHNlc3MtPm1hY2tleWxlbiA9IGRpZ2VzdF9r ZXlfbGVuZ3RoKHRvLT5kaWdlc3QtPnR5cGUpOworKyAgICBzZXNzLT5tYWNrZXkgPSBOVUxMOwor KyAgICBzZXNzLT5tYWNrZXlsZW4gPSAwOworICAgICBzZXNzLT5tYWMgPSBkaWdlc3Q7CisgCisg ICAgIGRzdGF0ZS0+ZF9mZCA9IGdldF9kZXZfY3J5cHRvKCk7CitAQCAtOTUxLDM0ICs5NTUsMTE4 IEBAIHN0YXRpYyBpbnQgY3J5cHRvZGV2X2RpZ2VzdF9jb3B5KEVWUF9NRF9DVFggKnRvLCBjb25z dCBFVlBfTURfQ1RYICpmcm9tKQorICAgICByZXR1cm4gMTsKKyB9CisgCistY29uc3QgRVZQX01E IGNyeXB0b2Rldl9zaGExID0geworK3N0YXRpYyBjb25zdCBFVlBfTUQgY3J5cHRvZGV2X3NoYTEg PSB7CisgICAgIE5JRF9zaGExLAorLSAgICBOSURfdW5kZWYsCisrICAgIE5JRF9zaGExV2l0aFJT QUVuY3J5cHRpb24sCisgICAgIFNIQV9ESUdFU1RfTEVOR1RILAorKyNpZiBkZWZpbmVkKEVWUF9N RF9GTEFHX1BLRVlfTUVUSE9EX1NJR05BVFVSRSkgJiYgZGVmaW5lZChFVlBfTURfRkxBR19ESUdB TEdJRF9BQlNFTlQpCisrICAgIEVWUF9NRF9GTEFHX1BLRVlfTUVUSE9EX1NJR05BVFVSRSB8Cisr ICAgIEVWUF9NRF9GTEFHX0RJR0FMR0lEX0FCU0VOVCB8CisrI2VuZGlmCisgICAgIEVWUF9NRF9G TEFHX09ORVNIT1QsCisgICAgIGNyeXB0b2Rldl9kaWdlc3RfaW5pdCwKKyAgICAgY3J5cHRvZGV2 X2RpZ2VzdF91cGRhdGUsCisgICAgIGNyeXB0b2Rldl9kaWdlc3RfZmluYWwsCisgICAgIGNyeXB0 b2Rldl9kaWdlc3RfY29weSwKKyAgICAgY3J5cHRvZGV2X2RpZ2VzdF9jbGVhbnVwLAorLSAgICBF VlBfUEtFWV9OVUxMX21ldGhvZCwKKysgICAgRVZQX1BLRVlfUlNBX21ldGhvZCwKKyAgICAgU0hB X0NCTE9DSywKKy0gICAgc2l6ZW9mKHN0cnVjdCBkZXZfY3J5cHRvX3N0YXRlKSwKKysgICAgc2l6 ZW9mKEVWUF9NRCAqKSArIHNpemVvZihzdHJ1Y3QgZGV2X2NyeXB0b19zdGF0ZSksCisrfTsKKysK KytzdGF0aWMgY29uc3QgRVZQX01EIGNyeXB0b2Rldl9zaGEyNTYgPSB7CisrICAgIE5JRF9zaGEy NTYsCisrICAgIE5JRF9zaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiwKKysgICAgU0hBMjU2X0RJR0VT VF9MRU5HVEgsCisrI2lmIGRlZmluZWQoRVZQX01EX0ZMQUdfUEtFWV9NRVRIT0RfU0lHTkFUVVJF KSAmJiBkZWZpbmVkKEVWUF9NRF9GTEFHX0RJR0FMR0lEX0FCU0VOVCkKKysgICAgRVZQX01EX0ZM QUdfUEtFWV9NRVRIT0RfU0lHTkFUVVJFIHwKKysgICAgRVZQX01EX0ZMQUdfRElHQUxHSURfQUJT RU5UIHwKKysjZW5kaWYKKysgICAgRVZQX01EX0ZMQUdfT05FU0hPVCwKKysgICAgY3J5cHRvZGV2 X2RpZ2VzdF9pbml0LAorKyAgICBjcnlwdG9kZXZfZGlnZXN0X3VwZGF0ZSwKKysgICAgY3J5cHRv ZGV2X2RpZ2VzdF9maW5hbCwKKysgICAgY3J5cHRvZGV2X2RpZ2VzdF9jb3B5LAorKyAgICBjcnlw dG9kZXZfZGlnZXN0X2NsZWFudXAsCisrICAgIEVWUF9QS0VZX1JTQV9tZXRob2QsCisrICAgIFNI QTI1Nl9DQkxPQ0ssCisrICAgIHNpemVvZihFVlBfTUQgKikgKyBzaXplb2Yoc3RydWN0IGRldl9j cnlwdG9fc3RhdGUpLAorK307CisrCisrc3RhdGljIGNvbnN0IEVWUF9NRCBjcnlwdG9kZXZfc2hh MjI0ID0geworKyAgICBOSURfc2hhMjI0LAorKyAgICBOSURfc2hhMjI0V2l0aFJTQUVuY3J5cHRp b24sCisrICAgIFNIQTIyNF9ESUdFU1RfTEVOR1RILAorKyNpZiBkZWZpbmVkKEVWUF9NRF9GTEFH X1BLRVlfTUVUSE9EX1NJR05BVFVSRSkgJiYgZGVmaW5lZChFVlBfTURfRkxBR19ESUdBTEdJRF9B QlNFTlQpCisrICAgIEVWUF9NRF9GTEFHX1BLRVlfTUVUSE9EX1NJR05BVFVSRSB8CisrICAgIEVW UF9NRF9GTEFHX0RJR0FMR0lEX0FCU0VOVCB8CisrI2VuZGlmCisrICAgIEVWUF9NRF9GTEFHX09O RVNIT1QsCisrICAgIGNyeXB0b2Rldl9kaWdlc3RfaW5pdCwKKysgICAgY3J5cHRvZGV2X2RpZ2Vz dF91cGRhdGUsCisrICAgIGNyeXB0b2Rldl9kaWdlc3RfZmluYWwsCisrICAgIGNyeXB0b2Rldl9k aWdlc3RfY29weSwKKysgICAgY3J5cHRvZGV2X2RpZ2VzdF9jbGVhbnVwLAorKyAgICBFVlBfUEtF WV9SU0FfbWV0aG9kLAorKyAgICBTSEEyNTZfQ0JMT0NLLAorKyAgICBzaXplb2YoRVZQX01EICop ICsgc2l6ZW9mKHN0cnVjdCBkZXZfY3J5cHRvX3N0YXRlKSwKKyt9OworKworK3N0YXRpYyBjb25z dCBFVlBfTUQgY3J5cHRvZGV2X3NoYTM4NCA9IHsKKysgICAgTklEX3NoYTM4NCwKKysgICAgTklE X3NoYTM4NFdpdGhSU0FFbmNyeXB0aW9uLAorKyAgICBTSEEzODRfRElHRVNUX0xFTkdUSCwKKysj aWYgZGVmaW5lZChFVlBfTURfRkxBR19QS0VZX01FVEhPRF9TSUdOQVRVUkUpICYmIGRlZmluZWQo RVZQX01EX0ZMQUdfRElHQUxHSURfQUJTRU5UKQorKyAgICBFVlBfTURfRkxBR19QS0VZX01FVEhP RF9TSUdOQVRVUkUgfAorKyAgICBFVlBfTURfRkxBR19ESUdBTEdJRF9BQlNFTlQgfAorKyNlbmRp ZgorKyAgICBFVlBfTURfRkxBR19PTkVTSE9ULAorKyAgICBjcnlwdG9kZXZfZGlnZXN0X2luaXQs CisrICAgIGNyeXB0b2Rldl9kaWdlc3RfdXBkYXRlLAorKyAgICBjcnlwdG9kZXZfZGlnZXN0X2Zp bmFsLAorKyAgICBjcnlwdG9kZXZfZGlnZXN0X2NvcHksCisrICAgIGNyeXB0b2Rldl9kaWdlc3Rf Y2xlYW51cCwKKysgICAgRVZQX1BLRVlfUlNBX21ldGhvZCwKKysgICAgU0hBNTEyX0NCTE9DSywK KysgICAgc2l6ZW9mKEVWUF9NRCAqKSArIHNpemVvZihzdHJ1Y3QgZGV2X2NyeXB0b19zdGF0ZSks CisrfTsKKysKKytzdGF0aWMgY29uc3QgRVZQX01EIGNyeXB0b2Rldl9zaGE1MTIgPSB7CisrICAg IE5JRF9zaGE1MTIsCisrICAgIE5JRF9zaGE1MTJXaXRoUlNBRW5jcnlwdGlvbiwKKysgICAgU0hB NTEyX0RJR0VTVF9MRU5HVEgsCisrI2lmIGRlZmluZWQoRVZQX01EX0ZMQUdfUEtFWV9NRVRIT0Rf U0lHTkFUVVJFKSAmJiBkZWZpbmVkKEVWUF9NRF9GTEFHX0RJR0FMR0lEX0FCU0VOVCkKKysgICAg RVZQX01EX0ZMQUdfUEtFWV9NRVRIT0RfU0lHTkFUVVJFIHwKKysgICAgRVZQX01EX0ZMQUdfRElH QUxHSURfQUJTRU5UIHwKKysjZW5kaWYKKysgICAgRVZQX01EX0ZMQUdfT05FU0hPVCwKKysgICAg Y3J5cHRvZGV2X2RpZ2VzdF9pbml0LAorKyAgICBjcnlwdG9kZXZfZGlnZXN0X3VwZGF0ZSwKKysg ICAgY3J5cHRvZGV2X2RpZ2VzdF9maW5hbCwKKysgICAgY3J5cHRvZGV2X2RpZ2VzdF9jb3B5LAor KyAgICBjcnlwdG9kZXZfZGlnZXN0X2NsZWFudXAsCisrICAgIEVWUF9QS0VZX1JTQV9tZXRob2Qs CisrICAgIFNIQTUxMl9DQkxPQ0ssCisrICAgIHNpemVvZihFVlBfTUQgKikgKyBzaXplb2Yoc3Ry dWN0IGRldl9jcnlwdG9fc3RhdGUpLAorIH07CisgCisgY29uc3QgRVZQX01EIGNyeXB0b2Rldl9t ZDUgPSB7CisgICAgIE5JRF9tZDUsCistICAgIE5JRF91bmRlZiwKKysgICAgTklEX21kNVdpdGhS U0FFbmNyeXB0aW9uLAorICAgICAxNiAvKiBNRDVfRElHRVNUX0xFTkdUSCAqLyAsCisrI2lmIGRl ZmluZWQoRVZQX01EX0ZMQUdfUEtFWV9NRVRIT0RfU0lHTkFUVVJFKSAmJiBkZWZpbmVkKEVWUF9N RF9GTEFHX0RJR0FMR0lEX0FCU0VOVCkKKysgICAgRVZQX01EX0ZMQUdfUEtFWV9NRVRIT0RfU0lH TkFUVVJFIHwKKysgICAgRVZQX01EX0ZMQUdfRElHQUxHSURfQUJTRU5UIHwKKysjZW5kaWYKKyAg ICAgRVZQX01EX0ZMQUdfT05FU0hPVCwKKyAgICAgY3J5cHRvZGV2X2RpZ2VzdF9pbml0LAorICAg ICBjcnlwdG9kZXZfZGlnZXN0X3VwZGF0ZSwKKyAgICAgY3J5cHRvZGV2X2RpZ2VzdF9maW5hbCwK KyAgICAgY3J5cHRvZGV2X2RpZ2VzdF9jb3B5LAorICAgICBjcnlwdG9kZXZfZGlnZXN0X2NsZWFu dXAsCistICAgIEVWUF9QS0VZX05VTExfbWV0aG9kLAorKyAgICBFVlBfUEtFWV9SU0FfbWV0aG9k LAorICAgICA2NCAvKiBNRDVfQ0JMT0NLICovICwKKy0gICAgc2l6ZW9mKHN0cnVjdCBkZXZfY3J5 cHRvX3N0YXRlKSwKKysgICAgc2l6ZW9mKEVWUF9NRCAqKSArIHNpemVvZihzdHJ1Y3QgZGV2X2Ny eXB0b19zdGF0ZSksCisgfTsKKyAKKyAjIGVuZGlmICAgICAgICAgICAgICAgICAgICAgICAgIC8q IFVTRV9DUllQVE9ERVZfRElHRVNUUyAqLworQEAgLTk5OCw2ICsxMDg2LDE4IEBAIGNyeXB0b2Rl dl9lbmdpbmVfZGlnZXN0cyhFTkdJTkUgKmUsIGNvbnN0IEVWUF9NRCAqKmRpZ2VzdCwKKyAgICAg Y2FzZSBOSURfc2hhMToKKyAgICAgICAgICpkaWdlc3QgPSAmY3J5cHRvZGV2X3NoYTE7CisgICAg ICAgICBicmVhazsKKysgICAgY2FzZSBOSURfc2hhMjI0OgorKyAgICAgICAgKmRpZ2VzdCA9ICZj cnlwdG9kZXZfc2hhMjI0OworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgTklEX3NoYTI1NjoK KysgICAgICAgICpkaWdlc3QgPSAmY3J5cHRvZGV2X3NoYTI1NjsKKysgICAgICAgIGJyZWFrOwor KyAgICBjYXNlIE5JRF9zaGEzODQ6CisrICAgICAgICAqZGlnZXN0ID0gJmNyeXB0b2Rldl9zaGEz ODQ7CisrICAgICAgICBicmVhazsKKysgICAgY2FzZSBOSURfc2hhNTEyOgorKyAgICAgICAgKmRp Z2VzdCA9ICZjcnlwdG9kZXZfc2hhNTEyOworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1bHQ6 CisgIyBlbmRpZiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBVU0VfQ1JZUFRPREVWX0RJR0VT VFMgKi8KKyAgICAgICAgICpkaWdlc3QgPSBOVUxMOworQEAgLTEwMjgsNyArMTEyOCw3IEBAIHN0 YXRpYyBpbnQgYm4yY3JwYXJhbShjb25zdCBCSUdOVU0gKmEsIHN0cnVjdCBjcnBhcmFtICpjcnAp CisgICAgICAgICByZXR1cm4gKDEpOworICAgICBtZW1zZXQoYiwgMCwgYnl0ZXMpOworIAorLSAg ICBjcnAtPmNycF9wID0gKGNhZGRyX3QpIGI7CisrICAgIGNycC0+Y3JwX3AgPSAodm9pZCopIGI7 CisgICAgIGNycC0+Y3JwX25iaXRzID0gYml0czsKKyAKKyAgICAgZm9yIChpID0gMCwgaiA9IDA7 IGkgPCBhLT50b3A7IGkrKykgeworQEAgLTEyOTEsNyArMTM5MSw3IEBAIHN0YXRpYyBEU0FfU0lH ICpjcnlwdG9kZXZfZHNhX2RvX3NpZ24oY29uc3QgdW5zaWduZWQgY2hhciAqZGdzdCwgaW50IGRs ZW4sCisgICAgIGtvcC5jcmtfb3AgPSBDUktfRFNBX1NJR047CisgCisgICAgIC8qIGlucHV0czog ZGdzdCBkc2EtPnAgZHNhLT5xIGRzYS0+ZyBkc2EtPnByaXZfa2V5ICovCistICAgIGtvcC5jcmtf cGFyYW1bMF0uY3JwX3AgPSAoY2FkZHJfdCkgZGdzdDsKKysgICAga29wLmNya19wYXJhbVswXS5j cnBfcCA9ICh2b2lkKikgZGdzdDsKKyAgICAga29wLmNya19wYXJhbVswXS5jcnBfbmJpdHMgPSBk bGVuICogODsKKyAgICAgaWYgKGJuMmNycGFyYW0oZHNhLT5wLCAma29wLmNya19wYXJhbVsxXSkp CisgICAgICAgICBnb3RvIGVycjsKK0BAIC0xMzM0LDcgKzE0MzQsNyBAQCBjcnlwdG9kZXZfZHNh X3ZlcmlmeShjb25zdCB1bnNpZ25lZCBjaGFyICpkZ3N0LCBpbnQgZGxlbiwKKyAgICAga29wLmNy a19vcCA9IENSS19EU0FfVkVSSUZZOworIAorICAgICAvKiBpbnB1dHM6IGRnc3QgZHNhLT5wIGRz YS0+cSBkc2EtPmcgZHNhLT5wdWJfa2V5IHNpZy0+ciBzaWctPnMgKi8KKy0gICAga29wLmNya19w YXJhbVswXS5jcnBfcCA9IChjYWRkcl90KSBkZ3N0OworKyAgICBrb3AuY3JrX3BhcmFtWzBdLmNy cF9wID0gKHZvaWQqKSBkZ3N0OworICAgICBrb3AuY3JrX3BhcmFtWzBdLmNycF9uYml0cyA9IGRs ZW4gKiA4OworICAgICBpZiAoYm4yY3JwYXJhbShkc2EtPnAsICZrb3AuY3JrX3BhcmFtWzFdKSkK KyAgICAgICAgIGdvdG8gZXJyOworQEAgLTE0MTUsOSArMTUxNSwxMCBAQCBjcnlwdG9kZXZfZGhf Y29tcHV0ZV9rZXkodW5zaWduZWQgY2hhciAqa2V5LCBjb25zdCBCSUdOVU0gKnB1Yl9rZXksIERI ICpkaCkKKyAgICAgICAgIGdvdG8gZXJyOworICAgICBrb3AuY3JrX2lwYXJhbXMgPSAzOworIAor LSAgICBrb3AuY3JrX3BhcmFtWzNdLmNycF9wID0gKGNhZGRyX3QpIGtleTsKKy0gICAga29wLmNy a19wYXJhbVszXS5jcnBfbmJpdHMgPSBrZXlsZW4gKiA4OworKyAgICBrb3AuY3JrX3BhcmFtWzNd LmNycF9wID0gKHZvaWQqKSBrZXk7CisrICAgIGtvcC5jcmtfcGFyYW1bM10uY3JwX25iaXRzID0g a2V5bGVuOworICAgICBrb3AuY3JrX29wYXJhbXMgPSAxOworKyAgICBkaHJldCA9IGtleWxlbiAv IDg7CisgCisgICAgIGlmIChpb2N0bChmZCwgQ0lPQ0tFWSwgJmtvcCkgPT0gLTEpIHsKKyAgICAg ICAgIGNvbnN0IERIX01FVEhPRCAqbWV0aCA9IERIX09wZW5TU0woKTsKK0BAIC0xNDg3LDcgKzE1 ODgsNyBAQCB2b2lkIEVOR0lORV9sb2FkX2NyeXB0b2Rldih2b2lkKQorICAgICBwdXRfZGV2X2Ny eXB0byhmZCk7CisgCisgICAgIGlmICghRU5HSU5FX3NldF9pZChlbmdpbmUsICJjcnlwdG9kZXYi KSB8fAorLSAgICAgICAgIUVOR0lORV9zZXRfbmFtZShlbmdpbmUsICJCU0QgY3J5cHRvZGV2IGVu Z2luZSIpIHx8CisrICAgICAgICAhRU5HSU5FX3NldF9uYW1lKGVuZ2luZSwgImNyeXB0b2RldiBl bmdpbmUiKSB8fAorICAgICAgICAgIUVOR0lORV9zZXRfY2lwaGVycyhlbmdpbmUsIGNyeXB0b2Rl dl9lbmdpbmVfY2lwaGVycykgfHwKKyAgICAgICAgICFFTkdJTkVfc2V0X2RpZ2VzdHMoZW5naW5l LCBjcnlwdG9kZXZfZW5naW5lX2RpZ2VzdHMpIHx8CisgICAgICAgICAhRU5HSU5FX3NldF9jdHJs X2Z1bmN0aW9uKGVuZ2luZSwgY3J5cHRvZGV2X2N0cmwpIHx8CistLSAKKzIuMTEuMAorCmRpZmYg LS1naXQgYS9wYXRjaGVzL29wZW5zc2wtMS4wLjJsLzAyMDEtY3J5cHRvZGV2LWFsbG93LWNvcHlp bmctRVZQLWNvbnRleHRzLnBhdGNoIGIvcGF0Y2hlcy9vcGVuc3NsLTEuMC4ybC8wMjAxLWNyeXB0 b2Rldi1hbGxvdy1jb3B5aW5nLUVWUC1jb250ZXh0cy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjgzYTM3ZjEzMAotLS0gL2Rldi9udWxsCisrKyBiL3BhdGNoZXMv b3BlbnNzbC0xLjAuMmwvMDIwMS1jcnlwdG9kZXYtYWxsb3ctY29weWluZy1FVlAtY29udGV4dHMu cGF0Y2gKQEAgLTAsMCArMSwyMDUgQEAKK0Zyb20gNDFiMDM3OWVlNjM5YzFiYTg3YTEzNzA3ZjRh NTgzNmIzODIzYWJhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE5pa29zIE1hdnJv Z2lhbm5vcG91bG9zIDxubWF2QGdudXRscy5vcmc+CitEYXRlOiBGcmksIDQgSnVsIDIwMTQgMDg6 NDE6MDQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzJdIGNyeXB0b2RldjogYWxsb3cgY29weWlu ZyBFVlAgY29udGV4dHMKKworW21hbnVhbGx5IHJlYmFzZWQgdG8gT3BlblNTTF8xXzBfMi1zdGFi bGUgYnJhbmNoXQorTGFkaXNsYXYgTWljaGwgPGxhZGlzQGxpbnV4LW1pcHMub3JnPgorLS0tCisg Y3J5cHRvL2VuZ2luZS9lbmdfY3J5cHRvZGV2LmMgfCA1NyArKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDM1IGluc2VydGlvbnMoKyks IDIyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvY3J5cHRvL2VuZ2luZS9lbmdfY3J5cHRv ZGV2LmMgYi9jcnlwdG8vZW5naW5lL2VuZ19jcnlwdG9kZXYuYworaW5kZXggNzViYjg1YjI2Li44 ZGUzZmU0MTUgMTAwNjQ0CistLS0gYS9jcnlwdG8vZW5naW5lL2VuZ19jcnlwdG9kZXYuYworKysr IGIvY3J5cHRvL2VuZ2luZS9lbmdfY3J5cHRvZGV2LmMKK0BAIC01NDksMTUxICs1NDksMTY0IEBA IHN0YXRpYyBpbnQgY3J5cHRvZGV2X2NsZWFudXAoRVZQX0NJUEhFUl9DVFggKmN0eCkKKyAgKiBn ZXRzIGNhbGxlZCB3aGVuIGxpYmNyeXB0byByZXF1ZXN0cyBhIGNpcGhlciBOSUQuCisgICovCisg Cisrc3RhdGljIGludCBjcnlwdG9kZXZfY2lwaGVyX2N0cmwoRVZQX0NJUEhFUl9DVFggKmN0eCwg aW50IHR5cGUsIGludCBwMSwgdm9pZCAqcDIpCisreworKyAgICBzdHJ1Y3QgZGV2X2NyeXB0b19z dGF0ZSAqc3RhdGUgPSBjdHgtPmNpcGhlcl9kYXRhOworKyAgICBzdHJ1Y3Qgc2Vzc2lvbl9vcCAq c2VzcyA9ICZzdGF0ZS0+ZF9zZXNzOworKworKyAgICBpZiAodHlwZSA9PSBFVlBfQ1RSTF9DT1BZ KSB7CisrICAgICAgICBFVlBfQ0lQSEVSX0NUWCAqb3V0ID0gcDI7CisrICAgICAgICByZXR1cm4g Y3J5cHRvZGV2X2luaXRfa2V5KG91dCwgc2Vzcy0+a2V5LCBjdHgtPml2LCAwKTsKKysgICAgfQor KworKyAgICByZXR1cm4gMDsKKyt9CisrCisgLyogUkM0ICovCisgY29uc3QgRVZQX0NJUEhFUiBj cnlwdG9kZXZfcmM0ID0geworICAgICBOSURfcmM0LAorICAgICAxLCAxNiwgMCwKKy0gICAgRVZQ X0NJUEhfVkFSSUFCTEVfTEVOR1RILAorKyAgICBFVlBfQ0lQSF9WQVJJQUJMRV9MRU5HVEggfCBF VlBfQ0lQSF9DVVNUT01fQ09QWSwKKyAgICAgY3J5cHRvZGV2X2luaXRfa2V5LAorICAgICBjcnlw dG9kZXZfY2lwaGVyLAorICAgICBjcnlwdG9kZXZfY2xlYW51cCwKKyAgICAgc2l6ZW9mKHN0cnVj dCBkZXZfY3J5cHRvX3N0YXRlKSwKKyAgICAgTlVMTCwKKyAgICAgTlVMTCwKKy0gICAgTlVMTAor KyAgICBjcnlwdG9kZXZfY2lwaGVyX2N0cmwKKyB9OworIAorIC8qIERFUyBDQkMgRVZQICovCisg Y29uc3QgRVZQX0NJUEhFUiBjcnlwdG9kZXZfZGVzX2NiYyA9IHsKKyAgICAgTklEX2Rlc19jYmMs CisgICAgIDgsIDgsIDgsCistICAgIEVWUF9DSVBIX0NCQ19NT0RFLAorKyAgICBFVlBfQ0lQSF9D QkNfTU9ERSB8IEVWUF9DSVBIX0NVU1RPTV9DT1BZLAorICAgICBjcnlwdG9kZXZfaW5pdF9rZXks CisgICAgIGNyeXB0b2Rldl9jaXBoZXIsCisgICAgIGNyeXB0b2Rldl9jbGVhbnVwLAorICAgICBz aXplb2Yoc3RydWN0IGRldl9jcnlwdG9fc3RhdGUpLAorICAgICBFVlBfQ0lQSEVSX3NldF9hc24x X2l2LAorICAgICBFVlBfQ0lQSEVSX2dldF9hc24xX2l2LAorLSAgICBOVUxMCisrICAgIGNyeXB0 b2Rldl9jaXBoZXJfY3RybAorIH07CisgCisgLyogM0RFUyBDQkMgRVZQICovCisgY29uc3QgRVZQ X0NJUEhFUiBjcnlwdG9kZXZfM2Rlc19jYmMgPSB7CisgICAgIE5JRF9kZXNfZWRlM19jYmMsCisg ICAgIDgsIDI0LCA4LAorLSAgICBFVlBfQ0lQSF9DQkNfTU9ERSwKKysgICAgRVZQX0NJUEhfQ0JD X01PREUgfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSwKKyAgICAgY3J5cHRvZGV2X2luaXRfa2V5LAor ICAgICBjcnlwdG9kZXZfY2lwaGVyLAorICAgICBjcnlwdG9kZXZfY2xlYW51cCwKKyAgICAgc2l6 ZW9mKHN0cnVjdCBkZXZfY3J5cHRvX3N0YXRlKSwKKyAgICAgRVZQX0NJUEhFUl9zZXRfYXNuMV9p diwKKyAgICAgRVZQX0NJUEhFUl9nZXRfYXNuMV9pdiwKKy0gICAgTlVMTAorKyAgICBjcnlwdG9k ZXZfY2lwaGVyX2N0cmwKKyB9OworIAorIGNvbnN0IEVWUF9DSVBIRVIgY3J5cHRvZGV2X2JmX2Ni YyA9IHsKKyAgICAgTklEX2JmX2NiYywKKyAgICAgOCwgMTYsIDgsCistICAgIEVWUF9DSVBIX0NC Q19NT0RFLAorKyAgICBFVlBfQ0lQSF9DQkNfTU9ERSB8IEVWUF9DSVBIX0NVU1RPTV9DT1BZLAor ICAgICBjcnlwdG9kZXZfaW5pdF9rZXksCisgICAgIGNyeXB0b2Rldl9jaXBoZXIsCisgICAgIGNy eXB0b2Rldl9jbGVhbnVwLAorICAgICBzaXplb2Yoc3RydWN0IGRldl9jcnlwdG9fc3RhdGUpLAor ICAgICBFVlBfQ0lQSEVSX3NldF9hc24xX2l2LAorICAgICBFVlBfQ0lQSEVSX2dldF9hc24xX2l2 LAorLSAgICBOVUxMCisrICAgIGNyeXB0b2Rldl9jaXBoZXJfY3RybAorIH07CisgCisgY29uc3Qg RVZQX0NJUEhFUiBjcnlwdG9kZXZfY2FzdF9jYmMgPSB7CisgICAgIE5JRF9jYXN0NV9jYmMsCisg ICAgIDgsIDE2LCA4LAorLSAgICBFVlBfQ0lQSF9DQkNfTU9ERSwKKysgICAgRVZQX0NJUEhfQ0JD X01PREUgfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSwKKyAgICAgY3J5cHRvZGV2X2luaXRfa2V5LAor ICAgICBjcnlwdG9kZXZfY2lwaGVyLAorICAgICBjcnlwdG9kZXZfY2xlYW51cCwKKyAgICAgc2l6 ZW9mKHN0cnVjdCBkZXZfY3J5cHRvX3N0YXRlKSwKKyAgICAgRVZQX0NJUEhFUl9zZXRfYXNuMV9p diwKKyAgICAgRVZQX0NJUEhFUl9nZXRfYXNuMV9pdiwKKy0gICAgTlVMTAorKyAgICBjcnlwdG9k ZXZfY2lwaGVyX2N0cmwKKyB9OworIAorIGNvbnN0IEVWUF9DSVBIRVIgY3J5cHRvZGV2X2Flc19j YmMgPSB7CisgICAgIE5JRF9hZXNfMTI4X2NiYywKKyAgICAgMTYsIDE2LCAxNiwKKy0gICAgRVZQ X0NJUEhfQ0JDX01PREUsCisrICAgIEVWUF9DSVBIX0NCQ19NT0RFIHwgRVZQX0NJUEhfQ1VTVE9N X0NPUFksCisgICAgIGNyeXB0b2Rldl9pbml0X2tleSwKKyAgICAgY3J5cHRvZGV2X2NpcGhlciwK KyAgICAgY3J5cHRvZGV2X2NsZWFudXAsCisgICAgIHNpemVvZihzdHJ1Y3QgZGV2X2NyeXB0b19z dGF0ZSksCisgICAgIEVWUF9DSVBIRVJfc2V0X2FzbjFfaXYsCisgICAgIEVWUF9DSVBIRVJfZ2V0 X2FzbjFfaXYsCistICAgIE5VTEwKKysgICAgY3J5cHRvZGV2X2NpcGhlcl9jdHJsCisgfTsKKyAK KyBjb25zdCBFVlBfQ0lQSEVSIGNyeXB0b2Rldl9hZXNfMTkyX2NiYyA9IHsKKyAgICAgTklEX2Fl c18xOTJfY2JjLAorICAgICAxNiwgMjQsIDE2LAorLSAgICBFVlBfQ0lQSF9DQkNfTU9ERSwKKysg ICAgRVZQX0NJUEhfQ0JDX01PREUgfCBFVlBfQ0lQSF9DVVNUT01fQ09QWSwKKyAgICAgY3J5cHRv ZGV2X2luaXRfa2V5LAorICAgICBjcnlwdG9kZXZfY2lwaGVyLAorICAgICBjcnlwdG9kZXZfY2xl YW51cCwKKyAgICAgc2l6ZW9mKHN0cnVjdCBkZXZfY3J5cHRvX3N0YXRlKSwKKyAgICAgRVZQX0NJ UEhFUl9zZXRfYXNuMV9pdiwKKyAgICAgRVZQX0NJUEhFUl9nZXRfYXNuMV9pdiwKKy0gICAgTlVM TAorKyAgICBjcnlwdG9kZXZfY2lwaGVyX2N0cmwKKyB9OworIAorIGNvbnN0IEVWUF9DSVBIRVIg Y3J5cHRvZGV2X2Flc18yNTZfY2JjID0geworICAgICBOSURfYWVzXzI1Nl9jYmMsCisgICAgIDE2 LCAzMiwgMTYsCistICAgIEVWUF9DSVBIX0NCQ19NT0RFLAorKyAgICBFVlBfQ0lQSF9DQkNfTU9E RSB8IEVWUF9DSVBIX0NVU1RPTV9DT1BZLAorICAgICBjcnlwdG9kZXZfaW5pdF9rZXksCisgICAg IGNyeXB0b2Rldl9jaXBoZXIsCisgICAgIGNyeXB0b2Rldl9jbGVhbnVwLAorICAgICBzaXplb2Yo c3RydWN0IGRldl9jcnlwdG9fc3RhdGUpLAorICAgICBFVlBfQ0lQSEVSX3NldF9hc24xX2l2LAor ICAgICBFVlBfQ0lQSEVSX2dldF9hc24xX2l2LAorLSAgICBOVUxMCisrICAgIGNyeXB0b2Rldl9j aXBoZXJfY3RybAorIH07CisgCisgIyBpZmRlZiBDUllQVE9fQUVTX0NUUgorIGNvbnN0IEVWUF9D SVBIRVIgY3J5cHRvZGV2X2Flc19jdHIgPSB7CisgICAgIE5JRF9hZXNfMTI4X2N0ciwKKyAgICAg MTYsIDE2LCAxNCwKKy0gICAgRVZQX0NJUEhfQ1RSX01PREUsCisrICAgIEVWUF9DSVBIX0NUUl9N T0RFIHwgRVZQX0NJUEhfQ1VTVE9NX0NPUFksCisgICAgIGNyeXB0b2Rldl9pbml0X2tleSwKKyAg ICAgY3J5cHRvZGV2X2NpcGhlciwKKyAgICAgY3J5cHRvZGV2X2NsZWFudXAsCisgICAgIHNpemVv ZihzdHJ1Y3QgZGV2X2NyeXB0b19zdGF0ZSksCisgICAgIEVWUF9DSVBIRVJfc2V0X2FzbjFfaXYs CisgICAgIEVWUF9DSVBIRVJfZ2V0X2FzbjFfaXYsCistICAgIE5VTEwKKysgICAgY3J5cHRvZGV2 X2NpcGhlcl9jdHJsCisgfTsKKyAKKyBjb25zdCBFVlBfQ0lQSEVSIGNyeXB0b2Rldl9hZXNfY3Ry XzE5MiA9IHsKKyAgICAgTklEX2Flc18xOTJfY3RyLAorICAgICAxNiwgMjQsIDE0LAorLSAgICBF VlBfQ0lQSF9DVFJfTU9ERSwKKysgICAgRVZQX0NJUEhfQ1RSX01PREUgfCBFVlBfQ0lQSF9DVVNU T01fQ09QWSwKKyAgICAgY3J5cHRvZGV2X2luaXRfa2V5LAorICAgICBjcnlwdG9kZXZfY2lwaGVy LAorICAgICBjcnlwdG9kZXZfY2xlYW51cCwKKyAgICAgc2l6ZW9mKHN0cnVjdCBkZXZfY3J5cHRv X3N0YXRlKSwKKyAgICAgRVZQX0NJUEhFUl9zZXRfYXNuMV9pdiwKKyAgICAgRVZQX0NJUEhFUl9n ZXRfYXNuMV9pdiwKKy0gICAgTlVMTAorKyAgICBjcnlwdG9kZXZfY2lwaGVyX2N0cmwKKyB9Owor IAorIGNvbnN0IEVWUF9DSVBIRVIgY3J5cHRvZGV2X2Flc19jdHJfMjU2ID0geworICAgICBOSURf YWVzXzI1Nl9jdHIsCisgICAgIDE2LCAzMiwgMTQsCistICAgIEVWUF9DSVBIX0NUUl9NT0RFLAor KyAgICBFVlBfQ0lQSF9DVFJfTU9ERSB8IEVWUF9DSVBIX0NVU1RPTV9DT1BZLAorICAgICBjcnlw dG9kZXZfaW5pdF9rZXksCisgICAgIGNyeXB0b2Rldl9jaXBoZXIsCisgICAgIGNyeXB0b2Rldl9j bGVhbnVwLAorICAgICBzaXplb2Yoc3RydWN0IGRldl9jcnlwdG9fc3RhdGUpLAorICAgICBFVlBf Q0lQSEVSX3NldF9hc24xX2l2LAorICAgICBFVlBfQ0lQSEVSX2dldF9hc24xX2l2LAorLSAgICBO VUxMCisrICAgIGNyeXB0b2Rldl9jaXBoZXJfY3RybAorIH07CisgIyBlbmRpZgorIC8qCistLSAK KzIuMTEuMAorCmRpZmYgLS1naXQgYS9wYXRjaGVzL29wZW5zc2wtMS4wLjJsL3NlcmllcyBiL3Bh dGNoZXMvb3BlbnNzbC0xLjAuMmwvc2VyaWVzCmluZGV4IGQ4MWMzMWJkMy4uNzk5YWZmNjgyIDEw MDY0NAotLS0gYS9wYXRjaGVzL29wZW5zc2wtMS4wLjJsL3NlcmllcworKysgYi9wYXRjaGVzL29w ZW5zc2wtMS4wLjJsL3NlcmllcwpAQCAtMTUsNCArMTUsNyBAQAogI3RhZzpwdHggLS1zdGFydC1u dW1iZXIgMTAwCiAwMTAwLUNvbmZpZ3VyZS1kb24tdC1hc2stZHBrZy1idWlsZGZsYWdzLWZvci1t b3JlLWZsYWdzLnBhdGNoCiAwMTAxLWZpeC1wYXJhbGxlbC1idWlsZGluZy5wYXRjaAorI3RhZzpj cnlwdG9kZXYgLS1zdGFydC1udW1iZXIgMjAwCiswMjAwLWNyeXB0b2Rldi1GaXgtaXNzdWUtd2l0 aC1zaWduYXR1cmUtZ2VuZXJhdGlvbi5wYXRjaAorMDIwMS1jcnlwdG9kZXYtYWxsb3ctY29weWlu Zy1FVlAtY29udGV4dHMucGF0Y2gKICMgMzYwY2U4ZThhODkyYmEyMGYxOTBhOGY5ZDZhYTE3MGEg IC0gZ2l0LXB0eC1wYXRjaGVzIG1hZ2ljCmRpZmYgLS1naXQgYS9ydWxlcy9vcGVuc3NsLmluIGIv cnVsZXMvb3BlbnNzbC5pbgppbmRleCAwOTZiMzk4ZDMuLjdjMzRhMzA4ZCAxMDA2NDQKLS0tIGEv cnVsZXMvb3BlbnNzbC5pbgorKysgYi9ydWxlcy9vcGVuc3NsLmluCkBAIC00LDYgKzQsNyBAQCBt ZW51Y29uZmlnIE9QRU5TU0wKIAl0cmlzdGF0ZQogCXNlbGVjdCBMSUJDX0RMCiAJc2VsZWN0IEdD Q0xJQlNfR0NDX1MKKwlzZWxlY3QgQ1JZUFRPREVWCQlpZiBPUEVOU1NMX0NSWVBUT0RFVgogCXBy b21wdCAib3BlbnNzbCAgICAgICAgICAgICAgICAgICAgICAgIgogCWhlbHAKIAkgIFNlY3VyZSBT b2NrZXQgTGF5ZXIgKFNTTCkgYmluYXJ5IGFuZCByZWxhdGVkIGNyeXB0b2dyYXBoaWMgdG9vbHMK QEAgLTIzLDYgKzI0LDIxIEBAIG1lbnVjb25maWcgT1BFTlNTTAogCiBpZiBPUEVOU1NMCiAKK2Nv bmZpZyBPUEVOU1NMX0NSWVBUT0RFVgorCWJvb2wKKwlwcm9tcHQgInVzZSBjcnlwdG9kZXYgaHcg YWNjZWxlcmF0aW9uIgorCWhlbHAKKwkgIEVuYWJsZSB0aGUgQlNEIGNyeXB0b2RldiBlbmdpbmUg ZXZlbiBpZiB3ZSBhcmUgbm90IHVzaW5nIEJTRC4KKworY29uZmlnIE9QRU5TU0xfQ1JZUFRPREVW X0RJR0VTVFMKKwlib29sCisJZGVwZW5kcyBvbiBPUEVOU1NMX0NSWVBUT0RFVgorCXByb21wdCAi dXNlIGNyeXB0b2RldiBkaWdlc3RzIgorCWhlbHAKKwkgIE9uY2UgQlNEIGNyeXB0b2RldiBlbmdp bmUgZW5hYmxlZCB5b3UgY2FuIGFsc28gZW5hYmxlIHRoZQorCSAgdXNlIG9mIGNyeXB0b2RldiBk aWdlc3RzLCB3aGljaCBpcyB1c3VhbGx5IHNsb3dlciB1bmxlc3MKKwkgIHlvdSBoYXZlIGxhcmdl IGFtb3VudHMgZGF0YS4KKwogY29uZmlnIE9QRU5TU0xfQklOCiAJYm9vbCAiaW5zdGFsbCBvcGVu c3NsIHRvb2xzIgogCWhlbHAKZGlmZiAtLWdpdCBhL3J1bGVzL29wZW5zc2wubWFrZSBiL3J1bGVz L29wZW5zc2wubWFrZQppbmRleCAxY2Q2ZTQwNzUuLjI1MDg1MzQwMyAxMDA2NDQKLS0tIGEvcnVs ZXMvb3BlbnNzbC5tYWtlCisrKyBiL3J1bGVzL29wZW5zc2wubWFrZQpAQCAtNzcsNiArNzcsMTMg QEAgT1BFTlNTTF9DT05GX09QVCA6PSBcCiAJLS1pbnN0YWxsX3ByZWZpeD0kKE9QRU5TU0xfUEtH RElSKSBcCiAJc2hhcmVkCiAKK2lmZGVmIFBUWENPTkZfT1BFTlNTTF9DUllQVE9ERVYKK09QRU5T U0xfQ09ORl9PUFQgKz0gLURIQVZFX0NSWVBUT0RFVgorZW5kaWYKK2lmZGVmIFBUWENPTkZfT1BF TlNTTF9DUllQVE9ERVZfRElHRVNUUworT1BFTlNTTF9DT05GX09QVCArPSAtRFVTRV9DUllQVE9E RVZfRElHRVNUUworZW5kaWYKKwogT1BFTlNTTF9JTlNUQUxMX09QVCA6PSBcCiAJaW5zdGFsbF9z dwogCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpwdHhkaXN0IG1haWxpbmcgbGlzdApwdHhkaXN0QHBlbmd1dHJvbml4LmRl