From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 64586 invoked by alias); 19 May 2017 02:30:58 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 64536 invoked by uid 89); 19 May 2017 02:30:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=tired X-HELO: mail-io0-f179.google.com Received: from mail-io0-f179.google.com (HELO mail-io0-f179.google.com) (209.85.223.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 19 May 2017 02:30:49 +0000 Received: by mail-io0-f179.google.com with SMTP id o12so40019606iod.3 for ; Thu, 18 May 2017 19:30:52 -0700 (PDT) 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=hF25pD6DY9OAaD6x6Z6HaTaAhEUG7TR7Kacw+nf/p/o=; b=MPHF3mdUa5tO70JuUtCbNdcd4mmBoci7Qiqu+WBbT/IGleKo5wU4PO22UzU8fMGckQ feGcvu4vrLfNc6Cy+cWKsCskVwz1+eZ+vgoCuwSmqo5wU8MeLVZ05yT30HXwLDzuM0i+ 9dFqeuk8ymFPD1mKS+gGR1RFIxp6F0eJdXZbut0HC70Z5rjdflfj9af3QyaJ/lUcqyEq 4LMcmBm9ZIIXmisCP+VoU1gVP/Z/+lD7MRnettkUo1iAFiWNWVL2Nqp9dxploXFZcA3K 6g3iSGuBc8NElEfrUnUN9XrUO48r++IU5tE0eac3p0Ca+EAJftddo4awD34GdvEQ/kJt 4tdw== X-Gm-Message-State: AODbwcABpdsUeTyB5bvTAH7is+qKp8Yugqf/erPu3UB3vhnY/8KXgkvQ SaGgLHPQmbFSA6TORGn25JbAua3vC7pVG/8= X-Received: by 10.107.40.81 with SMTP id o78mr7161283ioo.192.1495161050273; Thu, 18 May 2017 19:30:50 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.6.226 with HTTP; Thu, 18 May 2017 19:30:29 -0700 (PDT) From: Jason Merrill Date: Fri, 19 May 2017 02:32:00 -0000 Message-ID: Subject: RFA: PATCH to add id_strcmp helper function To: gcc-patches List Content-Type: multipart/mixed; boundary="001a1141f01c491f4d054fd74f6b" X-IsSubscribed: yes X-SW-Source: 2017-05/txt/msg01507.txt.bz2 --001a1141f01c491f4d054fd74f6b Content-Type: text/plain; charset="UTF-8" Content-length: 307 I got tired of writing strcmp (IDENTIFIER_POINTER and decided to wrap it in an inline function. I decided to use "id_strcmp" instead of just overloading strcmp, but I don't feel strongly about that choice. The second patch changes all existing uses of that pattern to use the new function. OK for trunk? --001a1141f01c491f4d054fd74f6b Content-Type: text/plain; charset="US-ASCII"; name="id-strcmp.diff" Content-Disposition: attachment; filename="id-strcmp.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2v8827t0 Content-length: 1042 Y29tbWl0IGM5MDkzMTVhYTM1MTMwYjg0ZGY5MzA0YjQ3OTk4MDFhZjA1YTRl MzUKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFRodSBNYXkgMTggMTU6MjM6MjcgMjAxNyAtMDQwMAoKICAgICAg ICAgICAgKiB0cmVlLmggKGlkX3N0cmNtcCk6IE5ldy4KCmRpZmYgLS1naXQg YS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUuaAppbmRleCBjNmU4ODNjLi4wZjAx MTQ5IDEwMDY0NAotLS0gYS9nY2MvdHJlZS5oCisrKyBiL2djYy90cmVlLmgK QEAgLTM2MTgsNiArMzYxOCwyMCBAQCB0cmVlX29wZXJhbmRfY2hlY2tfY29k ZSAoY29uc3RfdHJlZSBfX3QsIGVudW0gdHJlZV9jb2RlIF9fY29kZSwgaW50 IF9faSwKIAogI2VuZGlmCiAKKy8qIHN0cmNtcCBvZiBhbiBpZGVudGlmaWVy IGFuZCBhIEMgc3RyaW5nLiAgKi8KKworaW5saW5lIGludAoraWRfc3RyY21w IChjb25zdF90cmVlIGlkLCBjb25zdCBjaGFyICpzdHIpCit7CisgIHJldHVy biBzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoaWQpLCBzdHIpOworfQor CitpbmxpbmUgaW50CitpZF9zdHJjbXAgKGNvbnN0IGNoYXIgKnN0ciwgY29u c3RfdHJlZSBpZCkKK3sKKyAgcmV0dXJuIHN0cmNtcCAoc3RyLCBJREVOVElG SUVSX1BPSU5URVIgKGlkKSk7Cit9CisKICNkZWZpbmUgZXJyb3JfbWFya19u b2RlCQkJZ2xvYmFsX3RyZWVzW1RJX0VSUk9SX01BUktdCiAKICNkZWZpbmUg aW50UUlfdHlwZV9ub2RlCQkJZ2xvYmFsX3RyZWVzW1RJX0lOVFFJX1RZUEVd Cg== --001a1141f01c491f4d054fd74f6b Content-Type: text/plain; charset="US-ASCII"; name="use-id-strcmp.diff" Content-Disposition: attachment; filename="use-id-strcmp.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j2v88x1n1 Content-length: 17967 Y29tbWl0IDc4MTE5MjRlNDA0OGIzNmIzMjczYmNkNjA2ZWVmNzhhMjViNTJk NTMKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFRodSBNYXkgMTggMTY6MTU6NTEgMjAxNyAtMDQwMAoKICAgIHVz ZS1pZC1zdHJjbXAKCmRpZmYgLS1naXQgYS9nY2MvYy1mYW1pbHkvYy1hZGEt c3BlYy5jIGIvZ2NjL2MtZmFtaWx5L2MtYWRhLXNwZWMuYwppbmRleCAxOGM1 Y2NmLi45MzljYmUzIDEwMDY0NAotLS0gYS9nY2MvYy1mYW1pbHkvYy1hZGEt c3BlYy5jCisrKyBiL2djYy9jLWZhbWlseS9jLWFkYS1zcGVjLmMKQEAgLTE3 OTksNyArMTc5OSw3IEBAIGlzX2NoYXJfYXJyYXkgKHRyZWUgdCkKIAogICB0 bXAgPSBUUkVFX1RZUEUgKHRtcCk7CiAgIHJldHVybiBudW1fZGltID09IDEg JiYgVFJFRV9DT0RFICh0bXApID09IElOVEVHRVJfVFlQRQotICAgICYmICFz dHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FIChUWVBFX05B TUUgKHRtcCkpKSwgImNoYXIiKTsKKyAgICAmJiAhaWRfc3RyY21wIChERUNM X05BTUUgKFRZUEVfTkFNRSAodG1wKSksICJjaGFyIik7CiB9CiAKIC8qIER1 bXAgaW4gQlVGRkVSIGFuIGFycmF5IHR5cGUgVCBpbiBBZGEgc3ludGF4LiAg QXNzdW1lIHRoYXQgdGhlICJ0eXBlIgpkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFt aWx5L2MtcHJhZ21hLmMgYi9nY2MvYy1mYW1pbHkvYy1wcmFnbWEuYwppbmRl eCBiYzM2NjI2Li5lOWZiZGNkIDEwMDY0NAotLS0gYS9nY2MvYy1mYW1pbHkv Yy1wcmFnbWEuYworKysgYi9nY2MvYy1mYW1pbHkvYy1wcmFnbWEuYwpAQCAt NTE0LDcgKzUxNCw3IEBAIGhhbmRsZV9wcmFnbWFfcmVkZWZpbmVfZXh0bmFt ZSAoY3BwX3JlYWRlciAqIEFSR19VTlVTRUQgKGR1bW15KSkKIAkgICAgICBj b25zdCBjaGFyICpuYW1lID0gSURFTlRJRklFUl9QT0lOVEVSIChERUNMX0FT U0VNQkxFUl9OQU1FIChkZWNsKSk7CiAJICAgICAgbmFtZSA9IHRhcmdldG0u c3RyaXBfbmFtZV9lbmNvZGluZyAobmFtZSk7CiAKLQkgICAgICBpZiAoc3Ry Y21wIChuYW1lLCBJREVOVElGSUVSX1BPSU5URVIgKG5ld25hbWUpKSkKKwkg ICAgICBpZiAoaWRfc3RyY21wIChuZXduYW1lLCBuYW1lKSkKIAkJd2Fybmlu ZyAoT1BUX1dwcmFnbWFzLCAiI3ByYWdtYSByZWRlZmluZV9leHRuYW1lIGln bm9yZWQgZHVlIHRvICIKIAkJCSAiY29uZmxpY3Qgd2l0aCBwcmV2aW91cyBy ZW5hbWUiKTsKIAkgICAgfQpAQCAtNTg3LDcgKzU4Nyw3IEBAIG1heWJlX2Fw cGx5X3JlbmFtaW5nX3ByYWdtYSAodHJlZSBkZWNsLCB0cmVlIGFzbW5hbWUp CiAJaWYgKERFQ0xfTkFNRSAoZGVjbCkgPT0gcC0+b2xkbmFtZSkKIAkgIHsK IAkgICAgLyogT25seSB3YXJuIGlmIHRoZXJlIGlzIGEgY29uZmxpY3QuICAq LwotCSAgICBpZiAoc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKHAtPm5l d25hbWUpLCBvbGRuYW1lKSkKKwkgICAgaWYgKGlkX3N0cmNtcCAocC0+bmV3 bmFtZSwgb2xkbmFtZSkpCiAJICAgICAgd2FybmluZyAoT1BUX1dwcmFnbWFz LCAiI3ByYWdtYSByZWRlZmluZV9leHRuYW1lIGlnbm9yZWQgZHVlIHRvICIK IAkJICAgICAgICJjb25mbGljdCB3aXRoIHByZXZpb3VzIHJlbmFtZSIpOwog CmRpZmYgLS1naXQgYS9nY2MvY3AvY3AtdHJlZS5oIGIvZ2NjL2NwL2NwLXRy ZWUuaAppbmRleCAwMTFiMzg5Li43YWY2ZDhiIDEwMDY0NAotLS0gYS9nY2Mv Y3AvY3AtdHJlZS5oCisrKyBiL2djYy9jcC9jcC10cmVlLmgKQEAgLTI5Mzgs NyArMjkzOCw3IEBAIHN0cnVjdCBHVFkoKCkpIGxhbmdfZGVjbCB7CiAgICB0 ZW1wbGF0ZSBmdW5jdGlvbi4gICovCiAjZGVmaW5lIERFQ0xfUFJFVFRZX0ZV TkNUSU9OX1AoTk9ERSkgXAogICAoREVDTF9OQU1FIChOT0RFKSBcCi0gICAm JiAhc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoTk9E RSkpLCAiX19QUkVUVFlfRlVOQ1RJT05fXyIpKQorICAgJiYgIWlkX3N0cmNt cCAoREVDTF9OQU1FIChOT0RFKSwgIl9fUFJFVFRZX0ZVTkNUSU9OX18iKSkK IAogLyogTm9uemVybyBpZiB0aGUgdmFyaWFibGUgd2FzIGRlY2xhcmVkIHRv IGJlIHRocmVhZC1sb2NhbC4KICAgIFdlIG5lZWQgYSBzcGVjaWFsIEMrKyB2 ZXJzaW9uIG9mIHRoaXMgdGVzdCBiZWNhdXNlIHRoZSBtaWRkbGUtZW5kCmRp ZmYgLS1naXQgYS9nY2MvY3AvZGVjbDIuYyBiL2djYy9jcC9kZWNsMi5jCmlu ZGV4IDQ4YTkxY2IuLjJiYzA5OTMgMTAwNjQ0Ci0tLSBhL2djYy9jcC9kZWNs Mi5jCisrKyBiL2djYy9jcC9kZWNsMi5jCkBAIC04MjQsNyArODI0LDcgQEAg Z3Jva2ZpZWxkIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhdG9yLAog CX0KIAogICAgICAgaWYgKElERU5USUZJRVJfUE9JTlRFUiAobmFtZSlbMF0g PT0gJ18nCi0JICAmJiAhIHN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSIChu YW1lKSwgIl92cHRyIikpCisJICAmJiAhIGlkX3N0cmNtcCAobmFtZSwgIl92 cHRyIikpCiAJZXJyb3IgKCJtZW1iZXIgJXFEIGNvbmZsaWN0cyB3aXRoIHZp cnR1YWwgZnVuY3Rpb24gdGFibGUgZmllbGQgbmFtZSIsCiAJICAgICAgIHZh bHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9nY2MvY3AvZXJyb3IuYyBiL2dj Yy9jcC9lcnJvci5jCmluZGV4IGU4MTM2ZDMuLjMxMjg5MGEgMTAwNjQ0Ci0t LSBhL2djYy9jcC9lcnJvci5jCisrKyBiL2djYy9jcC9lcnJvci5jCkBAIC0y MTUxLDcgKzIxNTEsNyBAQCBkdW1wX2V4cHIgKGN4eF9wcmV0dHlfcHJpbnRl ciAqcHAsIHRyZWUgdCwgaW50IGZsYWdzKQogCQlwcF9jeHhfZG90IChwcCk7 CiAJICAgICAgfQogCSAgICBlbHNlIGlmIChUUkVFX0NPREUgKG9iKSAhPSBQ QVJNX0RFQ0wKLQkJICAgICB8fCBzdHJjbXAgKElERU5USUZJRVJfUE9JTlRF UiAoREVDTF9OQU1FIChvYikpLCAidGhpcyIpKQorCQkgICAgIHx8IGlkX3N0 cmNtcCAoREVDTF9OQU1FIChvYiksICJ0aGlzIikpCiAJICAgICAgewogCQlk dW1wX2V4cHIgKHBwLCBvYiwgZmxhZ3MgfCBURkZfRVhQUl9JTl9QQVJFTlMp OwogCQlwcF9jeHhfYXJyb3cgKHBwKTsKQEAgLTIyMzQsNyArMjIzNCw3IEBA IGR1bXBfZXhwciAoY3h4X3ByZXR0eV9wcmludGVyICpwcCwgdHJlZSB0LCBp bnQgZmxhZ3MpCiAJICAgIG9iID0gVFJFRV9PUEVSQU5EIChvYiwgMCk7CiAJ ICAgIGlmIChUUkVFX0NPREUgKG9iKSAhPSBQQVJNX0RFQ0wKIAkJfHwgKERF Q0xfTkFNRSAob2IpCi0JCSAgICAmJiBzdHJjbXAgKElERU5USUZJRVJfUE9J TlRFUiAoREVDTF9OQU1FIChvYikpLCAidGhpcyIpKSkKKwkJICAgICYmIGlk X3N0cmNtcCAoREVDTF9OQU1FIChvYiksICJ0aGlzIikpKQogCSAgICAgIHsK IAkJZHVtcF9leHByIChwcCwgb2IsIGZsYWdzIHwgVEZGX0VYUFJfSU5fUEFS RU5TKTsKIAkJaWYgKFRSRUVfQ09ERSAoVFJFRV9UWVBFIChvYikpID09IFJF RkVSRU5DRV9UWVBFKQpkaWZmIC0tZ2l0IGEvZ2NjL2NwL21hbmdsZS5jIGIv Z2NjL2NwL21hbmdsZS5jCmluZGV4IDQyMjkwZmUuLjRiNGM2ZDggMTAwNjQ0 Ci0tLSBhL2djYy9jcC9tYW5nbGUuYworKysgYi9nY2MvY3AvbWFuZ2xlLmMK QEAgLTI5MDAsNyArMjkwMCw3IEBAIHdyaXRlX2V4cHJlc3Npb24gKHRyZWUg ZXhwcikKICAgICB3cml0ZV90ZW1wbGF0ZV9hcmdfbGl0ZXJhbCAoZXhwcik7 CiAgIGVsc2UgaWYgKGNvZGUgPT0gUEFSTV9ERUNMICYmIERFQ0xfQVJUSUZJ Q0lBTCAoZXhwcikpCiAgICAgewotICAgICAgZ2NjX2Fzc2VydCAoIXN0cmNt cCAoInRoaXMiLCBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoZXhw cikpKSk7CisgICAgICBnY2NfYXNzZXJ0ICghaWRfc3RyY21wIChERUNMX05B TUUgKGV4cHIpLCAidGhpcyIpKTsKICAgICAgIHdyaXRlX3N0cmluZyAoImZw VCIpOwogICAgIH0KICAgZWxzZSBpZiAoY29kZSA9PSBQQVJNX0RFQ0wpCmRp ZmYgLS1naXQgYS9nY2MvY3AvcGFyc2VyLmMgYi9nY2MvY3AvcGFyc2VyLmMK aW5kZXggYzBlNjI1NC4uMGUwNTAxNiAxMDA2NDQKLS0tIGEvZ2NjL2NwL3Bh cnNlci5jCisrKyBiL2djYy9jcC9wYXJzZXIuYwpAQCAtMzIwMSw3ICszMjAx LDcgQEAgY3BfcGFyc2VyX2RpYWdub3NlX2ludmFsaWRfdHlwZV9uYW1lIChj cF9wYXJzZXIgKnBhcnNlciwgdHJlZSBpZCwKIAkJIi1zdGQ9YysrMTEgb3Ig LXN0ZD1nbnUrKzExIik7CiAgICAgICBlbHNlIGlmIChjeHhfZGlhbGVjdCA8 IGN4eDExCiAJICAgICAgICYmIFRSRUVfQ09ERSAoaWQpID09IElERU5USUZJ RVJfTk9ERQotCSAgICAgICAmJiAhc3RyY21wIChJREVOVElGSUVSX1BPSU5U RVIgKGlkKSwgInRocmVhZF9sb2NhbCIpKQorCSAgICAgICAmJiAhaWRfc3Ry Y21wIChpZCwgInRocmVhZF9sb2NhbCIpKQogCWluZm9ybSAobG9jYXRpb24s ICJDKysxMSAlPHRocmVhZF9sb2NhbCU+IG9ubHkgYXZhaWxhYmxlIHdpdGgg IgogCQkiLXN0ZD1jKysxMSBvciAtc3RkPWdudSsrMTEiKTsKICAgICAgIGVs c2UgaWYgKCFmbGFnX2NvbmNlcHRzICYmIGlkID09IHJpZHBvaW50ZXJzWyhp bnQpUklEX0NPTkNFUFRdKQpAQCAtNzgyMyw3ICs3ODIzLDcgQEAgY3BfcGFy c2VyX3VuYXJ5X2V4cHJlc3Npb24gKGNwX3BhcnNlciAqcGFyc2VyLCBjcF9p ZF9raW5kICogcGlkaywKIAkJLyogSVNPIEMrKyBkZWZpbmVzIGFsaWdub2Yg b25seSB3aXRoIHR5cGVzLCBub3Qgd2l0aAogCQkgICBleHByZXNzaW9ucy4g U28gcGVkd2FybiBpZiBhbGlnbm9mIGlzIHVzZWQgd2l0aCBhIG5vbi0KIAkJ ICAgdHlwZSBleHByZXNzaW9uLiBIb3dldmVyLCBfX2FsaWdub2ZfXyBpcyBv ay4gICovCi0JCWlmICghc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKHRv a2VuLT51LnZhbHVlKSwgImFsaWdub2YiKSkKKwkJaWYgKCFpZF9zdHJjbXAg KHRva2VuLT51LnZhbHVlLCAiYWxpZ25vZiIpKQogCQkgIHBlZHdhcm4gKHRv a2VuLT5sb2NhdGlvbiwgT1BUX1dwZWRhbnRpYywKIAkJCSAgICJJU08gQysr IGRvZXMgbm90IGFsbG93ICU8YWxpZ25vZiU+ICIKIAkJCSAgICJ3aXRoIGEg bm9uLXR5cGUiKTsKQEAgLTIwMzg5LDE3ICsyMDM4OSwxNyBAQCBjcF9wYXJz ZXJfdmlydF9zcGVjaWZpZXJfc2VxX29wdCAoY3BfcGFyc2VyKiBwYXJzZXIp CiAgICAgICAvKiBTZWUgaWYgaXQncyBhIHZpcnQtc3BlY2lmaWVyLXF1YWxp Zmllci4gICovCiAgICAgICBpZiAodG9rZW4tPnR5cGUgIT0gQ1BQX05BTUUp CiAgICAgICAgIGJyZWFrOwotICAgICAgaWYgKCFzdHJjbXAgKElERU5USUZJ RVJfUE9JTlRFUih0b2tlbi0+dS52YWx1ZSksICJvdmVycmlkZSIpKQorICAg ICAgaWYgKCFpZF9zdHJjbXAgKHRva2VuLT51LnZhbHVlLCAib3ZlcnJpZGUi KSkKICAgICAgICAgewogICAgICAgICAgIG1heWJlX3dhcm5fY3BwMHggKENQ UDBYX09WRVJSSURFX0NPTlRST0xTKTsKICAgICAgICAgICB2aXJ0X3NwZWNp ZmllciA9IFZJUlRfU1BFQ19PVkVSUklERTsKICAgICAgICAgfQotICAgICAg ZWxzZSBpZiAoIXN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSKHRva2VuLT51 LnZhbHVlKSwgImZpbmFsIikpCisgICAgICBlbHNlIGlmICghaWRfc3RyY21w ICh0b2tlbi0+dS52YWx1ZSwgImZpbmFsIikpCiAgICAgICAgIHsKICAgICAg ICAgICBtYXliZV93YXJuX2NwcDB4IChDUFAwWF9PVkVSUklERV9DT05UUk9M Uyk7CiAgICAgICAgICAgdmlydF9zcGVjaWZpZXIgPSBWSVJUX1NQRUNfRklO QUw7CiAgICAgICAgIH0KLSAgICAgIGVsc2UgaWYgKCFzdHJjbXAgKElERU5U SUZJRVJfUE9JTlRFUih0b2tlbi0+dS52YWx1ZSksICJfX2ZpbmFsIikpCisg ICAgICBlbHNlIGlmICghaWRfc3RyY21wICh0b2tlbi0+dS52YWx1ZSwgIl9f ZmluYWwiKSkKICAgICAgICAgewogICAgICAgICAgIHZpcnRfc3BlY2lmaWVy ID0gVklSVF9TUEVDX0ZJTkFMOwogICAgICAgICB9CkBAIC0yNzYzNiw3ICsy NzYzNiw3IEBAIHN0YXRpYyBib29sCiB0b2tlbl9pc19fdGhyZWFkIChjcF90 b2tlbiAqdG9rZW4pCiB7CiAgIGdjY19hc3NlcnQgKHRva2VuLT5rZXl3b3Jk ID09IFJJRF9USFJFQUQpOwotICByZXR1cm4gIXN0cmNtcCAoSURFTlRJRklF Ul9QT0lOVEVSICh0b2tlbi0+dS52YWx1ZSksICJfX3RocmVhZCIpOworICBy ZXR1cm4gIWlkX3N0cmNtcCAodG9rZW4tPnUudmFsdWUsICJfX3RocmVhZCIp OwogfQogCiAvKiBTZXQgdGhlIGxvY2F0aW9uIGZvciBhIGRlY2xhcmF0b3Ig c3BlY2lmaWVyIGFuZCBjaGVjayBpZiBpdCBpcwpAQCAtMzEyNDYsNyArMzEy NDYsNyBAQCBjcF9wYXJzZXJfb2FjY19zaGFwZV9jbGF1c2UgKGNwX3BhcnNl ciAqcGFyc2VyLCBvbXBfY2xhdXNlX2NvZGUga2luZCwKIAkgICAgfQogCSAg LyogV29ya2VyIG51bTogYXJndW1lbnQgYW5kIHZlY3RvciBsZW5ndGg6IGFy Z3VtZW50cy4gICovCiAJICBlbHNlIGlmIChjcF9sZXhlcl9uZXh0X3Rva2Vu X2lzIChsZXhlciwgQ1BQX05BTUUpCi0JCSAgICYmIHN0cmNtcCAoaWQsIElE RU5USUZJRVJfUE9JTlRFUiAobmV4dC0+dS52YWx1ZSkpID09IDAKKwkJICAg JiYgaWRfc3RyY21wIChuZXh0LT51LnZhbHVlLCBpZCkgPT0gMAogCQkgICAm JiBjcF9sZXhlcl9udGhfdG9rZW5faXMgKGxleGVyLCAyLCBDUFBfQ09MT04p KQogCSAgICB7CiAJICAgICAgY3BfbGV4ZXJfY29uc3VtZV90b2tlbiAobGV4 ZXIpOyAgLyogaWQgICovCkBAIC0zNzEwNyw5ICszNzEwNyw5IEBAIGNwX3Bh cnNlcl9vbXBfZGVjbGFyZV9yZWR1Y3Rpb24gKGNwX3BhcnNlciAqcGFyc2Vy LCBjcF90b2tlbiAqcHJhZ21hX3RvaywKICAgICAgIGVsc2UgaWYgKEFSSVRI TUVUSUNfVFlQRV9QICh0eXBlKQogCSAgICAgICAmJiAob3JpZ19yZWR1Y19p ZCA9PSBOVUxMX1RSRUUKIAkJICAgfHwgKFRSRUVfQ09ERSAodHlwZSkgIT0g Q09NUExFWF9UWVBFCi0JCSAgICAgICAmJiAoc3RyY21wIChJREVOVElGSUVS X1BPSU5URVIgKG9yaWdfcmVkdWNfaWQpLAorCQkgICAgICAgJiYgKGlkX3N0 cmNtcCAob3JpZ19yZWR1Y19pZCwKIAkJCQkgICAibWluIikgPT0gMAotCQkJ ICAgfHwgc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKG9yaWdfcmVkdWNf aWQpLAorCQkJICAgfHwgaWRfc3RyY21wIChvcmlnX3JlZHVjX2lkLAogCQkJ CSAgICAgICJtYXgiKSA9PSAwKSkpKQogCWVycm9yX2F0IChsb2MsICJwcmVk ZWNsYXJlZCBhcml0aG1ldGljIHR5cGUgJXFUIGluICIKIAkJICAgICAgICIl PCNwcmFnbWEgb21wIGRlY2xhcmUgcmVkdWN0aW9uJT4iLCB0eXBlKTsKQEAg LTM4NjQ3LDE1ICszODY0NywxNSBAQCBjcF9wYXJzZXJfY2lsa19zaW1kX2Ns YXVzZV9uYW1lIChjcF9wYXJzZXIgKnBhcnNlcikKICAgICBjbGF1c2VfdHlw ZSA9IFBSQUdNQV9DSUxLX0NMQVVTRV9QUklWQVRFOwogICBlbHNlIGlmICgh dG9rZW4tPnUudmFsdWUgfHwgdG9rZW4tPnR5cGUgIT0gQ1BQX05BTUUpCiAg ICAgcmV0dXJuIFBSQUdNQV9DSUxLX0NMQVVTRV9OT05FOwotICBlbHNlIGlm ICghc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKHRva2VuLT51LnZhbHVl KSwgInZlY3Rvcmxlbmd0aCIpKQorICBlbHNlIGlmICghaWRfc3RyY21wICh0 b2tlbi0+dS52YWx1ZSwgInZlY3Rvcmxlbmd0aCIpKQogICAgIGNsYXVzZV90 eXBlID0gUFJBR01BX0NJTEtfQ0xBVVNFX1ZFQ1RPUkxFTkdUSDsKLSAgZWxz ZSBpZiAoIXN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSICh0b2tlbi0+dS52 YWx1ZSksICJsaW5lYXIiKSkKKyAgZWxzZSBpZiAoIWlkX3N0cmNtcCAodG9r ZW4tPnUudmFsdWUsICJsaW5lYXIiKSkKICAgICBjbGF1c2VfdHlwZSA9IFBS QUdNQV9DSUxLX0NMQVVTRV9MSU5FQVI7Ci0gIGVsc2UgaWYgKCFzdHJjbXAg KElERU5USUZJRVJfUE9JTlRFUiAodG9rZW4tPnUudmFsdWUpLCAiZmlyc3Rw cml2YXRlIikpCisgIGVsc2UgaWYgKCFpZF9zdHJjbXAgKHRva2VuLT51LnZh bHVlLCAiZmlyc3Rwcml2YXRlIikpCiAgICAgY2xhdXNlX3R5cGUgPSBQUkFH TUFfQ0lMS19DTEFVU0VfRklSU1RQUklWQVRFOwotICBlbHNlIGlmICghc3Ry Y21wIChJREVOVElGSUVSX1BPSU5URVIgKHRva2VuLT51LnZhbHVlKSwgImxh c3Rwcml2YXRlIikpCisgIGVsc2UgaWYgKCFpZF9zdHJjbXAgKHRva2VuLT51 LnZhbHVlLCAibGFzdHByaXZhdGUiKSkKICAgICBjbGF1c2VfdHlwZSA9IFBS QUdNQV9DSUxLX0NMQVVTRV9MQVNUUFJJVkFURTsKLSAgZWxzZSBpZiAoIXN0 cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSICh0b2tlbi0+dS52YWx1ZSksICJy ZWR1Y3Rpb24iKSkKKyAgZWxzZSBpZiAoIWlkX3N0cmNtcCAodG9rZW4tPnUu dmFsdWUsICJyZWR1Y3Rpb24iKSkKICAgICBjbGF1c2VfdHlwZSA9IFBSQUdN QV9DSUxLX0NMQVVTRV9SRURVQ1RJT047CiAgIGVsc2UKICAgICByZXR1cm4g UFJBR01BX0NJTEtfQ0xBVVNFX05PTkU7CmRpZmYgLS1naXQgYS9nY2MvY3Av c2VtYW50aWNzLmMgYi9nY2MvY3Avc2VtYW50aWNzLmMKaW5kZXggZmEwMmIy Ny4uMWY3NDJlYyAxMDA2NDQKLS0tIGEvZ2NjL2NwL3NlbWFudGljcy5jCisr KyBiL2djYy9jcC9zZW1hbnRpY3MuYwpAQCAtMjg4Nyw3ICsyODg3LDcgQEAg YmVnaW5fY2xhc3NfZGVmaW5pdGlvbiAodHJlZSB0KQogICAgICAgaWYgKG5z ICYmIFRSRUVfQ09ERSAobnMpID09IE5BTUVTUEFDRV9ERUNMCiAJICAmJiBE RUNMX0NPTlRFWFQgKG5zKSA9PSBzdGRfbm9kZQogCSAgJiYgREVDTF9OQU1F IChucykKLQkgICYmICFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVD TF9OQU1FIChucykpLCAiZGVjaW1hbCIpKQorCSAgJiYgIWlkX3N0cmNtcCAo REVDTF9OQU1FIChucyksICJkZWNpbWFsIikpCiAJewogCSAgY29uc3QgY2hh ciAqbiA9IFRZUEVfTkFNRV9TVFJJTkcgKHQpOwogCSAgaWYgKChzdHJjbXAg KG4sICJkZWNpbWFsMzIiKSA9PSAwKQpkaWZmIC0tZ2l0IGEvZ2NjL2R3YXJm Mm91dC5jIGIvZ2NjL2R3YXJmMm91dC5jCmluZGV4IDVmZjQ1ZWIuLmQzNDIx NzUgMTAwNjQ0Ci0tLSBhL2djYy9kd2FyZjJvdXQuYworKysgYi9nY2MvZHdh cmYyb3V0LmMKQEAgLTIwNjIxLDcgKzIwNjIxLDcgQEAgYWRkX2NhbGxpbmdf Y29udmVudGlvbl9hdHRyaWJ1dGUgKGR3X2RpZV9yZWYgc3Vicl9kaWUsIHRy ZWUgZGVjbCkKIAkgICB0YXJnZXRtLmR3YXJmX2NhbGxpbmdfY29udmVudGlv biAoVFJFRV9UWVBFIChkZWNsKSkpOwogCiAgIGlmIChpc19mb3J0cmFuICgp Ci0gICAgICAmJiAhc3RyY21wIChJREVOVElGSUVSX1BPSU5URVIgKERFQ0xf QVNTRU1CTEVSX05BTUUgKGRlY2wpKSwgIk1BSU5fXyIpKQorICAgICAgJiYg IWlkX3N0cmNtcCAoREVDTF9BU1NFTUJMRVJfTkFNRSAoZGVjbCksICJNQUlO X18iKSkKICAgICB7CiAgICAgICAvKiBEV0FSRiAyIGRvZXNuJ3QgcHJvdmlk ZSBhIHdheSB0byBpZGVudGlmeSBhIHByb2dyYW0ncyBzb3VyY2UtbGV2ZWwK IAllbnRyeSBwb2ludC4gIERXX0FUX2NhbGxpbmdfY29udmVudGlvbiBhdHRy aWJ1dGVzIGFyZSBvbmx5IG1lYW50CmRpZmYgLS1naXQgYS9nY2MvaHNhLWdl bi5jIGIvZ2NjL2hzYS1nZW4uYwppbmRleCBjNWQ4YTZlLi45NjM4MmVmIDEw MDY0NAotLS0gYS9nY2MvaHNhLWdlbi5jCisrKyBiL2djYy9oc2EtZ2VuLmMK QEAgLTM5MjQsNyArMzkyNCw3IEBAIGdldF9oc2Ffa2VybmVsX2Rpc3BhdGNo X29mZnNldCAoY29uc3QgY2hhciAqZmllbGRfbmFtZSkKIAogICBmb3IgKHRy ZWUgY2hhaW4gPSBUWVBFX0ZJRUxEUyAoKmhzYV9rZXJuZWxfZGlzcGF0Y2hf dHlwZSk7CiAgICAgICAgY2hhaW4gIT0gTlVMTF9UUkVFOyBjaGFpbiA9IFRS RUVfQ0hBSU4gKGNoYWluKSkKLSAgICBpZiAoc3RyY21wIChmaWVsZF9uYW1l LCBJREVOVElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAoY2hhaW4pKSkgPT0g MCkKKyAgICBpZiAoaWRfc3RyY21wIChERUNMX05BTUUgKGNoYWluKSwgZmll bGRfbmFtZSkgPT0gMCkKICAgICAgIHJldHVybiBpbnRfYnl0ZV9wb3NpdGlv biAoY2hhaW4pOwogCiAgIGdjY191bnJlYWNoYWJsZSAoKTsKZGlmZiAtLWdp dCBhL2djYy9pcGEtZGV2aXJ0LmMgYi9nY2MvaXBhLWRldmlydC5jCmluZGV4 IGFhM2EyMzYuLjViY2U4MzUgMTAwNjQ0Ci0tLSBhL2djYy9pcGEtZGV2aXJ0 LmMKKysrIGIvZ2NjL2lwYS1kZXZpcnQuYwpAQCAtMjM1OSw3ICsyMzU5LDcg QEAgaXNfY3hhX3B1cmVfdmlydHVhbF9wICh0cmVlIHRhcmdldCkKIHsKICAg cmV0dXJuIHRhcmdldCAmJiBUUkVFX0NPREUgKFRSRUVfVFlQRSAodGFyZ2V0 KSkgIT0gTUVUSE9EX1RZUEUKIAkgJiYgREVDTF9OQU1FICh0YXJnZXQpCi0J ICYmICFzdHJjbXAgKElERU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0 YXJnZXQpKSwKKwkgJiYgIWlkX3N0cmNtcCAoREVDTF9OQU1FICh0YXJnZXQp LAogCQkgICAgICJfX2N4YV9wdXJlX3ZpcnR1YWwiKTsKIH0KIApkaWZmIC0t Z2l0IGEvZ2NjL29tcC1leHBhbmQuYyBiL2djYy9vbXAtZXhwYW5kLmMKaW5k ZXggN2E3Yzc0Ny4uNWRhZDlmMyAxMDA2NDQKLS0tIGEvZ2NjL29tcC1leHBh bmQuYworKysgYi9nY2Mvb21wLWV4cGFuZC5jCkBAIC00MzY2LDkgKzQzNjYs OSBAQCBleHBhbmRfY2lsa19mb3IgKHN0cnVjdCBvbXBfcmVnaW9uICpyZWdp b24sIHN0cnVjdCBvbXBfZm9yX2RhdGEgKmZkKQogICB0cmVlIHQsIGxvd192 YWwgPSBOVUxMX1RSRUUsIGhpZ2hfdmFsID0gTlVMTF9UUkVFOwogICBmb3Ig KHQgPSBERUNMX0FSR1VNRU5UUyAoY2hpbGRfZm5kZWNsKTsgdDsgdCA9IFRS RUVfQ0hBSU4gKHQpKQogICAgIHsKLSAgICAgIGlmICghc3RyY21wIChJREVO VElGSUVSX1BPSU5URVIgKERFQ0xfTkFNRSAodCkpLCAiX19oaWdoIikpCisg ICAgICBpZiAoIWlkX3N0cmNtcCAoREVDTF9OQU1FICh0KSwgIl9faGlnaCIp KQogCWhpZ2hfdmFsID0gdDsKLSAgICAgIGVsc2UgaWYgKCFzdHJjbXAgKElE RU5USUZJRVJfUE9JTlRFUiAoREVDTF9OQU1FICh0KSksICJfX2xvdyIpKQor ICAgICAgZWxzZSBpZiAoIWlkX3N0cmNtcCAoREVDTF9OQU1FICh0KSwgIl9f bG93IikpCiAJbG93X3ZhbCA9IHQ7CiAgICAgfQogICBnY2NfYXNzZXJ0IChs b3dfdmFsICYmIGhpZ2hfdmFsKTsKZGlmZiAtLWdpdCBhL2djYy9vbXAtc2lt ZC1jbG9uZS5jIGIvZ2NjL29tcC1zaW1kLWNsb25lLmMKaW5kZXggOTk1ODlk NC4uMTM3NTk2YiAxMDA2NDQKLS0tIGEvZ2NjL29tcC1zaW1kLWNsb25lLmMK KysrIGIvZ2NjL29tcC1zaW1kLWNsb25lLmMKQEAgLTQxNyw3ICs0MTcsNyBA QCBzaW1kX2Nsb25lX21hbmdsZSAoc3RydWN0IGNncmFwaF9ub2RlICpub2Rl LAogICAgICBpZiB0aGUgc2ltZGxlbiBpcyBhc3N1bWVkIHRvIGJlIDggZm9y IHRoZSBmaXJzdCBvbmUsIGV0Yy4gICovCiAgIGZvciAoc3RydWN0IGNncmFw aF9ub2RlICpjbG9uZSA9IG5vZGUtPnNpbWRfY2xvbmVzOyBjbG9uZTsKICAg ICAgICBjbG9uZSA9IGNsb25lLT5zaW1kY2xvbmUtPm5leHRfY2xvbmUpCi0g ICAgaWYgKHN0cmNtcCAoSURFTlRJRklFUl9QT0lOVEVSIChERUNMX0FTU0VN QkxFUl9OQU1FIChjbG9uZS0+ZGVjbCkpLAorICAgIGlmIChpZF9zdHJjbXAg KERFQ0xfQVNTRU1CTEVSX05BTUUgKGNsb25lLT5kZWNsKSwKIAkJc3RyKSA9 PSAwKQogICAgICAgcmV0dXJuIE5VTExfVFJFRTsKIApkaWZmIC0tZ2l0IGEv Z2NjL3JlYWQtcnRsLWZ1bmN0aW9uLmMgYi9nY2MvcmVhZC1ydGwtZnVuY3Rp b24uYwppbmRleCBjNTAyNzk3MS4uOGI5MjgxNyAxMDA2NDQKLS0tIGEvZ2Nj L3JlYWQtcnRsLWZ1bmN0aW9uLmMKKysrIGIvZ2NjL3JlYWQtcnRsLWZ1bmN0 aW9uLmMKQEAgLTUzNiw3ICs1MzYsNyBAQCBzdGF0aWMgdHJlZQogZmluZF9w YXJhbV9ieV9uYW1lICh0cmVlIGZuZGVjbCwgY29uc3QgY2hhciAqbmFtZSkK IHsKICAgZm9yICh0cmVlIGFyZyA9IERFQ0xfQVJHVU1FTlRTIChmbmRlY2wp OyBhcmc7IGFyZyA9IFRSRUVfQ0hBSU4gKGFyZykpCi0gICAgaWYgKHN0cmNt cCAobmFtZSwgSURFTlRJRklFUl9QT0lOVEVSIChERUNMX05BTUUgKGFyZykp KSA9PSAwKQorICAgIGlmIChpZF9zdHJjbXAgKERFQ0xfTkFNRSAoYXJnKSwg bmFtZSkgPT0gMCkKICAgICAgIHJldHVybiBhcmc7CiAgIHJldHVybiBOVUxM X1RSRUU7CiB9CkBAIC0xMzI0LDcgKzEzMjQsNyBAQCBmdW5jdGlvbl9yZWFk ZXI6OnBhcnNlX21lbV9leHByIChjb25zdCBjaGFyICpkZXNjKQogICBpbnQg aTsKICAgdHJlZSB0OwogICBGT1JfRUFDSF9WRUNfRUxUIChtX2Zha2Vfc2Nv cGUsIGksIHQpCi0gICAgaWYgKHN0cmNtcCAoZGVzYywgSURFTlRJRklFUl9Q T0lOVEVSIChERUNMX05BTUUgKHQpKSkgPT0gMCkKKyAgICBpZiAoaWRfc3Ry Y21wIChERUNMX05BTUUgKHQpLCBkZXNjKSA9PSAwKQogICAgICAgcmV0dXJu IHQ7CiAKICAgLyogTm90IGZvdW5kPyAgQ3JlYXRlIGl0LgpkaWZmIC0tZ2l0 IGEvZ2NjL3RyZWUtY2hrcC5jIGIvZ2NjL3RyZWUtY2hrcC5jCmluZGV4IDIz MDBlOTguLjBiYTY2MjUgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWNoa3AuYwor KysgYi9nY2MvdHJlZS1jaGtwLmMKQEAgLTIzNzksNyArMjM3OSw3IEBAIGNo a3BfZ2V0X2JvdW5kX2Zvcl9wYXJtICh0cmVlIHBhcm0pCiAJIHRvIHVzZSB6 ZXJvIGJvdW5kcyBmb3IgaW5wdXQgYXJndW1lbnRzIG9mIG1haW4KIAkgZnVu Y3Rpb24uICAqLwogICAgICAgZWxzZSBpZiAoZmxhZ19jaGtwX3plcm9faW5w dXRfYm91bmRzX2Zvcl9tYWluCi0JICAgICAgICYmIHN0cmNtcCAoSURFTlRJ RklFUl9QT0lOVEVSIChERUNMX0FTU0VNQkxFUl9OQU1FIChvcmlnX2RlY2wp KSwKKwkgICAgICAgJiYgaWRfc3RyY21wIChERUNMX0FTU0VNQkxFUl9OQU1F IChvcmlnX2RlY2wpLAogCQkJICAibWFpbiIpID09IDApCiAJYm91bmRzID0g Y2hrcF9nZXRfemVyb19ib3VuZHMgKCk7CiAgICAgICBlbHNlIGlmIChCT1VO REVEX1AgKHBhcm0pKQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUuYyBiL2djYy90 cmVlLmMKaW5kZXggMzI3MzMyYi4uMDQyZmE0YSAxMDA2NDQKLS0tIGEvZ2Nj L3RyZWUuYworKysgYi9nY2MvdHJlZS5jCkBAIC02MDUzLDcgKzYwNTMsNyBA QCBwcml2YXRlX2lzX2F0dHJpYnV0ZV9wIChjb25zdCBjaGFyICphdHRyX25h bWUsIHNpemVfdCBhdHRyX2xlbiwgY29uc3RfdHJlZSBpZGVudAogCiAgIGlm IChpZGVudF9sZW4gPT0gYXR0cl9sZW4pCiAgICAgewotICAgICAgaWYgKHN0 cmNtcCAoYXR0cl9uYW1lLCBJREVOVElGSUVSX1BPSU5URVIgKGlkZW50KSkg PT0gMCkKKyAgICAgIGlmIChpZF9zdHJjbXAgKGlkZW50LCBhdHRyX25hbWUp ID09IDApCiAJcmV0dXJuIHRydWU7CiAgICAgfQogICBlbHNlIGlmIChpZGVu dF9sZW4gPT0gYXR0cl9sZW4gKyA0KQo= --001a1141f01c491f4d054fd74f6b--