From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by sourceware.org (Postfix) with ESMTPS id 42CD23857357 for ; Tue, 15 Aug 2023 13:42:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 42CD23857357 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lj1-x241.google.com with SMTP id 38308e7fff4ca-2b95d5ee18dso81149761fa.1 for ; Tue, 15 Aug 2023 06:42:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692106929; x=1692711729; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=KVtktNVRekSSK2OboMRzLm39v73h6VTWgQ1jwJhdg6c=; b=H0GhdezZ/v5OstK2s0rAbCpDN1n3U8HGtRa5zYsEZxchmgT36Vb31MQOJKnDkkBg0f m2jNhq8SYaJjuXj3H5sFuEljDcHqHTfSylDiiMdTgiXBBuuf1GwmaX82EZOGQqKNfTEq M1Z5DJg1zwMta9Si/3elpAmtlFTvAnrUN1Ob1VFCSKDdWfkwI6DETkYp3rKfo7ZZ9SMn 7gJO0rZbNg0GAuGwYHjkDFuYg9wTUMwX61xpHBUZMZ2a+BX3lAlV3BqBuxFoh5nEgMgJ WUBd3QE6T2B49PUJpUZaR3uOUDU1oNpw6VqE3Uj+hcoSRpXiAAk538kao+6GjL1AUtvk vmSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692106929; x=1692711729; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=KVtktNVRekSSK2OboMRzLm39v73h6VTWgQ1jwJhdg6c=; b=hS5eoXgWhXZS8ETYW4bliq4JWK3vgM61u0/6mTiV6BRRf55uFxAfhkCFL9U3axAxYx eJDuTb3hMClWMQamK18K18l6uIpTm196/kix7WEC8wC/jjYXkdUYwlmAUnLNuaTeqV48 Xm/4gcporsmSwWH95YDNjPWfZmIlUqZCh6Ded5Dcqibq4pfzTJPvQwPv7IIJQ6bracjo tmGBwoXaLyHGbNLdr0AMdoKbLXVHg0z19G2jPYA09hmbtTvhvDlfpJaprWqReN4VhF+B suJok0PB2BSHLutyjfLcP0UPmN47DLRKjJy2/dU/EpqSmPL51QaMR4Wr0MGw+qhMHvbK S4ww== X-Gm-Message-State: AOJu0YxTz9U+NbLrRz7GAsZ9bRsZe0Nxc9ajIzqGc68vTg00L2ulfIU4 DhzqqL6m55/YDTwmXzUSUfxJtCe8UMLnveX4WpU5Ut3V3h0q/qH+ X-Google-Smtp-Source: AGHT+IEA1omnvIv/sH+ht3nj8MTV7gEoWpj6McyIauqPnrk8KgJMcYq4FAupUhUpm/vM+3IT5mdS98bfbc1oUY6PpL0= X-Received: by 2002:a2e:3518:0:b0:2b6:cca1:9760 with SMTP id z24-20020a2e3518000000b002b6cca19760mr9036225ljz.27.1692106929308; Tue, 15 Aug 2023 06:42:09 -0700 (PDT) MIME-Version: 1.0 From: Javier Martinez Date: Tue, 15 Aug 2023 15:41:58 +0200 Message-ID: Subject: [PATCH v4] c++: extend cold, hot attributes to classes To: gcc-patches@gcc.gnu.org Cc: jason@redhat.com Content-Type: multipart/mixed; boundary="00000000000071a17f0602f658c2" X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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: --00000000000071a17f0602f658c2 Content-Type: multipart/alternative; boundary="00000000000071a17d0602f658c0" --00000000000071a17d0602f658c0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Aug 14, 2023 at 8:32=E2=80=AFPM Jason Merrill wr= ote: > I think you also want to check for ATTR_FLAG_TYPE_IN_PLACE. > [...] > > + propagate_class_warmth_attribute (t); > Maybe call this in check_bases_and_members instead? Yes, that is sensible. Done. Thanks, Javier Signed-off-by: Javier Martinez --00000000000071a17d0602f658c0-- --00000000000071a17f0602f658c2 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-extend-cold-hot-attributes-to-classes.patch" Content-Disposition: attachment; filename="0001-extend-cold-hot-attributes-to-classes.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_llccriwd0 U2lnbmVkLW9mZi1ieTogSmF2aWVyIE1hcnRpbmV6IDxqYXZpZXIubWFydGlu ZXouYnVnemlsbGFAZ21haWwuY29tPgoKZ2NjL2MtZmFtaWx5L0NoYW5nZUxv ZzoKCiAgICAgICAgKiBjLWF0dHJpYnMuY2MgKGhhbmRsZV9ob3RfYXR0cmli dXRlKTogcmVtb3ZlIHdhcm5pbmcgb24gUkVDT1JEX1RZUEUKICAgICAgICBh bmQgVU5JT05fVFlQRSB3aGVuIGluIGNfZGlhbGVjdF94eC4KICAgICAgICAo aGFuZGxlX2NvbGRfYXR0cmlidXRlKTogTGlrZXdpc2UuCgpnY2MvY3AvQ2hh bmdlTG9nOgoKICAgICAgICAqIGNsYXNzLmNjIChwcm9wYWdhdGVfY2xhc3Nf d2FybXRoX2F0dHJpYnV0ZSk6IE5ldyBmdW5jdGlvbi4KICAgICAgICAoY2hl Y2tfYmFzZXNfYW5kX21lbWJlcnMpOiBwcm9wYWdhdGUgaG90IGFuZCBjb2xk IGF0dHJpYnV0ZXMKICAgICAgICB0byBhbGwgRlVOQ1RJT05fREVDTCB3aGVu IHRoZSByZWNvcmQgaXMgbWFya2VkIGhvdCBvciBjb2xkLgogICAgICAgICog Y3AtdHJlZS5oIChtYXliZV9wcm9wYWdhdGVfd2FybXRoX2F0dHJpYnV0ZXMp OiBOZXcgZnVuY3Rpb24uCiAgICAgICAgKiBkZWNsMi5jYyAobWF5YmVfcHJv cGFnYXRlX3dhcm10aF9hdHRyaWJ1dGVzKTogTmV3IGZ1bmN0aW9uLgogICAg ICAgICogbWV0aG9kLmNjIChsYXppbHlfZGVjbGFyZV9mbik6IHByb3BhZ2F0 ZSBob3QgYW5kIGNvbGQKICAgICAgICBhdHRyaWJ1dGVzIHRvIGxhemlseSBk ZWNsYXJlZCBmdW5jdGlvbnMgd2hlbiB0aGUgcmVjb3JkIGlzCiAgICAgICAg bWFya2VkIGhvdCBvciBjb2xkLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 CgogICAgICAgICogZysrLmRnL2V4dC9hdHRyLWhvdG5lc3MuQzogTmV3IHRl c3QuCi0tLQogZ2NjL2MtZmFtaWx5L2MtYXR0cmlicy5jYyAgICAgICAgICAg ICAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysrLQogZ2NjL2NwL2Ns YXNzLmNjICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzEgKysrKysrKysr KysrKysrCiBnY2MvY3AvY3AtdHJlZS5oICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMSArCiBnY2MvY3AvZGVjbDIuY2MgICAgICAgICAgICAgICAgICAg ICAgICAgfCAzNyArKysrKysrKysrKysrKysrKysKIGdjYy9jcC9tZXRob2Qu Y2MgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKwogZ2NjL3Rlc3Rz dWl0ZS9nKysuZGcvZXh0L2F0dHItaG90bmVzcy5DIHwgMTYgKysrKysrKysK IDYgZmlsZXMgY2hhbmdlZCwgMTM5IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvZXh0L2F0dHItaG90bmVzcy5DCgpkaWZmIC0tZ2l0IGEvZ2NjL2MtZmFt aWx5L2MtYXR0cmlicy5jYyBiL2djYy9jLWZhbWlseS9jLWF0dHJpYnMuY2MK aW5kZXggZTI3OTJjYTY4OTguLjI1MDgzZDU5N2MwIDEwMDY0NAotLS0gYS9n Y2MvYy1mYW1pbHkvYy1hdHRyaWJzLmNjCisrKyBiL2djYy9jLWZhbWlseS9j LWF0dHJpYnMuY2MKQEAgLTQ1MiwxMCArNDUyLDEwIEBAIGNvbnN0IHN0cnVj dCBhdHRyaWJ1dGVfc3BlYyBjX2NvbW1vbl9hdHRyaWJ1dGVfdGFibGVbXSA9 CiAgIHsgImFsbG9jX3NpemUiLAkgICAgICAxLCAyLCBmYWxzZSwgdHJ1ZSwg dHJ1ZSwgZmFsc2UsCiAJCQkgICAgICBoYW5kbGVfYWxsb2Nfc2l6ZV9hdHRy aWJ1dGUsCiAJICAgICAgICAgICAgICAgICAgICAgIGF0dHJfYWxsb2NfZXhj bHVzaW9ucyB9LAotICB7ICJjb2xkIiwgICAgICAgICAgICAgICAgICAgMCwg MCwgdHJ1ZSwgIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgIHsgImNvbGQiLAkJ ICAgICAgMCwgMCwgZmFsc2UsICBmYWxzZSwgZmFsc2UsIGZhbHNlLAogCQkJ ICAgICAgaGFuZGxlX2NvbGRfYXR0cmlidXRlLAogCSAgICAgICAgICAgICAg ICAgICAgICBhdHRyX2NvbGRfaG90X2V4Y2x1c2lvbnMgfSwKLSAgeyAiaG90 IiwgICAgICAgICAgICAgICAgICAgIDAsIDAsIHRydWUsICBmYWxzZSwgZmFs c2UsIGZhbHNlLAorICB7ICJob3QiLAkJICAgICAgMCwgMCwgZmFsc2UsICBm YWxzZSwgZmFsc2UsIGZhbHNlLAogCQkJICAgICAgaGFuZGxlX2hvdF9hdHRy aWJ1dGUsCiAJICAgICAgICAgICAgICAgICAgICAgIGF0dHJfY29sZF9ob3Rf ZXhjbHVzaW9ucyB9LAogICB7ICJub19hZGRyZXNzX3NhZmV0eV9hbmFseXNp cyIsCkBAIC0xMTEwLDYgKzExMTAsMjkgQEAgaGFuZGxlX2hvdF9hdHRyaWJ1 dGUgKHRyZWUgKm5vZGUsIHRyZWUgbmFtZSwgdHJlZSBBUkdfVU5VU0VEIChh cmdzKSwKICAgICB7CiAgICAgICAvKiBBdHRyaWJ1dGUgaG90IHByb2Nlc3Np bmcgaXMgZG9uZSBsYXRlciB3aXRoIGxvb2t1cF9hdHRyaWJ1dGUuICAqLwog ICAgIH0KKyAgZWxzZSBpZiAoKFRSRUVfQ09ERSAoKm5vZGUpID09IFJFQ09S RF9UWVBFCisJICAgIHx8IFRSRUVfQ09ERSAoKm5vZGUpID09IFVOSU9OX1RZ UEUpCisJICAgJiYgY19kaWFsZWN0X2N4eCAoKQorCSAgICYmIChmbGFncyAm IChpbnQpIEFUVFJfRkxBR19UWVBFX0lOX1BMQUNFKSkKKyAgICB7CisgICAg ICAvKiBDaGVjayBjb25mbGljdCBoZXJlIGFzIGRlY2xfYXR0cmlidXRlcyB3 aWxsIG90aGVyd2lzZSBvbmx5IGNhdGNoCisJIGl0IGxhdGUgYXQgdGhlIGZ1 bmN0aW9uIHdoZW4gdGhlIGF0dHJpYnV0ZSBpcyB1c2VkIG9uIGEgY2xhc3Mu ICAqLworICAgICAgdHJlZSBjb2xkX2F0dHIgPSBsb29rdXBfYXR0cmlidXRl ICgiY29sZCIsIFRZUEVfQVRUUklCVVRFUyAoKm5vZGUpKTsKKyAgICAgIGlm IChjb2xkX2F0dHIpCisJeworCSAgd2FybmluZyAoT1BUX1dhdHRyaWJ1dGVz LCAiaWdub3JpbmcgYXR0cmlidXRlICVxRSBiZWNhdXNlIGl0ICIKKwkJCSJj b25mbGljdHMgd2l0aCBhdHRyaWJ1dGUgJXFzIiwgbmFtZSwgImNvbGQiKTsK KwkgICpub19hZGRfYXR0cnMgPSB0cnVlOworCX0KKyAgICB9CisgIGVsc2Ug aWYgKGZsYWdzICYgKChpbnQpIEFUVFJfRkxBR19GVU5DVElPTl9ORVhUCisJ CSAgICB8IChpbnQpIEFUVFJfRkxBR19ERUNMX05FWFQpKQorICAgIHsKKwkv KiBBdm9pZCBhcHBseWluZyB0aGUgYXR0cmlidXRlIHRvIGEgZnVuY3Rpb24g cmV0dXJuIHR5cGUgd2hlbgorCSAgIHVzZWQgYXM6ICB2b2lkIF9fYXR0cmli dXRlICgoaG90KSkgZm9vICh2b2lkKS4gIEl0IHdpbGwgYmUKKwkgICBwYXNz ZWQgdG8gdGhlIGZ1bmN0aW9uLiAgKi8KKwkqbm9fYWRkX2F0dHJzID0gdHJ1 ZTsKKyAgICB9CiAgIGVsc2UKICAgICB7CiAgICAgICB3YXJuaW5nIChPUFRf V2F0dHJpYnV0ZXMsICIlcUUgYXR0cmlidXRlIGlnbm9yZWQiLCBuYW1lKTsK QEAgLTExMzEsNiArMTE1NCwyOSBAQCBoYW5kbGVfY29sZF9hdHRyaWJ1dGUg KHRyZWUgKm5vZGUsIHRyZWUgbmFtZSwgdHJlZSBBUkdfVU5VU0VEIChhcmdz KSwKICAgICB7CiAgICAgICAvKiBBdHRyaWJ1dGUgY29sZCBwcm9jZXNzaW5n IGlzIGRvbmUgbGF0ZXIgd2l0aCBsb29rdXBfYXR0cmlidXRlLiAgKi8KICAg ICB9CisgIGVsc2UgaWYgKChUUkVFX0NPREUgKCpub2RlKSA9PSBSRUNPUkRf VFlQRQorCSAgICB8fCBUUkVFX0NPREUgKCpub2RlKSA9PSBVTklPTl9UWVBF KQorCSAgICYmIGNfZGlhbGVjdF9jeHggKCkKKwkgICAmJiAoZmxhZ3MgJiAo aW50KSBBVFRSX0ZMQUdfVFlQRV9JTl9QTEFDRSkpCisgICAgeworICAgICAg LyogQ2hlY2sgY29uZmxpY3QgaGVyZSBhcyBkZWNsX2F0dHJpYnV0ZXMgd2ls bCBvdGhlcndpc2Ugb25seSBjYXRjaAorCSBpdCBsYXRlIGF0IHRoZSBmdW5j dGlvbiB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgdXNlZCBvbiBhIGNsYXNzLiAg Ki8KKyAgICAgIHRyZWUgaG90X2F0dHIgPSBsb29rdXBfYXR0cmlidXRlICgi aG90IiwgVFlQRV9BVFRSSUJVVEVTICgqbm9kZSkpOworICAgICAgaWYgKGhv dF9hdHRyKQorCXsKKwkgIHdhcm5pbmcgKE9QVF9XYXR0cmlidXRlcywgImln bm9yaW5nIGF0dHJpYnV0ZSAlcUUgYmVjYXVzZSBpdCAiCisJCQkiY29uZmxp Y3RzIHdpdGggYXR0cmlidXRlICVxcyIsIG5hbWUsICJob3QiKTsKKwkgICpu b19hZGRfYXR0cnMgPSB0cnVlOworCX0KKyAgICB9CisgIGVsc2UgaWYgKGZs YWdzICYgKChpbnQpIEFUVFJfRkxBR19GVU5DVElPTl9ORVhUCisJCSAgICB8 IChpbnQpIEFUVFJfRkxBR19ERUNMX05FWFQpKQorICAgIHsKKwkvKiBBdm9p ZCBhcHBseWluZyB0aGUgYXR0cmlidXRlIHRvIGEgZnVuY3Rpb24gcmV0dXJu IHR5cGUgd2hlbgorCSAgIHVzZWQgYXM6ICB2b2lkIF9fYXR0cmlidXRlICgo Y29sZCkpIGZvbyAodm9pZCkuICBJdCB3aWxsIGJlCisJICAgcGFzc2VkIHRv IHRoZSBmdW5jdGlvbi4gICovCisJKm5vX2FkZF9hdHRycyA9IHRydWU7Cisg ICAgfQogICBlbHNlCiAgICAgewogICAgICAgd2FybmluZyAoT1BUX1dhdHRy aWJ1dGVzLCAiJXFFIGF0dHJpYnV0ZSBpZ25vcmVkIiwgbmFtZSk7CmRpZmYg LS1naXQgYS9nY2MvY3AvY2xhc3MuY2MgYi9nY2MvY3AvY2xhc3MuY2MKaW5k ZXggNzc4NzU5MjM3ZGMuLmJmMGI1NTg5NjdmIDEwMDY0NAotLS0gYS9nY2Mv Y3AvY2xhc3MuY2MKKysrIGIvZ2NjL2NwL2NsYXNzLmNjCkBAIC0yMDUsNiAr MjA1LDcgQEAgc3RhdGljIHRyZWUgZ2V0X3ZjYWxsX2luZGV4ICh0cmVlLCB0 cmVlKTsKIHN0YXRpYyBib29sIHR5cGVfbWF5YmVfY29uc3RleHByX2RlZmF1 bHRfY29uc3RydWN0b3IgKHRyZWUpOwogc3RhdGljIGJvb2wgdHlwZV9tYXli ZV9jb25zdGV4cHJfZGVzdHJ1Y3RvciAodHJlZSk7CiBzdGF0aWMgYm9vbCBm aWVsZF9wb3ZlcmxhcHBpbmdfcCAodHJlZSk7CitzdGF0aWMgdm9pZCBwcm9w YWdhdGVfY2xhc3Nfd2FybXRoX2F0dHJpYnV0ZSAodHJlZSk7CiAKIC8qIFNl dCBDVVJSRU5UX0FDQ0VTU19TUEVDSUZJRVIgYmFzZWQgb24gdGhlIHByb3Rl Y3Rpb24gb2YgREVDTC4gICovCiAKQEAgLTYyNTMsNiArNjI1NCwxMiBAQCBj aGVja19iYXNlc19hbmRfbWVtYmVycyAodHJlZSB0KQogICAgICBhbGxvY2F0 aW5nIGFuIGFycmF5IG9mIHRoaXMgdHlwZS4gICovCiAgIExBTkdfVFlQRV9D TEFTU19DSEVDSyAodCktPnZlY19uZXdfdXNlc19jb29raWUKICAgICA9IHR5 cGVfcmVxdWlyZXNfYXJyYXlfY29va2llICh0KTsKKworICAvKiBDbGFzc2Vz IG1hcmtlZCBob3Qgb3IgY29sZCBwcm9wYWdhdGUgdGhlIGF0dHJpYnV0ZSB0 byBhbGwgbWVtYmVycy4gIFdlCisgICAgIG1heSBkbyB0aGlzIG5vdyB0aGF0 IG1ldGhvZHMgYXJlIGRlY2xhcmVkLiAgVGhpcyBkb2VzIG1pc3Mgc29tZSBs YXppbHkKKyAgICAgZGVjbGFyZWQgc3BlY2lhbCBtZW1iZXIgZnVuY3Rpb25z IChDTEFTU1RZUEVfTEFaWV8qKSwgd2hpY2ggYXJlIGhhbmRsZWQKKyAgICAg aW4gbGF6aWx5X2RlY2xhcmVfZm4gbGF0ZXIgb24uICAqLworICBwcm9wYWdh dGVfY2xhc3Nfd2FybXRoX2F0dHJpYnV0ZSAodCk7CiB9CiAKIC8qIElmIFQg bmVlZHMgYSBwb2ludGVyIHRvIGl0cyB2aXJ0dWFsIGZ1bmN0aW9uIHRhYmxl LCBzZXQgVFlQRV9WRklFTEQKQEAgLTc3MzMsNiArNzc0MCwzMCBAQCB1bnJl dmVyc2VfbWVtYmVyX2RlY2xhcmF0aW9ucyAodHJlZSB0KQogICAgIH0KIH0K IAorLyogQ2xhc3Nlcywgc3RydWN0cyBvciB1bmlvbnMgVCBtYXJrZWQgd2l0 aCBob3RuZXNzIGF0dHJpYnV0ZXMgcHJvcGFnYXRlCisgICB0aGUgYXR0cmli dXRlIHRvIGFsbCBtZXRob2RzLiAgKi8KKwordm9pZAorcHJvcGFnYXRlX2Ns YXNzX3dhcm10aF9hdHRyaWJ1dGUgKHRyZWUgdCkKK3sKKworICBpZiAodCA9 PSBOVUxMX1RSRUUKKyAgICAgIHx8ICEoVFJFRV9DT0RFICh0KSA9PSBSRUNP UkRfVFlQRQorCSAgIHx8IFRSRUVfQ09ERSAodCkgPT0gVU5JT05fVFlQRSkp CisgICAgcmV0dXJuOworCisgIHRyZWUgY2xhc3NfaGFzX2NvbGRfYXR0ciA9 IGxvb2t1cF9hdHRyaWJ1dGUgKCJjb2xkIiwKKyAgIAkJCQlUWVBFX0FUVFJJ QlVURVMgKHQpKTsKKyAgdHJlZSBjbGFzc19oYXNfaG90X2F0dHIgPSBsb29r dXBfYXR0cmlidXRlICgiaG90IiwKKyAgIAkJCQlUWVBFX0FUVFJJQlVURVMg KHQpKTsKKworICBpZiAoY2xhc3NfaGFzX2NvbGRfYXR0ciB8fCBjbGFzc19o YXNfaG90X2F0dHIpCisgICAgZm9yICh0cmVlIGYgPSBUWVBFX0ZJRUxEUyAo dCk7IGY7IGYgPSBERUNMX0NIQUlOIChmKSkKKyAgICAgIGlmIChUUkVFX0NP REUgKGYpID09IEZVTkNUSU9OX0RFQ0wpCisJbWF5YmVfcHJvcGFnYXRlX3dh cm10aF9hdHRyaWJ1dGVzIChmLCB0KTsKKworfQorCiB0cmVlCiBmaW5pc2hf c3RydWN0ICh0cmVlIHQsIHRyZWUgYXR0cmlidXRlcykKIHsKZGlmZiAtLWdp dCBhL2djYy9jcC9jcC10cmVlLmggYi9nY2MvY3AvY3AtdHJlZS5oCmluZGV4 IGQwNTFlZTg1ZjcwLi40OTMxYTQ1NjA3ZSAxMDA2NDQKLS0tIGEvZ2NjL2Nw L2NwLXRyZWUuaAorKysgYi9nY2MvY3AvY3AtdHJlZS5oCkBAIC03MDMzLDYg KzcwMzMsNyBAQCBleHRlcm4gaW50IHBhcm1faW5kZXggICAgICAgICAgICAg ICAgICAgICAgICAgICAodHJlZSk7CiBleHRlcm4gdHJlZSB2dHZfc3RhcnRf dmVyaWZpY2F0aW9uX2NvbnN0cnVjdG9yX2luaXRfZnVuY3Rpb24gKHZvaWQp OwogZXh0ZXJuIHRyZWUgdnR2X2ZpbmlzaF92ZXJpZmljYXRpb25fY29uc3Ry dWN0b3JfaW5pdF9mdW5jdGlvbiAodHJlZSk7CiBleHRlcm4gdm9pZCBjcF9j aGVja19jb25zdF9hdHRyaWJ1dGVzICh0cmVlKTsKK2V4dGVybiB2b2lkIG1h eWJlX3Byb3BhZ2F0ZV93YXJtdGhfYXR0cmlidXRlcyAodHJlZSwgdHJlZSk7 CiAKIC8qIGluIGVycm9yLmNjICovCiBleHRlcm4gY29uc3QgY2hhciAqdHlw ZV9hc19zdHJpbmcJCSh0cmVlLCBpbnQpOwpkaWZmIC0tZ2l0IGEvZ2NjL2Nw L2RlY2wyLmNjIGIvZ2NjL2NwL2RlY2wyLmNjCmluZGV4IGI0MDJiZWZiYTZk Li5iN2M0M2UxMGE5ZCAxMDA2NDQKLS0tIGEvZ2NjL2NwL2RlY2wyLmNjCisr KyBiL2djYy9jcC9kZWNsMi5jYwpAQCAtMTYwNCw2ICsxNjA0LDQzIEBAIGNw X2NoZWNrX2NvbnN0X2F0dHJpYnV0ZXMgKHRyZWUgYXR0cmlidXRlcykKICAg ICB9CiB9CiAKKy8qIENvcGllcyBob3Qgb3IgY29sZCBhdHRyaWJ1dGVzIHRv IGEgZnVuY3Rpb24gRk4gaWYgcHJlc2VudCBvbiB0aGUKKyAgIGVuY2Fwc3Vs YXRpbmcgY2xhc3MsIHN0cnVjdCwgb3IgdW5pb24gVFlQRS4gICovCisKK3Zv aWQKK21heWJlX3Byb3BhZ2F0ZV93YXJtdGhfYXR0cmlidXRlcyAodHJlZSBm biwgdHJlZSB0eXBlKQoreworICBpZiAoZm4gPT0gTlVMTF9UUkVFIHx8IHR5 cGUgPT0gTlVMTF9UUkVFCisgICAgICB8fCAhKFRSRUVfQ09ERSAodHlwZSkg PT0gUkVDT1JEX1RZUEUKKwkgICB8fCBUUkVFX0NPREUgKHR5cGUpID09IFVO SU9OX1RZUEUpKQorICAgIHJldHVybjsKKworICB0cmVlIGhhc19jb2xkX2F0 dHIgPSBsb29rdXBfYXR0cmlidXRlICgiY29sZCIsIFRZUEVfQVRUUklCVVRF UyAodHlwZSkpOworICB0cmVlIGhhc19ob3RfYXR0ciA9IGxvb2t1cF9hdHRy aWJ1dGUgKCJob3QiLCBUWVBFX0FUVFJJQlVURVMgKHR5cGUpKTsKKworICBp ZiAoaGFzX2NvbGRfYXR0ciB8fCBoYXNfaG90X2F0dHIpCisgICAgeworCisg ICAgICAvKiBUcmFuc3BhcmVudGx5IGlnbm9yZSB0aGUgbmV3IHdhcm10aCBh dHRyaWJ1dGUgaWYgaXQKKwkgY29uZmxpY3RzIHdpdGggYSBwcmVzZW50IGZ1 bmN0aW9uIGF0dHJpYnV0ZS4gIE90aGVyd2lzZQorCSBkZWNsX2F0dHJpYnV0 ZSB3b3VsZCBzdGlsbCBob25vdXIgdGhlIHByZXNlbnQgYXR0cmlidXRlLAor CSBidXQgcHJvZHVjaW5nIGFuIHVuZGVzaXJlZCB3YXJuaW5nIGluIHRoZSBw cm9jZXNzLiAgKi8KKworICAgICAgaWYgKGhhc19jb2xkX2F0dHIpCisJewor CSAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKCJob3QiLCBERUNMX0FUVFJJQlVU RVMgKGZuKSkgPT0gTlVMTCkKKwkgICAgZGVjbF9hdHRyaWJ1dGVzICgmZm4s CisJCXRyZWVfY29ucyAoZ2V0X2lkZW50aWZpZXIgKCJjb2xkIiksIE5VTEws IE5VTEwpLCAwKTsKKwl9CisgICAgICBlbHNlIGlmIChoYXNfaG90X2F0dHIp CisJeworCSAgaWYgKGxvb2t1cF9hdHRyaWJ1dGUgKCJjb2xkIiwgREVDTF9B VFRSSUJVVEVTIChmbikpID09IE5VTEwpCisJICAgIGRlY2xfYXR0cmlidXRl cyAoJmZuLAorCQl0cmVlX2NvbnMgKGdldF9pZGVudGlmaWVyICgiaG90Iiks IE5VTEwsIE5VTEwpLCAwKTsKKwl9CisgICAgfQorfQorCiAvKiBSZXR1cm4g dGhlIGxhc3QgcHVzaGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgc3ltYm9sIERF Q0wgb3IgTlVMTAogICAgd2hlbiBubyBzdWNoIGRlY2xhcmF0aW9uIGV4aXN0 cy4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9jcC9tZXRob2QuY2MgYi9nY2Mv Y3AvbWV0aG9kLmNjCmluZGV4IDRiYTAwMTc1MDQ4Li5hNzBkZDVkNmFkYyAx MDA2NDQKLS0tIGEvZ2NjL2NwL21ldGhvZC5jYworKysgYi9nY2MvY3AvbWV0 aG9kLmNjCkBAIC0zNTkyLDYgKzM1OTIsMTIgQEAgbGF6aWx5X2RlY2xhcmVf Zm4gKHNwZWNpYWxfZnVuY3Rpb25fa2luZCBzZmssIHRyZWUgdHlwZSkKICAg ICAvKiBDcmVhdGUgYXBwcm9wcmlhdGUgY2xvbmVzLiAgKi8KICAgICBjbG9u ZV9jZHRvciAoZm4sIC8qdXBkYXRlX21ldGhvZHM9Ki90cnVlKTsKIAorICAv KiBDbGFzc2VzLCBzdHJ1Y3RzIG9yIHVuaW9ucyBUWVBFIG1hcmtlZCB3aXRo IGhvdG5lc3MgYXR0cmlidXRlcyBwcm9wYWdhdGUKKyAgICAgdGhlIGF0dHJp YnV0ZSB0byBhbGwgbWV0aG9kcy4gIFRoaXMgaXMgdHlwaWNhbGx5IGRvbmUg aW4KKyAgICAgY2hlY2tfYmFzZXNfYW5kX21lbWJlcnMsIGJ1dCB3ZSBtdXN0 IGFsc28gaW5qZWN0IHRoZW0gaGVyZSBmb3IgZGVmZXJyZWQKKyAgICAgbGF6 aWx5LWRlY2xhcmVkIGZ1bmN0aW9ucy4gICovCisgIG1heWJlX3Byb3BhZ2F0 ZV93YXJtdGhfYXR0cmlidXRlcyAoZm4sIHR5cGUpOworCiAgIHJldHVybiBm bjsKIH0KIApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0 L2F0dHItaG90bmVzcy5DIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L2F0 dHItaG90bmVzcy5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5mOWE2OTMwMzA0ZAotLS0gL2Rldi9udWxsCisrKyBiL2djYy90 ZXN0c3VpdGUvZysrLmRnL2V4dC9hdHRyLWhvdG5lc3MuQwpAQCAtMCwwICsx LDE2IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRp b25zICItTzAgLVdhdHRyaWJ1dGVzIC1mZHVtcC10cmVlLWdpbXBsZSIgfSAq LworCisKK3N0cnVjdCBfX2F0dHJpYnV0ZSgoY29sZCkpIEEgeyBfX2F0dHJp YnV0ZSgobm9pbmxpbmUsIHVzZWQpKSB2b2lkIGZvbyh2b2lkKSB7IH0gfTsK Kworc3RydWN0IF9fYXR0cmlidXRlKChob3QpKSBCIHsgX19hdHRyaWJ1dGUo KG5vaW5saW5lLCB1c2VkKSkgdm9pZCBmb28odm9pZCkgeyB9IH07CisKK3N0 cnVjdCBfX2F0dHJpYnV0ZSgoaG90LCBjb2xkKSkgQyB7IF9fYXR0cmlidXRl KChub2lubGluZSwgdXNlZCkpIHZvaWQgZm9vKHZvaWQpIHsgfSB9OyAvKiB7 IGRnLXdhcm5pbmcgImlnbm9yaW5nIGF0dHJpYnV0ZSAuY29sZC4gYmVjYXVz ZSBpdCBjb25mbGljdHMgd2l0aCBhdHRyaWJ1dGUgLmhvdC4iIH0gKi8KKwor c3RydWN0IF9fYXR0cmlidXRlKChjb2xkLCBob3QpKSBEIHsgX19hdHRyaWJ1 dGUoKG5vaW5saW5lLCB1c2VkKSkgdm9pZCBmb28odm9pZCkgeyB9IH07IC8q IHsgZGctd2FybmluZyAiaWdub3JpbmcgYXR0cmlidXRlIC5ob3QuIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggYXR0cmlidXRlIC5jb2xkLiIgfSAqLwor CisKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiY29s ZCIgMiAiZ2ltcGxlIiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLXRy ZWUtZHVtcC10aW1lcyAiaG90IiAyICJnaW1wbGUiIH0gfSAqLworCi0tIAoy LjM0LjEKCg== --00000000000071a17f0602f658c2--