From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. 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 15:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 41615@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.159085130516274 (code B ref -1); Sat, 30 May 2020 15:09:01 +0000 Received: (at submit) by debbugs.gnu.org; 30 May 2020 15:08:25 +0000 Received: from localhost ([127.0.0.1]:58893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf361-0004EQ-CO for submit@debbugs.gnu.org; Sat, 30 May 2020 11:08:25 -0400 Received: from lists.gnu.org ([209.51.188.17]:59448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf35z-0004EJ-Jc for submit@debbugs.gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jf35z-0005pQ-FK for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]:37134) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jf35y-0005sO-Ju for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: by mail-ot1-x32f.google.com with SMTP id x22so4334604otq.4 for ; Sat, 30 May 2020 08:08:21 -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=+eg0RN9e+5PfofWQQsl+LyuzKKBFPN5l8pYfnX+McL8=; b=eSdk351CTa9IMJRhsxPmmgAlTdGJyttOkMF2NtB0iqTA5U1x8cjH3anFAp+eIHdKBY IjuMXsxFUfrZwvcZwGJsNqepX69D8TLu/eixE8xZJvspgFQa3iLvBEZhNuhtrT6J7jSc AMBmMtiLKg7dGWk9FbxePOpVvxBbbuFo/Vbmn2zpCQHI6dp6WuIE8ieCmo8lRVFwvbu6 IOrYojLnLjT2Bs6OSZp4eLalaH04Xtrz7oZMy1/usymFyWD/Ueu3vqAZRRy6xdOZDjcM PtYAH/jGX0kyXs7PJkzZKOJ8V3qcfIzCD8qIH0q38Fo0HzN0bYOT0XqOU2K2O/0zsVVm NM/Q== 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=+eg0RN9e+5PfofWQQsl+LyuzKKBFPN5l8pYfnX+McL8=; b=Rc6VbLAhVdvHLeHX/+B/kDFIVS7vovpiXMMuH0U9xeOTp4YtWSh4B6vpuvQiEvYTQt YnimxQ79PNmCHK3lhQZbK7mTYWIX0rdONAFxeMaAMGApbEN3cFnzKN4LA4oSa9Irzkcw dT+CL3FRhgcZxA90CaeK19yuLPbi2dh6NlTrEPjL3IJlALqvo5V/s5SymTYgHawRaK7L ez5OkODry0d0UzlBCPJ1vrIA0feJGA51huwkbxYwSIySin/X1fbf7g6JU7vGIOKa/xLG GXFe3chxAdoMzDds1bd3XzWvW994aftz0oDOnrdc6RFi8qbXdhm+ZSImOAgBHMmTF5tf 4nMg== X-Gm-Message-State: AOAM531P082zEMrp/dEDg3h85RKSY6Y4Ltq6wsRYQA/+dxMykPJ0eSCs 59IqCp9SfTLq2hHj67U05orap9OiZzLNDRAxwns2dm0zLSI= X-Google-Smtp-Source: ABdhPJw4spEfijRhqzA2WlAfcnc5ALcYn2ghi72Sk/ZdzYazRzirsfco04yGb/KsIpjXaeJfD1OcW94V/kO0a9gkI40= X-Received: by 2002:a9d:5f09:: with SMTP id f9mr10311484oti.202.1590851300798; Sat, 30 May 2020 08:08:20 -0700 (PDT) MIME-Version: 1.0 From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sat, 30 May 2020 12:08:07 -0300 Message-ID: Content-Type: multipart/mixed; boundary="000000000000ace01405a6deee60" Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=nicolasbertolo@gmail.com; helo=mail-ot1-x32f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.4 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000ace01405a6deee60 Content-Type: multipart/alternative; boundary="000000000000ace01105a6deee5e" --000000000000ace01105a6deee5e Content-Type: text/plain; charset="UTF-8" I found two ways to improve the looks of the dumped code. - Define static data using string literals of at most 200 bytes. This reduces the line count and lets us understand what the static object consists of. - Define casts using functions. These functions should get always get inlined. Thanks, Nico --000000000000ace01105a6deee5e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I found two ways to improve the looks of the dumped c= ode.

- Define static data using string literals of at m= ost 200 bytes. This reduces
=C2=A0 the line count and lets us understand= what the static object consists of.

- Define casts using funct= ions. These functions should get always get inlined.

