delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2011/02/09/09:16:41

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=1.9 required=5.0 tests=AWL,BAYES_50,DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,RCVD_NUMERIC_HELO,SPF_HELO_PASS,TW_CP,TW_EG,TW_MK,TW_RV,TW_TV,TW_VP,TW_YG,T_RP_MATCHES_RCVD,T_TO_NO_BRKTS_FREEMAIL
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: jojelino <jojelino AT gmail DOT com>
Subject: Re: [patch]another sigsegv in environ.cc
Date: Wed, 09 Feb 2011 23:17:56 +0900
Lines: 741
Message-ID: <iiu7ir$p5h$1@dough.gmane.org>
References: <iigs04$cui$1 AT dough DOT gmane DOT org> <20110204150118 DOT GA20523 AT ednor DOT casa DOT cgf DOT cx> <iik3sk$7ur$1 AT dough DOT gmane DOT org> <20110205193541 DOT GA14935 AT ednor DOT casa DOT cgf DOT cx> <20110205200317 DOT GB14935 AT ednor DOT casa DOT cgf DOT cx>
Mime-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:2.0b12pre) Gecko/20110208 Thunderbird/3.3a3pre
In-Reply-To: <20110205200317.GB14935@ednor.casa.cgf.cx>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------070903060805030109020902
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

changes introduced.

all file: add __attribute__ ((regparm (x))) explicitly in function 
definition.
environ.cc fix findenv_func that were not prefixed __stdcall
exception.h add body to prevent compilation error with -DDEBUG_EXCEPTION


fhandler_floppy.cc
hookapi.cc
syscalls.cc
in6.h
passwd.cc

merged with [PATCHes] Misc aliasing fixes for building DLL with gcc-4.5.0

--------------070903060805030109020902
Content-Type: text/plain;
 name="winsup-gcc-4.6.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="winsup-gcc-4.6.diff"

