From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 9D4B83858D38 for ; Thu, 22 Sep 2022 18:55:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9D4B83858D38 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1663872925; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=uurvdmFJndByZoPIzm5jGG91F/2JgZsck2Zevdd4ivU=; b=FOV99LwK1XmsLbkCCInUAOoqP9gapAtonNTGVpo9lFuGCXA/DylQ8OsW4BHnSTFyR42Kqi 7uIDnEo76CQE8sqx8BRCEHfZqH4dtapsv2QQxpZ0H7mXbn39/fV0dBMazfmXY/EFlafO3t IvZU9o4TEK8tnK2v7PTTJoroJebI8DY= Received: from mail-io1-f69.google.com (mail-io1-f69.google.com [209.85.166.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-592-WJ7-eTngM_SGWg8SRxJEVw-1; Thu, 22 Sep 2022 14:55:24 -0400 X-MC-Unique: WJ7-eTngM_SGWg8SRxJEVw-1 Received: by mail-io1-f69.google.com with SMTP id x22-20020a6bda16000000b006a123cb02beso5269615iob.18 for ; Thu, 22 Sep 2022 11:55:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date; bh=97NnmpUTJjO568PXvlnekEPyNeu3tD6AmprRIu4ZoHI=; b=A5Abc2x9c/uUQf5o3hadZ5EGdDxD1CGzPATpQmLGpYTHk/Ac5raNHdYwTt2ficwCHo Qpq1vIKC7ZHOH6Z/UVCKppDFsevViNPYG8kzOPKkzIqyfppIBmeHmHc4M4kmhfH09EH0 beoLebJZoxf8O6786cB6DjymUgAPmKjLTIQ/88mvayIYiVwkvitdg29Rwa1UaLITX/MA oSoNyMw5PzXGMDNO6lgHDY7pp7HKSOYFVVFbjuEi0bPTfFp+GkHt5NCfIOf8poYSN5lx hqFAUU2djn1fLCdQgG/ayWnzuzhUd43V4mY8q6o+5R8zEQGLp88JMBgmls2ezJnXtKVg ogKA== X-Gm-Message-State: ACrzQf2QQ4yS8tWw/WklHs0EidjeSa6y9hXJZWfyirtW6l54LxdbSQPw vqZ6wsMuxy0RWsOWBBPrKxwDGTE5cu5nEkNEpf/pGv3Eztv1Lcct4oyk3RUQkWhN6EOO6AAmxcN V+/BeNgBP5GAX2ERIYuzcBRk5lODSGdX4/Jg01mG4ds0SpFdA51xt1JbfmklX1dM0X5hmqQ== X-Received: by 2002:a05:6e02:1148:b0:2f6:8c53:acb8 with SMTP id o8-20020a056e02114800b002f68c53acb8mr2446460ill.207.1663872923038; Thu, 22 Sep 2022 11:55:23 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7SXTFRncyk98nudyprFKbK58cYt5Vi7aOLbqGmRpYllFkYD10CkKo3CeC2PonH9f9+2ldyUw== X-Received: by 2002:a05:6e02:1148:b0:2f6:8c53:acb8 with SMTP id o8-20020a056e02114800b002f68c53acb8mr2446442ill.207.1663872922657; Thu, 22 Sep 2022 11:55:22 -0700 (PDT) Received: from ?IPV6:2607:fea8:a263:f600::3dbe? ([2607:fea8:a263:f600::3dbe]) by smtp.gmail.com with ESMTPSA id z7-20020a92cb87000000b002f54ab12613sm2297698ilo.1.2022.09.22.11.55.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 22 Sep 2022 11:55:21 -0700 (PDT) Message-ID: <1c18ea06-495c-52f5-67ea-b116ef0df3bc@redhat.com> Date: Thu, 22 Sep 2022 14:55:20 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: [PATCH 02/17] Adjust range_op_handler to store the handler directly. From: Andrew MacLeod To: gcc-patches Cc: "hernandez, aldy" References: <571782f9-72e6-5c30-da55-b8d62d3a153e@redhat.com> In-Reply-To: <571782f9-72e6-5c30-da55-b8d62d3a153e@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------kMEW7lBuNaGoAxzgdgFHktWt" Content-Language: en-US X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------kMEW7lBuNaGoAxzgdgFHktWt Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Range_op_handler currently stores a tree code and a type.  It defers checking to see if there is a valid handler until asked. This change checks at constructor time and store a pointer to the handler if there is one. Bootstrapped on x86_64-pc-linux-gnu with no regressions.  Pushed. Andrew --------------kMEW7lBuNaGoAxzgdgFHktWt Content-Type: text/x-patch; charset=UTF-8; name="0002-Adjust-range_op_handler-to-store-the-handler-directl.patch" Content-Disposition: attachment; filename*0="0002-Adjust-range_op_handler-to-store-the-handler-directl.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNGM0NzNhMTRkM2NiZTZmYzQ0OTk3MTIyYjUzMmNiOTQwNjQ5N2NiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmRyZXcgTWFjTGVvZCA8YW1hY2xlb2RAcmVkaGF0LmNvbT4K RGF0ZTogV2VkLCAzMSBBdWcgMjAyMiAxNDowNzoxMyAtMDQwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MTddIEFkanVzdCByYW5nZV9vcF9oYW5kbGVyIHRvIHN0b3JlIHRoZSBoYW5kbGVyIGRpcmVjdGx5 LgoKUmFuZ2Vfb3BfaGFuZGxlciBjdXJyZW50bHkgc3RvcmVzIGEgdHJlZSBjb2RlIGFuZCBhIHR5 cGUuICBJdCBkZWZlcnMKY2hlY2tpbmcgdG8gc2VlIGlmIHRoZXJlIGlzIGEgdmFsaWQgaGFuZGxl ciB1bnRpbCBhc2tlZC4KVGhpcyBjaGFuZ2UgY2hlY2tzIGF0IGNvbnN0dWN0b3IgdGltZSBhbmQg c3RvcmUgYSBwb2ludGVyIHRvCnRoZSBoYW5kbGVyIGlmIHRoZXJlIGlzIG9uZS4KCgkqIHJhbmdl LW9wLmNjIChyYW5nZV9vcF9oYW5kbGVyOjpzZXRfb3BfaGFuZGxlcik6IFNldCBuZXcgZmllbGRz LgoJKGFuZ2Vfb3BfaGFuZGxlcjo6cmFuZ2Vfb3BfaGFuZGxlcik6IExpa2V3aXNlLgoJKHJhbmdl X29wX2hhbmRsZXI6Om9wZXJhdG9yIGJvb2wpOiBSZW1vdmUuCgkocmFuZ2Vfb3BfaGFuZGxlcjo6 Zm9sZF9yYW5nZSk6IFVzZSBhcHByb3ByaWF0ZSBoYW5kbGVyLgoJKHJhbmdlX29wX2hhbmRsZXI6 Om9wMV9yYW5nZSk6IExpa2V3aXNlLgoJKHJhbmdlX29wX2hhbmRsZXI6Om9wMl9yYW5nZSk6IExp a2V3aXNlLgoJKHJhbmdlX29wX2hhbmRsZXI6Omxoc19vcDFfcmVsYXRpb24pOiBMaWtld2lzZS4K CShyYW5nZV9vcF9oYW5kbGVyOjpsaHNfb3AyX3JlbGF0aW9uKTogTGlrZXdpc2UuCgkocmFuZ2Vf b3BfaGFuZGxlcjo6b3AxX29wMl9yZWxhdGlvbik6IExpa2V3aXNlLgoJKiByYW5nZS1vcC5oIChj bGFzcyByYW5nZV9vcF9oYW5kbGVyKTogU3RvcmUgaGFuZGxlciBwb2ludGVycy4KCShyYW5nZV9v cF9oYW5kbGVyOjogb3BlcmF0b3IgYm9vbCk6IElubGluZS4KLS0tCiBnY2MvcmFuZ2Utb3AuY2Mg fCAyNDYgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBn Y2MvcmFuZ2Utb3AuaCAgfCAgIDggKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMo KyksIDE0MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvcmFuZ2Utb3AuY2MgYi9nY2Mv cmFuZ2Utb3AuY2MKaW5kZXggODA2ZWRmMTAxMmUuLmY2NDJiM2YyNmRlIDEwMDY0NAotLS0gYS9n Y2MvcmFuZ2Utb3AuY2MKKysrIGIvZ2NjL3JhbmdlLW9wLmNjCkBAIC00MTU5LDQ4ICs0MTU5LDYz IEBAIGdldF9mbG9hdF9oYW5kbGVyIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlKQogICByZXR1 cm4gKCpmbG9hdGluZ190cmVlX3RhYmxlKVtjb2RlXTsKIH0KIAordm9pZAorcmFuZ2Vfb3BfaGFu ZGxlcjo6c2V0X29wX2hhbmRsZXIgKHRyZWVfY29kZSBjb2RlLCB0cmVlIHR5cGUpCit7CisgIGlm IChpcmFuZ2U6OnN1cHBvcnRzX3AgKHR5cGUpKQorICAgIHsKKyAgICAgIG1fZmxvYXQgPSBOVUxM OworICAgICAgbV9pbnQgPSBnZXRfaGFuZGxlciAoY29kZSwgdHlwZSk7CisgICAgICBtX3ZhbGlk ID0gbV9pbnQgIT0gTlVMTDsKKyAgICB9CisgIGVsc2UgaWYgKGZyYW5nZTo6c3VwcG9ydHNfcCAo dHlwZSkpCisgICAgeworICAgICAgbV9pbnQgPSBOVUxMOworICAgICAgbV9mbG9hdCA9IGdldF9m bG9hdF9oYW5kbGVyIChjb2RlLCB0eXBlKTsKKyAgICAgIG1fdmFsaWQgPSBtX2Zsb2F0ICE9IE5V TEw7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgbV9pbnQgPSBOVUxMOworICAgICAgbV9m bG9hdCA9IE5VTEw7CisgICAgICBtX3ZhbGlkID0gZmFsc2U7CisgICAgfQorfQorCiByYW5nZV9v cF9oYW5kbGVyOjpyYW5nZV9vcF9oYW5kbGVyICh0cmVlX2NvZGUgY29kZSwgdHJlZSB0eXBlKQot ICA6IG1fY29kZSAoY29kZSksIG1fdHlwZSAodHlwZSkKIHsKKyAgc2V0X29wX2hhbmRsZXIgKGNv ZGUsIHR5cGUpOwogfQogCiByYW5nZV9vcF9oYW5kbGVyOjpyYW5nZV9vcF9oYW5kbGVyIChjb25z dCBnaW1wbGUgKnMpCiB7CisgIHRyZWVfY29kZSBjb2RlID0gTk9QX0VYUFI7CisgIHRyZWUgdHlw ZSA9IE5VTExfVFJFRTsKKwogICBpZiAoY29uc3QgZ2Fzc2lnbiAqYXNzID0gZHluX2Nhc3Q8Y29u c3QgZ2Fzc2lnbiAqPiAocykpCiAgICAgewotICAgICAgbV9jb2RlID0gZ2ltcGxlX2Fzc2lnbl9y aHNfY29kZSAoYXNzKTsKKyAgICAgIGNvZGUgPSBnaW1wbGVfYXNzaWduX3Joc19jb2RlIChhc3Mp OwogICAgICAgLy8gVGhlIExIUyBvZiBhIGNvbXBhcmlzb24gaXMgYWx3YXlzIGFuIGludCwgc28g d2UgbXVzdCBsb29rIGF0CiAgICAgICAvLyB0aGUgb3BlcmFuZHMuCi0gICAgICBpZiAoVFJFRV9D T0RFX0NMQVNTIChtX2NvZGUpID09IHRjY19jb21wYXJpc29uKQotCW1fdHlwZSA9IFRSRUVfVFlQ RSAoZ2ltcGxlX2Fzc2lnbl9yaHMxIChhc3MpKTsKKyAgICAgIGlmIChUUkVFX0NPREVfQ0xBU1Mg KGNvZGUpID09IHRjY19jb21wYXJpc29uKQorCXR5cGUgPSBUUkVFX1RZUEUgKGdpbXBsZV9hc3Np Z25fcmhzMSAoYXNzKSk7CiAgICAgICBlbHNlCi0JbV90eXBlID0gVFJFRV9UWVBFIChnaW1wbGVf YXNzaWduX2xocyAoYXNzKSk7CisJdHlwZSA9IFRSRUVfVFlQRSAoZ2ltcGxlX2Fzc2lnbl9saHMg KGFzcykpOwogICAgIH0KICAgZWxzZSBpZiAoY29uc3QgZ2NvbmQgKmNvbmQgPSBkeW5fY2FzdDxj b25zdCBnY29uZCAqPiAocykpCiAgICAgewotICAgICAgbV9jb2RlID0gZ2ltcGxlX2NvbmRfY29k ZSAoY29uZCk7Ci0gICAgICBtX3R5cGUgPSBUUkVFX1RZUEUgKGdpbXBsZV9jb25kX2xocyAoY29u ZCkpOworICAgICAgY29kZSA9IGdpbXBsZV9jb25kX2NvZGUgKGNvbmQpOworICAgICAgdHlwZSA9 IFRSRUVfVFlQRSAoZ2ltcGxlX2NvbmRfbGhzIChjb25kKSk7CiAgICAgfQotICBlbHNlCisKKyAg aWYgKCF0eXBlKQogICAgIHsKLSAgICAgIC8vIEEgbnVsbCB0eXBlIG1lYW5zIHRoZXJlIGlzIG5v IGhhbmRsZXIgZm9yIHRoaXMgY29tYmluYXRpb24sCi0gICAgICAvLyBidXQgdGhlIGRlY2lzaW9u IHdoZXRoZXIgdGhlcmUgaXMgb25lIG9yIG5vdCwgaXMgZGVsYXllZAotICAgICAgLy8gdW50aWwg b3BlcmF0b3IgYm9vbCBiZWxvdyBpcyBxdWVyaWVkLgotICAgICAgbV9jb2RlID0gTk9QX0VYUFI7 Ci0gICAgICBtX3R5cGUgPSBudWxscHRyOworICAgICAgbV9pbnQgPSBOVUxMOworICAgICAgbV9m bG9hdCA9IE5VTEw7CisgICAgICBtX3ZhbGlkID0gZmFsc2U7CiAgICAgfQotfQotCi0vLyBSZXR1 cm4gVFJVRSBpZiB0aGVyZSBpcyBhIGhhbmRsZXIgYXZhaWxhYmxlIGZvciB0aGUgY3VycmVudAot Ly8gY29tYmluYXRpb24gb2YgdHJlZV9jb2RlIGFuZCB0eXBlLgotCi1yYW5nZV9vcF9oYW5kbGVy OjpvcGVyYXRvciBib29sICgpIGNvbnN0Ci17Ci0gIGlmICghbV90eXBlKQotICAgIHJldHVybiBm YWxzZTsKLSAgaWYgKGZyYW5nZTo6c3VwcG9ydHNfcCAobV90eXBlKSkKLSAgICByZXR1cm4gZ2V0 X2Zsb2F0X2hhbmRsZXIgKG1fY29kZSwgbV90eXBlKTsKLSAgcmV0dXJuIGdldF9oYW5kbGVyICht X2NvZGUsIG1fdHlwZSk7CisgIGVsc2UKKyAgICBzZXRfb3BfaGFuZGxlciAoY29kZSwgdHlwZSk7 CiB9CiAKIGJvb2wKQEAgLTQyMDksMjYgKzQyMjQsMTkgQEAgcmFuZ2Vfb3BfaGFuZGxlcjo6Zm9s ZF9yYW5nZSAodnJhbmdlICZyLCB0cmVlIHR5cGUsCiAJCQkgICAgICBjb25zdCB2cmFuZ2UgJnJo LAogCQkJICAgICAgcmVsYXRpb25fa2luZCByZWwpIGNvbnN0CiB7Ci0gIGlmIChpcmFuZ2U6OnN1 cHBvcnRzX3AgKG1fdHlwZSkpCi0gICAgewotICAgICAgcmFuZ2Vfb3BlcmF0b3IgKm9wID0gZ2V0 X2hhbmRsZXIgKG1fY29kZSwgbV90eXBlKTsKLSAgICAgIHJldHVybiBvcC0+Zm9sZF9yYW5nZSAo YXNfYSA8aXJhbmdlPiAociksIHR5cGUsCi0JCQkgICAgIGFzX2EgPGlyYW5nZT4gKGxoKSwKLQkJ CSAgICAgYXNfYSA8aXJhbmdlPiAocmgpLCByZWwpOwotICAgIH0KLSAgaWYgKGZyYW5nZTo6c3Vw cG9ydHNfcCAobV90eXBlKSkKLSAgICB7Ci0gICAgICByYW5nZV9vcGVyYXRvcl9mbG9hdCAqb3Ag PSBnZXRfZmxvYXRfaGFuZGxlciAobV9jb2RlLCBtX3R5cGUpOwotICAgICAgaWYgKGlzX2EgPGly YW5nZT4gKHIpKQotCXJldHVybiBvcC0+Zm9sZF9yYW5nZSAoYXNfYSA8aXJhbmdlPiAociksIHR5 cGUsCi0JCQkgICAgICAgYXNfYSA8ZnJhbmdlPiAobGgpLAotCQkJICAgICAgIGFzX2EgPGZyYW5n ZT4gKHJoKSwgcmVsKTsKLSAgICAgIHJldHVybiBvcC0+Zm9sZF9yYW5nZSAoYXNfYSA8ZnJhbmdl PiAociksIHR5cGUsCi0JCQkgICAgIGFzX2EgPGZyYW5nZT4gKGxoKSwKLQkJCSAgICAgYXNfYSA8 ZnJhbmdlPiAocmgpLCByZWwpOwotICAgIH0KLSAgZ2NjX3VucmVhY2hhYmxlICgpOwotICByZXR1 cm4gZmFsc2U7CisgIGdjY19jaGVja2luZ19hc3NlcnQgKG1fdmFsaWQpOworICBpZiAobV9pbnQp CisgICAgcmV0dXJuIG1faW50LT5mb2xkX3JhbmdlIChhc19hIDxpcmFuZ2U+IChyKSwgdHlwZSwK KwkJCSAgIGFzX2EgPGlyYW5nZT4gKGxoKSwKKwkJCSAgIGFzX2EgPGlyYW5nZT4gKHJoKSwgcmVs KTsKKworICBpZiAoaXNfYSA8aXJhbmdlPiAocikpCisgICAgcmV0dXJuIG1fZmxvYXQtPmZvbGRf cmFuZ2UgKGFzX2EgPGlyYW5nZT4gKHIpLCB0eXBlLAorCQkJCWFzX2EgPGZyYW5nZT4gKGxoKSwK KwkJCQlhc19hIDxmcmFuZ2U+IChyaCksIHJlbCk7CisgIHJldHVybiBtX2Zsb2F0LT5mb2xkX3Jh bmdlIChhc19hIDxmcmFuZ2U+IChyKSwgdHlwZSwKKwkJCSAgICAgIGFzX2EgPGZyYW5nZT4gKGxo KSwKKwkJCSAgICAgIGFzX2EgPGZyYW5nZT4gKHJoKSwgcmVsKTsKIH0KIAogYm9vbApAQCAtNDIz NywyNiArNDI0NSwxOSBAQCByYW5nZV9vcF9oYW5kbGVyOjpvcDFfcmFuZ2UgKHZyYW5nZSAmciwg dHJlZSB0eXBlLAogCQkJICAgICBjb25zdCB2cmFuZ2UgJm9wMiwKIAkJCSAgICAgcmVsYXRpb25f a2luZCByZWwpIGNvbnN0CiB7Ci0gIGlmIChpcmFuZ2U6OnN1cHBvcnRzX3AgKG1fdHlwZSkpCi0g ICAgewotICAgICAgcmFuZ2Vfb3BlcmF0b3IgKm9wID0gZ2V0X2hhbmRsZXIgKG1fY29kZSwgbV90 eXBlKTsKLSAgICAgIHJldHVybiBvcC0+b3AxX3JhbmdlIChhc19hIDxpcmFuZ2U+IChyKSwgdHlw ZSwKLQkJCSAgICBhc19hIDxpcmFuZ2U+IChsaHMpLAotCQkJICAgIGFzX2EgPGlyYW5nZT4gKG9w MiksIHJlbCk7Ci0gICAgfQotICBpZiAoZnJhbmdlOjpzdXBwb3J0c19wIChtX3R5cGUpKQotICAg IHsKLSAgICAgIHJhbmdlX29wZXJhdG9yX2Zsb2F0ICpvcCA9IGdldF9mbG9hdF9oYW5kbGVyICht X2NvZGUsIG1fdHlwZSk7Ci0gICAgICBpZiAoaXNfYSA8aXJhbmdlPiAobGhzKSkKLQlyZXR1cm4g b3AtPm9wMV9yYW5nZSAoYXNfYSA8ZnJhbmdlPiAociksIHR5cGUsCi0JCQkgICAgICBhc19hIDxp cmFuZ2U+IChsaHMpLAotCQkJICAgICAgYXNfYSA8ZnJhbmdlPiAob3AyKSwgcmVsKTsKLSAgICAg IHJldHVybiBvcC0+b3AxX3JhbmdlIChhc19hIDxmcmFuZ2U+IChyKSwgdHlwZSwKLQkJCSAgICBh c19hIDxmcmFuZ2U+IChsaHMpLAotCQkJICAgIGFzX2EgPGZyYW5nZT4gKG9wMiksIHJlbCk7Ci0g ICAgfQotICBnY2NfdW5yZWFjaGFibGUgKCk7Ci0gIHJldHVybiBmYWxzZTsKKyAgZ2NjX2NoZWNr aW5nX2Fzc2VydCAobV92YWxpZCk7CisgIGlmIChtX2ludCkKKyAgICByZXR1cm4gbV9pbnQtPm9w MV9yYW5nZSAoYXNfYSA8aXJhbmdlPiAociksIHR5cGUsCisJCQkgICAgIGFzX2EgPGlyYW5nZT4g KGxocyksCisJCQkgICAgIGFzX2EgPGlyYW5nZT4gKG9wMiksIHJlbCk7CisKKyAgaWYgKGlzX2Eg PGlyYW5nZT4gKGxocykpCisgICAgcmV0dXJuIG1fZmxvYXQtPm9wMV9yYW5nZSAoYXNfYSA8ZnJh bmdlPiAociksIHR5cGUsCisJCQkgICAgICAgYXNfYSA8aXJhbmdlPiAobGhzKSwKKwkJCSAgICAg ICBhc19hIDxmcmFuZ2U+IChvcDIpLCByZWwpOworICByZXR1cm4gbV9mbG9hdC0+b3AxX3Jhbmdl IChhc19hIDxmcmFuZ2U+IChyKSwgdHlwZSwKKwkJCSAgICAgYXNfYSA8ZnJhbmdlPiAobGhzKSwK KwkJCSAgICAgYXNfYSA8ZnJhbmdlPiAob3AyKSwgcmVsKTsKIH0KIAogYm9vbApAQCAtNDI2NSwy NiArNDI2NiwxOSBAQCByYW5nZV9vcF9oYW5kbGVyOjpvcDJfcmFuZ2UgKHZyYW5nZSAmciwgdHJl ZSB0eXBlLAogCQkJICAgICBjb25zdCB2cmFuZ2UgJm9wMSwKIAkJCSAgICAgcmVsYXRpb25fa2lu ZCByZWwpIGNvbnN0CiB7Ci0gIGlmIChpcmFuZ2U6OnN1cHBvcnRzX3AgKG1fdHlwZSkpCi0gICAg ewotICAgICAgcmFuZ2Vfb3BlcmF0b3IgKm9wID0gZ2V0X2hhbmRsZXIgKG1fY29kZSwgbV90eXBl KTsKLSAgICAgIHJldHVybiBvcC0+b3AyX3JhbmdlIChhc19hIDxpcmFuZ2U+IChyKSwgdHlwZSwK LQkJCSAgICBhc19hIDxpcmFuZ2U+IChsaHMpLAotCQkJICAgIGFzX2EgPGlyYW5nZT4gKG9wMSks IHJlbCk7Ci0gICAgfQotICBpZiAoZnJhbmdlOjpzdXBwb3J0c19wIChtX3R5cGUpKQotICAgIHsK LSAgICAgIHJhbmdlX29wZXJhdG9yX2Zsb2F0ICpvcCA9IGdldF9mbG9hdF9oYW5kbGVyIChtX2Nv ZGUsIG1fdHlwZSk7Ci0gICAgICBpZiAoaXNfYSA8aXJhbmdlPiAobGhzKSkKLQlyZXR1cm4gb3At Pm9wMl9yYW5nZSAoYXNfYSA8ZnJhbmdlPiAociksIHR5cGUsCi0JCQkgICAgICBhc19hIDxpcmFu Z2U+IChsaHMpLAotCQkJICAgICAgYXNfYSA8ZnJhbmdlPiAob3AxKSwgcmVsKTsKLSAgICAgIHJl dHVybiBvcC0+b3AyX3JhbmdlIChhc19hIDxmcmFuZ2U+IChyKSwgdHlwZSwKLQkJCSAgICBhc19h IDxmcmFuZ2U+IChsaHMpLAotCQkJICAgIGFzX2EgPGZyYW5nZT4gKG9wMSksIHJlbCk7Ci0gICAg fQotICBnY2NfdW5yZWFjaGFibGUgKCk7Ci0gIHJldHVybiBmYWxzZTsKKyAgZ2NjX2NoZWNraW5n X2Fzc2VydCAobV92YWxpZCk7CisgIGlmIChtX2ludCkKKyAgICByZXR1cm4gbV9pbnQtPm9wMl9y YW5nZSAoYXNfYSA8aXJhbmdlPiAociksIHR5cGUsCisJCQkgICAgIGFzX2EgPGlyYW5nZT4gKGxo cyksCisJCQkgICAgIGFzX2EgPGlyYW5nZT4gKG9wMSksIHJlbCk7CisKKyAgaWYgKGlzX2EgPGly YW5nZT4gKGxocykpCisgICAgcmV0dXJuIG1fZmxvYXQtPm9wMl9yYW5nZSAoYXNfYSA8ZnJhbmdl PiAociksIHR5cGUsCisJCQkgICAgICAgYXNfYSA8aXJhbmdlPiAobGhzKSwKKwkJCSAgICAgICBh c19hIDxmcmFuZ2U+IChvcDEpLCByZWwpOworICByZXR1cm4gbV9mbG9hdC0+b3AyX3JhbmdlIChh c19hIDxmcmFuZ2U+IChyKSwgdHlwZSwKKwkJCSAgICAgYXNfYSA8ZnJhbmdlPiAobGhzKSwKKwkJ CSAgICAgYXNfYSA8ZnJhbmdlPiAob3AxKSwgcmVsKTsKIH0KIAogcmVsYXRpb25fa2luZApAQCAt NDI5MywyNiArNDI4NywxOSBAQCByYW5nZV9vcF9oYW5kbGVyOjpsaHNfb3AxX3JlbGF0aW9uIChj b25zdCB2cmFuZ2UgJmxocywKIAkJCQkgICAgY29uc3QgdnJhbmdlICZvcDIsCiAJCQkJICAgIHJl bGF0aW9uX2tpbmQgcmVsKSBjb25zdAogewotICBpZiAoaXJhbmdlOjpzdXBwb3J0c19wIChtX3R5 cGUpKQotICAgIHsKLSAgICAgIHJhbmdlX29wZXJhdG9yICpvcCA9IGdldF9oYW5kbGVyIChtX2Nv ZGUsIG1fdHlwZSk7Ci0gICAgICByZXR1cm4gb3AtPmxoc19vcDFfcmVsYXRpb24gKGFzX2EgPGly YW5nZT4gKGxocyksCi0JCQkJICAgYXNfYSA8aXJhbmdlPiAob3AxKSwKLQkJCQkgICBhc19hIDxp cmFuZ2U+IChvcDIpLCByZWwpOwotICAgIH0KLSAgaWYgKGZyYW5nZTo6c3VwcG9ydHNfcCAobV90 eXBlKSkKLSAgICB7Ci0gICAgICByYW5nZV9vcGVyYXRvcl9mbG9hdCAqb3AgPSBnZXRfZmxvYXRf aGFuZGxlciAobV9jb2RlLCBtX3R5cGUpOwotICAgICAgaWYgKGlzX2EgPGlyYW5nZT4gKGxocykp Ci0JcmV0dXJuIG9wLT5saHNfb3AxX3JlbGF0aW9uIChhc19hIDxpcmFuZ2U+IChsaHMpLAotCQkJ CSAgICAgYXNfYSA8ZnJhbmdlPiAob3AxKSwKLQkJCQkgICAgIGFzX2EgPGZyYW5nZT4gKG9wMiks IHJlbCk7Ci0gICAgICByZXR1cm4gb3AtPmxoc19vcDFfcmVsYXRpb24gKGFzX2EgPGZyYW5nZT4g KGxocyksCi0JCQkJICAgYXNfYSA8ZnJhbmdlPiAob3AxKSwKLQkJCQkgICBhc19hIDxmcmFuZ2U+ IChvcDIpLCByZWwpOwotICAgIH0KLSAgZ2NjX3VucmVhY2hhYmxlICgpOwotICByZXR1cm4gVlJF TF9WQVJZSU5HOworICBnY2NfY2hlY2tpbmdfYXNzZXJ0IChtX3ZhbGlkKTsKKyAgaWYgKG1faW50 KQorICAgIHJldHVybiBtX2ludC0+bGhzX29wMV9yZWxhdGlvbiAoYXNfYSA8aXJhbmdlPiAobGhz KSwKKwkJCQkgICAgYXNfYSA8aXJhbmdlPiAob3AxKSwKKwkJCQkgICAgYXNfYSA8aXJhbmdlPiAo b3AyKSwgcmVsKTsKKworICBpZiAoaXNfYSA8aXJhbmdlPiAobGhzKSkKKyAgICByZXR1cm4gbV9m bG9hdC0+bGhzX29wMV9yZWxhdGlvbiAoYXNfYSA8aXJhbmdlPiAobGhzKSwKKwkJCQkgYXNfYSA8 ZnJhbmdlPiAob3AxKSwKKwkJCQkgYXNfYSA8ZnJhbmdlPiAob3AyKSwgcmVsKTsKKyAgcmV0dXJu IG1fZmxvYXQtPmxoc19vcDFfcmVsYXRpb24gKGFzX2EgPGZyYW5nZT4gKGxocyksCisJCQkgICAg ICAgYXNfYSA8ZnJhbmdlPiAob3AxKSwKKwkJCSAgICAgICBhc19hIDxmcmFuZ2U+IChvcDIpLCBy ZWwpOwogfQogCiByZWxhdGlvbl9raW5kCkBAIC00MzIxLDQzICs0MzA4LDI4IEBAIHJhbmdlX29w X2hhbmRsZXI6Omxoc19vcDJfcmVsYXRpb24gKGNvbnN0IHZyYW5nZSAmbGhzLAogCQkJCSAgICBj b25zdCB2cmFuZ2UgJm9wMiwKIAkJCQkgICAgcmVsYXRpb25fa2luZCByZWwpIGNvbnN0CiB7Ci0g IGlmIChpcmFuZ2U6OnN1cHBvcnRzX3AgKG1fdHlwZSkpCi0gICAgewotICAgICAgcmFuZ2Vfb3Bl cmF0b3IgKm9wID0gZ2V0X2hhbmRsZXIgKG1fY29kZSwgbV90eXBlKTsKLSAgICAgIHJldHVybiBv cC0+bGhzX29wMl9yZWxhdGlvbiAoYXNfYSA8aXJhbmdlPiAobGhzKSwKLQkJCQkgICBhc19hIDxp cmFuZ2U+IChvcDEpLAotCQkJCSAgIGFzX2EgPGlyYW5nZT4gKG9wMiksIHJlbCk7Ci0gICAgfQot ICBpZiAoZnJhbmdlOjpzdXBwb3J0c19wIChtX3R5cGUpKQotICAgIHsKLSAgICAgIHJhbmdlX29w ZXJhdG9yX2Zsb2F0ICpvcCA9IGdldF9mbG9hdF9oYW5kbGVyIChtX2NvZGUsIG1fdHlwZSk7Ci0g ICAgICBpZiAoaXNfYSA8aXJhbmdlPiAobGhzKSkKLQlyZXR1cm4gb3AtPmxoc19vcDJfcmVsYXRp b24gKGFzX2EgPGlyYW5nZT4gKGxocyksCi0JCQkJICAgICBhc19hIDxmcmFuZ2U+IChvcDEpLAot CQkJCSAgICAgYXNfYSA8ZnJhbmdlPiAob3AyKSwgcmVsKTsKLSAgICAgIHJldHVybiBvcC0+bGhz X29wMl9yZWxhdGlvbiAoYXNfYSA8ZnJhbmdlPiAobGhzKSwKLQkJCQkgICBhc19hIDxmcmFuZ2U+ IChvcDEpLAotCQkJCSAgIGFzX2EgPGZyYW5nZT4gKG9wMiksIHJlbCk7Ci0gICAgfQotICBnY2Nf dW5yZWFjaGFibGUgKCk7Ci0gIHJldHVybiBWUkVMX1ZBUllJTkc7CisgIGdjY19jaGVja2luZ19h c3NlcnQgKG1fdmFsaWQpOworICBpZiAobV9pbnQpCisgICAgcmV0dXJuIG1faW50LT5saHNfb3Ay X3JlbGF0aW9uIChhc19hIDxpcmFuZ2U+IChsaHMpLAorCQkJCSAgICBhc19hIDxpcmFuZ2U+IChv cDEpLAorCQkJCSAgICBhc19hIDxpcmFuZ2U+IChvcDIpLCByZWwpOworCisgIGlmIChpc19hIDxp cmFuZ2U+IChsaHMpKQorICAgIHJldHVybiBtX2Zsb2F0LT5saHNfb3AyX3JlbGF0aW9uIChhc19h IDxpcmFuZ2U+IChsaHMpLAorCQkJCSAgICAgIGFzX2EgPGZyYW5nZT4gKG9wMSksCisJCQkJICAg ICAgYXNfYSA8ZnJhbmdlPiAob3AyKSwgcmVsKTsKKyAgcmV0dXJuIG1fZmxvYXQtPmxoc19vcDJf cmVsYXRpb24gKGFzX2EgPGZyYW5nZT4gKGxocyksCisJCQkJICAgICAgYXNfYSA8ZnJhbmdlPiAo b3AxKSwKKwkJCQkgICAgICBhc19hIDxmcmFuZ2U+IChvcDIpLCByZWwpOwogfQogCiByZWxhdGlv bl9raW5kCiByYW5nZV9vcF9oYW5kbGVyOjpvcDFfb3AyX3JlbGF0aW9uIChjb25zdCB2cmFuZ2Ug JmxocykgY29uc3QKIHsKLSAgaWYgKGlyYW5nZTo6c3VwcG9ydHNfcCAobV90eXBlKSkKLSAgICB7 Ci0gICAgICByYW5nZV9vcGVyYXRvciAqb3AgPSBnZXRfaGFuZGxlciAobV9jb2RlLCBtX3R5cGUp OwotICAgICAgcmV0dXJuIG9wLT5vcDFfb3AyX3JlbGF0aW9uIChhc19hIDxpcmFuZ2U+IChsaHMp KTsKLSAgICB9Ci0gIGlmIChmcmFuZ2U6OnN1cHBvcnRzX3AgKG1fdHlwZSkpCi0gICAgewotICAg ICAgcmFuZ2Vfb3BlcmF0b3JfZmxvYXQgKm9wID0gZ2V0X2Zsb2F0X2hhbmRsZXIgKG1fY29kZSwg bV90eXBlKTsKLSAgICAgIHJldHVybiBvcC0+b3AxX29wMl9yZWxhdGlvbiAoYXNfYSA8aXJhbmdl PiAobGhzKSk7Ci0gICAgfQotICBnY2NfdW5yZWFjaGFibGUgKCk7Ci0gIHJldHVybiBWUkVMX1ZB UllJTkc7CisgIGdjY19jaGVja2luZ19hc3NlcnQgKG1fdmFsaWQpOworICBpZiAobV9pbnQpCisg ICAgcmV0dXJuIG1faW50LT5vcDFfb3AyX3JlbGF0aW9uIChhc19hIDxpcmFuZ2U+IChsaHMpKTsK KyAgcmV0dXJuIG1fZmxvYXQtPm9wMV9vcDJfcmVsYXRpb24gKGFzX2EgPGlyYW5nZT4gKGxocykp OwogfQogCiAvLyBDYXN0IHRoZSByYW5nZSBpbiBSIHRvIFRZUEUuCmRpZmYgLS1naXQgYS9nY2Mv cmFuZ2Utb3AuaCBiL2djYy9yYW5nZS1vcC5oCmluZGV4IDM3ZDlhYTkxYzQ2Li41NmM1N2M0NmE4 ZSAxMDA2NDQKLS0tIGEvZ2NjL3JhbmdlLW9wLmgKKysrIGIvZ2NjL3JhbmdlLW9wLmgKQEAgLTE2 Miw3ICsxNjIsNyBAQCBjbGFzcyByYW5nZV9vcF9oYW5kbGVyCiBwdWJsaWM6CiAgIHJhbmdlX29w X2hhbmRsZXIgKGVudW0gdHJlZV9jb2RlIGNvZGUsIHRyZWUgdHlwZSk7CiAgIHJhbmdlX29wX2hh bmRsZXIgKGNvbnN0IGdpbXBsZSAqcyk7Ci0gIG9wZXJhdG9yIGJvb2wgKCkgY29uc3Q7CisgIGlu bGluZSBvcGVyYXRvciBib29sICgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsaWQ7IH0KIAogICBib29s IGZvbGRfcmFuZ2UgKHZyYW5nZSAmciwgdHJlZSB0eXBlLAogCQkgICBjb25zdCB2cmFuZ2UgJmxo LApAQCAtMTg2LDggKzE4NiwxMCBAQCBwdWJsaWM6CiAJCQkJICByZWxhdGlvbl9raW5kID0gVlJF TF9WQVJZSU5HKSBjb25zdDsKICAgcmVsYXRpb25fa2luZCBvcDFfb3AyX3JlbGF0aW9uIChjb25z dCB2cmFuZ2UgJmxocykgY29uc3Q7CiBwcml2YXRlOgotICBlbnVtIHRyZWVfY29kZSBtX2NvZGU7 Ci0gIHRyZWUgbV90eXBlOworICB2b2lkIHNldF9vcF9oYW5kbGVyIChlbnVtIHRyZWVfY29kZSBj b2RlLCB0cmVlIHR5cGUpOworICBib29sIG1fdmFsaWQ7CisgIHJhbmdlX29wZXJhdG9yICptX2lu dDsKKyAgcmFuZ2Vfb3BlcmF0b3JfZmxvYXQgKm1fZmxvYXQ7CiB9OwogCiBleHRlcm4gYm9vbCBy YW5nZV9jYXN0ICh2cmFuZ2UgJiwgdHJlZSB0eXBlKTsKLS0gCjIuMzcuMwoK --------------kMEW7lBuNaGoAxzgdgFHktWt--