From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Newsgroups: gmane.emacs.bugs Subject: bug#41615: [feature/native-comp] Dump prettier C code. Date: Sat, 30 May 2020 19:20:13 -0300 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000db63be05a6e4f73e" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="117323"; mail-complaints-to="usenet@ciao.gmane.io" To: 41615@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun May 31 00:21:12 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jf9qq-000UUY-JE for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 31 May 2020 00:21:12 +0200 Original-Received: from localhost ([::1]:45712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jf9qp-0004Ip-J7 for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 30 May 2020 18:21:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:44432) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jf9qg-0004HA-Rx for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 18:21:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:47815) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jf9qg-0007NZ-JH for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 18:21:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jf9qg-0004MN-Fo for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 18:21:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 30 May 2020 22:21:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs Original-Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159087723216694 (code B ref 41615); Sat, 30 May 2020 22:21:02 +0000 Original-Received: (at 41615) by debbugs.gnu.org; 30 May 2020 22:20:32 +0000 Original-Received: from localhost ([127.0.0.1]:59361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf9qB-0004LC-Ou for submit@debbugs.gnu.org; Sat, 30 May 2020 18:20:31 -0400 Original-Received: from mail-oi1-f177.google.com ([209.85.167.177]:38391) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf9qA-0004Kz-Jd for 41615@debbugs.gnu.org; Sat, 30 May 2020 18:20:31 -0400 Original-Received: by mail-oi1-f177.google.com with SMTP id c194so1097978oig.5 for <41615@debbugs.gnu.org>; Sat, 30 May 2020 15:20:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=XOSs+XzUWC/iPb4CywZsl9XSTBatILJDNz+y/FoqkwI=; b=Tr5GHcMLxm5FQxG+6lRM7w+PxzdlHUksfNpJOPmBspfxfmQ+WrzXgFY1f6MLPz4Zvk ZPS8AQPY0+WnDrVY8ZSNFjlLqy8aER1eUlR/tLha0fOBQZqjuuPk4hOBQuTluJc3T+SS DUTSONWHamD/W70weouF6IOVPUCj2zgeKhICz+LQTKLFRXWxHwFbeTH0PHbEqkR3iCFg C1s48IMQGk/gCDB6zrUomu6cXZoMja85mm9YizqRAUqUUu4gUGsH6KEC1MYvL22+kJKF TpOX8FSiOtJ1Lu5CitKh8125hlGUBF5N+YrtKjA6I1BuzZMvRpJ69bKo/5ttOxih43Wz bedA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=XOSs+XzUWC/iPb4CywZsl9XSTBatILJDNz+y/FoqkwI=; b=HGomt+YdHppbyU3akr7jIC8SLAzOM0VqckKtiT97vtvXSxE/OKSBV8ixs3tOFv/j1q P3heEyKfmxs/wC3ysrXkubFx0znk7ynXXj3AG3bqqv7+LKx7ST8pgbIh+LtMH25ulC2s kS/FTPqTHQjjz27F23k2W3vBIxJTgIlmDefT2sbCCVBsLBWqi/dTG8gZL29jZ3uWmFUT KXPoQ6VAJlv0y602NAXabzZpIFtbcOG+8Q2148IqSEJHnqOANWXCSxreMHIfuAJRBDha TCyd0WrELBtN5w318g7YiOBlRXCYethvOfdhKkvlaHSynqJ5SdI1HAKQMgNhNRdGTlvy xLAw== X-Gm-Message-State: AOAM531OTRYTDo/kqbNG2jDNp8YO/0ierAcHVa/C7chcDX84KFU5Z97n IY0dfn5pF1qHd2V4WOQflh1wVGhQXPpzJKbH/z8ctGUV X-Google-Smtp-Source: ABdhPJxq0+Bk1h4qYzpVMr9UU6cQTkux9WqeQpfg8B53YAF4vd3zmY4Umqy+o4907SOg6+L82ou3TIkP8Fi9boUefvk= X-Received: by 2002:aca:e104:: with SMTP id y4mr9763179oig.120.1590877224648; Sat, 30 May 2020 15:20:24 -0700 (PDT) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:181266 Archived-At: --000000000000db63be05a6e4f73e Content-Type: text/plain; charset="UTF-8" I have reformatted the patches. Sorry for the inconveniences. --000000000000db63be05a6e4f73e Content-Type: application/octet-stream; name="0002-Define-casts-using-functions.patch" Content-Disposition: attachment; filename="0002-Define-casts-using-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kau77qo90 RnJvbSBlZjdiOWI5NWNmZjY4MjRhZjA0MWE3NTM2NTg4MzM0YWVlZDFlZTEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAzMCBNYXkgMjAyMCAxODoz Mzo1OCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBEZWZpbmUgY2FzdHMgdXNpbmcgZnVuY3Rp b25zLgoKVGhpcyBpcyB0byBkdW1wIHByZXR0aWVyIEMgZmlsZXMuClRoaXMgZG9lcyBub3QgYWZm ZWN0IGNvbXBpbGF0aW9uIHRpbWVzIGluIG15IHRlc3RzLgoKKiBzcmMvY29tcC5jOiBEZWZpbmUg YSAxNXgxNSBjYXN0IG1hdHJpeC4gVXNlIGl0IGluIGVtaXRfY29lcmNlKCkuCi0tLQogc3JjL2Nv bXAuYyB8IDI3OSArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAxNzMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggMmY3ODc2MDc2 NC4uOWQ4NDQ1ZGU5YSAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBA IC00NTUsNiArNDU1LDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKIAogc3RhdGlj IGZfcmVsb2NfdCBmcmVsb2M7CiAKKyNkZWZpbmUgTlVNX0NBU1RfVFlQRVMgMTUKKwogLyogQyBz aWRlIG9mIHRoZSBjb21waWxlciBjb250ZXh0LiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAt NTEzLDIxICs1MTUsOSBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICAvKiBsaWJn Y2NqaXQgaGFzIHJlYWxseSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRo aXMgdW5pb24gd2lsbAogICAgICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nfaml0 X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19s bDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bGw7Ci0gIGdjY19qaXRfZmllbGQg KmNhc3RfdW5pb25fYXNfbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bDsKLSAg Z2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191OwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3Vu aW9uX2FzX2k7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfYjsKLSAgZ2NjX2ppdF9m aWVsZCAqY2FzdF91bmlvbl9hc191aW50cHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9u X2FzX3B0cmRpZmY7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfY19wOwotICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX3ZfcDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlv bl9hc19saXNwX2NvbnNfcHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bf d29yZDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnOwotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKKyAgZ2NjX2ppdF9mdW5j dGlvbiAqY2FzdF9mdW5jdGlvbnNfZnJvbV90b1tOVU1fQ0FTVF9UWVBFU11bTlVNX0NBU1RfVFlQ RVNdOworICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVNdOworICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tOVU1fQ0FTVF9UWVBFU107CiAgIGdjY19qaXRf ZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQuICAqLwog ICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBjb21wLWZ1bmMgaGFzLW5vbi1sb2Nh bCBzbG90LiAgKi8KICAgZ2NjX2ppdF9sdmFsdWUgKipmX2ZyYW1lOyAvKiAiRmxvYXRpbmciIGZy YW1lIGZvciB0aGUgY3VycmVudCBmdW5jdGlvbi4gICovCkBAIC02ODUsNDcgKzY3NSw2IEBAIGJj YWxsMCAoTGlzcF9PYmplY3QgZikKICAgRmZ1bmNhbGwgKDEsICZmKTsKIH0KIAotc3RhdGljIGdj Y19qaXRfZmllbGQgKgotdHlwZV90b19jYXN0X2ZpZWxkIChnY2Nfaml0X3R5cGUgKnR5cGUpCi17 Ci0gIGdjY19qaXRfZmllbGQgKmZpZWxkOwotCi0gIGlmICh0eXBlID09IGNvbXAubG9uZ19sb25n X3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGw7Ci0gIGVsc2UgaWYgKHR5 cGUgPT0gY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2Fz dF91bmlvbl9hc191bGw7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5sb25nX3R5cGUpCi0gICAg ZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbDsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLnVu c2lnbmVkX2xvbmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc191bDsKLSAg ZWxzZSBpZiAodHlwZSA9PSBjb21wLnVuc2lnbmVkX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNh c3RfdW5pb25fYXNfdTsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLmludF90eXBlKQotICAgIGZp ZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX2k7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5ib29s X3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfYjsKLSAgZWxzZSBpZiAodHlw ZSA9PSBjb21wLnZvaWRfcHRyX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNf dl9wOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAudWludHB0cl90eXBlKQotICAgIGZpZWxkID0g Y29tcC5jYXN0X3VuaW9uX2FzX3VpbnRwdHI7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5wdHJk aWZmX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfcHRyZGlmZjsKLSAgZWxz ZSBpZiAodHlwZSA9PSBjb21wLmNoYXJfcHRyX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3Rf dW5pb25fYXNfY19wOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF9jb25zX3B0cl90eXBl KQotICAgIGZpZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX2xpc3BfY29uc19wdHI7Ci0gIGVsc2Ug aWYgKHR5cGUgPT0gY29tcC5saXNwX3dvcmRfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91 bmlvbl9hc19saXNwX3dvcmQ7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5saXNwX3dvcmRfdGFn X3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkX3RhZzsKLSAg ZWxzZSBpZiAodHlwZSA9PSBjb21wLmxpc3Bfb2JqX3B0cl90eXBlKQotICAgIGZpZWxkID0gY29t cC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKLSAgZWxzZQotICAgIHhzaWduYWwxIChRbmF0 aXZlX2ljZSwgYnVpbGRfc3RyaW5nICgidW5zdXBwb3J0ZWQgY2FzdCIpKTsKLQotICByZXR1cm4g ZmllbGQ7Ci19Ci0KIHN0YXRpYyBnY2Nfaml0X2Jsb2NrICoKIHJldHJpdmVfYmxvY2sgKExpc3Bf T2JqZWN0IGJsb2NrX25hbWUpCiB7CkBAIC05ODYsMTEgKzkzNSwxOSBAQCBlbWl0X2NvbmRfanVt cCAoZ2NjX2ppdF9ydmFsdWUgKnRlc3QsCiAKIH0KIAorc3RhdGljIGludAordHlwZV90b19jYXN0 X2luZGV4IChnY2Nfaml0X3R5cGUgKiB0eXBlKQoreworICBmb3IgKGludCBpID0gMDsgaSA8IE5V TV9DQVNUX1RZUEVTOyArK2kpCisgICAgaWYgKHR5cGUgPT0gY29tcC5jYXN0X3R5cGVzW2ldKQor ICAgICAgcmV0dXJuIGk7CisKKyAgeHNpZ25hbDEgKFFuYXRpdmVfaWNlLCBidWlsZF9zdHJpbmcg KCJ1bnN1cHBvcnRlZCBjYXN0IikpOworfQorCiBzdGF0aWMgZ2NjX2ppdF9ydmFsdWUgKgogZW1p dF9jb2VyY2UgKGdjY19qaXRfdHlwZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiB7 Ci0gIHN0YXRpYyBwdHJkaWZmX3QgaTsKLQogICBnY2Nfaml0X3R5cGUgKm9sZF90eXBlID0gZ2Nj X2ppdF9ydmFsdWVfZ2V0X3R5cGUgKG9iaik7CiAKICAgaWYgKG5ld190eXBlID09IG9sZF90eXBl KQpAQCAtMTAyMiwyNSArOTc5LDE0IEBAIGVtaXRfY29lcmNlIChnY2Nfaml0X3R5cGUgKm5ld190 eXBlLCBnY2Nfaml0X3J2YWx1ZSAqb2JqKQogICAgIH0KICNlbmRpZgogCi0gIGdjY19qaXRfZmll bGQgKm9yaWdfZmllbGQgPQotICAgIHR5cGVfdG9fY2FzdF9maWVsZCAob2xkX3R5cGUpOwotICBn Y2Nfaml0X2ZpZWxkICpkZXN0X2ZpZWxkID0gdHlwZV90b19jYXN0X2ZpZWxkIChuZXdfdHlwZSk7 Ci0KLSAgZ2NjX2ppdF9sdmFsdWUgKnRtcF91ID0KLSAgICBnY2Nfaml0X2Z1bmN0aW9uX25ld19s b2NhbCAoY29tcC5mdW5jLAotCQkJCU5VTEwsCi0JCQkJY29tcC5jYXN0X3VuaW9uX3R5cGUsCi0J CQkJZm9ybWF0X3N0cmluZyAoInVuaW9uX2Nhc3RfJXRkIiwgaSsrKSk7Ci0gIGdjY19qaXRfYmxv Y2tfYWRkX2Fzc2lnbm1lbnQgKGNvbXAuYmxvY2ssCi0JCQkJTlVMTCwKLQkJCQlnY2Nfaml0X2x2 YWx1ZV9hY2Nlc3NfZmllbGQgKHRtcF91LAotCQkJCQkJCSAgICAgTlVMTCwKLQkJCQkJCQkgICAg IG9yaWdfZmllbGQpLAotCQkJCW9iaik7CisgIGludCBvbGRfaW5kZXggPSB0eXBlX3RvX2Nhc3Rf aW5kZXggKG9sZF90eXBlKTsKKyAgaW50IG5ld19pbmRleCA9IHR5cGVfdG9fY2FzdF9pbmRleCAo bmV3X3R5cGUpOwogCi0gIHJldHVybiBnY2Nfaml0X3J2YWx1ZV9hY2Nlc3NfZmllbGQgKCBnY2Nf aml0X2x2YWx1ZV9hc19ydmFsdWUgKHRtcF91KSwKLQkJCQkgICAgICAgTlVMTCwKLQkJCQkgICAg ICAgZGVzdF9maWVsZCk7CisgIC8qIExvb2t1cCB0aGUgYXBwcm9wcmlhdGUgY2FzdCBmdW5jdGlv biBpbiB0aGUgY2FzdCBtYXRyaXguICAqLworICByZXR1cm4gZ2NjX2ppdF9jb250ZXh0X25ld19j YWxsIChjb21wLmN0eHQsCisgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgIGNvbXAuY2FzdF9m dW5jdGlvbnNfZnJvbV90b1tvbGRfaW5kZXhdW25ld19pbmRleF0sCisgICAgICAgICAgIDEsICZv YmopOwogfQogCiBzdGF0aWMgZ2NjX2ppdF9ydmFsdWUgKgpAQCAtMzEyMywxMDkgKzMwNjksOTYg QEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZvaWQpCiAgICAgZ2NjX2ppdF90eXBlX2dl dF9wb2ludGVyIChnY2Nfaml0X3N0cnVjdF9hc190eXBlIChjb21wLnRocmVhZF9zdGF0ZV9zKSk7 CiB9CiAKLXN0YXRpYyB2b2lkCi1kZWZpbmVfY2FzdF91bmlvbiAodm9pZCkKK3N0cnVjdCBjYXN0 X3R5cGUKIHsKKyAgZ2NjX2ppdF90eXBlICp0eXBlOworICBjb25zdCBjaGFyICpuYW1lOworfTsK IAotICBjb21wLmNhc3RfdW5pb25fYXNfbGwgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmll bGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAubG9uZ19sb25n X3R5cGUsCi0JCQkgICAgICAgImxsIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc191bGwgPQotICAg IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAot CQkJICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsCi0JCQkgICAgICAgInVsbCIp OwotICBjb21wLmNhc3RfdW5pb25fYXNfbCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVs ZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5sb25nX3R5cGUs Ci0JCQkgICAgICAgImwiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX3VsID0KLSAgICBnY2Nfaml0 X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAg ICBjb21wLnVuc2lnbmVkX2xvbmdfdHlwZSwKLQkJCSAgICAgICAidWwiKTsKLSAgY29tcC5jYXN0 X3VuaW9uX2FzX3UgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwK LQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAudW5zaWduZWRfdHlwZSwKLQkJCSAgICAg ICAidSIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfaSA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25l d19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5pbnRf dHlwZSwKLQkJCSAgICAgICAiaSIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfYiA9Ci0gICAgZ2Nj X2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkg ICAgICAgY29tcC5ib29sX3R5cGUsCi0JCQkgICAgICAgImIiKTsKLSAgY29tcC5jYXN0X3VuaW9u X2FzX3VpbnRwdHIgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwK LQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAudWludHB0cl90eXBlLAotCQkJICAgICAg ICJ1aW50cHRyIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19wdHJkaWZmID0KLSAgICBnY2Nfaml0 X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAg ICBjb21wLnB0cmRpZmZfdHlwZSwKLQkJCSAgICAgICAicHRyZGlmZiIpOwotICBjb21wLmNhc3Rf dW5pb25fYXNfY19wID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQs Ci0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmNoYXJfcHRyX3R5cGUsCi0JCQkgICAg ICAgImNfcCIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfdl9wID0KLSAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21w LnZvaWRfcHRyX3R5cGUsCi0JCQkgICAgICAgInZfcCIpOwotICBjb21wLmNhc3RfdW5pb25fYXNf bGlzcF9jb25zX3B0ciA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0 LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5saXNwX2NvbnNfcHRyX3R5cGUsCi0J CQkgICAgICAgImNvbnNfcHRyIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmQgPQot ICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxM LAotCQkJICAgICAgIGNvbXAubGlzcF93b3JkX3R5cGUsCi0JCQkgICAgICAgImxpc3Bfd29yZCIp OwotICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkX3RhZyA9Ci0gICAgZ2NjX2ppdF9jb250 ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAorc3RhdGljIGdjY19qaXRfZnVuY3Rpb24gKgorZGVm aW5lX2Nhc3RfZnJvbV90byAoc3RydWN0IGNhc3RfdHlwZSBmcm9tLCBpbnQgZnJvbV9pbmRleCwg c3RydWN0IGNhc3RfdHlwZSB0bywKKyAgICAgICAgICAgICAgICAgICAgaW50IHRvX2luZGV4KQor eworICBMaXNwX09iamVjdCBuYW1lID0gQ0FMTE4gKEZmb3JtYXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVpbGRfc3RyaW5nICgiY2FzdF9mcm9tXyVzX3RvXyVzIiksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVpbGRfc3RyaW5nIChmcm9tLm5hbWUpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJ1aWxkX3N0cmluZyAodG8ubmFtZSkpOworICBnY2Nfaml0X3Bh cmFtICpwYXJhbSA9IGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwgTlVMTCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9t LnR5cGUsICJhcmciKTsKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqcmVzdWx0ID0gZ2NjX2ppdF9jb250 ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5saXNwX3dvcmRf dGFnX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpc3Bfd29yZF90YWci KTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0ciA9Ci0gICAgZ2NjX2ppdF9jb250 ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29t cC5saXNwX29ial9wdHJfdHlwZSwKLQkJCSAgICAgICAibGlzcF9vYmpfcHRyIik7Ci0KLQotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tdID0KLSAgICB7IGNvbXAuY2FzdF91bmlv bl9hc19sbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bGwsCi0gICAgICBjb21wLmNhc3Rf dW5pb25fYXNfbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bCwKLSAgICAgIGNvbXAuY2Fz dF91bmlvbl9hc191LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2ksCi0gICAgICBjb21wLmNh c3RfdW5pb25fYXNfYiwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191aW50cHRyLAotICAgICAg Y29tcC5jYXN0X3VuaW9uX2FzX3B0cmRpZmYsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfY19w LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3ZfcCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9h c19saXNwX2NvbnNfcHRyLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZCwKLSAg ICAgIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnLAotICAgICAgY29tcC5jYXN0X3Vu aW9uX2FzX2xpc3Bfb2JqX3B0ciB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdD Q19KSVRfRlVOQ1RJT05fQUxXQVlTX0lOTElORSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0by50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNTREFUQSAobmFt ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcGFyYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7 CisKKyAgREVDTF9CTE9DSyAoZW50cnlfYmxvY2ssIHJlc3VsdCk7CisKKyAgZ2NjX2ppdF9sdmFs dWUgKnRtcF91bmlvbgorICAgID0gZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwgKHJlc3VsdCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl90eXBlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJ1bmlvbl9jYXN0Iik7CisKKyAgZ2NjX2ppdF9ibG9ja19hZGRf YXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3VuaW9uLCBOVUxMLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl9maWVsZHNbZnJv bV9pbmRleF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X3BhcmFt X2FzX3J2YWx1ZSAocGFyYW0pKTsKKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybiAo ZW50cnlfYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9ydmFsdWVfYWNjZXNzX2ZpZWxk ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNf cnZhbHVlICh0bXBfdW5pb24pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25f ZmllbGRzW3RvX2luZGV4XSkpOworCisgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lk CitkZWZpbmVfY2FzdF9mdW5jdGlvbnMgKHZvaWQpCit7CisgIHN0cnVjdCBjYXN0X3R5cGUgY2Fz dF90eXBlc1tOVU1fQ0FTVF9UWVBFU10KKyAgICA9IHt7Y29tcC5ib29sX3R5cGUsICJib29sIn0s CisgICAgICAge2NvbXAuY2hhcl9wdHJfdHlwZSwgImNoYXJfcHRyIn0sCisgICAgICAge2NvbXAu aW50X3R5cGUsICJpbnQifSwKKyAgICAgICB7Y29tcC5saXNwX2NvbnNfcHRyX3R5cGUsICJjb25z X3B0ciJ9LAorICAgICAgIHtjb21wLmxpc3Bfb2JqX3B0cl90eXBlLCAibGlzcF9vYmpfcHRyIn0s CisgICAgICAge2NvbXAubGlzcF93b3JkX3RhZ190eXBlLCAibGlzcF93b3JkX3RhZyJ9LAorICAg ICAgIHtjb21wLmxpc3Bfd29yZF90eXBlLCAibGlzcF93b3JkIn0sCisgICAgICAge2NvbXAubG9u Z19sb25nX3R5cGUsICJsb25nX2xvbmcifSwKKyAgICAgICB7Y29tcC5sb25nX3R5cGUsICJsb25n In0sCisgICAgICAge2NvbXAucHRyZGlmZl90eXBlLCAicHRyZGlmZiJ9LAorICAgICAgIHtjb21w LnVpbnRwdHJfdHlwZSwgInVpbnRwdHIifSwKKyAgICAgICB7Y29tcC51bnNpZ25lZF9sb25nX2xv bmdfdHlwZSwgInVuc2lnbmVkX2xvbmdfbG9uZyJ9LAorICAgICAgIHtjb21wLnVuc2lnbmVkX2xv bmdfdHlwZSwgInVuc2lnbmVkX2xvbmcifSwKKyAgICAgICB7Y29tcC51bnNpZ25lZF90eXBlLCAi dW5zaWduZWQifSwKKyAgICAgICB7Y29tcC52b2lkX3B0cl90eXBlLCAidm9pZF9wdHIifX07CisK KyAgLyogRGVmaW5lIHRoZSB1bmlvbiB1c2VkIGZvciBjYXN0aW5nLiAgKi8KKyAgZm9yIChpbnQg aSA9IDA7IGkgPCBOVU1fQ0FTVF9UWVBFUzsgKytpKQorICAgIHsKKyAgICAgIGNvbXAuY2FzdF90 eXBlc1tpXSA9IGNhc3RfdHlwZXNbaV0udHlwZTsKKyAgICAgIGNvbXAuY2FzdF91bmlvbl9maWVs ZHNbaV0gPSBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FzdF90eXBlc1tpXS50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FzdF90eXBlc1tpXS5uYW1lKTsKKyAgICB9CisKICAgY29tcC5jYXN0X3Vu aW9uX3R5cGUgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZSAoY29tcC5jdHh0 LAogCQkJCSAgICBOVUxMLAogCQkJCSAgICAiY2FzdF91bmlvbiIsCi0JCQkJICAgIEFSUkFZRUxU UyAoY2FzdF91bmlvbl9maWVsZHMpLAotCQkJCSAgICBjYXN0X3VuaW9uX2ZpZWxkcyk7CisJCQkJ ICAgIE5VTV9DQVNUX1RZUEVTLAorCQkJCSAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzKTsKKwor ICAvKiBEZWZpbmUgdGhlIGNhc3QgZnVuY3Rpb25zIHVzaW5nIGEgbWF0cml4LiAgKi8KKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBOVU1fQ0FTVF9UWVBFUzsgKytpKQorICAgIGZvciAoaW50IGogPSAw OyBqIDwgTlVNX0NBU1RfVFlQRVM7ICsraikKKyAgICAgICAgY29tcC5jYXN0X2Z1bmN0aW9uc19m cm9tX3RvW2ldW2pdCisgICAgICAgICAgPSBkZWZpbmVfY2FzdF9mcm9tX3RvIChjYXN0X3R5cGVz W2ldLCBpLCBjYXN0X3R5cGVzW2pdLCBqKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQwMzYsNyAr Mzk2OSw3IEBAIERFRlVOICgiY29tcC0taW5pdC1jdHh0IiwgRmNvbXBfX2luaXRfY3R4dCwgU2Nv bXBfX2luaXRfY3R4dCwKICAgZGVmaW5lX2ptcF9idWYgKCk7CiAgIGRlZmluZV9oYW5kbGVyX3N0 cnVjdCAoKTsKICAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKCk7Ci0gIGRlZmluZV9jYXN0 X3VuaW9uICgpOworICBkZWZpbmVfY2FzdF9mdW5jdGlvbnMgKCk7CiAgIGRlZmluZV9uYWl2ZV9i emVybyAoKTsKICAgZGVmaW5lX25haXZlX21lbWNweSAoKTsKIAotLSAKMi4yNS4xLndpbmRvd3Mu MQoK --000000000000db63be05a6e4f73e Content-Type: application/octet-stream; name="0001-Define-static-data-using-string-literals.patch" Content-Disposition: attachment; filename="0001-Define-static-data-using-string-literals.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kau77qqf1 RnJvbSAwNzIwZWM3ZWIzZGM1NTJiMDE4MjczY2Q2OGE1ZjdkNmJiMmZkYjcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAwMDoz NDozMiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBEZWZpbmUgc3RhdGljIGRhdGEgdXNpbmcg c3RyaW5nIGxpdGVyYWxzLgoKVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gZHVtcCBw cmV0dGllciBDIGZpbGVzLgpUaGlzIGRvZXMgbm90IGFmZmVjdCBjb21waWxhdGlvbiB0aW1lcyBp biBteSB0ZXN0cy4KCiogc3JjL2NvbXAuYyAoZW1pdF9zdGF0aWNfb2JqZWN0KTogRGVmaW5lIHN0 YXRpYyBvYmplY3RzIHVzaW5nIHN0cmluZwpsaXRlcmFscywgbWVtY3B5IGFuZCBiemVyby4KLS0t CiBzcmMvY29tcC5jIHwgMjk1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjc3IGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IGQz YmZmMWU0Y2YuLjJmNzg3NjA3NjQgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2Nv bXAuYwpAQCAtNDYsNiArNDYsNyBAQAogIyBpbmNsdWRlICJ3MzJjb21tb24uaCIKIAogI3VuZGVm IGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyN1bmRlZiBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50X29wCiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfY29tbWVudAogI3VuZGVmIGdj Y19qaXRfYmxvY2tfYWRkX2V2YWwKICN1bmRlZiBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRp dGlvbmFsCkBAIC03NSw2ICs3Niw3IEBACiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFs dWVfZnJvbV9pbnQKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcK ICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI3VuZGVmIGdjY19q aXRfY29udGV4dF9uZXdfc3RyaW5nX2xpdGVyYWwKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlCiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI3VuZGVm IGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZQpAQCAtMTY0LDYgKzE2Niw4IEBAIERFRl9E TExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21f bG9uZywKICAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAq bnVtZXJpY190eXBlLCBsb25nIHZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAq LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciwKICAgICAgICAgICAgIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAqcG9pbnRlcl90eXBlLCB2b2lkICp2YWx1 ZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19z dHJpbmdfbGl0ZXJhbCwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGNvbnN0 IGNoYXIgKnZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAqLCBnY2Nfaml0X2Nv bnRleHRfbmV3X3VuYXJ5X29wLAogICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwg Z2NjX2ppdF9sb2NhdGlvbiAqbG9jLAogICAgICAgICAgICAgIGVudW0gZ2NjX2ppdF91bmFyeV9v cCBvcCwgZ2NjX2ppdF90eXBlICpyZXN1bHRfdHlwZSwKQEAgLTE5Nyw2ICsyMDEsMTAgQEAgREVG X0RMTF9GTiAoZ2NjX2ppdF90eXBlICosIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRlciwgKGdjY19q aXRfdHlwZSAqdHlwZSkpOwogREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudCwKICAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2NjX2ppdF9sb2Nh dGlvbiAqbG9jLCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAogICAgICAgICAgICAgIGdjY19qaXRf cnZhbHVlICpydmFsdWUpKTsKK0RFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2Fz c2lnbm1lbnRfb3AsCisgICAgICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRf bG9jYXRpb24gKmxvYywKKyAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLCBlbnVt IGdjY19qaXRfYmluYXJ5X29wIG9wLAorICAgICAgICAgICAgIGdjY19qaXRfcnZhbHVlICpydmFs dWUpKTsKIERFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwsCiAgICAgICAg ICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywKICAgICAg ICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yMzksNiArMjQ3LDcgQEAgaW5p dF9nY2NqaXRfZnVuY3Rpb25zICh2b2lkKQogCiAgIC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAq LwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCk7 CisgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29w KTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQpOwog ICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCk7CiAgIExPQURf RExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsKTsKQEAg LTI2OCw2ICsyNzcsNyBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAgIExPQURfRExM X0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCk7CiAgIExP QURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcp OwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJv bV9wdHIpOworICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJp bmdfbGl0ZXJhbCk7CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9u ZXdfdW5hcnlfb3ApOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25l d191bmlvbl90eXBlKTsKQEAgLTI5Niw2ICszMDYsNyBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMg KHZvaWQpCiAKIC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwogI2RlZmluZSBnY2Nfaml0X2Js b2NrX2FkZF9hc3NpZ25tZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyNkZWZp bmUgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50X29wCiAjZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQgZm5fZ2NjX2pp dF9ibG9ja19hZGRfY29tbWVudAogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIGZuX2dj Y19qaXRfYmxvY2tfYWRkX2V2YWwKICNkZWZpbmUgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25k aXRpb25hbCBmbl9nY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsCkBAIC0zMjUsNiAr MzM2LDcgQEAgI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIGZuX2djY19qaXRfY29u dGV4dF9uZXdfcGFyYW0KICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9p bnQgZm5fZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQKICNkZWZpbmUgZ2NjX2pp dF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9sb25nIGZuX2djY19qaXRfY29udGV4dF9uZXdfcnZh bHVlX2Zyb21fbG9uZwogI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0 ciBmbl9nY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI2RlZmluZSBnY2Nfaml0 X2NvbnRleHRfbmV3X3N0cmluZ19saXRlcmFsIGZuX2djY19qaXRfY29udGV4dF9uZXdfc3RyaW5n X2xpdGVyYWwKICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSBmbl9nY2Nf aml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlCiAjZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdf dW5hcnlfb3AgZm5fZ2NjX2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI2RlZmluZSBnY2Nfaml0 X2NvbnRleHRfbmV3X3VuaW9uX3R5cGUgZm5fZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBl CkBAIC01NDgsNiArNTYwLDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKICAgZ2Nj X2ppdF9ydmFsdWUgKmRhdGFfcmVsb2NzX2VwaGVtZXJhbDsKICAgLyogU3ludGhlc2l6ZWQgc3Ry dWN0IGhvbGRpbmcgZnVuYyByZWxvY3MuICAqLwogICBnY2Nfaml0X2x2YWx1ZSAqZnVuY19yZWxv Y3M7CisgIGdjY19qaXRfZnVuY3Rpb24gKm5haXZlX2J6ZXJvOworICBnY2Nfaml0X2Z1bmN0aW9u ICpuYWl2ZV9tZW1jcHk7CiAgIExpc3BfT2JqZWN0IGRfZGVmYXVsdF9pZHg7CiAgIExpc3BfT2Jq ZWN0IGRfaW1wdXJlX2lkeDsKICAgTGlzcF9PYmplY3QgZF9lcGhlbWVyYWxfaWR4OwpAQCAtMjM0 NiwxMCArMjM2MCw3IEBAIGVtaXRfc3RhdGljX29iamVjdCAoY29uc3QgY2hhciAqbmFtZSwgTGlz cF9PYmplY3Qgb2JqKQogewogICAvKiBsaWJnY2NqaXQgaGFzIG5vIHN1cHBvcnQgZm9yIGluaXRp YWxpemVkIHN0YXRpYyBkYXRhLgogICAgICBUaGUgbWVjaGFuaXNtIGJlbG93IGlzIGNlcnRhaW5s eSBub3QgYWVzdGhldGljIGJ1dCBJIGFzc3VtZSB0aGUgYm90dGxlIG5lY2sKLSAgICAgaW4gdGVy bXMgb2YgcGVyZm9ybWFuY2UgYXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4K LSAgICAgTk9URTogd2UgY2FuIG5vdCByZWxheSBvbiBsaWJnY2NqaXQgZXZlbiBmb3IgdmFsaWQg TlVMTCB0ZXJtaW5hdGVkIEMKLSAgICAgc3RyaW5ncyBjYXVzZSBvZiB0aGlzIGZ1bm55IGJ1ZyB0 aGF0IHdpbGwgYWZmZWN0IGFsbCBwcmUgZ2NjMTAgZXJhIGdjY3M6Ci0gICAgIGh0dHBzOi8vZ2Nj LmdudS5vcmcvbWwvaml0LzIwMTktcTMvbXNnMDAwMTMuaHRtbCAgKi8KKyAgICAgaW4gdGVybXMg b2YgcGVyZm9ybWFuY2UgYXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4gICov CiAKICAgTGlzcF9PYmplY3Qgc3RyID0gRnByaW4xX3RvX3N0cmluZyAob2JqLCBRbmlsKTsKICAg cHRyZGlmZl90IGxlbiA9IFNCWVRFUyAoc3RyKTsKQEAgLTIzOTgsMjIgKzI0MDksOTEgQEAgZW1p dF9zdGF0aWNfb2JqZWN0IChjb25zdCBjaGFyICpuYW1lLCBMaXNwX09iamVjdCBvYmopCiAgIGdj Y19qaXRfbHZhbHVlICphcnIgPQogICAgICAgZ2NjX2ppdF9sdmFsdWVfYWNjZXNzX2ZpZWxkIChk YXRhX3N0cnVjdCwgTlVMTCwgZmllbGRzWzFdKTsKIAotICBmb3IgKHB0cmRpZmZfdCBpID0gMDsg aSA8IGxlbjsgaSsrLCBwKyspCisgIGdjY19qaXRfbHZhbHVlICpwdHJ2YXIgPSBnY2Nfaml0X2Z1 bmN0aW9uX25ld19sb2NhbCAoZiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmNoYXJfcHRyX3R5cGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInB0ciIpOworCisg IGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKAorICAgIGJsb2NrLAorICAgIE5VTEwsCisg ICAgcHRydmFyLAorICAgIGdjY19qaXRfbHZhbHVlX2dldF9hZGRyZXNzICgKKyAgICAgIGdjY19q aXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzICgKKyAgICAgICAgY29tcC5jdHh0LAorICAgICAg ICBOVUxMLAorICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKGFyciksCisgICAgICAg IGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50IChjb21wLmN0eHQsIGNvbXAuaW50 X3R5cGUsIDApKSwKKyAgICAgIE5VTEwpKTsKKworICAvKiBFbWl0IGEgY2FsbCB0byBuYWl2ZV9i emVybyAoKSB0byBjbGVhciBhbGwgdGhlIHN0YXRpYyBvYmplY3QuICBJdAorICAgICBpcyBub3Qg c3RyaWN0bHkgbmVjZXNzYXJ5IHNpbmNlIHRoZSBkeW5hbWljIGxpbmtlciB3aWxsIHRha2UgY2Fy ZQorICAgICBvZiB6ZXJvaW5nIHRoZSBtZW1vcnkgdG9vLiAgKi8KKyAgZ2NjX2ppdF9ydmFsdWUg KmJ6ZXJvX2FyZ3NbMl0KKyAgICA9IHtnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHB0cnZhciks CisgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9sb25nIChjb21wLmN0eHQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVuc2ln bmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGVuICsgMSl9OworCisgIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwgKGJsb2NrLCBO VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2NhbGwg KGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wLm5haXZlX2J6ZXJvLCAyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ6ZXJvX2FyZ3MpKTsKKworICBmb3IgKHB0 cmRpZmZfdCBpID0gMDsgaSA8IGxlbjspCiAgICAgewotICAgICAgZ2NjX2ppdF9ibG9ja19hZGRf YXNzaWdubWVudCAoCi0JYmxvY2ssCi0JTlVMTCwKLQlnY2Nfaml0X2NvbnRleHRfbmV3X2FycmF5 X2FjY2VzcyAoCi0JICBjb21wLmN0eHQsCi0JICBOVUxMLAotCSAgZ2NjX2ppdF9sdmFsdWVfYXNf cnZhbHVlIChhcnIpLAotCSAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNv bXAuY3R4dCwKLQkJCQkJICAgICAgIGNvbXAucHRyZGlmZl90eXBlLAotCQkJCQkgICAgICAgaSkp LAotCWdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50IChjb21wLmN0eHQsCi0JCQkJ CSAgICAgY29tcC5jaGFyX3R5cGUsCi0JCQkJCSAgICAgKnApKTsKKyAgICAgIC8qIFdlIGNhbid0 IHVzZSBzdHJpbmcgbGl0ZXJhbHMgbG9uZ2VyIHRoYXQgMjAwIGJ5dGVzIGJlY2F1c2UKKyAgICAg ICAgIHRoZXkgY2F1c2UgYSBjcmFzaCBpbiBvbGRlciB2ZXJzaW9ucyBvZiBnY2NqaXQuCisgICAg ICAgICBodHRwczovL2djYy5nbnUub3JnL21sL2ppdC8yMDE5LXEzL21zZzAwMDEzLmh0bWwuICAq LworICAgICAgY2hhciBzdHJbMjAwXTsKKyAgICAgIHN0cm5jcHkgKHN0ciwgcCwgMjAwKTsKKyAg ICAgIHN0clsxOTldID0gMDsKKyAgICAgIHVpbnRwdHJfdCBsID0gc3RybGVuIChzdHIpOworCisg ICAgICBpZiAobCAhPSAwKQorICAgICAgICB7CisgICAgICAgICAgcCArPSBsOworICAgICAgICAg IGkgKz0gbDsKKworICAgICAgICAgIGdjY19qaXRfcnZhbHVlICphcmdzWzNdCisgICAgICAgICAg ICA9IHtnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHB0cnZhciksCisgICAgICAgICAgICAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3N0cmluZ19saXRlcmFsIChjb21wLmN0eHQsIHN0ciksCisgICAg ICAgICAgICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0 LAorICAgICAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAg ICAgICAgICAgICBsKX07CisKKyAgICAgICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIChibG9j aywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X2NhbGwgKGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAubmFpdmVfbWVtY3B5LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MywgYXJncykpOworICAgICAgICAgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGJsb2Nr LCBOVUxMLCBwdHJ2YXIsCisgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcyAo CisgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzIChjb21wLmN0 eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChwdHJ2 YXIpLAorICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50 IChjb21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXAudWludHB0cl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsKSksCisgICAgICAgICAgICAgIE5VTEwpKTsKKyAg ICAgICAgfQorICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgLyogSWYgc3RybGVuIHJl dHVybmVkIDAgdGhhdCBtZWFucyB0aGF0IHRoZSBzdGF0aWMgb2JqZWN0CisgICAgICAgICAgICAg Y29udGFpbnMgYSBOVUxMIGJ5dGUuICBJbiB0aGF0IGNhc2UganVzdCBtb3ZlIG92ZXIgdG8gdGhl CisgICAgICAgICAgICAgbmV4dCBibG9jay4gIFdlIGNhbiByZWx5IG9uIHRoZSBieXRlIGJlaW5n IHplcm8gYmVjYXVzZQorICAgICAgICAgICAgIG9mIHRoZSBwcmV2aW91cyBjYWxsIHRvIGJ6ZXJv IGFuZCBiZWNhdXNlIHRoZSBkeW5hbWljCisgICAgICAgICAgICAgbGlua2VyIGNsZWFyZWQgaXQu ICAqLworICAgICAgICAgIHArKzsKKyAgICAgICAgICBpKys7CisgICAgICAgICAgZ2NjX2ppdF9i bG9ja19hZGRfYXNzaWdubWVudCAoCisgICAgICAgICAgICBibG9jaywgTlVMTCwgcHRydmFyLAor ICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfZ2V0X2FkZHJlc3MgKAorICAgICAgICAgICAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X2FjY2VzcyAoCisgICAgICAgICAgICAgICAgY29tcC5j dHh0LCBOVUxMLCBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHB0cnZhciksCisgICAgICAgICAg ICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC51 aW50cHRyX3R5cGUsIDEpKSwKKyAgICAgICAgICAgICAgTlVMTCkpOworICAgICAgICB9CiAgICAg fQorCiAgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKAogCWJsb2NrLAogCU5VTEwsCkBA IC0yNzU5LDYgKzI4MzksMTgzIEBAIGRlZmluZV9qbXBfYnVmICh2b2lkKQogCQkJCSAgICAgMSwg JmZpZWxkKTsKIH0KIAorLyogTmFpdmUgaW1wbGVtZW50YXRpb24gb2YgYnplcm8uICBIb3BlZnVs bHkgaXQgd2lsbCBiZSB0dXJuZWQgaW50byBhCisgICBzbWFydGVyIGltcGxlbWVudGF0aW9uIGJ5 IHRoZSBvcHRpbWl6ZXIuICAqLworc3RhdGljIHZvaWQKK2RlZmluZV9uYWl2ZV9iemVybyAodm9p ZCkKK3sKKy8qIEVtaXR0ZWQgY29kZToKK3N0YXRpYyB2b2lkCituYWl2ZV9iemVybyAoY2hhciAq IHB0ciwgdW5zaWduZWQgbG9uZyBsb25nIGxlbikKK3sKKyAgdW5zaWduZWQgbG9uZyBsb25nIGk7 CisKK2VudHJ5X2Jsb2NrOgorICBpID0gKHVuc2lnbmVkIGxvbmcgbG9uZykwOworICBnb3RvIHRl c3RfYmxvY2s7CisKK3Rlc3RfYmxvY2s6CisgIGlmIChsZW4gPiBpKSBnb3RvIGxvb3BfYmxvY2s7 IGVsc2UgZ290byByZXR1cm5fYmxvY2s7CisKK2xvb3BfYmxvY2s6CisgIHB0cltpXSA9IChjaGFy KTA7CisgIGkgKz0gKHVuc2lnbmVkIGxvbmcgbG9uZykxOworICBnb3RvIHRlc3RfYmxvY2s7CisK K3JldHVybl9ibG9jazoKKyAgcmV0dXJuOworfQorKi8KKyAgZ2NjX2ppdF9wYXJhbSAqcGFyYW1z WzJdID0geworICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwgTlVMTCwg Y29tcC5jaGFyX3B0cl90eXBlLCAicHRyIiksCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19wYXJh bSAoY29tcC5jdHh0LCBOVUxMLCBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJsZW4iKSwKKyAgfTsKKworICBjb21wLm5haXZlX2J6 ZXJvCisgICAgPSBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChjb21wLmN0eHQsIE5VTEws IEdDQ19KSVRfRlVOQ1RJT05fSU5URVJOQUwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb21wLnZvaWRfdHlwZSwgIm5haXZlX2J6ZXJvIiwgMiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgZmFsc2UpOworCisgIERFQ0xfQkxPQ0sgKGVu dHJ5X2Jsb2NrLCBjb21wLm5haXZlX2J6ZXJvKTsKKyAgREVDTF9CTE9DSyAodGVzdF9ibG9jaywg Y29tcC5uYWl2ZV9iemVybyk7CisgIERFQ0xfQkxPQ0sgKGxvb3BfYmxvY2ssIGNvbXAubmFpdmVf Ynplcm8pOworICBERUNMX0JMT0NLIChyZXR1cm5fYmxvY2ssIGNvbXAubmFpdmVfYnplcm8pOwor CisgIGdjY19qaXRfbHZhbHVlICpwdHIgPSBnY2Nfaml0X3BhcmFtX2FzX2x2YWx1ZSAocGFyYW1z WzBdKTsKKyAgZ2NjX2ppdF9sdmFsdWUgKmkgPSBnY2Nfaml0X2Z1bmN0aW9uX25ld19sb2NhbCAo Y29tcC5uYWl2ZV9iemVybywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsICJpIik7CisKKyAgZ2NjX2ppdF9i bG9ja19hZGRfYXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsIGksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50IChj b21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC51aW50cHRy X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCkpOworICBnY2Nfaml0 X2Jsb2NrX2VuZF93aXRoX2p1bXAgKGVudHJ5X2Jsb2NrLCBOVUxMLCB0ZXN0X2Jsb2NrKTsKKwor ICAvKiBpZiAobGVuID4gaSkgKi8KKworICBnY2Nfaml0X3J2YWx1ZSAqY29tcGFyaXNvbl9yZXN1 bHQKKyAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfY29tcGFyaXNvbiAoY29tcC5jdHh0LCBOVUxM LCBHQ0NfSklUX0NPTVBBUklTT05fR1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGdjY19qaXRfcGFyYW1fYXNfcnZhbHVlIChwYXJhbXNbMV0pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKGkpKTsK KworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsICh0ZXN0X2Jsb2NrLCBOVUxM LCBjb21wYXJpc29uX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbG9vcF9ibG9jaywgcmV0dXJuX2Jsb2NrKTsKKworICAvKiBwdHJbaV0gPSAwOyAqLworICAv KiBpICs9IDE7ICovCisKKyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAobG9vcF9ibG9j aywgTlVMTCwKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2FycmF5X2FjY2VzcyAoY29tcC5jdHh0 LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2 YWx1ZV9hc19ydmFsdWUgKHB0ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoaSkpLAorICAgIGdjY19qaXRfY29udGV4dF9u ZXdfcnZhbHVlX2Zyb21faW50IChjb21wLmN0eHQsIGNvbXAuY2hhcl90eXBlLCAwKSk7CisKKyAg Z2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCAoCisgICAgbG9vcF9ibG9jaywgTlVMTCwg aSwgR0NDX0pJVF9CSU5BUllfT1BfUExVUywKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1 ZV9mcm9tX2ludCAoY29tcC5jdHh0LCBjb21wLnVpbnRwdHJfdHlwZSwgMSkpOworCisgIGdjY19q aXRfYmxvY2tfZW5kX3dpdGhfanVtcCAobG9vcF9ibG9jaywgTlVMTCwgdGVzdF9ibG9jayk7CisK KyAgLyogcmV0dXJuOyAqLworCisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfdm9pZF9yZXR1cm4g KHJldHVybl9ibG9jaywgTlVMTCk7Cit9CisKKy8qIE5haXZlIGltcGxlbWVudGF0aW9uIG9mIG1l bWNweS4gIEhvcGVmdWxseSBpdCB3aWxsIGJlIHR1cm5lZCBpbnRvIGEKKyAgIHNtYXJ0ZXIgaW1w bGVtZW50YXRpb24gYnkgdGhlIG9wdGltaXplci4gICovCitzdGF0aWMgdm9pZAorZGVmaW5lX25h aXZlX21lbWNweSAodm9pZCkKK3sKKy8qIEVtaXR0ZWQgY29kZToKK3N0YXRpYyB2b2lkICoKK25h aXZlX21lbWNweSAoY2hhciAqIGRlc3QsIGNoYXIgKiBzcmMsIHVuc2lnbmVkIGxvbmcgbG9uZyBs ZW4pCit7CisgIHVuc2lnbmVkIGxvbmcgbG9uZyBpOworCitlbnRyeV9ibG9jazoKKyAgaSA9ICh1 bnNpZ25lZCBsb25nIGxvbmcpMDsKKyAgZ290byB0ZXN0X2Jsb2NrOworCit0ZXN0X2Jsb2NrOgor ICBpZiAobGVuID4gaSkgZ290byBsb29wX2Jsb2NrOyBlbHNlIGdvdG8gcmV0dXJuX2Jsb2NrOwor Citsb29wX2Jsb2NrOgorICBkZXN0W2ldID0gc3JjW2ldOworICBpICs9ICh1bnNpZ25lZCBsb25n IGxvbmcpMTsKKyAgZ290byB0ZXN0X2Jsb2NrOworCityZXR1cm5fYmxvY2s6CisgIHJldHVybiBk ZXN0OworfQorKi8KKyAgZ2NjX2ppdF9wYXJhbSAqcGFyYW1zWzNdID0geworICAgIGdjY19qaXRf Y29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwgTlVMTCwgY29tcC5jaGFyX3B0cl90eXBlLCAi ZGVzdCIpLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwgTlVMTCwg Y29tcC5jaGFyX3B0cl90eXBlLCAic3JjIiksCisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19wYXJh bSAoY29tcC5jdHh0LCBOVUxMLCBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJsZW4iKSwKKyAgfTsKKworICBjb21wLm5haXZlX21l bWNweQorICAgID0gZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LCBOVUxM LCBHQ0NfSklUX0ZVTkNUSU9OX0lOVEVSTkFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcC52b2lkX3B0cl90eXBlLCAibmFpdmVfbWVtY3B5IiwgMywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgZmFsc2UpOworCisgIERFQ0xfQkxP Q0sgKGVudHJ5X2Jsb2NrLCBjb21wLm5haXZlX21lbWNweSk7CisgIERFQ0xfQkxPQ0sgKHRlc3Rf YmxvY2ssIGNvbXAubmFpdmVfbWVtY3B5KTsKKyAgREVDTF9CTE9DSyAobG9vcF9ibG9jaywgY29t cC5uYWl2ZV9tZW1jcHkpOworICBERUNMX0JMT0NLIChyZXR1cm5fYmxvY2ssIGNvbXAubmFpdmVf bWVtY3B5KTsKKworICBnY2Nfaml0X2x2YWx1ZSAqZGVzdCA9IGdjY19qaXRfcGFyYW1fYXNfbHZh bHVlIChwYXJhbXNbMF0pOworICBnY2Nfaml0X2x2YWx1ZSAqc3JjID0gZ2NjX2ppdF9wYXJhbV9h c19sdmFsdWUgKHBhcmFtc1sxXSk7CisgIGdjY19qaXRfbHZhbHVlICppID0gZ2NjX2ppdF9mdW5j dGlvbl9uZXdfbG9jYWwgKGNvbXAubmFpdmVfbWVtY3B5LCBOVUxMLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlwZSwgImki KTsKKworICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChlbnRyeV9ibG9jaywgTlVMTCwg aSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19y dmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb21wLnVpbnRwdHJfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKSk7CisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfanVtcCAoZW50cnlfYmxvY2ssIE5VTEws IHRlc3RfYmxvY2spOworCisgIC8qIGlmIChsZW4gPiBpKSAqLworCisgIGdjY19qaXRfcnZhbHVl ICpjb21wYXJpc29uX3Jlc3VsdAorICAgID0gZ2NjX2ppdF9jb250ZXh0X25ld19jb21wYXJpc29u IChjb21wLmN0eHQsIE5VTEwsIEdDQ19KSVRfQ09NUEFSSVNPTl9HVCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFtc1sy XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVl X2FzX3J2YWx1ZSAoaSkpOworCisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwg KHRlc3RfYmxvY2ssIE5VTEwsIGNvbXBhcmlzb25fcmVzdWx0LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsb29wX2Jsb2NrLCByZXR1cm5fYmxvY2spOworCisgIC8qIGRl c3RbaV0gPSBzcmNbaV07ICovCisgIC8qIGkgKz0gMTsgKi8KKworICBnY2Nfaml0X2Jsb2NrX2Fk ZF9hc3NpZ25tZW50IChsb29wX2Jsb2NrLCBOVUxMLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdf YXJyYXlfYWNjZXNzIChjb21wLmN0eHQsIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoZGVzdCksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoaSkp LAorICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoCisgICAgICBnY2Nfaml0X2NvbnRleHRf bmV3X2FycmF5X2FjY2VzcyAoY29tcC5jdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoc3JjKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFs dWUgKGkpKSkpOworCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnRfb3AgKGxvb3BfYmxv Y2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDQ19KSVRfQklOQVJZX09QX1BMVVMsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50ICgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmN0eHQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMSkpOworCisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfanVt cCAobG9vcF9ibG9jaywgTlVMTCwgdGVzdF9ibG9jayk7CisKKyAgLyogcmV0dXJuIGRlc3Q7ICov CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9yZXR1cm4gKHJldHVybl9ibG9jaywgTlVMTCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfcGFyYW1fYXNfcnZhbHVl IChwYXJhbXNbMF0pKTsKK30KKwogLyogc3RydWN0IGhhbmRsZXIgZGVmaW5pdGlvbiAgKi8KIAog c3RhdGljIHZvaWQKQEAgLTM3ODAsNiArNDAzNyw4IEBAIERFRlVOICgiY29tcC0taW5pdC1jdHh0 IiwgRmNvbXBfX2luaXRfY3R4dCwgU2NvbXBfX2luaXRfY3R4dCwKICAgZGVmaW5lX2hhbmRsZXJf c3RydWN0ICgpOwogICBkZWZpbmVfdGhyZWFkX3N0YXRlX3N0cnVjdCAoKTsKICAgZGVmaW5lX2Nh c3RfdW5pb24gKCk7CisgIGRlZmluZV9uYWl2ZV9iemVybyAoKTsKKyAgZGVmaW5lX25haXZlX21l bWNweSAoKTsKIAogICByZXR1cm4gUXQ7CiB9Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000db63be05a6e4f73e--