SW5kZXg6IHdpbnN1cC9jeWd3aW4vZW52aXJvbi5jYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dp
bi9lbnZpcm9uLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE4MwpkaWZm
IC11IC1yMS4xODMgZW52aXJvbi5jYwotLS0gd2luc3VwL2N5Z3dpbi9lbnZp
cm9uLmNjCTE4IE1heSAyMDEwIDE0OjMwOjUwIC0wMDAwCTEuMTgzCisrKyB3
aW5zdXAvY3lnd2luL2Vudmlyb24uY2MJOSBGZWIgMjAxMSAxMzo0Nzo1NyAt
MDAwMApAQCAtMTU2LDcgKzE1Niw3IEBACiAgIHRvIHRoZSBiZWdpbm5pbmcg
b2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIG5hbWUuICAqaW5fcG9zaXgg
aXMgYW55CiAgIGtub3duIHBvc2l4IHZhbHVlIGZvciB0aGUgZW52aXJvbm1l
bnQgdmFyaWFibGUuIFJldHVybnMgYSBwb2ludGVyIHRvCiAgIHRoZSBhcHBy
b3ByaWF0ZSBjb252ZXJzaW9uIHN0cnVjdHVyZS4gICovCi13aW5fZW52ICog
X19zdGRjYWxsCit3aW5fZW52ICogX19zdGRjYWxsIF9fYXR0cmlidXRlX18g
KChyZWdwYXJtICgzKSkpCiBnZXR3aW5lbnYgKGNvbnN0IGNoYXIgKmVudiwg
Y29uc3QgY2hhciAqaW5fcG9zaXgsIHdpbl9lbnYgKnRlbXApCiB7CiAgIGlm
ICghY29udl9zdGFydF9jaGFyc1sodW5zaWduZWQgY2hhcikqZW52XSkKQEAg
LTIxOSw3ICsyMTksNyBAQAogICBmcmVlIChzcmMpOwogICBNQUxMT0NfQ0hF
Q0s7CiB9Ci0KK3R5cGVkZWYgY2hhciogKF9fc3RkY2FsbCAqcGZuZW52KShj
b25zdCBjaGFyKixpbnQqKTsKIC8qIFJldHVybnMgcG9pbnRlciB0byB2YWx1
ZSBhc3NvY2lhdGVkIHdpdGggbmFtZSwgaWYgYW55LCBlbHNlIE5VTEwuCiAg
IFNldHMgb2Zmc2V0IHRvIGJlIHRoZSBvZmZzZXQgb2YgdGhlIG5hbWUvdmFs
dWUgY29tYmluYXRpb24gaW4gdGhlCiAgIGVudmlyb25tZW50IGFycmF5LCBm
b3IgdXNlIGJ5IHNldGVudigzKSBhbmQgdW5zZXRlbnYoMykuCkBAIC0yNTMs
NyArMjUzLDcgQEAKIAogLyogUHJpbWl0aXZlIGdldGVudiBiZWZvcmUgdGhl
IGVudmlyb25tZW50IGlzIGJ1aWx0LiAgKi8KIAotc3RhdGljIGNoYXIgX19z
dGRjYWxsICoKK3N0YXRpYyBjaGFyKiBfX3N0ZGNhbGwKIGdldGVhcmx5IChj
b25zdCBjaGFyICogbmFtZSwgaW50ICopCiB7CiAgIGNoYXIgKnJldDsKQEAg
LTI3NSw3ICsyNzUsNyBAQAogICByZXR1cm4gTlVMTDsKIH0KIAotc3RhdGlj
IGNoYXIgKiAoKmZpbmRlbnZfZnVuYykoY29uc3QgY2hhciAqLCBpbnQgKikg
PSAoY2hhciAqICgqKShjb25zdCBjaGFyICosIGludCAqKSkgZ2V0ZWFybHk7
CitzdGF0aWMgcGZuZW52IGZpbmRlbnZfZnVuYyA9ICZnZXRlYXJseTsKIAog
LyogUmV0dXJucyBwdHIgdG8gdmFsdWUgYXNzb2NpYXRlZCB3aXRoIG5hbWUs
IGlmIGFueSwgZWxzZSBOVUxMLiAgKi8KIApAQCAtODMwLDcgKzgzMCw3IEBA
CiAgIEZyZWVFbnZpcm9ubWVudFN0cmluZ3NXIChyYXdlbnYpOwogCiBvdXQ6
Ci0gIGZpbmRlbnZfZnVuYyA9IChjaGFyICogKCopKGNvbnN0IGNoYXIqLCBp
bnQqKSkgbXlfZmluZGVudjsKKyAgZmluZGVudl9mdW5jID0gbXlfZmluZGVu
djsKICAgX19jeWd3aW5fZW52aXJvbiA9IGVudnA7CiAgIHVwZGF0ZV9lbnZw
dHJzICgpOwogICBpZiAoZW52cF9wYXNzZWRfaW4pCkBAIC04NTYsNyArODU2
LDcgQEAKICAgcmV0dXJuIHN0cmNtcCAoKnAsICpxKTsKIH0KIAotY2hhciAq
IF9fc3RkY2FsbAorY2hhciAqIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgo
cmVncGFybSAoMykpKQogZ2V0d2luZW52ZXEgKGNvbnN0IGNoYXIgKm5hbWUs
IHNpemVfdCBuYW1lbGVuLCBpbnQgeCkKIHsKICAgV0NIQVIgbmFtZTBbbmFt
ZWxlbiAtIDFdOwpAQCAtOTU2LDcgKzk1Niw3IEBACiAgICBmaWxsZWQgd2l0
aCBudWxsIHRlcm1pbmF0ZWQgc3RyaW5ncywgdGVybWluYXRlZCBieSBkb3Vi
bGUgbnVsbCBjaGFyYWN0ZXJzLgogICAgQ29udmVydHMgZW52aXJvbm1lbnQg
dmFyaWFibGVzIG5vdGVkIGluIGNvbnZfZW52dmFycyBpbnRvIHdpbjMyIGZv
cm0KICAgIHByaW9yIHRvIHBsYWNpbmcgdGhlbSBpbiB0aGUgc3RyaW5nLiAg
Ki8KLWNoYXIgKiogX19zdGRjYWxsCitjaGFyICoqIF9fc3RkY2FsbCBfX2F0
dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogYnVpbGRfZW52IChjb25zdCBj
aGFyICogY29uc3QgKmVudnAsIFBXQ0hBUiAmZW52YmxvY2ssIGludCAmZW52
YywKIAkgICBib29sIG5vX2VudmJsb2NrKQogewpJbmRleDogd2luc3VwL2N5
Z3dpbi9leGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9leGNlcHRpb24uaCx2
CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zCmRpZmYgLXUgLXIxLjMgZXhjZXB0
aW9uLmgKLS0tIHdpbnN1cC9jeWd3aW4vZXhjZXB0aW9uLmgJMSBNYXIgMjAx
MCAwNjozOTo0NyAtMDAwMAkxLjMKKysrIHdpbnN1cC9jeWd3aW4vZXhjZXB0
aW9uLmgJOSBGZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtMjAsOCArMjAs
OCBAQAogICBzdGF0aWMgaW50IGhhbmRsZSAoRVhDRVBUSU9OX1JFQ09SRCAq
LCBleGNlcHRpb25fbGlzdCAqLCBDT05URVhUICosIHZvaWQgKik7CiBwdWJs
aWM6CiAjaWZkZWYgREVCVUdfRVhDRVBUSU9OCi0gIGV4Y2VwdGlvbiAoKTsK
LSAgfmV4Y2VwdGlvbiAoKTsKKyAgZXhjZXB0aW9uICgpe307CisgIH5leGNl
cHRpb24gKCl7fTsKICNlbHNlCiAgIGV4Y2VwdGlvbiAoKSBfX2F0dHJpYnV0
ZV9fICgoYWx3YXlzX2lubGluZSkpCiAgIHsKSW5kZXg6IHdpbnN1cC9jeWd3
aW4vZmhhbmRsZXJfZmxvcHB5LmNjCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVy
X2Zsb3BweS5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS41NwpkaWZmIC11
IC1yMS41NyBmaGFuZGxlcl9mbG9wcHkuY2MKLS0tIHdpbnN1cC9jeWd3aW4v
ZmhhbmRsZXJfZmxvcHB5LmNjCTEyIEphbiAyMDExIDA5OjE2OjUxIC0wMDAw
CTEuNTcKKysrIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZmxvcHB5LmNjCTkg
RmViIDIwMTEgMTM6NDc6NTggLTAwMDAKQEAgLTU3LDcgKzU3LDggQEAKIAlf
X3NldGVycm5vICgpOwogICAgICAgZWxzZQogCXsKLQkgIGRpID0gJigoRElT
S19HRU9NRVRSWV9FWCAqKSBkYnVmKS0+R2VvbWV0cnk7CisJICBESVNLX0dF
T01FVFJZX0VYICpkZ3ggPSAoRElTS19HRU9NRVRSWV9FWCAqKSBkYnVmOwor
CSAgZGkgPSAmZGd4LT5HZW9tZXRyeTsKIAkgIGlmICghRGV2aWNlSW9Db250
cm9sIChnZXRfaGFuZGxlICgpLAogCQkJCUlPQ1RMX0RJU0tfR0VUX1BBUlRJ
VElPTl9JTkZPX0VYLCBOVUxMLCAwLAogCQkJCXBidWYsIDI1NiwgJmJ5dGVz
X3JlYWQsIE5VTEwpKQpJbmRleDogd2luc3VwL2N5Z3dpbi9ob29rYXBpLmNj
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3Ny
Yy93aW5zdXAvY3lnd2luL2hvb2thcGkuY2MsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMTkKZGlmZiAtdSAtcjEuMTkgaG9va2FwaS5jYwotLS0gd2luc3Vw
L2N5Z3dpbi9ob29rYXBpLmNjCTExIFNlcCAyMDA4IDA0OjM0OjIzIC0wMDAw
CTEuMTkKKysrIHdpbnN1cC9jeWd3aW4vaG9va2FwaS5jYwk5IEZlYiAyMDEx
IDEzOjQ3OjU5IC0wMDAwCkBAIC0yNTIsNyArMjUyLDcgQEAKICAgZmgub3Jp
Z2ZuID0gTlVMTDsKICAgZmguaG9va2ZuID0gZm47CiAgIGNoYXIgKmJ1ZiA9
IChjaGFyICopIGFsbG9jYSAoc3RybGVuIChuYW1lKSArIHNpemVvZiAoIl82
NCIpKTsKLSAgaW50IGk7CisgIGludCBpID0gLTE7CiAgIC8vIEl0ZXJhdGUg
dGhyb3VnaCBlYWNoIGltcG9ydCBkZXNjcmlwdG9yLCBhbmQgcmVkaXJlY3Qg
aWYgYXBwcm9wcmlhdGUKICAgZm9yIChQSU1BR0VfSU1QT1JUX0RFU0NSSVBU
T1IgcGQgPSBwZGZpcnN0OyBwZC0+Rmlyc3RUaHVuazsgcGQrKykKICAgICB7
CkluZGV4OiB3aW5zdXAvY3lnd2luL3N5c2NhbGxzLmNjCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3ln
d2luL3N5c2NhbGxzLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjU3Mwpk
aWZmIC11IC1yMS41NzMgc3lzY2FsbHMuY2MKLS0tIHdpbnN1cC9jeWd3aW4v
c3lzY2FsbHMuY2MJMzEgSmFuIDIwMTEgMTM6NTg6NTkgLTAwMDAJMS41NzMK
KysrIHdpbnN1cC9jeWd3aW4vc3lzY2FsbHMuY2MJOSBGZWIgMjAxMSAxMzo0
ODowMSAtMDAwMApAQCAtMTU2OSw3ICsxNTY5LDcgQEAKIH0KIAogLyogQ3ln
d2luIGludGVybmFsICovCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxs
IF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBzdGF0X3dvcmtlciAo
cGF0aF9jb252ICZwYywgc3RydWN0IF9fc3RhdDY0ICpidWYpCiB7CiAgIGlu
dCByZXMgPSAtMTsKQEAgLTM3NjUsOCArMzc2NSwxMiBAQAogICAgIHN0YXR1
cyA9IFV1aWRDcmVhdGUgKCZVdWlkKTsKICAgaWYgKHN0YXR1cyA9PSBSUENf
U19PSykKICAgICB7Ci0gICAgICBkYXRhWzRdID0gKih1bnNpZ25lZCAqKSZV
dWlkLkRhdGE0WzJdOwotICAgICAgZGF0YVs1XSA9ICoodW5zaWduZWQgc2hv
cnQgKikmVXVpZC5EYXRhNFs2XTsKKyAgICAgIHVuc2lnbmVkIGQ0OworICAg
ICAgdW5zaWduZWQgc2hvcnQgZDU7CisgICAgICBtZW1jcHkgKCZkNCwgJlV1
aWQuRGF0YTRbMl0sIHNpemVvZiAodW5zaWduZWQpKTsKKyAgICAgIG1lbWNw
eSAoJmQ1LCAmVXVpZC5EYXRhNFs2XSwgc2l6ZW9mICh1bnNpZ25lZCBzaG9y
dCkpOworICAgICAgZGF0YVs0XSA9IGQ0OworICAgICAgZGF0YVs1XSA9IGQ1
OwogICAgICAgLy8gVW5mb3J0dW5hdGVseSBXaW5kb3dzIHdpbGwgc29tZXRp
bWVzIHBpY2sgYSB2aXJ0dWFsIEV0aGVybmV0IGNhcmQKICAgICAgIC8vIGUu
Zy4gVk1XYXJlIFZpcnR1YWwgRXRoZXJuZXQgQWRhcHRvcgogICAgICAgZGVi
dWdfcHJpbnRmICgiTUFDIGFkZHJlc3Mgb2YgZmlyc3QgRXRoZXJuZXQgY2Fy
ZDogJTAyeDolMDJ4OiUwMng6JTAyeDolMDJ4OiUwMngiLApJbmRleDogd2lu
c3VwL2N5Z3dpbi9pbmNsdWRlL2N5Z3dpbi9pbjYuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dp
bi9pbmNsdWRlL2N5Z3dpbi9pbjYuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS42CmRpZmYgLXUgLXIxLjYgaW42LmgKLS0tIHdpbnN1cC9jeWd3aW4vaW5j
bHVkZS9jeWd3aW4vaW42LmgJMTggSmFuIDIwMDcgMTA6MjU6NDAgLTAwMDAJ
MS42CisrKyB3aW5zdXAvY3lnd2luL2luY2x1ZGUvY3lnd2luL2luNi5oCTkg
RmViIDIwMTEgMTM6NDg6MDEgLTAwMDAKQEAgLTE2LDEwICsxNiw3IEBACiAj
ZGVmaW5lIElORVQ2X0FERFJTVFJMRU4gNDYKIAogI2RlZmluZSBJTjZfQVJF
X0FERFJfRVFVQUwoYSwgYikgXAotCSgoKGNvbnN0IHVpbnQzMl90ICopKGEp
KVswXSA9PSAoKGNvbnN0IHVpbnQzMl90ICopKGIpKVswXSBcCi0JICYmICgo
Y29uc3QgdWludDMyX3QgKikoYSkpWzFdID09ICgoY29uc3QgdWludDMyX3Qg
KikoYikpWzFdIFwKLQkgJiYgKChjb25zdCB1aW50MzJfdCAqKShhKSlbMl0g
PT0gKChjb25zdCB1aW50MzJfdCAqKShiKSlbMl0gXAotCSAmJiAoKGNvbnN0
IHVpbnQzMl90ICopKGEpKVszXSA9PSAoKGNvbnN0IHVpbnQzMl90ICopKGIp
KVszXSkKKwkoIW1lbWNtcCAoKGEpLCAoYiksIDQgKiBzaXplb2YgKHVpbnQz
Ml90KSkpCiAKICNkZWZpbmUgSU42X0lTX0FERFJfVU5TUEVDSUZJRUQoYWRk
cikgXAogCSgoKGNvbnN0IHVpbnQzMl90ICopKGFkZHIpKVswXSA9PSAwIFwK
SW5kZXg6IHdpbnN1cC9jeWd3aW4vcGFzc3dkLmNjCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2lu
L3Bhc3N3ZC5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS44NgpkaWZmIC11
IC1yMS44NiBwYXNzd2QuY2MKLS0tIHdpbnN1cC9jeWd3aW4vcGFzc3dkLmNj
CTI4IFNlcCAyMDEwIDE0OjQ5OjMxIC0wMDAwCTEuODYKKysrIHdpbnN1cC9j
eWd3aW4vcGFzc3dkLmNjCTkgRmViIDIwMTEgMTM6NDg6MDAgLTAwMDAKQEAg
LTk4LDExICs5OCwxNCBAQAogICAgIHsKICAgICAgIGVuZHB0ciA9IHN0cmNo
ciAoc2lkX3N0cmluZyArIDIsIDApIC0gMTsKICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgcHIuY3Vycl9saW5lczsgaSsrKQotCWlmICgocHcgPSBwYXNz
d2RfYnVmICsgaSktPnB3X2RpciA+IHB3LT5wd19nZWNvcyArIDgpCi0JICBm
b3IgKHB0cjEgPSBlbmRwdHIsIHB0cjIgPSBwdy0+cHdfZGlyIC0gMjsKLQkg
ICAgICAgKnB0cjEgPT0gKnB0cjI7IHB0cjItLSkKKwl7CisJICBwdyA9IHBh
c3N3ZF9idWYgKyBpOworCSAgaWYgKHB3LT5wd19kaXIgPiBwdy0+cHdfZ2Vj
b3MgKyA4KQorCSAgICBmb3IgKHB0cjEgPSBlbmRwdHIsIHB0cjIgPSBwdy0+
cHdfZGlyIC0gMjsKKwkgICAgICAqcHRyMSA9PSAqcHRyMjsgcHRyMi0tKQog
CSAgICBpZiAoISotLXB0cjEpCiAJICAgICAgcmV0dXJuIHB3OworCX0KICAg
ICB9CiAgIHJldHVybiBOVUxMOwogfQkKSW5kZXg6IHdpbnN1cC9jeWd3aW4v
Y3lnaGVhcC5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9jeWdoZWFwLmNjLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjE1NQpkaWZmIC11IC1yMS4xNTUgY3lnaGVhcC5j
YwotLS0gd2luc3VwL2N5Z3dpbi9jeWdoZWFwLmNjCTMxIE1heSAyMDEwIDE4
OjUyOjAyIC0wMDAwCTEuMTU1CisrKyB3aW5zdXAvY3lnd2luL2N5Z2hlYXAu
Y2MJOSBGZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtMTc4LDEwICsxNzgs
MTAgQEAKIAogLyogQ29weXJpZ2h0IChDKSAxOTk3LCAyMDAwIERKIERlbG9y
aWUgKi8KIAotc3RhdGljIHZvaWQgKl9jbWFsbG9jICh1bnNpZ25lZCBzaXpl
KSBfX2F0dHJpYnV0ZSAoKHJlZ3Bhcm0oMSkpKTsKLXN0YXRpYyB2b2lkICpf
X3N0ZGNhbGwgX2NyZWFsbG9jICh2b2lkICpwdHIsIHVuc2lnbmVkIHNpemUp
IF9fYXR0cmlidXRlICgocmVncGFybSgyKSkpOworc3RhdGljIHZvaWQgKl9f
c3RkY2FsbCBfY21hbGxvYyAodW5zaWduZWQgc2l6ZSkgX19hdHRyaWJ1dGVf
XyAoKHJlZ3Bhcm0oMSkpKTsKK3N0YXRpYyB2b2lkICpfX3N0ZGNhbGwgX2Ny
ZWFsbG9jICh2b2lkICpwdHIsIHVuc2lnbmVkIHNpemUpIF9fYXR0cmlidXRl
X18gKChyZWdwYXJtKDIpKSk7CiAKLXN0YXRpYyB2b2lkICpfX3N0ZGNhbGwK
K3N0YXRpYyB2b2lkICpfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bh
cm0oMSkpKQogX2NtYWxsb2MgKHVuc2lnbmVkIHNpemUpCiB7CiAgIF9jbWFs
bG9jX2VudHJ5ICpydmM7CkBAIC0yMTUsNyArMjE1LDcgQEAKICAgcmV0dXJu
IHJ2Yy0+ZGF0YTsKIH0KIAotc3RhdGljIHZvaWQgX19zdGRjYWxsCitzdGF0
aWMgdm9pZCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXygocmVncGFybSgxKSkp
CiBfY2ZyZWUgKHZvaWQgKnB0cikKIHsKICAgY3lnaGVhcF9wcm90ZWN0LmFj
cXVpcmUgKCk7CkBAIC0yMjYsNyArMjI2LDcgQEAKICAgY3lnaGVhcF9wcm90
ZWN0LnJlbGVhc2UgKCk7CiB9CiAKLXN0YXRpYyB2b2lkICpfX3N0ZGNhbGwK
K3N0YXRpYyB2b2lkICpfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bh
cm0oMikpKQogX2NyZWFsbG9jICh2b2lkICpwdHIsIHVuc2lnbmVkIHNpemUp
CiB7CiAgIHZvaWQgKm5ld3B0cjsKQEAgLTI5NSw3ICsyOTUsNyBAQAogICBy
ZXR1cm4gY21hbGxvYyAoeCwgbiwgImNtYWxsb2MiKTsKIH0KIAotaW5saW5l
IHN0YXRpYyB2b2lkICoKK2lubGluZSBzdGF0aWMgdm9pZCAqIF9fc3RkY2Fs
bCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgyKSkpCiBjcmVhbGxvYyAodm9p
ZCAqcywgRFdPUkQgbiwgY29uc3QgY2hhciAqZm4pCiB7CiAgIE1BTExPQ19D
SEVDSzsKQEAgLTMwOSwxOSArMzA5LDE5IEBACiAgIHJldHVybiBjcmV0dXJu
ICh0LCBjLCBuLCBmbik7CiB9CiAKLWV4dGVybiAiQyIgdm9pZCAqX19zdGRj
YWxsCitleHRlcm4gIkMiIHZvaWQgKl9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9f
ICgocmVncGFybSgyKSkpCiBjcmVhbGxvYyAodm9pZCAqcywgRFdPUkQgbikK
IHsKICAgcmV0dXJuIGNyZWFsbG9jIChzLCBuLCBOVUxMKTsKIH0KIAotZXh0
ZXJuICJDIiB2b2lkICpfX3N0ZGNhbGwKK2V4dGVybiAiQyIgdm9pZCAqX19z
dGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDIpKSkKIGNyZWFsbG9j
X2Fib3J0ICh2b2lkICpzLCBEV09SRCBuKQogewogICByZXR1cm4gY3JlYWxs
b2MgKHMsIG4sICJjcmVhbGxvYyIpOwogfQogCi1leHRlcm4gIkMiIHZvaWQg
X19zdGRjYWxsCitleHRlcm4gIkMiIHZvaWQgX19zdGRjYWxsIF9fYXR0cmli
dXRlX18gKChyZWdwYXJtKDEpKSkKIGNmcmVlICh2b2lkICpzKQogewogICBh
c3NlcnQgKCFpbmhlYXAgKHMpKTsKQEAgLTMyOSw3ICszMjksNyBAQAogICBN
QUxMT0NfQ0hFQ0s7CiB9CiAKLWV4dGVybiAiQyIgdm9pZCBfX3N0ZGNhbGwK
K2V4dGVybiAiQyIgdm9pZCBfX3N0ZGNhbGwgIF9fYXR0cmlidXRlX18gKChy
ZWdwYXJtKDIpKSkKIGNmcmVlX2FuZF9zZXQgKGNoYXIgKiZzLCBjaGFyICp3
aGF0KQogewogICBpZiAocyAmJiBzICE9IGFsbW9zdF9udWxsKQpAQCAtMzQ5
LDE5ICszNDksMTkgQEAKICAgcmV0dXJuIGNyZXR1cm4gKHgsIGMsIG4sIGZu
KTsKIH0KIAotZXh0ZXJuICJDIiB2b2lkICpfX3N0ZGNhbGwKK2V4dGVybiAi
QyIgdm9pZCAqX19zdGRjYWxsICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgz
KSkpCiBjY2FsbG9jIChjeWdoZWFwX3R5cGVzIHgsIERXT1JEIG4sIERXT1JE
IHNpemUpCiB7CiAgIHJldHVybiBjY2FsbG9jICh4LCBuLCBzaXplLCBOVUxM
KTsKIH0KIAotZXh0ZXJuICJDIiB2b2lkICpfX3N0ZGNhbGwKK2V4dGVybiAi
QyIgdm9pZCAqX19zdGRjYWxsICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgz
KSkpCiBjY2FsbG9jX2Fib3J0IChjeWdoZWFwX3R5cGVzIHgsIERXT1JEIG4s
IERXT1JEIHNpemUpCiB7CiAgIHJldHVybiBjY2FsbG9jICh4LCBuLCBzaXpl
LCAiY2NhbGxvYyIpOwogfQogCi1leHRlcm4gIkMiIFBXQ0hBUiBfX3N0ZGNh
bGwKK2V4dGVybiAiQyIgUFdDSEFSIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9f
ICgocmVncGFybSgxKSkpCiBjd2NzZHVwIChjb25zdCBQV0NIQVIgcykKIHsK
ICAgTUFMTE9DX0NIRUNLOwpAQCAtMzczLDcgKzM3Myw3IEBACiAgIHJldHVy
biBwOwogfQogCi1leHRlcm4gIkMiIFBXQ0hBUiBfX3N0ZGNhbGwKK2V4dGVy
biAiQyIgUFdDSEFSIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFy
bSgxKSkpCiBjd2NzZHVwMSAoY29uc3QgUFdDSEFSIHMpCiB7CiAgIE1BTExP
Q19DSEVDSzsKQEAgLTM4NSw3ICszODUsNyBAQAogICByZXR1cm4gcDsKIH0K
IAotZXh0ZXJuICJDIiBjaGFyICpfX3N0ZGNhbGwKK2V4dGVybiAiQyIgY2hh
ciAqX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDEpKSkKIGNz
dHJkdXAgKGNvbnN0IGNoYXIgKnMpCiB7CiAgIE1BTExPQ19DSEVDSzsKQEAg
LTM5Nyw3ICszOTcsNyBAQAogICByZXR1cm4gcDsKIH0KIAotZXh0ZXJuICJD
IiBjaGFyICpfX3N0ZGNhbGwKK2V4dGVybiAiQyIgY2hhciAqX19zdGRjYWxs
IF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDEpKSkKIGNzdHJkdXAxIChjb25z
dCBjaGFyICpzKQogewogICBNQUxMT0NfQ0hFQ0s7CkluZGV4OiB3aW5zdXAv
Y3lnd2luL2RjcnQwLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL2RjcnQwLmNjLHYKcmV0
cmlldmluZyByZXZpc2lvbiAxLjM5MApkaWZmIC11IC1yMS4zOTAgZGNydDAu
Y2MKLS0tIHdpbnN1cC9jeWd3aW4vZGNydDAuY2MJMjYgRGVjIDIwMTAgMjE6
MTE6MzcgLTAwMDAJMS4zOTAKKysrIHdpbnN1cC9jeWd3aW4vZGNydDAuY2MJ
OSBGZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtMTAzNCw3ICsxMDM0LDcg
QEAKICAgc2lnX2Rpc3BhdGNoX3BlbmRpbmcgKHRydWUpOwogfQogCi12b2lk
IF9fc3RkY2FsbAordm9pZCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDEpLCBub3JldHVybikpCiBkb19leGl0IChpbnQgc3RhdHVzKQog
ewogICBzeXNjYWxsX3ByaW50ZiAoImRvX2V4aXQgKCVkKSwgZXhpdF9zdGF0
ZSAlZCIsIHN0YXR1cywgZXhpdF9zdGF0ZSk7CkBAIC0xMTk4LDcgKzExOTgs
NyBAQAogfQogCiAjaWZkZWYgREVCVUdHSU5HCi12b2lkIF9fc3RkY2FsbAor
dm9pZCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXygocmVncGFybSAoMSkpKQog
Y3lnYmVuY2ggKGNvbnN0IGNoYXIgKnMpCiB7CiAgIGlmIChHZXRFbnZpcm9u
bWVudFZhcmlhYmxlQSAoIkNZR1dJTl9CRU5DSCIsIE5VTEwsIDApKQpJbmRl
eDogd2luc3VwL2N5Z3dpbi9kZWJ1Zy5jYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9kZWJ1
Zy5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42MwpkaWZmIC11IC1yMS42
MyBkZWJ1Zy5jYwotLS0gd2luc3VwL2N5Z3dpbi9kZWJ1Zy5jYwk1IEF1ZyAy
MDA5IDA0OjQ0OjI3IC0wMDAwCTEuNjMKKysrIHdpbnN1cC9jeWd3aW4vZGVi
dWcuY2MJOSBGZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtMTAzLDcgKzEw
Myw3IEBACiAgIHJldHVybiBOVUxMOwogfQogCi12b2lkIF9fc3RkY2FsbAor
dm9pZCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkK
IG1vZGlmeV9oYW5kbGUgKGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsbiwgSEFO
RExFIGgsIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgaW5oKQogewogICBsb2Nr
X2RlYnVnIGhlcmU7CkBAIC0xMTksNyArMTE5LDcgQEAKIH0KIAogLyogQWRk
IGEgaGFuZGxlIHRvIHRoZSBsaW5rZWQgbGlzdCBvZiBrbm93biBoYW5kbGVz
LiAqLwotdm9pZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0cmli
dXRlX18gKChyZWdwYXJtICgzKSkpCiBhZGRfaGFuZGxlIChjb25zdCBjaGFy
ICpmdW5jLCBpbnQgbG4sIEhBTkRMRSBoLCBjb25zdCBjaGFyICpuYW1lLCBi
b29sIGluaCkKIHsKICAgaGFuZGxlX2xpc3QgKmhsOwpAQCAtMjEzLDcgKzIx
Myw3IEBACiAKIC8qIENsb3NlIGEga25vd24gaGFuZGxlLiAgQ29tcGxhaW4g
aWYgIWZvcmNlIGFuZCBjbG9zaW5nIGEga25vd24gaGFuZGxlIG9yCiAgICBp
ZiB0aGUgbmFtZSBvZiB0aGUgaGFuZGxlIGJlaW5nIGNsb3NlZCBkb2VzIG5v
dCBtYXRjaCB0aGUgcmVnaXN0ZXJlZCBuYW1lLiAqLwotYm9vbCBfX3N0ZGNh
bGwKK2Jvb2wgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgz
KSkpCiBjbG9zZV9oYW5kbGUgKGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsbiwg
SEFORExFIGgsIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wgZm9yY2UpCiB7CiAg
IGJvb2wgcmV0OwpJbmRleDogd2luc3VwL2N5Z3dpbi9lcnJuby5jYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2lu
c3VwL2N5Z3dpbi9lcnJuby5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS43
NQpkaWZmIC11IC1yMS43NSBlcnJuby5jYwotLS0gd2luc3VwL2N5Z3dpbi9l
cnJuby5jYwkxOSBKYW4gMjAxMSAwOToxNToxNyAtMDAwMAkxLjc1CisrKyB3
aW5zdXAvY3lnd2luL2Vycm5vLmNjCTkgRmViIDIwMTEgMTM6NDc6NTcgLTAw
MDAKQEAgLTMwMSw3ICszMDEsNyBAQAogaW50IE5PX0NPUFlfSU5JVCBfc3lz
X25lcnIgPSBzaXplb2YgKF9zeXNfZXJybGlzdCkgLyBzaXplb2YgKF9zeXNf
ZXJybGlzdFswXSk7CiB9OwogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRj
YWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDIpKSkKIGdldGVycm5vX2Zy
b21fd2luX2Vycm9yIChEV09SRCBjb2RlLCBpbnQgZGVmZXJybm8pCiB7CiAg
IGZvciAoaW50IGkgPSAwOyBlcnJtYXBbaV0udyAhPSAwOyArK2kpCkBAIC0z
MTgsNyArMzE4LDcgQEAKIAogLyogc2V0ZXJybm9fZnJvbV93aW5fZXJyb3I6
IEdpdmVuIGEgV2luZG93cyBlcnJvciBjb2RlLCBzZXQgZXJybm8KICAgIGFz
IGFwcHJvcHJpYXRlLiAqLwotdm9pZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRj
YWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDMpKSkKIHNldGVycm5vX2Zy
b21fd2luX2Vycm9yIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgRFdP
UkQgY29kZSkKIHsKICAgc3lzY2FsbF9wcmludGYgKCIlczolZCB3aW5kb3dz
IGVycm9yICVkIiwgZmlsZSwgbGluZSwgY29kZSk7CkBAIC0zMjcsNyArMzI3
LDcgQEAKIAogLyogc2V0ZXJybm9fZnJvbV9udF9zdGF0dXM6IEdpdmVuIGEg
TlQgc3RhdHVzIGNvZGUsIHNldCBlcnJubwogICAgYXMgYXBwcm9wcmlhdGUu
ICovCi12b2lkIF9fc3RkY2FsbAordm9pZCBfX3N0ZGNhbGwgX19hdHRyaWJ1
dGVfXyAoKHJlZ3Bhcm0oMykpKQogc2V0ZXJybm9fZnJvbV9udF9zdGF0dXMg
KGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBOVFNUQVRVUyBzdGF0dXMp
CiB7CiAgIERXT1JEIGNvZGUgPSBSdGxOdFN0YXR1c1RvRG9zRXJyb3IgKHN0
YXR1cyk7CkBAIC0zMzgsNyArMzM4LDcgQEAKIH0KIAogLyogc2V0ZXJybm86
IFNldCBgZXJybm8nIGJhc2VkIG9uIEdldExhc3RFcnJvciAoKS4gKi8KLXZv
aWQgX19zdGRjYWxsCit2b2lkIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgo
cmVncGFybSgyKSkpCiBzZXRlcnJubyAoY29uc3QgY2hhciAqZmlsZSwgaW50
IGxpbmUpCiB7CiAgIHNldGVycm5vX2Zyb21fd2luX2Vycm9yIChmaWxlLCBs
aW5lLCBHZXRMYXN0RXJyb3IgKCkpOwpJbmRleDogd2luc3VwL2N5Z3dpbi9l
eGNlcHRpb25zLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL2V4Y2VwdGlvbnMuY2Msdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMzUxCmRpZmYgLXUgLXIxLjM1MSBleGNl
cHRpb25zLmNjCi0tLSB3aW5zdXAvY3lnd2luL2V4Y2VwdGlvbnMuY2MJMjQg
T2N0IDIwMTAgMTU6MjY6MDUgLTAwMDAJMS4zNTEKKysrIHdpbnN1cC9jeWd3
aW4vZXhjZXB0aW9ucy5jYwk5IEZlYiAyMDExIDEzOjQ3OjU3IC0wMDAwCkBA
IC00NTAsNyArNDUzLDcgQEAKIAogZXh0ZXJuICJDIiBEV09SRCBfX3N0ZGNh
bGwgUnRsVW53aW5kICh2b2lkICosIHZvaWQgKiwgdm9pZCAqLCBEV09SRCk7
CiBzdGF0aWMgdm9pZCBfX3N0ZGNhbGwgcnRsX3Vud2luZCAoZXhjZXB0aW9u
X2xpc3QgKiwgUEVYQ0VQVElPTl9SRUNPUkQpIF9fYXR0cmlidXRlX18gKChu
b2lubGluZSwgcmVncGFybSAoMykpKTsKLXZvaWQgX19zdGRjYWxsCit2b2lk
IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgobm9pbmxpbmUsIHJlZ3Bhcm0g
KDMpKSkKIHJ0bF91bndpbmQgKGV4Y2VwdGlvbl9saXN0ICpmcmFtZSwgUEVY
Q0VQVElPTl9SRUNPUkQgZSkKIHsKICAgX19hc21fXyAoIlxuXApAQCAtNzk3
LDcgKzgwMCw3IEBACiAgIHJldHVybiBpbnRlcnJ1cHRlZDsKIH0KIAotdm9p
ZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18oKHJl
Z3Bhcm0oMykpKQogX2N5Z3Rsczo6aW50ZXJydXB0X3NldHVwIChpbnQgc2ln
LCB2b2lkICpoYW5kbGVyLCBzdHJ1Y3Qgc2lnYWN0aW9uJiBzaWdhKQogewog
ICBwdXNoICgoX19zdGFja190KSBzaWdkZWxheWVkKTsKQEAgLTExNTQsNyAr
MTE1Nyw3IEBACiAgIG1hc2tfc3luYy5yZWxlYXNlICgpOwogfQogCi1pbnQg
X19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdw
YXJtICgxKSkpCiBzaWdwYWNrZXQ6OnByb2Nlc3MgKCkKIHsKICAgRFdPUkQg
Y29udGludWVfbm93OwpJbmRleDogd2luc3VwL2N5Z3dpbi9maGFuZGxlci5j
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9z
cmMvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5jYyx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4zNzMKZGlmZiAtdSAtcjEuMzczIGZoYW5kbGVyLmNjCi0tLSB3
aW5zdXAvY3lnd2luL2ZoYW5kbGVyLmNjCTEgRmViIDIwMTEgMDg6NDY6NDgg
LTAwMDAJMS4zNzMKKysrIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXIuY2MJOSBG
ZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtNjQ0LDcgKzY0NCw3IEBACiAg
ICBhbiBcbi4gIElmIGxhc3QgY2hhciBpcyBhbiBcciwgbG9vayBhaGVhZCBv
bmUgbW9yZSBjaGFyLCBpZiBcbiB0aGVuCiAgICBtb2RpZnkgXHIsIGlmIG5v
dCwgcmVtZW1iZXIgY2hhci4KICovCi12b2lkIF9fc3RkY2FsbAordm9pZCBf
X3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5k
bGVyX2Jhc2U6OnJlYWQgKHZvaWQgKmluX3B0ciwgc2l6ZV90JiBsZW4pCiB7
CiAgIGNoYXIgKnB0ciA9IChjaGFyICopIGluX3B0cjsKQEAgLTEwMDYsMTQg
KzEwMDYsMTQgQEAKICAgcmV0dXJuIHJlczsKIH0KIAotc3NpemVfdCBfX3N0
ZGNhbGwKK3NzaXplX3QgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdw
YXJtICgzKSkpCiBmaGFuZGxlcl9iYXNlOjpwcmVhZCAodm9pZCAqLCBzaXpl
X3QsIF9vZmY2NF90KQogewogICBzZXRfZXJybm8gKEVTUElQRSk7CiAgIHJl
dHVybiAtMTsKIH0KIAotc3NpemVfdCBfX3N0ZGNhbGwKK3NzaXplX3QgX19z
dGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiBmaGFuZGxl
cl9iYXNlOjpwd3JpdGUgKHZvaWQgKiwgc2l6ZV90LCBfb2ZmNjRfdCkKIHsK
ICAgc2V0X2Vycm5vIChFU1BJUEUpOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAK
ICAgcmV0dXJuIC0xOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRj
YWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl9i
YXNlOjpmc3RhdCAoc3RydWN0IF9fc3RhdDY0ICpidWYpCiB7CiAgIGRlYnVn
X3ByaW50ZiAoImhlcmUiKTsKQEAgLTExMjEsNyArMTEyMSw3IEBACiAgIHJl
dHVybiAwOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9f
YXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl9iYXNlOjpm
c3RhdHZmcyAoc3RydWN0IHN0YXR2ZnMgKnNmcykKIHsKICAgLyogSWYgd2Ug
aGl0IHRoaXMgYmFzZSBpbXBsZW1lbnRhdGlvbiwgaXQncyBzb21lIGRldmlj
ZSBpbiAvZGV2LgpAQCAtMTc5NCw3ICsxNzk0LDcgQEAKICAgcmV0dXJuIHJl
czsKIH0KIAotdm9pZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0
cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiBmaGFuZGxlcl9iYXNlX292ZXJs
YXBwZWQ6OnJlYWRfb3ZlcmxhcHBlZCAodm9pZCAqcHRyLCBzaXplX3QmIGxl
bikKIHsKICAgRFdPUkQgbmJ5dGVzOwpJbmRleDogd2luc3VwL2N5Z3dpbi9m
aGFuZGxlcl9jbGlwYm9hcmQuY2MKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJf
Y2xpcGJvYXJkLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQ0CmRpZmYg
LXUgLXIxLjQ0IGZoYW5kbGVyX2NsaXBib2FyZC5jYwotLS0gd2luc3VwL2N5
Z3dpbi9maGFuZGxlcl9jbGlwYm9hcmQuY2MJMjQgSnVsIDIwMDkgMjA6NTQ6
MzMgLTAwMDAJMS40NAorKysgd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9jbGlw
Ym9hcmQuY2MJOSBGZWIgMjAxMSAxMzo0Nzo1NyAtMDAwMApAQCAtMTgwLDcg
KzE4MCw3IEBACiAgICAgfQogfQogCi12b2lkIF9fc3RkY2FsbAordm9pZCBf
X3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5k
bGVyX2Rldl9jbGlwYm9hcmQ6OnJlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBs
ZW4pCiB7CiAgIEhHTE9CQUwgaGdsYjsKSW5kZXg6IHdpbnN1cC9jeWd3aW4v
ZmhhbmRsZXJfY29uc29sZS5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9j
b25zb2xlLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIyMgpkaWZmIC11
IC1yMS4yMjIgZmhhbmRsZXJfY29uc29sZS5jYwotLS0gd2luc3VwL2N5Z3dp
bi9maGFuZGxlcl9jb25zb2xlLmNjCTcgRmViIDIwMTEgMTE6MTg6MTkgLTAw
MDAJMS4yMjIKKysrIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfY29uc29sZS5j
Ywk5IEZlYiAyMDExIDEzOjQ3OjU4IC0wMDAwCkBAIC0yNDksNyArMjQ5LDcg
QEAKIAkgICAgICAgICB8fCBkZXZfc3RhdGUtPnVzZV9tb3VzZSA+PSAzKSk7
CiB9CiAKLXZvaWQgX19zdGRjYWxsCit2b2lkIF9fc3RkY2FsbCBfX2F0dHJp
YnV0ZV9fICgocmVncGFybSAoMykpKQogZmhhbmRsZXJfY29uc29sZTo6cmVh
ZCAodm9pZCAqcHYsIHNpemVfdCYgYnVmbGVuKQogewogICBIQU5ETEUgaCA9
IGdldF9pb19oYW5kbGUgKCk7CkluZGV4OiB3aW5zdXAvY3lnd2luL2ZoYW5k
bGVyX2Rpc2tfZmlsZS5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9kaXNr
X2ZpbGUuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMzQ4CmRpZmYgLXUg
LXIxLjM0OCBmaGFuZGxlcl9kaXNrX2ZpbGUuY2MKLS0tIHdpbnN1cC9jeWd3
aW4vZmhhbmRsZXJfZGlza19maWxlLmNjCTI2IEphbiAyMDExIDEwOjU1OjEz
IC0wMDAwCTEuMzQ4CisrKyB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2Rpc2tf
ZmlsZS5jYwk5IEZlYiAyMDExIDEzOjQ3OjU4IC0wMDAwCkBAIC0yOTAsNyAr
MjkwLDcgQEAKICAgIFRoaXMgcmV0dXJucyB0aGUgY29udGVudCBvZiBhIHN0
cnVjdCBmYXR0cjMgYXMgZGVmaW5lZCBpbiBSRkMgMTgxMy4KICAgIFRoZSBj
b250ZW50IGlzIHRoZSBORlMgZXF1aXZhbGVudCBvZiBzdHJ1Y3Qgc3RhdC4g
c28gdGhlcmUncyBub3QgbXVjaAogICAgdG8gZG8gaGVyZSBleGNlcHQgZm9y
IGNvcHlpbmcuICovCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9f
YXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl9iYXNlOjpm
c3RhdF9ieV9uZnNfZWEgKHN0cnVjdCBfX3N0YXQ2NCAqYnVmKQogewogICBm
YXR0cjMgKm5mc19hdHRyID0gcGMubmZzYXR0ciAoKTsKQEAgLTMzMCw3ICsz
MzAsNyBAQAogICByZXR1cm4gMDsKIH0KIAotaW50IF9fc3RkY2FsbAoraW50
IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMikpKQogZmhh
bmRsZXJfYmFzZTo6ZnN0YXRfYnlfaGFuZGxlIChzdHJ1Y3QgX19zdGF0NjQg
KmJ1ZikKIHsKICAgLyogRG9uJ3QgdXNlIEZpbGVBbGxJbmZvcm1hdGlvbiBp
bmZvIGNsYXNzLiAgSXQgcmV0dXJucyBhIHBhdGhuYW1lIHJhdGhlcgpAQCAt
Mzg5LDcgKzM4OSw3IEBACiAgIHJldHVybiBmc3RhdF9oZWxwZXIgKGJ1Ziwg
ZnNpLk51bWJlck9mTGlua3MpOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQg
X19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFu
ZGxlcl9iYXNlOjpmc3RhdF9ieV9uYW1lIChzdHJ1Y3QgX19zdGF0NjQgKmJ1
ZikKIHsKICAgTlRTVEFUVVMgc3RhdHVzOwpAQCAtNDM0LDcgKzQzNCw3IEBA
CiAgIHJldHVybiBmc3RhdF9oZWxwZXIgKGJ1ZiwgMSk7CiB9CiAKLWludCBf
X3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bh
cm0gKDIpKSkKIGZoYW5kbGVyX2Jhc2U6OmZzdGF0X2ZzIChzdHJ1Y3QgX19z
dGF0NjQgKmJ1ZikKIHsKICAgaW50IHJlcyA9IC0xOwpAQCAtNDc4LDcgKzQ3
OCw3IEBACiAgIHJldHVybiByZXM7CiB9CiAKLWludCBfX3N0ZGNhbGwKK2lu
dCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZo
YW5kbGVyX2Jhc2U6OmZzdGF0X2hlbHBlciAoc3RydWN0IF9fc3RhdDY0ICpi
dWYsCiAJCQkgICAgIERXT1JEIG5OdW1iZXJPZkxpbmtzKQogewpAQCAtNjY3
LDEzICs2NjcsMTMgQEAKICAgcmV0dXJuIDA7CiB9CiAKLWludCBfX3N0ZGNh
bGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDIp
KSkKIGZoYW5kbGVyX2Rpc2tfZmlsZTo6ZnN0YXQgKHN0cnVjdCBfX3N0YXQ2
NCAqYnVmKQogewogICByZXR1cm4gZnN0YXRfZnMgKGJ1Zik7CiB9CiAKLWlu
dCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDIpKSkKIGZoYW5kbGVyX2Rpc2tfZmlsZTo6ZnN0YXR2ZnMgKHN0
cnVjdCBzdGF0dmZzICpzZnMpCiB7CiAgIGludCByZXQgPSAtMSwgb3BlbmVk
ID0gMDsKQEAgLTc2NSw3ICs3NjUsNyBAQAogICByZXR1cm4gcmV0OwogfQog
Ci1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18g
KChyZWdwYXJtICgxKSkpCiBmaGFuZGxlcl9kaXNrX2ZpbGU6OmZjaG1vZCAo
bW9kZV90IG1vZGUpCiB7CiAgIGV4dGVybiBpbnQgY2htb2RfZGV2aWNlIChw
YXRoX2NvbnYmIHBjLCBtb2RlX3QgbW9kZSk7CkBAIC04NzMsNyArODczLDcg
QEAKICAgcmV0dXJuIHJlczsKIH0KIAotaW50IF9fc3RkY2FsbAoraW50IF9f
c3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMikpKQogZmhhbmRs
ZXJfZGlza19maWxlOjpmY2hvd24gKF9fdWlkMzJfdCB1aWQsIF9fZ2lkMzJf
dCBnaWQpCiB7CiAgIGludCBvcmV0ID0gMDsKQEAgLTk0MCw3ICs5NDAsNyBA
QAogICByZXR1cm4gcmVzOwogfQogCi1pbnQgX3N0ZGNhbGwKK2ludCBfc3Rk
Y2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogZmhhbmRsZXJf
ZGlza19maWxlOjpmYWNsIChpbnQgY21kLCBpbnQgbmVudHJpZXMsIF9fYWNs
ZW50MzJfdCAqYWNsYnVmcCkKIHsKICAgaW50IHJlcyA9IC0xOwpAQCAtMTQx
Miw3ICsxNDEyLDcgQEAKICAgcmV0dXJuIHJlczsKIH0KIAotc3NpemVfdCBf
X3N0ZGNhbGwKK3NzaXplX3QgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChy
ZWdwYXJtICgzKSkpCiBmaGFuZGxlcl9kaXNrX2ZpbGU6OnByZWFkICh2b2lk
ICpidWYsIHNpemVfdCBjb3VudCwgX29mZjY0X3Qgb2Zmc2V0KQogewogICBz
c2l6ZV90IHJlczsKQEAgLTE0MzIsNyArMTQzMiw3IEBACiAgIHJldHVybiBy
ZXM7CiB9CiAKLXNzaXplX3QgX19zdGRjYWxsCitzc2l6ZV90IF9fc3RkY2Fs
bCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogZmhhbmRsZXJfZGlz
a19maWxlOjpwd3JpdGUgKHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50LCBfb2Zm
NjRfdCBvZmZzZXQpCiB7CiAgIGludCByZXM7CkBAIC0xNzEwLDcgKzE3MTAs
NyBAQAogICByZXR1cm4gcmVzOwogfQogCi1fX2lubzY0X3QgX19zdGRjYWxs
CitfX2lubzY0X3QgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJt
ICgyKSkpCiByZWFkZGlyX2dldF9pbm8gKGNvbnN0IGNoYXIgKnBhdGgsIGJv
b2wgZG90X2RvdCkKIHsKICAgY2hhciAqZm5hbWU7CkluZGV4OiB3aW5zdXAv
Y3lnd2luL2ZoYW5kbGVyX2RzcC5jYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9maGFuZGxl
cl9kc3AuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTIKZGlmZiAtdSAt
cjEuNTIgZmhhbmRsZXJfZHNwLmNjCi0tLSB3aW5zdXAvY3lnd2luL2ZoYW5k
bGVyX2RzcC5jYwkyNCBKdWwgMjAwOSAyMDo1NDozMyAtMDAwMAkxLjUyCisr
KyB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX2RzcC5jYwk5IEZlYiAyMDExIDEz
OjQ3OjU4IC0wMDAwCkBAIC0xMDQwLDcgKzEwNDAsNyBAQAogICByZXR1cm4g
bGVuOwogfQogCi12b2lkIF9fc3RkY2FsbAordm9pZCBfX3N0ZGNhbGwgX19h
dHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5kbGVyX2Rldl9kc3A6
OnJlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBsZW4pCiB7CiAgIGRlYnVnX3By
aW50ZiAoInB0cj0lMDh4IGxlbj0lZCIsIHB0ciwgbGVuKTsKSW5kZXg6IHdp
bnN1cC9jeWd3aW4vZmhhbmRsZXJfZmlmby5jYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9m
aGFuZGxlcl9maWZvLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQzCmRp
ZmYgLXUgLXIxLjQzIGZoYW5kbGVyX2ZpZm8uY2MKLS0tIHdpbnN1cC9jeWd3
aW4vZmhhbmRsZXJfZmlmby5jYwk2IEFwciAyMDEwIDE1OjA5OjQ0IC0wMDAw
CTEuNDMKKysrIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfZmlmby5jYwk5IEZl
YiAyMDExIDEzOjQ3OjU4IC0wMDAwCkBAIC0yODEsNyArMjgxLDcgQEAKICAg
cmV0dXJuIHdhaXQgKHRydWUpID8gd3JpdGVfb3ZlcmxhcHBlZCAocHRyLCBs
ZW4pIDogLTE7CiB9CiAKLWludCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwg
X19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDIpKSkKIGZoYW5kbGVyX2ZpZm86
OmZzdGF0dmZzIChzdHJ1Y3Qgc3RhdHZmcyAqc2ZzKQogewogICBmaGFuZGxl
cl9kaXNrX2ZpbGUgZmggKHBjKTsKSW5kZXg6IHdpbnN1cC9jeWd3aW4vZmhh
bmRsZXJfbWFpbHNsb3QuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfbWFp
bHNsb3QuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTIKZGlmZiAtdSAt
cjEuMTIgZmhhbmRsZXJfbWFpbHNsb3QuY2MKLS0tIHdpbnN1cC9jeWd3aW4v
ZmhhbmRsZXJfbWFpbHNsb3QuY2MJMTQgSmFuIDIwMTAgMTg6NDY6MDEgLTAw
MDAJMS4xMgorKysgd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9tYWlsc2xvdC5j
Ywk5IEZlYiAyMDExIDEzOjQ3OjU4IC0wMDAwCkBAIC0yNSw3ICsyNSw3IEBA
CiB7CiB9CiAKLWludCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRy
aWJ1dGVfXyAoKHJlZ3Bhcm0gKDIpKSkKIGZoYW5kbGVyX21haWxzbG90Ojpm
c3RhdCAoc3RydWN0IF9fc3RhdDY0ICpidWYpCiB7CiAgIGRlYnVnX3ByaW50
ZiAoImhlcmUiKTsKSW5kZXg6IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfbWVt
LmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj
L3NyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX21lbS5jYyx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS41NgpkaWZmIC11IC1yMS41NiBmaGFuZGxlcl9tZW0u
Y2MKLS0tIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfbWVtLmNjCTE0IEphbiAy
MDEwIDE4OjQ2OjAxIC0wMDAwCTEuNTYKKysrIHdpbnN1cC9jeWd3aW4vZmhh
bmRsZXJfbWVtLmNjCTkgRmViIDIwMTEgMTM6NDc6NTggLTAwMDAKQEAgLTE2
Miw3ICsxNjIsNyBAQAogICByZXR1cm4gdWxlbjsKIH0KIAotdm9pZCBfX3N0
ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJt
ICgzKSkpCiBmaGFuZGxlcl9kZXZfbWVtOjpyZWFkICh2b2lkICpwdHIsIHNp
emVfdCYgdWxlbikKIHsKICAgaWYgKCF1bGVuIHx8IHBvcyA+PSBtZW1fc2l6
ZSkKSW5kZXg6IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcHJvY3N5cy5jYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv
d2luc3VwL2N5Z3dpbi9maGFuZGxlcl9wcm9jc3lzLmNjLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjQKZGlmZiAtdSAtcjEuNCBmaGFuZGxlcl9wcm9jc3lz
LmNjCi0tLSB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Byb2NzeXMuY2MJMiBP
Y3QgMjAxMCAwODo0NDowOCAtMDAwMAkxLjQKKysrIHdpbnN1cC9jeWd3aW4v
ZmhhbmRsZXJfcHJvY3N5cy5jYwk5IEZlYiAyMDExIDEzOjQ3OjU4IC0wMDAw
CkBAIC0zMTUsNyArMzE1LDcgQEAKICAgcmV0dXJuIGZoYW5kbGVyX3ZpcnR1
YWw6OmNsb3NlZGlyIChkaXIpOwogfQogCi12b2lkIF9fc3RkY2FsbAordm9p
ZCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZo
YW5kbGVyX3Byb2NzeXM6OnJlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBsZW4p
CiB7CiAgIE5UU1RBVFVTIHN0YXR1czsKSW5kZXg6IHdpbnN1cC9jeWd3aW4v
ZmhhbmRsZXJfcmFuZG9tLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT
IGZpbGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Jh
bmRvbS5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MApkaWZmIC11IC1y
MS40MCBmaGFuZGxlcl9yYW5kb20uY2MKLS0tIHdpbnN1cC9jeWd3aW4vZmhh
bmRsZXJfcmFuZG9tLmNjCTMwIE9jdCAyMDA5IDEwOjUzOjU0IC0wMDAwCTEu
NDAKKysrIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcmFuZG9tLmNjCTkgRmVi
IDIwMTEgMTM6NDc6NTggLTAwMDAKQEAgLTExMSw3ICsxMTEsNyBAQAogICBy
ZXR1cm4gbGVuOwogfQogCi12b2lkIF9fc3RkY2FsbAordm9pZCBfX3N0ZGNh
bGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5kbGVyX2Rl
dl9yYW5kb206OnJlYWQgKHZvaWQgKnB0ciwgc2l6ZV90JiBsZW4pCiB7CiAg
IGlmICghbGVuKQpJbmRleDogd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9yYXcu
Y2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv
c3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcmF3LmNjLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjcwCmRpZmYgLXUgLXIxLjcwIGZoYW5kbGVyX3Jhdy5j
YwotLS0gd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9yYXcuY2MJMyBKYW4gMjAw
OSAwNToxMjoyMCAtMDAwMAkxLjcwCisrKyB3aW5zdXAvY3lnd2luL2ZoYW5k
bGVyX3Jhdy5jYwk5IEZlYiAyMDExIDEzOjQ3OjU4IC0wMDAwCkBAIC0zMiw3
ICszMiw3IEBACiAgICAgZGVsZXRlIFtdIGRldmJ1ZjsKIH0KIAotaW50IF9f
c3RkY2FsbAoraW50IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFy
bSAoMikpKQogZmhhbmRsZXJfZGV2X3Jhdzo6ZnN0YXQgKHN0cnVjdCBfX3N0
YXQ2NCAqYnVmKQogewogICBkZWJ1Z19wcmludGYgKCJoZXJlIik7CkluZGV4
OiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3NvY2tldC5jYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5
Z3dpbi9maGFuZGxlcl9zb2NrZXQuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDEuMjY2CmRpZmYgLXUgLXIxLjI2NiBmaGFuZGxlcl9zb2NrZXQuY2MKLS0t
IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfc29ja2V0LmNjCTMxIEphbiAyMDEx
IDA4OjUzOjU3IC0wMDAwCTEuMjY2CisrKyB3aW5zdXAvY3lnd2luL2ZoYW5k
bGVyX3NvY2tldC5jYwk5IEZlYiAyMDExIDEzOjQ3OjU5IC0wMDAwCkBAIC03
ODMsNyArNzgzLDcgQEAKICAgcmV0dXJuIC0xOwogfQogCi1pbnQgX19zdGRj
YWxsCitpbnQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgy
KSkpCiBmaGFuZGxlcl9zb2NrZXQ6OmZzdGF0IChzdHJ1Y3QgX19zdGF0NjQg
KmJ1ZikKIHsKICAgaW50IHJlczsKQEAgLTgxMCw3ICs4MTAsNyBAQAogICBy
ZXR1cm4gcmVzOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxs
IF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl9zb2Nr
ZXQ6OmZzdGF0dmZzIChzdHJ1Y3Qgc3RhdHZmcyAqc2ZzKQogewogICBpZiAo
Z2V0X2RldmljZSAoKSA9PSBGSF9VTklYKQpJbmRleDogd2luc3VwL2N5Z3dp
bi9maGFuZGxlcl90dHkuY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdHR5
LmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIxNgpkaWZmIC11IC1yMS4y
MTYgZmhhbmRsZXJfdHR5LmNjCi0tLSB3aW5zdXAvY3lnd2luL2ZoYW5kbGVy
X3R0eS5jYwkyOSBOb3YgMjAxMCAyMDo1MTozOCAtMDAwMAkxLjIxNgorKysg
d2luc3VwL2N5Z3dpbi9maGFuZGxlcl90dHkuY2MJOSBGZWIgMjAxMSAxMzo0
Nzo1OSAtMDAwMApAQCAtNzkwLDcgKzc5MCw3IEBACiAgIHJldHVybiB0b3dy
aXRlOwogfQogCi12b2lkIF9fc3RkY2FsbAordm9pZCBfX3N0ZGNhbGwgX19h
dHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5kbGVyX3R0eV9zbGF2
ZTo6cmVhZCAodm9pZCAqcHRyLCBzaXplX3QmIGxlbikKIHsKICAgaW50IHRv
dGFscmVhZCA9IDA7CkBAIC0xMTgzLDcgKzExODMsNyBAQAogICByZXR1cm4g
cmV0dmFsOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9f
YXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl90dHlfc2xh
dmU6OmZzdGF0IChzdHJ1Y3QgX19zdGF0NjQgKnN0KQogewogICBmaGFuZGxl
cl9iYXNlOjpmc3RhdCAoc3QpOwpAQCAtMTI4OSw3ICsxMjg5LDcgQEAKICAg
Y2xvc2VfbWF5YmUgKGludXNlKTsKIH0KIAotaW50IF9fc3RkY2FsbAoraW50
IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMSkpKQogZmhh
bmRsZXJfdHR5X3NsYXZlOjpmY2htb2QgKG1vZGVfdCBtb2RlKQogewogICBp
bnQgcmV0ID0gLTE7CkBAIC0xMzE1LDcgKzEzMTUsNyBAQAogICByZXR1cm4g
cmV0OwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxsIF9fYXR0
cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBmaGFuZGxlcl90dHlfc2xhdmU6
OmZjaG93biAoX191aWQzMl90IHVpZCwgX19naWQzMl90IGdpZCkKIHsKICAg
aW50IHJldCA9IC0xOwpAQCAtMTQ5Niw3ICsxNDk2LDcgQEAKICAgcmV0dXJu
IGk7CiB9CiAKLXZvaWQgX19zdGRjYWxsCit2b2lkIF9fc3RkY2FsbCBfX2F0
dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogZmhhbmRsZXJfcHR5X21hc3Rl
cjo6cmVhZCAodm9pZCAqcHRyLCBzaXplX3QmIGxlbikKIHsKICAgbGVuID0g
KHNpemVfdCkgcHJvY2Vzc19zbGF2ZV9vdXRwdXQgKChjaGFyICopIHB0ciwg
bGVuLCBwa3Rtb2RlKTsKSW5kZXg6IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJf
dmlydHVhbC5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
Y3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl92aXJ0dWFsLmNj
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUzCmRpZmYgLXUgLXIxLjUzIGZo
YW5kbGVyX3ZpcnR1YWwuY2MKLS0tIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJf
dmlydHVhbC5jYwk2IFNlcCAyMDEwIDA5OjQ3OjAxIC0wMDAwCTEuNTMKKysr
IHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfdmlydHVhbC5jYwk5IEZlYiAyMDEx
IDEzOjQ3OjU5IC0wMDAwCkBAIC0xODEsNyArMTgxLDcgQEAKICAgcmV0dXJu
IDA7CiB9CiAKLXZvaWQgX19zdGRjYWxsCit2b2lkIF9fc3RkY2FsbCBfX2F0
dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogZmhhbmRsZXJfdmlydHVhbDo6
cmVhZCAodm9pZCAqcHRyLCBzaXplX3QmIGxlbikKIHsKICAgaWYgKGxlbiA9
PSAwKQpAQCAtMjY2LDcgKzI2Niw3IEBACiAgIHJldHVybiByZXM7CiB9CiAK
LWludCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAo
KHJlZ3Bhcm0gKDIpKSkKIGZoYW5kbGVyX3ZpcnR1YWw6OmZzdGF0dmZzIChz
dHJ1Y3Qgc3RhdHZmcyAqc2ZzKQogewogICAvKiBWaXJ0dWFsIGZpbGUgc3lz
dGVtLiAgSnVzdCByZXR1cm4gYW4gZW1wdHkgYnVmZmVyIHdpdGggYSBmZXcg
dmFsdWVzCkluZGV4OiB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3dpbmRvd3Mu
Y2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMv
c3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfd2luZG93cy5jYyx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4zMApkaWZmIC11IC1yMS4zMCBmaGFuZGxlcl93
aW5kb3dzLmNjCi0tLSB3aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3dpbmRvd3Mu
Y2MJMjQgSnVsIDIwMDkgMjA6NTQ6MzMgLTAwMDAJMS4zMAorKysgd2luc3Vw
L2N5Z3dpbi9maGFuZGxlcl93aW5kb3dzLmNjCTkgRmViIDIwMTEgMTM6NDc6
NTkgLTAwMDAKQEAgLTc5LDcgKzc5LDcgQEAKICAgICByZXR1cm4gU2VuZE1l
c3NhZ2UgKHB0ci0+aHduZCwgcHRyLT5tZXNzYWdlLCBwdHItPndQYXJhbSwg
cHRyLT5sUGFyYW0pOwogfQogCi12b2lkIF9fc3RkY2FsbAordm9pZCBfX3N0
ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIGZoYW5kbGVy
X3dpbmRvd3M6OnJlYWQgKHZvaWQgKmJ1Ziwgc2l6ZV90JiBsZW4pCiB7CiAg
IE1TRyAqcHRyID0gKE1TRyAqKSBidWY7CkluZGV4OiB3aW5zdXAvY3lnd2lu
L2ZoYW5kbGVyX3plcm8uY2MKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXJfemVy
by5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zMQpkaWZmIC11IC1yMS4z
MSBmaGFuZGxlcl96ZXJvLmNjCi0tLSB3aW5zdXAvY3lnd2luL2ZoYW5kbGVy
X3plcm8uY2MJMjQgSnVsIDIwMDkgMjA6NTQ6MzMgLTAwMDAJMS4zMQorKysg
d2luc3VwL2N5Z3dpbi9maGFuZGxlcl96ZXJvLmNjCTkgRmViIDIwMTEgMTM6
NDc6NTkgLTAwMDAKQEAgLTQxLDcgKzQxLDcgQEAKICAgcmV0dXJuIGxlbjsK
IH0KIAotdm9pZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0cmli
dXRlX18gKChyZWdwYXJtICgzKSkpCiBmaGFuZGxlcl9kZXZfemVybzo6cmVh
ZCAodm9pZCAqcHRyLCBzaXplX3QmIGxlbikKIHsKICAgbWVtc2V0IChwdHIs
IDAsIGxlbik7CkluZGV4OiB3aW5zdXAvY3lnd2luL21pc2NmdW5jcy5jYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMv
d2luc3VwL2N5Z3dpbi9taXNjZnVuY3MuY2MsdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuNTgKZGlmZiAtdSAtcjEuNTggbWlzY2Z1bmNzLmNjCi0tLSB3aW5z
dXAvY3lnd2luL21pc2NmdW5jcy5jYwkxMiBNYXIgMjAxMCAyMzoxMzo0NyAt
MDAwMAkxLjU4CisrKyB3aW5zdXAvY3lnd2luL21pc2NmdW5jcy5jYwk5IEZl
YiAyMDExIDEzOjQ3OjU5IC0wMDAwCkBAIC0xNjksNyArMTY5LDcgQEAKICAg
cmV0dXJuIHN0cmluZzsKIH0KIAotaW50IF9fc3RkY2FsbAoraW50IF9fc3Rk
Y2FsbCBfX2F0dHJpYnV0ZV9fICgocmVncGFybSAoMikpKQogY2hlY2tfaW52
YWxpZF92aXJ0dWFsX2FkZHIgKGNvbnN0IHZvaWQgKnMsIHVuc2lnbmVkIHN6
KQogewogICBNRU1PUllfQkFTSUNfSU5GT1JNQVRJT04gbWJ1ZjsKSW5kZXg6
IHdpbnN1cC9jeWd3aW4vbnRlYS5jYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9udGVhLmNj
LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIzCmRpZmYgLXUgLXIxLjIzIG50
ZWEuY2MKLS0tIHdpbnN1cC9jeWd3aW4vbnRlYS5jYwkxMiBKYW4gMjAxMCAx
MDoxNDo1OSAtMDAwMAkxLjIzCisrKyB3aW5zdXAvY3lnd2luL250ZWEuY2MJ
OSBGZWIgMjAxMSAxMzo0Nzo1OSAtMDAwMApAQCAtMjksNyArMjksNyBAQAog
I2RlZmluZSBORVhUX0ZFQShwKSAoKFBGSUxFX0ZVTExfRUFfSU5GT1JNQVRJ
T04pIChwLT5OZXh0RW50cnlPZmZzZXQgXAogCQkgICAgID8gKGNoYXIgKikg
cCArIHAtPk5leHRFbnRyeU9mZnNldCA6IE5VTEwpKQogCi1zc2l6ZV90IF9f
c3RkY2FsbAorc3NpemVfdCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDMpKSkKIHJlYWRfZWEgKEhBTkRMRSBoZGwsIHBhdGhfY29udiAm
cGMsIGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIgKnZhbHVlLCBzaXplX3Qgc2l6
ZSkKIHsKICAgT0JKRUNUX0FUVFJJQlVURVMgYXR0cjsKQEAgLTE5Nyw3ICsx
OTcsNyBAQAogICByZXR1cm4gcmV0OwogfQogCi1pbnQgX19zdGRjYWxsCitp
bnQgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiB3
cml0ZV9lYSAoSEFORExFIGhkbCwgcGF0aF9jb252ICZwYywgY29uc3QgY2hh
ciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUsCiAJICBzaXplX3Qgc2l6ZSwg
aW50IGZsYWdzKQogewpJbmRleDogd2luc3VwL2N5Z3dpbi9wYXRoLmNjCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93
aW5zdXAvY3lnd2luL3BhdGguY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
NjIyCmRpZmYgLXUgLXIxLjYyMiBwYXRoLmNjCi0tLSB3aW5zdXAvY3lnd2lu
L3BhdGguY2MJMiBGZWIgMjAxMSAwOTo1OToxMCAtMDAwMAkxLjYyMgorKysg
d2luc3VwL2N5Z3dpbi9wYXRoLmNjCTkgRmViIDIwMTEgMTM6NDg6MDAgLTAw
MDAKQEAgLTM1MSw3ICszNTEsNyBAQAogc3RhdGljIHZvaWQgX19zdGRjYWxs
IG1rcmVscGF0aCAoY2hhciAqZHN0LCBib29sIGNhc2VpbnNlbnNpdGl2ZSkK
ICAgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDIpKSk7CiAKLXN0YXRpYyB2
b2lkIF9fc3RkY2FsbAorc3RhdGljIHZvaWQgX19zdGRjYWxsIF9fYXR0cmli
dXRlX18gKChyZWdwYXJtICgyKSkpCiBta3JlbHBhdGggKGNoYXIgKnBhdGgs
IGJvb2wgY2FzZWluc2Vuc2l0aXZlKQogewogICB0bXBfcGF0aGJ1ZiB0cDsK
QEAgLTEzMDYsNyArMTMwNiw3IEBACiAvKiBub2ZpbmFsc2xhc2g6IFJlbW92
ZSB0cmFpbGluZyAvIGFuZCBcIGZyb20gU1JDIChleGNlcHQgZm9yIHRoZQog
ICAgZmlyc3Qgb25lKS4gIEl0IGlzIG9rIGZvciBzcmMgPT0gZHN0LiAgKi8K
IAotdm9pZCBfX3N0ZGNhbGwKK3ZvaWQgX19zdGRjYWxsIF9fYXR0cmlidXRl
X18gKChyZWdwYXJtICgyKSkpCiBub2ZpbmFsc2xhc2ggKGNvbnN0IGNoYXIg
KnNyYywgY2hhciAqZHN0KQogewogICBpbnQgbGVuID0gc3RybGVuIChzcmMp
OwpAQCAtMjc3NCw3ICsyNzc0LDcgQEAKICAgIGRvbmUgZHVyaW5nIHRoZSBv
cGVuZGlyIGNhbGwgYW5kIHRoZSBoYXNoIG9yIHRoZSBmaWxlbmFtZSB3aXRo
aW4KICAgIHRoZSBkaXJlY3RvcnkuICBGSVhNRTogTm90IGJ1bGxldC1wcm9v
Zi4gKi8KIC8qIEN5Z3dpbiBpbnRlcm5hbCAqLwotX19pbm82NF90IF9fc3Rk
Y2FsbAorX19pbm82NF90IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVn
cGFybSAoMikpKQogaGFzaF9wYXRoX25hbWUgKF9faW5vNjRfdCBoYXNoLCBQ
VU5JQ09ERV9TVFJJTkcgbmFtZSkKIHsKICAgaWYgKG5hbWUtPkxlbmd0aCA9
PSAwKQpAQCAtMjc4OCw3ICsyNzg4LDcgQEAKICAgcmV0dXJuIGhhc2g7CiB9
CiAKLV9faW5vNjRfdCBfX3N0ZGNhbGwKK19faW5vNjRfdCBfX3N0ZGNhbGwg
X19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDIpKSkKIGhhc2hfcGF0aF9uYW1l
IChfX2lubzY0X3QgaGFzaCwgUENXU1RSIG5hbWUpCiB7CiAgIFVOSUNPREVf
U1RSSU5HIHVuYW1lOwpAQCAtMjc5Niw3ICsyNzk2LDcgQEAKICAgcmV0dXJu
IGhhc2hfcGF0aF9uYW1lIChoYXNoLCAmdW5hbWUpOwogfQogCi1fX2lubzY0
X3QgX19zdGRjYWxsCitfX2lubzY0X3QgX19zdGRjYWxsIF9fYXR0cmlidXRl
X18gKChyZWdwYXJtICgyKSkpCiBoYXNoX3BhdGhfbmFtZSAoX19pbm82NF90
IGhhc2gsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgIFVOSUNPREVfU1RSSU5H
IHVuYW1lOwpJbmRleDogd2luc3VwL2N5Z3dpbi9waW5mby5jYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3Vw
L2N5Z3dpbi9waW5mby5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yNjYK
ZGlmZiAtdSAtcjEuMjY2IHBpbmZvLmNjCi0tLSB3aW5zdXAvY3lnd2luL3Bp
bmZvLmNjCTEyIERlYyAyMDEwIDA1OjQ4OjI5IC0wMDAwCTEuMjY2CisrKyB3
aW5zdXAvY3lnd2luL3BpbmZvLmNjCTkgRmViIDIwMTEgMTM6NDg6MDAgLTAw
MDAKQEAgLTQyNCw3ICs0MjQsNyBAQAogCiAvKiBUZXN0IHRvIGRldGVybWlu
ZSBpZiBhIHByb2Nlc3MgcmVhbGx5IGV4aXN0cyBhbmQgaXMgcHJvY2Vzc2lu
ZyBzaWduYWxzLgogICovCi1ib29sIF9fc3RkY2FsbAorYm9vbCBfX3N0ZGNh
bGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDEpKSkKIF9waW5mbzo6ZXhp
c3RzICgpCiB7CiAgIHJldHVybiB0aGlzICYmICEocHJvY2Vzc19zdGF0ZSAm
IFBJRF9FWElURUQpOwpJbmRleDogd2luc3VwL2N5Z3dpbi9waXBlLmNjCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93
aW5zdXAvY3lnd2luL3BpcGUuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTI1CmRpZmYgLXUgLXIxLjEyNSBwaXBlLmNjCi0tLSB3aW5zdXAvY3lnd2lu
L3BpcGUuY2MJMTQgQXVnIDIwMTAgMTE6MTY6MDkgLTAwMDAJMS4xMjUKKysr
IHdpbnN1cC9jeWd3aW4vcGlwZS5jYwk5IEZlYiAyMDExIDEzOjQ4OjAwIC0w
MDAwCkBAIC0zNjYsNyArMzY2LDcgQEAKICAgcmV0dXJuIDA7CiB9CiAKLWlu
dCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDIpKSkKIGZoYW5kbGVyX3BpcGU6OmZzdGF0dmZzIChzdHJ1Y3Qg
c3RhdHZmcyAqc2ZzKQogewogICBzZXRfZXJybm8gKEVCQURGKTsKSW5kZXg6
IHdpbnN1cC9jeWd3aW4vc2VjX2hlbHBlci5jYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvd2luc3VwL2N5Z3dpbi9z
ZWNfaGVscGVyLmNjLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg4CmRpZmYg
LXUgLXIxLjg4IHNlY19oZWxwZXIuY2MKLS0tIHdpbnN1cC9jeWd3aW4vc2Vj
X2hlbHBlci5jYwkxNyBBcHIgMjAxMCAxNTo1MTowOSAtMDAwMAkxLjg4Cisr
KyB3aW5zdXAvY3lnd2luL3NlY19oZWxwZXIuY2MJOSBGZWIgMjAxMSAxMzo0
ODowMCAtMDAwMApAQCAtNTE5LDcgKzUxOSw3IEBACiAgIHJldHVybiB0cnVl
OwogfQogCi1QU0VDVVJJVFlfQVRUUklCVVRFUyBfX3N0ZGNhbGwKK1BTRUNV
UklUWV9BVFRSSUJVVEVTIF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVn
cGFybSAoMykpKQogX19zZWNfdXNlciAoUFZPSUQgc2FfYnVmLCBQU0lEIHNp
ZDEsIFBTSUQgc2lkMiwgRFdPUkQgYWNjZXNzMiwgQk9PTCBpbmhlcml0KQog
ewogICBQU0VDVVJJVFlfQVRUUklCVVRFUyBwc2EgPSAoUFNFQ1VSSVRZX0FU
VFJJQlVURVMpIHNhX2J1ZjsKSW5kZXg6IHdpbnN1cC9jeWd3aW4vc2lnbmFs
LmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj
L3NyYy93aW5zdXAvY3lnd2luL3NpZ25hbC5jYyx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS45MQpkaWZmIC11IC1yMS45MSBzaWduYWwuY2MKLS0tIHdpbnN1
cC9jeWd3aW4vc2lnbmFsLmNjCTIwIFNlcCAyMDEwIDIyOjI4OjU3IC0wMDAw
CTEuOTEKKysrIHdpbnN1cC9jeWd3aW4vc2lnbmFsLmNjCTkgRmViIDIwMTEg
MTM6NDg6MDAgLTAwMDAKQEAgLTE3Nyw3ICsxNzcsNyBAQAogICByZXR1cm4g
aGFuZGxlX3NpZ3Byb2NtYXNrIChob3csIHNldCwgb2xkc2V0LCBfbXlfdGxz
LnNpZ21hc2spOwogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19zdGRjYWxs
IF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiBoYW5kbGVfc2lncHJv
Y21hc2sgKGludCBob3csIGNvbnN0IHNpZ3NldF90ICpzZXQsIHNpZ3NldF90
ICpvbGRzZXQsIHNpZ3NldF90JiBvcG1hc2spCiB7CiAgIC8qIGNoZWNrIHRo
YXQgaG93IGlzIGluIHJpZ2h0IHJhbmdlICovCkBAIC0yMTgsNyArMjE4LDcg
QEAKICAgcmV0dXJuIDA7CiB9CiAKLWludCBfX3N0ZGNhbGwKK2ludCBfX3N0
ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDIpKSkKIF9waW5mbzo6
a2lsbCAoc2lnaW5mb190JiBzaSkKIHsKICAgc2lnX2Rpc3BhdGNoX3BlbmRp
bmcgKCk7CkluZGV4OiB3aW5zdXAvY3lnd2luL3NpZ3Byb2MuY2MKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1
cC9jeWd3aW4vc2lncHJvYy5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4z
MzEKZGlmZiAtdSAtcjEuMzMxIHNpZ3Byb2MuY2MKLS0tIHdpbnN1cC9jeWd3
aW4vc2lncHJvYy5jYwkxMiBTZXAgMjAxMCAxOToxMzowOSAtMDAwMAkxLjMz
MQorKysgd2luc3VwL2N5Z3dpbi9zaWdwcm9jLmNjCTkgRmViIDIwMTEgMTM6
NDg6MDEgLTAwMDAKQEAgLTE2OCw3ICsxNjgsNyBAQAogICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgX19zdGRjYWxsCitib29sIF9fc3RkY2FsbCBfX2F0
dHJpYnV0ZV9fICgocmVncGFybSAoMSkpKQogcGlkX2V4aXN0cyAocGlkX3Qg
cGlkKQogewogICByZXR1cm4gcGluZm8gKHBpZCktPmV4aXN0cyAoKTsKQEAg
LTE4Niw3ICsxODYsNyBAQAogCiAvKiBIYW5kbGUgYWxsIHN1YnByb2Nlc3Mg
cmVxdWVzdHMKICAqLwotaW50IF9fc3RkY2FsbAoraW50IF9fc3RkY2FsbCBf
X2F0dHJpYnV0ZV9fICgocmVncGFybSAoMikpKQogcHJvY19zdWJwcm9jIChE
V09SRCB3aGF0LCBEV09SRCB2YWwpCiB7CiAgIGludCByYyA9IDE7CkBAIC0z
OTAsNyArMzkwLDcgQEAKIH0KIAogLyogQ2xlYXIgcGVuZGluZyBzaWduYWwg
Ki8KLXZvaWQgX19zdGRjYWxsCit2b2lkIF9fc3RkY2FsbCBfX2F0dHJpYnV0
ZV9fICgocmVncGFybSAoMSkpKQogc2lnX2NsZWFyIChpbnQgdGFyZ2V0X3Np
ZykKIHsKICAgaWYgKCZfbXlfdGxzICE9IF9zaWdfdGxzKQpAQCAtNDg2LDcg
KzQ4Niw3IEBACiAgICAgfQogfQogCi1pbnQgX19zdGRjYWxsCitpbnQgX19z
dGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgyKSkpCiBzaWdfc2Vu
ZCAoX3BpbmZvICpwLCBpbnQgc2lnKQogewogICBpZiAoc2lnID09IF9fU0lH
SE9MRCkKQEAgLTUxOCw3ICs1MTgsNyBAQAogICAgSWYgcGluZm8gKnAgPT0g
TlVMTCwgc2VuZCB0byB0aGUgY3VycmVudCBwcm9jZXNzLgogICAgSWYgc2Vu
ZGluZyB0byB0aGlzIHByb2Nlc3MsIHdhaXQgZm9yIG5vdGlmaWNhdGlvbiB0
aGF0IGEgc2lnbmFsIGhhcwogICAgY29tcGxldGVkIGJlZm9yZSByZXR1cm5p
bmcuICAqLwotaW50IF9fc3RkY2FsbAoraW50IF9fc3RkY2FsbCBfX2F0dHJp
YnV0ZV9fICgocmVncGFybSAoMykpKQogc2lnX3NlbmQgKF9waW5mbyAqcCwg
c2lnaW5mb190JiBzaSwgX2N5Z3RscyAqdGxzKQogewogICBpbnQgcmMgPSAx
OwpAQCAtOTQwLDcgKzk0MCw3IEBACiAvKiBDaGVjayB0aGUgc3RhdGUgb2Yg
YWxsIG9mIG91ciBjaGlsZHJlbiB0byBzZWUgaWYgYW55IGFyZSBzdG9wcGVk
IG9yCiAgKiB0ZXJtaW5hdGVkLgogICovCi1zdGF0aWMgaW50IF9fc3RkY2Fs
bAorc3RhdGljIGludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bh
cm0gKDEpKSkKIGNoZWNrc3RhdGUgKHdhaXRxICpwYXJlbnRfdykKIHsKICAg
aW50IHBvdGVudGlhbF9tYXRjaCA9IDA7CkluZGV4OiB3aW5zdXAvY3lnd2lu
L3NwYXduLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL3NwYXduLmNjLHYKcmV0cmlldmlu
ZyByZXZpc2lvbiAxLjI5OQpkaWZmIC11IC1yMS4yOTkgc3Bhd24uY2MKLS0t
IHdpbnN1cC9jeWd3aW4vc3Bhd24uY2MJMjAgSmFuIDIwMTEgMTE6MDk6MjEg
LTAwMDAJMS4yOTkKKysrIHdpbnN1cC9jeWd3aW4vc3Bhd24uY2MJOSBGZWIg
MjAxMSAxMzo0ODowMSAtMDAwMApAQCAtMTAxLDcgKzEwMSw3IEBACiAgICBv
ZiBuYW1lIGlzIHBsYWNlZCBpbiBidWYgYW5kIHJldHVybmVkLiAgT3RoZXJ3
aXNlIHRoZSBjb250ZW50cyBvZiBidWYKICAgIGlzIHVuZGVmaW5lZCBhbmQg
TlVMTCBpcyByZXR1cm5lZC4gICovCiAKLWNvbnN0IGNoYXIgKiBfX3N0ZGNh
bGwKK2NvbnN0IGNoYXIgKiBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDMpKSkKIGZpbmRfZXhlYyAoY29uc3QgY2hhciAqbmFtZSwgcGF0
aF9jb252JiBidWYsIGNvbnN0IGNoYXIgKm15d2luZW52LAogCSAgIHVuc2ln
bmVkIG9wdCwgY29uc3QgY2hhciAqKmtub3duX3N1ZmZpeCkKIHsKSW5kZXg6
IHdpbnN1cC9jeWd3aW4vc3RyZnVuY3MuY2MKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9zcmMvc3JjL3dpbnN1cC9jeWd3aW4vc3Ry
ZnVuY3MuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDUKZGlmZiAtdSAt
cjEuNDUgc3RyZnVuY3MuY2MKLS0tIHdpbnN1cC9jeWd3aW4vc3RyZnVuY3Mu
Y2MJMTkgSmFuIDIwMTEgMDk6NDE6NTQgLTAwMDAJMS40NQorKysgd2luc3Vw
L2N5Z3dpbi9zdHJmdW5jcy5jYwk5IEZlYiAyMDExIDEzOjQ4OjAxIC0wMDAw
CkBAIC0zOTUsNyArMzk1LDcgQEAKICAgIC0gVGhlIGZ1bmN0aW9ucyBhbHdh
eXMgY3JlYXRlIDAtdGVybWluYXRlZCByZXN1bHRzLCBubyBtYXR0ZXIgd2hh
dC4KICAgICAgSWYgdGhlIHJlc3VsdCBpcyB0cnVuY2F0ZWQgZHVlIHRvIGJ1
ZmZlciBzaXplLCBpdCdzIGEgYnVnIGluIEN5Z3dpbgogICAgICBhbmQgdGhl
IGJ1ZmZlciBpbiB0aGUgY2FsbGluZyBmdW5jdGlvbiBzaG91bGQgYmUgcmFp
c2VkLiAqLwotc2l6ZV90IF9fc3RkY2FsbAorc2l6ZV90IF9fc3RkY2FsbCBf
X2F0dHJpYnV0ZV9fICgocmVncGFybSAoMykpKQogc3lzX2NwX3djc3RvbWJz
ICh3Y3RvbWJfcCBmX3djdG9tYiwgY29uc3QgY2hhciAqY2hhcnNldCwgY2hh
ciAqZHN0LCBzaXplX3QgbGVuLAogCQkgY29uc3Qgd2NoYXJfdCAqc3JjLCBz
aXplX3QgbndjKQogewpAQCAtNDgxLDcgKzQ4MSw3IEBACiAgIHJldHVybiBu
OwogfQogCi1zaXplX3QgX19zdGRjYWxsCitzaXplX3QgX19zdGRjYWxsIF9f
YXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiBzeXNfd2NzdG9tYnMgKGNo
YXIgKmRzdCwgc2l6ZV90IGxlbiwgY29uc3Qgd2NoYXJfdCAqIHNyYywgc2l6
ZV90IG53YykKIHsKICAgcmV0dXJuIHN5c19jcF93Y3N0b21icyAoY3lnaGVh
cC0+bG9jYWxlLndjdG9tYiwgY3lnaGVhcC0+bG9jYWxlLmNoYXJzZXQsCkBA
IC00OTgsNyArNDk4LDcgQEAKICAgIE5vdGUgdGhhdCB0aGlzIGNvZGUgaXMg
c2hhcmVkIGJ5IGN5Z3NlcnZlciAod2hpY2ggcmVxdWlyZXMgaXQgdmlhCiAg
ICBfX3NtYWxsX3ZzcHJpbnRmKSBhbmQgc28gd2hlbiBidWlsdCB0aGVyZSBw
bGFpbiBjYWxsb2MgaXMgdGhlCiAgICBvbmx5IGNob2ljZS4gICovCi1zaXpl
X3QgX19zdGRjYWxsCitzaXplX3QgX19zdGRjYWxsIF9fYXR0cmlidXRlX18g
KChyZWdwYXJtICgzKSkpCiBzeXNfd2NzdG9tYnNfYWxsb2MgKGNoYXIgKipk
c3RfcCwgaW50IHR5cGUsIGNvbnN0IHdjaGFyX3QgKnNyYywgc2l6ZV90IG53
YykKIHsKICAgc2l6ZV90IHJldDsKQEAgLTUyNCw3ICs1MjQsNyBAQAogICAg
Y29udmVyc2lvbi4gIFRoaXMgaXMgc28gdGhhdCBmaGFuZGxlcl9jb25zb2xl
IGNhbiBzd2l0Y2ggdG8gYW4gYWx0ZXJuYXRlCiAgICBjaGFyc2V0LCB3aGlj
aCBpcyB0aGUgY2hhcnNldCByZXR1cm5lZCBieSBHZXRDb25zb2xlQ1AgKCku
ICBNb3N0IG9mIHRoZQogICAgdGltZSB0aGlzIGlzIHVzZWQgZm9yIGJveCBh
bmQgbGluZSBkcmF3aW5nIGNoYXJhY3RlcnMuICovCi1zaXplX3QgX19zdGRj
YWxsCitzaXplX3QgX19zdGRjYWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJt
ICgzKSkpCiBzeXNfY3BfbWJzdG93Y3MgKG1idG93Y19wIGZfbWJ0b3djLCBj
b25zdCBjaGFyICpjaGFyc2V0LCB3Y2hhcl90ICpkc3QsCiAJCSBzaXplX3Qg
ZGxlbiwgY29uc3QgY2hhciAqc3JjLCBzaXplX3Qgbm1zKQogewpAQCAtNjMz
LDcgKzYzMyw3IEBACiAgIHJldHVybiBjb3VudDsKIH0KIAotc2l6ZV90IF9f
c3RkY2FsbAorc2l6ZV90IF9fc3RkY2FsbCBfX2F0dHJpYnV0ZV9fICgocmVn
cGFybSAoMykpKQogc3lzX21ic3Rvd2NzICh3Y2hhcl90ICogZHN0LCBzaXpl
X3QgZGxlbiwgY29uc3QgY2hhciAqc3JjLCBzaXplX3Qgbm1zKQogewogICBy
ZXR1cm4gc3lzX2NwX21ic3Rvd2NzIChjeWdoZWFwLT5sb2NhbGUubWJ0b3dj
LCBjeWdoZWFwLT5sb2NhbGUuY2hhcnNldCwKQEAgLTY0MSw3ICs2NDEsNyBA
QAogfQogCiAvKiBTYW1lIGFzIHN5c193Y3N0b21ic19hbGxvYywganVzdCBi
YWNrd2FyZHMuICovCi1zaXplX3QgX19zdGRjYWxsCitzaXplX3QgX19zdGRj
YWxsIF9fYXR0cmlidXRlX18gKChyZWdwYXJtICgzKSkpCiBzeXNfbWJzdG93
Y3NfYWxsb2MgKHdjaGFyX3QgKipkc3RfcCwgaW50IHR5cGUsIGNvbnN0IGNo
YXIgKnNyYywgc2l6ZV90IG5tcykKIHsKICAgc2l6ZV90IHJldDsKSW5kZXg6
IHdpbnN1cC9jeWd3aW4vd2luZG93LmNjCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy93aW5zdXAvY3lnd2luL3dpbmRv
dy5jYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4zOQpkaWZmIC11IC1yMS4z
OSB3aW5kb3cuY2MKLS0tIHdpbnN1cC9jeWd3aW4vd2luZG93LmNjCTEgU2Vw
IDIwMTAgMTg6MjQ6MTEgLTAwMDAJMS4zOQorKysgd2luc3VwL2N5Z3dpbi93
aW5kb3cuY2MJOSBGZWIgMjAxMSAxMzo0ODowMSAtMDAwMApAQCAtMjUsNyAr
MjUsNyBAQAogCiBtdXRvIE5PX0NPUFkgd2luaW5mbzo6X2xvY2s7CiAKLWlu
dCBfX3N0ZGNhbGwKK2ludCBfX3N0ZGNhbGwgX19hdHRyaWJ1dGVfXyAoKHJl
Z3Bhcm0gKDMpKSkKIHdpbmluZm86OnByb2Nlc3MgKEhXTkQgaHduZCwgVUlO
VCB1TXNnLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewogI2lm
bmRlZiBOT1NUUkFDRQpAQCAtNDksMTQgKzQ5LDE0IEBACiAgICAgfQogfQog
Ci1zdGF0aWMgTFJFU1VMVCBDQUxMQkFDSworc3RhdGljIExSRVNVTFQgQ0FM
TEJBQ0sgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDMpKSkKIHByb2Nlc3Nf
d2luZG93X2V2ZW50cyAoSFdORCBod25kLCBVSU5UIHVNc2csIFdQQVJBTSB3
UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7CiAgIHJldHVybiB3aW5tc2cucHJv
Y2VzcyAoaHduZCwgdU1zZywgd1BhcmFtLCBsUGFyYW0pOwogfQogCiAvKiBI
YW5kbGUgd2luZG93cyBldmVudHMuICBJbmhlcml0cyBvd25lcnNoaXAgb2Yg
dGhlIHdpbmluZm8gbG9jayAqLwotRFdPUkQgV0lOQVBJCitEV09SRCBXSU5B
UEkgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0gKDEpKSkKIHdpbmluZm86Ondp
bnRocmVhZCAoKQogewogICBNU0cgbXNnOwo=


--------------070903060805030109020902
Content-Type: text/plain; charset=us-ascii

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
--------------070903060805030109020902--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019