From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yb1-xb35.google.com (mail-yb1-xb35.google.com [IPv6:2607:f8b0:4864:20::b35]) by sourceware.org (Postfix) with ESMTPS id 028053858413 for ; Mon, 23 Oct 2023 21:06:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 028053858413 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=golang.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=golang.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 028053858413 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::b35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698095187; cv=none; b=uHsNhUD6Favj4xFpQoxInu/lKi/lyeDlioy6oO8hp4TketrlyLBJpHUoeTz9Ck1HI1X03DS1PXE8UeVz4RL+UUWRNY+YwN5spi/t3B4+YFcnyVBiCFT2M5GaBYKoAf6re1oYTtwIftIhjp2UztJd6cxFnXUOqpayXhnJ7Uo9fDg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698095187; c=relaxed/simple; bh=8KaV/AM5+jd0mxFodIqqNeNj5uFdlBfT/x6sJzsyWNo=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=nzXCLqVPF98/0gGS10ybjXIti2ayERvyyi4l6lOqilqVSDxVb07rpLzrha8GFnKVh1kdTpQjjQLpyMIdKDUTnkaaOtAW/Elbp0Wl7N7tE3Ej/DRRjVPshawpo0yV+G3qlUqcZWvHQA6vrFIvYmE3xqK0VzAUeKdhBrlJeXs/fvY= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yb1-xb35.google.com with SMTP id 3f1490d57ef6-d9ac9573274so3492049276.0 for ; Mon, 23 Oct 2023 14:06:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golang-org.20230601.gappssmtp.com; s=20230601; t=1698095184; x=1698699984; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=zNcPKoUc8+KKP9xOFUESISLQ6cMH9rfb4kPJtUdXhy4=; b=h3TNR8c658xWT5k2xs/Dr+wk854DAZs/GSyF5vflQSroAX+v2gPuke+Jkcw8fhiCI8 HvJx/MHw0kAhhZa3inhFlUxzA6PgOF1Ph5FDHuZdhnOKPUz2u8trS3ljuiS7Sy0RDoza jQWGT14QgKM15HXi9KDA57VrC8GamzGPqXLOAw7oqqE9Z+9ZHxRQFp3guR9iRMhcJ/13 i51MvSRuhhtrIw+YHH50aINyI03hrSuNNWJ+f1A+9z7Bee6ychtrlMWk3SLAKMKo9AKL cBxdXnb1Wv2kZ8Lrkb3td0koAqK16b3D6SF+2QkXz317mFumqNj0aW4/JEvEEP4qOCdz /XlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698095184; x=1698699984; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zNcPKoUc8+KKP9xOFUESISLQ6cMH9rfb4kPJtUdXhy4=; b=X5ZGBOqIQkGg8zPlri8O/B9x3Ie9E3xawhg2O2iR5etoyVHyxwRLMBvpHz3VCQ5CVz w1DBypIIF9vAnlbSdkotm17jcjZDIojzzUJjR9h+17MoQVPicMbQmUXeshdnzcle+X0A A+aYAg95WO9rHcJYOL6u6/DS3AEvlAptVIGHR8WnBE1tWsdC4L3i0z5PhMibYZrZSeV4 xKowoqrX0HQHeOz87AA0YYh+LAP5RHnm//ulVA0oK/q3abLL7IvgcyUdIn9xn4ehhKpJ 3wuF7oPPRi89GDpGSmO7kl/Wk0AQrNuiD6FeQudV6DwZl47gZETzffheEyBnf6EjQClO fL5A== X-Gm-Message-State: AOJu0YwNOPQwReQWV/LRk0GSlKdyZIs9APvgOnVk2Se73kE3QaPLzyr6 iq2HiuzP0U+o3u71FdvXBmtTKVbw0U/ayV3QHD0zM/cWGjOuU9UUpRs= X-Google-Smtp-Source: AGHT+IHX8dLtMKI4S3naHazBnfw/d2ni36h2tW9neGhKklSsPwhbFb57qMuwRFSRnwWpqmEzlcLSkGtR7QeuErMC98M= X-Received: by 2002:a05:6902:1890:b0:d9a:d91f:3888 with SMTP id cj16-20020a056902189000b00d9ad91f3888mr12727545ybb.13.1698095183872; Mon, 23 Oct 2023 14:06:23 -0700 (PDT) MIME-Version: 1.0 From: Ian Lance Taylor Date: Mon, 23 Oct 2023 14:06:13 -0700 Message-ID: Subject: Go patch committed: Add Expression::is_untyped method To: gcc-patches , gofrontend-dev Content-Type: multipart/mixed; boundary="0000000000003b174a060868988b" X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,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: --0000000000003b174a060868988b Content-Type: text/plain; charset="UTF-8" This Go frontend patches adds an Expression::is_untyped method. This method is not currently used by anything, but it will be used by later changes in this series. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian --0000000000003b174a060868988b Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lo3e0le10 YWM1MGU5YjcyYmY5YmI2ZDViMjgwOTZiYjE2NGZiMDUwZGI2ZTI5MApkaWZmIC0tZ2l0IGEvZ2Nj L2dvL2dvZnJvbnRlbmQvTUVSR0UgYi9nY2MvZ28vZ29mcm9udGVuZC9NRVJHRQppbmRleCAwZjk2 MTE1N2RmZC4uZDQwOTU2MzdjZWEgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL01FUkdF CisrKyBiL2djYy9nby9nb2Zyb250ZW5kL01FUkdFCkBAIC0xLDQgKzEsNCBAQAotMDgxZWM5ODI0 YTc0ZWM5ZDgyNjI4ZDhkMmY2YjlhN2E0YzM1YTUyOQorMWMwYTdjOTMzODgwMWQxNWFmYmE3ZTM5 MTA5NTU0ZWQzNDA2NjU0ZQogCiBUaGUgZmlyc3QgbGluZSBvZiB0aGlzIGZpbGUgaG9sZHMgdGhl IGdpdCByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGxhc3QKIG1lcmdlIGRvbmUgZnJvbSB0aGUgZ29m cm9udGVuZCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQvZXhwcmVz c2lvbnMuY2MgYi9nY2MvZ28vZ29mcm9udGVuZC9leHByZXNzaW9ucy5jYwppbmRleCAyNzM4MzFm YWJmMy4uNWJlYTYyMzhkZWYgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Np b25zLmNjCisrKyBiL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Npb25zLmNjCkBAIC0yMDEsNiAr MjAxLDE5IEBAIEV4cHJlc3Npb246OnJlcG9ydF9lcnJvcihjb25zdCBjaGFyKiBtc2cpCiAgIHRo aXMtPnNldF9pc19lcnJvcigpOwogfQogCisvLyBBIGNvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBo YW5kbGluZyBhIHR5cGUgaW4gZG9faXNfdW50eXBlZC4gIElmCisvLyBUWVBFIGlzIG5vdCBhYnN0 cmFjdCwgcmV0dXJuIGZhbHNlLiAgT3RoZXJ3aXNlIHNldCAqUFRZUEUgdG8gVFlQRQorLy8gYW5k IHJldHVybiB0cnVlLgorCitib29sCitFeHByZXNzaW9uOjppc191bnR5cGVkX3R5cGUoVHlwZSog dHlwZSwgVHlwZSoqIHB0eXBlKQoreworICBpZiAoIXR5cGUtPmlzX2Fic3RyYWN0KCkpCisgICAg cmV0dXJuIGZhbHNlOworICAqcHR5cGUgPSB0eXBlOworICByZXR1cm4gdHJ1ZTsKK30KKwogLy8g U2V0IHR5cGVzIG9mIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzLiAgVGhpcyBpcyBpbXBsZW1lbnRl ZCBieSB0aGUKIC8vIGNoaWxkIGNsYXNzLgogCkBAIC04MjYsNiArODM5LDEwIEBAIGNsYXNzIEVy cm9yX2V4cHJlc3Npb24gOiBwdWJsaWMgRXhwcmVzc2lvbgogICBkb19pc19jb25zdGFudCgpIGNv bnN0CiAgIHsgcmV0dXJuIHRydWU7IH0KIAorICBib29sCisgIGRvX2lzX3VudHlwZWQoVHlwZSoq KSBjb25zdAorICB7IHJldHVybiBmYWxzZTsgfQorCiAgIGJvb2wKICAgZG9fbnVtZXJpY19jb25z dGFudF92YWx1ZShOdW1lcmljX2NvbnN0YW50KiBuYykgY29uc3QKICAgewpAQCAtMTk2NSw2ICsx OTgyLDkgQEAgY2xhc3MgQm9vbGVhbl9leHByZXNzaW9uIDogcHVibGljIEV4cHJlc3Npb24KICAg ZG9faXNfY29uc3RhbnQoKSBjb25zdAogICB7IHJldHVybiB0cnVlOyB9CiAKKyAgYm9vbAorICBk b19pc191bnR5cGVkKFR5cGUqKikgY29uc3Q7CisKICAgYm9vbAogICBkb19pc196ZXJvX3ZhbHVl KCkgY29uc3QKICAgeyByZXR1cm4gdGhpcy0+dmFsXyA9PSBmYWxzZTsgfQpAQCAtMjAyMyw2ICsy MDQzLDE1IEBAIEJvb2xlYW5fZXhwcmVzc2lvbjo6ZG9fdHJhdmVyc2UoVHJhdmVyc2UqIHRyYXZl cnNlKQogICByZXR1cm4gVFJBVkVSU0VfQ09OVElOVUU7CiB9CiAKK2Jvb2wKK0Jvb2xlYW5fZXhw cmVzc2lvbjo6ZG9faXNfdW50eXBlZChUeXBlKiogcHR5cGUpIGNvbnN0Cit7CisgIGlmICh0aGlz LT50eXBlXyAhPSBOVUxMKQorICAgIHJldHVybiBFeHByZXNzaW9uOjppc191bnR5cGVkX3R5cGUo dGhpcy0+dHlwZV8sIHB0eXBlKTsKKyAgKnB0eXBlID0gVHlwZTo6bWFrZV9ib29sZWFuX3R5cGUo KTsKKyAgcmV0dXJuIHRydWU7Cit9CisKIC8vIEdldCB0aGUgdHlwZS4KIAogVHlwZSoKQEAgLTIw OTYsNiArMjEyNSwxNSBAQCBTdHJpbmdfZXhwcmVzc2lvbjo6ZG9fdHJhdmVyc2UoVHJhdmVyc2Uq IHRyYXZlcnNlKQogICByZXR1cm4gVFJBVkVSU0VfQ09OVElOVUU7CiB9CiAKK2Jvb2wKK1N0cmlu Z19leHByZXNzaW9uOjpkb19pc191bnR5cGVkKFR5cGUqKiBwdHlwZSkgY29uc3QKK3sKKyAgaWYg KHRoaXMtPnR5cGVfICE9IE5VTEwpCisgICAgcmV0dXJuIEV4cHJlc3Npb246OmlzX3VudHlwZWRf dHlwZSh0aGlzLT50eXBlXywgcHR5cGUpOworICAqcHR5cGUgPSBUeXBlOjptYWtlX3N0cmluZ190 eXBlKCk7CisgIHJldHVybiB0cnVlOworfQorCiAvLyBHZXQgdGhlIHR5cGUuCiAKIFR5cGUqCkBA IC0yNDg1LDYgKzI1MjMsOSBAQCBjbGFzcyBJbnRlZ2VyX2V4cHJlc3Npb24gOiBwdWJsaWMgRXhw cmVzc2lvbgogICBkb19pc19jb25zdGFudCgpIGNvbnN0CiAgIHsgcmV0dXJuIHRydWU7IH0KIAor ICBib29sCisgIGRvX2lzX3VudHlwZWQoVHlwZSoqKSBjb25zdDsKKwogICBib29sCiAgIGRvX2lz X3plcm9fdmFsdWUoKSBjb25zdAogICB7IHJldHVybiBtcHpfc2duKHRoaXMtPnZhbF8pID09IDA7 IH0KQEAgLTI1NjgsNiArMjYwOSwxOCBAQCBJbnRlZ2VyX2V4cHJlc3Npb246OmRvX251bWVyaWNf Y29uc3RhbnRfdmFsdWUoTnVtZXJpY19jb25zdGFudCogbmMpIGNvbnN0CiAgIHJldHVybiB0cnVl OwogfQogCitib29sCitJbnRlZ2VyX2V4cHJlc3Npb246OmRvX2lzX3VudHlwZWQoVHlwZSoqIHB0 eXBlKSBjb25zdAoreworICBpZiAodGhpcy0+dHlwZV8gIT0gTlVMTCkKKyAgICByZXR1cm4gRXhw cmVzc2lvbjo6aXNfdW50eXBlZF90eXBlKHRoaXMtPnR5cGVfLCBwdHlwZSk7CisgIGlmICh0aGlz LT5pc19jaGFyYWN0ZXJfY29uc3RhbnRfKQorICAgICpwdHlwZSA9IFR5cGU6Om1ha2VfYWJzdHJh Y3RfY2hhcmFjdGVyX3R5cGUoKTsKKyAgZWxzZQorICAgICpwdHlwZSA9IFR5cGU6Om1ha2VfYWJz dHJhY3RfaW50ZWdlcl90eXBlKCk7CisgIHJldHVybiB0cnVlOworfQorCiAvLyBSZXR1cm4gdGhl IGN1cnJlbnQgdHlwZS4gIElmIHdlIGhhdmVuJ3Qgc2V0IHRoZSB0eXBlIHlldCwgd2UgcmV0dXJu CiAvLyBhbiBhYnN0cmFjdCBpbnRlZ2VyIHR5cGUuCiAKQEAgLTI5MTMsNiArMjk2Niw5IEBAIGNs YXNzIEZsb2F0X2V4cHJlc3Npb24gOiBwdWJsaWMgRXhwcmVzc2lvbgogICBkb19pc19jb25zdGFu dCgpIGNvbnN0CiAgIHsgcmV0dXJuIHRydWU7IH0KIAorICBib29sCisgIGRvX2lzX3VudHlwZWQo VHlwZSoqKSBjb25zdDsKKwogICBib29sCiAgIGRvX2lzX3plcm9fdmFsdWUoKSBjb25zdAogICB7 CkBAIC0yOTc5LDYgKzMwMzUsMTUgQEAgRmxvYXRfZXhwcmVzc2lvbjo6ZG9fdHJhdmVyc2UoVHJh dmVyc2UqIHRyYXZlcnNlKQogICByZXR1cm4gVFJBVkVSU0VfQ09OVElOVUU7CiB9CiAKK2Jvb2wK K0Zsb2F0X2V4cHJlc3Npb246OmRvX2lzX3VudHlwZWQoVHlwZSoqIHB0eXBlKSBjb25zdAorewor ICBpZiAodGhpcy0+dHlwZV8gIT0gTlVMTCkKKyAgICByZXR1cm4gRXhwcmVzc2lvbjo6aXNfdW50 eXBlZF90eXBlKHRoaXMtPnR5cGVfLCBwdHlwZSk7CisgICpwdHlwZSA9IFR5cGU6Om1ha2VfYWJz dHJhY3RfZmxvYXRfdHlwZSgpOworICByZXR1cm4gdHJ1ZTsKK30KKwogLy8gUmV0dXJuIHRoZSBj dXJyZW50IHR5cGUuICBJZiB3ZSBoYXZlbid0IHNldCB0aGUgdHlwZSB5ZXQsIHdlIHJldHVybgog Ly8gYW4gYWJzdHJhY3QgZmxvYXQgdHlwZS4KIApAQCAtMzEzNSw2ICszMjAwLDkgQEAgY2xhc3Mg Q29tcGxleF9leHByZXNzaW9uIDogcHVibGljIEV4cHJlc3Npb24KICAgZG9faXNfY29uc3RhbnQo KSBjb25zdAogICB7IHJldHVybiB0cnVlOyB9CiAKKyAgYm9vbAorICBkb19pc191bnR5cGVkKFR5 cGUqKikgY29uc3Q7CisKICAgYm9vbAogICBkb19pc196ZXJvX3ZhbHVlKCkgY29uc3QKICAgewpA QCAtMzIwNSw2ICszMjczLDE1IEBAIENvbXBsZXhfZXhwcmVzc2lvbjo6ZG9fdHJhdmVyc2UoVHJh dmVyc2UqIHRyYXZlcnNlKQogICByZXR1cm4gVFJBVkVSU0VfQ09OVElOVUU7CiB9CiAKK2Jvb2wK K0NvbXBsZXhfZXhwcmVzc2lvbjo6ZG9faXNfdW50eXBlZChUeXBlKiogcHR5cGUpIGNvbnN0Cit7 CisgIGlmICh0aGlzLT50eXBlXyAhPSBOVUxMKQorICAgIHJldHVybiBFeHByZXNzaW9uOjppc191 bnR5cGVkX3R5cGUodGhpcy0+dHlwZV8sIHB0eXBlKTsKKyAgKnB0eXBlID0gVHlwZTo6bWFrZV9h YnN0cmFjdF9jb21wbGV4X3R5cGUoKTsKKyAgcmV0dXJuIHRydWU7Cit9CisKIC8vIFJldHVybiB0 aGUgY3VycmVudCB0eXBlLiAgSWYgd2UgaGF2ZW4ndCBzZXQgdGhlIHR5cGUgeWV0LCB3ZSByZXR1 cm4KIC8vIGFuIGFic3RyYWN0IGNvbXBsZXggdHlwZS4KIApAQCAtMzQ1OCw2ICszNTM1LDIxIEBA IENvbnN0X2V4cHJlc3Npb246OmRvX2Jvb2xlYW5fY29uc3RhbnRfdmFsdWUoYm9vbCogdmFsKSBj b25zdAogICByZXR1cm4gb2s7CiB9CiAKKy8vIFdoZXRoZXIgdGhpcyBpcyB1bnR5cGVkLgorCiti b29sCitDb25zdF9leHByZXNzaW9uOjpkb19pc191bnR5cGVkKFR5cGUqKiBwdHlwZSkgY29uc3QK K3sKKyAgaWYgKHRoaXMtPnR5cGVfICE9IE5VTEwpCisgICAgcmV0dXJuIEV4cHJlc3Npb246Omlz X3VudHlwZWRfdHlwZSh0aGlzLT50eXBlXywgcHR5cGUpOworCisgIE5hbWVkX2NvbnN0YW50KiBu YyA9IHRoaXMtPmNvbnN0YW50Xy0+Y29uc3RfdmFsdWUoKTsKKyAgaWYgKG5jLT50eXBlKCkgIT0g TlVMTCkKKyAgICByZXR1cm4gRXhwcmVzc2lvbjo6aXNfdW50eXBlZF90eXBlKG5jLT50eXBlKCks IHB0eXBlKTsKKworICByZXR1cm4gbmMtPmV4cHIoKS0+aXNfdW50eXBlZChwdHlwZSk7Cit9CisK IC8vIFJldHVybiB0aGUgdHlwZSBvZiB0aGUgY29uc3QgcmVmZXJlbmNlLgogCiBUeXBlKgpAQCAt MzcwNyw2ICszNzk5LDEzIEBAIGNsYXNzIE5pbF9leHByZXNzaW9uIDogcHVibGljIEV4cHJlc3Np b24KICAgZG9faXNfY29uc3RhbnQoKSBjb25zdAogICB7IHJldHVybiB0cnVlOyB9CiAKKyAgYm9v bAorICBkb191bnR5cGVkX3R5cGUoVHlwZSoqIHB0eXBlKSBjb25zdAorICB7CisgICAgKnB0eXBl ID0gVHlwZTo6bWFrZV9uaWxfdHlwZSgpOworICAgIHJldHVybiB0cnVlOworICB9CisKICAgYm9v bAogICBkb19pc196ZXJvX3ZhbHVlKCkgY29uc3QKICAgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNDc3 NCw2ICs0ODczLDE0IEBAIFVuYXJ5X2V4cHJlc3Npb246OmRvX2lzX2NvbnN0YW50KCkgY29uc3QK ICAgICByZXR1cm4gdGhpcy0+ZXhwcl8tPmlzX2NvbnN0YW50KCk7CiB9CiAKK2Jvb2wKK1VuYXJ5 X2V4cHJlc3Npb246OmRvX2lzX3VudHlwZWQoVHlwZSoqIHB0eXBlKSBjb25zdAoreworICBpZiAo dGhpcy0+b3BfID09IE9QRVJBVE9SX01VTFQgfHwgdGhpcy0+b3BfID09IE9QRVJBVE9SX0FORCkK KyAgICByZXR1cm4gZmFsc2U7CisgIHJldHVybiB0aGlzLT5leHByXy0+aXNfdW50eXBlZChwdHlw ZSk7Cit9CisKIC8vIFJldHVybiB3aGV0aGVyIGEgdW5hcnkgZXhwcmVzc2lvbiBjYW4gYmUgdXNl ZCBhcyBhIGNvbnN0YW50CiAvLyBpbml0aWFsaXplci4KIApAQCAtNTUyMyw2ICs1NjMwLDgxIEBA IEJpbmFyeV9leHByZXNzaW9uOjpkb190cmF2ZXJzZShUcmF2ZXJzZSogdHJhdmVyc2UpCiAgIHJl dHVybiBFeHByZXNzaW9uOjp0cmF2ZXJzZSgmdGhpcy0+cmlnaHRfLCB0cmF2ZXJzZSk7CiB9CiAK Ky8vIFJldHVybiB3aGV0aGVyIGEgYmluYXJ5IGV4cHJlc3Npb24gaXMgdW50eXBlZC4KKworYm9v bAorQmluYXJ5X2V4cHJlc3Npb246OmRvX2lzX3VudHlwZWQoVHlwZSoqIHB0eXBlKSBjb25zdAor eworICBpZiAodGhpcy0+dHlwZV8gIT0gTlVMTCkKKyAgICByZXR1cm4gRXhwcmVzc2lvbjo6aXNf dW50eXBlZF90eXBlKHRoaXMtPnR5cGVfLCBwdHlwZSk7CisKKyAgc3dpdGNoICh0aGlzLT5vcF8p CisgICAgeworICAgIGNhc2UgT1BFUkFUT1JfRVFFUToKKyAgICBjYXNlIE9QRVJBVE9SX05PVEVR OgorICAgIGNhc2UgT1BFUkFUT1JfTFQ6CisgICAgY2FzZSBPUEVSQVRPUl9MRToKKyAgICBjYXNl IE9QRVJBVE9SX0dUOgorICAgIGNhc2UgT1BFUkFUT1JfR0U6CisgICAgICAvLyBDb21wYXJpc29u cyBhcmUgdW50eXBlZCBieSBkZWZhdWx0LgorICAgICAgKnB0eXBlID0gVHlwZTo6bWFrZV9ib29s ZWFuX3R5cGUoKTsKKyAgICAgIHJldHVybiB0cnVlOworCisgICAgY2FzZSBPUEVSQVRPUl9MU0hJ RlQ6CisgICAgY2FzZSBPUEVSQVRPUl9SU0hJRlQ6CisgICAgICAvLyBBIHNoaWZ0IG9wZXJhdGlv biBpcyB1bnR5cGVkIGlmIHRoZSBsZWZ0IGhhbmQgZXhwcmVzc2lvbiBpcworICAgICAgLy8gdW50 eXBlZC4gIFRoZSByaWdodCBoYW5kIGV4cHJlc3Npb24gaXMgaXJyZWxldmFudC4KKyAgICAgIHJl dHVybiB0aGlzLT5sZWZ0Xy0+aXNfdW50eXBlZChwdHlwZSk7CisKKyAgICBkZWZhdWx0OgorICAg ICAgYnJlYWs7CisgICAgfQorCisgIFR5cGUqIHRsZWZ0OworICBUeXBlKiB0cmlnaHQ7CisgIGlm ICghdGhpcy0+bGVmdF8tPmlzX3VudHlwZWQoJnRsZWZ0KQorICAgICAgfHwgIXRoaXMtPnJpZ2h0 Xy0+aXNfdW50eXBlZCgmdHJpZ2h0KSkKKyAgICByZXR1cm4gZmFsc2U7CisKKyAgLy8gSWYgYm90 aCBzaWRlcyBhcmUgbnVtZXJpYywgcGljayBhIHR5cGUgYmFzZWQgb24gdGhlIGtpbmQuCisgIGVu dW0ga2luZCB7IElOVCwgUlVORSwgRkxPQVQsIENPTVBMRVggfTsKKyAgZW51bSBraW5kIGtsZWZ0 LCBrcmlnaHQ7CisKKyAgaWYgKHRsZWZ0LT5pbnRlZ2VyX3R5cGUoKSAhPSBOVUxMKQorICAgIGts ZWZ0ID0gdGxlZnQtPmludGVnZXJfdHlwZSgpLT5pc19ydW5lKCkgPyBSVU5FIDogSU5UOworICBl bHNlIGlmICh0bGVmdC0+ZmxvYXRfdHlwZSgpICE9IE5VTEwpCisgICAga2xlZnQgPSBGTE9BVDsK KyAgZWxzZSBpZiAodGxlZnQtPmNvbXBsZXhfdHlwZSgpICE9IE5VTEwpCisgICAga2xlZnQgPSBD T01QTEVYOworICBlbHNlCisgICAgeworICAgICAgLy8gTm90IG51bWVyaWMuICBJZiB0aGUgdHlw ZXMgYXJlIGRpZmZlcmVudCwgd2Ugd2lsbCByZXBvcnQgYW4KKyAgICAgIC8vIGVycm9yIGxhdGVy LgorICAgICAgKnB0eXBlID0gdGxlZnQ7CisgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg aWYgKHRyaWdodC0+aW50ZWdlcl90eXBlKCkgIT0gTlVMTCkKKyAgICBrcmlnaHQgPSB0cmlnaHQt PmludGVnZXJfdHlwZSgpLT5pc19ydW5lKCkgPyBSVU5FIDogSU5UOworICBlbHNlIGlmICh0cmln aHQtPmZsb2F0X3R5cGUoKSAhPSBOVUxMKQorICAgIGtyaWdodCA9IEZMT0FUOworICBlbHNlIGlm ICh0cmlnaHQtPmNvbXBsZXhfdHlwZSgpICE9IE5VTEwpCisgICAga3JpZ2h0ID0gQ09NUExFWDsK KyAgZWxzZQorICAgIHsKKyAgICAgIC8vIFR5cGVzIGFyZSBkaWZmZXJlbnQuICBXZSB3aWxsIHJl cG9ydCBhbiBlcnJvciBsYXRlci4KKyAgICAgICpwdHlwZSA9IHRsZWZ0OworICAgICAgcmV0dXJu IHRydWU7CisgICAgfQorCisgIGlmIChrbGVmdCA+IGtyaWdodCkKKyAgICAqcHR5cGUgPSB0bGVm dDsKKyAgZWxzZQorICAgICpwdHlwZSA9IHRyaWdodDsKKworICByZXR1cm4gdHJ1ZTsKK30KKwog Ly8gUmV0dXJuIHdoZXRoZXIgdGhpcyBleHByZXNzaW9uIG1heSBiZSB1c2VkIGFzIGEgc3RhdGlj IGluaXRpYWxpemVyLgogCiBib29sCkBAIC03NjQ1LDYgKzc4MjcsMjEgQEAgU3RyaW5nX2NvbmNh dF9leHByZXNzaW9uOjpkb19pc19jb25zdGFudCgpIGNvbnN0CiAgIHJldHVybiB0cnVlOwogfQog Citib29sCitTdHJpbmdfY29uY2F0X2V4cHJlc3Npb246OmRvX2lzX3VudHlwZWQoVHlwZSoqIHB0 eXBlKSBjb25zdAoreworICBmb3IgKEV4cHJlc3Npb25fbGlzdDo6aXRlcmF0b3IgcGUgPSB0aGlz LT5leHByc18tPmJlZ2luKCk7CisgICAgICAgcGUgIT0gdGhpcy0+ZXhwcnNfLT5lbmQoKTsKKyAg ICAgICArK3BlKQorICAgIHsKKyAgICAgIGlmICghKCpwZSktPmlzX3VudHlwZWQocHR5cGUpKQor CXJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgKnB0eXBlID0gVHlwZTo6bWFrZV9zdHJpbmdfdHlw ZSgpOworICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbAogU3RyaW5nX2NvbmNhdF9leHByZXNzaW9u Ojpkb19pc196ZXJvX3ZhbHVlKCkgY29uc3QKIHsKQEAgLTk2NzEsNiArOTg2OCw0NyBAQCBCdWls dGluX2NhbGxfZXhwcmVzc2lvbjo6ZG9faXNfY29uc3RhbnQoKSBjb25zdAogICByZXR1cm4gZmFs c2U7CiB9CiAKKy8vIFJldHVybiB3aGV0aGVyIGEgYnVpbHRpbiBjYWxsIGlzIHVudHlwZWQuICBN b3N0IGJ1aWx0aW4gZnVuY3Rpb25zCisvLyBoYXZlIGEga25vd24gdHlwZSwgYnV0IGNvbXBsZXgs IHJlYWwsIGFuZCBpbWFnIGNhbiBiZSB1bnR5cGVkLgorCitib29sCitCdWlsdGluX2NhbGxfZXhw cmVzc2lvbjo6ZG9faXNfdW50eXBlZChUeXBlKiogcHR5cGUpIGNvbnN0Cit7CisgIGlmICh0aGlz LT5pc19lcnJvcl9leHByZXNzaW9uKCkpCisgICAgcmV0dXJuIGZhbHNlOworCisgIHN3aXRjaCAo dGhpcy0+Y29kZV8pCisgICAgeworICAgIGRlZmF1bHQ6CisgICAgICByZXR1cm4gZmFsc2U7CisK KyAgICBjYXNlIEJVSUxUSU5fQ09NUExFWDoKKyAgICAgIHsKKwljb25zdCBFeHByZXNzaW9uX2xp c3QqIGFyZ3MgPSB0aGlzLT5hcmdzKCk7CisJaWYgKGFyZ3MgPT0gTlVMTCB8fCBhcmdzLT5zaXpl KCkgIT0gMikKKwkgIHJldHVybiBmYWxzZTsKKwlUeXBlKiBkdW1teTsKKwlpZiAoIWFyZ3MtPmZy b250KCktPmlzX3VudHlwZWQoJmR1bW15KQorCSAgICB8fCAhYXJncy0+YmFjaygpLT5pc191bnR5 cGVkKCZkdW1teSkpCisJICByZXR1cm4gZmFsc2U7CisJKnB0eXBlID0gVHlwZTo6bWFrZV9hYnN0 cmFjdF9jb21wbGV4X3R5cGUoKTsKKwlyZXR1cm4gdHJ1ZTsKKyAgICAgIH0KKworICAgIGNhc2Ug QlVJTFRJTl9SRUFMOgorICAgIGNhc2UgQlVJTFRJTl9JTUFHOgorICAgICAgeworCUV4cHJlc3Np b24qIGFyZyA9IHRoaXMtPm9uZV9hcmcoKTsKKwlpZiAoYXJnID09IE5VTEwpCisJICByZXR1cm4g ZmFsc2U7CisJaWYgKCFhcmctPmlzX3VudHlwZWQocHR5cGUpKQorCSAgcmV0dXJuIGZhbHNlOwor CSpwdHlwZSA9IFR5cGU6Om1ha2VfYWJzdHJhY3RfZmxvYXRfdHlwZSgpOworCXJldHVybiB0cnVl OworICAgICAgfQorICAgIH0KK30KKwogLy8gUmV0dXJuIGEgbnVtZXJpYyBjb25zdGFudCBpZiBw b3NzaWJsZS4KIAogYm9vbApkaWZmIC0tZ2l0IGEvZ2NjL2dvL2dvZnJvbnRlbmQvZXhwcmVzc2lv bnMuaCBiL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Npb25zLmgKaW5kZXggMmFiYzljYjg0MjUu LjQ5MTQwZDEwMGE0IDEwMDY0NAotLS0gYS9nY2MvZ28vZ29mcm9udGVuZC9leHByZXNzaW9ucy5o CisrKyBiL2djYy9nby9nb2Zyb250ZW5kL2V4cHJlc3Npb25zLmgKQEAgLTU2Niw2ICs1NjYsMTUg QEAgY2xhc3MgRXhwcmVzc2lvbgogICBpc19jb25zdGFudCgpIGNvbnN0CiAgIHsgcmV0dXJuIHRo aXMtPmRvX2lzX2NvbnN0YW50KCk7IH0KIAorICAvLyBSZXR1cm4gd2hldGhlciB0aGlzIGV4cHJl c3Npb24gaXMgdW50eXBlZC4gIFRoaXMgaXNuJ3QgcXVpdGUgdGhlCisgIC8vIHNhbWUgYXMgaXNf Y29uc3RhbnQgd2l0aCBhbiBhYnN0cmFjdCB0eXBlLCBhcyAxPDx2YWwgaXMgdW50eXBlZAorICAv LyBldmVuIGlmIHZhbCBpcyBhIHZhcmlhYmxlLiAgSWYgdGhpcyByZXR1cm5zIHRydWUsIGl0IHNl dHMgKlBUWVBFCisgIC8vIHRvIGFuIGFic3RyYWN0IHR5cGUsIHdoaWNoIGlzIHRoZSB0eXBlIHRo ZSBleHByZXNzaW9uIHdpbGwgaGF2ZQorICAvLyBpZiB0aGVyZSBpcyBubyBjb250ZXh0LgorICBi b29sCisgIGlzX3VudHlwZWQoVHlwZSoqIHB0eXBlKSBjb25zdAorICB7IHJldHVybiB0aGlzLT5k b19pc191bnR5cGVkKHB0eXBlKTsgfQorCiAgIC8vIFJldHVybiB3aGV0aGVyIHRoaXMgaXMgdGhl IHplcm8gdmFsdWUgb2YgaXRzIHR5cGUuCiAgIGJvb2wKICAgaXNfemVyb192YWx1ZSgpIGNvbnN0 CkBAIC0xMTY5LDYgKzExNzgsMTEgQEAgY2xhc3MgRXhwcmVzc2lvbgogICBkb19pc19jb25zdGFu dCgpIGNvbnN0CiAgIHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgLy8gUmV0dXJuIHdoZXRoZXIgdGhp cyBleHByZXNzaW9uIGlzIHVudHlwZWQuCisgIHZpcnR1YWwgYm9vbAorICBkb19pc191bnR5cGVk KFR5cGUqKikgY29uc3QKKyAgeyByZXR1cm4gZmFsc2U7IH0KKwogICAvLyBSZXR1cm4gd2hldGhl ciB0aGlzIGlzIHRoZSB6ZXJvIHZhbHVlIG9mIGl0cyB0eXBlLgogICB2aXJ0dWFsIGJvb2wKICAg ZG9faXNfemVyb192YWx1ZSgpIGNvbnN0CkBAIC0xMjc0LDYgKzEyODgsMTIgQEAgY2xhc3MgRXhw cmVzc2lvbgogICB2b2lkCiAgIHJlcG9ydF9lcnJvcihjb25zdCBjaGFyKik7CiAKKyAgLy8gQSBj b252ZW5pZW5jZSBmdW5jdGlvbiBmb3IgaGFuZGxpbmcgYSB0eXBlIGluIGRvX2lzX3VudHlwZWQu ICBJZgorICAvLyBUWVBFIGlzIG5vdCBhYnN0cmFjdCwgcmV0dXJuIGZhbHNlLiAgT3RoZXJ3aXNl IHNldCAqUFRZUEUgdG8gVFlQRQorICAvLyBhbmQgcmV0dXJuIHRydWUuCisgIHN0YXRpYyBib29s CisgIGlzX3VudHlwZWRfdHlwZShUeXBlKiB0eXBlLCBUeXBlKiogcHR5cGUpOworCiAgIC8vIFdy aXRlIGEgbmFtZSB0byBleHBvcnQgZGF0YS4KICAgc3RhdGljIHZvaWQKICAgZXhwb3J0X25hbWUo RXhwb3J0X2Z1bmN0aW9uX2JvZHkqIGVmYiwgY29uc3QgTmFtZWRfb2JqZWN0Kik7CkBAIC0xNTAx LDYgKzE1MjEsOSBAQCBjbGFzcyBDb25zdF9leHByZXNzaW9uIDogcHVibGljIEV4cHJlc3Npb24K ICAgZG9faXNfY29uc3RhbnQoKSBjb25zdAogICB7IHJldHVybiB0cnVlOyB9CiAKKyAgYm9vbAor ICBkb19pc191bnR5cGVkKFR5cGUqKikgY29uc3Q7CisKICAgYm9vbAogICBkb19pc196ZXJvX3Zh bHVlKCkgY29uc3Q7CiAKQEAgLTE4MzAsNiArMTg1Myw5IEBAIGNsYXNzIFN0cmluZ19leHByZXNz aW9uIDogcHVibGljIEV4cHJlc3Npb24KICAgZG9faXNfY29uc3RhbnQoKSBjb25zdAogICB7IHJl dHVybiB0cnVlOyB9CiAKKyAgYm9vbAorICBkb19pc191bnR5cGVkKFR5cGUqKikgY29uc3Q7CisK ICAgYm9vbAogICBkb19pc196ZXJvX3ZhbHVlKCkgY29uc3QKICAgeyByZXR1cm4gdGhpcy0+dmFs XyA9PSAiIjsgfQpAQCAtMjEzNiw2ICsyMTYyLDkgQEAgY2xhc3MgVW5hcnlfZXhwcmVzc2lvbiA6 IHB1YmxpYyBFeHByZXNzaW9uCiAgIGJvb2wKICAgZG9faXNfY29uc3RhbnQoKSBjb25zdDsKIAor ICBib29sCisgIGRvX2lzX3VudHlwZWQoVHlwZSoqKSBjb25zdDsKKwogICBib29sCiAgIGRvX2lz X3N0YXRpY19pbml0aWFsaXplcigpIGNvbnN0OwogCkBAIC0yMjkzLDYgKzIzMjIsOSBAQCBjbGFz cyBCaW5hcnlfZXhwcmVzc2lvbiA6IHB1YmxpYyBFeHByZXNzaW9uCiAgIGRvX2lzX2NvbnN0YW50 KCkgY29uc3QKICAgeyByZXR1cm4gdGhpcy0+bGVmdF8tPmlzX2NvbnN0YW50KCkgJiYgdGhpcy0+ cmlnaHRfLT5pc19jb25zdGFudCgpOyB9CiAKKyAgYm9vbAorICBkb19pc191bnR5cGVkKFR5cGUq KikgY29uc3Q7CisKICAgYm9vbAogICBkb19pc19zdGF0aWNfaW5pdGlhbGl6ZXIoKSBjb25zdDsK IApAQCAtMjQxNSw2ICsyNDQ3LDkgQEAgY2xhc3MgU3RyaW5nX2NvbmNhdF9leHByZXNzaW9uIDog cHVibGljIEV4cHJlc3Npb24KICAgYm9vbAogICBkb19pc19jb25zdGFudCgpIGNvbnN0OwogCisg IGJvb2wKKyAgZG9faXNfdW50eXBlZChUeXBlKiopIGNvbnN0OworCiAgIGJvb2wKICAgZG9faXNf emVyb192YWx1ZSgpIGNvbnN0OwogCkBAIC0yNzY3LDYgKzI4MDIsOSBAQCBjbGFzcyBCdWlsdGlu X2NhbGxfZXhwcmVzc2lvbiA6IHB1YmxpYyBDYWxsX2V4cHJlc3Npb24KICAgYm9vbAogICBkb19p c19jb25zdGFudCgpIGNvbnN0OwogCisgIGJvb2wKKyAgZG9faXNfdW50eXBlZChUeXBlKiopIGNv bnN0OworCiAgIGJvb2wKICAgZG9fbnVtZXJpY19jb25zdGFudF92YWx1ZShOdW1lcmljX2NvbnN0 YW50KikgY29uc3Q7CiAK --0000000000003b174a060868988b--