From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f173.google.com ([209.85.222.173]) by ewsd; Mon Oct 5 17:54:04 -0400 2020 Received: by mail-qk1-f173.google.com with SMTP id z6so5670093qkz.4 for <9front@9front.org>; Mon, 05 Oct 2020 14:54:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=3hjaxPxavNEfOIq7iCHZ4J8KTs4nzcjwJv+MtXzttwU=; b=CKokCzXEqjzjJIHAD+4nASIhFZvKOeKxTGYxVEjUEH3c+GF+ddOo/Zx/U+r3scxWu9 kGOoL+ETd9LPaIbV62/7w4i3iy72ZO1OCFfo6gAEN5+eIn3tw9yPO7uD9jkprs35Cse+ X1FySkb4ez3pdW0up/7bg22ZTIkqgXyKxaCRrUYtSMZlmDKKkgsMLhdP68Ji60H7FqHa QwzS8B8cnfloJWiiX7zlp7dWvkoN/Er9tofgMFz9hUgwPL6sjC/ny/4nCSBq3814ABpA qzUPUCorGOfWuL395qltZ1q502kSjnjElmqSaa90z8Req4MoK3mNAocAPxuDt4bFUBCJ 6tog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=3hjaxPxavNEfOIq7iCHZ4J8KTs4nzcjwJv+MtXzttwU=; b=Vu/9p1SSIrAWOxvpMbJ7fPuvqIuwc6pbCECRrDSPDsQLQNcRiYwgnVQOyWq8pu5WhF TKyaNm1P9S7fXr729jo+BNEc/13O4vXCXhF+xtGwhvcOfy9YzwQOcb8Tx4+Y1A6iTn40 dWZ1IYagHL5wu7r4A9G2IL0F+cxDd0A1Gdkf8nA4Pecm95cPFmNNgSG3xgiKT2R9dHxS nzUJORabroGNV5wwphvBWVX/TKOLFuUjjudepWvfcxQkdaA2T3a6s0aE4iFSvw4vS1+N RwKFfzvqJRB5hLcU3Ixg6LIrRwmNFznPxB2DcZhoI/bMihnEdYMbSYhJ9SkiVArQ1gwR Q2ag== X-Gm-Message-State: AOAM5335oM3YxlXN7bgF7XrfLMt+xaakxEBejBdkF18lnDG6DpXO8EhW 5EVuplTF254xo6nXbyc40rno33YLFUZ5KL3XbyTcyoFL X-Google-Smtp-Source: ABdhPJxNIBWQAXE0irPByg5P+Tp8D+Qv75uRhaKltdhqe0KX400d+MVMnR/hBpaT8/kCWUXD05WP3JeVb2kYBEr0q1s= X-Received: by 2002:a37:aa51:: with SMTP id t78mr2213404qke.170.1601934839491; Mon, 05 Oct 2020 14:53:59 -0700 (PDT) MIME-Version: 1.0 References: <41571ca4-d7b3-4d19-be6d-b12ab1612bb0@www.fastmail.com> In-Reply-To: From: Eli Cohen Date: Mon, 5 Oct 2020 14:53:48 -0700 Message-ID: Subject: Re: [9front] CDC ACM nusb/serial driver To: 9front@9front.org Content-Type: multipart/mixed; boundary="0000000000000fdfe705b0f38593" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: CSS package --0000000000000fdfe705b0f38593 Content-Type: text/plain; charset="UTF-8" I was finally looking at this again today. it does use hardware flow control, in the sendlines function. it works well here, but I have only tested it with an arduino mega 2560 connected to an x230 t --0000000000000fdfe705b0f38593 Content-Type: text/x-patch; charset="US-ASCII"; name="serial.patch" Content-Disposition: attachment; filename="serial.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kfx2ktx90 ZGlmZiAtciBiZDUwMzQ1ODY1NGQgc3lzL3NyYy9jbWQvbnVzYi9zZXJpYWwvY2RjLmMKLS0tIC9k ZXYvbnVsbAlUaHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgKzAwMDAKKysrIGIvc3lzL3NyYy9jbWQv bnVzYi9zZXJpYWwvY2RjLmMJTW9uIE9jdCAwNSAxNDowMzo0NyAyMDIwIC0wNzAwCkBAIC0wLDAg KzEsMjU5IEBACisjaW5jbHVkZSA8dS5oPgorI2luY2x1ZGUgPGxpYmMuaD4KKyNpbmNsdWRlIDx0 aHJlYWQuaD4KKyNpbmNsdWRlIDxmY2FsbC5oPgorI2luY2x1ZGUgPDlwLmg+CisjaW5jbHVkZSAi dXNiLmgiCisjaW5jbHVkZSAic2VyaWFsLmgiCisKK2VudW0geworCUt5b2NlcmEJCT0gMHgwNDgy LAorCUFISzMwMDFWCT0gMHgwMjAzLAorfTsKKworZW51bSB7CisJU2NBQ00JPSAyLAorCUFUCQk9 IDEsCisJTm9uZQk9IDAsCit9OworCitlbnVtIHsKKwlMaW5lQ29kaW5nCT0gMHgyMCwKKwlTZXRC cmVhawk9IDB4MjMsCisJQ29udHJvbFN0YXRlID0gMHgyMiwKK307CisKK2VudW0geworCUNsYXNz Q0RDRGF0YSA9IDB4MGEsCisJU3ViY2xhc3NEYXRhID0gMCwKK307CisKK2VudW0geworCURlc2NT dWJDRENDTQk9IDEsCisJRGVzY1N1YkNEQ0FDTQk9IDIsCisJRGVzY1N1YkNEQ1VuaW9uCT0gNiwK K307CisKK2VudW0geworCUNNRG9lc0NNCT0gMSwKKwlDTU92ZXJEYXRhCT0gMiwKK307CisKK2Vu dW0geworCUFDTUhhc0ZlYXR1cmUJPSAxLAorCUFDTUhhc0xpbmUJCT0gMiwKKwlBQ01IYXNCcmVh awkJPSA0LAorCUFDTUhhc05ldHdvcmsJPSA4LAorfTsKKworZW51bSB7CisJTm90aWZpY2F0aW9u ID0gMHhhMSwKKwlTZXJpYWxTdGF0ZSA9IDB4MjAsCit9OworCitlbnVtIHsKKwlEY2RTdGF0dXMJ PSAweDAxLAorCURzclN0YXR1cwk9IDB4MDIsCisJQnJlYWtTdGF0dXMJPSAweDA0LAorCVJpbmdT dGF0dXMJPSAweDA4LAorfTsKKworc3RhdGljIGludAorY2Rjc2V0cGFyYW0oU2VyaWFscG9ydCAq cCkKK3sKKwlpbnQgcmVzOworCXVjaGFyIHZhbHNbN107CisKKwlQVVQ0KHZhbHMsIHAtPmJhdWQp OworCisJdmFsc1s0XSA9IDA7CisJaWYocC0+c3RvcCA9PSAxKQorCQl2YWxzWzRdID0gMDsKKwlp ZihwLT5zdG9wID09IDE1KQorCQl2YWxzWzRdID0gMTsKKwlpZihwLT5zdG9wID09IDIpCisJCXZh bHNbNF0gPSAyOworCisJdmFsc1s1XSA9IHAtPnBhcml0eTsKKworCXZhbHNbNl0gPSBwLT5iaXRz OworCisJcmVzID0gdXNiY21kKHAtPnMtPmRldiwgUmgyZCB8IFJjbGFzcyB8IFJpZmFjZSwgTGlu ZUNvZGluZywgMCwgcC0+Y3RsX2lmYywgdmFscywgNyk7CisKKwlyZXR1cm4gcmVzOworfQorCit2 b2lkCitnZXRjYXBzKFNlcmlhbHBvcnQgKnApCit7CisJaW50IGksIGo7CisJRGVzYyAqZGVzYzsK KwlJZmFjZSAqaWZhY2U7CisJRERlc2MgKmRkZXNjOworCWludCBjdXJfaWZjOworCisJZm9yIChp ID0gMDsgaSA8IE5pZmFjZTsgaSsrKSB7CisJCWlmYWNlID0gcC0+cy0+ZGV2LT51c2ItPmNvbmZb MF0tPmlmYWNlW2ldOworCQlpZiAoaWZhY2UgPT0gbmlsKQorCQkJY29udGludWU7CisKKwkJY3Vy X2lmYyA9IGlmYWNlLT5pZDsKKwkJaWYgKGN1cl9pZmMgIT0gcC0+Y3RsX2lmYyAmJiBDbGFzcyhp ZmFjZS0+Y3NwKSA9PSBDbGFzc0NEQ0RhdGEgJiYgU3ViY2xhc3MoaWZhY2UtPmNzcCkgPT0gU3Vi Y2xhc3NEYXRhICYmIHAtPmRhdGFfaWZjID09IC0xKQorCQkJcC0+ZGF0YV9pZmMgPSBjdXJfaWZj OworCisJCWlmIChjdXJfaWZjID09IHAtPmN0bF9pZmMpIHsKKwkJCWZvciAoaiA9IDA7IGogPCBO ZGRlc2M7IGorKykgeworCQkJCWRlc2MgPSBwLT5zLT5kZXYtPnVzYi0+ZGRlc2Nbal07CisJCQkJ aWYgKGRlc2MgPT0gbmlsKQorCQkJCQljb250aW51ZTsKKworCQkJCWRkZXNjID0gJmRlc2MtPmRh dGE7CisJCQkJaWYgKGRkZXNjLT5iRGVzY3JpcHRvclR5cGUgPT0gRGZ1bmN0aW9uKSB7CisJCQkJ CXN3aXRjaCAoZGRlc2MtPmJieXRlc1swXSkgeworCQkJCQljYXNlIERlc2NTdWJDRENDTToKKwkJ CQkJCXAtPmRhdGFfaWZjID0gZGRlc2MtPmJieXRlc1syXTsKKwkJCQkJCWJyZWFrOworCQkJCQlj YXNlIERlc2NTdWJDRENBQ006CisJCQkJCQlwLT5oYXNicmVhayA9IGRkZXNjLT5iYnl0ZXNbMV0g JiBBQ01IYXNCcmVhaz8gMTogMDsKKwkJCQkJCWJyZWFrOworCQkJCQljYXNlIERlc2NTdWJDRENV bmlvbjoKKwkJCQkJCXAtPmRhdGFfaWZjID0gZGRlc2MtPmJieXRlc1syXTsKKwkJCQkJCWJyZWFr OworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQorfQorCit2b2lkCitzdGF0dXNyZWFkZXIo dm9pZCAqdSkKK3sKKwlTZXJpYWxwb3J0ICpwID0gdTsKKwl1Y2hhciBidWZbMjRdOworCisJdGhy ZWFkc2V0bmFtZSgic3RhdHVzcmVhZGVycHJvYyIpOworCisJd2hpbGUocmVhZG4ocC0+ZXBpbnRy LT5kZmQsIGJ1Ziwgc2l6ZW9mKGJ1ZikpID09IHNpemVvZihidWYpKSB7CisJCWlmIChidWZbMF0g PT0gTm90aWZpY2F0aW9uICYmIGJ1ZlsxXSA9PSBTZXJpYWxTdGF0ZSAmJiBidWZbNl0gPT0gMiAm JiBidWZbN10gPT0gMCkgeworCQkJcC0+ZGNkID0gYnVmWzhdICYgRGNkU3RhdHVzPyAxOiAwOwor CQkJcC0+ZHNyID0gYnVmWzhdICYgRHNyU3RhdHVzPyAxOiAwOworCQkJcC0+cmluZyA9IGJ1Zls4 XSAmIFJpbmdTdGF0dXM/IDE6IDA7CisJCX0gZWxzZSB7CisJCQlmcHJpbnQoMiwgInNlcmlhbDog dW5rbm93biBpbnRyIG1lc3NhZ2U6IHJlcXR5cGU6JTAyeCBub3RpZnk6JTAyeCBzdGF0ZTolMDJ4 XG4iLCBidWZbMF0sIGJ1ZlsxXSwgYnVmWzhdKTsKKwkJfQorCX0KKworCWZwcmludCgyLCAic2Vy aWFsOiBzdGF0dXNyZWFkZXIgZXhpdGluZzogJXJcbiIpOworCWNsb3NlZGV2KHAtPnMtPmRldik7 Cit9CisKK3N0YXRpYyBpbnQKK2NkY2luaXQoU2VyaWFscG9ydCAqcCkKK3sKKwlwLT5iYXVkID0g MTE1MjAwOworCXAtPmJpdHMgPSA4OworCXAtPnBhcml0eSA9IDA7CisJcC0+c3RvcCA9IDE7CisJ Y2Rjc2V0cGFyYW0ocCk7CisKKwlpbmNyZWYocC0+cy0+ZGV2KTsKKwlwcm9jY3JlYXRlKHN0YXR1 c3JlYWRlciwgcCwgOCoxMDI0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitjZGNz ZXRicmVhayhTZXJpYWxwb3J0ICpwLCBpbnQgdmFsKQoreworCWlmKHAtPmhhc2JyZWFrID09IDAp CisJCXJldHVybiAwOworCisJcmV0dXJuIHVzYmNtZChwLT5zLT5kZXYsIFJoMmQgfCBSY2xhc3Mg fCBSaWZhY2UsIFNldEJyZWFrLCAodmFsICE9IDA/IDB4ZmZmZjogMHgwMDAwKSwgcC0+Y3RsX2lm YywgbmlsLCAwKTsKK30KKworc3RhdGljIGludAorY2Rjc2VuZGxpbmVzKFNlcmlhbHBvcnQgKnAp Cit7CisJaWYocC0+cnRzKQorCQlwLT5jdGxzdGF0ZSB8PSBDdGxSVFM7CisJZWxzZQorCQlwLT5j dGxzdGF0ZSAmPSB+Q3RsUlRTOworCWlmKHAtPmR0cikKKwkJcC0+Y3Rsc3RhdGUgfD0gQ3RsRFRS OworCWVsc2UKKwkJcC0+Y3Rsc3RhdGUgJj0gfkN0bERUUjsKKworCXJldHVybiB1c2JjbWQocC0+ cy0+ZGV2LCBSaDJkIHwgUmNsYXNzIHwgUmlmYWNlLCBDb250cm9sU3RhdGUsIHAtPmN0bHN0YXRl LCBwLT5jdGxfaWZjLCBuaWwsIDApOworfQorCitzdGF0aWMgaW50CitjZGNjbGVhcnBpcGVzKFNl cmlhbHBvcnQgKnApCit7CisJaWYodW5zdGFsbChwLT5zLT5kZXYsIHAtPmVwb3V0LCBFb3V0KSA8 IDApCisJCWRwcmludCgyLCAic2VyaWFsOiB1bnN0YWxsIGVwb3V0OiAlclxuIik7CisJaWYodW5z dGFsbChwLT5zLT5kZXYsIHAtPmVwaW4sIEVpbikgPCAwKQorCQlkcHJpbnQoMiwgInNlcmlhbDog dW5zdGFsbCBlcGluOiAlclxuIik7CisJaWYodW5zdGFsbChwLT5zLT5kZXYsIHAtPmVwaW50ciwg RWluKSA8IDApCisJCWRwcmludCgyLCAic2VyaWFsOiB1bnN0YWxsIGVwaW50cjogJXJcbiIpOwor CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2NkY3dhaXQ0ZGF0YShTZXJpYWxwb3J0ICpw LCB1Y2hhciAqZGF0YSwgaW50IGNvdW50KQoreworCWludCBuOworCisJcXVubG9jayhwLT5zKTsK Kwl3aGlsZSAoKG4gPSByZWFkKHAtPmVwaW4tPmRmZCwgZGF0YSwgY291bnQpKSA9PSAwKQorCQk7 CisJcWxvY2socC0+cyk7CisKKwlyZXR1cm4gbjsKK30KKworc3RhdGljIFNlcmlhbG9wcyBjZGNv cHMgPSB7CisJLmluaXQJCT0gY2RjaW5pdCwKKwkuc2V0cGFyYW0JPSBjZGNzZXRwYXJhbSwKKwku c2V0YnJlYWsJPSBjZGNzZXRicmVhaywKKwkuc2VuZGxpbmVzCT0gY2Rjc2VuZGxpbmVzLAorCS5j bGVhcnBpcGVzCT0gY2RjY2xlYXJwaXBlcywKKwkud2FpdDRkYXRhCT0gY2Rjd2FpdDRkYXRhLAor fTsKKworaW50CitjZGNwcm9iZShTZXJpYWwgKnNlcikKK3sKKwlpbnQgaSwgaWZjczsKKwlVc2Jk ZXYgKnVkID0gc2VyLT5kZXYtPnVzYjsKKwlJZmFjZSAqaWZhY2U7CisJdWxvbmcgY3NwOworCisJ aWZjcyA9IDA7CisJaWYgKHVkLT52aWQgPT0gS3lvY2VyYSB8fCB1ZC0+ZGlkID09IEFISzMwMDFW KQorCQlpZmNzKys7CisJZWxzZSBmb3IgKGkgPSAwOyBpIDwgTmlmYWNlOyBpKyspIHsKKwkJaWZh Y2UgPSB1ZC0+Y29uZlswXS0+aWZhY2VbaV07CisJCWlmIChpZmFjZSA9PSBuaWwpCisJCQljb250 aW51ZTsKKworCQljc3AgPSBpZmFjZS0+Y3NwOworCQlpZiAoQ2xhc3MoY3NwKSA9PSBDbGNvbW1z ICYmIFN1YmNsYXNzKGNzcCkgPT0gU2NBQ00gJiYgKFByb3RvKGNzcCkgPT0gQVQgfHwgUHJvdG8o Y3NwKSA9PSBOb25lKSkgeworCQkJc2VyLT5wW2lmY3NdLmN0bF9pZmMgPSBpOworCQkJc2VyLT5w W2lmY3NdLnMgPSBzZXI7CisJCQlnZXRjYXBzKCZzZXItPnBbaWZjc10pOworCQkJaWZjcysrOwor CQl9CisJfQorCisJaWYgKGlmY3MgPT0gMCkKKwkJcmV0dXJuIC0xOworCisJc2VyLT5uaWZjcyA9 IGlmY3M7CisJc2VyLT5pc2FjbSA9IDE7CisJc2VyLT5vdXRoZHJzeiA9IDA7CisJc2VyLT5oYXNl cGludHIgPSAxOworCXNlci0+U2VyaWFsb3BzID0gY2Rjb3BzOworCXJldHVybiAwOworfQpkaWZm IC1yIGJkNTAzNDU4NjU0ZCBzeXMvc3JjL2NtZC9udXNiL3NlcmlhbC9ta2ZpbGUKLS0tIGEvc3lz L3NyYy9jbWQvbnVzYi9zZXJpYWwvbWtmaWxlCVN1biBPY3QgMDQgMjI6NDU6MjIgMjAyMCArMDIw MAorKysgYi9zeXMvc3JjL2NtZC9udXNiL3NlcmlhbC9ta2ZpbGUJTW9uIE9jdCAwNSAxNDowMzo0 NyAyMDIwIC0wNzAwCkBAIC0xLDcgKzEsNyBAQAogPC8kb2JqdHlwZS9ta2ZpbGUKIAogVEFSRz1z ZXJpYWwKLU9GSUxFUz1mdGRpLiRPIHNlcmlhbC4kTyBwcm9saWZpYy4kTyB1Y29ucy4kTyBzaWxh YnMuJE8gY2gzNDAuJE8KK09GSUxFUz1mdGRpLiRPIHNlcmlhbC4kTyBwcm9saWZpYy4kTyB1Y29u cy4kTyBzaWxhYnMuJE8gY2gzNDAuJE8gY2RjLiRPCiBIRklMRVM9XAogCS4uL2xpYi91c2IuaFwK IAlzZXJpYWwuaFwKZGlmZiAtciBiZDUwMzQ1ODY1NGQgc3lzL3NyYy9jbWQvbnVzYi9zZXJpYWwv c2VyaWFsLmMKLS0tIGEvc3lzL3NyYy9jbWQvbnVzYi9zZXJpYWwvc2VyaWFsLmMJU3VuIE9jdCAw NCAyMjo0NToyMiAyMDIwICswMjAwCisrKyBiL3N5cy9zcmMvY21kL251c2Ivc2VyaWFsL3Nlcmlh bC5jCU1vbiBPY3QgMDUgMTQ6MDM6NDcgMjAyMCAtMDcwMApAQCAtNjI0LDE4ICs2MjQsMzIgQEAK IAogCWVwaW50ciA9IGVwaW4gPSBlcG91dCA9IC0xOwogCisJaWYoc2VyLT5pc2FjbSl7CisJCWVw cyA9IHNlci0+ZGV2LT51c2ItPmNvbmZbMF0tPmlmYWNlW3Nlci0+cFtpZmNdLmN0bF9pZmNdLT5l cDsKKworCQlmb3IoaSA9IDA7IGkgPCBOZXA7IGkrKyl7CisJCQlpZigoZXAgPSBlcHNbaV0pID09 IG5pbCkKKwkJCQljb250aW51ZTsKKwkJCWlmKGVwLT50eXBlID09IEVpbnRyICYmIGVwLT5kaXIg PT0gRWluICYmIGVwaW50ciA9PSAtMSkKKwkJCQllcGludHIgPSBlcC0+aWQ7CisJCX0KKwl9CisK IAkvKgogCSAqIGludGVyZmMgMCBtZWFucyBzdGFydCBmcm9tIHRoZSBzdGFydCB3aGljaCBpcyBl cXVpdiB0bwogCSAqIGl0ZXJhdGUgdGhyb3VnaCBlbmRwb2ludHMgcHJvYmFibHksIGNvdWxkIGJl IGRvbmUgYmV0dGVyCiAJICovCi0JZXBzID0gc2VyLT5kZXYtPnVzYi0+Y29uZlswXS0+aWZhY2Vb aWZjXS0+ZXA7CisJaWYgKCFzZXItPmlzYWNtKQorCQllcHMgPSBzZXItPmRldi0+dXNiLT5jb25m WzBdLT5pZmFjZVtpZmNdLT5lcDsKKwllbHNlCisJCWVwcyA9IHNlci0+ZGV2LT51c2ItPmNvbmZb MF0tPmlmYWNlW3Nlci0+cFtpZmNdLmRhdGFfaWZjXS0+ZXA7CiAKIAlmb3IoaSA9IDA7IGkgPCBO ZXA7IGkrKyl7CiAJCWlmKChlcCA9IGVwc1tpXSkgPT0gbmlsKQogCQkJY29udGludWU7Ci0JCWlm KHNlci0+aGFzZXBpbnRyICYmIGVwLT50eXBlID09IEVpbnRyICYmCi0JCSAgICBlcC0+ZGlyID09 IEVpbiAmJiBlcGludHIgPT0gLTEpCi0JCQllcGludHIgPSBlcC0+aWQ7CisJCWlmKCFzZXItPmlz YWNtICYmIHNlci0+aGFzZXBpbnRyICYmCisJCQllcC0+dHlwZSA9PSBFaW50ciAmJiBlcC0+ZGly ID09IEVpbiAmJiBlcGludHIgPT0gLTEpCisJCQkJZXBpbnRyID0gZXAtPmlkOwogCQlpZihlcC0+ dHlwZSA9PSBFYnVsayl7CiAJCQlpZigoZXAtPmRpciA9PSBFaW4gfHwgZXAtPmRpciA9PSBFYm90 aCkgJiYgZXBpbiA9PSAtMSkKIAkJCQllcGluID0gZXAtPmlkOwpAQCAtNzE0LDYgKzcyOCw3IEBA CiBleHRlcm4gaW50IHNscHJvYmUoU2VyaWFsICpzZXIpOwogZXh0ZXJuIGludCBjaHByb2JlKFNl cmlhbCAqc2VyKTsKIGV4dGVybiBpbnQgdWNvbnNwcm9iZShTZXJpYWwgKnNlcik7CitleHRlcm4g aW50IGNkY3Byb2JlKFNlcmlhbCAqc2VyKTsKIAogdm9pZAogdGhyZWFkbWFpbihpbnQgYXJnYywg Y2hhciogYXJndltdKQpAQCAtNzUwLDcgKzc2NSw4IEBACiAJJiYgZnRwcm9iZShzZXIpCiAJJiYg c2xwcm9iZShzZXIpCiAJJiYgcGxwcm9iZShzZXIpCi0JJiYgY2hwcm9iZShzZXIpKQorCSYmIGNo cHJvYmUoc2VyKQorCSYmIGNkY3Byb2JlKHNlcikpCiAJCXN5c2ZhdGFsKCJubyBzZXJpYWwgZGV2 aWNlcyBmb3VuZCIpOwogCiAJZm9yKGkgPSAwOyBpIDwgc2VyLT5uaWZjczsgaSsrKXsKZGlmZiAt ciBiZDUwMzQ1ODY1NGQgc3lzL3NyYy9jbWQvbnVzYi9zZXJpYWwvc2VyaWFsLmgKLS0tIGEvc3lz L3NyYy9jbWQvbnVzYi9zZXJpYWwvc2VyaWFsLmgJU3VuIE9jdCAwNCAyMjo0NToyMiAyMDIwICsw MjAwCisrKyBiL3N5cy9zcmMvY21kL251c2Ivc2VyaWFsL3NlcmlhbC5oCU1vbiBPY3QgMDUgMTQ6 MDM6NDcgMjAyMCAtMDcwMApAQCAtNjAsNiArNjAsMTAgQEAKIAogCWludAlpbnRlcmZjOwkvKiBp bnRlcmZjIG9uIHRoZSBkZXZpY2UgZm9yIGZ0ZGkgKi8KIAorCWludAloYXNicmVhazsJLyogQ0RD IEFDTSBtYXkgbm90IGhhdmUgYnJlYWsgKi8KKwlpbnQJY3RsX2lmYzsJLyogZXBpbnRyIGlmYWNl IGZvciBDREMgQUNNICovCisJaW50CWRhdGFfaWZjOwkvKiBlcGluL291dCBpZmFjZSBmb3IgQ0RD IEFDTSAqLworCiAJQ2hhbm5lbCAqdzRkYXRhOwogCUNoYW5uZWwgKmdvdGRhdGE7CiAJaW50CW5k YXRhOwpAQCAtODEsNiArODUsNyBAQAogCiAJaW50CWp0YWc7CQkvKiBpbmRleCBvZiBqdGFnIGlu dGVyZmFjZSwgLTEgbm9uZSAqLwogCWludAluaWZjczsJCS8qICMgb2Ygc2VyaWFsIGludGVyZmFj ZXMsIGluY2x1ZGluZyBKVEFHICovCisJaW50CWlzYWNtOyAJCS8qIENEQyBBQ00gaW50ZXJmYWNl cyBoYW5kbGVkIGRpZmZlcmVudGx5ICovCiAJU2VyaWFscG9ydCBwW01heGlmY107CiAJaW50CW1h eHJ0cmFuczsKIAlpbnQJbWF4d3RyYW5zOwo= --0000000000000fdfe705b0f38593--