From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.130]) by sourceware.org (Postfix) with ESMTPS id 64BEE3858D20; Sat, 8 Jun 2024 19:52:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 64BEE3858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=net-b.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=net-b.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 64BEE3858D20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.126.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717876372; cv=none; b=DJWwr2HAtV36N2d1gEJXdGtZssfTdRLT6A9YDQzc6zaZGw/2u0gNJv1z+d1jEwNw9qg8OH8qaZY3QKE+Ft4QWX3mdFSrNv18TQTuqMNqUMx3Puejzf+vFFhOe4QTF1nvn/tPYjJ+3Z5p2b98AE49SKSQnLBCWhLYX64DD3FkrrI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1717876372; c=relaxed/simple; bh=w0cYFFlSYHeNWf/nBGP5uf92rbadkrSpsAxBzkXZtQE=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=corJpa83UZIdjosNWiUDZDgFoK+pBjYpMC/u4rk3cH9+fzgl7bJ+OzWmeD4dad6Fu4XBZjGqdSpL7lPvXyUjAlFrGgacn+dpbPqJDxLdu1FhHUJV9I/zfSP/bBQLCB2IMkiFPHVmRX84ih85OpGkqJhIjxVHw9xbPfvUtbmVuhY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=net-b.de; s=s1-ionos; t=1717876363; x=1718481163; i=burnus@net-b.de; bh=Z2Vggsef3FVX1MY+Tt2ICmTgwEnDA3pIzwxW+c3jiRo=; h=X-UI-Sender-Class:Content-Type:Message-ID:Date:MIME-Version: Subject:To:Cc:References:From:In-Reply-To:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=o6JXAyxC4ZtD5CzZfBuTS97V7sqkQ000uw7LN/9SAXJLLEWhZ8h52bId2l/k5+qY SbLpgerHM+Coo4UD5amIdB52hg9XojfjlVUKVU5/0az1E1M+CsqyC9ragJ5nj+mCK KSTPzaP0SEso59jWgrcO0Ih3Cf/fjsfPwvHKrsLr7JnP4VdRPT5s/Dolc87+Uz8/l t5pU3PVDtBbIICetI60hN07UvjY7rU+ZIyhHA85EwyqJCW5zz8e1X9XJHlQKecA30 7y0GPdNeZqKZp+SwHLt3e/BaNHYRw9/yVguzngHdLTKNj4OT4Fa5xAkVrZbPDrgu8 mqIhQdoC2L0kVg0ikw== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from [192.168.0.26] ([89.247.205.30]) by mrelayeu.kundenserver.de (mreue010 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MXop2-1rv9l91lJk-00MpHW; Sat, 08 Jun 2024 21:52:43 +0200 Content-Type: multipart/mixed; boundary="------------CHYzM0dzphqF6X310QtiDqgZ" Message-ID: <67af7edf-bf4e-4ecd-8cc3-3066c25a40c5@net-b.de> Date: Sat, 8 Jun 2024 21:52:42 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [Patch, PR Fortran/90072] Polymorphic Dispatch to Polymophic Return Type Memory Leak To: Andre Vehreschild , Paul Richard Thomas Cc: GCC-Fortran-ML , GCC-Patches-ML , everythingfunctional@protonmail.com, Tobias Burnus References: <20240604122449.2b514925@vepi2> <20240607101719.368ac40a@vepi2> Content-Language: en-US From: Tobias Burnus In-Reply-To: <20240607101719.368ac40a@vepi2> X-Provags-ID: V03:K1:2ksUNQ3yQzygW5RdjHaXU29GjRcoTVXkbV4d30EghiO149pbloh pDbl6AC+bci6jHvIWmpZYTKBCr+5eow0Kb8tqKK/SQ6XXisCTl02I2riFxuEU3SHzzZ3ORx uv5YGotTcim4QIAkhrC/5c0CtYBh/tMg1qSMI9AhL7Mb1h/X2NwTpwwlzAvfeskn4m+DDkf 6Ztzy7sU2kqEXIqUmFLgw== UI-OutboundReport: notjunk:1;M01:P0:54CqvHV4MFM=;i8MrdA/I3/dcspE6QTU/4kA8cv1 RMhBhBUh4WtcAnjccHN4yjunZCv7pFRtQRoZtrhsxbH6hD/m1qxshEHzVwx4ie/ZFc58uOWuT +qV140chdANNdd7GVLexrp8/CBymlxCP+pUnNgXdZ4Dx8Crmq6ou7lrX5fGkO8fgFRKzkw+Sa 6Wd60OO97vATwFYgJgHqNutjUTCjQIs2sQfYJVa/e5mtDVTBTNNTuHS/kvI1eJG6tzvMLOiuM PnQYqPugAzv/4d2dfWCyDAsGgyR9yFdcMJq4+nlF/adsG8uJb2Xpu9FSkrEJrgG/k/vqaEDkm U3AW5/sWxMMDM6cS+7adznncSUIbGguRRSkM8VPidQfFUsVVdNEoZWNXXcXtCs0ljQwdg0sST X67TWL4DSNC1O2+4OVX/3pyahdkaw+hCooX+xM4xg48wNpGiiomHwZmT1wShu7co31xdGnlL7 97yh4kTKBPCCXOPbnQUGHJ/RO5sKseFlHHPGpVTfDSBtw29Y+2TlhS1gRAzw4ySzJT9f0dciJ RGNUpKf+ugJJqCoSpOYELbwbrL0ASyd0edJT3sH/qPL++g7Lm+5VZFerhG4sRKX53StSd2Mig KhoZDOK3MjW4YINvVTnh9SOT4ccMUHX2J257fHj1RGSQjwWYBRQDYRA9Ql8MvHzfQE9pvdNjW lhNcqex+h2weMmQK6HLef7ZxtJq61fQ//lH1us6yZvcSDX3MAtP0eiGnu3upJ82pStqpLpsin 3qlPQVo/dfueSA6JpLz6CASFx4ZL4FyLlgdzT/CbYKT9ZEf2dwZURs= X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,HTML_MESSAGE,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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. --------------CHYzM0dzphqF6X310QtiDqgZ Content-Type: multipart/alternative; boundary="------------5QauUgQnddMfF8ImhVRTDLwc" --------------5QauUgQnddMfF8ImhVRTDLwc Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Andre Vehreschild wrote: >> PS That's good news about the funding. Maybe we will get to see "built i= n" >> coarrays soon? > You hopefully will see Nikolas work on the shared memory coarray support,= if > that is what you mean by "built in" coarrays. I will be working on the > distributed memory coarray support esp. fixing the module issues and some= other > team related things. Cool! (Both of it.) I assume "distributed memory coarray support" is still based on Open Coarrays? * * * I am asking because there is coarray API being defined: Parallel Runtime Interface for Fortran (PRIF), https://go.lbl.gov/prif with an implementation called Caffeine =E2=80=93 CoArray Fortran Framework = of Efficient Interfaces to Network Environments, https://crd.lbl.gov/caffeine which uses GASNet or POSIX processes. Well, the among the implementers is (unsurprising?) Damian =E2=80=93 and the idea seems to be that LLVM's FLANG will use the API. Tobias PS: I think it might be useful in the long run to support both PRIF/Caffeine and OpenCoarrays. I have attached my hello-world patch for -fcoarray=3Dprif that I wrote after ISC-HPC; it only handles this_image() / num_images() + init/stop. I got confirmation by the PRIF developers that the next revision will permit calling __prif_MOD_prif_init multiple times such that one can use it in the constructor for static coarrays, which won't work otherwise. --------------5QauUgQnddMfF8ImhVRTDLwc-- --------------CHYzM0dzphqF6X310QtiDqgZ Content-Type: text/x-patch; charset=UTF-8; name="prif.diff" Content-Disposition: attachment; filename="prif.diff" Content-Transfer-Encoding: base64 Z2NjL0NoYW5nZUxvZzoKCgkqIGZsYWctdHlwZXMuaCAoZW51bSBnZmNfZmNv YXJyYXkpOgoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCSogaW52b2tlLnRl eGk6CgkqIGxhbmcub3B0OgoJKiB0cmFucy1kZWNsLmNjIChnZmNfYnVpbGRf YnVpbHRpbl9mdW5jdGlvbl9kZWNscyk6CgkoY3JlYXRlX21haW5fZnVuY3Rp b24pOgoJKiB0cmFucy1pbnRyaW5zaWMuY2MgKHRyYW5zX3RoaXNfaW1hZ2Up OgoJKHRyYW5zX251bV9pbWFnZXMpOgoJKiB0cmFucy5oIChHVFkpOgoKIGdj Yy9mbGFnLXR5cGVzLmggICAgICAgICAgICAgICB8ICAzICsrLQogZ2NjL2Zv cnRyYW4vaW52b2tlLnRleGkgICAgICAgIHwgIDcgKysrKystCiBnY2MvZm9y dHJhbi9sYW5nLm9wdCAgICAgICAgICAgfCAgNSArKystCiBnY2MvZm9ydHJh bi90cmFucy1kZWNsLmNjICAgICAgfCA1NiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIGdjYy9mb3J0cmFuL3RyYW5zLWlu dHJpbnNpYy5jYyB8IDQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0KIGdjYy9mb3J0cmFuL3RyYW5zLmggICAgICAgICAgICB8ICA1ICsrKysK IDYgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDEwIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mbGFnLXR5cGVzLmggYi9nY2Mv ZmxhZy10eXBlcy5oCmluZGV4IDVhMmI0NjFmYTc1Li5iYWJkNzQ3YzAxZCAx MDA2NDQKLS0tIGEvZ2NjL2ZsYWctdHlwZXMuaAorKysgYi9nY2MvZmxhZy10 eXBlcy5oCkBAIC00MjcsNyArNDI3LDggQEAgZW51bSBnZmNfZmNvYXJyYXkK IHsKICAgR0ZDX0ZDT0FSUkFZX05PTkUgPSAwLAogICBHRkNfRkNPQVJSQVlf U0lOR0xFLAotICBHRkNfRkNPQVJSQVlfTElCCisgIEdGQ19GQ09BUlJBWV9M SUIsCisgIEdGQ19GQ09BUlJBWV9QUklGCiB9OwogCiAKZGlmZiAtLWdpdCBh L2djYy9mb3J0cmFuL2ludm9rZS50ZXhpIGIvZ2NjL2ZvcnRyYW4vaW52b2tl LnRleGkKaW5kZXggNDBlOGU0YTdjZGQuLjMzMWE0MGQzMWRiIDEwMDY0NAot LS0gYS9nY2MvZm9ydHJhbi9pbnZva2UudGV4aQorKysgYi9nY2MvZm9ydHJh bi9pbnZva2UudGV4aQpAQCAtMTc1Myw3ICsxNzUzLDEyIEBAIFNpbmdsZS1p bWFnZSBtb2RlLCBpLmUuIEBjb2Rle251bV9pbWFnZXMoKX0gaXMgYWx3YXlz IG9uZS4KIAogQGl0ZW0gQHNhbXB7bGlifQogTGlicmFyeS1iYXNlZCBjb2Fy cmF5IHBhcmFsbGVsaXphdGlvbjsgYSBzdWl0YWJsZSBHTlUgRm9ydHJhbiBj b2FycmF5Ci1saWJyYXJ5IG5lZWRzIHRvIGJlIGxpbmtlZC4KK2xpYnJhcnkg bmVlZHMgdG8gYmUgbGlua2VkIHN1Y2ggYXMgQHVybHtodHRwOi8vb3BlbmNv YXJyYXlzLm9yZ30uCisKK0BpdGVtIEBzYW1we3ByaWZ9CitVc2luZyB0aGUg UGFyYWxsZWwgUnVudGltZSBJbnRlcmZhY2UgZm9yIEZvcnRyYW4gKFBSSUYp LAorQHVybHtodHRwczovL2dvLmxibC5nb3YvQC9wcmlmfTsgZm9yIGluc3Rh bmNlLCB2aWEgQ2FmZmVpbmUsCitAdXJse2h0dHBzOi8vZ28ubGJsLmdvdi9A L2NhZmZlaW5lfS4KIEBlbmQgdGFibGUKIAogCmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi9sYW5nLm9wdCBiL2djYy9mb3J0cmFuL2xhbmcub3B0CmluZGV4 IDVlZmQ0YTAxMjlhLi45YmE5NTdkNTU3MSAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vbGFuZy5vcHQKKysrIGIvZ2NjL2ZvcnRyYW4vbGFuZy5vcHQKQEAg LTc4Niw3ICs3ODYsNyBAQCBDb3B5IGFycmF5IHNlY3Rpb25zIGludG8gYSBj b250aWd1b3VzIGJsb2NrIG9uIHByb2NlZHVyZSBlbnRyeS4KIAogZmNvYXJy YXk9CiBGb3J0cmFuIFJlamVjdE5lZ2F0aXZlIEpvaW5lZCBFbnVtKGdmY19m Y29hcnJheSkgVmFyKGZsYWdfY29hcnJheSkgSW5pdChHRkNfRkNPQVJSQVlf Tk9ORSkKLS1mY29hcnJheT08bm9uZXxzaW5nbGV8bGliPglTcGVjaWZ5IHdo aWNoIGNvYXJyYXkgcGFyYWxsZWxpemF0aW9uIHNob3VsZCBiZSB1c2VkLgor LWZjb2FycmF5PTxub25lfHNpbmdsZXxsaWJ8cHJpZj4JU3BlY2lmeSB3aGlj aCBjb2FycmF5IHBhcmFsbGVsaXphdGlvbiBzaG91bGQgYmUgdXNlZC4KIAog RW51bQogTmFtZShnZmNfZmNvYXJyYXkpIFR5cGUoZW51bSBnZmNfZmNvYXJy YXkpIFVua25vd25FcnJvcihVbnJlY29nbml6ZWQgb3B0aW9uOiAlcXMpCkBA IC04MDAsNiArODAwLDkgQEAgRW51bShnZmNfZmNvYXJyYXkpIFN0cmluZyhz aW5nbGUpIFZhbHVlKEdGQ19GQ09BUlJBWV9TSU5HTEUpCiBFbnVtVmFsdWUK IEVudW0oZ2ZjX2Zjb2FycmF5KSBTdHJpbmcobGliKSBWYWx1ZShHRkNfRkNP QVJSQVlfTElCKQogCitFbnVtVmFsdWUKK0VudW0oZ2ZjX2Zjb2FycmF5KSBT dHJpbmcocHJpZikgVmFsdWUoR0ZDX0ZDT0FSUkFZX1BSSUYpCisKIGZjaGVj az0KIEZvcnRyYW4gUmVqZWN0TmVnYXRpdmUgSm9pbmVkT3JNaXNzaW5nCiAt ZmNoZWNrPVsuLi5dCVNwZWNpZnkgd2hpY2ggcnVudGltZSBjaGVja3MgYXJl IHRvIGJlIHBlcmZvcm1lZC4KZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Ry YW5zLWRlY2wuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1kZWNsLmNjCmluZGV4 IGRjYTc3Nzk1MjhiLi5kMWMwZTJlZTk5NyAxMDA2NDQKLS0tIGEvZ2NjL2Zv cnRyYW4vdHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1k ZWNsLmNjCkBAIC0xNzAsNiArMTcwLDEwIEBAIHRyZWUgZ2Zvcl9mbmRlY2xf Y29fc3VtOwogdHJlZSBnZm9yX2ZuZGVjbF9jYWZfaXNfcHJlc2VudDsKIHRy ZWUgZ2Zvcl9mbmRlY2xfY2FmX3JhbmRvbV9pbml0OwogCit0cmVlIGdmb3Jf Zm5kZWNsX3ByaWZfaW5pdDsKK3RyZWUgZ2Zvcl9mbmRlY2xfcHJpZl9zdG9w OwordHJlZSBnZm9yX2ZuZGVjbF9wcmlmX3RoaXNfaW1hZ2Vfbm9fY29hcnJh eTsKK3RyZWUgZ2Zvcl9mbmRlY2xfcHJpZl9udW1faW1hZ2VzOwogCiAvKiBN YXRoIGZ1bmN0aW9ucy4gIE1hbnkgb3RoZXIgbWF0aCBmdW5jdGlvbnMgYXJl IGhhbmRsZWQgaW4KICAgIHRyYW5zLWludHJpbnNpYy5jYy4gICovCkBAIC00 MTQ3LDYgKzQxNTEsMzEgQEAgZ2ZjX2J1aWxkX2J1aWx0aW5fZnVuY3Rpb25f ZGVjbHMgKHZvaWQpCiAJICAgIGdldF9pZGVudGlmaWVyIChQUkVGSVgoImNh Zl9yYW5kb21faW5pdCIpKSwKIAkgICAgdm9pZF90eXBlX25vZGUsIDIsIGxv Z2ljYWxfdHlwZV9ub2RlLCBsb2dpY2FsX3R5cGVfbm9kZSk7CiAgICAgfQor ICBlbHNlIGlmIChmbGFnX2NvYXJyYXkgPT0gR0ZDX0ZDT0FSUkFZX1BSSUYp CisgICAgeworICAgICAgdHJlZSBwaW50X3R5cGUgPSBidWlsZF9wb2ludGVy X3R5cGUgKGludGVnZXJfdHlwZV9ub2RlKTsKKyAgICAgIHRyZWUgcGJvb2xf dHlwZSA9IGJ1aWxkX3BvaW50ZXJfdHlwZSAoYm9vbGVhbl90eXBlX25vZGUp OworICAgICAgdHJlZSBwaW50bWF4X3R5cGVfbm9kZSA9IGdldF90eXBlbm9k ZV9mcm9tX25hbWUgKElOVE1BWF9UWVBFKTsKKyAgICAgIHBpbnRtYXhfdHlw ZV9ub2RlID0gYnVpbGRfcG9pbnRlcl90eXBlIChwaW50bWF4X3R5cGVfbm9k ZSk7CisKKyAgICAgIGdmb3JfZm5kZWNsX3ByaWZfaW5pdCA9IGdmY19idWls ZF9saWJyYXJ5X2Z1bmN0aW9uX2RlY2xfd2l0aF9zcGVjICgKKwlnZXRfaWRl bnRpZmllciAoIl9fcHJpZl9NT0RfcHJpZl9pbml0IiksICIuIFcgIiwKKwl2 b2lkX3R5cGVfbm9kZSwgMSwgcGludF90eXBlKTsKKworICAgICAgZ2Zvcl9m bmRlY2xfcHJpZl9zdG9wID0gZ2ZjX2J1aWxkX2xpYnJhcnlfZnVuY3Rpb25f ZGVjbF93aXRoX3NwZWMgKAorCWdldF9pZGVudGlmaWVyICgiX19wcmlmX01P RF9wcmlmX3N0b3AiKSwgIi4gUiBSIFIgIiwgdm9pZF90eXBlX25vZGUsCisJ NCwgcGJvb2xfdHlwZSwgcGludF90eXBlLCBwY2hhcl90eXBlX25vZGUsIGdm Y19jaGFybGVuX3R5cGVfbm9kZSk7CisKKyAgICAgIGdmb3JfZm5kZWNsX3By aWZfdGhpc19pbWFnZV9ub19jb2FycmF5ID0KKwlnZmNfYnVpbGRfbGlicmFy eV9mdW5jdGlvbl9kZWNsX3dpdGhfc3BlYyAoCisJICBnZXRfaWRlbnRpZmll ciAoIl9fcHJpZl9NT0RfcHJpZl90aGlzX2ltYWdlX25vX2NvYXJyYXkiKSwg Ii4gUiBXICIsCisJdm9pZF90eXBlX25vZGUsIDIsIHB2b2lkX3R5cGVfbm9k ZSwgcGludF90eXBlKTsKKworICAgICAgZ2Zvcl9mbmRlY2xfcHJpZl9udW1f aW1hZ2VzID0gZ2ZjX2J1aWxkX2xpYnJhcnlfZnVuY3Rpb25fZGVjbF93aXRo X3NwZWMgKAorCWdldF9pZGVudGlmaWVyICgiX19wcmlmX01PRF9wcmlmX251 bV9pbWFnZXMiKSwgIi4gUiBXICIsIHZvaWRfdHlwZV9ub2RlLAorCTMsIHB2 b2lkX3R5cGVfbm9kZSwgcGludG1heF90eXBlX25vZGUsCisJcGludF90eXBl KTsKKyAgICB9CiAKICAgZ2ZjX2J1aWxkX2ludHJpbnNpY19mdW5jdGlvbl9k ZWNscyAoKTsKICAgZ2ZjX2J1aWxkX2ludHJpbnNpY19saWJfZm5kZWNscyAo KTsKQEAgLTY1MDcsOSArNjUzNiw5IEBAIGNyZWF0ZV9tYWluX2Z1bmN0aW9u ICh0cmVlIGZuZGVjbCkKIAogICAvKiBDYWxsIHNvbWUgbGliZ2ZvcnRyYW4g aW5pdGlhbGl6YXRpb24gcm91dGluZXMsIGNhbGwgdGhlbiBNQUlOX18oKS4g ICovCiAKLSAgLyogQ2FsbCBfZ2ZvcnRyYW5fY2FmX2luaXQgKCphcmdjLCAq Kiphcmd2KS4gICovCiAgIGlmIChmbGFnX2NvYXJyYXkgPT0gR0ZDX0ZDT0FS UkFZX0xJQikKICAgICB7CisgICAgICAvKiBDYWxsIF9nZm9ydHJhbl9jYWZf aW5pdCAoKmFyZ2MsICoqKmFyZ3YpLiAgKi8KICAgICAgIHRyZWUgcGludF90 eXBlLCBwcHBjaGFyX3R5cGU7CiAgICAgICBwaW50X3R5cGUgPSBidWlsZF9w b2ludGVyX3R5cGUgKGludGVnZXJfdHlwZV9ub2RlKTsKICAgICAgIHBwcGNo YXJfdHlwZQpAQCAtNjUyMCw2ICs2NTQ5LDE2IEBAIGNyZWF0ZV9tYWluX2Z1 bmN0aW9uICh0cmVlIGZuZGVjbCkKIAkJZ2ZjX2J1aWxkX2FkZHJfZXhwciAo cHBwY2hhcl90eXBlLCBhcmd2KSk7CiAgICAgICBnZmNfYWRkX2V4cHJfdG9f YmxvY2sgKCZib2R5LCB0bXApOwogICAgIH0KKyAgZWxzZSBpZiAoZmxhZ19j b2FycmF5ID09IEdGQ19GQ09BUlJBWV9QUklGKQorICAgIHsKKyAgICAgIC8q IENhbGwgcHJpZl9pbml0ICgqZXhpdF9jb2RlKS4gICovCisgICAgICB0cmVl IGV4aXRfY29kZSA9IGNyZWF0ZV90bXBfdmFyX3JhdyAoaW50ZWdlcl90eXBl X25vZGUsICJleGl0X2NvZGUiKTsKKyAgICAgIHB1c2hkZWNsIChleGl0X2Nv ZGUpOworICAgICAgdG1wID0gYnVpbGRfY2FsbF9leHByX2xvYyAoaW5wdXRf bG9jYXRpb24sIGdmb3JfZm5kZWNsX3ByaWZfaW5pdCwgMSwKKwkJCQkgZ2Zj X2J1aWxkX2FkZHJfZXhwciAoTlVMTCwgZXhpdF9jb2RlKSk7CisgICAgICBn ZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZib2R5LCB0bXApOworLy8gRklYTUU6 IEhhbmRsZSBleGl0IGNvZGU/CisgICAgfQogCiAgIC8qIENhbGwgX2dmb3J0 cmFuX3NldF9hcmdzIChhcmdjLCBhcmd2KS4gICovCiAgIFRSRUVfVVNFRCAo YXJnYykgPSAxOwpAQCAtNjYzNCwxMiArNjY3MywyNSBAQCBjcmVhdGVfbWFp bl9mdW5jdGlvbiAodHJlZSBmbmRlY2wpCiAgIC8qIE1hcmsgTUFJTl9fIGFz IHVzZWQuICAqLwogICBUUkVFX1VTRUQgKGZuZGVjbCkgPSAxOwogCi0gIC8q IENvYXJyYXk6IENhbGwgX2dmb3J0cmFuX2NhZl9maW5hbGl6ZSh2b2lkKS4g ICovCiAgIGlmIChmbGFnX2NvYXJyYXkgPT0gR0ZDX0ZDT0FSUkFZX0xJQikK ICAgICB7CisgICAgICAvKiBDYWxsIF9nZm9ydHJhbl9jYWZfZmluYWxpemUo dm9pZCkuICAqLwogICAgICAgdG1wID0gYnVpbGRfY2FsbF9leHByX2xvYyAo aW5wdXRfbG9jYXRpb24sIGdmb3JfZm5kZWNsX2NhZl9maW5hbGl6ZSwgMCk7 CiAgICAgICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZib2R5LCB0bXApOwog ICAgIH0KKyAgZWxzZSBpZiAoZmxhZ19jb2FycmF5ID09IEdGQ19GQ09BUlJB WV9QUklGKQorICAgIHsKKyAgICAgIC8qIENhbGwgcHJpZl9zdG9wKCpxdWll dCwgKnN0b3BfY29kZV9pbnQsICpzdG9wX2NvZGVfY2hhciwgX3N0b3BfY29k ZV9jaGFyKQorCSBhcyBwcmlmX3N0b3AoJnRydWUsIE5VTEwsIE5VTEwsIDAp LiAgKi8KKyAgICAgIHRyZWUgcXVpZXQgPSBjcmVhdGVfdG1wX3Zhcl9yYXcg KGJvb2xlYW5fdHlwZV9ub2RlLCAicXVpZXQiKTsKKyAgICAgIHB1c2hkZWNs IChxdWlldCk7CisgICAgICBnZmNfYWRkX21vZGlmeSAoJmJvZHksIHF1aWV0 LCBib29sZWFuX3RydWVfbm9kZSk7CisgICAgICB0bXAgPSBidWlsZF9jYWxs X2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwgZ2Zvcl9mbmRlY2xfcHJpZl9z dG9wLCA0LAorCQkJCSBnZmNfYnVpbGRfYWRkcl9leHByIChOVUxMLCBxdWll dCksIG51bGxfcG9pbnRlcl9ub2RlLAorCQkJCSBudWxsX3BvaW50ZXJfbm9k ZSwKKwkJCQkgYnVpbGRfemVyb19jc3QgKGdmY19jaGFybGVuX3R5cGVfbm9k ZSkpOworICAgICAgZ2ZjX2FkZF9leHByX3RvX2Jsb2NrICgmYm9keSwgdG1w KTsKKyAgICB9CiAKICAgLyogInJldHVybiAwIi4gICovCiAgIHRtcCA9IGZv bGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1PRElGWV9FWFBSLCBp bnRlZ2VyX3R5cGVfbm9kZSwKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Ry YW5zLWludHJpbnNpYy5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNp Yy5jYwppbmRleCA4MGRjMzQyNmFiMC4uYTM0ZDZhNTc2ODggMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYworKysgYi9nY2Mv Zm9ydHJhbi90cmFucy1pbnRyaW5zaWMuY2MKQEAgLTI3LDYgKzI3LDcgQEAg YWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUKICNpbmNsdWRlICJtZW1tb2RlbC5oIgogI2luY2x1ZGUgInRtLmgi CQkvKiBGb3IgVU5JVFNfUEVSX1dPUkQuICAqLwogI2luY2x1ZGUgInRyZWUu aCIKKyNpbmNsdWRlICJnaW1wbGUtZXhwci5oIiAgLyogRm9yIGNyZWF0ZV90 bXBfdmFyX25hbWUuICAqLwogI2luY2x1ZGUgImdmb3J0cmFuLmgiCiAjaW5j bHVkZSAidHJhbnMuaCIKICNpbmNsdWRlICJzdHJpbmdwb29sLmgiCkBAIC0y Mzg2LDYgKzIzODcsNyBAQCB0cmFuc190aGlzX2ltYWdlIChnZmNfc2UgKiBz ZSwgZ2ZjX2V4cHIgKmV4cHIpCiAgIC8qIEFyZ3VtZW50LWZyZWUgdmVyc2lv bjogVEhJU19JTUFHRSgpLiAgKi8KICAgaWYgKGRpc3RhbmNlIHx8IGV4cHIt PnZhbHVlLmZ1bmN0aW9uLmFjdHVhbC0+ZXhwciA9PSBOVUxMKQogICAgIHsK Ky8vIEZJWE1FOiBVcGRhdGUgY29tbWVudDsgaGFuZGxlIGRpc3RhbmNlICg9 PSAndGVhbScgYXJnPykKICAgICAgIGlmIChkaXN0YW5jZSkKIAl7CiAJICBn ZmNfaW5pdF9zZSAoJmFyZ3NlLCBOVUxMKTsKQEAgLTIzOTYsOCArMjM5OCwy MyBAQCB0cmFuc190aGlzX2ltYWdlIChnZmNfc2UgKiBzZSwgZ2ZjX2V4cHIg KmV4cHIpCiAJfQogICAgICAgZWxzZQogCXRtcCA9IGludGVnZXJfemVyb19u b2RlOwotICAgICAgdG1wID0gYnVpbGRfY2FsbF9leHByX2xvYyAoaW5wdXRf bG9jYXRpb24sIGdmb3JfZm5kZWNsX2NhZl90aGlzX2ltYWdlLCAxLAotCQkJ CSB0bXApOworICAgICAgaWYgKGZsYWdfY29hcnJheSA9PSBHRkNfRkNPQVJS QVlfTElCKQorCXRtcCA9IGJ1aWxkX2NhbGxfZXhwcl9sb2MgKGlucHV0X2xv Y2F0aW9uLCBnZm9yX2ZuZGVjbF9jYWZfdGhpc19pbWFnZSwKKwkJCQkgICAx LCB0bXApOworICAgICAgZWxzZSBpZiAoZmxhZ19jb2FycmF5ID09IEdGQ19G Q09BUlJBWV9QUklGKQorCXsKKwkgIHRyZWUgaW1hZ2VfaW5kZXggPSBjcmVh dGVfdG1wX3Zhcl9yYXcgKGludGVnZXJfdHlwZV9ub2RlLAorCQkJCQkJICJp bWFnZV9pbmRleCIpOworCSAgZ2ZjX2FkZF9kZWNsX3RvX2Z1bmN0aW9uIChp bWFnZV9pbmRleCk7CisJICB0bXAgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChp bnB1dF9sb2NhdGlvbiwKKwkJCQkgICAgIGdmb3JfZm5kZWNsX3ByaWZfdGhp c19pbWFnZV9ub19jb2FycmF5LCAyLAorCQkJCSAgICAgbnVsbF9wb2ludGVy X25vZGUsIC8qIEZJWE1FOiB0ZWFtLiAqLworCQkJCSAgICAgZ2ZjX2J1aWxk X2FkZHJfZXhwciAoTlVMTCwgaW1hZ2VfaW5kZXgpKTsKKwkgIGdmY19hZGRf ZXhwcl90b19ibG9jayAoJnNlLT5wcmUsIHRtcCk7CisJICB0bXAgPSBpbWFn ZV9pbmRleDsKKwl9CisgICAgICBlbHNlCisJZ2NjX3VucmVhY2hhYmxlICgp OwogICAgICAgc2UtPmV4cHIgPSBmb2xkX2NvbnZlcnQgKGdmY19nZXRfaW50 X3R5cGUgKGdmY19kZWZhdWx0X2ludGVnZXJfa2luZCksCiAJCQkgICAgICAg dG1wKTsKICAgICAgIHJldHVybjsKQEAgLTI3OTksNyArMjgxNiw3IEBAIHRy YW5zX251bV9pbWFnZXMgKGdmY19zZSAqIHNlLCBnZmNfZXhwciAqZXhwcikK IHsKICAgdHJlZSB0bXAsIGRpc3RhbmNlLCBmYWlsZWQ7CiAgIGdmY19zZSBh cmdzZTsKLQorLy8gRklYTUU6IEhhbmRsZSB0ZWFtIC8gdGVhbS1udW1iZSBh cmd1bWVudAogICBpZiAoZXhwci0+dmFsdWUuZnVuY3Rpb24uYWN0dWFsLT5l eHByKQogICAgIHsKICAgICAgIGdmY19pbml0X3NlICgmYXJnc2UsIE5VTEwp OwpAQCAtMjgyMSw4ICsyODM4LDIzIEBAIHRyYW5zX251bV9pbWFnZXMgKGdm Y19zZSAqIHNlLCBnZmNfZXhwciAqZXhwcikKICAgICB9CiAgIGVsc2UKICAg ICBmYWlsZWQgPSBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwg LTEpOwotICB0bXAgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2Nh dGlvbiwgZ2Zvcl9mbmRlY2xfY2FmX251bV9pbWFnZXMsIDIsCi0JCQkgICAg IGRpc3RhbmNlLCBmYWlsZWQpOworICBpZiAoZmxhZ19jb2FycmF5ID09IEdG Q19GQ09BUlJBWV9MSUIpCisgICAgdG1wID0gYnVpbGRfY2FsbF9leHByX2xv YyAoaW5wdXRfbG9jYXRpb24sIGdmb3JfZm5kZWNsX2NhZl9udW1faW1hZ2Vz LCAyLAorCQkJICAgICAgIGRpc3RhbmNlLCBmYWlsZWQpOworICBlbHNlIGlm IChmbGFnX2NvYXJyYXkgPT0gR0ZDX0ZDT0FSUkFZX1BSSUYpCisgICAgewor ICAgICAgdHJlZSBpbWFnZV9jb3VudCA9IGNyZWF0ZV90bXBfdmFyX3JhdyAo aW50ZWdlcl90eXBlX25vZGUsICJpbWFnZV9jb3VudCIpOworICAgICAgZ2Zj X2FkZF9kZWNsX3RvX2Z1bmN0aW9uIChpbWFnZV9jb3VudCk7CisgICAgICB0 bXAgPSBidWlsZF9jYWxsX2V4cHJfbG9jIChpbnB1dF9sb2NhdGlvbiwgZ2Zv cl9mbmRlY2xfcHJpZl9udW1faW1hZ2VzLCAzLAorCQkJCSBudWxsX3BvaW50 ZXJfbm9kZSwgLyogRklYTUU6IHRlYW0uICovCisJCQkJIG51bGxfcG9pbnRl cl9ub2RlLCAvKiBGSVhNRTogdGVhbV9udW1iZXIuICovCisJCQkJIGdmY19i dWlsZF9hZGRyX2V4cHIgKE5VTEwsIGltYWdlX2NvdW50KSk7CisgICAgICBn ZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZzZS0+cHJlLCB0bXApOworICAgICAg dG1wID0gaW1hZ2VfY291bnQ7CisgICAgfQorICBlbHNlCisgICAgZ2NjX3Vu cmVhY2hhYmxlICgpOworCiAgIHNlLT5leHByID0gZm9sZF9jb252ZXJ0IChn ZmNfZ2V0X2ludF90eXBlIChnZmNfZGVmYXVsdF9pbnRlZ2VyX2tpbmQpLCB0 bXApOwogfQogCmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy5oIGIv Z2NjL2ZvcnRyYW4vdHJhbnMuaAppbmRleCBmOTRmYTYwMTQwMC4uYWRmNGQ0 MDZiYmEgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLmgKKysrIGIv Z2NjL2ZvcnRyYW4vdHJhbnMuaApAQCAtOTIwLDYgKzkyMCwxMSBAQCBleHRl cm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX2NvX3JlZHVjZTsKIGV4dGVy biBHVFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfY29fc3VtOwogZXh0ZXJuIEdU WSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9jYWZfaXNfcHJlc2VudDsKIAorZXh0 ZXJuIEdUWSgoKSkgdHJlZSBnZm9yX2ZuZGVjbF9wcmlmX2luaXQ7CitleHRl cm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX3ByaWZfc3RvcDsKK2V4dGVy biBHVFkoKCkpIHRyZWUgZ2Zvcl9mbmRlY2xfcHJpZl90aGlzX2ltYWdlX25v X2NvYXJyYXk7CitleHRlcm4gR1RZKCgpKSB0cmVlIGdmb3JfZm5kZWNsX3By aWZfbnVtX2ltYWdlczsKKwogLyogTWF0aCBmdW5jdGlvbnMuICBNYW55IG90 aGVyIG1hdGggZnVuY3Rpb25zIGFyZSBoYW5kbGVkIGluCiAgICB0cmFucy1p bnRyaW5zaWMuY2MuICAqLwogCg== --------------CHYzM0dzphqF6X310QtiDqgZ--