Thanks, Nico
--000000000000ace01105a6deee5e-- --000000000000ace01405a6deee60 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_katrry5d1 RnJvbSA4ZWQ0MjUwOWU1NWU3OGU2N2Q5OTg5ZTRjMTE5YzFiOGY2YmVhNDYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAwMDo0 NjozMCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBEZWZpbmUgY2FzdHMgdXNpbmcgZnVuY3Rp b25zLgoKVGhpcyBpcyB0byBkdW1wIHByZXR0aWVyIEMgZmlsZXMuClRoaXMgZG9lcyBub3QgYWZm ZWN0IGNvbXBpbGF0aW9uIHRpbWVzIGluIG15IHRlc3RzLgoKKiBzcmMvY29tcC5jOiBEZWZpbmUg YSAxNXgxNSBjYXN0IG1hdHJpeC4gVXNlIGl0IGluIGVtaXRfY29lcmNlKCkuCi0tLQogc3JjL2Nv bXAuYyB8IDI3OCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAxNzQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggM2Y0YjNlMDNi Ny4uZjVmNmIxYmFjYSAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBA IC00NTQsNiArNDU0LDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKIAogc3RhdGlj IGZfcmVsb2NfdCBmcmVsb2M7CiAKKyNkZWZpbmUgTlVNX0NBU1RfVFlQRVMgMTUKKwogLyogQyBz aWRlIG9mIHRoZSBjb21waWxlciBjb250ZXh0LiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAt NTEyLDIxICs1MTQsOSBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICAvKiBsaWJn Y2NqaXQgaGFzIHJlYWxseSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRo aXMgdW5pb24gd2lsbAogICAgICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nfaml0 X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19s bDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bGw7Ci0gIGdjY19qaXRfZmllbGQg KmNhc3RfdW5pb25fYXNfbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bDsKLSAg Z2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191OwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3Vu aW9uX2FzX2k7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfYjsKLSAgZ2NjX2ppdF9m aWVsZCAqY2FzdF91bmlvbl9hc191aW50cHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9u X2FzX3B0cmRpZmY7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfY19wOwotICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX3ZfcDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlv bl9hc19saXNwX2NvbnNfcHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bf d29yZDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnOwotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKKyAgZ2NjX2ppdF9mdW5j dGlvbiAqY2FzdF9mdW5jdGlvbnNfZnJvbV90b1tOVU1fQ0FTVF9UWVBFU11bTlVNX0NBU1RfVFlQ RVNdOworICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVNdOworICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tOVU1fQ0FTVF9UWVBFU107CiAgIGdjY19qaXRf ZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQuICAqLwog ICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBjb21wLWZ1bmMgaGFzLW5vbi1sb2Nh bCBzbG90LiAgKi8KICAgZ2NjX2ppdF9sdmFsdWUgKipmX2ZyYW1lOyAvKiAiRmxvYXRpbmciIGZy YW1lIGZvciB0aGUgY3VycmVudCBmdW5jdGlvbi4gICovCkBAIC02ODQsNDcgKzY3NCw2IEBAIGJj 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 T2JqZWN0IGJsb2NrX25hbWUpCiB7CkBAIC05ODUsMTEgKzkzNCwxOSBAQCBlbWl0X2NvbmRfanVt cCAoZ2NjX2ppdF9ydmFsdWUgKnRlc3QsCiAKIH0KIAorc3RhdGljIGludAordHlwZV90b19jYXN0 X2luZGV4KGdjY19qaXRfdHlwZSAqIHR5cGUpCit7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVN X0NBU1RfVFlQRVM7ICsraSkKKyAgICBpZiAodHlwZSA9PSBjb21wLmNhc3RfdHlwZXNbaV0pCisg ICAgICByZXR1cm4gaTsKKworICB4c2lnbmFsMSAoUW5hdGl2ZV9pY2UsIGJ1aWxkX3N0cmluZyAo InVuc3VwcG9ydGVkIGNhc3QiKSk7Cit9CisKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCiBlbWl0 X2NvZXJjZSAoZ2NjX2ppdF90eXBlICpuZXdfdHlwZSwgZ2NjX2ppdF9ydmFsdWUgKm9iaikKIHsK LSAgc3RhdGljIHB0cmRpZmZfdCBpOwotCiAgIGdjY19qaXRfdHlwZSAqb2xkX3R5cGUgPSBnY2Nf aml0X3J2YWx1ZV9nZXRfdHlwZSAob2JqKTsKIAogICBpZiAobmV3X3R5cGUgPT0gb2xkX3R5cGUp CkBAIC0xMDIxLDI1ICs5NzgsMTQgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlwZSAqbmV3X3R5 cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgICAgfQogI2VuZGlmCiAKLSAgZ2NjX2ppdF9maWVs ZCAqb3JpZ19maWVsZCA9Ci0gICAgdHlwZV90b19jYXN0X2ZpZWxkIChvbGRfdHlwZSk7Ci0gIGdj Y19qaXRfZmllbGQgKmRlc3RfZmllbGQgPSB0eXBlX3RvX2Nhc3RfZmllbGQgKG5ld190eXBlKTsK LQotICBnY2Nfaml0X2x2YWx1ZSAqdG1wX3UgPQotICAgIGdjY19qaXRfZnVuY3Rpb25fbmV3X2xv Y2FsIChjb21wLmZ1bmMsCi0JCQkJTlVMTCwKLQkJCQljb21wLmNhc3RfdW5pb25fdHlwZSwKLQkJ CQlmb3JtYXRfc3RyaW5nICgidW5pb25fY2FzdF8ldGQiLCBpKyspKTsKLSAgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudCAoY29tcC5ibG9jaywKLQkJCQlOVUxMLAotCQkJCWdjY19qaXRfbHZh bHVlX2FjY2Vzc19maWVsZCAodG1wX3UsCi0JCQkJCQkJICAgICBOVUxMLAotCQkJCQkJCSAgICAg b3JpZ19maWVsZCksCi0JCQkJb2JqKTsKKyAgaW50IG9sZF9pbmRleCA9IHR5cGVfdG9fY2FzdF9p bmRleCAob2xkX3R5cGUpOworICBpbnQgbmV3X2luZGV4ID0gdHlwZV90b19jYXN0X2luZGV4IChu ZXdfdHlwZSk7CiAKLSAgcmV0dXJuIGdjY19qaXRfcnZhbHVlX2FjY2Vzc19maWVsZCAoIGdjY19q aXRfbHZhbHVlX2FzX3J2YWx1ZSAodG1wX3UpLAotCQkJCSAgICAgICBOVUxMLAotCQkJCSAgICAg ICBkZXN0X2ZpZWxkKTsKKyAgLyogTG9va3VwIHRoZSBhcHByb3ByaWF0ZSBjYXN0IGZ1bmN0aW9u IGluIHRoZSBjYXN0IG1hdHJpeC4gKi8KKyAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfY2Fs bCAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmNhc3RfZnVuY3Rpb25zX2Zy b21fdG9bb2xkX2luZGV4XVtuZXdfaW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxLCAmb2JqKTsKIH0KIAogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTMxMjgs MTA5ICszMDc0LDkzIEBAIGRlZmluZV90aHJlYWRfc3RhdGVfc3RydWN0ICh2b2lkKQogICAgIGdj Y19qaXRfdHlwZV9nZXRfcG9pbnRlciAoZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoY29tcC50aHJl YWRfc3RhdGVfcykpOwogfQogCi1zdGF0aWMgdm9pZAotZGVmaW5lX2Nhc3RfdW5pb24gKHZvaWQp CitzdHJ1Y3QgY2FzdF90eXBlCiB7CisgIGdjY19qaXRfdHlwZSAqIHR5cGU7CisgIGNvbnN0IGNo YXIgKm5hbWU7Cit9OworCitzdGF0aWMgZ2NjX2ppdF9mdW5jdGlvbiAqCitkZWZpbmVfY2FzdF9m cm9tX3RvKHN0cnVjdCBjYXN0X3R5cGUgZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0 X3R5cGUgdG8sIGludCB0b19pbmRleCkKK3sKKyAgTGlzcF9PYmplY3QgbmFtZSA9IENBTExOKEZm b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9zdHJpbmcoImNhc3RfZnJv bV8lc190b18lcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRfc3RyaW5nKGZy b20ubmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9zdHJpbmcodG8ubmFt ZSkpOworICBnY2Nfaml0X3BhcmFtICogcGFyYW0gPSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFt KGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcm9tLnR5cGUsICJhcmciKTsKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqIHJl c3VsdCA9CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NDX0pJVF9GVU5DVElPTl9BTFdBWVNfSU5MSU5FLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRvLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1NEQVRBKG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworCisgIERFQ0xfQkxPQ0sgKGVudHJ5X2Js b2NrLCByZXN1bHQpOworCisgIGdjY19qaXRfbHZhbHVlICp0bXBfdW5pb24KKyAgICA9IGdjY19q aXRfZnVuY3Rpb25fbmV3X2xvY2FsIChyZXN1bHQsIE5VTEwsIGNvbXAuY2FzdF91bmlvbl90eXBl LCAidW5pb25fY2FzdCIpOworCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGVudHJ5 X2Jsb2NrLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2 YWx1ZV9hY2Nlc3NfZmllbGQgKHRtcF91bmlvbiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW2Zyb21faW5kZXhdKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUocGFyYW0p KTsKKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybihlbnRyeV9ibG9jaywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2NjX2ppdF9ydmFsdWVfYWNjZXNzX2ZpZWxkICgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHRtcF91bmlvbiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW3RvX2luZGV4XSkpOworCisg IHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkCitkZWZpbmVfY2FzdF9mdW5jdGlvbnMg KHZvaWQpCit7CisgIHN0cnVjdCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FTVF9UWVBFU10g PQorICAgIHt7Y29tcC5ib29sX3R5cGUsICJib29sIn0sCisgICAgIHtjb21wLmNoYXJfcHRyX3R5 cGUsICJjaGFyX3B0ciJ9LAorICAgICB7Y29tcC5pbnRfdHlwZSwgImludCJ9LAorICAgICB7Y29t cC5saXNwX2NvbnNfcHRyX3R5cGUsICJjb25zX3B0ciJ9LAorICAgICB7Y29tcC5saXNwX29ial9w dHJfdHlwZSwgImxpc3Bfb2JqX3B0ciJ9LAorICAgICB7Y29tcC5saXNwX3dvcmRfdGFnX3R5cGUs ICJsaXNwX3dvcmRfdGFnIn0sCisgICAgIHtjb21wLmxpc3Bfd29yZF90eXBlLCAibGlzcF93b3Jk In0sCisgICAgIHtjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19sb25nIn0sCisgICAgIHtjb21w LmxvbmdfdHlwZSwgImxvbmcifSwKKyAgICAge2NvbXAucHRyZGlmZl90eXBlLCAicHRyZGlmZiJ9 LAorICAgICB7Y29tcC51aW50cHRyX3R5cGUsICJ1aW50cHRyIn0sCisgICAgIHtjb21wLnVuc2ln bmVkX2xvbmdfbG9uZ190eXBlLCAidW5zaWduZWRfbG9uZ19sb25nIn0sCisgICAgIHtjb21wLnVu c2lnbmVkX2xvbmdfdHlwZSwgInVuc2lnbmVkX2xvbmcifSwKKyAgICAge2NvbXAudW5zaWduZWRf dHlwZSwgInVuc2lnbmVkIn0sCisgICAgIHtjb21wLnZvaWRfcHRyX3R5cGUsICJ2b2lkX3B0ciJ9 fTsKKworICAvKiBEZWZpbmUgdGhlIHVuaW9uIHVzZWQgZm9yIGNhc3RpbmcuICovCisgIGZvciAo aW50IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAgICB7CisgICAgICBjb21wLmNh c3RfdHlwZXNbaV0gPSBjYXN0X3R5cGVzW2ldLnR5cGU7CisgICAgICBjb21wLmNhc3RfdW5pb25f ZmllbGRzW2ldID0gZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2FzdF90eXBlc1tpXS50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc3RfdHlwZXNbaV0ubmFtZSk7Cisg ICAgfQogCi0gIGNvbXAuY2FzdF91bmlvbl9hc19sbCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25l d19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5sb25n X2xvbmdfdHlwZSwKLQkJCSAgICAgICAibGwiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX3VsbCA9 Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5V TEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKLQkJCSAgICAgICAi dWxsIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19sID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3 X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxvbmdf dHlwZSwKLQkJCSAgICAgICAibCIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfdWwgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ190eXBlLAotCQkJICAgICAgICJ1bCIpOwotICBjb21w LmNhc3RfdW5pb25fYXNfdSA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5j dHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF90eXBlLAotCQkJ ICAgICAgICJ1Iik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19pID0KLSAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21w LmludF90eXBlLAotCQkJICAgICAgICJpIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19iID0KLSAg ICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwK LQkJCSAgICAgICBjb21wLmJvb2xfdHlwZSwKLQkJCSAgICAgICAiYiIpOwotICBjb21wLmNhc3Rf dW5pb25fYXNfdWludHB0ciA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5j dHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51aW50cHRyX3R5cGUsCi0JCQkg ICAgICAgInVpbnRwdHIiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX3B0cmRpZmYgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAucHRyZGlmZl90eXBlLAotCQkJICAgICAgICJwdHJkaWZmIik7Ci0gIGNvbXAu Y2FzdF91bmlvbl9hc19jX3AgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAu Y3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuY2hhcl9wdHJfdHlwZSwKLQkJ CSAgICAgICAiY19wIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc192X3AgPQotICAgIGdjY19qaXRf Y29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAg IGNvbXAudm9pZF9wdHJfdHlwZSwKLQkJCSAgICAgICAidl9wIik7Ci0gIGNvbXAuY2FzdF91bmlv bl9hc19saXNwX2NvbnNfcHRyID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21w LmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxpc3BfY29uc19wdHJfdHlw ZSwKLQkJCSAgICAgICAiY29uc19wdHIiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29y ZCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAg IE5VTEwsCi0JCQkgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwKLQkJCSAgICAgICAibGlzcF93 b3JkIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnID0KLSAgICBnY2Nfaml0 X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmxpc3Bfd29y ZF90YWdfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlzcF93b3JkX3Rh ZyIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9vYmpfcHRyID0KLSAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBj b21wLmxpc3Bfb2JqX3B0cl90eXBlLAotCQkJICAgICAgICJsaXNwX29ial9wdHIiKTsKLQotCi0g IGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fZmllbGRzW10gPQotICAgIHsgY29tcC5jYXN0X3Vu aW9uX2FzX2xsLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VsbCwKLSAgICAgIGNvbXAuY2Fz dF91bmlvbl9hc19sLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VsLAotICAgICAgY29tcC5j YXN0X3VuaW9uX2FzX3UsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfaSwKLSAgICAgIGNvbXAu Y2FzdF91bmlvbl9hc19iLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VpbnRwdHIsCi0gICAg ICBjb21wLmNhc3RfdW5pb25fYXNfcHRyZGlmZiwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc19j X3AsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfdl9wLAotICAgICAgY29tcC5jYXN0X3VuaW9u X2FzX2xpc3BfY29uc19wdHIsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkLAot ICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZF90YWcsCi0gICAgICBjb21wLmNhc3Rf dW5pb25fYXNfbGlzcF9vYmpfcHRyIH07CiAgIGNvbXAuY2FzdF91bmlvbl90eXBlID0KICAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3VuaW9uX3R5cGUgKGNvbXAuY3R4dCwKIAkJCQkgICAgTlVMTCwK IAkJCQkgICAgImNhc3RfdW5pb24iLAotCQkJCSAgICBBUlJBWUVMVFMgKGNhc3RfdW5pb25fZmll bGRzKSwKLQkJCQkgICAgY2FzdF91bmlvbl9maWVsZHMpOworCQkJCSAgICBOVU1fQ0FTVF9UWVBF UywKKwkJCQkgICAgY29tcC5jYXN0X3VuaW9uX2ZpZWxkcyk7CisKKyAgLyogRGVmaW5lIHRoZSBj YXN0IGZ1bmN0aW9ucyB1c2luZyBhIG1hdHJpeC4gKi8KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBO VU1fQ0FTVF9UWVBFUzsgKytpKQorICAgIGZvciAoaW50IGogPSAwOyBqIDwgTlVNX0NBU1RfVFlQ RVM7ICsraikKKyAgICAgICAgY29tcC5jYXN0X2Z1bmN0aW9uc19mcm9tX3RvW2ldW2pdID0KKyAg ICAgICAgICBkZWZpbmVfY2FzdF9mcm9tX3RvIChjYXN0X3R5cGVzW2ldLCBpLCBjYXN0X3R5cGVz W2pdLCBqKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQwNDEsNyArMzk3MSw3IEBAIERFRlVOICgi Y29tcC0taW5pdC1jdHh0IiwgRmNvbXBfX2luaXRfY3R4dCwgU2NvbXBfX2luaXRfY3R4dCwKICAg ZGVmaW5lX2ptcF9idWYgKCk7CiAgIGRlZmluZV9oYW5kbGVyX3N0cnVjdCAoKTsKICAgZGVmaW5l X3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKCk7Ci0gIGRlZmluZV9jYXN0X3VuaW9uICgpOworICBkZWZp bmVfY2FzdF9mdW5jdGlvbnMgKCk7CiAgIGRlZmluZV9uYWl2ZV9iemVybyAoKTsKICAgZGVmaW5l X25haXZlX21lbWNweSAoKTsKIAotLSAKMi4yNS4xLndpbmRvd3MuMQoK --000000000000ace01405a6deee60 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_katrry4n0 RnJvbSA5YTA5MGMwMmFlZGQ1ZWUyMzk1MWJhY2I1ZjBjNTI3NWEzNzM4NzVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAwMDoz NDozMiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBEZWZpbmUgc3RhdGljIGRhdGEgdXNpbmcg c3RyaW5nIGxpdGVyYWxzLgoKVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gZHVtcCBw cmV0dGllciBDIGZpbGVzLgpUaGlzIGRvZXMgbm90IGFmZmVjdCBjb21waWxhdGlvbiB0aW1lcyBp biBteSB0ZXN0cy4KCiogc3JjL2NvbXAuYyAoZW1pdF9zdGF0aWNfb2JqZWN0KTogRGVmaW5lIHN0 YXRpYyBvYmplY3RzIHVzaW5nIHN0cmluZwpsaXRlcmFscywgbWVtY3B5IGFuZCBiemVyby4KLS0t CiBzcmMvY29tcC5jIHwgMzAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDk5 NjE2OGJiYjUuLjNmNGIzZTAzYjcgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2Nv bXAuYwpAQCAtNDYsNiArNDYsNyBAQAogIyBpbmNsdWRlICJ3MzJjb21tb24uaCIKIAogI3VuZGVm IGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyN1bmRlZiBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50X29wCiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfY29tbWVudAogI3VuZGVmIGdj Y19qaXRfYmxvY2tfYWRkX2V2YWwKICN1bmRlZiBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRp dGlvbmFsCkBAIC03NSw2ICs3Niw3IEBACiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFs dWVfZnJvbV9pbnQKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcK ICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI3VuZGVmIGdjY19q aXRfY29udGV4dF9uZXdfc3RyaW5nX2xpdGVyYWwKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlCiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI3VuZGVm IGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZQpAQCAtMTY0LDYgKzE2Niw4IEBAIERFRl9E TExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21f bG9uZywKICAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAq bnVtZXJpY190eXBlLCBsb25nIHZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAq LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciwKICAgICAgICAgICAgIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAqcG9pbnRlcl90eXBlLCB2b2lkICp2YWx1 ZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19z dHJpbmdfbGl0ZXJhbCwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGNvbnN0 IGNoYXIgKnZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAqLCBnY2Nfaml0X2Nv bnRleHRfbmV3X3VuYXJ5X29wLAogICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwg Z2NjX2ppdF9sb2NhdGlvbiAqbG9jLAogICAgICAgICAgICAgIGVudW0gZ2NjX2ppdF91bmFyeV9v cCBvcCwgZ2NjX2ppdF90eXBlICpyZXN1bHRfdHlwZSwKQEAgLTE5Nyw2ICsyMDEsOSBAQCBERUZf RExMX0ZOIChnY2Nfaml0X3R5cGUgKiwgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyLCAoZ2NjX2pp dF90eXBlICp0eXBlKSk7CiBERUZfRExMX0ZOICh2b2lkLCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3Np Z25tZW50LAogICAgICAgICAgICAgKGdjY19qaXRfYmxvY2sgKmJsb2NrLCBnY2Nfaml0X2xvY2F0 aW9uICpsb2MsIGdjY19qaXRfbHZhbHVlICpsdmFsdWUsCiAgICAgICAgICAgICAgZ2NjX2ppdF9y dmFsdWUgKnJ2YWx1ZSkpOworREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudF9vcCwKKyAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2NjX2ppdF9s b2NhdGlvbiAqbG9jLCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAorICAgICAgICAgICAgIGVudW0g Z2NjX2ppdF9iaW5hcnlfb3Agb3AsIGdjY19qaXRfcnZhbHVlICpydmFsdWUpKTsKIERFRl9ETExf Rk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwsCiAgICAgICAgICAgICAoZ2NjX2ppdF9i bG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywKICAgICAgICAgICAgICBnY2Nfaml0 X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yMzksNiArMjQ2LDcgQEAgaW5pdF9nY2NqaXRfZnVuY3Rp b25zICh2b2lkKQogCiAgIC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwogICBMT0FEX0RMTF9G TiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCk7CisgIExPQURfRExMX0ZO IChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wKTsKICAgTE9BRF9ETExf Rk4gKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQpOwogICBMT0FEX0RMTF9GTiAo bGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCk7CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5 LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsKTsKQEAgLTI2OCw2ICsyNzYsNyBA QCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBn Y2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCk7CiAgIExPQURfRExMX0ZOIChsaWJy YXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcpOwogICBMT0FEX0RMTF9G TiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9wdHIpOworICBMT0FE X0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJpbmdfbGl0ZXJhbCk7CiAg IExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlKTsK ICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3ApOwog ICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBlKTsK QEAgLTI5Niw2ICszMDUsNyBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAKIC8qIElu IGFscGhhYmV0aWNhbCBvcmRlciAqLwogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25t ZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyNkZWZpbmUgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudF9vcCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wCiAj ZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQgZm5fZ2NjX2ppdF9ibG9ja19hZGRfY29t bWVudAogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIGZuX2djY19qaXRfYmxvY2tfYWRk X2V2YWwKICNkZWZpbmUgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25kaXRpb25hbCBmbl9nY2Nf aml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsCkBAIC0zMjUsNiArMzM1LDcgQEAgI2RlZmlu ZSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIGZuX2djY19qaXRfY29udGV4dF9uZXdfcGFyYW0K ICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgZm5fZ2NjX2ppdF9j b250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQKICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19y dmFsdWVfZnJvbV9sb25nIGZuX2djY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZwog I2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciBmbl9nY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3N0 cmluZ19saXRlcmFsIGZuX2djY19qaXRfY29udGV4dF9uZXdfc3RyaW5nX2xpdGVyYWwKICNkZWZp bmUgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSBmbl9nY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlCiAjZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3AgZm5fZ2Nj X2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3Vu aW9uX3R5cGUgZm5fZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBlCkBAIC01NDgsNiArNTU5 LDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKICAgZ2NjX2ppdF9ydmFsdWUgKmRh dGFfcmVsb2NzX2VwaGVtZXJhbDsKICAgLyogU3ludGhlc2l6ZWQgc3RydWN0IGhvbGRpbmcgZnVu YyByZWxvY3MuICAqLwogICBnY2Nfaml0X2x2YWx1ZSAqZnVuY19yZWxvY3M7CisgIGdjY19qaXRf ZnVuY3Rpb24gKm5haXZlX2J6ZXJvOworICBnY2Nfaml0X2Z1bmN0aW9uICpuYWl2ZV9tZW1jcHk7 CiAgIExpc3BfT2JqZWN0IGRfZGVmYXVsdF9pZHg7CiAgIExpc3BfT2JqZWN0IGRfaW1wdXJlX2lk eDsKICAgTGlzcF9PYmplY3QgZF9lcGhlbWVyYWxfaWR4OwpAQCAtMjM0NiwxMCArMjM1OSw3IEBA IGVtaXRfc3RhdGljX29iamVjdCAoY29uc3QgY2hhciAqbmFtZSwgTGlzcF9PYmplY3Qgb2JqKQog ewogICAvKiBsaWJnY2NqaXQgaGFzIG5vIHN1cHBvcnQgZm9yIGluaXRpYWxpemVkIHN0YXRpYyBk YXRhLgogICAgICBUaGUgbWVjaGFuaXNtIGJlbG93IGlzIGNlcnRhaW5seSBub3QgYWVzdGhldGlj IGJ1dCBJIGFzc3VtZSB0aGUgYm90dGxlIG5lY2sKLSAgICAgaW4gdGVybXMgb2YgcGVyZm9ybWFu Y2UgYXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4KLSAgICAgTk9URTogd2Ug Y2FuIG5vdCByZWxheSBvbiBsaWJnY2NqaXQgZXZlbiBmb3IgdmFsaWQgTlVMTCB0ZXJtaW5hdGVk IEMKLSAgICAgc3RyaW5ncyBjYXVzZSBvZiB0aGlzIGZ1bm55IGJ1ZyB0aGF0IHdpbGwgYWZmZWN0 IGFsbCBwcmUgZ2NjMTAgZXJhIGdjY3M6Ci0gICAgIGh0dHBzOi8vZ2NjLmdudS5vcmcvbWwvaml0 LzIwMTktcTMvbXNnMDAwMTMuaHRtbCAgKi8KKyAgICAgaW4gdGVybXMgb2YgcGVyZm9ybWFuY2Ug YXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4gKi8KIAogICBMaXNwX09iamVj dCBzdHIgPSBGcHJpbjFfdG9fc3RyaW5nIChvYmosIFFuaWwpOwogICBwdHJkaWZmX3QgbGVuID0g U0JZVEVTIChzdHIpOwpAQCAtMjM5OCwyMiArMjQwOCw5MSBAQCBlbWl0X3N0YXRpY19vYmplY3Qg KGNvbnN0IGNoYXIgKm5hbWUsIExpc3BfT2JqZWN0IG9iaikKICAgZ2NjX2ppdF9sdmFsdWUgKmFy ciA9CiAgICAgICBnY2Nfaml0X2x2YWx1ZV9hY2Nlc3NfZmllbGQgKGRhdGFfc3RydWN0LCBOVUxM LCBmaWVsZHNbMV0pOwogCi0gIGZvciAocHRyZGlmZl90IGkgPSAwOyBpIDwgbGVuOyBpKyssIHAr KykKKyAgZ2NjX2ppdF9sdmFsdWUgKnB0cnZhciA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2Fs IChmLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXAuY2hhcl9wdHJfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHRyIik7CisKKyAgZ2NjX2ppdF9ibG9ja19h ZGRfYXNzaWdubWVudCAoCisgICAgYmxvY2ssCisgICAgTlVMTCwKKyAgICBwdHJ2YXIsCisgICAg Z2NjX2ppdF9sdmFsdWVfZ2V0X2FkZHJlc3MgKAorICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19h cnJheV9hY2Nlc3MgKAorICAgICAgICBjb21wLmN0eHQsCisgICAgICAgIE5VTEwsCisgICAgICAg IGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoYXJyKSwKKyAgICAgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwgY29tcC5pbnRfdHlwZSwgMCkpLAorICAg ICAgTlVMTCkpOworCisgIC8qIEVtaXQgYSBjYWxsIHRvIG5haXZlX2J6ZXJvKCkgdG8gY2xlYXIg YWxsIHRoZSBzdGF0aWMgb2JqZWN0LiBJdAorICAgICBpcyBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5 IHNpbmNlIHRoZSBkeW5hbWljIGxpbmtlciB3aWxsIHRha2UgY2FyZQorICAgICBvZiB6ZXJvaW5n IHRoZSBtZW1vcnkgdG9vLiAqLworICBnY2Nfaml0X3J2YWx1ZSAqYnplcm9fYXJnc1syXQorICAg ID0ge2djY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocHRydmFyKSwKKyAgICAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gKyAxKX07 CisKKyAgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCAoYmxvY2ssIE5VTEwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCAoY29tcC5jdHh0LCBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAu bmFpdmVfYnplcm8sIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnplcm9fYXJncykpOworCisgIGZvciAocHRyZGlmZl90IGkgPSAwOyBpIDwg bGVuOykKICAgICB7Ci0gICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50ICgKLQlibG9j aywKLQlOVUxMLAotCWdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzICgKLQkgIGNvbXAu Y3R4dCwKLQkgIE5VTEwsCi0JICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKGFyciksCi0JICBn Y2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAotCQkJCQkgICAg ICAgY29tcC5wdHJkaWZmX3R5cGUsCi0JCQkJCSAgICAgICBpKSksCi0JZ2NjX2ppdF9jb250ZXh0 X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKLQkJCQkJICAgICBjb21wLmNoYXJfdHlw ZSwKLQkJCQkJICAgICAqcCkpOworICAgICAgLyogV2UgY2FuJ3QgdXNlIHN0cmluZyBsaXRlcmFs cyBsb25nZXIgdGhhdCAyMDAgYnl0ZXMgYmVjYXVzZQorICAgICAgICAgdGhleSBjYXVzZSBhIGNy YXNoIGluIG9sZGVyIHZlcnNpb25zIG9mIGdjY2ppdC4KKyAgICAgICAgIGh0dHBzOi8vZ2NjLmdu dS5vcmcvbWwvaml0LzIwMTktcTMvbXNnMDAwMTMuaHRtbCAgKi8KKyAgICAgIGNoYXIgc3RyWzIw MF07CisgICAgICBzdHJuY3B5IChzdHIsIHAsIDIwMCk7CisgICAgICBzdHJbMTk5XSA9IDA7Cisg ICAgICB1aW50cHRyX3QgbCA9IHN0cmxlbiAoc3RyKTsKKworICAgICAgaWYgKGwgIT0gMCkKKyAg ICAgICAgeworICAgICAgICAgIHAgKz0gbDsKKyAgICAgICAgICBpICs9IGw7CisKKyAgICAgICAg ICBnY2Nfaml0X3J2YWx1ZSAqYXJnc1szXQorICAgICAgICAgICAgPSB7Z2NjX2ppdF9sdmFsdWVf YXNfcnZhbHVlIChwdHJ2YXIpLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19z dHJpbmdfbGl0ZXJhbCAoY29tcC5jdHh0LCBzdHIpLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9j b250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9u Z190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGwpfTsKKworICAgICAgICAgIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwgKGJsb2NrLCBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdf Y2FsbCAoY29tcC5jdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5uYWl2ZV9tZW1jcHksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCBhcmdz KSk7CisgICAgICAgICAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoYmxvY2ssIE5VTEws IHB0cnZhciwKKyAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2dldF9hZGRyZXNzICgKKyAgICAg ICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MgKGNvbXAuY3R4dCwgTlVM TCwKKyAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHB0cnZhciksCisg ICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAu Y3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29tcC51aW50cHRyX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGwpKSwKKyAgICAgICAgICAgICAgTlVMTCkpOworICAgICAgICB9 CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAvKiBJZiBzdHJsZW4gcmV0dXJuZWQg MCB0aGF0IG1lYW5zIHRoYXQgdGhlIHN0YXRpYyBvYmplY3QKKyAgICAgICAgICAgICBjb250YWlu cyBhIE5VTEwgYnl0ZS4gSW4gdGhhdCBjYXNlIGp1c3QgbW92ZSBvdmVyIHRvIHRoZQorICAgICAg ICAgICAgIG5leHQgYmxvY2suIFdlIGNhbiByZWx5IG9uIHRoZSBieXRlIGJlaW5nIHplcm8gYmVj YXVzZSBvZgorICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBjYWxsIHRvIGJ6ZXJvIGFuZCBiZWNh dXNlIHRoZSBkeW5hbWljIGxpbmtlcgorICAgICAgICAgICAgIGNsZWFyZWQgaXQuICovCisgICAg ICAgICAgcCsrOworICAgICAgICAgIGkrKzsKKyAgICAgICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50ICgKKyAgICAgICAgICAgIGJsb2NrLCBOVUxMLCBwdHJ2YXIsCisgICAgICAgICAg ICBnY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcyAoCisgICAgICAgICAgICAgIGdjY19qaXRfY29u dGV4dF9uZXdfYXJyYXlfYWNjZXNzICgKKyAgICAgICAgICAgICAgICBjb21wLmN0eHQsIE5VTEws IGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocHRydmFyKSwKKyAgICAgICAgICAgICAgICBnY2Nf aml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlw ZSwgMSkpLAorICAgICAgICAgICAgICBOVUxMKSk7CisgICAgICAgIH0KICAgICB9CisKICAgZ2Nj X2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoCiAJYmxvY2ssCiAJTlVMTCwKQEAgLTI3NTksNiAr MjgzOCwxODkgQEAgZGVmaW5lX2ptcF9idWYgKHZvaWQpCiAJCQkJICAgICAxLCAmZmllbGQpOwog fQogCisvKgorICogbmFpdmUgaW1wbGVtZW50YXRpb24gb2YgYnplcm8uIEhvcGVmdWxseSBpdCB3 aWxsIGJlIHR1cm5lZCBpbnRvIGEKKyAqIHNtYXJ0ZXIgaW1wbGVtZW50YXRpb24gYnkgdGhlIG9w dGltaXplci4KKyAqLworCitzdGF0aWMgdm9pZAorZGVmaW5lX25haXZlX2J6ZXJvICh2b2lkKQor eworICAvKgorc3RhdGljIHZvaWQKK25haXZlX2J6ZXJvIChjaGFyICogcHRyLCB1bnNpZ25lZCBs b25nIGxvbmcgbGVuKQoreworICB1bnNpZ25lZCBsb25nIGxvbmcgaTsKKworZW50cnlfYmxvY2s6 CisgIGkgPSAodW5zaWduZWQgbG9uZyBsb25nKTA7CisgIGdvdG8gdGVzdF9ibG9jazsKKwordGVz dF9ibG9jazoKKyAgaWYgKGxlbiA+IGkpIGdvdG8gbG9vcF9ibG9jazsgZWxzZSBnb3RvIHJldHVy bl9ibG9jazsKKworbG9vcF9ibG9jazoKKyAgcHRyW2ldID0gKGNoYXIpMDsKKyAgaSArPSAodW5z aWduZWQgbG9uZyBsb25nKTE7CisgIGdvdG8gdGVzdF9ibG9jazsKKworcmV0dXJuX2Jsb2NrOgor ICByZXR1cm47Cit9CisgICovCisgIGdjY19qaXRfcGFyYW0gKnBhcmFtc1syXSA9IHsKKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAuY2hhcl9wdHJf dHlwZSwgInB0ciIpLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwg TlVMTCwgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibGVuIiksCisgIH07CisKKyAgY29tcC5uYWl2ZV9iemVybworICAgID0gZ2Nj X2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LCBOVUxMLCBHQ0NfSklUX0ZVTkNU SU9OX0lOVEVSTkFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC52 b2lkX3R5cGUsICJuYWl2ZV9iemVybyIsIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXJhbXMsIGZhbHNlKTsKKworICBERUNMX0JMT0NLIChlbnRyeV9ibG9jaywgY29t cC5uYWl2ZV9iemVybyk7CisgIERFQ0xfQkxPQ0sgKHRlc3RfYmxvY2ssIGNvbXAubmFpdmVfYnpl cm8pOworICBERUNMX0JMT0NLIChsb29wX2Jsb2NrLCBjb21wLm5haXZlX2J6ZXJvKTsKKyAgREVD TF9CTE9DSyAocmV0dXJuX2Jsb2NrLCBjb21wLm5haXZlX2J6ZXJvKTsKKworICBnY2Nfaml0X2x2 YWx1ZSAqcHRyID0gZ2NjX2ppdF9wYXJhbV9hc19sdmFsdWUgKHBhcmFtc1swXSk7CisgIGdjY19q aXRfbHZhbHVlICppID0gZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwgKGNvbXAubmFpdmVfYnpl cm8sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXAudWludHB0cl90eXBlLCAiaSIpOworCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2ln bm1lbnQgKGVudHJ5X2Jsb2NrLCBOVUxMLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7CisgIGdjY19qaXRf YmxvY2tfZW5kX3dpdGhfanVtcCAoZW50cnlfYmxvY2ssIE5VTEwsIHRlc3RfYmxvY2spOworCisg IC8qIGlmIChsZW4gPiBpKSAqLworCisgIGdjY19qaXRfcnZhbHVlICpjb21wYXJpc29uX3Jlc3Vs dAorICAgID0gZ2NjX2ppdF9jb250ZXh0X25ld19jb21wYXJpc29uIChjb21wLmN0eHQsIE5VTEws IEdDQ19KSVRfQ09NUEFSSVNPTl9HVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFtc1sxXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoaSkpOwor CisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwgKHRlc3RfYmxvY2ssIE5VTEws IGNvbXBhcmlzb25fcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wX2Jsb2NrLCByZXR1cm5fYmxvY2spOworCisgIC8qIHB0cltpXSA9IDA7ICovCisgIC8q IGkgKz0gMTsgKi8KKworICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChsb29wX2Jsb2Nr LCBOVUxMLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzIChjb21wLmN0eHQs IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZh bHVlX2FzX3J2YWx1ZSAocHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChpKSksCisgICAgZ2NjX2ppdF9jb250ZXh0X25l d19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwgY29tcC5jaGFyX3R5cGUsIDApKTsKKworICBn Y2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wICgKKyAgICBsb29wX2Jsb2NrLCBOVUxMLCBp LCBHQ0NfSklUX0JJTkFSWV9PUF9QTFVTLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21faW50IChjb21wLmN0eHQsIGNvbXAudWludHB0cl90eXBlLCAxKSk7CisKKyAgZ2NjX2pp dF9ibG9ja19lbmRfd2l0aF9qdW1wIChsb29wX2Jsb2NrLCBOVUxMLCB0ZXN0X2Jsb2NrKTsKKwor ICAvKiByZXR1cm47ICovCisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF92b2lkX3JldHVybiAo cmV0dXJuX2Jsb2NrLCBOVUxMKTsKK30KKworLyoKKyAqIG5haXZlIGltcGxlbWVudGF0aW9uIG9m IG1lbWNweS4gSG9wZWZ1bGx5IGl0IHdpbGwgYmUgdHVybmVkIGludG8gYQorICogc21hcnRlciBp bXBsZW1lbnRhdGlvbiBieSB0aGUgb3B0aW1pemVyLgorICovCisKK3N0YXRpYyB2b2lkCitkZWZp bmVfbmFpdmVfbWVtY3B5ICh2b2lkKQoreworICAvKgorc3RhdGljIHZvaWQgKgorbmFpdmVfbWVt Y3B5IChjaGFyICogZGVzdCwgY2hhciAqIHNyYywgdW5zaWduZWQgbG9uZyBsb25nIGxlbikKK3sK KyAgdW5zaWduZWQgbG9uZyBsb25nIGk7CisKK2VudHJ5X2Jsb2NrOgorICBpID0gKHVuc2lnbmVk IGxvbmcgbG9uZykwOworICBnb3RvIHRlc3RfYmxvY2s7CisKK3Rlc3RfYmxvY2s6CisgIGlmIChs ZW4gPiBpKSBnb3RvIGxvb3BfYmxvY2s7IGVsc2UgZ290byByZXR1cm5fYmxvY2s7CisKK2xvb3Bf YmxvY2s6CisgIGRlc3RbaV0gPSBzcmNbaV07CisgIGkgKz0gKHVuc2lnbmVkIGxvbmcgbG9uZykx OworICBnb3RvIHRlc3RfYmxvY2s7CisKK3JldHVybl9ibG9jazoKKyAgcmV0dXJuIGRlc3Q7Cit9 CisgICovCisgIGdjY19qaXRfcGFyYW0gKnBhcmFtc1szXSA9IHsKKyAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAuY2hhcl9wdHJfdHlwZSwgImRlc3Qi KSwKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAu Y2hhcl9wdHJfdHlwZSwgInNyYyIpLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNv bXAuY3R4dCwgTlVMTCwgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibGVuIiksCisgIH07CisKKyAgY29tcC5uYWl2ZV9tZW1jcHkK KyAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZnVuY3Rpb24gKGNvbXAuY3R4dCwgTlVMTCwgR0ND X0pJVF9GVU5DVElPTl9JTlRFUk5BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXAudm9pZF9wdHJfdHlwZSwgIm5haXZlX21lbWNweSIsIDMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIGZhbHNlKTsKKworICBERUNMX0JMT0NLIChl bnRyeV9ibG9jaywgY29tcC5uYWl2ZV9tZW1jcHkpOworICBERUNMX0JMT0NLICh0ZXN0X2Jsb2Nr LCBjb21wLm5haXZlX21lbWNweSk7CisgIERFQ0xfQkxPQ0sgKGxvb3BfYmxvY2ssIGNvbXAubmFp dmVfbWVtY3B5KTsKKyAgREVDTF9CTE9DSyAocmV0dXJuX2Jsb2NrLCBjb21wLm5haXZlX21lbWNw eSk7CisKKyAgZ2NjX2ppdF9sdmFsdWUgKmRlc3QgPSBnY2Nfaml0X3BhcmFtX2FzX2x2YWx1ZSAo cGFyYW1zWzBdKTsKKyAgZ2NjX2ppdF9sdmFsdWUgKnNyYyA9IGdjY19qaXRfcGFyYW1fYXNfbHZh bHVlIChwYXJhbXNbMV0pOworICBnY2Nfaml0X2x2YWx1ZSAqaSA9IGdjY19qaXRfZnVuY3Rpb25f bmV3X2xvY2FsIChjb21wLm5haXZlX21lbWNweSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsICJpIik7CisK KyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsIGksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21faW50IChjb21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDApKTsKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9qdW1wIChlbnRyeV9ibG9j aywgTlVMTCwgdGVzdF9ibG9jayk7CisKKyAgLyogaWYgKGxlbiA+IGkpICovCisKKyAgZ2NjX2pp dF9ydmFsdWUgKmNvbXBhcmlzb25fcmVzdWx0CisgICAgPSBnY2Nfaml0X2NvbnRleHRfbmV3X2Nv bXBhcmlzb24gKGNvbXAuY3R4dCwgTlVMTCwgR0NDX0pJVF9DT01QQVJJU09OX0dULAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAo cGFyYW1zWzJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2pp dF9sdmFsdWVfYXNfcnZhbHVlIChpKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25k aXRpb25hbCAodGVzdF9ibG9jaywgTlVMTCwgY29tcGFyaXNvbl9yZXN1bHQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BfYmxvY2ssIHJldHVybl9ibG9jayk7CisK KyAgLyogZGVzdFtpXSA9IHNyY1tpXTsgKi8KKyAgLyogaSArPSAxOyAqLworCisgIGdjY19qaXRf YmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGxvb3BfYmxvY2ssIE5VTEwsCisgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19hcnJheV9hY2Nlc3MgKGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChkZXN0KSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZh bHVlIChpKSksCisgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlICgKKyAgICAgIGdjY19qaXRf Y29udGV4dF9uZXdfYXJyYXlfYWNjZXNzIChjb21wLmN0eHQsIE5VTEwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChzcmMp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVl X2FzX3J2YWx1ZSAoaSkpKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCAo bG9vcF9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NDX0pJVF9CSU5BUllfT1BfUExVUywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY3R4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlwZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRf d2l0aF9qdW1wIChsb29wX2Jsb2NrLCBOVUxMLCB0ZXN0X2Jsb2NrKTsKKworICAvKiByZXR1cm4g ZGVzdDsgKi8KKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybiAocmV0dXJuX2Jsb2Nr LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9wYXJhbV9h c19ydmFsdWUgKHBhcmFtc1swXSkpOworfQorCiAvKiBzdHJ1Y3QgaGFuZGxlciBkZWZpbml0aW9u ICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMzc4MCw2ICs0MDQyLDggQEAgREVGVU4gKCJjb21wLS1p bml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0LCBTY29tcF9faW5pdF9jdHh0LAogICBkZWZpbmVf aGFuZGxlcl9zdHJ1Y3QgKCk7CiAgIGRlZmluZV90aHJlYWRfc3RhdGVfc3RydWN0ICgpOwogICBk ZWZpbmVfY2FzdF91bmlvbiAoKTsKKyAgZGVmaW5lX25haXZlX2J6ZXJvICgpOworICBkZWZpbmVf bmFpdmVfbWVtY3B5ICgpOwogCiAgIHJldHVybiBRdDsKIH0KLS0gCjIuMjUuMS53aW5kb3dzLjEK Cg== --000000000000ace01405a6deee60-- From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. References: 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 X-GNU-PR-Keywords: To: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159087723216694 (code B ref 41615); Sat, 30 May 2020 22:21:02 +0000 Received: (at 41615) by debbugs.gnu.org; 30 May 2020 22:20:32 +0000 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 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 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) MIME-Version: 1.0 From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sat, 30 May 2020 19:20:13 -0300 Message-ID: Content-Type: multipart/mixed; boundary="000000000000db63be05a6e4f73e" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --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-- From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 10:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159092191320510 (code B ref 41615); Sun, 31 May 2020 10:46:01 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 10:45:13 +0000 Received: from localhost ([127.0.0.1]:59849 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfLSq-0005Kk-Ik for submit@debbugs.gnu.org; Sun, 31 May 2020 06:45:12 -0400 Received: from mx.sdf.org ([205.166.94.20]:51776) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfLSo-0005Kb-LP for 41615@debbugs.gnu.org; Sun, 31 May 2020 06:45:11 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VAj980019823 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 10:45:09 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VAj9Nw000960; Sun, 31 May 2020 10:45:09 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 10:45:09 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sat, 30 May 2020 19:20:13 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Nicolas B=C3=A9rtolo writes: > I have reformatted the patches. > > Sorry for the inconveniences. > > From ef7b9b95cff6824af041a7536588334aeed1ee12 Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Sat, 30 May 2020 18:33:58 -0300 > Subject: [PATCH 2/2] Define casts using functions. > > This is to dump prettier C files. > This does not affect compilation times in my tests. > > * src/comp.c: Define a 15x15 cast matrix. Use it in emit_coerce(). I like the idea of the patch. I've tested it too and I do not see compile time overhead. > src/comp.c | 279 ++++++++++++++++++++--------------------------------- > 1 file changed, 106 insertions(+), 173 deletions(-) > > diff --git a/src/comp.c b/src/comp.c > index 2f78760764..9d8445de9a 100644 > --- a/src/comp.c > +++ b/src/comp.c > @@ -455,6 +455,8 @@ #define F_RELOC_MAX_SIZE 1500 >=20=20 > static f_reloc_t freloc; >=20=20 > +#define NUM_CAST_TYPES 15 > + > /* C side of the compiler context. */ >=20=20 [...] > +static gcc_jit_function * > +define_cast_from_to (struct cast_type from, int from_index, struct cast_= type to, > + int to_index) > +{ > + Lisp_Object name =3D CALLN (Fformat, > + build_string ("cast_from_%s_to_%s"), > + build_string (from.name), > + build_string (to.name)); Minor, for other code if we know strings are not very long we use format_string not to allocate. Libgccjit copy the string by itself. > + gcc_jit_param *param =3D gcc_jit_context_new_param (comp.ctxt, NULL, > + from.type, "arg"); > + gcc_jit_function *result =3D gcc_jit_context_new_function (comp.ctxt, > NULL, > - comp.lisp_word_tag_type, > - "lisp_word_tag"); > - comp.cast_union_as_lisp_obj_ptr =3D > - gcc_jit_context_new_field (comp.ctxt, > - NULL, > - comp.lisp_obj_ptr_type, > - "lisp_obj_ptr"); > - > - > - gcc_jit_field *cast_union_fields[] =3D > - { comp.cast_union_as_ll, > - comp.cast_union_as_ull, > - comp.cast_union_as_l, > - comp.cast_union_as_ul, > - comp.cast_union_as_u, > - comp.cast_union_as_i, > - comp.cast_union_as_b, > - comp.cast_union_as_uintptr, > - comp.cast_union_as_ptrdiff, > - comp.cast_union_as_c_p, > - comp.cast_union_as_v_p, > - comp.cast_union_as_lisp_cons_ptr, > - comp.cast_union_as_lisp_word, > - comp.cast_union_as_lisp_word_tag, > - comp.cast_union_as_lisp_obj_ptr }; > + GCC_JIT_FUNCTION_ALWAYS_INLINE, We'll have to keep an eye on this always inline. Depending on the GCC version if the inline fail I've seen these ending-up in a unrecoverable compilation error within libgccjit. > + to.type, > + SSDATA (name), > + 1, > + ¶m, > + 0); > + > + DECL_BLOCK (entry_block, result); > + > + gcc_jit_lvalue *tmp_union > + =3D gcc_jit_function_new_local (result, > + NULL, > + comp.cast_union_type, > + "union_cast"); > + > + gcc_jit_block_add_assignment (entry_block, NULL, > + gcc_jit_lvalue_access_field (tmp_union, = NULL, > + comp.cast_union_fields[from_index]), > + gcc_jit_param_as_rvalue (param)); > + > + gcc_jit_block_end_with_return (entry_block, > + NULL, > + gcc_jit_rvalue_access_field ( > + gcc_jit_lvalue_as_rvalue (tmp_union), > + NULL, > + comp.cast_union_fields[to_index])); > + > + return result; > +} > + > +static void > +define_cast_functions (void) > +{ > + struct cast_type cast_types[NUM_CAST_TYPES] > + =3D {{comp.bool_type, "bool"}, Just a nit, in the rest of the file I used spaces after { for array initializers, I think in this patch previously you did it too. > + {comp.char_ptr_type, "char_ptr"}, > + {comp.int_type, "int"}, > + {comp.lisp_cons_ptr_type, "cons_ptr"}, > + {comp.lisp_obj_ptr_type, "lisp_obj_ptr"}, > + {comp.lisp_word_tag_type, "lisp_word_tag"}, > + {comp.lisp_word_type, "lisp_word"}, > + {comp.long_long_type, "long_long"}, > + {comp.long_type, "long"}, > + {comp.ptrdiff_type, "ptrdiff"}, > + {comp.uintptr_type, "uintptr"}, > + {comp.unsigned_long_long_type, "unsigned_long_long"}, > + {comp.unsigned_long_type, "unsigned_long"}, > + {comp.unsigned_type, "unsigned"}, > + {comp.void_ptr_type, "void_ptr"}}; > + On the subject of 'emit_coerce' in case you like to do more work in the area I think would be good to have an additional boolean parameter called like 'safe'. If this is true and we cast from a smaller size to a bigger one we should zero the cast union first. In case false we should raise an ICE. Thanks Andrea --=20 akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 11:38:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.15909250741235 (code B ref 41615); Sun, 31 May 2020 11:38:01 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 11:37:54 +0000 Received: from localhost ([127.0.0.1]:59868 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfMHq-0000Jq-4q for submit@debbugs.gnu.org; Sun, 31 May 2020 07:37:54 -0400 Received: from mx.sdf.org ([205.166.94.20]:62623) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfMHo-0000Ji-So for 41615@debbugs.gnu.org; Sun, 31 May 2020 07:37:53 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VBbo2C008829 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 11:37:50 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VBboaQ028669; Sun, 31 May 2020 11:37:50 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 11:37:50 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sat, 30 May 2020 19:20:13 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Nicolas B=C3=A9rtolo writes: > I have reformatted the patches. > > Sorry for the inconveniences. > > > From 0720ec7eb3dc552b018273cd68a5f7d6bb2fdb72 Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Wed, 20 May 2020 00:34:32 -0300 > Subject: [PATCH 1/2] Define static data using string literals. > > The purpose of this change is to dump prettier C files. > This does not affect compilation times in my tests. > > * src/comp.c (emit_static_object): Define static objects using string > literals, memcpy and bzero. > --- > src/comp.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 277 insertions(+), 18 deletions(-) I like this considerably less :) It introduces quite some complexity and the same advantage in debuggability can be achieved with something like the attached 8 line patch (untested). Generally speaking I want to try to keep our back-end as simple as we manage to. On the subject of 'emit_static_object' the current situation is not ideal. But rather that working around the workaround I believe the right thing to do is to improve GCC with a new entry point and keep the current arrangement as a simple fallback. I've already an half cooked GCC patch to allow for directly injecting blobs, this should have more then one advantage. Hopefully I manage to start testing it today, I'm rather curious. Andrea --=20 akrl@sdf.org --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Emit-better-debug-comments-in-emit_static_object.patch >From 2154060e21c6d74d46cf274abaa716bec8fd2ac5 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 31 May 2020 12:22:46 +0100 Subject: [PATCH] * Emit better debug comments in emit_static_object * src/comp.c (emit_static_object): Do not truncate debug comments at the first NULL character. --- src/comp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/comp.c b/src/comp.c index d3bff1e4cf..179e97a551 100644 --- a/src/comp.c +++ b/src/comp.c @@ -2392,8 +2392,12 @@ emit_static_object (const char *name, Lisp_Object obj) 0, NULL, 0); DECL_BLOCK (block, f); - /* NOTE this truncates if the data has some zero byte before termination. */ - gcc_jit_block_add_comment (block, NULL, p); + char *comment = memcpy (xmalloc (len), p, len); + for (ptrdiff_t i = 0; i < len - 1; i++) + if (!comment[i]) + comment[i] = '\n'; + gcc_jit_block_add_comment (block, NULL, comment); + xfree (comment); gcc_jit_lvalue *arr = gcc_jit_lvalue_access_field (data_struct, NULL, fields[1]); -- 2.17.1 --=-=-=-- From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 15:43:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159093975125035 (code B ref 41615); Sun, 31 May 2020 15:43:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 15:42:31 +0000 Received: from localhost ([127.0.0.1]:33631 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQ6Y-0006Vj-Tq for submit@debbugs.gnu.org; Sun, 31 May 2020 11:42:31 -0400 Received: from mail-oi1-f171.google.com ([209.85.167.171]:42383) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQ6W-0006VV-Dj for 41615@debbugs.gnu.org; Sun, 31 May 2020 11:42:28 -0400 Received: by mail-oi1-f171.google.com with SMTP id l6so6904171oic.9 for <41615@debbugs.gnu.org>; Sun, 31 May 2020 08:42:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5axt6wKG6GFRE0ieTWYgzj11QY0P8gkhHxWyX7FRbNw=; b=Igo9uV5GB1WGuX4E8tv8tTu0ooVW3h4aWZShjjsqhfGZmg3A7ULMWLObsdy2i2+fTB LOT7ptUK+17W4zNRIPbs6mgTGf9OS75CEQEeFj6C4i10USAUBQ0jvRkJ1uqUVg8HWG6c WZQfsJAUdCAadJyT7lWTmFX0xfKeR3O43sANJZXvHqg/DgNgIgC//XpHbXIJgiOap5gC QfY9gRuYOis/KvfK6rrIkZajF3nM812R5ydWqxZ6yCKSjFF9tOdvRAky8gPp2P94zKg/ yavEyT9HtYfPPLkiUILOg8BtqeJiLA/uVubfu/PKEhSNsulvucTITOPyxUYqyKGzGexn 2zHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5axt6wKG6GFRE0ieTWYgzj11QY0P8gkhHxWyX7FRbNw=; b=OJ1GCestByy1mQ6xYPbJFbzv3k2H+OnUVW08sW0vXNl4vHWuu8yPnmZcc5QsS7iZ2Y /XMJy/NT/eaOFGfxakOPJWX+CykhXl0v6fMxrOhHalj7LGBdmZYaYRBH3JMgHz8R1J+O 9z5iX3gNg+D0OFWsmZFfpCXBol5+hyq4QeZPiUCwGsoRCx5EkmGUCrFmGByn+KqowTee gGOP/vbf1424QB5CSfMqjC9wXAVKrT5hZbg15x6evlnfdeDfP7RiLtq4XfFuSS/StP6+ FHlM4WiNyqAsay8s7FZuGrVAKW4kuOkyZeWy9Rvf4E9WG7g18PgNn2eS3FQSOZW02HoW AJLA== X-Gm-Message-State: AOAM530bhulhJX48SS06ffu94PEIKVdcx4EDyqSDhwIjWJ+DGRXMGv8s QT8RaBIJ5KFZb9jtBrgLrC2N95mOe8k/ipiNf9e1/XwVke4= X-Google-Smtp-Source: ABdhPJyjA1wVE+Drm0eBgyA9GvRkzIM0hDeZNO/zuNitvEXbJAe5WeG+Wh8s80iwXpNiU+vu3sx+RnltE/DtldwJWbQ= X-Received: by 2002:aca:b742:: with SMTP id h63mr767090oif.65.1590939742619; Sun, 31 May 2020 08:42:22 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sun, 31 May 2020 12:42:10 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I like the idea of the patch. I've tested it too and I do not see > compile time overhead. Good :). > On the subject of 'emit_coerce' in case you like to do more work in the > area I think would be good to have an additional boolean parameter > called like 'safe'. > If this is true and we cast from a smaller size to a bigger one we > should zero the cast union first. In case false we should raise an ICE. Ok, will try that. I will reuse the definition of naive_bzero() from the other patch. I will post an updated patch soon. Nico. From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 15:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159094010125579 (code B ref 41615); Sun, 31 May 2020 15:49:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 15:48:21 +0000 Received: from localhost ([127.0.0.1]:33639 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQCC-0006eT-QR for submit@debbugs.gnu.org; Sun, 31 May 2020 11:48:21 -0400 Received: from mx.sdf.org ([205.166.94.20]:59566) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQC9-0006eJ-Gk for 41615@debbugs.gnu.org; Sun, 31 May 2020 11:48:20 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VFmFB9000045 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 15:48:16 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VFmFaU006026; Sun, 31 May 2020 15:48:15 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 15:48:15 +0000 In-Reply-To: (Andrea Corallo's message of "Sun, 31 May 2020 11:37:50 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea Corallo writes: > Nicolas B=C3=A9rtolo writes: > >> I have reformatted the patches. >> >> Sorry for the inconveniences. >> >> >> From 0720ec7eb3dc552b018273cd68a5f7d6bb2fdb72 Mon Sep 17 00:00:00 2001 >> From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D >> Date: Wed, 20 May 2020 00:34:32 -0300 >> Subject: [PATCH 1/2] Define static data using string literals. >> >> The purpose of this change is to dump prettier C files. >> This does not affect compilation times in my tests. >> >> * src/comp.c (emit_static_object): Define static objects using string >> literals, memcpy and bzero. >> --- >> src/comp.c | 295 +++++++++++++++++++++++++++++++++++++++++++++++++---- >> 1 file changed, 277 insertions(+), 18 deletions(-) > > I like this considerably less :) > > It introduces quite some complexity and the same advantage in > debuggability can be achieved with something like the attached 8 line > patch (untested). > > Generally speaking I want to try to keep our back-end as simple as we > manage to. > > On the subject of 'emit_static_object' the current situation is not > ideal. But rather that working around the workaround I believe the right > thing to do is to improve GCC with a new entry point and keep the > current arrangement as a simple fallback. > > I've already an half cooked GCC patch to allow for directly injecting > blobs, this should have more then one advantage. Hopefully I manage to > start testing it today, I'm rather curious. > > Andrea Interesting news I've boostraped the Emacs with my GCC with blob support and measured an embarrassing low overall compile time. Then I questioned my-self "why is Nico not seeing any compile time benefit from his patch?" So I boostraped "Define static data using string literals" measuring a considerable improvement too. Is not as good as the one with specific GCC blob support but still very beneficial. Are you sure you do not see improvements in compile-time when this is applied? If is not the case maybe your memcpy is inlined and unrolled, but is quite strange that I do not see it here. Andrea --=20 akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 15:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159094048326132 (code B ref 41615); Sun, 31 May 2020 15:55:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 15:54:43 +0000 Received: from localhost ([127.0.0.1]:33647 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQIM-0006nP-Rp for submit@debbugs.gnu.org; Sun, 31 May 2020 11:54:43 -0400 Received: from mail-oo1-f68.google.com ([209.85.161.68]:46186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfQIL-0006nC-1U for 41615@debbugs.gnu.org; Sun, 31 May 2020 11:54:41 -0400 Received: by mail-oo1-f68.google.com with SMTP id g22so919828oop.13 for <41615@debbugs.gnu.org>; Sun, 31 May 2020 08:54:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=xPiUJb2CEs34w8iTwsWXT1YIWmjt8Qv9pHSEMAMzY8k=; b=JsNlG5p/lgxuhWyfDL9exmHQNGsfHmx4svxgADXDzmk9GfD/ICPxaB59mqF17kvj7O ol7vOHPS+32cBqP3kXRZHk71IQZmuCnUTQohi/g8oU8BMWAFZCO79v6GxgYFmJbcR1l1 yzQquJuZ+HzH/vFFCDchCT0xlOoJDDowWRlogxu0q07klTSd3mPjJrTnA8USjUm3ra5r IoXe4UtmrF5k7LBAktEmqC1HdCGYNL56cxZcHqE2JT0jgCy6OwR1SsSMcu2MPj8CQuRv IQd6/kFleuPbXUZHZbCV3N/l8rj8tZurwsUkDDfLp7bRilKZoZVoTRnO3EXNr5Qp++hr d2dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=xPiUJb2CEs34w8iTwsWXT1YIWmjt8Qv9pHSEMAMzY8k=; b=sJxCAB8BFdXAjVajF87kHdQBLlO9KOj/3AYCDaImRb6JwVYbo34o6LFBqV1fcdAcoS DX99cs2E4msYskEvI/7/j16x3vY3tAkqMFT2C3pMgkfcguiReYSKeVVdjZEEMuE2JjkR sh6CV5YkG8YLxeh3RV5NBkXMTVo/CeeOj5nVOX8IbDKRL8vtLXZrtyoO4Zn0uUTzJcBI P9268olPBg3C1HbntmIgUWPOnoHKqekStWcmrSekvIsMS7mjTPCHzRvJlEh/LH66+q6C 84sMYTgmhI/tyO6rXSnIzdy58nnJTFPZine487fYwWKT2h8bmoPCXJhUoxSVVFTYnqC1 AstQ== X-Gm-Message-State: AOAM531GvGQUIsQWUTWMvzZJ5GCGbbCn3HBJRI0NsrLwF6OQcAJhdi+v Unk+lAqqtm3wvW6UYd9528FQk8SNAn1ktW4TktE= X-Google-Smtp-Source: ABdhPJwEhHwpvJWnjNpsNCD/kg59a0vomdG6dLYV3lULqiQfYVI7xzDdxpIpxVc8DFJZnuU7AVdats4uizSEUZcHY60= X-Received: by 2002:a4a:bf14:: with SMTP id r20mr14066047oop.18.1590940475258; Sun, 31 May 2020 08:54:35 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sun, 31 May 2020 12:54:23 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I like this considerably less :) Ok, let's say goodbye to this patch. > It introduces quite some complexity and the same advantage in > debuggability can be achieved with something like the attached 8 line > patch (untested). Sounds good, I haven't tested it either. > Generally speaking I want to try to keep our back-end as simple as we > manage to. I initially wrote this patch chasing the reason for slow compile times. I think that a 10k line C file should be compiled much faster than what gccjit achieves. I thought that "uncommon" (for C) ways of doing thing were causing gccjit to get stuck trying to optimize them hard, until it gave up. I thought that filling the static data using memcpy() and constant strings would help GCC recognize this as a constant initialization and hopefully just store a completely initialized copy in memory. I found that GCC would inline memcpy() and the static initialization would turn into a very long unrolled loop with SSE instructions. I tested this with -O3 only in gccjit to force maximum optimization. I found this super strange considering that -ftree-loop-distribute-patterns is enabled at -O3 and it should recognize the naive_memcpy() function as an implementation of memcpy() and issue calls to libc's implementation. Instead, it was inlining and unrolling it. > On the subject of 'emit_static_object' the current situation is not > ideal. But rather that working around the workaround I believe the right > thing to do is to improve GCC with a new entry point and keep the > current arrangement as a simple fallback. I agree. > I've already an half cooked GCC patch to allow for directly injecting > blobs, this should have more then one advantage. Hopefully I manage to > start testing it today, I'm rather curious. Great to hear. Nico. From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 16:58:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.15909442657669 (code B ref 41615); Sun, 31 May 2020 16:58:01 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 16:57:45 +0000 Received: from localhost ([127.0.0.1]:33696 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfRHN-0001zd-9L for submit@debbugs.gnu.org; Sun, 31 May 2020 12:57:45 -0400 Received: from mx.sdf.org ([205.166.94.20]:52219) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfRHK-0001zT-NE for 41615@debbugs.gnu.org; Sun, 31 May 2020 12:57:43 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VGveku009373 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 16:57:41 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VGveJJ001942; Sun, 31 May 2020 16:57:40 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 16:57:40 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sun, 31 May 2020 12:54:23 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Nicolas B=C3=A9rtolo writes: >> I like this considerably less :) > > Ok, let's say goodbye to this patch. > >> It introduces quite some complexity and the same advantage in >> debuggability can be achieved with something like the attached 8 line >> patch (untested). > > Sounds good, I haven't tested it either. > >> Generally speaking I want to try to keep our back-end as simple as we >> manage to. > > I initially wrote this patch chasing the reason for slow compile times. I= think > that a 10k line C file should be compiled much faster than what gccjit ac= hieves. > I thought that "uncommon" (for C) ways of doing thing were causing gccjit= to get > stuck trying to optimize them hard, until it gave up. I thought that fill= ing the > static data using memcpy() and constant strings would help GCC recognize = this as > a constant initialization and hopefully just store a completely initializ= ed copy > in memory. > > I found that GCC would inline memcpy() and the static initialization woul= d turn > into a very long unrolled loop with SSE instructions. I tested this with = -O3 > only in gccjit to force maximum optimization. I found this super strange > considering that -ftree-loop-distribute-patterns is enabled at -O3 and it= should > recognize the naive_memcpy() function as an implementation of memcpy() an= d issue > calls to libc's implementation. Instead, it was inlining and unrolling it. Ok you confirm the suspects I wrote in the other mail! I've used your patch as a base, apart for minors here and there I've stripped out the definitions of bzero and memcpy. I believe bzero is unnecessary given these are static allocated. For memcpy we can just use the standard library implementation given elns are linked to it. The other advantage is that doing this way (here at least) memcpy is not inlined also at speed 3, so we don't trap in the optimizer issue! All summed is even a little faster than the stock patch and closer to the one with the specific GCC blob support. Let me know if you like the attached and if does the job for you too. Thanks Andrea --=20 akrl@sdf.org --=-=-= Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename=0001-Cut-down-compile-time-emitting-static-data-as-string.patch Content-Transfer-Encoding: quoted-printable >From 3efb2808d415f723ade4a0f9f61738e1a707156c Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D Date: Wed, 20 May 2020 00:34:32 -0300 Subject: [PATCH] * Cut down compile-time emitting static data as string literals MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit This change drastically reduce compile time. Apparently GCC optimizer does not scale up well at all for long sequences of assignments into a single array. Nicol=C3=A1s B=C3=A9rtolo Andrea Corallo * src/comp.c (gcc_jit_context_new_string_literal) (gcc_jit_block_add_assignment_op): New imports. (comp_t): New 'size_t_type' 'memcpy' fields. (emit_static_object): Define static objects using string literals and memcpy. (define_memcpy): New function. (Fcomp__init_ctxt): Define 'size_t_type' and 'memcpy'. --- src/comp.c | 120 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 105 insertions(+), 15 deletions(-) diff --git a/src/comp.c b/src/comp.c index f288fc2551..81c4d2fe32 100644 --- a/src/comp.c +++ b/src/comp.c @@ -46,6 +46,7 @@ # include "w32common.h" =20 #undef gcc_jit_block_add_assignment +#undef gcc_jit_block_add_assignment_op #undef gcc_jit_block_add_comment #undef gcc_jit_block_add_eval #undef gcc_jit_block_end_with_conditional @@ -75,6 +76,7 @@ #undef gcc_jit_context_new_rvalue_from_int #undef gcc_jit_context_new_rvalue_from_long #undef gcc_jit_context_new_rvalue_from_ptr +#undef gcc_jit_context_new_string_literal #undef gcc_jit_context_new_struct_type #undef gcc_jit_context_new_unary_op #undef gcc_jit_context_new_union_type @@ -164,6 +166,8 @@ DEF_DLL_FN (gcc_jit_rvalue *, gcc_jit_context_new_rvalu= e_from_long, (gcc_jit_context *ctxt, gcc_jit_type *numeric_type, long value= )); DEF_DLL_FN (gcc_jit_rvalue *, gcc_jit_context_new_rvalue_from_ptr, (gcc_jit_context *ctxt, gcc_jit_type *pointer_type, void *valu= e)); +DEF_DLL_FN (gcc_jit_rvalue *, gcc_jit_context_new_string_literal, + (gcc_jit_context *ctxt, const char *value)); DEF_DLL_FN (gcc_jit_rvalue *, gcc_jit_context_new_unary_op, (gcc_jit_context *ctxt, gcc_jit_location *loc, enum gcc_jit_unary_op op, gcc_jit_type *result_type, @@ -197,6 +201,10 @@ DEF_DLL_FN (gcc_jit_type *, gcc_jit_type_get_pointer, = (gcc_jit_type *type)); DEF_DLL_FN (void, gcc_jit_block_add_assignment, (gcc_jit_block *block, gcc_jit_location *loc, gcc_jit_lvalue *= lvalue, gcc_jit_rvalue *rvalue)); +DEF_DLL_FN (void, gcc_jit_block_add_assignment_op, + (gcc_jit_block *block, gcc_jit_location *loc, + gcc_jit_lvalue *lvalue, enum gcc_jit_binary_op op, + gcc_jit_rvalue *rvalue)); DEF_DLL_FN (void, gcc_jit_block_add_eval, (gcc_jit_block *block, gcc_jit_location *loc, gcc_jit_rvalue *rvalue)); @@ -239,6 +247,7 @@ init_gccjit_functions (void) =20 /* In alphabetical order */ LOAD_DLL_FN (library, gcc_jit_block_add_assignment); + LOAD_DLL_FN (library, gcc_jit_block_add_assignment_op); LOAD_DLL_FN (library, gcc_jit_block_add_comment); LOAD_DLL_FN (library, gcc_jit_block_add_eval); LOAD_DLL_FN (library, gcc_jit_block_end_with_conditional); @@ -268,6 +277,7 @@ init_gccjit_functions (void) LOAD_DLL_FN (library, gcc_jit_context_new_rvalue_from_int); LOAD_DLL_FN (library, gcc_jit_context_new_rvalue_from_long); LOAD_DLL_FN (library, gcc_jit_context_new_rvalue_from_ptr); + LOAD_DLL_FN (library, gcc_jit_context_new_string_literal); LOAD_DLL_FN (library, gcc_jit_context_new_struct_type); LOAD_DLL_FN (library, gcc_jit_context_new_unary_op); LOAD_DLL_FN (library, gcc_jit_context_new_union_type); @@ -296,6 +306,7 @@ init_gccjit_functions (void) =20 /* In alphabetical order */ #define gcc_jit_block_add_assignment fn_gcc_jit_block_add_assignment +#define gcc_jit_block_add_assignment_op fn_gcc_jit_block_add_assignment_op #define gcc_jit_block_add_comment fn_gcc_jit_block_add_comment #define gcc_jit_block_add_eval fn_gcc_jit_block_add_eval #define gcc_jit_block_end_with_conditional fn_gcc_jit_block_end_with_condi= tional @@ -325,6 +336,7 @@ #define gcc_jit_context_new_param fn_gcc_jit_context_ne= w_param #define gcc_jit_context_new_rvalue_from_int fn_gcc_jit_context_new_rvalue_= from_int #define gcc_jit_context_new_rvalue_from_long fn_gcc_jit_context_new_rvalue= _from_long #define gcc_jit_context_new_rvalue_from_ptr fn_gcc_jit_context_new_rvalue_= from_ptr +#define gcc_jit_context_new_string_literal fn_gcc_jit_context_new_string_l= iteral #define gcc_jit_context_new_struct_type fn_gcc_jit_context_new_struct_type #define gcc_jit_context_new_unary_op fn_gcc_jit_context_new_unary_op #define gcc_jit_context_new_union_type fn_gcc_jit_context_new_union_type @@ -462,6 +474,7 @@ #define F_RELOC_MAX_SIZE 1500 gcc_jit_type *char_ptr_type; gcc_jit_type *ptrdiff_type; gcc_jit_type *uintptr_type; + gcc_jit_type *size_t_type; #if LISP_WORDS_ARE_POINTERS gcc_jit_type *lisp_X; #endif @@ -548,6 +561,7 @@ #define F_RELOC_MAX_SIZE 1500 gcc_jit_rvalue *data_relocs_ephemeral; /* Synthesized struct holding func relocs. */ gcc_jit_lvalue *func_relocs; + gcc_jit_function *memcpy; Lisp_Object d_default_idx; Lisp_Object d_impure_idx; Lisp_Object d_ephemeral_idx; @@ -2347,7 +2361,7 @@ emit_static_object (const char *name, Lisp_Object obj) /* libgccjit has no support for initialized static data. The mechanism below is certainly not aesthetic but I assume the bottl= e neck in terms of performance at load time will still be the reader. - NOTE: we can not relay on libgccjit even for valid NULL terminated C + NOTE: we can not rely on libgccjit even for valid NULL terminated C strings cause of this funny bug that will affect all pre gcc10 era gc= cs: https://gcc.gnu.org/ml/jit/2019-q3/msg00013.html */ =20 @@ -2405,22 +2419,78 @@ emit_static_object (const char *name, Lisp_Object o= bj) gcc_jit_lvalue *arr =3D gcc_jit_lvalue_access_field (data_struct, NULL, fields[1]); =20 - for (ptrdiff_t i =3D 0; i < len; i++, p++) + gcc_jit_lvalue *ptrvar =3D gcc_jit_function_new_local (f, NULL, + comp.char_ptr_type, + "ptr"); + + gcc_jit_block_add_assignment ( + block, + NULL, + ptrvar, + gcc_jit_lvalue_get_address ( + gcc_jit_context_new_array_access ( + comp.ctxt, + NULL, + gcc_jit_lvalue_as_rvalue (arr), + gcc_jit_context_new_rvalue_from_int (comp.ctxt, comp.int_type, 0)), + NULL)); + + for (ptrdiff_t i =3D 0; i < len;) { - gcc_jit_block_add_assignment ( - block, - NULL, - gcc_jit_context_new_array_access ( - comp.ctxt, - NULL, - gcc_jit_lvalue_as_rvalue (arr), - gcc_jit_context_new_rvalue_from_int (comp.ctxt, - comp.ptrdiff_type, - i)), - gcc_jit_context_new_rvalue_from_int (comp.ctxt, - comp.char_type, - *p)); + /* We can't use string literals longer that 200 bytes because + they cause a crash in older versions of gccjit. + https://gcc.gnu.org/ml/jit/2019-q3/msg00013.html. */ + char str[200]; + strncpy (str, p, 200); + str[199] =3D 0; + uintptr_t l =3D strlen (str); + + if (l !=3D 0) + { + p +=3D l; + i +=3D l; + + gcc_jit_rvalue *args[3] + =3D {gcc_jit_lvalue_as_rvalue (ptrvar), + gcc_jit_context_new_string_literal (comp.ctxt, str), + gcc_jit_context_new_rvalue_from_int (comp.ctxt, + comp.size_t_type, + l)}; + + gcc_jit_block_add_eval (block, NULL, + gcc_jit_context_new_call (comp.ctxt, NUL= L, + comp.memcpy, + ARRAYELTS (arg= s), + args)); + gcc_jit_block_add_assignment (block, NULL, ptrvar, + gcc_jit_lvalue_get_address ( + gcc_jit_context_new_array_access (comp.ctxt, NULL, + gcc_jit_lvalue_as_rvalue (ptrvar), + gcc_jit_context_new_rvalue_from_int (comp.ctxt, + comp.uintptr_type, + l)), + NULL)); + } + else + { + /* If strlen returned 0 that means that the static object + contains a NULL byte. In that case just move over to the + next block. We can rely on the byte being zero because + of the previous call to bzero and because the dynamic + linker cleared it. */ + p++; + i++; + gcc_jit_block_add_assignment ( + block, NULL, ptrvar, + gcc_jit_lvalue_get_address ( + gcc_jit_context_new_array_access ( + comp.ctxt, NULL, gcc_jit_lvalue_as_rvalue (ptrvar), + gcc_jit_context_new_rvalue_from_int (comp.ctxt, + comp.uintptr_type, 1)= ), + NULL)); + } } + gcc_jit_block_add_assignment ( block, NULL, @@ -2766,6 +2836,21 @@ define_jmp_buf (void) 1, &field); } =20 +static void +define_memcpy (void) +{ + + gcc_jit_param *params[] =3D + { gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "des= t"), + gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "src= "), + gcc_jit_context_new_param (comp.ctxt, NULL, comp.size_t_type, "n") }; + + comp.memcpy =3D + gcc_jit_context_new_function (comp.ctxt, NULL, GCC_JIT_FUNCTION_IMPORT= ED, + comp.void_ptr_type, "memcpy", + ARRAYELTS (params), params, false); +} + /* struct handler definition */ =20 static void @@ -3772,6 +3857,9 @@ DEFUN ("comp--init-ctxt", Fcomp__init_ctxt, Scomp__in= it_ctxt, comp.uintptr_type =3D gcc_jit_context_get_int_type (comp.ctxt, sizeof (void *), false); + comp.size_t_type =3D gcc_jit_context_get_int_type (comp.ctxt, + sizeof (size_t), + false); =20 comp.exported_funcs_h =3D CALLN (Fmake_hash_table, QCtest, Qequal); /* @@ -3780,6 +3868,8 @@ DEFUN ("comp--init-ctxt", Fcomp__init_ctxt, Scomp__in= it_ctxt, */ comp.imported_funcs_h =3D CALLN (Fmake_hash_table); =20 + define_memcpy (); + /* Define data structures. */ =20 define_lisp_cons (); --=20 2.17.1 --=-=-=-- From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 17:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159094603810455 (code B ref 41615); Sun, 31 May 2020 17:28:01 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 17:27:18 +0000 Received: from localhost ([127.0.0.1]:33734 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfRjp-0002iR-Ah for submit@debbugs.gnu.org; Sun, 31 May 2020 13:27:18 -0400 Received: from mail-ot1-f48.google.com ([209.85.210.48]:37403) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfRjk-0002ho-M3 for 41615@debbugs.gnu.org; Sun, 31 May 2020 13:27:07 -0400 Received: by mail-ot1-f48.google.com with SMTP id x22so6119174otq.4 for <41615@debbugs.gnu.org>; Sun, 31 May 2020 10:27:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xQb/Q78ZsvSTSEFux1cmZLhxS+SOxftQ2/TNgf74GC0=; b=kqOqjOlcKAuSPZ7YY1PP8ASOGat7PfnXg9BGBh9Vplt1wuRxEE4YReCTjni75OLme4 +tDZWgcrkW/qezWYNNIOphXbDTb+tXPryDaUdQZqvXY4qUSc8fxxAawX6WrJokk9ORJ4 X/EbAk5a/vTVx5ATm34C7hrAhJtYgte8/RK6p5swKrKL8FC1FRvQFi7DSQ/oad9MZEN5 FFq6kSyQIl8SJji1RTgIWzbmXNxuS5JMVsiBjq+M1XrjWPVn1EE8tXD63nEl/egQ4A+p f7c9BKy10oE/vNWFiE4cbHzkV3yh+/q4b/PUmVqzBf1WSoiNlNdGH4tQO+b8/vJ1OFjM H3Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=xQb/Q78ZsvSTSEFux1cmZLhxS+SOxftQ2/TNgf74GC0=; b=YWieHgjj4GROzv1YjGiTTDEf55WuIyvDzdRfD6+r9CTas0fi9TX+duxpuopb/2vF9O 7B01GhYeCjbJBk87/WtGcYNeCNcEk9SAPR6bF0/9pq3aUYCcWGrYGgt/4EtCm21za3OH jMFka+CR6+VSFRl3cjMxPRGBTs9W3HWHkgC4+NH5mpdUT9xzWrEyox7O/iF8hrts33s5 hhuRqnUTY9lsidYI6qt4uMASI1TAeI3lpiQUMT2fozw6nfLeo/Iy0GnWPLcIFVYKXN5q jO3jCJKJ2zstQYLO7lR5vxtWYOpQruKIkP+z8vZkMZMWliLdSnc+9Q22ndUGGX81c2W9 ZzRw== X-Gm-Message-State: AOAM530830LqwvXs/xtZwGM25yrOl2qREw1GJ2ZNWvnFEPJw3SO422Op ks7t+4DGhYUqoN+XdOuaBzKbwkH9Ttwqe0V3+S0= X-Google-Smtp-Source: ABdhPJzx6OkYsCBac0wOf0ajKe8YgT7+KFEyH1tUpSQYw96t7/b60HxT+NGQkWR4TCiO9lsI48EDr3B7G6rxwMa3otY= X-Received: by 2002:a05:6830:2439:: with SMTP id k25mr13213716ots.352.1590946018970; Sun, 31 May 2020 10:26:58 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sun, 31 May 2020 14:26:46 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > I believe bzero is unnecessary given these are static allocated. Ok with me. > For memcpy we can just use the standard library implementation given > elns are linked to it. The other advantage is that doing this way (here > at least) memcpy is not inlined also at speed 3, so we don't trap in the > optimizer issue! This is good! > All summed is even a little faster than the stock patch and closer to > the one with the specific GCC blob support. Good. > Let me know if you like the attached and if does the job for you too. I like it. I see calls to memcpy even with -O3, which is great. Nico El dom., 31 may. 2020 a las 13:57, Andrea Corallo () escribi= =C3=B3: > > Nicolas B=C3=A9rtolo writes: > > >> I like this considerably less :) > > > > Ok, let's say goodbye to this patch. > > > >> It introduces quite some complexity and the same advantage in > >> debuggability can be achieved with something like the attached 8 line > >> patch (untested). > > > > Sounds good, I haven't tested it either. > > > >> Generally speaking I want to try to keep our back-end as simple as we > >> manage to. > > > > I initially wrote this patch chasing the reason for slow compile times.= I think > > that a 10k line C file should be compiled much faster than what gccjit = achieves. > > I thought that "uncommon" (for C) ways of doing thing were causing gccj= it to get > > stuck trying to optimize them hard, until it gave up. I thought that fi= lling the > > static data using memcpy() and constant strings would help GCC recogniz= e this as > > a constant initialization and hopefully just store a completely initial= ized copy > > in memory. > > > > I found that GCC would inline memcpy() and the static initialization wo= uld turn > > into a very long unrolled loop with SSE instructions. I tested this wit= h -O3 > > only in gccjit to force maximum optimization. I found this super strang= e > > considering that -ftree-loop-distribute-patterns is enabled at -O3 and = it should > > recognize the naive_memcpy() function as an implementation of memcpy() = and issue > > calls to libc's implementation. Instead, it was inlining and unrolling = it. > > Ok you confirm the suspects I wrote in the other mail! > > I've used your patch as a base, apart for minors here and there I've > stripped out the definitions of bzero and memcpy. > > I believe bzero is unnecessary given these are static allocated. > > For memcpy we can just use the standard library implementation given > elns are linked to it. The other advantage is that doing this way (here > at least) memcpy is not inlined also at speed 3, so we don't trap in the > optimizer issue! > > All summed is even a little faster than the stock patch and closer to > the one with the specific GCC blob support. > > Let me know if you like the attached and if does the job for you too. > > Thanks > > Andrea > > -- > akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 18:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159094866814585 (code B ref 41615); Sun, 31 May 2020 18:12:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 18:11:08 +0000 Received: from localhost ([127.0.0.1]:33834 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfSQN-0003nB-Tj for submit@debbugs.gnu.org; Sun, 31 May 2020 14:11:08 -0400 Received: from mx.sdf.org ([205.166.94.20]:55745) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfSQL-0003n1-1b for 41615@debbugs.gnu.org; Sun, 31 May 2020 14:11:07 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VIB3sj020462 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 18:11:03 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VIB364027195; Sun, 31 May 2020 18:11:03 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 18:11:03 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sun, 31 May 2020 14:26:46 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Nicolas B=C3=A9rtolo writes: >> I believe bzero is unnecessary given these are static allocated. > > Ok with me. > >> For memcpy we can just use the standard library implementation given >> elns are linked to it. The other advantage is that doing this way (here >> at least) memcpy is not inlined also at speed 3, so we don't trap in the >> optimizer issue! > > This is good! > >> All summed is even a little faster than the stock patch and closer to >> the one with the specific GCC blob support. > > Good. > >> Let me know if you like the attached and if does the job for you too. > > I like it. I see calls to memcpy even with -O3, which is great. > > Nico Great, I've measured the startup time here on GNU/Linux 64 bit and is slower by few milliseconds in average therefore totally acceptable. The whole compilation is something like 5x faster here. I've pushed it as 3efb2808d4 Thanks Andrea --=20 akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 19:39:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159095391522315 (code B ref 41615); Sun, 31 May 2020 19:39:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 19:38:35 +0000 Received: from localhost ([127.0.0.1]:33882 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfTn1-0005nq-Jw for submit@debbugs.gnu.org; Sun, 31 May 2020 15:38:35 -0400 Received: from mail-ot1-f47.google.com ([209.85.210.47]:44281) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfTn0-0005nd-2q for 41615@debbugs.gnu.org; Sun, 31 May 2020 15:38:34 -0400 Received: by mail-ot1-f47.google.com with SMTP id f18so6247603otq.11 for <41615@debbugs.gnu.org>; Sun, 31 May 2020 12:38:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=0RBl1NeOgoIdVBv/eAp5Zlx5fgRZ7IblZF4SW+kqRlc=; b=LluaFcoowiJG57ZPsmG9ZKL9cP3OwS8A6duO069Ulq1jigdyskMSjkozjcUgkNdE5k OsrtZq+R2y6JkCdw5BwSSpyEr4pIRAefUg8Q0hoYtQiLp9RUSlysb04de1yq5CJBcVI2 HNajSzSmgoGrvXqItoPV9pt2ZiqW+swtc6qJ1wAFDvsYEhJw8YQrxyPDAOeQvLCknZTd SGcQwlP3AIbQqkG0GHdfD3Pw7clhZbt7FzGOToO0IbYj1eBl20FqoW2p0SE4NRIhc+0d gKSfDZzbdGcei0i9SsK4jZzipP1aXsqTYrJG5z8dgKBmKVdEX4TjCQuv6I7NWDdBC19b 0q/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=0RBl1NeOgoIdVBv/eAp5Zlx5fgRZ7IblZF4SW+kqRlc=; b=prBiEAhQjCvJ5wk2gMAWunYcjvCu0z9DmoQ/OtPLnhUdiUU1yk4PnloZluWP9h5r00 ZrdhiFRV8orAHsffX2GojGAox9EkGxO/kBhTZD9SqALcTPpIhQ2GHu/+K0v87Zj7MSWJ QD9/YCnjXSMToUaSeNVDBm28ooyFuMe36Wmr3b0/qHJzKutBP9Cm0ALa2Q1+GpD3uzSt NzYqtxuoNjck1DcD0phyg9JZ0WOPx9JelXB9C+SAUrAxp+czAxlCrEoRWfMCzPsToIRQ rBtoIkY3oyQAT20cfUyLmfG15CnAZn8681bVJqUbG0z1om6LKxAZXBKkHnYyAfeNZQGc OR4Q== X-Gm-Message-State: AOAM531hp5Z1uGpjMSGFgcMnV65TVwT7/GYVtEsQqo+PNDPZ9jK90Hd/ JneRm6fxToYPlPVNEf78miRcSgzFMZ2i3blPrrU= X-Google-Smtp-Source: ABdhPJwdNSZ12GNMjpSqNC4+uuolIxJjvQn9IItkECXRriH3eQSxBMYXJGXLr4B5pvfUEuCB51wQBkSa4jefUV37AAg= X-Received: by 2002:a9d:5f09:: with SMTP id f9mr14078144oti.202.1590953908178; Sun, 31 May 2020 12:38:28 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Sun, 31 May 2020 16:38:15 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > The whole compilation is something like 5x faster here. Amazing.I took a closer look at the code that uses casts to bools and I think I found a bug. Casting to bool using an enum is equivalent to taking the lowest byte using a byte mask. This wrongly casts to "false" integers whose lowest byte is nil. bool cast_from_unsigned_long_long_to_bool (unsigned long long x) { return (x & 0xFF); } The correct way to cast to bool is to mimic C semantics: bool cast_from_unsigned_long_long_to_bool (unsigned long long x) { if (x != 0) return true; else return false; } Am I right? Nico. From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 20:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159095523324278 (code B ref 41615); Sun, 31 May 2020 20:01:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 20:00:33 +0000 Received: from localhost ([127.0.0.1]:33890 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfU8G-0006JV-Mp for submit@debbugs.gnu.org; Sun, 31 May 2020 16:00:32 -0400 Received: from mx.sdf.org ([205.166.94.20]:54583) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfU8E-0006JN-GF for 41615@debbugs.gnu.org; Sun, 31 May 2020 16:00:31 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VK0TkI015236 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 20:00:29 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VK0TvW005054; Sun, 31 May 2020 20:00:29 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 20:00:29 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sun, 31 May 2020 16:38:15 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Nicolas B=C3=A9rtolo writes: >> The whole compilation is something like 5x faster here. > Amazing.I took a closer look at the code that uses casts to bools and > I think I found a > bug. > > Casting to bool using an enum is equivalent to taking the lowest byte usi= ng > a byte mask. This wrongly casts to "false" integers whose lowest byte is = nil. > > bool cast_from_unsigned_long_long_to_bool (unsigned long long x) > { > return (x & 0xFF); > } > > The correct way to cast to bool is to mimic C semantics: > > bool cast_from_unsigned_long_long_to_bool (unsigned long long x) > { > if (x !=3D 0) > return true; > else > return false; > } > > Am I right? You are. I never fixed it (is present also in the pure union cast mechanism) because I had not time so far and practically I suspect is not a real case of problematic code we generate. But is *certanly* good to fix. BTW If you are into the mood to dig into these... also sign extentions probably should be handled ;) Andrea --=20 akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 31 May 2020 20:19:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159095630525823 (code B ref 41615); Sun, 31 May 2020 20:19:02 +0000 Received: (at 41615) by debbugs.gnu.org; 31 May 2020 20:18:25 +0000 Received: from localhost ([127.0.0.1]:33917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfUPZ-0006iQ-2U for submit@debbugs.gnu.org; Sun, 31 May 2020 16:18:25 -0400 Received: from mx.sdf.org ([205.166.94.20]:52228) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfUPW-0006iH-UK for 41615@debbugs.gnu.org; Sun, 31 May 2020 16:18:23 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 04VKILjs022731 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Sun, 31 May 2020 20:18:21 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 04VKILw4032539; Sun, 31 May 2020 20:18:21 GMT From: Andrea Corallo References: Date: Sun, 31 May 2020 20:18:21 +0000 In-Reply-To: (Andrea Corallo's message of "Sun, 31 May 2020 20:00:29 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Andrea Corallo writes: > BTW If you are into the mood to dig into these... also sign extentions > probably should be handled ;) BTW2 before jumping into sign extentions we should prove we have some case of this we care about, I'd probably start just placing an assertion in emit_coerce. Andrea -- akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 07:20:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159099597822834 (code B ref 41615); Mon, 01 Jun 2020 07:20:02 +0000 Received: (at 41615) by debbugs.gnu.org; 1 Jun 2020 07:19:38 +0000 Received: from localhost ([127.0.0.1]:34381 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfejS-0005wE-Kw for submit@debbugs.gnu.org; Mon, 01 Jun 2020 03:19:38 -0400 Received: from mx.sdf.org ([205.166.94.20]:49174) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfejR-0005w5-6T for 41615@debbugs.gnu.org; Mon, 01 Jun 2020 03:19:37 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 0517JYrJ026493 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Mon, 1 Jun 2020 07:19:35 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 0517JYvg010777; Mon, 1 Jun 2020 07:19:34 GMT From: Andrea Corallo References: Date: Mon, 01 Jun 2020 07:19:34 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Sun, 31 May 2020 16:38:15 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Nicolas B=C3=A9rtolo writes: >> The whole compilation is something like 5x faster here. > Amazing.I took a closer look at the code that uses casts to bools and > I think I found a > bug. > > Casting to bool using an enum is equivalent to taking the lowest byte usi= ng > a byte mask. This wrongly casts to "false" integers whose lowest byte is = nil. > > bool cast_from_unsigned_long_long_to_bool (unsigned long long x) > { > return (x & 0xFF); > } > > The correct way to cast to bool is to mimic C semantics: > > bool cast_from_unsigned_long_long_to_bool (unsigned long long x) > { > if (x !=3D 0) > return true; > else > return false; > } > > Am I right? > > Nico. Okay, now I recall better the whole story. I believe is okay that emit_coerce can truncate numbers (as regular cast can do). Where we have to be careful is into coercing before calling 'emit_cond_jump', again the same attention we use in C when casting values. BTW IIRC I've experienced libgccjit crashed on brances with non boolean tests. At the time I cured that directly in 'emit_cond_jump' performing a negation on the number to extract the boolean to be used as a test, this works well. Andrea --=20 akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 12:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159101433611000 (code B ref 41615); Mon, 01 Jun 2020 12:26:01 +0000 Received: (at 41615) by debbugs.gnu.org; 1 Jun 2020 12:25:36 +0000 Received: from localhost ([127.0.0.1]:34743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfjVX-0002rM-RC for submit@debbugs.gnu.org; Mon, 01 Jun 2020 08:25:36 -0400 Received: from mail-oo1-f48.google.com ([209.85.161.48]:41805) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfjVW-0002r9-SN for 41615@debbugs.gnu.org; Mon, 01 Jun 2020 08:25:35 -0400 Received: by mail-oo1-f48.google.com with SMTP id 7so1356317oof.8 for <41615@debbugs.gnu.org>; Mon, 01 Jun 2020 05:25:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+BTf4rZQlGgB8DkAGayEllNB456BfD7dirZUHILqTYI=; b=aVsSakVg94RMD89gDS8K7A0ntkM8m8j9MhIbhqEa7EAcM4btWsIRYfIPUQvN7XhYDw nn2MptIojvcKc9wEYdSyU/7kS31bvWxCqJMozgPGcQk8Q2dHcoq8EIMAixhJ9i+uzUxP Rse/vXLPKLOzBWKwgYO4qLBF1KAM4B79Er10KctUKYh92+TZOSCGFM/jHLCx0eOei8PM 5Zr6ILVJc05jZIQOKqgHRQbHDziZUforahGgX9rVftN9eeIzsfK+S5+IDheViH2ey6VI cDvI17b/vS2wamt+JmAYUfbQSEx1koGjp1VbbfR9detDSmra1gD2nvpiIDvvdIIcSAd9 vHMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+BTf4rZQlGgB8DkAGayEllNB456BfD7dirZUHILqTYI=; b=oJ+zuhch25togXZkn3+aNto/8cIxPX/lch0zQatGH9QOeUvz7JLJd4Gfd1HDPpmwR0 +TGPFhQyfa9nQ5VeVPHttQZf/m4e2U50iYwjbja4FiDqCpsbcYMjxSAQrVDc9APKINjf TFXqdD738hd2IojUdCLILemfOQ3QP4JZtZWM5Ed6a/vgvHjE4DCP4MWhlEwS49aguumF nTW5nqQtY8J3FbDEwaXQtAkrgTz8uM/IRtYXLVtt/E/uY/8TpYPts+TgPaNl+budglKM GNpDbkO+pOER3fJb30u7vCST4PgNgfPrR+LSEbNz6Zg4ScnT/NiAY8ar7oVwywcBsySC +yOA== X-Gm-Message-State: AOAM532zxy3uzaJbt3KNf6e0NVSPrDCWI76myP0lW8+VLrbOj1MkQMSE 9Fekpm9xazlsdhldboIq3YFxCYbD01fpeQOlXAsdpaYsCRo= X-Google-Smtp-Source: ABdhPJzRkRTtFNFCzvAQDkOIUeL+uASauSv2tPXzLUpNDTrFk+1S3CQ5KLWfmCvSWcgk/jjyNhmITi7mFUV/gbjJIuA= X-Received: by 2002:a4a:7ac2:: with SMTP id a185mr16721971ooc.84.1591014329133; Mon, 01 Jun 2020 05:25:29 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Mon, 1 Jun 2020 09:25:18 -0300 Message-ID: Content-Type: multipart/mixed; boundary="000000000000ec52de05a704e3ff" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000ec52de05a704e3ff Content-Type: text/plain; charset="UTF-8" I rewrote the "cast with functions" patch and added a few more patches. - Implement cast to bool as !!x instead of (x & 0xFF). - Throw an ICE when asked to perform sign extension. I didn't see any issues with this one. So for now it is not necessary to implement them. Nico. --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0003-Implement-casts-to-bool-using-double-negation-like-i.patch" Content-Disposition: attachment; filename="0003-Implement-casts-to-bool-using-double-negation-like-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawgudto2 RnJvbSAzOWI4ZDdiMGJiY2RhNGY0ZjM0NzU5YjAyY2MyY2YzMDUyMzUzNmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxNzoy NDowMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBJbXBsZW1lbnQgY2FzdHMgdG8gYm9vbCB1 c2luZyBkb3VibGUgbmVnYXRpb24gbGlrZSBpbiBDLgoKKiBzcmMvY29tcC5jIChkZWZpbmVfY2Fz dF90b19ib29sKTogTmV3IGZ1bmN0aW9uIHRoYXQgdXNlcyBkb3VibGUKbmVnYXRpb24gdG8gY2Fz dCB0byBib29sLgotLS0KIHNyYy9jb21wLmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2NiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggNmY5Mjgw MWIxM2YuLmVkMmU1ZjM3MzM4IDEwMDY0NAotLS0gYS9zcmMvY29tcC5jCisrKyBiL3NyYy9jb21w LmMKQEAgLTI5MDksMTAgKzI5MDksNzYgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZv aWQpCiAgIHNpemVfdCBieXRlc19zaXplOwogfTsKIAorc3RhdGljIGdjY19qaXRfZnVuY3Rpb24g KgorZGVmaW5lX2Nhc3RfdG9fYm9vbCAoc3RydWN0IGNhc3RfdHlwZSBmcm9tLCBpbnQgZnJvbV9p bmRleCkKK3sKKyAgY2hhciAqbmFtZSA9IGZvcm1hdF9zdHJpbmcgKCJjYXN0X2Zyb21fJXNfdG9f JXMiLCBmcm9tLm5hbWUsICJib29sIik7CisgIGdjY19qaXRfcGFyYW0gKnBhcmFtID0gZ2NjX2pp dF9jb250ZXh0X25ld19wYXJhbSAoY29tcC5jdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20udHlwZSwgImFyZyIpOworICBn Y2Nfaml0X2Z1bmN0aW9uICpyZXN1bHQgPSBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChj b21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHQ0NfSklUX0ZVTkNUSU9OX0lOVEVSTkFMLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFyYW0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCk7CisKKyAgREVDTF9CTE9DSyAoZW50cnlfYmxvY2ssIHJlc3VsdCk7 CisKKyAgZ2NjX2ppdF9sdmFsdWUgKnRtcF91bmlvbgorICAgID0gZ2NjX2ppdF9mdW5jdGlvbl9u ZXdfbG9jYWwgKHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl90eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmlvbl9jYXN0Iik7CisKKyAg LyogIFplcm8gdGhlIHVuaW9uIGZpcnN0LiAgKi8KKyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdu bWVudCAoZW50cnlfYmxvY2ssIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3VuaW9uLCBOVUxMLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl9maWVsZHNbTlVNX0NBU1Rf VFlQRVNdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCisJCQkJICAgIGNvbXAuY3R4dCwKKwkJCQkgICAgY29t cC5jYXN0X3R5cGVzW05VTV9DQVNUX1RZUEVTXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDApKTsKKworICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChlbnRyeV9i bG9jaywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFs dWVfYWNjZXNzX2ZpZWxkICh0bXBfdW5pb24sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29tcC5jYXN0X3VuaW9uX2ZpZWxkc1tmcm9tX2luZGV4XSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfcGFyYW1fYXNfcnZhbHVlIChwYXJhbSkp OworCisgIGdjY19qaXRfcnZhbHVlICpjYXN0X3RvX2JpZ2dlc3QKKyAgICA9IGdjY19qaXRfcnZh bHVlX2FjY2Vzc19maWVsZCAoZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlICh0bXBfdW5pb24pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW05VTV9DQVNUX1RZUEVT XSk7CisKKyAgZ2NjX2ppdF9ydmFsdWUgKmZpcnN0X25lZ2F0aW9uCisgICAgPSBnY2Nfaml0X2Nv bnRleHRfbmV3X3VuYXJ5X29wIChjb21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ND X0pJVF9VTkFSWV9PUF9MT0dJQ0FMX05FR0FURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2FzdF90b19iaWdnZXN0KTsKKworICBnY2Nfaml0X3J2YWx1ZSAqc2Vjb25kX25lZ2F0 aW9uCisgICAgPSBnY2Nfaml0X2NvbnRleHRfbmV3X3VuYXJ5X29wIChjb21wLmN0eHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0NDX0pJVF9VTkFSWV9PUF9MT0dJQ0FMX05FR0FURSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfbmVnYXRpb24pOworCisgIGdjY19qaXRf YmxvY2tfZW5kX3dpdGhfcmV0dXJuIChlbnRyeV9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNv bmRfbmVnYXRpb24pOworCisgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBnY2Nfaml0X2Z1 bmN0aW9uICoKIGRlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVjdCBjYXN0X3R5cGUgZnJvbSwgaW50 IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCiAgICAgICAgICAgICAgICAgICAgIGlu dCB0b19pbmRleCkKIHsKKyAgaWYgKHRvLnR5cGUgPT0gY29tcC5ib29sX3R5cGUpCisgICAgcmV0 dXJuIGRlZmluZV9jYXN0X3RvX2Jvb2wgKGZyb20sIGZyb21faW5kZXgpOworCiAgIGNoYXIgKm5h bWUgPSBmb3JtYXRfc3RyaW5nICgiY2FzdF9mcm9tXyVzX3RvXyVzIiwgZnJvbS5uYW1lLCB0by5u YW1lKTsKICAgZ2NjX2ppdF9wYXJhbSAqcGFyYW0gPSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFt IChjb21wLmN0eHQsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJvbS50eXBlLCAiYXJnIik7Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0004-Throw-an-ICE-when-asked-to-emit-a-cast-with-sign-ext.patch" Content-Disposition: attachment; filename="0004-Throw-an-ICE-when-asked-to-emit-a-cast-with-sign-ext.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawgudts3 RnJvbSA0MzVlZDg0YzZkZjQ5MTFiMjM4ZjY3Yzc5NDkyNTMzZTBjNzFjYTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxODow OToxMiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBUaHJvdyBhbiBJQ0Ugd2hlbiBhc2tlZCB0 byBlbWl0IGEgY2FzdCB3aXRoIHNpZ24KIGV4dGVuc2lvbi4KCiogc3JjL2NvbXAuYyAoY2FzdF9r aW5kX29mX3R5cGUpOiBFbnVtIHRoYXQgc3BlY2lmaWVzIHRoZSBraW5kIG9mIHR5cGUKaW4gdGhl IGNhc3QgZW51bSAodW5zaWduZWQsIHNpZ25lZCwgcG9pbnRlcikuCihlbWl0X2NvZXJjZSk6IFRo cm93IGFuIElDRSB3aGVuIGFza2VkIHRvIGVtaXQgYSBjYXN0IHdpdGggc2lnbgpleHRlbnNpb24u CihkZWZpbmVfY2FzdF9mcm9tX3RvKTogUmV0dXJuIE5VTEwgZm9yIGNhc3RzIGludm9sdmluZyBz aWduIGV4dGVuc2lvbi4KKGRlZmluZV9jYXN0X2Z1bmN0aW9ucyk6IFNwZWNpZnkgdGhlIGtpbmQg b2YgZWFjaCB0eXBlIGluIHRoZSBjYXN0CnVuaW9uLgotLS0KIHNyYy9jb21wLmMgfCA1OCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvY29tcC5jIGIvc3JjL2NvbXAuYwppbmRleCBlZDJlNWYzNzMzOC4uOGRjOTM2ZjQ1MWEg MTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2NvbXAuYwpAQCAtNDUwLDYgKzQ1MCwx MyBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogCiAjZGVmaW5lIE5VTV9DQVNUX1RZ UEVTIDE1CiAKK2VudW0gY2FzdF9raW5kX29mX3R5cGUKKyAgeworICAgIGtpbmRfdW5zaWduZWQs CisgICAga2luZF9zaWduZWQsCisgICAga2luZF9wb2ludGVyCisgIH07CisKIC8qIEMgc2lkZSBv ZiB0aGUgY29tcGlsZXIgY29udGV4dC4gICovCiAKIHR5cGVkZWYgc3RydWN0IHsKQEAgLTUxNCw2 ICs1MjEsNyBAQCAjZGVmaW5lIE5VTV9DQVNUX1RZUEVTIDE1CiAgICAgICBtZW1iZXIuICAqLwog ICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVMrMV07CiAgIHNpemVfdCBj YXN0X3R5cGVfc2l6ZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIGVudW0gY2FzdF9raW5kX29mX3R5 cGUgY2FzdF90eXBlX2tpbmRbTlVNX0NBU1RfVFlQRVMrMV07CiAgIGNvbnN0IGNoYXIgKmNhc3Rf dHlwZV9uYW1lc1tOVU1fQ0FTVF9UWVBFUysxXTsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlv bl9maWVsZHNbTlVNX0NBU1RfVFlQRVMrMV07CiAgIHNpemVfdCBjYXN0X3VuaW9uX2ZpZWxkX2Jp Z2dlc3RfdHlwZTsKQEAgLTk4MCw2ICs5ODgsMTMgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlw ZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgIGludCBvbGRfaW5kZXggPSB0eXBl X3RvX2Nhc3RfaW5kZXggKG9sZF90eXBlKTsKICAgaW50IG5ld19pbmRleCA9IHR5cGVfdG9fY2Fz dF9pbmRleCAobmV3X3R5cGUpOwogCisgIGlmIChjb21wLmNhc3RfdHlwZV9zaXplc1tvbGRfaW5k ZXhdIDwgY29tcC5jYXN0X3R5cGVfc2l6ZXNbbmV3X2luZGV4XQorICAgICAgJiYgY29tcC5jYXN0 X3R5cGVfa2luZFtuZXdfaW5kZXhdID09IGtpbmRfc2lnbmVkKQorICAgIHhzaWduYWwzIChRbmF0 aXZlX2ljZSwKKyAgICAgICAgICAgICAgYnVpbGRfc3RyaW5nICgiRklYTUU6IHNpZ24gZXh0ZW5z aW9uIG5vdCBpbXBsZW1lbnRlZCIpLAorICAgICAgICAgICAgICBidWlsZF9zdHJpbmcgKGNvbXAu Y2FzdF90eXBlX25hbWVzW29sZF9pbmRleF0pLAorICAgICAgICAgICAgICBidWlsZF9zdHJpbmcg KGNvbXAuY2FzdF90eXBlX25hbWVzW25ld19pbmRleF0pKTsKKwogICAvKiBMb29rdXAgdGhlIGFw cHJvcHJpYXRlIGNhc3QgZnVuY3Rpb24gaW4gdGhlIGNhc3QgbWF0cml4LiAgKi8KICAgcmV0dXJu IGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCAoY29tcC5jdHh0LAogICAgICAgICAgICBOVUxMLApA QCAtMjkwNyw2ICsyOTIyLDcgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZvaWQpCiAg IGdjY19qaXRfdHlwZSAqdHlwZTsKICAgY29uc3QgY2hhciAqbmFtZTsKICAgc2l6ZV90IGJ5dGVz X3NpemU7CisgIGVudW0gY2FzdF9raW5kX29mX3R5cGUga2luZDsKIH07CiAKIHN0YXRpYyBnY2Nf aml0X2Z1bmN0aW9uICoKQEAgLTI5NzksNiArMjk5NSwxMSBAQCBkZWZpbmVfY2FzdF9mcm9tX3Rv IChzdHJ1Y3QgY2FzdF90eXBlIGZyb20sIGludCBmcm9tX2luZGV4LCBzdHJ1Y3QgY2FzdF90eXBl IHRvLAogICBpZiAodG8udHlwZSA9PSBjb21wLmJvb2xfdHlwZSkKICAgICByZXR1cm4gZGVmaW5l X2Nhc3RfdG9fYm9vbCAoZnJvbSwgZnJvbV9pbmRleCk7CiAKKyAgLyogIEZJWE1FOiBzaWduIGV4 dGVuc2lvbiBub3QgaW1wbGVtZW50ZWQuICAqLworICBpZiAoY29tcC5jYXN0X3R5cGVfc2l6ZXNb ZnJvbV9pbmRleF0gPCBjb21wLmNhc3RfdHlwZV9zaXplc1t0b19pbmRleF0KKyAgICAgICYmIGNv bXAuY2FzdF90eXBlX2tpbmRbdG9faW5kZXhdID09IGtpbmRfc2lnbmVkKQorICAgIHJldHVybiBO VUxMOworCiAgIGNoYXIgKm5hbWUgPSBmb3JtYXRfc3RyaW5nICgiY2FzdF9mcm9tXyVzX3RvXyVz IiwgZnJvbS5uYW1lLCB0by5uYW1lKTsKICAgZ2NjX2ppdF9wYXJhbSAqcGFyYW0gPSBnY2Nfaml0 X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbS50eXBlLCAiYXJnIik7CkBAIC0z MDI3LDIyICszMDQ4LDI3IEBAIGRlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVjdCBjYXN0X3R5cGUg ZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCiBkZWZpbmVfY2FzdF9m dW5jdGlvbnMgKHZvaWQpCiB7CiAgIHN0cnVjdCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FT VF9UWVBFU10KLSAgICA9IHsgeyBjb21wLmJvb2xfdHlwZSwgImJvb2wiLCBzaXplb2YgKGJvb2wp IH0sCi0gICAgICAgIHsgY29tcC5jaGFyX3B0cl90eXBlLCAiY2hhcl9wdHIiLCBzaXplb2YgKGNo YXIgKikgfSwKLSAgICAgICAgeyBjb21wLmludF90eXBlLCAiaW50Iiwgc2l6ZW9mIChpbnQpIH0s Ci0gICAgICAgIHsgY29tcC5saXNwX2NvbnNfcHRyX3R5cGUsICJjb25zX3B0ciIsIHNpemVvZiAo c3RydWN0IExpc3BfQ29ucyAqKSB9LAotICAgICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUs ICJsaXNwX29ial9wdHIiLCBzaXplb2YgKExpc3BfT2JqZWN0ICopIH0sCi0gICAgICAgIHsgY29t cC5saXNwX3dvcmRfdGFnX3R5cGUsICJsaXNwX3dvcmRfdGFnIiwgc2l6ZW9mIChMaXNwX1dvcmRf dGFnKSB9LAotICAgICAgICB7IGNvbXAubGlzcF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXpl b2YgKExpc3BfV29yZCkgfSwKLSAgICAgICAgeyBjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19s b25nIiwgc2l6ZW9mIChsb25nIGxvbmcpIH0sCi0gICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJs b25nIiwgc2l6ZW9mIChsb25nKSB9LAotICAgICAgICB7IGNvbXAucHRyZGlmZl90eXBlLCAicHRy ZGlmZiIsIHNpemVvZiAocHRyZGlmZl90KSB9LAotICAgICAgICB7IGNvbXAudWludHB0cl90eXBl LCAidWludHB0ciIsIHNpemVvZiAodWludHB0cl90KSB9LAorICAgID0geyB7IGNvbXAuYm9vbF90 eXBlLCAiYm9vbCIsIHNpemVvZiAoYm9vbCksIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBj b21wLmNoYXJfcHRyX3R5cGUsICJjaGFyX3B0ciIsIHNpemVvZiAoY2hhciAqKSwga2luZF9wb2lu dGVyIH0sCisgICAgICAgIHsgY29tcC5pbnRfdHlwZSwgImludCIsIHNpemVvZiAoaW50KSwga2lu ZF9zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLmxpc3BfY29uc19wdHJfdHlwZSwgImNvbnNfcHRy Iiwgc2l6ZW9mIChzdHJ1Y3QgTGlzcF9Db25zICopLAorICAgICAgICAgIGtpbmRfcG9pbnRlciB9 LAorICAgICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUsICJsaXNwX29ial9wdHIiLCBzaXpl b2YgKExpc3BfT2JqZWN0ICopLAorICAgICAgICAgIGtpbmRfcG9pbnRlciB9LAorICAgICAgICB7 IGNvbXAubGlzcF93b3JkX3RhZ190eXBlLCAibGlzcF93b3JkX3RhZyIsIHNpemVvZiAoTGlzcF9X b3JkX3RhZyksCisgICAgICAgICAga2luZF91bnNpZ25lZCB9LAorICAgICAgICB7IGNvbXAubGlz cF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXplb2YgKExpc3BfV29yZCksCisgICAgICAgICAg TElTUF9XT1JEU19BUkVfUE9JTlRFUlMgPyBraW5kX3BvaW50ZXIgOiBraW5kX3NpZ25lZCB9LAor ICAgICAgICB7IGNvbXAubG9uZ19sb25nX3R5cGUsICJsb25nX2xvbmciLCBzaXplb2YgKGxvbmcg bG9uZyksIGtpbmRfc2lnbmVkIH0sCisgICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJsb25nIiwg c2l6ZW9mIChsb25nKSwga2luZF9zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnB0cmRpZmZfdHlw ZSwgInB0cmRpZmYiLCBzaXplb2YgKHB0cmRpZmZfdCksIGtpbmRfc2lnbmVkIH0sCisgICAgICAg IHsgY29tcC51aW50cHRyX3R5cGUsICJ1aW50cHRyIiwgc2l6ZW9mICh1aW50cHRyX3QpLCBraW5k X3Vuc2lnbmVkIH0sCiAgICAgICAgIHsgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwgInVu c2lnbmVkX2xvbmdfbG9uZyIsCi0gICAgICAgICAgc2l6ZW9mICh1bnNpZ25lZCBsb25nIGxvbmcp IH0sCi0gICAgICAgIHsgY29tcC51bnNpZ25lZF9sb25nX3R5cGUsICJ1bnNpZ25lZF9sb25nIiwg c2l6ZW9mICh1bnNpZ25lZCBsb25nKSB9LAotICAgICAgICB7IGNvbXAudW5zaWduZWRfdHlwZSwg InVuc2lnbmVkIiwgc2l6ZW9mICh1bnNpZ25lZCkgfSwKLSAgICAgICAgeyBjb21wLnZvaWRfcHRy X3R5cGUsICJ2b2lkX3B0ciIsIHNpemVvZiAodm9pZCopIH0gfTsKKyAgICAgICAgICBzaXplb2Yg KHVuc2lnbmVkIGxvbmcgbG9uZyksIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnVu c2lnbmVkX2xvbmdfdHlwZSwgInVuc2lnbmVkX2xvbmciLCBzaXplb2YgKHVuc2lnbmVkIGxvbmcp LAorICAgICAgICAgIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnVuc2lnbmVkX3R5 cGUsICJ1bnNpZ25lZCIsIHNpemVvZiAodW5zaWduZWQpLCBraW5kX3Vuc2lnbmVkIH0sCisgICAg ICAgIHsgY29tcC52b2lkX3B0cl90eXBlLCAidm9pZF9wdHIiLCBzaXplb2YgKHZvaWQqKSwga2lu ZF9wb2ludGVyIH0gfTsKIAogICAvKiBGaW5kIHRoZSBiaWdnZXN0IHNpemUuICBJdCBzaG91bGQg YmUgdW5zaWduZWQgbG9uZyBsb25nLCBidXQgdG8gYmUKICAgICAgc3VyZSB3ZSBmaW5kIGl0IHBy b2dyYW1tYXRpY2FsbHkuICAqLwpAQCAtMzA2MCw2ICszMDg2LDcgQEAgZGVmaW5lX2Nhc3RfZnVu Y3Rpb25zICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzdF90 eXBlc1tpXS5uYW1lKTsKICAgICAgIGNvbXAuY2FzdF90eXBlX25hbWVzW2ldID0gY2FzdF90eXBl c1tpXS5uYW1lOwogICAgICAgY29tcC5jYXN0X3R5cGVfc2l6ZXNbaV0gPSBjYXN0X3R5cGVzW2ld LmJ5dGVzX3NpemU7CisgICAgICBjb21wLmNhc3RfdHlwZV9raW5kW2ldID0gY2FzdF90eXBlc1tp XS5raW5kOwogICAgIH0KIAogICBnY2Nfaml0X3R5cGUgKmJpZ2dlc3RfdHlwZSA9IGdjY19qaXRf Y29udGV4dF9nZXRfaW50X3R5cGUgKGNvbXAuY3R4dCwKQEAgLTMwNzAsNiArMzA5Nyw3IEBAIGRl ZmluZV9jYXN0X2Z1bmN0aW9ucyAodm9pZCkKICAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZmll bGQgKGNvbXAuY3R4dCwgTlVMTCwgYmlnZ2VzdF90eXBlLCAiYmlnZ2VzdF90eXBlIik7CiAgIGNv bXAuY2FzdF90eXBlX25hbWVzW05VTV9DQVNUX1RZUEVTXSA9ICJiaWdnZXN0X3R5cGUiOwogICBj b21wLmNhc3RfdHlwZV9zaXplc1tOVU1fQ0FTVF9UWVBFU10gPSBiaWdnZXN0X3NpemU7CisgIGNv bXAuY2FzdF90eXBlX2tpbmRbTlVNX0NBU1RfVFlQRVNdID0ga2luZF91bnNpZ25lZDsKIAogICBj b21wLmNhc3RfdW5pb25fdHlwZSA9CiAgICAgZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBl IChjb21wLmN0eHQsCi0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0001-Remove-unnecessary-DLL-load-of-gcc_jit_block_add_ass.patch" Content-Disposition: attachment; filename="0001-Remove-unnecessary-DLL-load-of-gcc_jit_block_add_ass.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawguds80 RnJvbSBlYzdhZjIyMWM3ZGJmOWI5ZmM1NTFlZjM4ZDZlNzBhMWJmMDlkNGU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxNTo1 NToxOCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBSZW1vdmUgdW5uZWNlc3NhcnkgRExMIGxv YWQgb2YKIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnRfb3AuCgotLS0KIHNyYy9jb21wLmMg fCA3IC0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDgxYzRkMmZlMzJhLi44ZDgwOTRlOTg2OSAx MDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC00Niw3ICs0Niw2IEBA CiAjIGluY2x1ZGUgInczMmNvbW1vbi5oIgogCiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudAotI3VuZGVmIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnRfb3AKICN1bmRlZiBn Y2Nfaml0X2Jsb2NrX2FkZF9jb21tZW50CiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbAog I3VuZGVmIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwKQEAgLTIwMSwxMCArMjAw LDYgQEAgREVGX0RMTF9GTiAoZ2NjX2ppdF90eXBlICosIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRl ciwgKGdjY19qaXRfdHlwZSAqdHlwZSkpOwogREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudCwKICAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2Nj X2ppdF9sb2NhdGlvbiAqbG9jLCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAogICAgICAgICAgICAg IGdjY19qaXRfcnZhbHVlICpydmFsdWUpKTsKLURFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxv Y2tfYWRkX2Fzc2lnbm1lbnRfb3AsCi0gICAgICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ss IGdjY19qaXRfbG9jYXRpb24gKmxvYywKLSAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZSAqbHZh bHVlLCBlbnVtIGdjY19qaXRfYmluYXJ5X29wIG9wLAotICAgICAgICAgICAgIGdjY19qaXRfcnZh bHVlICpydmFsdWUpKTsKIERFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWws CiAgICAgICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxv YywKICAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yNDcsNyArMjQy LDYgQEAgaW5pdF9nY2NqaXRfZnVuY3Rpb25zICh2b2lkKQogCiAgIC8qIEluIGFscGhhYmV0aWNh bCBvcmRlciAqLwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudCk7Ci0gIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3Np Z25tZW50X29wKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2Nv bW1lbnQpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCk7 CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlv bmFsKTsKQEAgLTMwNiw3ICszMDAsNiBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAK IC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKLSNkZWZpbmUgZ2NjX2pp dF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50 X29wCiAjZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQgZm5fZ2NjX2ppdF9ibG9ja19h ZGRfY29tbWVudAogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIGZuX2djY19qaXRfYmxv Y2tfYWRkX2V2YWwKICNkZWZpbmUgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25kaXRpb25hbCBm bl9nY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsCi0tIAoyLjI1LjEud2luZG93cy4x Cgo= --000000000000ec52de05a704e3ff 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_kawgudtk1 RnJvbSA5MTE4OTM0M2NjZDY5NDNlYWZjMmYzZGM4YjNiMTliOGVhODc5OTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAzMCBNYXkgMjAyMCAxODoz Mzo1OCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBEZWZpbmUgY2FzdHMgdXNpbmcgZnVuY3Rp b25zLgoKVGhpcyBpcyB0byBkdW1wIHByZXR0aWVyIEMgZmlsZXMuClRoaXMgZG9lcyBub3QgYWZm ZWN0IGNvbXBpbGF0aW9uIHRpbWVzIGluIG15IHRlc3RzLgoKKiBzcmMvY29tcC5jOiBEZWZpbmUg YSAxNXgxNSBjYXN0IG1hdHJpeC4gVXNlIGl0IGluIGVtaXRfY29lcmNlKCkuCi0tLQogc3JjL2Nv bXAuYyB8IDMxMyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCAxNzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggOGQ4MDk0ZTk4 NjkuLjZmOTI4MDFiMTNmIDEwMDY0NAotLS0gYS9zcmMvY29tcC5jCisrKyBiL3NyYy9jb21wLmMK QEAgLTQ0OCw2ICs0NDgsOCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogCiBzdGF0 aWMgZl9yZWxvY190IGZyZWxvYzsKIAorI2RlZmluZSBOVU1fQ0FTVF9UWVBFUyAxNQorCiAvKiBD IHNpZGUgb2YgdGhlIGNvbXBpbGVyIGNvbnRleHQuICAqLwogCiB0eXBlZGVmIHN0cnVjdCB7CkBA IC01MDcsMjEgKzUwOSwxNCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICAvKiBs aWJnY2NqaXQgaGFzIHJlYWxseSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3Jl IHRoaXMgdW5pb24gd2lsbAogICAgICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nf aml0X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9h c19sbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bGw7Ci0gIGdjY19qaXRfZmll bGQgKmNhc3RfdW5pb25fYXNfbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bDsK LSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191OwotICBnY2Nfaml0X2ZpZWxkICpjYXN0 X3VuaW9uX2FzX2k7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfYjsKLSAgZ2NjX2pp dF9maWVsZCAqY2FzdF91bmlvbl9hc191aW50cHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3Vu aW9uX2FzX3B0cmRpZmY7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfY19wOwotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX3ZfcDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91 bmlvbl9hc19saXNwX2NvbnNfcHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xp c3Bfd29yZDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnOwot ICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKKyAgZ2NjX2ppdF9m dW5jdGlvbiAqY2FzdF9mdW5jdGlvbnNfZnJvbV90b1tOVU1fQ0FTVF9UWVBFU11bTlVNX0NBU1Rf VFlQRVNdOworICAvKiAgV2UgYWRkIG9uZSB0byBtYWtlIHNwYWNlIGZvciB0aGUgbGFzdCBtZW1i ZXIgd2hpY2ggaXMgdGhlICJiaWdnZXN0X3R5cGUiCisgICAgICBtZW1iZXIuICAqLworICBnY2Nf aml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIHNpemVfdCBjYXN0X3R5 cGVfc2l6ZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIGNvbnN0IGNoYXIgKmNhc3RfdHlwZV9uYW1l c1tOVU1fQ0FTVF9UWVBFUysxXTsKKyAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9maWVsZHNb TlVNX0NBU1RfVFlQRVMrMV07CisgIHNpemVfdCBjYXN0X3VuaW9uX2ZpZWxkX2JpZ2dlc3RfdHlw ZTsKICAgZ2NjX2ppdF9mdW5jdGlvbiAqZnVuYzsgLyogQ3VycmVudCBmdW5jdGlvbiBiZWluZyBj b21waWxlZC4gICovCiAgIGJvb2wgZnVuY19oYXNfbm9uX2xvY2FsOyAvKiBGcm9tIGNvbXAtZnVu YyBoYXMtbm9uLWxvY2FsIHNsb3QuICAqLwogICBnY2Nfaml0X2x2YWx1ZSAqKmZfZnJhbWU7IC8q ICJGbG9hdGluZyIgZnJhbWUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiAgKi8KQEAgLTY3OCw0 NyArNjczLDYgQEAgYmNhbGwwIChMaXNwX09iamVjdCBmKQogICBGZnVuY2FsbCAoMSwgJmYpOwog fQogCi1zdGF0aWMgZ2NjX2ppdF9maWVsZCAqCi10eXBlX3RvX2Nhc3RfZmllbGQgKGdjY19qaXRf dHlwZSAqdHlwZSkKLXsKLSAgZ2NjX2ppdF9maWVsZCAqZmllbGQ7Ci0KLSAgaWYgKHR5cGUgPT0g Y29tcC5sb25nX2xvbmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19sbDsK LSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlKQotICAgIGZp ZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX3VsbDsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLmxv bmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19sOwotICBlbHNlIGlmICh0 eXBlID09IGNvbXAudW5zaWduZWRfbG9uZ190eXBlKQotICAgIGZpZWxkID0gY29tcC5jYXN0X3Vu aW9uX2FzX3VsOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAudW5zaWduZWRfdHlwZSkKLSAgICBm aWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc191OwotICBlbHNlIGlmICh0eXBlID09IGNvbXAuaW50 X3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfaTsKLSAgZWxzZSBpZiAodHlw ZSA9PSBjb21wLmJvb2xfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19iOwot ICBlbHNlIGlmICh0eXBlID09IGNvbXAudm9pZF9wdHJfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAu Y2FzdF91bmlvbl9hc192X3A7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC51aW50cHRyX3R5cGUp Ci0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfdWludHB0cjsKLSAgZWxzZSBpZiAodHlw ZSA9PSBjb21wLnB0cmRpZmZfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19w dHJkaWZmOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAuY2hhcl9wdHJfdHlwZSkKLSAgICBmaWVs ZCA9IGNvbXAuY2FzdF91bmlvbl9hc19jX3A7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5saXNw X2NvbnNfcHRyX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9jb25z X3B0cjsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLmxpc3Bfd29yZF90eXBlKQotICAgIGZpZWxk ID0gY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZDsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21w Lmxpc3Bfd29yZF90YWdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19saXNw X3dvcmRfdGFnOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUpCi0g ICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9vYmpfcHRyOwotICBlbHNlCi0gICAg eHNpZ25hbDEgKFFuYXRpdmVfaWNlLCBidWlsZF9zdHJpbmcgKCJ1bnN1cHBvcnRlZCBjYXN0Iikp OwotCi0gIHJldHVybiBmaWVsZDsKLX0KLQogc3RhdGljIGdjY19qaXRfYmxvY2sgKgogcmV0cml2 ZV9ibG9jayAoTGlzcF9PYmplY3QgYmxvY2tfbmFtZSkKIHsKQEAgLTk3OSwxMSArOTMzLDE5IEBA IGVtaXRfY29uZF9qdW1wIChnY2Nfaml0X3J2YWx1ZSAqdGVzdCwKIAogfQogCitzdGF0aWMgaW50 Cit0eXBlX3RvX2Nhc3RfaW5kZXggKGdjY19qaXRfdHlwZSAqIHR5cGUpCit7CisgIGZvciAoaW50 IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAgICBpZiAodHlwZSA9PSBjb21wLmNh c3RfdHlwZXNbaV0pCisgICAgICByZXR1cm4gaTsKKworICB4c2lnbmFsMSAoUW5hdGl2ZV9pY2Us IGJ1aWxkX3N0cmluZyAoInVuc3VwcG9ydGVkIGNhc3QiKSk7Cit9CisKIHN0YXRpYyBnY2Nfaml0 X3J2YWx1ZSAqCiBlbWl0X2NvZXJjZSAoZ2NjX2ppdF90eXBlICpuZXdfdHlwZSwgZ2NjX2ppdF9y dmFsdWUgKm9iaikKIHsKLSAgc3RhdGljIHB0cmRpZmZfdCBpOwotCiAgIGdjY19qaXRfdHlwZSAq b2xkX3R5cGUgPSBnY2Nfaml0X3J2YWx1ZV9nZXRfdHlwZSAob2JqKTsKIAogICBpZiAobmV3X3R5 cGUgPT0gb2xkX3R5cGUpCkBAIC0xMDE1LDI1ICs5NzcsMTQgQEAgZW1pdF9jb2VyY2UgKGdjY19q aXRfdHlwZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgICAgfQogI2VuZGlmCiAK LSAgZ2NjX2ppdF9maWVsZCAqb3JpZ19maWVsZCA9Ci0gICAgdHlwZV90b19jYXN0X2ZpZWxkIChv bGRfdHlwZSk7Ci0gIGdjY19qaXRfZmllbGQgKmRlc3RfZmllbGQgPSB0eXBlX3RvX2Nhc3RfZmll bGQgKG5ld190eXBlKTsKLQotICBnY2Nfaml0X2x2YWx1ZSAqdG1wX3UgPQotICAgIGdjY19qaXRf ZnVuY3Rpb25fbmV3X2xvY2FsIChjb21wLmZ1bmMsCi0JCQkJTlVMTCwKLQkJCQljb21wLmNhc3Rf dW5pb25fdHlwZSwKLQkJCQlmb3JtYXRfc3RyaW5nICgidW5pb25fY2FzdF8ldGQiLCBpKyspKTsK LSAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoY29tcC5ibG9jaywKLQkJCQlOVUxMLAot CQkJCWdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3UsCi0JCQkJCQkJICAgICBOVUxM LAotCQkJCQkJCSAgICAgb3JpZ19maWVsZCksCi0JCQkJb2JqKTsKKyAgaW50IG9sZF9pbmRleCA9 IHR5cGVfdG9fY2FzdF9pbmRleCAob2xkX3R5cGUpOworICBpbnQgbmV3X2luZGV4ID0gdHlwZV90 b19jYXN0X2luZGV4IChuZXdfdHlwZSk7CiAKLSAgcmV0dXJuIGdjY19qaXRfcnZhbHVlX2FjY2Vz c19maWVsZCAoIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAodG1wX3UpLAotCQkJCSAgICAgICBO VUxMLAotCQkJCSAgICAgICBkZXN0X2ZpZWxkKTsKKyAgLyogTG9va3VwIHRoZSBhcHByb3ByaWF0 ZSBjYXN0IGZ1bmN0aW9uIGluIHRoZSBjYXN0IG1hdHJpeC4gICovCisgIHJldHVybiBnY2Nfaml0 X2NvbnRleHRfbmV3X2NhbGwgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgTlVMTCwKKyAgICAgICAg ICAgY29tcC5jYXN0X2Z1bmN0aW9uc19mcm9tX3RvW29sZF9pbmRleF1bbmV3X2luZGV4XSwKKyAg ICAgICAgICAgMSwgJm9iaik7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCkBAIC0xMDkw LDcgKzEwNDEsNyBAQCBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAoZ2NjX2ppdF90eXBlICp0 eXBlLCBsb25nIGxvbmcgbikKIAkgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50 IChjb21wLmN0eHQsCiAJCQkJCSAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAog CQkJCQkgICAgICAgMzIpKSwKLQlsb3cpKTsKKyAgICAgICAgICAgICBsb3cpKTsKIH0KIAogc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTExMzIsNyArMTA4Myw3IEBAIGVtaXRfcnZhbHVlX2Zy b21fdW5zaWduZWRfbG9uZ19sb25nIChnY2Nfaml0X3R5cGUgKnR5cGUsIHVuc2lnbmVkIGxvbmcg bG9uZyBuKQogICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9p bnQgKGNvbXAuY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSksCi0gICAgICAgICAgICAg bG93KSk7CisJbG93KSk7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCkBAIC0yOTUxLDEw OSArMjkwMiwxMjEgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZvaWQpCiAgICAgZ2Nj X2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nfaml0X3N0cnVjdF9hc190eXBlIChjb21wLnRocmVh ZF9zdGF0ZV9zKSk7CiB9CiAKLXN0YXRpYyB2b2lkCi1kZWZpbmVfY2FzdF91bmlvbiAodm9pZCkK K3N0cnVjdCBjYXN0X3R5cGUKIHsKKyAgZ2NjX2ppdF90eXBlICp0eXBlOworICBjb25zdCBjaGFy ICpuYW1lOworICBzaXplX3QgYnl0ZXNfc2l6ZTsKK307CiAKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2xsID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAg ICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxvbmdfbG9uZ190eXBlLAotCQkJICAgICAgICJsbCIp OwotICBjb21wLmNhc3RfdW5pb25fYXNfdWxsID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Zp ZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLnVuc2lnbmVk X2xvbmdfbG9uZ190eXBlLAotCQkJICAgICAgICJ1bGwiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2wgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAg ICBOVUxMLAotCQkJICAgICAgIGNvbXAubG9uZ190eXBlLAotCQkJICAgICAgICJsIik7Ci0gIGNv bXAuY2FzdF91bmlvbl9hc191bCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29t cC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF9sb25nX3R5 cGUsCi0JCQkgICAgICAgInVsIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc191ID0KLSAgICBnY2Nf aml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAg ICAgICBjb21wLnVuc2lnbmVkX3R5cGUsCi0JCQkgICAgICAgInUiKTsKLSAgY29tcC5jYXN0X3Vu aW9uX2FzX2kgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJ CSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuaW50X3R5cGUsCi0JCQkgICAgICAgImkiKTsK LSAgY29tcC5jYXN0X3VuaW9uX2FzX2IgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQg KGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuYm9vbF90eXBlLAot CQkJICAgICAgICJiIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc191aW50cHRyID0KLSAgICBnY2Nf aml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAg ICAgICBjb21wLnVpbnRwdHJfdHlwZSwKLQkJCSAgICAgICAidWludHB0ciIpOwotICBjb21wLmNh c3RfdW5pb25fYXNfcHRyZGlmZiA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29t cC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5wdHJkaWZmX3R5cGUsCi0J CQkgICAgICAgInB0cmRpZmYiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2NfcCA9Ci0gICAgZ2Nj X2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkg ICAgICAgY29tcC5jaGFyX3B0cl90eXBlLAotCQkJICAgICAgICJjX3AiKTsKLSAgY29tcC5jYXN0 X3VuaW9uX2FzX3ZfcCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0 LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC52b2lkX3B0cl90eXBlLAotCQkJICAg ICAgICJ2X3AiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3BfY29uc19wdHIgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAubGlzcF9jb25zX3B0cl90eXBlLAotCQkJICAgICAgICJjb25zX3B0ciIpOwot ICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3 X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxpc3Bf d29yZF90eXBlLAotCQkJICAgICAgICJsaXNwX3dvcmQiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2xpc3Bfd29yZF90YWcgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4 dCwKK3N0YXRpYyBnY2Nfaml0X2Z1bmN0aW9uICoKK2RlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVj dCBjYXN0X3R5cGUgZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCisg ICAgICAgICAgICAgICAgICAgIGludCB0b19pbmRleCkKK3sKKyAgY2hhciAqbmFtZSA9IGZvcm1h dF9zdHJpbmcgKCJjYXN0X2Zyb21fJXNfdG9fJXMiLCBmcm9tLm5hbWUsIHRvLm5hbWUpOworICBn Y2Nfaml0X3BhcmFtICpwYXJhbSA9IGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4 dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcm9tLnR5cGUsICJhcmciKTsKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqcmVzdWx0ID0gZ2Nj X2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5s aXNwX3dvcmRfdGFnX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpc3Bf d29yZF90YWciKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0ciA9Ci0gICAgZ2Nj X2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkg ICAgICAgY29tcC5saXNwX29ial9wdHJfdHlwZSwKLQkJCSAgICAgICAibGlzcF9vYmpfcHRyIik7 Ci0KLQotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tdID0KLSAgICB7IGNvbXAu Y2FzdF91bmlvbl9hc19sbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bGwsCi0gICAgICBj b21wLmNhc3RfdW5pb25fYXNfbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bCwKLSAgICAg IGNvbXAuY2FzdF91bmlvbl9hc191LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2ksCi0gICAg ICBjb21wLmNhc3RfdW5pb25fYXNfYiwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191aW50cHRy LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3B0cmRpZmYsCi0gICAgICBjb21wLmNhc3RfdW5p b25fYXNfY19wLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3ZfcCwKLSAgICAgIGNvbXAuY2Fz dF91bmlvbl9hc19saXNwX2NvbnNfcHRyLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bf d29yZCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnLAotICAgICAgY29t cC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0ciB9OworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDQ19KSVRfRlVOQ1RJT05fSU5URVJOQUwsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdG8udHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnBhcmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworCisg IERFQ0xfQkxPQ0sgKGVudHJ5X2Jsb2NrLCByZXN1bHQpOworCisgIGdjY19qaXRfbHZhbHVlICp0 bXBfdW5pb24KKyAgICA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChyZXN1bHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidW5pb25fY2FzdCIpOworCisgIC8qICBaZXJvIHRoZSB1bmlvbiBmaXJz dC4gICovCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGVudHJ5X2Jsb2NrLCBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hY2Nlc3Nf ZmllbGQgKHRtcF91bmlvbiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb21wLmNhc3RfdW5pb25fZmllbGRzW05VTV9DQVNUX1RZUEVTXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQg KAorCQkJCSAgICBjb21wLmN0eHQsCisJCQkJICAgIGNvbXAuY2FzdF90eXBlc1tOVU1fQ0FTVF9U WVBFU10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7CisKKyAgZ2Nj X2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3Vu aW9uLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91 bmlvbl9maWVsZHNbZnJvbV9pbmRleF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW0pKTsKKworICBnY2Nfaml0X2Jsb2NrX2Vu ZF93aXRoX3JldHVybiAoZW50cnlfYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9ydmFs dWVfYWNjZXNzX2ZpZWxkICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Nj X2ppdF9sdmFsdWVfYXNfcnZhbHVlICh0bXBfdW5pb24pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b21wLmNhc3RfdW5pb25fZmllbGRzW3RvX2luZGV4XSkpOworCisgIHJldHVybiByZXN1bHQ7Cit9 CisKK3N0YXRpYyB2b2lkCitkZWZpbmVfY2FzdF9mdW5jdGlvbnMgKHZvaWQpCit7CisgIHN0cnVj dCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FTVF9UWVBFU10KKyAgICA9IHsgeyBjb21wLmJv b2xfdHlwZSwgImJvb2wiLCBzaXplb2YgKGJvb2wpIH0sCisgICAgICAgIHsgY29tcC5jaGFyX3B0 cl90eXBlLCAiY2hhcl9wdHIiLCBzaXplb2YgKGNoYXIgKikgfSwKKyAgICAgICAgeyBjb21wLmlu dF90eXBlLCAiaW50Iiwgc2l6ZW9mIChpbnQpIH0sCisgICAgICAgIHsgY29tcC5saXNwX2NvbnNf cHRyX3R5cGUsICJjb25zX3B0ciIsIHNpemVvZiAoc3RydWN0IExpc3BfQ29ucyAqKSB9LAorICAg ICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUsICJsaXNwX29ial9wdHIiLCBzaXplb2YgKExp c3BfT2JqZWN0ICopIH0sCisgICAgICAgIHsgY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsICJsaXNw X3dvcmRfdGFnIiwgc2l6ZW9mIChMaXNwX1dvcmRfdGFnKSB9LAorICAgICAgICB7IGNvbXAubGlz cF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXplb2YgKExpc3BfV29yZCkgfSwKKyAgICAgICAg eyBjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19sb25nIiwgc2l6ZW9mIChsb25nIGxvbmcpIH0s CisgICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJsb25nIiwgc2l6ZW9mIChsb25nKSB9LAorICAg ICAgICB7IGNvbXAucHRyZGlmZl90eXBlLCAicHRyZGlmZiIsIHNpemVvZiAocHRyZGlmZl90KSB9 LAorICAgICAgICB7IGNvbXAudWludHB0cl90eXBlLCAidWludHB0ciIsIHNpemVvZiAodWludHB0 cl90KSB9LAorICAgICAgICB7IGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsICJ1bnNpZ25l ZF9sb25nX2xvbmciLAorICAgICAgICAgIHNpemVvZiAodW5zaWduZWQgbG9uZyBsb25nKSB9LAor ICAgICAgICB7IGNvbXAudW5zaWduZWRfbG9uZ190eXBlLCAidW5zaWduZWRfbG9uZyIsIHNpemVv ZiAodW5zaWduZWQgbG9uZykgfSwKKyAgICAgICAgeyBjb21wLnVuc2lnbmVkX3R5cGUsICJ1bnNp Z25lZCIsIHNpemVvZiAodW5zaWduZWQpIH0sCisgICAgICAgIHsgY29tcC52b2lkX3B0cl90eXBl LCAidm9pZF9wdHIiLCBzaXplb2YgKHZvaWQqKSB9IH07CisKKyAgLyogRmluZCB0aGUgYmlnZ2Vz dCBzaXplLiAgSXQgc2hvdWxkIGJlIHVuc2lnbmVkIGxvbmcgbG9uZywgYnV0IHRvIGJlCisgICAg IHN1cmUgd2UgZmluZCBpdCBwcm9ncmFtbWF0aWNhbGx5LiAgKi8KKyAgc2l6ZV90IGJpZ2dlc3Rf c2l6ZSA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAg ICBiaWdnZXN0X3NpemUgPSBtYXggKGJpZ2dlc3Rfc2l6ZSwgY2FzdF90eXBlc1tpXS5ieXRlc19z aXplKTsKKworICAvKiBEZWZpbmUgdGhlIHVuaW9uIHVzZWQgZm9yIGNhc3RpbmcuICAqLworICBm b3IgKGludCBpID0gMDsgaSA8IE5VTV9DQVNUX1RZUEVTOyArK2kpCisgICAgeworICAgICAgY29t cC5jYXN0X3R5cGVzW2ldID0gY2FzdF90eXBlc1tpXS50eXBlOworICAgICAgY29tcC5jYXN0X3Vu aW9uX2ZpZWxkc1tpXSA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXN0X3R5cGVzW2ldLnR5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXN0X3R5cGVzW2ldLm5hbWUpOworICAgICAgY29tcC5jYXN0 X3R5cGVfbmFtZXNbaV0gPSBjYXN0X3R5cGVzW2ldLm5hbWU7CisgICAgICBjb21wLmNhc3RfdHlw ZV9zaXplc1tpXSA9IGNhc3RfdHlwZXNbaV0uYnl0ZXNfc2l6ZTsKKyAgICB9CisKKyAgZ2NjX2pp dF90eXBlICpiaWdnZXN0X3R5cGUgPSBnY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlIChjb21w LmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmlnZ2VzdF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgY29tcC5jYXN0X3R5cGVz W05VTV9DQVNUX1RZUEVTXSA9IGJpZ2dlc3RfdHlwZTsKKyAgY29tcC5jYXN0X3VuaW9uX2ZpZWxk c1tOVU1fQ0FTVF9UWVBFU10KKyAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAu Y3R4dCwgTlVMTCwgYmlnZ2VzdF90eXBlLCAiYmlnZ2VzdF90eXBlIik7CisgIGNvbXAuY2FzdF90 eXBlX25hbWVzW05VTV9DQVNUX1RZUEVTXSA9ICJiaWdnZXN0X3R5cGUiOworICBjb21wLmNhc3Rf dHlwZV9zaXplc1tOVU1fQ0FTVF9UWVBFU10gPSBiaWdnZXN0X3NpemU7CisKICAgY29tcC5jYXN0 X3VuaW9uX3R5cGUgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZSAoY29tcC5j dHh0LAogCQkJCSAgICBOVUxMLAogCQkJCSAgICAiY2FzdF91bmlvbiIsCi0JCQkJICAgIEFSUkFZ RUxUUyAoY2FzdF91bmlvbl9maWVsZHMpLAotCQkJCSAgICBjYXN0X3VuaW9uX2ZpZWxkcyk7CisJ CQkJICAgIE5VTV9DQVNUX1RZUEVTKzEsCisJCQkJICAgIGNvbXAuY2FzdF91bmlvbl9maWVsZHMp OworCisgIC8qIERlZmluZSB0aGUgY2FzdCBmdW5jdGlvbnMgdXNpbmcgYSBtYXRyaXguICAqLwor ICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9DQVNUX1RZUEVTOyArK2kpCisgICAgZm9yIChpbnQg aiA9IDA7IGogPCBOVU1fQ0FTVF9UWVBFUzsgKytqKQorICAgICAgICBjb21wLmNhc3RfZnVuY3Rp b25zX2Zyb21fdG9baV1bal0KKyAgICAgICAgICA9IGRlZmluZV9jYXN0X2Zyb21fdG8gKGNhc3Rf dHlwZXNbaV0sIGksIGNhc3RfdHlwZXNbal0sIGopOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMzg2 OSw3ICszODMyLDcgQEAgREVGVU4gKCJjb21wLS1pbml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0 LCBTY29tcF9faW5pdF9jdHh0LAogICBkZWZpbmVfam1wX2J1ZiAoKTsKICAgZGVmaW5lX2hhbmRs ZXJfc3RydWN0ICgpOwogICBkZWZpbmVfdGhyZWFkX3N0YXRlX3N0cnVjdCAoKTsKLSAgZGVmaW5l X2Nhc3RfdW5pb24gKCk7CisgIGRlZmluZV9jYXN0X2Z1bmN0aW9ucyAoKTsKIAogICByZXR1cm4g UXQ7CiB9Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff-- From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Andrea Corallo Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 20:30:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159104334526820 (code B ref 41615); Mon, 01 Jun 2020 20:30:02 +0000 Received: (at 41615) by debbugs.gnu.org; 1 Jun 2020 20:29:05 +0000 Received: from localhost ([127.0.0.1]:37107 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfr3R-0006yW-E5 for submit@debbugs.gnu.org; Mon, 01 Jun 2020 16:29:05 -0400 Received: from mx.sdf.org ([205.166.94.20]:62190) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfr3O-0006yB-QI for 41615@debbugs.gnu.org; Mon, 01 Jun 2020 16:29:03 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 051KT0gE003673 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Mon, 1 Jun 2020 20:29:01 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 051KSxAp008937; Mon, 1 Jun 2020 20:28:59 GMT From: Andrea Corallo References: Date: Mon, 01 Jun 2020 20:28:59 +0000 In-Reply-To: ("Nicolas =?UTF-8?Q?B=C3=A9rtolo?="'s message of "Mon, 1 Jun 2020 09:25:18 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Nicolas B=C3=A9rtolo writes: > I rewrote the "cast with functions" patch and added a few more patches. > - Implement cast to bool as !!x instead of (x & 0xFF). > - Throw an ICE when asked to perform sign extension. I didn't see any > issues with this one. So for now it is not necessary to implement them. > > Nico. > > From 39b8d7b0bbcda4f4f34759b02cc2cf30523536ff Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Sun, 31 May 2020 17:24:03 -0300 > Subject: [PATCH 3/4] Implement casts to bool using double negation like i= n C. As I commented early I think this would be not ideal. The trick of the negation is done already in emit_cond_jump and regarding the cast operation I think is important to keep the C semantic (that is the one we have). I pushed the others with some very minor change, have a look. > From 435ed84c6df4911b238f67c79492533e0c71ca46 Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Sun, 31 May 2020 18:09:12 -0300 > Subject: [PATCH 4/4] Throw an ICE when asked to emit a cast with sign > extension. > > * src/comp.c (cast_kind_of_type): Enum that specifies the kind of type > in the cast enum (unsigned, signed, pointer). > (emit_coerce): Throw an ICE when asked to emit a cast with sign > extension. > (define_cast_from_to): Return NULL for casts involving sign extension. > (define_cast_functions): Specify the kind of each type in the cast > union. > --- > src/comp.c | 58 ++++++++++++++++++++++++++++++++++++++++-------------- > 1 file changed, 43 insertions(+), 15 deletions(-) > [...] > typedef struct { > @@ -514,6 +521,7 @@ #define NUM_CAST_TYPES 15 > member. */ > gcc_jit_type *cast_types[NUM_CAST_TYPES+1]; > size_t cast_type_sizes[NUM_CAST_TYPES+1]; > + enum cast_kind_of_type cast_type_kind[NUM_CAST_TYPES+1]; I've just added the spaces around + (here and for the other). > From ec7af221c7dbf9b9fc551ef38d6e70a1bf09d4e8 Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Sun, 31 May 2020 15:55:18 -0300 > Subject: [PATCH 1/4] Remove unnecessary DLL load of > gcc_jit_block_add_assignment_op. I've jsut added a bare ChangeLog entry, pushed. > From 91189343ccd6943eafc2f3dc8b3b19b8ea879903 Mon Sep 17 00:00:00 2001 > From: =3D?UTF-8?q?Nicol=3DC3=3DA1s=3D20B=3DC3=3DA9rtolo?=3D > Date: Sat, 30 May 2020 18:33:58 -0300 > Subject: [PATCH 2/4] Define casts using functions. > > This is to dump prettier C files. > This does not affect compilation times in my tests. > > * src/comp.c: Define a 15x15 cast matrix. Use it in emit_coerce(). [...] > static gcc_jit_rvalue * > @@ -1090,7 +1041,7 @@ emit_rvalue_from_long_long (gcc_jit_type *type, lon= g long n) > gcc_jit_context_new_rvalue_from_int (comp.ctxt, > comp.unsigned_long_long_type, > 32)), > - low)); > + low)); I guess this was involuntary, I removed this change. > } > > static gcc_jit_rvalue * > @@ -1132,7 +1083,7 @@ emit_rvalue_from_unsigned_long_long (gcc_jit_type *= type, unsigned long long n) > gcc_jit_context_new_rvalue_from_int (comp.ctxt, > comp.unsigned_long_l= ong_type, > 32)), > - low)); > + low)); Likewise > +static void > +define_cast_functions (void) > +{ > + struct cast_type cast_types[NUM_CAST_TYPES] > + =3D { { comp.bool_type, "bool", sizeof (bool) }, > + { comp.char_ptr_type, "char_ptr", sizeof (char *) }, > + { comp.int_type, "int", sizeof (int) }, > + { comp.lisp_cons_ptr_type, "cons_ptr", sizeof (struct Lisp_Cons = *) }, > + { comp.lisp_obj_ptr_type, "lisp_obj_ptr", sizeof (Lisp_Object *)= }, > + { comp.lisp_word_tag_type, "lisp_word_tag", sizeof (Lisp_Word_ta= g) }, > + { comp.lisp_word_type, "lisp_word", sizeof (Lisp_Word) }, > + { comp.long_long_type, "long_long", sizeof (long long) }, > + { comp.long_type, "long", sizeof (long) }, > + { comp.ptrdiff_type, "ptrdiff", sizeof (ptrdiff_t) }, > + { comp.uintptr_type, "uintptr", sizeof (uintptr_t) }, > + { comp.unsigned_long_long_type, "unsigned_long_long", > + sizeof (unsigned long long) }, > + { comp.unsigned_long_type, "unsigned_long", sizeof (unsigned lon= g) }, > + { comp.unsigned_type, "unsigned", sizeof (unsigned) }, > + { comp.void_ptr_type, "void_ptr", sizeof (void*) } }; Fine for now, but I don't like to have all this information sparse. We should take what is now cast_type (add the sign information) call it something like comp_type and use it allover. So that when we initialize a type all the information is in one place and is not duplicated. If you like to pick this task would be very welcome. [...] > comp.cast_union_type =3D > gcc_jit_context_new_union_type (comp.ctxt, > NULL, > "cast_union", > - ARRAYELTS (cast_union_fields), > - cast_union_fields); > + NUM_CAST_TYPES+1, Spaces around + > + comp.cast_union_fields); > + > + /* Define the cast functions using a matrix. */ > + for (int i =3D 0; i < NUM_CAST_TYPES; ++i) > + for (int j =3D 0; j < NUM_CAST_TYPES; ++j) > + comp.cast_functions_from_to[i][j] Okay so the three pushed. Thanks Andrea -- akrl@sdf.org From unknown Sun Aug 10 00:24:29 2025 X-Loop: help-debbugs@gnu.org Subject: bug#41615: [feature/native-comp] Dump prettier C code. Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 23:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Andrea Corallo Cc: 41615@debbugs.gnu.org Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159105312317204 (code B ref 41615); Mon, 01 Jun 2020 23:13:01 +0000 Received: (at 41615) by debbugs.gnu.org; 1 Jun 2020 23:12:03 +0000 Received: from localhost ([127.0.0.1]:37293 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jftb9-0004TQ-EK for submit@debbugs.gnu.org; Mon, 01 Jun 2020 19:12:03 -0400 Received: from mail-oo1-f49.google.com ([209.85.161.49]:33094) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jftb6-0004Sv-Rr for 41615@debbugs.gnu.org; Mon, 01 Jun 2020 19:12:01 -0400 Received: by mail-oo1-f49.google.com with SMTP id q6so1789531oot.0 for <41615@debbugs.gnu.org>; Mon, 01 Jun 2020 16:12:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qkeY0o+TYt58oaRKizAKJigWHNEhiLFF90D2CeiY+KA=; b=WIGD17hcYvifVYvzd2hf8wws51hTPUpMQwR90HM2cVMutF/utluxcyqMRox1ATWwya seVmtgDOuevI2RBQxqsZfcxBKUhEFtc/bdRrSQSlTK2xM0qgDkONFo3uUYBEZZWNm743 hOGmJRdKOgG00M7v178A6b1QSSiYeCtSleb11cHA1OhAjVke4J1y0crU0FW7F/pA7oOe kGdsjcVXwip/8rZK6Yg/u5i3dgL6UdubED+yJqCZtm4RvtwCN+bJ9SajvnYaKWYyQ5Q3 hAqAFHNaSeB8PeavVD15NP/POqQC+QPyVEkRmGoJ7VK45Qjzmvb8zhB90khwldkzh3hu WF8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qkeY0o+TYt58oaRKizAKJigWHNEhiLFF90D2CeiY+KA=; b=OGKMixs6nM6LoZD/wKkrZ08XiPQ+gSwzQHQdCXh8quCNxo1CdVS7PcnlGvMf96s1Dn AfdSt+6GVX4A2ElnF0CN+tn3nEEPfwAUS6YAcWXxohRleu31mm7VykePbG7+p+tVI7kq CawNXngNsOVBItmMGeJvhLsWv4k86Cxg7SmTyNaKh+MyJKR9KSCfG3RpO095X2fO0Dfx CePPaQho6olycja++E7zrs2ScjwNi+/kZKHGw136Cjwis07EDUQ8FYh2eG8Q+2+7jyAG GLg3wmbUsdG3ziukGGEB82Ejrbl/5V6PtYTSPBFx1qS7x4KGohoNZAjDjVcqVzy6NW+c ul/w== X-Gm-Message-State: AOAM530MDFyD9L/spPrUhWHQRfKNfW/0VbhKIwCVTCyUbuCAeg3jnzpz wvvbA9NiAeAyeBSzqmNH8HvC/zzQnZkHn642FxQ= X-Google-Smtp-Source: ABdhPJyjNqH9gA2eV27oLI+Hwff8MzZj0XUnyOUc1hwfJfYECgAdKeygO3wbp70WxF/dylbOOQeFCmlDbyHTuZR5ZTU= X-Received: by 2002:a4a:ad0d:: with SMTP id r13mr18642474oon.22.1591053115211; Mon, 01 Jun 2020 16:11:55 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Date: Mon, 1 Jun 2020 20:11:44 -0300 Message-ID: Content-Type: text/plain; charset="UTF-8" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) > As I commented early I think this would be not ideal. The trick of the > negation is done already in emit_cond_jump and regarding the cast > operation I think is important to keep the C semantic (that is the one > we have). Sorry, my bad. I reread your emails and I understood them backwards. I thought you didn't mind conversions that discarded data for integer->integer casts. > We should take what is now cast_type (add the sign information) call it > something like comp_type and use it allover. So that when we initialize > a type all the information is in one place and is not duplicated. > If you like to pick this task would be very welcome. I'm still chasing the bug that causes Emacs to crash when accessing the all_loaded_comp_units_h weak hash table. When I finish with it I will take a look at this. Thanks Nico From unknown Sun Aug 10 00:24:29 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Subject: bug#41615: closed (Re: bug#41615: [feature/native-comp] Dump prettier C code.) Message-ID: References: X-Gnu-PR-Message: they-closed 41615 X-Gnu-PR-Package: emacs Reply-To: 41615@debbugs.gnu.org Date: Thu, 04 Jun 2020 09:53:01 +0000 Content-Type: multipart/mixed; boundary="----------=_1591264381-16047-1" This is a multi-part message in MIME format... ------------=_1591264381-16047-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #41615: [feature/native-comp] Dump prettier C code. which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 41615@debbugs.gnu.org. --=20 41615: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41615 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1591264381-16047-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 41615-done) by debbugs.gnu.org; 4 Jun 2020 09:52:30 +0000 Received: from localhost ([127.0.0.1]:45165 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgmY2-0004A7-0h for submit@debbugs.gnu.org; Thu, 04 Jun 2020 05:52:30 -0400 Received: from mx.sdf.org ([205.166.94.20]:61505) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgmY0-00049y-CK for 41615-done@debbugs.gnu.org; Thu, 04 Jun 2020 05:52:29 -0400 Received: from sdf.org (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 0549qRrK019656 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO) for <41615-done@debbugs.gnu.org>; Thu, 4 Jun 2020 09:52:27 GMT Received: (from akrl@localhost) by sdf.org (8.15.2/8.12.8/Submit) id 0549qQi7022042; Thu, 4 Jun 2020 09:52:26 GMT From: Andrea Corallo To: 41615-done@debbugs.gnu.org Subject: Re: bug#41615: [feature/native-comp] Dump prettier C code. References: Date: Thu, 04 Jun 2020 09:52:26 +0000 In-Reply-To: ("Nicolas =?utf-8?Q?B=C3=A9rtolo=22's?= message of "Mon, 1 Jun 2020 20:11:44 -0300") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41615-done X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) closing -- akrl@sdf.org ------------=_1591264381-16047-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 30 May 2020 15:08:25 +0000 Received: from localhost ([127.0.0.1]:58893 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf361-0004EQ-CO for submit@debbugs.gnu.org; Sat, 30 May 2020 11:08:25 -0400 Received: from lists.gnu.org ([209.51.188.17]:59448) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jf35z-0004EJ-Jc for submit@debbugs.gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37658) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jf35z-0005pQ-FK for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]:37134) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jf35y-0005sO-Ju for bug-gnu-emacs@gnu.org; Sat, 30 May 2020 11:08:23 -0400 Received: by mail-ot1-x32f.google.com with SMTP id x22so4334604otq.4 for ; Sat, 30 May 2020 08:08:21 -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=+eg0RN9e+5PfofWQQsl+LyuzKKBFPN5l8pYfnX+McL8=; b=eSdk351CTa9IMJRhsxPmmgAlTdGJyttOkMF2NtB0iqTA5U1x8cjH3anFAp+eIHdKBY IjuMXsxFUfrZwvcZwGJsNqepX69D8TLu/eixE8xZJvspgFQa3iLvBEZhNuhtrT6J7jSc AMBmMtiLKg7dGWk9FbxePOpVvxBbbuFo/Vbmn2zpCQHI6dp6WuIE8ieCmo8lRVFwvbu6 IOrYojLnLjT2Bs6OSZp4eLalaH04Xtrz7oZMy1/usymFyWD/Ueu3vqAZRRy6xdOZDjcM PtYAH/jGX0kyXs7PJkzZKOJ8V3qcfIzCD8qIH0q38Fo0HzN0bYOT0XqOU2K2O/0zsVVm NM/Q== 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=+eg0RN9e+5PfofWQQsl+LyuzKKBFPN5l8pYfnX+McL8=; b=Rc6VbLAhVdvHLeHX/+B/kDFIVS7vovpiXMMuH0U9xeOTp4YtWSh4B6vpuvQiEvYTQt YnimxQ79PNmCHK3lhQZbK7mTYWIX0rdONAFxeMaAMGApbEN3cFnzKN4LA4oSa9Irzkcw dT+CL3FRhgcZxA90CaeK19yuLPbi2dh6NlTrEPjL3IJlALqvo5V/s5SymTYgHawRaK7L ez5OkODry0d0UzlBCPJ1vrIA0feJGA51huwkbxYwSIySin/X1fbf7g6JU7vGIOKa/xLG GXFe3chxAdoMzDds1bd3XzWvW994aftz0oDOnrdc6RFi8qbXdhm+ZSImOAgBHMmTF5tf 4nMg== X-Gm-Message-State: AOAM531P082zEMrp/dEDg3h85RKSY6Y4Ltq6wsRYQA/+dxMykPJ0eSCs 59IqCp9SfTLq2hHj67U05orap9OiZzLNDRAxwns2dm0zLSI= X-Google-Smtp-Source: ABdhPJw4spEfijRhqzA2WlAfcnc5ALcYn2ghi72Sk/ZdzYazRzirsfco04yGb/KsIpjXaeJfD1OcW94V/kO0a9gkI40= X-Received: by 2002:a9d:5f09:: with SMTP id f9mr10311484oti.202.1590851300798; Sat, 30 May 2020 08:08:20 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?Q?Nicolas_B=C3=A9rtolo?= Date: Sat, 30 May 2020 12:08:07 -0300 Message-ID: Subject: [feature/native-comp] Dump prettier C code. To: bug-gnu-emacs@gnu.org Content-Type: multipart/mixed; boundary="000000000000ace01405a6deee60" Received-SPF: pass client-ip=2607:f8b0:4864:20::32f; envelope-from=nicolasbertolo@gmail.com; helo=mail-ot1-x32f.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.4 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000ace01405a6deee60 Content-Type: multipart/alternative; boundary="000000000000ace01105a6deee5e" --000000000000ace01105a6deee5e Content-Type: text/plain; charset="UTF-8" I found two ways to improve the looks of the dumped code. - Define static data using string literals of at most 200 bytes. This reduces the line count and lets us understand what the static object consists of. - Define casts using functions. These functions should get always get inlined. Thanks, Nico --000000000000ace01105a6deee5e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I found two ways to improve the looks of the dumped c= ode.

- Define static data using string literals of at m= ost 200 bytes. This reduces
=C2=A0 the line count and lets us understand= what the static object consists of.

- Define casts using funct= ions. These functions should get always get inlined.

Thanks, Nico
--000000000000ace01105a6deee5e-- --000000000000ace01405a6deee60 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_katrry5d1 RnJvbSA4ZWQ0MjUwOWU1NWU3OGU2N2Q5OTg5ZTRjMTE5YzFiOGY2YmVhNDYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAwMDo0 NjozMCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBEZWZpbmUgY2FzdHMgdXNpbmcgZnVuY3Rp b25zLgoKVGhpcyBpcyB0byBkdW1wIHByZXR0aWVyIEMgZmlsZXMuClRoaXMgZG9lcyBub3QgYWZm ZWN0IGNvbXBpbGF0aW9uIHRpbWVzIGluIG15IHRlc3RzLgoKKiBzcmMvY29tcC5jOiBEZWZpbmUg YSAxNXgxNSBjYXN0IG1hdHJpeC4gVXNlIGl0IGluIGVtaXRfY29lcmNlKCkuCi0tLQogc3JjL2Nv bXAuYyB8IDI3OCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAxNzQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggM2Y0YjNlMDNi Ny4uZjVmNmIxYmFjYSAxMDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBA IC00NTQsNiArNDU0LDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKIAogc3RhdGlj IGZfcmVsb2NfdCBmcmVsb2M7CiAKKyNkZWZpbmUgTlVNX0NBU1RfVFlQRVMgMTUKKwogLyogQyBz aWRlIG9mIHRoZSBjb21waWxlciBjb250ZXh0LiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAt NTEyLDIxICs1MTQsOSBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICAvKiBsaWJn Y2NqaXQgaGFzIHJlYWxseSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3JlIHRo aXMgdW5pb24gd2lsbAogICAgICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nfaml0 X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19s bDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bGw7Ci0gIGdjY19qaXRfZmllbGQg KmNhc3RfdW5pb25fYXNfbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bDsKLSAg Z2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191OwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3Vu aW9uX2FzX2k7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfYjsKLSAgZ2NjX2ppdF9m aWVsZCAqY2FzdF91bmlvbl9hc191aW50cHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9u X2FzX3B0cmRpZmY7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfY19wOwotICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX3ZfcDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlv bl9hc19saXNwX2NvbnNfcHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bf d29yZDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnOwotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKKyAgZ2NjX2ppdF9mdW5j dGlvbiAqY2FzdF9mdW5jdGlvbnNfZnJvbV90b1tOVU1fQ0FTVF9UWVBFU11bTlVNX0NBU1RfVFlQ RVNdOworICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVNdOworICBnY2Nf aml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tOVU1fQ0FTVF9UWVBFU107CiAgIGdjY19qaXRf ZnVuY3Rpb24gKmZ1bmM7IC8qIEN1cnJlbnQgZnVuY3Rpb24gYmVpbmcgY29tcGlsZWQuICAqLwog ICBib29sIGZ1bmNfaGFzX25vbl9sb2NhbDsgLyogRnJvbSBjb21wLWZ1bmMgaGFzLW5vbi1sb2Nh bCBzbG90LiAgKi8KICAgZ2NjX2ppdF9sdmFsdWUgKipmX2ZyYW1lOyAvKiAiRmxvYXRpbmciIGZy YW1lIGZvciB0aGUgY3VycmVudCBmdW5jdGlvbi4gICovCkBAIC02ODQsNDcgKzY3NCw2IEBAIGJj 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 T2JqZWN0IGJsb2NrX25hbWUpCiB7CkBAIC05ODUsMTEgKzkzNCwxOSBAQCBlbWl0X2NvbmRfanVt cCAoZ2NjX2ppdF9ydmFsdWUgKnRlc3QsCiAKIH0KIAorc3RhdGljIGludAordHlwZV90b19jYXN0 X2luZGV4KGdjY19qaXRfdHlwZSAqIHR5cGUpCit7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVN X0NBU1RfVFlQRVM7ICsraSkKKyAgICBpZiAodHlwZSA9PSBjb21wLmNhc3RfdHlwZXNbaV0pCisg ICAgICByZXR1cm4gaTsKKworICB4c2lnbmFsMSAoUW5hdGl2ZV9pY2UsIGJ1aWxkX3N0cmluZyAo InVuc3VwcG9ydGVkIGNhc3QiKSk7Cit9CisKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCiBlbWl0 X2NvZXJjZSAoZ2NjX2ppdF90eXBlICpuZXdfdHlwZSwgZ2NjX2ppdF9ydmFsdWUgKm9iaikKIHsK LSAgc3RhdGljIHB0cmRpZmZfdCBpOwotCiAgIGdjY19qaXRfdHlwZSAqb2xkX3R5cGUgPSBnY2Nf aml0X3J2YWx1ZV9nZXRfdHlwZSAob2JqKTsKIAogICBpZiAobmV3X3R5cGUgPT0gb2xkX3R5cGUp CkBAIC0xMDIxLDI1ICs5NzgsMTQgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlwZSAqbmV3X3R5 cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgICAgfQogI2VuZGlmCiAKLSAgZ2NjX2ppdF9maWVs ZCAqb3JpZ19maWVsZCA9Ci0gICAgdHlwZV90b19jYXN0X2ZpZWxkIChvbGRfdHlwZSk7Ci0gIGdj Y19qaXRfZmllbGQgKmRlc3RfZmllbGQgPSB0eXBlX3RvX2Nhc3RfZmllbGQgKG5ld190eXBlKTsK LQotICBnY2Nfaml0X2x2YWx1ZSAqdG1wX3UgPQotICAgIGdjY19qaXRfZnVuY3Rpb25fbmV3X2xv Y2FsIChjb21wLmZ1bmMsCi0JCQkJTlVMTCwKLQkJCQljb21wLmNhc3RfdW5pb25fdHlwZSwKLQkJ CQlmb3JtYXRfc3RyaW5nICgidW5pb25fY2FzdF8ldGQiLCBpKyspKTsKLSAgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudCAoY29tcC5ibG9jaywKLQkJCQlOVUxMLAotCQkJCWdjY19qaXRfbHZh bHVlX2FjY2Vzc19maWVsZCAodG1wX3UsCi0JCQkJCQkJICAgICBOVUxMLAotCQkJCQkJCSAgICAg b3JpZ19maWVsZCksCi0JCQkJb2JqKTsKKyAgaW50IG9sZF9pbmRleCA9IHR5cGVfdG9fY2FzdF9p bmRleCAob2xkX3R5cGUpOworICBpbnQgbmV3X2luZGV4ID0gdHlwZV90b19jYXN0X2luZGV4IChu ZXdfdHlwZSk7CiAKLSAgcmV0dXJuIGdjY19qaXRfcnZhbHVlX2FjY2Vzc19maWVsZCAoIGdjY19q aXRfbHZhbHVlX2FzX3J2YWx1ZSAodG1wX3UpLAotCQkJCSAgICAgICBOVUxMLAotCQkJCSAgICAg ICBkZXN0X2ZpZWxkKTsKKyAgLyogTG9va3VwIHRoZSBhcHByb3ByaWF0ZSBjYXN0IGZ1bmN0aW9u IGluIHRoZSBjYXN0IG1hdHJpeC4gKi8KKyAgcmV0dXJuIGdjY19qaXRfY29udGV4dF9uZXdfY2Fs bCAoY29tcC5jdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmNhc3RfZnVuY3Rpb25zX2Zy b21fdG9bb2xkX2luZGV4XVtuZXdfaW5kZXhdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxLCAmb2JqKTsKIH0KIAogc3RhdGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTMxMjgs MTA5ICszMDc0LDkzIEBAIGRlZmluZV90aHJlYWRfc3RhdGVfc3RydWN0ICh2b2lkKQogICAgIGdj Y19qaXRfdHlwZV9nZXRfcG9pbnRlciAoZ2NjX2ppdF9zdHJ1Y3RfYXNfdHlwZSAoY29tcC50aHJl YWRfc3RhdGVfcykpOwogfQogCi1zdGF0aWMgdm9pZAotZGVmaW5lX2Nhc3RfdW5pb24gKHZvaWQp CitzdHJ1Y3QgY2FzdF90eXBlCiB7CisgIGdjY19qaXRfdHlwZSAqIHR5cGU7CisgIGNvbnN0IGNo YXIgKm5hbWU7Cit9OworCitzdGF0aWMgZ2NjX2ppdF9mdW5jdGlvbiAqCitkZWZpbmVfY2FzdF9m cm9tX3RvKHN0cnVjdCBjYXN0X3R5cGUgZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0 X3R5cGUgdG8sIGludCB0b19pbmRleCkKK3sKKyAgTGlzcF9PYmplY3QgbmFtZSA9IENBTExOKEZm b3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9zdHJpbmcoImNhc3RfZnJv bV8lc190b18lcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRfc3RyaW5nKGZy b20ubmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZF9zdHJpbmcodG8ubmFt ZSkpOworICBnY2Nfaml0X3BhcmFtICogcGFyYW0gPSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFt KGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmcm9tLnR5cGUsICJhcmciKTsKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqIHJl c3VsdCA9CisgICAgZ2NjX2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NDX0pJVF9GVU5DVElPTl9BTFdBWVNfSU5MSU5FLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRvLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU1NEQVRBKG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhcmFtLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworCisgIERFQ0xfQkxPQ0sgKGVudHJ5X2Js b2NrLCByZXN1bHQpOworCisgIGdjY19qaXRfbHZhbHVlICp0bXBfdW5pb24KKyAgICA9IGdjY19q aXRfZnVuY3Rpb25fbmV3X2xvY2FsIChyZXN1bHQsIE5VTEwsIGNvbXAuY2FzdF91bmlvbl90eXBl LCAidW5pb25fY2FzdCIpOworCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGVudHJ5 X2Jsb2NrLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2 YWx1ZV9hY2Nlc3NfZmllbGQgKHRtcF91bmlvbiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW2Zyb21faW5kZXhdKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUocGFyYW0p KTsKKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybihlbnRyeV9ibG9jaywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2NjX2ppdF9ydmFsdWVfYWNjZXNzX2ZpZWxkICgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHRtcF91bmlvbiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW3RvX2luZGV4XSkpOworCisg IHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkCitkZWZpbmVfY2FzdF9mdW5jdGlvbnMg KHZvaWQpCit7CisgIHN0cnVjdCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FTVF9UWVBFU10g PQorICAgIHt7Y29tcC5ib29sX3R5cGUsICJib29sIn0sCisgICAgIHtjb21wLmNoYXJfcHRyX3R5 cGUsICJjaGFyX3B0ciJ9LAorICAgICB7Y29tcC5pbnRfdHlwZSwgImludCJ9LAorICAgICB7Y29t cC5saXNwX2NvbnNfcHRyX3R5cGUsICJjb25zX3B0ciJ9LAorICAgICB7Y29tcC5saXNwX29ial9w dHJfdHlwZSwgImxpc3Bfb2JqX3B0ciJ9LAorICAgICB7Y29tcC5saXNwX3dvcmRfdGFnX3R5cGUs ICJsaXNwX3dvcmRfdGFnIn0sCisgICAgIHtjb21wLmxpc3Bfd29yZF90eXBlLCAibGlzcF93b3Jk In0sCisgICAgIHtjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19sb25nIn0sCisgICAgIHtjb21w LmxvbmdfdHlwZSwgImxvbmcifSwKKyAgICAge2NvbXAucHRyZGlmZl90eXBlLCAicHRyZGlmZiJ9 LAorICAgICB7Y29tcC51aW50cHRyX3R5cGUsICJ1aW50cHRyIn0sCisgICAgIHtjb21wLnVuc2ln bmVkX2xvbmdfbG9uZ190eXBlLCAidW5zaWduZWRfbG9uZ19sb25nIn0sCisgICAgIHtjb21wLnVu c2lnbmVkX2xvbmdfdHlwZSwgInVuc2lnbmVkX2xvbmcifSwKKyAgICAge2NvbXAudW5zaWduZWRf dHlwZSwgInVuc2lnbmVkIn0sCisgICAgIHtjb21wLnZvaWRfcHRyX3R5cGUsICJ2b2lkX3B0ciJ9 fTsKKworICAvKiBEZWZpbmUgdGhlIHVuaW9uIHVzZWQgZm9yIGNhc3RpbmcuICovCisgIGZvciAo aW50IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAgICB7CisgICAgICBjb21wLmNh c3RfdHlwZXNbaV0gPSBjYXN0X3R5cGVzW2ldLnR5cGU7CisgICAgICBjb21wLmNhc3RfdW5pb25f ZmllbGRzW2ldID0gZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2FzdF90eXBlc1tpXS50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc3RfdHlwZXNbaV0ubmFtZSk7Cisg ICAgfQogCi0gIGNvbXAuY2FzdF91bmlvbl9hc19sbCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25l d19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5sb25n X2xvbmdfdHlwZSwKLQkJCSAgICAgICAibGwiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX3VsbCA9 Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5V TEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKLQkJCSAgICAgICAi dWxsIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19sID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3 X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxvbmdf dHlwZSwKLQkJCSAgICAgICAibCIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfdWwgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ190eXBlLAotCQkJICAgICAgICJ1bCIpOwotICBjb21w LmNhc3RfdW5pb25fYXNfdSA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5j dHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF90eXBlLAotCQkJ ICAgICAgICJ1Iik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19pID0KLSAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21w LmludF90eXBlLAotCQkJICAgICAgICJpIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19iID0KLSAg ICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwK LQkJCSAgICAgICBjb21wLmJvb2xfdHlwZSwKLQkJCSAgICAgICAiYiIpOwotICBjb21wLmNhc3Rf dW5pb25fYXNfdWludHB0ciA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5j dHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51aW50cHRyX3R5cGUsCi0JCQkg ICAgICAgInVpbnRwdHIiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX3B0cmRpZmYgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAucHRyZGlmZl90eXBlLAotCQkJICAgICAgICJwdHJkaWZmIik7Ci0gIGNvbXAu Y2FzdF91bmlvbl9hc19jX3AgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAu Y3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuY2hhcl9wdHJfdHlwZSwKLQkJ CSAgICAgICAiY19wIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc192X3AgPQotICAgIGdjY19qaXRf Y29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAg IGNvbXAudm9pZF9wdHJfdHlwZSwKLQkJCSAgICAgICAidl9wIik7Ci0gIGNvbXAuY2FzdF91bmlv bl9hc19saXNwX2NvbnNfcHRyID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21w LmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxpc3BfY29uc19wdHJfdHlw ZSwKLQkJCSAgICAgICAiY29uc19wdHIiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29y ZCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAg IE5VTEwsCi0JCQkgICAgICAgY29tcC5saXNwX3dvcmRfdHlwZSwKLQkJCSAgICAgICAibGlzcF93 b3JkIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnID0KLSAgICBnY2Nfaml0 X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLmxpc3Bfd29y ZF90YWdfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGlzcF93b3JkX3Rh ZyIpOwotICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9vYmpfcHRyID0KLSAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBj b21wLmxpc3Bfb2JqX3B0cl90eXBlLAotCQkJICAgICAgICJsaXNwX29ial9wdHIiKTsKLQotCi0g IGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fZmllbGRzW10gPQotICAgIHsgY29tcC5jYXN0X3Vu aW9uX2FzX2xsLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VsbCwKLSAgICAgIGNvbXAuY2Fz dF91bmlvbl9hc19sLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VsLAotICAgICAgY29tcC5j YXN0X3VuaW9uX2FzX3UsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfaSwKLSAgICAgIGNvbXAu Y2FzdF91bmlvbl9hc19iLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3VpbnRwdHIsCi0gICAg ICBjb21wLmNhc3RfdW5pb25fYXNfcHRyZGlmZiwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc19j X3AsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfdl9wLAotICAgICAgY29tcC5jYXN0X3VuaW9u X2FzX2xpc3BfY29uc19wdHIsCi0gICAgICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkLAot ICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZF90YWcsCi0gICAgICBjb21wLmNhc3Rf dW5pb25fYXNfbGlzcF9vYmpfcHRyIH07CiAgIGNvbXAuY2FzdF91bmlvbl90eXBlID0KICAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3VuaW9uX3R5cGUgKGNvbXAuY3R4dCwKIAkJCQkgICAgTlVMTCwK IAkJCQkgICAgImNhc3RfdW5pb24iLAotCQkJCSAgICBBUlJBWUVMVFMgKGNhc3RfdW5pb25fZmll bGRzKSwKLQkJCQkgICAgY2FzdF91bmlvbl9maWVsZHMpOworCQkJCSAgICBOVU1fQ0FTVF9UWVBF UywKKwkJCQkgICAgY29tcC5jYXN0X3VuaW9uX2ZpZWxkcyk7CisKKyAgLyogRGVmaW5lIHRoZSBj YXN0IGZ1bmN0aW9ucyB1c2luZyBhIG1hdHJpeC4gKi8KKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBO VU1fQ0FTVF9UWVBFUzsgKytpKQorICAgIGZvciAoaW50IGogPSAwOyBqIDwgTlVNX0NBU1RfVFlQ RVM7ICsraikKKyAgICAgICAgY29tcC5jYXN0X2Z1bmN0aW9uc19mcm9tX3RvW2ldW2pdID0KKyAg ICAgICAgICBkZWZpbmVfY2FzdF9mcm9tX3RvIChjYXN0X3R5cGVzW2ldLCBpLCBjYXN0X3R5cGVz W2pdLCBqKTsKIH0KIAogc3RhdGljIHZvaWQKQEAgLTQwNDEsNyArMzk3MSw3IEBAIERFRlVOICgi Y29tcC0taW5pdC1jdHh0IiwgRmNvbXBfX2luaXRfY3R4dCwgU2NvbXBfX2luaXRfY3R4dCwKICAg ZGVmaW5lX2ptcF9idWYgKCk7CiAgIGRlZmluZV9oYW5kbGVyX3N0cnVjdCAoKTsKICAgZGVmaW5l X3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKCk7Ci0gIGRlZmluZV9jYXN0X3VuaW9uICgpOworICBkZWZp bmVfY2FzdF9mdW5jdGlvbnMgKCk7CiAgIGRlZmluZV9uYWl2ZV9iemVybyAoKTsKICAgZGVmaW5l X25haXZlX21lbWNweSAoKTsKIAotLSAKMi4yNS4xLndpbmRvd3MuMQoK --000000000000ace01405a6deee60 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_katrry4n0 RnJvbSA5YTA5MGMwMmFlZGQ1ZWUyMzk1MWJhY2I1ZjBjNTI3NWEzNzM4NzVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBNYXkgMjAyMCAwMDoz NDozMiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBEZWZpbmUgc3RhdGljIGRhdGEgdXNpbmcg c3RyaW5nIGxpdGVyYWxzLgoKVGhlIHB1cnBvc2Ugb2YgdGhpcyBjaGFuZ2UgaXMgdG8gZHVtcCBw cmV0dGllciBDIGZpbGVzLgpUaGlzIGRvZXMgbm90IGFmZmVjdCBjb21waWxhdGlvbiB0aW1lcyBp biBteSB0ZXN0cy4KCiogc3JjL2NvbXAuYyAoZW1pdF9zdGF0aWNfb2JqZWN0KTogRGVmaW5lIHN0 YXRpYyBvYmplY3RzIHVzaW5nIHN0cmluZwpsaXRlcmFscywgbWVtY3B5IGFuZCBiemVyby4KLS0t CiBzcmMvY29tcC5jIHwgMzAwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjgyIGluc2VydGlvbnMoKyksIDE4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDk5 NjE2OGJiYjUuLjNmNGIzZTAzYjcgMTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2Nv bXAuYwpAQCAtNDYsNiArNDYsNyBAQAogIyBpbmNsdWRlICJ3MzJjb21tb24uaCIKIAogI3VuZGVm IGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyN1bmRlZiBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50X29wCiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfY29tbWVudAogI3VuZGVmIGdj Y19qaXRfYmxvY2tfYWRkX2V2YWwKICN1bmRlZiBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRp dGlvbmFsCkBAIC03NSw2ICs3Niw3IEBACiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFs dWVfZnJvbV9pbnQKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcK ICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI3VuZGVmIGdjY19q aXRfY29udGV4dF9uZXdfc3RyaW5nX2xpdGVyYWwKICN1bmRlZiBnY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlCiAjdW5kZWYgZ2NjX2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI3VuZGVm IGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZQpAQCAtMTY0LDYgKzE2Niw4IEBAIERFRl9E TExfRk4gKGdjY19qaXRfcnZhbHVlICosIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21f bG9uZywKICAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAq bnVtZXJpY190eXBlLCBsb25nIHZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAq LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciwKICAgICAgICAgICAgIChnY2Nf aml0X2NvbnRleHQgKmN0eHQsIGdjY19qaXRfdHlwZSAqcG9pbnRlcl90eXBlLCB2b2lkICp2YWx1 ZSkpOworREVGX0RMTF9GTiAoZ2NjX2ppdF9ydmFsdWUgKiwgZ2NjX2ppdF9jb250ZXh0X25ld19z dHJpbmdfbGl0ZXJhbCwKKyAgICAgICAgICAgIChnY2Nfaml0X2NvbnRleHQgKmN0eHQsIGNvbnN0 IGNoYXIgKnZhbHVlKSk7CiBERUZfRExMX0ZOIChnY2Nfaml0X3J2YWx1ZSAqLCBnY2Nfaml0X2Nv bnRleHRfbmV3X3VuYXJ5X29wLAogICAgICAgICAgICAgKGdjY19qaXRfY29udGV4dCAqY3R4dCwg Z2NjX2ppdF9sb2NhdGlvbiAqbG9jLAogICAgICAgICAgICAgIGVudW0gZ2NjX2ppdF91bmFyeV9v cCBvcCwgZ2NjX2ppdF90eXBlICpyZXN1bHRfdHlwZSwKQEAgLTE5Nyw2ICsyMDEsOSBAQCBERUZf RExMX0ZOIChnY2Nfaml0X3R5cGUgKiwgZ2NjX2ppdF90eXBlX2dldF9wb2ludGVyLCAoZ2NjX2pp dF90eXBlICp0eXBlKSk7CiBERUZfRExMX0ZOICh2b2lkLCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3Np Z25tZW50LAogICAgICAgICAgICAgKGdjY19qaXRfYmxvY2sgKmJsb2NrLCBnY2Nfaml0X2xvY2F0 aW9uICpsb2MsIGdjY19qaXRfbHZhbHVlICpsdmFsdWUsCiAgICAgICAgICAgICAgZ2NjX2ppdF9y dmFsdWUgKnJ2YWx1ZSkpOworREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudF9vcCwKKyAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2NjX2ppdF9s b2NhdGlvbiAqbG9jLCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAorICAgICAgICAgICAgIGVudW0g Z2NjX2ppdF9iaW5hcnlfb3Agb3AsIGdjY19qaXRfcnZhbHVlICpydmFsdWUpKTsKIERFRl9ETExf Rk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwsCiAgICAgICAgICAgICAoZ2NjX2ppdF9i bG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxvYywKICAgICAgICAgICAgICBnY2Nfaml0 X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yMzksNiArMjQ2LDcgQEAgaW5pdF9nY2NqaXRfZnVuY3Rp b25zICh2b2lkKQogCiAgIC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwogICBMT0FEX0RMTF9G TiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCk7CisgIExPQURfRExMX0ZO IChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wKTsKICAgTE9BRF9ETExf Rk4gKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQpOwogICBMT0FEX0RMTF9GTiAo bGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCk7CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5 LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsKTsKQEAgLTI2OCw2ICsyNzYsNyBA QCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBn Y2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCk7CiAgIExPQURfRExMX0ZOIChsaWJy YXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcpOwogICBMT0FEX0RMTF9G TiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9wdHIpOworICBMT0FE X0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJpbmdfbGl0ZXJhbCk7CiAg IExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2NvbnRleHRfbmV3X3N0cnVjdF90eXBlKTsK ICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3ApOwog ICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBlKTsK QEAgLTI5Niw2ICszMDUsNyBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAKIC8qIElu IGFscGhhYmV0aWNhbCBvcmRlciAqLwogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25t ZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKKyNkZWZpbmUgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudF9vcCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wCiAj ZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQgZm5fZ2NjX2ppdF9ibG9ja19hZGRfY29t bWVudAogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIGZuX2djY19qaXRfYmxvY2tfYWRk X2V2YWwKICNkZWZpbmUgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25kaXRpb25hbCBmbl9nY2Nf aml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsCkBAIC0zMjUsNiArMzM1LDcgQEAgI2RlZmlu ZSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIGZuX2djY19qaXRfY29udGV4dF9uZXdfcGFyYW0K ICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgZm5fZ2NjX2ppdF9j b250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQKICNkZWZpbmUgZ2NjX2ppdF9jb250ZXh0X25ld19y dmFsdWVfZnJvbV9sb25nIGZuX2djY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21fbG9uZwog I2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0ciBmbl9nY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX3B0cgorI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3N0 cmluZ19saXRlcmFsIGZuX2djY19qaXRfY29udGV4dF9uZXdfc3RyaW5nX2xpdGVyYWwKICNkZWZp bmUgZ2NjX2ppdF9jb250ZXh0X25ld19zdHJ1Y3RfdHlwZSBmbl9nY2Nfaml0X2NvbnRleHRfbmV3 X3N0cnVjdF90eXBlCiAjZGVmaW5lIGdjY19qaXRfY29udGV4dF9uZXdfdW5hcnlfb3AgZm5fZ2Nj X2ppdF9jb250ZXh0X25ld191bmFyeV9vcAogI2RlZmluZSBnY2Nfaml0X2NvbnRleHRfbmV3X3Vu aW9uX3R5cGUgZm5fZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBlCkBAIC01NDgsNiArNTU5 LDggQEAgI2RlZmluZSBGX1JFTE9DX01BWF9TSVpFIDE1MDAKICAgZ2NjX2ppdF9ydmFsdWUgKmRh dGFfcmVsb2NzX2VwaGVtZXJhbDsKICAgLyogU3ludGhlc2l6ZWQgc3RydWN0IGhvbGRpbmcgZnVu YyByZWxvY3MuICAqLwogICBnY2Nfaml0X2x2YWx1ZSAqZnVuY19yZWxvY3M7CisgIGdjY19qaXRf ZnVuY3Rpb24gKm5haXZlX2J6ZXJvOworICBnY2Nfaml0X2Z1bmN0aW9uICpuYWl2ZV9tZW1jcHk7 CiAgIExpc3BfT2JqZWN0IGRfZGVmYXVsdF9pZHg7CiAgIExpc3BfT2JqZWN0IGRfaW1wdXJlX2lk eDsKICAgTGlzcF9PYmplY3QgZF9lcGhlbWVyYWxfaWR4OwpAQCAtMjM0NiwxMCArMjM1OSw3IEBA IGVtaXRfc3RhdGljX29iamVjdCAoY29uc3QgY2hhciAqbmFtZSwgTGlzcF9PYmplY3Qgb2JqKQog ewogICAvKiBsaWJnY2NqaXQgaGFzIG5vIHN1cHBvcnQgZm9yIGluaXRpYWxpemVkIHN0YXRpYyBk YXRhLgogICAgICBUaGUgbWVjaGFuaXNtIGJlbG93IGlzIGNlcnRhaW5seSBub3QgYWVzdGhldGlj IGJ1dCBJIGFzc3VtZSB0aGUgYm90dGxlIG5lY2sKLSAgICAgaW4gdGVybXMgb2YgcGVyZm9ybWFu Y2UgYXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4KLSAgICAgTk9URTogd2Ug Y2FuIG5vdCByZWxheSBvbiBsaWJnY2NqaXQgZXZlbiBmb3IgdmFsaWQgTlVMTCB0ZXJtaW5hdGVk IEMKLSAgICAgc3RyaW5ncyBjYXVzZSBvZiB0aGlzIGZ1bm55IGJ1ZyB0aGF0IHdpbGwgYWZmZWN0 IGFsbCBwcmUgZ2NjMTAgZXJhIGdjY3M6Ci0gICAgIGh0dHBzOi8vZ2NjLmdudS5vcmcvbWwvaml0 LzIwMTktcTMvbXNnMDAwMTMuaHRtbCAgKi8KKyAgICAgaW4gdGVybXMgb2YgcGVyZm9ybWFuY2Ug YXQgbG9hZCB0aW1lIHdpbGwgc3RpbGwgYmUgdGhlIHJlYWRlci4gKi8KIAogICBMaXNwX09iamVj dCBzdHIgPSBGcHJpbjFfdG9fc3RyaW5nIChvYmosIFFuaWwpOwogICBwdHJkaWZmX3QgbGVuID0g U0JZVEVTIChzdHIpOwpAQCAtMjM5OCwyMiArMjQwOCw5MSBAQCBlbWl0X3N0YXRpY19vYmplY3Qg KGNvbnN0IGNoYXIgKm5hbWUsIExpc3BfT2JqZWN0IG9iaikKICAgZ2NjX2ppdF9sdmFsdWUgKmFy ciA9CiAgICAgICBnY2Nfaml0X2x2YWx1ZV9hY2Nlc3NfZmllbGQgKGRhdGFfc3RydWN0LCBOVUxM LCBmaWVsZHNbMV0pOwogCi0gIGZvciAocHRyZGlmZl90IGkgPSAwOyBpIDwgbGVuOyBpKyssIHAr KykKKyAgZ2NjX2ppdF9sdmFsdWUgKnB0cnZhciA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2Fs IChmLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXAuY2hhcl9wdHJfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHRyIik7CisKKyAgZ2NjX2ppdF9ibG9ja19h ZGRfYXNzaWdubWVudCAoCisgICAgYmxvY2ssCisgICAgTlVMTCwKKyAgICBwdHJ2YXIsCisgICAg Z2NjX2ppdF9sdmFsdWVfZ2V0X2FkZHJlc3MgKAorICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19h cnJheV9hY2Nlc3MgKAorICAgICAgICBjb21wLmN0eHQsCisgICAgICAgIE5VTEwsCisgICAgICAg IGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoYXJyKSwKKyAgICAgICAgZ2NjX2ppdF9jb250ZXh0 X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwgY29tcC5pbnRfdHlwZSwgMCkpLAorICAg ICAgTlVMTCkpOworCisgIC8qIEVtaXQgYSBjYWxsIHRvIG5haXZlX2J6ZXJvKCkgdG8gY2xlYXIg YWxsIHRoZSBzdGF0aWMgb2JqZWN0LiBJdAorICAgICBpcyBub3Qgc3RyaWN0bHkgbmVjZXNzYXJ5 IHNpbmNlIHRoZSBkeW5hbWljIGxpbmtlciB3aWxsIHRha2UgY2FyZQorICAgICBvZiB6ZXJvaW5n IHRoZSBtZW1vcnkgdG9vLiAqLworICBnY2Nfaml0X3J2YWx1ZSAqYnplcm9fYXJnc1syXQorICAg ID0ge2djY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocHRydmFyKSwKKyAgICAgICBnY2Nfaml0X2Nv bnRleHRfbmV3X3J2YWx1ZV9mcm9tX2xvbmcgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gKyAxKX07 CisKKyAgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCAoYmxvY2ssIE5VTEwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCAoY29tcC5jdHh0LCBOVUxMLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAu bmFpdmVfYnplcm8sIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnplcm9fYXJncykpOworCisgIGZvciAocHRyZGlmZl90IGkgPSAwOyBpIDwg bGVuOykKICAgICB7Ci0gICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50ICgKLQlibG9j aywKLQlOVUxMLAotCWdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzICgKLQkgIGNvbXAu Y3R4dCwKLQkgIE5VTEwsCi0JICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKGFyciksCi0JICBn Y2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAotCQkJCQkgICAg ICAgY29tcC5wdHJkaWZmX3R5cGUsCi0JCQkJCSAgICAgICBpKSksCi0JZ2NjX2ppdF9jb250ZXh0 X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKLQkJCQkJICAgICBjb21wLmNoYXJfdHlw ZSwKLQkJCQkJICAgICAqcCkpOworICAgICAgLyogV2UgY2FuJ3QgdXNlIHN0cmluZyBsaXRlcmFs cyBsb25nZXIgdGhhdCAyMDAgYnl0ZXMgYmVjYXVzZQorICAgICAgICAgdGhleSBjYXVzZSBhIGNy YXNoIGluIG9sZGVyIHZlcnNpb25zIG9mIGdjY2ppdC4KKyAgICAgICAgIGh0dHBzOi8vZ2NjLmdu dS5vcmcvbWwvaml0LzIwMTktcTMvbXNnMDAwMTMuaHRtbCAgKi8KKyAgICAgIGNoYXIgc3RyWzIw MF07CisgICAgICBzdHJuY3B5IChzdHIsIHAsIDIwMCk7CisgICAgICBzdHJbMTk5XSA9IDA7Cisg ICAgICB1aW50cHRyX3QgbCA9IHN0cmxlbiAoc3RyKTsKKworICAgICAgaWYgKGwgIT0gMCkKKyAg ICAgICAgeworICAgICAgICAgIHAgKz0gbDsKKyAgICAgICAgICBpICs9IGw7CisKKyAgICAgICAg ICBnY2Nfaml0X3J2YWx1ZSAqYXJnc1szXQorICAgICAgICAgICAgPSB7Z2NjX2ppdF9sdmFsdWVf YXNfcnZhbHVlIChwdHJ2YXIpLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19z dHJpbmdfbGl0ZXJhbCAoY29tcC5jdHh0LCBzdHIpLAorICAgICAgICAgICAgICAgZ2NjX2ppdF9j b250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9u Z190eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGwpfTsKKworICAgICAgICAgIGdjY19qaXRfYmxvY2tfYWRkX2V2YWwgKGJsb2NrLCBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdf Y2FsbCAoY29tcC5jdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5uYWl2ZV9tZW1jcHksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLCBhcmdz KSk7CisgICAgICAgICAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoYmxvY2ssIE5VTEws IHB0cnZhciwKKyAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2dldF9hZGRyZXNzICgKKyAgICAg ICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19hcnJheV9hY2Nlc3MgKGNvbXAuY3R4dCwgTlVM TCwKKyAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hc19ydmFsdWUgKHB0cnZhciksCisg ICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKGNvbXAu Y3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29tcC51aW50cHRyX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGwpKSwKKyAgICAgICAgICAgICAgTlVMTCkpOworICAgICAgICB9 CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAvKiBJZiBzdHJsZW4gcmV0dXJuZWQg MCB0aGF0IG1lYW5zIHRoYXQgdGhlIHN0YXRpYyBvYmplY3QKKyAgICAgICAgICAgICBjb250YWlu cyBhIE5VTEwgYnl0ZS4gSW4gdGhhdCBjYXNlIGp1c3QgbW92ZSBvdmVyIHRvIHRoZQorICAgICAg ICAgICAgIG5leHQgYmxvY2suIFdlIGNhbiByZWx5IG9uIHRoZSBieXRlIGJlaW5nIHplcm8gYmVj YXVzZSBvZgorICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBjYWxsIHRvIGJ6ZXJvIGFuZCBiZWNh dXNlIHRoZSBkeW5hbWljIGxpbmtlcgorICAgICAgICAgICAgIGNsZWFyZWQgaXQuICovCisgICAg ICAgICAgcCsrOworICAgICAgICAgIGkrKzsKKyAgICAgICAgICBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50ICgKKyAgICAgICAgICAgIGJsb2NrLCBOVUxMLCBwdHJ2YXIsCisgICAgICAgICAg ICBnY2Nfaml0X2x2YWx1ZV9nZXRfYWRkcmVzcyAoCisgICAgICAgICAgICAgIGdjY19qaXRfY29u dGV4dF9uZXdfYXJyYXlfYWNjZXNzICgKKyAgICAgICAgICAgICAgICBjb21wLmN0eHQsIE5VTEws IGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAocHRydmFyKSwKKyAgICAgICAgICAgICAgICBnY2Nf aml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlw ZSwgMSkpLAorICAgICAgICAgICAgICBOVUxMKSk7CisgICAgICAgIH0KICAgICB9CisKICAgZ2Nj X2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoCiAJYmxvY2ssCiAJTlVMTCwKQEAgLTI3NTksNiAr MjgzOCwxODkgQEAgZGVmaW5lX2ptcF9idWYgKHZvaWQpCiAJCQkJICAgICAxLCAmZmllbGQpOwog fQogCisvKgorICogbmFpdmUgaW1wbGVtZW50YXRpb24gb2YgYnplcm8uIEhvcGVmdWxseSBpdCB3 aWxsIGJlIHR1cm5lZCBpbnRvIGEKKyAqIHNtYXJ0ZXIgaW1wbGVtZW50YXRpb24gYnkgdGhlIG9w dGltaXplci4KKyAqLworCitzdGF0aWMgdm9pZAorZGVmaW5lX25haXZlX2J6ZXJvICh2b2lkKQor eworICAvKgorc3RhdGljIHZvaWQKK25haXZlX2J6ZXJvIChjaGFyICogcHRyLCB1bnNpZ25lZCBs b25nIGxvbmcgbGVuKQoreworICB1bnNpZ25lZCBsb25nIGxvbmcgaTsKKworZW50cnlfYmxvY2s6 CisgIGkgPSAodW5zaWduZWQgbG9uZyBsb25nKTA7CisgIGdvdG8gdGVzdF9ibG9jazsKKwordGVz dF9ibG9jazoKKyAgaWYgKGxlbiA+IGkpIGdvdG8gbG9vcF9ibG9jazsgZWxzZSBnb3RvIHJldHVy bl9ibG9jazsKKworbG9vcF9ibG9jazoKKyAgcHRyW2ldID0gKGNoYXIpMDsKKyAgaSArPSAodW5z aWduZWQgbG9uZyBsb25nKTE7CisgIGdvdG8gdGVzdF9ibG9jazsKKworcmV0dXJuX2Jsb2NrOgor ICByZXR1cm47Cit9CisgICovCisgIGdjY19qaXRfcGFyYW0gKnBhcmFtc1syXSA9IHsKKyAgICBn Y2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAuY2hhcl9wdHJf dHlwZSwgInB0ciIpLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4dCwg TlVMTCwgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibGVuIiksCisgIH07CisKKyAgY29tcC5uYWl2ZV9iemVybworICAgID0gZ2Nj X2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LCBOVUxMLCBHQ0NfSklUX0ZVTkNU SU9OX0lOVEVSTkFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC52 b2lkX3R5cGUsICJuYWl2ZV9iemVybyIsIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwYXJhbXMsIGZhbHNlKTsKKworICBERUNMX0JMT0NLIChlbnRyeV9ibG9jaywgY29t cC5uYWl2ZV9iemVybyk7CisgIERFQ0xfQkxPQ0sgKHRlc3RfYmxvY2ssIGNvbXAubmFpdmVfYnpl cm8pOworICBERUNMX0JMT0NLIChsb29wX2Jsb2NrLCBjb21wLm5haXZlX2J6ZXJvKTsKKyAgREVD TF9CTE9DSyAocmV0dXJuX2Jsb2NrLCBjb21wLm5haXZlX2J6ZXJvKTsKKworICBnY2Nfaml0X2x2 YWx1ZSAqcHRyID0gZ2NjX2ppdF9wYXJhbV9hc19sdmFsdWUgKHBhcmFtc1swXSk7CisgIGdjY19q aXRfbHZhbHVlICppID0gZ2NjX2ppdF9mdW5jdGlvbl9uZXdfbG9jYWwgKGNvbXAubmFpdmVfYnpl cm8sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXAudWludHB0cl90eXBlLCAiaSIpOworCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2ln bm1lbnQgKGVudHJ5X2Jsb2NrLCBOVUxMLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoY29tcC5jdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7CisgIGdjY19qaXRf YmxvY2tfZW5kX3dpdGhfanVtcCAoZW50cnlfYmxvY2ssIE5VTEwsIHRlc3RfYmxvY2spOworCisg IC8qIGlmIChsZW4gPiBpKSAqLworCisgIGdjY19qaXRfcnZhbHVlICpjb21wYXJpc29uX3Jlc3Vs dAorICAgID0gZ2NjX2ppdF9jb250ZXh0X25ld19jb21wYXJpc29uIChjb21wLmN0eHQsIE5VTEws IEdDQ19KSVRfQ09NUEFSSVNPTl9HVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ2NjX2ppdF9wYXJhbV9hc19ydmFsdWUgKHBhcmFtc1sxXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAoaSkpOwor CisgIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwgKHRlc3RfYmxvY2ssIE5VTEws IGNvbXBhcmlzb25fcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsb29wX2Jsb2NrLCByZXR1cm5fYmxvY2spOworCisgIC8qIHB0cltpXSA9IDA7ICovCisgIC8q IGkgKz0gMTsgKi8KKworICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChsb29wX2Jsb2Nr LCBOVUxMLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfYXJyYXlfYWNjZXNzIChjb21wLmN0eHQs IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZh bHVlX2FzX3J2YWx1ZSAocHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChpKSksCisgICAgZ2NjX2ppdF9jb250ZXh0X25l d19ydmFsdWVfZnJvbV9pbnQgKGNvbXAuY3R4dCwgY29tcC5jaGFyX3R5cGUsIDApKTsKKworICBn Y2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50X29wICgKKyAgICBsb29wX2Jsb2NrLCBOVUxMLCBp LCBHQ0NfSklUX0JJTkFSWV9PUF9QTFVTLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21faW50IChjb21wLmN0eHQsIGNvbXAudWludHB0cl90eXBlLCAxKSk7CisKKyAgZ2NjX2pp dF9ibG9ja19lbmRfd2l0aF9qdW1wIChsb29wX2Jsb2NrLCBOVUxMLCB0ZXN0X2Jsb2NrKTsKKwor ICAvKiByZXR1cm47ICovCisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF92b2lkX3JldHVybiAo cmV0dXJuX2Jsb2NrLCBOVUxMKTsKK30KKworLyoKKyAqIG5haXZlIGltcGxlbWVudGF0aW9uIG9m IG1lbWNweS4gSG9wZWZ1bGx5IGl0IHdpbGwgYmUgdHVybmVkIGludG8gYQorICogc21hcnRlciBp bXBsZW1lbnRhdGlvbiBieSB0aGUgb3B0aW1pemVyLgorICovCisKK3N0YXRpYyB2b2lkCitkZWZp bmVfbmFpdmVfbWVtY3B5ICh2b2lkKQoreworICAvKgorc3RhdGljIHZvaWQgKgorbmFpdmVfbWVt Y3B5IChjaGFyICogZGVzdCwgY2hhciAqIHNyYywgdW5zaWduZWQgbG9uZyBsb25nIGxlbikKK3sK KyAgdW5zaWduZWQgbG9uZyBsb25nIGk7CisKK2VudHJ5X2Jsb2NrOgorICBpID0gKHVuc2lnbmVk IGxvbmcgbG9uZykwOworICBnb3RvIHRlc3RfYmxvY2s7CisKK3Rlc3RfYmxvY2s6CisgIGlmIChs ZW4gPiBpKSBnb3RvIGxvb3BfYmxvY2s7IGVsc2UgZ290byByZXR1cm5fYmxvY2s7CisKK2xvb3Bf YmxvY2s6CisgIGRlc3RbaV0gPSBzcmNbaV07CisgIGkgKz0gKHVuc2lnbmVkIGxvbmcgbG9uZykx OworICBnb3RvIHRlc3RfYmxvY2s7CisKK3JldHVybl9ibG9jazoKKyAgcmV0dXJuIGRlc3Q7Cit9 CisgICovCisgIGdjY19qaXRfcGFyYW0gKnBhcmFtc1szXSA9IHsKKyAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAuY2hhcl9wdHJfdHlwZSwgImRlc3Qi KSwKKyAgICBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsIGNvbXAu Y2hhcl9wdHJfdHlwZSwgInNyYyIpLAorICAgIGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNv bXAuY3R4dCwgTlVMTCwgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAibGVuIiksCisgIH07CisKKyAgY29tcC5uYWl2ZV9tZW1jcHkK KyAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZnVuY3Rpb24gKGNvbXAuY3R4dCwgTlVMTCwgR0ND X0pJVF9GVU5DVElPTl9JTlRFUk5BTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbXAudm9pZF9wdHJfdHlwZSwgIm5haXZlX21lbWNweSIsIDMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsIGZhbHNlKTsKKworICBERUNMX0JMT0NLIChl bnRyeV9ibG9jaywgY29tcC5uYWl2ZV9tZW1jcHkpOworICBERUNMX0JMT0NLICh0ZXN0X2Jsb2Nr LCBjb21wLm5haXZlX21lbWNweSk7CisgIERFQ0xfQkxPQ0sgKGxvb3BfYmxvY2ssIGNvbXAubmFp dmVfbWVtY3B5KTsKKyAgREVDTF9CTE9DSyAocmV0dXJuX2Jsb2NrLCBjb21wLm5haXZlX21lbWNw eSk7CisKKyAgZ2NjX2ppdF9sdmFsdWUgKmRlc3QgPSBnY2Nfaml0X3BhcmFtX2FzX2x2YWx1ZSAo cGFyYW1zWzBdKTsKKyAgZ2NjX2ppdF9sdmFsdWUgKnNyYyA9IGdjY19qaXRfcGFyYW1fYXNfbHZh bHVlIChwYXJhbXNbMV0pOworICBnY2Nfaml0X2x2YWx1ZSAqaSA9IGdjY19qaXRfZnVuY3Rpb25f bmV3X2xvY2FsIChjb21wLm5haXZlX21lbWNweSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC51aW50cHRyX3R5cGUsICJpIik7CisK KyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsIGksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVl X2Zyb21faW50IChjb21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDApKTsKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9qdW1wIChlbnRyeV9ibG9j aywgTlVMTCwgdGVzdF9ibG9jayk7CisKKyAgLyogaWYgKGxlbiA+IGkpICovCisKKyAgZ2NjX2pp dF9ydmFsdWUgKmNvbXBhcmlzb25fcmVzdWx0CisgICAgPSBnY2Nfaml0X2NvbnRleHRfbmV3X2Nv bXBhcmlzb24gKGNvbXAuY3R4dCwgTlVMTCwgR0NDX0pJVF9DT01QQVJJU09OX0dULAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAo cGFyYW1zWzJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2pp dF9sdmFsdWVfYXNfcnZhbHVlIChpKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25k aXRpb25hbCAodGVzdF9ibG9jaywgTlVMTCwgY29tcGFyaXNvbl9yZXN1bHQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvb3BfYmxvY2ssIHJldHVybl9ibG9jayk7CisK KyAgLyogZGVzdFtpXSA9IHNyY1tpXTsgKi8KKyAgLyogaSArPSAxOyAqLworCisgIGdjY19qaXRf YmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGxvb3BfYmxvY2ssIE5VTEwsCisgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19hcnJheV9hY2Nlc3MgKGNvbXAuY3R4dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChkZXN0KSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZh bHVlIChpKSksCisgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlICgKKyAgICAgIGdjY19qaXRf Y29udGV4dF9uZXdfYXJyYXlfYWNjZXNzIChjb21wLmN0eHQsIE5VTEwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlIChzcmMp LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVl X2FzX3J2YWx1ZSAoaSkpKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCAo bG9vcF9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR0NDX0pJVF9CSU5BUllfT1BfUExVUywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQgKAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY3R4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wLnVpbnRwdHJfdHlwZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKSk7CisKKyAgZ2NjX2ppdF9ibG9ja19lbmRf d2l0aF9qdW1wIChsb29wX2Jsb2NrLCBOVUxMLCB0ZXN0X2Jsb2NrKTsKKworICAvKiByZXR1cm4g ZGVzdDsgKi8KKworICBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX3JldHVybiAocmV0dXJuX2Jsb2Nr LCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9wYXJhbV9h c19ydmFsdWUgKHBhcmFtc1swXSkpOworfQorCiAvKiBzdHJ1Y3QgaGFuZGxlciBkZWZpbml0aW9u ICAqLwogCiBzdGF0aWMgdm9pZApAQCAtMzc4MCw2ICs0MDQyLDggQEAgREVGVU4gKCJjb21wLS1p bml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0LCBTY29tcF9faW5pdF9jdHh0LAogICBkZWZpbmVf aGFuZGxlcl9zdHJ1Y3QgKCk7CiAgIGRlZmluZV90aHJlYWRfc3RhdGVfc3RydWN0ICgpOwogICBk ZWZpbmVfY2FzdF91bmlvbiAoKTsKKyAgZGVmaW5lX25haXZlX2J6ZXJvICgpOworICBkZWZpbmVf bmFpdmVfbWVtY3B5ICgpOwogCiAgIHJldHVybiBRdDsKIH0KLS0gCjIuMjUuMS53aW5kb3dzLjEK Cg== --000000000000ace01405a6deee60-- ------------=_1591264381-16047-1--