From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa3.mentor.iphmx.com (esa3.mentor.iphmx.com [68.232.137.180]) by sourceware.org (Postfix) with ESMTPS id 665723858CDA for ; Mon, 5 Sep 2022 13:01:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 665723858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.93,291,1654588800"; d="diff'?scan'208";a="82349918" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa3.mentor.iphmx.com with ESMTP; 05 Sep 2022 05:01:14 -0800 IronPort-SDR: 1r2YzVIGPOdm3ISOYRuh4xs5lHFoJ3fcIuXTPM9t+fDPotwoAjX00iSvGiuse0PABglOyYaIhw 2eF0pVi/mOgHkq6A687YywTedm4uqHN4WId4cstUPQI4twr4M7ZfupTkKCFdX57xZsCxF8loMx B2GWemQl/NYo6GJUhstVVy3L3ILbQua49/IxL9kg7Tdsp67cm92FvrnO3CD9rg2I1cZkua+hlc z77sePPxsYpS8G3i5lV6EpVXuISS2JxB9EGj6CvEpTw/n0KUx8TdTeD+3SZt9/lR5zcFeq5GME FNM= Content-Type: multipart/mixed; boundary="------------obqjVo80jga4yHZUjDMMU0Ig" Message-ID: Date: Mon, 5 Sep 2022 15:01:07 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 Subject: Re: [committed] openmp: Partial OpenMP 5.2 doacross and omp_cur_iteration support Content-Language: en-US To: Jakub Jelinek , CC: Tobias Burnus References: From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,NICE_REPLY_A,SPF_HELO_PASS,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: --------------obqjVo80jga4yHZUjDMMU0Ig Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 03.09.22 10:07, Jakub Jelinek wrote: > The following patch implements part of the OpenMP 5.2 changes related > to ordered loops ... Fortran bits to it attached. OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------obqjVo80jga4yHZUjDMMU0Ig Content-Type: text/x-patch; charset="UTF-8"; name="doacross-f90.diff" Content-Disposition: attachment; filename="doacross-f90.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbi9vcGVubXA6IFBhcnRpYWwgT3Blbk1QIDUuMiBkb2Fjcm9zcyBhbmQgb21wX2N1 cl9pdGVyYXRpb24gc3VwcG9ydAoKQWRkIHRoZSBGb3J0cmFuIHN1cHBvcnQgdG8gdGhlIE1F L0MvQysrIGNvbW1pdApyMTMtMjM4OC1nYTY1MWU2ZDU5MTg4ZGE4OTkyZjhiZmFlMmRmMWNi NGU2MzE2ZjllNgoKZ2NjL2ZvcnRyYW4vQ2hhbmdlTG9nOgoKCSogZHVtcC1wYXJzZS10cmVl LmNjIChzaG93X29tcF9uYW1lbGlzdCwgc2hvd19vbXBfY2xhdXNlcyk6IEhhbmRsZQoJb21w X2N1cl9pdGVyYXRpb24gYW5kIGRpc3Rpbmd1aXNoIGRvYWNyb3NzL2RlcGVuZDoKCSogZ2Zv cnRyYW4uaCAoZW51bSBnZmNfb21wX2RlcGVuZF9kb2Fjcm9zc19vcCk6IFJlbmFtZWQgZnJv bQoJZ2ZjX29tcF9kZXBlbmRfb3AuCgkoZW51bSBnZmNfb21wX2RlcGVuZF9kb2Fjcm9zc19v cCk6IEFkZCBPTVBfRE9BQ1JPU1NfU0lOS19GSVJTVCwKCVJlbmFtZSBPTVBfREVQRU5EX1NJ TksgdG8gT01QX0RPQUNST1NTX1NJTksuCgkoZ2ZjX29tcF9uYW1lbGlzdCkgSGFuZGxlIHJl bmFtaW5nLCByZW5hbWUgZGVwZW5kX29wIHRvCglkZXBlbmRfZG9hY3Jvc3Nfb3AuCgkoc3Ry dWN0IGdmY19vbXBfY2xhdXNlcyk6IEFkZCBkb2Fjcm9zc19zb3VyY2UuCgkqIG9wZW5tcC5j YyAoZ2ZjX21hdGNoX29tcF9kZXBlbmRfc2luayk6IFJlbmFtZWQgdG8gLi4uCgkoZ2ZjX21h dGNoX29tcF9kb2Fjcm9zc19zaW5rKTogLi4uIHRoaXM7IGhhbmRsZSBvbXBfYWxsX21lbW9y eS4KCShlbnVtIG9tcF9tYXNrMik6IEFkZCBPTVBfQ0xBVVNFX0RPQUNST1NTLgoJKGdmY19t YXRjaF9vbXBfY2xhdXNlcyk6IEhhbmRsZSAnZG9hY3Jvc3MnIGFuZCBzeW50YXggY2hhbmdl cyB0bwoJZGVwZW5kLgoJKGdmY19tYXRjaF9vbXBfZGVwb2JqKTogU2ltcGxpZnkgYXMgc2lu ay9zb3VyY2UgYXJlIG5vdyBpbXBvc3NpYmxlLgoJKGdmY19tYXRjaF9vbXBfb3JkZXJlZF9k ZXBlbmQpOiBSZXF1ZXN0IE9NUF9DTEFVU0VfRE9BQ1JPU1MuCgkocmVzb2x2ZV9vbXBfY2xh dXNlcyk6IFVwZGF0ZSBzaW5rL3NvdXJjZSBjaGVja3MuCgkoZ2ZjX3Jlc29sdmVfb21wX2Rp cmVjdGl2ZSk6IFJlc29sdmUgRVhFQ19PTVBfT1JERVJFRCBjbGF1c2VzLgoJKiBwYXJzZS5j YyAoZGVjb2RlX29tcF9kaXJlY3RpdmUpOiBIYW5kbGUgJ29yZGVyZWQgZG9hY3Jvc3MnLgoJ KiB0cmFucy1vcGVubXAuY2MgKGdmY190cmFuc19vbXBfY2xhdXNlcyk6IEhhbmRsZSBkb2Fj cm9zcy4KCShnZmNfdHJhbnNfb21wX2RvKTogRml4IE9NUF9GT1JfT1JJR19ERUNMUyBoYW5k bGluZyBpZiAnb3JkZXJlZCcKCWNsYXVzZSBpcyBwcmVzZW50LgoJKGdmY190cmFuc19vbXBf ZGVwb2JqKTogVXBkYXRlIGZvciBtZW1iZXIgbmFtZSBjaGFuZ2UuCgpsaWJnb21wL0NoYW5n ZUxvZzoKCgkqIGxpYmdvbXAudGV4aSAoT3Blbk1QIDUuMik6IFVwZGF0ZSBkb2Fjcm9zcy9v bXBfY3VyX2l0ZXJhdGlvbiBzdGF0dXMuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkq IGdmb3J0cmFuLmRnL2dvbXAvYWxsLW1lbW9yeS0xLmY5MDogVXBkYXRlIGRnLWVycm9yLgoJ KiBnZm9ydHJhbi5kZy9nb21wL2RlcGVuZC1pdGVyYXRvci0yLmY5MDogTGlrZXdpc2UuCgkq IGdmb3J0cmFuLmRnL2dvbXAvZGVwb2JqLTIuZjkwOiBMaWtld2lzZS4KCSogZ2ZvcnRyYW4u ZGcvZ29tcC9kb2Fjcm9zcy01LmY5MDogTmV3IHRlc3QuCgkqIGdmb3J0cmFuLmRnL2dvbXAv ZG9hY3Jvc3MtNi5mOTA6IE5ldyB0ZXN0LgoKIGdjYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl ZS5jYyAgICAgICAgICAgICAgICAgICAgIHwgIDM4ICsrKy0KIGdjYy9mb3J0cmFuL2dmb3J0 cmFuLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEzICstCiBnY2MvZm9ydHJh bi9vcGVubXAuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIxOCArKysrKysr KysrKysrLS0tLS0tLS0KIGdjYy9mb3J0cmFuL3BhcnNlLmNjICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAzICstCiBnY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MgICAg ICAgICAgICAgICAgICAgICAgICB8ICAzNSArKy0tCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvbXAvYWxsLW1lbW9yeS0xLmY5MCAgICB8ICAgMiArLQogLi4uL2dmb3J0cmFuLmRn L2dvbXAvZGVwZW5kLWl0ZXJhdG9yLTIuZjkwICAgICAgICAgfCAgIDIgKy0KIGdjYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZXBvYmotMi5mOTAgICAgICAgIHwgICA2ICstCiBn Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZG9hY3Jvc3MtNS5mOTAgICAgICB8ICA4 OCArKysrKysrKysKIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kb2Fjcm9zcy02 LmY5MCAgICAgIHwgIDc3ICsrKysrKysrCiBsaWJnb21wL2xpYmdvbXAudGV4aSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArLQogMTEgZmlsZXMgY2hhbmdlZCwgMzcw IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZm9y dHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MgYi9nY2MvZm9ydHJhbi9kdW1wLXBhcnNlLXRyZWUu Y2MKaW5kZXggNTM1MjAwOGE2M2QuLjQwYzY5MGM5YWU4IDEwMDY0NAotLS0gYS9nY2MvZm9y dHJhbi9kdW1wLXBhcnNlLXRyZWUuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vZHVtcC1wYXJzZS10 cmVlLmNjCkBAIC0xMzM3LDggKzEzMzcsMTUgQEAgc2hvd19vbXBfbmFtZWxpc3QgKGludCBs aXN0X3R5cGUsIGdmY19vbXBfbmFtZWxpc3QgKm4pCiAJICBpZiAobi0+dTIubnMgIT0gbnNf aXRlcikKIAkgICAgewogCSAgICAgIGlmIChuICE9IG4yKQotCQlmcHV0cyAobGlzdF90eXBl ID09IE9NUF9MSVNUX0FGRklOSVRZCi0JCSAgICAgICA/ICIpIEFGRklOSVRZKCIgOiAiKSBE RVBFTkQoIiwgZHVtcGZpbGUpOworCQl7CisJCSAgZnB1dHMgKCIpICIsIGR1bXBmaWxlKTsK KwkJICBpZiAobGlzdF90eXBlID09IE9NUF9MSVNUX0FGRklOSVRZKQorCQkgICAgZnB1dHMg KCJBRkZJTklUWSAoIiwgZHVtcGZpbGUpOworCQkgIGVsc2UgaWYgKG4tPnUuZGVwZW5kX2Rv YWNyb3NzX29wID09IE9NUF9ET0FDUk9TU19TSU5LX0ZJUlNUKQorCQkgICAgZnB1dHMgKCJE T0FDUk9TUyAoIiwgZHVtcGZpbGUpOworCQkgIGVsc2UKKwkJICAgIGZwdXRzICgiREVQRU5E ICgiLCBkdW1wZmlsZSk7CisJCX0KIAkgICAgICBpZiAobi0+dTIubnMpCiAJCXsKIAkJICBm cHV0cyAoIklURVJBVE9SKCIsIGR1bXBmaWxlKTsKQEAgLTEzNzQsNyArMTM4MSw3IEBAIHNo b3dfb21wX25hbWVsaXN0IChpbnQgbGlzdF90eXBlLCBnZmNfb21wX25hbWVsaXN0ICpuKQog CSAgZGVmYXVsdDogYnJlYWs7CiAJICB9CiAgICAgICBlbHNlIGlmIChsaXN0X3R5cGUgPT0g T01QX0xJU1RfREVQRU5EKQotCXN3aXRjaCAobi0+dS5kZXBlbmRfb3ApCisJc3dpdGNoIChu LT51LmRlcGVuZF9kb2Fjcm9zc19vcCkKIAkgIHsKIAkgIGNhc2UgT01QX0RFUEVORF9JTjog ZnB1dHMgKCJpbjoiLCBkdW1wZmlsZSk7IGJyZWFrOwogCSAgY2FzZSBPTVBfREVQRU5EX09V VDogZnB1dHMgKCJvdXQ6IiwgZHVtcGZpbGUpOyBicmVhazsKQEAgLTEzODUsMTAgKzEzOTIs MTQgQEAgc2hvd19vbXBfbmFtZWxpc3QgKGludCBsaXN0X3R5cGUsIGdmY19vbXBfbmFtZWxp c3QgKm4pCiAJICAgIGZwdXRzICgibXV0ZXhpbm91dHNldDoiLCBkdW1wZmlsZSk7CiAJICAg IGJyZWFrOwogCSAgY2FzZSBPTVBfREVQRU5EX1NJTktfRklSU1Q6CisJICBjYXNlIE9NUF9E T0FDUk9TU19TSU5LX0ZJUlNUOgogCSAgICBmcHV0cyAoInNpbms6IiwgZHVtcGZpbGUpOwog CSAgICB3aGlsZSAoMSkKIAkgICAgICB7Ci0JCWZwcmludGYgKGR1bXBmaWxlLCAiJXMiLCBu LT5zeW0tPm5hbWUpOworCQlpZiAoIW4tPnN5bSkKKwkJICBmcHV0cyAoIm9tcF9jdXJfaXRl cmF0aW9uIiwgZHVtcGZpbGUpOworCQllbHNlCisJCSAgZnByaW50ZiAoZHVtcGZpbGUsICIl cyIsIG4tPnN5bS0+bmFtZSk7CiAJCWlmIChuLT5leHByKQogCQkgIHsKIAkJICAgIGZwdXRj ICgnKycsIGR1bXBmaWxlKTsKQEAgLTEzOTYsOSArMTQwNywxMyBAQCBzaG93X29tcF9uYW1l bGlzdCAoaW50IGxpc3RfdHlwZSwgZ2ZjX29tcF9uYW1lbGlzdCAqbikKIAkJICB9CiAJCWlm IChuLT5uZXh0ID09IE5VTEwpCiAJCSAgYnJlYWs7Ci0JCWVsc2UgaWYgKG4tPm5leHQtPnUu ZGVwZW5kX29wICE9IE9NUF9ERVBFTkRfU0lOSykKKwkJZWxzZSBpZiAobi0+bmV4dC0+dS5k ZXBlbmRfZG9hY3Jvc3Nfb3AgIT0gT01QX0RPQUNST1NTX1NJTkspCiAJCSAgewotCQkgICAg ZnB1dHMgKCIpIERFUEVORCgiLCBkdW1wZmlsZSk7CisJCSAgICBpZiAobi0+bmV4dC0+dS5k ZXBlbmRfZG9hY3Jvc3Nfb3AKKwkJCT09IE9NUF9ET0FDUk9TU19TSU5LX0ZJUlNUKQorCQkg ICAgICBmcHV0cyAoIikgRE9BQ1JPU1MoIiwgZHVtcGZpbGUpOworCQkgICAgZWxzZQorCQkg ICAgICBmcHV0cyAoIikgREVQRU5EKCIsIGR1bXBmaWxlKTsKIAkJICAgIGJyZWFrOwogCQkg IH0KIAkJZnB1dGMgKCcsJywgZHVtcGZpbGUpOwpAQCAtMTY3NCw3ICsxNjg5LDE0IEBAIHNo b3dfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMpCiAJICBjYXNl IE9NUF9MSVNUX0FGRklOSVRZOiB0eXBlID0gIkFGRklOSVRZIjsgYnJlYWs7CiAJICBjYXNl IE9NUF9MSVNUX0FMSUdORUQ6IHR5cGUgPSAiQUxJR05FRCI7IGJyZWFrOwogCSAgY2FzZSBP TVBfTElTVF9MSU5FQVI6IHR5cGUgPSAiTElORUFSIjsgYnJlYWs7Ci0JICBjYXNlIE9NUF9M SVNUX0RFUEVORDogdHlwZSA9ICJERVBFTkQiOyBicmVhazsKKwkgIGNhc2UgT01QX0xJU1Rf REVQRU5EOgorCSAgICBpZiAob21wX2NsYXVzZXMtPmxpc3RzW2xpc3RfdHlwZV0KKwkJJiYg KG9tcF9jbGF1c2VzLT5saXN0c1tsaXN0X3R5cGVdLT51LmRlcGVuZF9kb2Fjcm9zc19vcAor CQkgICAgPT0gT01QX0RPQUNST1NTX1NJTktfRklSU1QpKQorCSAgICAgIHR5cGUgPSAiRE9B Q1JPU1MiOworCSAgICBlbHNlCisJICAgICAgdHlwZSA9ICJERVBFTkQiOworCSAgICBicmVh azsKIAkgIGNhc2UgT01QX0xJU1RfTUFQOiB0eXBlID0gIk1BUCI7IGJyZWFrOwogCSAgY2Fz ZSBPTVBfTElTVF9UTzogdHlwZSA9ICJUTyI7IGJyZWFrOwogCSAgY2FzZSBPTVBfTElTVF9G Uk9NOiB0eXBlID0gIkZST00iOyBicmVhazsKQEAgLTE4OTQsNiArMTkxNiw4IEBAIHNob3df b21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMpCiAgICAgZnB1dHMg KCIgREVTVFJPWSIsIGR1bXBmaWxlKTsKICAgaWYgKG9tcF9jbGF1c2VzLT5kZXBlbmRfc291 cmNlKQogICAgIGZwdXRzICgiIERFUEVORChzb3VyY2UpIiwgZHVtcGZpbGUpOworICBpZiAo b21wX2NsYXVzZXMtPmRvYWNyb3NzX3NvdXJjZSkKKyAgICBmcHV0cyAoIiBET0FDUk9TUyhz b3VyY2U6KSIsIGR1bXBmaWxlKTsKICAgaWYgKG9tcF9jbGF1c2VzLT5jYXB0dXJlKQogICAg IGZwdXRzICgiIENBUFRVUkUiLCBkdW1wZmlsZSk7CiAgIGlmIChvbXBfY2xhdXNlcy0+ZGVw b2JqX3VwZGF0ZSAhPSBPTVBfREVQRU5EX1VOU0VUKQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRy YW4vZ2ZvcnRyYW4uaCBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKaW5kZXggNjk2YWFkZDdk YjYuLjRiYWJkNzc5MjRiIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9nZm9ydHJhbi5oCisr KyBiL2djYy9mb3J0cmFuL2dmb3J0cmFuLmgKQEAgLTEyNjUsNyArMTI2NSw3IEBAIGVudW0g Z2ZjX29tcF9yZWR1Y3Rpb25fb3AKICAgT01QX1JFRFVDVElPTl9VU0VSCiB9OwogCi1lbnVt IGdmY19vbXBfZGVwZW5kX29wCitlbnVtIGdmY19vbXBfZGVwZW5kX2RvYWNyb3NzX29wCiB7 CiAgIE9NUF9ERVBFTkRfVU5TRVQsCiAgIE9NUF9ERVBFTkRfSU4sCkBAIC0xMjc1LDcgKzEy NzUsOCBAQCBlbnVtIGdmY19vbXBfZGVwZW5kX29wCiAgIE9NUF9ERVBFTkRfTVVURVhJTk9V VFNFVCwKICAgT01QX0RFUEVORF9ERVBPQkosCiAgIE9NUF9ERVBFTkRfU0lOS19GSVJTVCwK LSAgT01QX0RFUEVORF9TSU5LCisgIE9NUF9ET0FDUk9TU19TSU5LX0ZJUlNULAorICBPTVBf RE9BQ1JPU1NfU0lOSwogfTsKIAogZW51bSBnZmNfb21wX21hcF9vcApAQCAtMTM0Myw3ICsx MzQ0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2ZjX29tcF9uYW1lbGlzdAogICB1bmlvbgogICAg IHsKICAgICAgIGdmY19vbXBfcmVkdWN0aW9uX29wIHJlZHVjdGlvbl9vcDsKLSAgICAgIGdm Y19vbXBfZGVwZW5kX29wIGRlcGVuZF9vcDsKKyAgICAgIGdmY19vbXBfZGVwZW5kX2RvYWNy b3NzX29wIGRlcGVuZF9kb2Fjcm9zc19vcDsKICAgICAgIGdmY19vbXBfbWFwX29wIG1hcF9v cDsKICAgICAgIHN0cnVjdAogCXsKQEAgLTE1MzYsMTcgKzE1MzcsMTcgQEAgdHlwZWRlZiBz dHJ1Y3QgZ2ZjX29tcF9jbGF1c2VzCiAgIHVuc2lnbmVkIG5vd2FpdDoxLCBvcmRlcmVkOjEs IHVudGllZDoxLCBtZXJnZWFibGU6MSwgYW5jZXN0b3I6MTsKICAgdW5zaWduZWQgaW5icmFu Y2g6MSwgbm90aW5icmFuY2g6MSwgbm9ncm91cDoxOwogICB1bnNpZ25lZCBzY2hlZF9zaW1k OjEsIHNjaGVkX21vbm90b25pYzoxLCBzY2hlZF9ub25tb25vdG9uaWM6MTsKLSAgdW5zaWdu ZWQgc2ltZDoxLCB0aHJlYWRzOjEsIGRlcGVuZF9zb3VyY2U6MSwgZGVzdHJveToxLCBvcmRl cl9jb25jdXJyZW50OjE7CisgIHVuc2lnbmVkIHNpbWQ6MSwgdGhyZWFkczoxLCBkb2Fjcm9z c19zb3VyY2U6MSwgZGVwZW5kX3NvdXJjZToxLCBkZXN0cm95OjE7CiAgIHVuc2lnbmVkIG9y ZGVyX3VuY29uc3RyYWluZWQ6MSwgb3JkZXJfcmVwcm9kdWNpYmxlOjEsIGNhcHR1cmU6MTsK ICAgdW5zaWduZWQgZ3JhaW5zaXplX3N0cmljdDoxLCBudW1fdGFza3Nfc3RyaWN0OjEsIGNv bXBhcmU6MSwgd2VhazoxOwotICB1bnNpZ25lZCBub25fcmVjdGFuZ3VsYXI6MTsKKyAgdW5z aWduZWQgbm9uX3JlY3Rhbmd1bGFyOjEsIG9yZGVyX2NvbmN1cnJlbnQ6MTsKICAgRU5VTV9C SVRGSUVMRCAoZ2ZjX29tcF9zY2hlZF9raW5kKSBzY2hlZF9raW5kOjM7CiAgIEVOVU1fQklU RklFTEQgKGdmY19vbXBfZGV2aWNlX3R5cGUpIGRldmljZV90eXBlOjI7CiAgIEVOVU1fQklU RklFTEQgKGdmY19vbXBfbWVtb3JkZXIpIG1lbW9yZGVyOjM7CiAgIEVOVU1fQklURklFTEQg KGdmY19vbXBfbWVtb3JkZXIpIGZhaWw6MzsKICAgRU5VTV9CSVRGSUVMRCAoZ2ZjX29tcF9j YW5jZWxfa2luZCkgY2FuY2VsOjM7CiAgIEVOVU1fQklURklFTEQgKGdmY19vbXBfcHJvY19i aW5kX2tpbmQpIHByb2NfYmluZDozOwotICBFTlVNX0JJVEZJRUxEIChnZmNfb21wX2RlcGVu ZF9vcCkgZGVwb2JqX3VwZGF0ZTo0OworICBFTlVNX0JJVEZJRUxEIChnZmNfb21wX2RlcGVu ZF9kb2Fjcm9zc19vcCkgZGVwb2JqX3VwZGF0ZTo0OwogICBFTlVNX0JJVEZJRUxEIChnZmNf b21wX2JpbmRfdHlwZSkgYmluZDoyOwogICBFTlVNX0JJVEZJRUxEIChnZmNfb21wX2F0X3R5 cGUpIGF0OjI7CiAgIEVOVU1fQklURklFTEQgKGdmY19vbXBfc2V2ZXJpdHlfdHlwZSkgc2V2 ZXJpdHk6MjsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wZW5tcC5jYyBiL2djYy9mb3J0 cmFuL29wZW5tcC5jYwppbmRleCA1OTQ5MDc3MTRmZi4uNTE0MmZkN2M2MDggMTAwNjQ0Ci0t LSBhL2djYy9mb3J0cmFuL29wZW5tcC5jYworKysgYi9nY2MvZm9ydHJhbi9vcGVubXAuY2MK QEAgLTU3NSwxMSArNTc1LDEzIEBAIHN5bnRheF9lcnJvcjoKIAogfQogCi0vKiBNYXRjaCBk ZXBlbmQoc2luayA6IC4uLikgY29uc3RydWN0IGEgbmFtZWxpc3QgZnJvbSBpdC4gICovCisv KiBNYXRjaCBkb2Fjcm9zcyhzaW5rIDogLi4uKSBjb25zdHJ1Y3QgYSBuYW1lbGlzdCBmcm9t IGl0OworICAgaWYgZGVwZW5kIGlzIHRydWUsIG1hdGNoIGxlZ2FjeSAnZGVwZW5kKHNpbmsg OiAuLi4pJy4gICovCiAKIHN0YXRpYyBtYXRjaAotZ2ZjX21hdGNoX29tcF9kZXBlbmRfc2lu ayAoZ2ZjX29tcF9uYW1lbGlzdCAqKmxpc3QpCitnZmNfbWF0Y2hfb21wX2RvYWNyb3NzX3Np bmsgKGdmY19vbXBfbmFtZWxpc3QgKipsaXN0LCBib29sIGRlcGVuZCkKIHsKKyAgY2hhciBu W0dGQ19NQVhfU1lNQk9MX0xFTisxXTsKICAgZ2ZjX29tcF9uYW1lbGlzdCAqaGVhZCwgKnRh aWwsICpwOwogICBsb2N1cyBvbGRfbG9jLCBjdXJfbG9jOwogICBnZmNfc3ltYm9sICpzeW07 CkBAIC01OTEsNDkgKzU5Myw1MSBAQCBnZmNfbWF0Y2hfb21wX2RlcGVuZF9zaW5rIChnZmNf b21wX25hbWVsaXN0ICoqbGlzdCkKICAgZm9yICg7OykKICAgICB7CiAgICAgICBjdXJfbG9j ID0gZ2ZjX2N1cnJlbnRfbG9jdXM7Ci0gICAgICBzd2l0Y2ggKGdmY19tYXRjaF9zeW1ib2wg KCZzeW0sIDEpKQorCisgICAgICBpZiAoZ2ZjX21hdGNoX25hbWUgKG4pICE9IE1BVENIX1lF UykKKwlnb3RvIHN5bnRheDsKKyAgICAgIGlmIChVTkxJS0VMWSAoc3RyY21wIChuLCAib21w X2FsbF9tZW1vcnkiKSA9PSAwKSkKIAl7Ci0JY2FzZSBNQVRDSF9ZRVM6Ci0JICBnZmNfc2V0 X3N5bV9yZWZlcmVuY2VkIChzeW0pOwotCSAgcCA9IGdmY19nZXRfb21wX25hbWVsaXN0ICgp OwotCSAgaWYgKGhlYWQgPT0gTlVMTCkKLQkgICAgewotCSAgICAgIGhlYWQgPSB0YWlsID0g cDsKLQkgICAgICBoZWFkLT51LmRlcGVuZF9vcCA9IE9NUF9ERVBFTkRfU0lOS19GSVJTVDsK LQkgICAgfQotCSAgZWxzZQotCSAgICB7Ci0JICAgICAgdGFpbC0+bmV4dCA9IHA7Ci0JICAg ICAgdGFpbCA9IHRhaWwtPm5leHQ7Ci0JICAgICAgdGFpbC0+dS5kZXBlbmRfb3AgPSBPTVBf REVQRU5EX1NJTks7Ci0JICAgIH0KLQkgIHRhaWwtPnN5bSA9IHN5bTsKLQkgIHRhaWwtPmV4 cHIgPSBOVUxMOwotCSAgdGFpbC0+d2hlcmUgPSBjdXJfbG9jOwotCSAgaWYgKFVOTElLRUxZ IChzdHJjbXAgKHN5bS0+bmFtZSwgIm9tcF9hbGxfbWVtb3J5IikgPT0gMCkpCi0JICAgIHsK LQkgICAgICBnZmNfZXJyb3IgKCIlPG9tcF9hbGxfbWVtb3J5JT4gdXNlZCB3aXRoIERFUEVO RCBraW5kICIKLQkJCSAib3RoZXIgdGhhbiBPVVQgb3IgSU5PVVQgYXQgJUMiKTsKLQkgICAg ICBnb3RvIGNsZWFudXA7Ci0JICAgIH0KLQkgIGlmIChnZmNfbWF0Y2hfY2hhciAoJysnKSA9 PSBNQVRDSF9ZRVMpCi0JICAgIHsKLQkgICAgICBpZiAoZ2ZjX21hdGNoX2xpdGVyYWxfY29u c3RhbnQgKCZ0YWlsLT5leHByLCAwKSAhPSBNQVRDSF9ZRVMpCi0JCWdvdG8gc3ludGF4Owot CSAgICB9Ci0JICBlbHNlIGlmIChnZmNfbWF0Y2hfY2hhciAoJy0nKSA9PSBNQVRDSF9ZRVMp Ci0JICAgIHsKLQkgICAgICBpZiAoZ2ZjX21hdGNoX2xpdGVyYWxfY29uc3RhbnQgKCZ0YWls LT5leHByLCAwKSAhPSBNQVRDSF9ZRVMpCi0JCWdvdG8gc3ludGF4OwotCSAgICAgIHRhaWwt PmV4cHIgPSBnZmNfdW1pbnVzICh0YWlsLT5leHByKTsKLQkgICAgfQotCSAgYnJlYWs7Ci0J Y2FzZSBNQVRDSF9OTzoKLQkgIGdvdG8gc3ludGF4OwotCWNhc2UgTUFUQ0hfRVJST1I6CisJ ICBnZmNfZXJyb3IgKCIlPG9tcF9hbGxfbWVtb3J5JT4gdXNlZCB3aXRoIGRlcGVuZGVuY2Ut dHlwZSAiCisJCSAgICAgIm90aGVyIHRoYW4gT1VUIG9yIElOT1VUIGF0ICVDIik7CiAJICBn b3RvIGNsZWFudXA7CiAJfQotCisgICAgICBzeW0gPSBOVUxMOworICAgICAgaWYgKCEoc3Ry Y21wIChuLCAib21wX2N1cl9pdGVyYXRpb24iKSA9PSAwKSkKKwl7CisJICBnZmNfc3ltdHJl ZSAqc3Q7CisJICBpZiAoZ2ZjX2dldF9oYV9zeW1fdHJlZSAobiwgJnN0KSkKKwkgICAgZ290 byBzeW50YXg7CisJICBzeW0gPSBzdC0+bi5zeW07CisJICBnZmNfc2V0X3N5bV9yZWZlcmVu Y2VkIChzeW0pOworCX0KKyAgICAgIHAgPSBnZmNfZ2V0X29tcF9uYW1lbGlzdCAoKTsKKyAg ICAgIGlmIChoZWFkID09IE5VTEwpCisJeworCSAgaGVhZCA9IHRhaWwgPSBwOworCSAgaGVh ZC0+dS5kZXBlbmRfZG9hY3Jvc3Nfb3AgPSAoZGVwZW5kID8gT01QX0RFUEVORF9TSU5LX0ZJ UlNUCisJCQkJCSAgICAgICA6IE9NUF9ET0FDUk9TU19TSU5LX0ZJUlNUKTsKKwl9CisgICAg ICBlbHNlCisJeworCSAgdGFpbC0+bmV4dCA9IHA7CisJICB0YWlsID0gdGFpbC0+bmV4dDsK KwkgIHRhaWwtPnUuZGVwZW5kX2RvYWNyb3NzX29wID0gT01QX0RPQUNST1NTX1NJTks7CisJ fQorICAgICAgdGFpbC0+c3ltID0gc3ltOworICAgICAgdGFpbC0+ZXhwciA9IE5VTEw7Cisg ICAgICB0YWlsLT53aGVyZSA9IGN1cl9sb2M7CisgICAgICBpZiAoZ2ZjX21hdGNoX2NoYXIg KCcrJykgPT0gTUFUQ0hfWUVTKQorCXsKKwkgIGlmIChnZmNfbWF0Y2hfbGl0ZXJhbF9jb25z dGFudCAoJnRhaWwtPmV4cHIsIDApICE9IE1BVENIX1lFUykKKwkgICAgZ290byBzeW50YXg7 CisJfQorICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoX2NoYXIgKCctJykgPT0gTUFUQ0hfWUVT KQorCXsKKwkgIGlmIChnZmNfbWF0Y2hfbGl0ZXJhbF9jb25zdGFudCAoJnRhaWwtPmV4cHIs IDApICE9IE1BVENIX1lFUykKKwkgICAgZ290byBzeW50YXg7CisJICB0YWlsLT5leHByID0g Z2ZjX3VtaW51cyAodGFpbC0+ZXhwcik7CisJfQogICAgICAgaWYgKGdmY19tYXRjaF9jaGFy ICgnKScpID09IE1BVENIX1lFUykKIAlicmVhazsKICAgICAgIGlmIChnZmNfbWF0Y2hfY2hh ciAoJywnKSAhPSBNQVRDSF9ZRVMpCkBAIC02NDcsNyArNjUxLDcgQEAgZ2ZjX21hdGNoX29t cF9kZXBlbmRfc2luayAoZ2ZjX29tcF9uYW1lbGlzdCAqKmxpc3QpCiAgIHJldHVybiBNQVRD SF9ZRVM7CiAKIHN5bnRheDoKLSAgZ2ZjX2Vycm9yICgiU3ludGF4IGVycm9yIGluIE9wZW5N UCBERVBFTkQgU0lOSyBsaXN0IGF0ICVDIik7CisgIGdmY19lcnJvciAoIlN5bnRheCBlcnJv ciBpbiBPcGVuTVAgU0lOSyBkZXBlbmRlbmNlLXR5cGUgbGlzdCBhdCAlQyIpOwogCiBjbGVh bnVwOgogICBnZmNfZnJlZV9vbXBfbmFtZWxpc3QgKGhlYWQsIGZhbHNlKTsKQEAgLTk4Nyw2 ICs5OTEsNyBAQCBlbnVtIG9tcF9tYXNrMgogICBPTVBfQ0xBVVNFX05PSE9TVCwKICAgT01Q X0NMQVVTRV9IQVNfREVWSUNFX0FERFIsICAvKiBPcGVuTVAgNS4xICAqLwogICBPTVBfQ0xB VVNFX0VOVEVSLCAvKiBPcGVuTVAgNS4yICovCisgIE9NUF9DTEFVU0VfRE9BQ1JPU1MsIC8q IE9wZW5NUCA1LjIgKi8KICAgLyogVGhpcyBtdXN0IGNvbWUgbGFzdC4gICovCiAgIE9NUF9N QVNLMl9MQVNUCiB9OwpAQCAtMTkwMywxOCArMTkwOCwyNiBAQCBnZmNfbWF0Y2hfb21wX2Ns YXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqKmNwLCBjb25zdCBvbXBfbWFzayBtYXNrLAogCQkJ CQkgICBPTVBfTUFQX1JFTEVBU0UsIHRydWUsCiAJCQkJCSAgIGFsbG93X2Rlcml2ZWQpKQog CSAgICBjb250aW51ZTsKLQkgIGlmICgobWFzayAmIE9NUF9DTEFVU0VfREVQRU5EKQotCSAg ICAgICYmIGdmY19tYXRjaCAoImRlcGVuZCAoICIpID09IE1BVENIX1lFUykKKwkgIC8qIERP QUNST1NTOiBtYXRjaCAnZG9hY3Jvc3MnIGFuZCAnZGVwZW5kJyB3aXRoIHNpbmsvc291cmNl LgorCSAgICAgREVQRU5EOiBtYXRjaCAnZGVwZW5kJyBidXQgbm90IHNpbmsvc291cmNlLiAg Ki8KKwkgIG0gPSBNQVRDSF9OTzsKKwkgIGlmICgoKG1hc2sgJiBPTVBfQ0xBVVNFX0RPQUNS T1NTKQorCSAgICAgICAmJiBnZmNfbWF0Y2ggKCJkb2Fjcm9zcyAoICIpID09IE1BVENIX1lF UykKKwkgICAgICB8fCAoKChtYXNrICYgT01QX0NMQVVTRV9ERVBFTkQpIHx8IChtYXNrICYg T01QX0NMQVVTRV9ET0FDUk9TUykpCisJCSAgJiYgKG0gPSBnZmNfbWF0Y2ggKCJkZXBlbmQg KCAiKSkgPT0gTUFUQ0hfWUVTKSkKIAkgICAgewogCSAgICAgIGJvb2wgaGFzX29tcF9hbGxf bWVtb3J5OworCSAgICAgIGJvb2wgaXNfZGVwZW5kID0gbSA9PSBNQVRDSF9ZRVM7CiAJICAg ICAgZ2ZjX25hbWVzcGFjZSAqbnNfaXRlciA9IE5VTEwsICpuc19jdXJyID0gZ2ZjX2N1cnJl bnRfbnM7Ci0JICAgICAgbWF0Y2ggbV9pdCA9IGdmY19tYXRjaF9pdGVyYXRvciAoJm5zX2l0 ZXIsIGZhbHNlKTsKKwkgICAgICBtYXRjaCBtX2l0ID0gTUFUQ0hfTk87CisJICAgICAgaWYg KGlzX2RlcGVuZCkKKwkJbV9pdCA9IGdmY19tYXRjaF9pdGVyYXRvciAoJm5zX2l0ZXIsIGZh bHNlKTsKIAkgICAgICBpZiAobV9pdCA9PSBNQVRDSF9FUlJPUikKIAkJYnJlYWs7CiAJICAg ICAgaWYgKG1faXQgPT0gTUFUQ0hfWUVTICYmIGdmY19tYXRjaCAoIiAsICIpICE9IE1BVENI X1lFUykKIAkJYnJlYWs7CiAJICAgICAgbSA9IE1BVENIX1lFUzsKLQkgICAgICBnZmNfb21w X2RlcGVuZF9vcCBkZXBlbmRfb3AgPSBPTVBfREVQRU5EX09VVDsKKwkgICAgICBnZmNfb21w X2RlcGVuZF9kb2Fjcm9zc19vcCBkZXBlbmRfb3AgPSBPTVBfREVQRU5EX09VVDsKIAkgICAg ICBpZiAoZ2ZjX21hdGNoICgiaW5vdXRzZXQiKSA9PSBNQVRDSF9ZRVMpCiAJCWRlcGVuZF9v cCA9IE9NUF9ERVBFTkRfSU5PVVRTRVQ7CiAJICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgi aW5vdXQiKSA9PSBNQVRDSF9ZRVMpCkBAIC0xOTI3LDM0ICsxOTQwLDc3IEBAIGdmY19tYXRj aF9vbXBfY2xhdXNlcyAoZ2ZjX29tcF9jbGF1c2VzICoqY3AsIGNvbnN0IG9tcF9tYXNrIG1h c2ssCiAJCWRlcGVuZF9vcCA9IE9NUF9ERVBFTkRfTVVURVhJTk9VVFNFVDsKIAkgICAgICBl bHNlIGlmIChnZmNfbWF0Y2ggKCJkZXBvYmoiKSA9PSBNQVRDSF9ZRVMpCiAJCWRlcGVuZF9v cCA9IE9NUF9ERVBFTkRfREVQT0JKOwotCSAgICAgIGVsc2UgaWYgKCFjLT5kZXBlbmRfc291 cmNlCi0JCSAgICAgICAmJiBnZmNfbWF0Y2ggKCJzb3VyY2UgKSIpID09IE1BVENIX1lFUykK KwkgICAgICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJzb3VyY2UiKSA9PSBNQVRDSF9ZRVMpCiAJ CXsKIAkJICBpZiAobV9pdCA9PSBNQVRDSF9ZRVMpCiAJCSAgICB7CiAJCSAgICAgIGdmY19l cnJvciAoIklURVJBVE9SIG1heSBub3QgYmUgY29tYmluZWQgd2l0aCBTT1VSQ0UgIgogCQkJ CSAiYXQgJUMiKTsKLQkJICAgICAgZ2ZjX2ZyZWVfb21wX2NsYXVzZXMgKGMpOwotCQkgICAg ICByZXR1cm4gTUFUQ0hfRVJST1I7CisJCSAgICAgIGdvdG8gZXJyb3I7CisJCSAgICB9CisJ CSAgaWYgKCEobWFzayAmIE9NUF9DTEFVU0VfRE9BQ1JPU1MpKQorCQkgICAgeworCQkgICAg ICBnZmNfZXJyb3IgKCJTT1VSQ0UgYXQgJUMgbm90IHBlcm1pdHRlZCBhcyBkZXBlbmRlbmNl LXR5cGUiCisJCQkJICIgZm9yIHRoaXMgZGlyZWN0aXZlIik7CisJCSAgICAgIGdvdG8gZXJy b3I7CisJCSAgICB9CisJCSAgaWYgKGMtPmRvYWNyb3NzX3NvdXJjZSkKKwkJICAgIHsKKwkJ ICAgICAgZ2ZjX2Vycm9yICgiRHVwbGljYXRlZCBjbGF1c2Ugd2l0aCBTT1VSQ0UgZGVwZW5k ZW5jZS10eXBlIgorCQkJCSAiIGF0ICVDIik7CisJCSAgICAgIGdvdG8gZXJyb3I7CisJCSAg ICB9CisJCSAgZ2ZjX2dvYmJsZV93aGl0ZXNwYWNlICgpOworCQkgIG0gPSBnZmNfbWF0Y2gg KCI6ICIpOworCQkgIGlmIChtICE9IE1BVENIX1lFUyAmJiAhaXNfZGVwZW5kKQorCQkgICAg eworCQkgICAgICBnZmNfZXJyb3IgKCJFeHBlY3RlZCAlPDolPiBhdCAlQyIpOworCQkgICAg ICBnb3RvIGVycm9yOwogCQkgICAgfQotCQkgIGMtPmRlcGVuZF9zb3VyY2UgPSB0cnVlOwor CQkgIGlmIChnZmNfbWF0Y2ggKCIpIikgIT0gTUFUQ0hfWUVTCisJCSAgICAgICYmICEobSA9 PSBNQVRDSF9ZRVMKKwkJCSAgICYmIGdmY19tYXRjaCAoIm9tcF9jdXJfaXRlcmF0aW9uICki KSA9PSBNQVRDSF9ZRVMpKQorCQkgICAgeworCQkgICAgICBnZmNfZXJyb3IgKCJFeHBlY3Rl ZCAlPCklPiBvciAlPG9tcF9jdXJfaXRlcmF0aW9uKSU+ICIKKwkJCQkgImF0ICVDIik7CisJ CSAgICAgIGdvdG8gZXJyb3I7CisJCSAgICB9CisJCSAgYy0+ZG9hY3Jvc3Nfc291cmNlID0g dHJ1ZTsKKwkJICBjLT5kZXBlbmRfc291cmNlID0gaXNfZGVwZW5kOwogCQkgIGNvbnRpbnVl OwogCQl9Ci0JICAgICAgZWxzZSBpZiAoZ2ZjX21hdGNoICgic2luayA6ICIpID09IE1BVENI X1lFUykKKwkgICAgICBlbHNlIGlmIChnZmNfbWF0Y2ggKCJzaW5rICIpID09IE1BVENIX1lF UykKIAkJeworCQkgIGlmICghKG1hc2sgJiBPTVBfQ0xBVVNFX0RPQUNST1NTKSkKKwkJICAg IHsKKwkJICAgICAgZ2ZjX2Vycm9yICgiU0lOSyBhdCAlQyBub3QgcGVybWl0dGVkIGFzIGRl cGVuZGVuY2UtdHlwZSAiCisJCQkJICJmb3IgdGhpcyBkaXJlY3RpdmUiKTsKKwkJICAgICAg Z290byBlcnJvcjsKKwkJICAgIH0KKwkJICBpZiAoZ2ZjX21hdGNoICgiOiAiKSAhPSBNQVRD SF9ZRVMpCisJCSAgICB7CisJCSAgICAgIGdmY19lcnJvciAoIkV4cGVjdGVkICU8OiU+IGF0 ICVDIik7CisJCSAgICAgIGdvdG8gZXJyb3I7CisJCSAgICB9CiAJCSAgaWYgKG1faXQgPT0g TUFUQ0hfWUVTKQogCQkgICAgewogCQkgICAgICBnZmNfZXJyb3IgKCJJVEVSQVRPUiBtYXkg bm90IGJlIGNvbWJpbmVkIHdpdGggU0lOSyAiCiAJCQkJICJhdCAlQyIpOwotCQkgICAgICBi cmVhazsKKwkJICAgICAgZ290byBlcnJvcjsKIAkJICAgIH0KLQkJICBpZiAoZ2ZjX21hdGNo X29tcF9kZXBlbmRfc2luayAoJmMtPmxpc3RzW09NUF9MSVNUX0RFUEVORF0pCi0JCSAgICAg ID09IE1BVENIX1lFUykKKwkJICBtID0gZ2ZjX21hdGNoX29tcF9kb2Fjcm9zc19zaW5rICgm Yy0+bGlzdHNbT01QX0xJU1RfREVQRU5EXSwKKwkJCQkJCSAgIGlzX2RlcGVuZCk7CisJCSAg aWYgKG0gPT0gTUFUQ0hfWUVTKQogCQkgICAgY29udGludWU7Ci0JCSAgbSA9IE1BVENIX05P OworCQkgIGdvdG8gZXJyb3I7CiAJCX0KIAkgICAgICBlbHNlCiAJCW0gPSBNQVRDSF9OTzsK KwkgICAgICBpZiAoIShtYXNrICYgT01QX0NMQVVTRV9ERVBFTkQpKQorCQl7CisJCSAgZ2Zj X2Vycm9yICgiRXhwZWN0ZWQgZGVwZW5kZW5jZS10eXBlIFNJTksgb3IgU09VUkNFIGF0ICVD Iik7CisJCSAgZ290byBlcnJvcjsKKwkJfQogCSAgICAgIGhlYWQgPSBOVUxMOwogCSAgICAg IGlmIChuc19pdGVyKQogCQlnZmNfY3VycmVudF9ucyA9IG5zX2l0ZXI7CkBAIC0xOTc2LDcg KzIwMzIsNyBAQCBnZmNfbWF0Y2hfb21wX2NsYXVzZXMgKGdmY19vbXBfY2xhdXNlcyAqKmNw LCBjb25zdCBvbXBfbWFzayBtYXNrLAogCSAgICAgIGdmY19vbXBfbmFtZWxpc3QgKm47CiAJ ICAgICAgZm9yIChuID0gKmhlYWQ7IG47IG4gPSBuLT5uZXh0KQogCQl7Ci0JCSAgbi0+dS5k ZXBlbmRfb3AgPSBkZXBlbmRfb3A7CisJCSAgbi0+dS5kZXBlbmRfZG9hY3Jvc3Nfb3AgPSBk ZXBlbmRfb3A7CiAJCSAgbi0+dTIubnMgPSBuc19pdGVyOwogCQkgIGlmIChuc19pdGVyKQog CQkgICAgbnNfaXRlci0+cmVmcysrOwpAQCAtMzk3MSwxOCArNDAyNywxNSBAQCBnZmNfbWF0 Y2hfb21wX2RlcG9iaiAodm9pZCkKIAogICBpZiAoYy0+ZGVwb2JqX3VwZGF0ZSA9PSBPTVBf REVQRU5EX1VOU0VUICYmICFjLT5kZXN0cm95KQogICAgIHsKLSAgICAgIGlmICghYy0+ZGVw ZW5kX3NvdXJjZSAmJiAhYy0+bGlzdHNbT01QX0xJU1RfREVQRU5EXSkKKyAgICAgIGlmICgh Yy0+ZG9hY3Jvc3Nfc291cmNlICYmICFjLT5saXN0c1tPTVBfTElTVF9ERVBFTkRdKQogCXsK IAkgIGdmY19lcnJvciAoIkV4cGVjdGVkIERFUEVORCwgVVBEQVRFLCBvciBERVNUUk9ZIGNs YXVzZSBhdCAlQyIpOwogCSAgZ290byBlcnJvcjsKIAl9Ci0gICAgICBpZiAoYy0+ZGVwZW5k X3NvdXJjZQotCSAgfHwgYy0+bGlzdHNbT01QX0xJU1RfREVQRU5EXS0+dS5kZXBlbmRfb3Ag PT0gT01QX0RFUEVORF9TSU5LX0ZJUlNUCi0JICB8fCBjLT5saXN0c1tPTVBfTElTVF9ERVBF TkRdLT51LmRlcGVuZF9vcCA9PSBPTVBfREVQRU5EX1NJTksKLQkgIHx8IGMtPmxpc3RzW09N UF9MSVNUX0RFUEVORF0tPnUuZGVwZW5kX29wID09IE9NUF9ERVBFTkRfREVQT0JKKQorICAg ICAgaWYgKGMtPmxpc3RzW09NUF9MSVNUX0RFUEVORF0tPnUuZGVwZW5kX2RvYWNyb3NzX29w ID09IE9NUF9ERVBFTkRfREVQT0JKKQogCXsKIAkgIGdmY19lcnJvciAoIkRFUEVORCBjbGF1 c2UgYXQgJUwgb2YgT01QIERFUE9CSiBjb25zdHJ1Y3Qgc2hhbGwgbm90ICIKLQkJICAgICAi aGF2ZSBkZXBlbmRlbmNlLXR5cGUgU09VUkNFLCBTSU5LIG9yIERFUE9CSiIsCisJCSAgICAg ImhhdmUgZGVwZW5kZW5jZS10eXBlIERFUE9CSiIsCiAJCSAgICAgYy0+bGlzdHNbT01QX0xJ U1RfREVQRU5EXQogCQkgICAgID8gJmMtPmxpc3RzW09NUF9MSVNUX0RFUEVORF0tPndoZXJl IDogJmdmY19jdXJyZW50X2xvY3VzKTsKIAkgIGdvdG8gZXJyb3I7CkBAIC01OTg4LDcgKzYw NDEsNyBAQCBnZmNfbWF0Y2hfb21wX25vdGhpbmcgKHZvaWQpCiBtYXRjaAogZ2ZjX21hdGNo X29tcF9vcmRlcmVkX2RlcGVuZCAodm9pZCkKIHsKLSAgcmV0dXJuIG1hdGNoX29tcCAoRVhF Q19PTVBfT1JERVJFRCwgb21wX21hc2sgKE9NUF9DTEFVU0VfREVQRU5EKSk7CisgIHJldHVy biBtYXRjaF9vbXAgKEVYRUNfT01QX09SREVSRUQsIG9tcF9tYXNrIChPTVBfQ0xBVVNFX0RP QUNST1NTKSk7CiB9CiAKIApAQCAtNzA1NywxOCArNzExMCwxNiBAQCByZXNvbHZlX29tcF9j bGF1c2VzIChnZmNfY29kZSAqY29kZSwgZ2ZjX29tcF9jbGF1c2VzICpvbXBfY2xhdXNlcywK IAogCQlpZiAobGlzdCA9PSBPTVBfTElTVF9ERVBFTkQpCiAJCSAgewotCQkgICAgaWYgKG4t PnUuZGVwZW5kX29wID09IE9NUF9ERVBFTkRfU0lOS19GSVJTVAotCQkJfHwgbi0+dS5kZXBl bmRfb3AgPT0gT01QX0RFUEVORF9TSU5LKQorCQkgICAgaWYgKG4tPnUuZGVwZW5kX2RvYWNy b3NzX29wID09IE9NUF9ERVBFTkRfU0lOS19GSVJTVAorCQkJfHwgbi0+dS5kZXBlbmRfZG9h Y3Jvc3Nfb3AgPT0gT01QX0RPQUNST1NTX1NJTktfRklSU1QKKwkJCXx8IG4tPnUuZGVwZW5k X2RvYWNyb3NzX29wID09IE9NUF9ET0FDUk9TU19TSU5LKQogCQkgICAgICB7Ci0JCQlpZiAo Y29kZS0+b3AgIT0gRVhFQ19PTVBfT1JERVJFRCkKLQkJCSAgZ2ZjX2Vycm9yICgiU0lOSyBk ZXBlbmRlbmNlIHR5cGUgb25seSBhbGxvd2VkICIKLQkJCQkgICAgICJvbiBPUkRFUkVEIGRp cmVjdGl2ZSBhdCAlTCIsICZuLT53aGVyZSk7Ci0JCQllbHNlIGlmIChvbXBfY2xhdXNlcy0+ ZGVwZW5kX3NvdXJjZSkKKwkJCWlmIChvbXBfY2xhdXNlcy0+ZG9hY3Jvc3Nfc291cmNlKQog CQkJICB7Ci0JCQkgICAgZ2ZjX2Vycm9yICgiREVQRU5EIFNJTksgdXNlZCB0b2dldGhlciB3 aXRoICIKLQkJCQkgICAgICAgIkRFUEVORCBTT1VSQ0Ugb24gdGhlIHNhbWUgY29uc3RydWN0 ICIKLQkJCQkgICAgICAgImF0ICVMIiwgJm4tPndoZXJlKTsKLQkJCSAgICBvbXBfY2xhdXNl cy0+ZGVwZW5kX3NvdXJjZSA9IGZhbHNlOworCQkJICAgIGdmY19lcnJvciAoIkRlcGVuZGVu Y2UtdHlwZSBTSU5LIHVzZWQgdG9nZXRoZXIgd2l0aCIKKwkJCQkgICAgICAgIiBTT1VSQ0Ug b24gdGhlIHNhbWUgY29uc3RydWN0IGF0ICVMIiwKKwkJCQkgICAgICAgJm4tPndoZXJlKTsK KwkJCSAgICBvbXBfY2xhdXNlcy0+ZG9hY3Jvc3Nfc291cmNlID0gZmFsc2U7CiAJCQkgIH0K IAkJCWVsc2UgaWYgKG4tPmV4cHIpCiAJCQkgIHsKQEAgLTcwNzgsMTMgKzcxMjksMTQgQEAg cmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAq b21wX2NsYXVzZXMsCiAJCQkgICAgICBnZmNfZXJyb3IgKCJTSU5LIGFkZGVuZCBub3QgYSBj b25zdGFudCBpbnRlZ2VyICIKIAkJCQkJICJhdCAlTCIsICZuLT53aGVyZSk7CiAJCQkgIH0K KwkJCWlmIChuLT5zeW0gPT0gTlVMTAorCQkJICAgICYmIChuLT5leHByID09IE5VTEwKKwkJ CQl8fCBtcHpfY21wX3NpIChuLT5leHByLT52YWx1ZS5pbnRlZ2VyLCAtMSkgIT0gMCkpCisJ CQkgIGdmY19lcnJvciAoIm9tcF9jdXJfaXRlcmF0aW9uIGF0ICVMIHJlcXVpcmVzICU8LTEl PiAiCisJCQkJICAgICAiYXMgbG9naWNhbCBvZmZzZXQiLCAmbi0+d2hlcmUpOwogCQkJY29u dGludWU7CiAJCSAgICAgIH0KLQkJICAgIGVsc2UgaWYgKGNvZGUtPm9wID09IEVYRUNfT01Q X09SREVSRUQpCi0JCSAgICAgIGdmY19lcnJvciAoIk9ubHkgU09VUkNFIG9yIFNJTksgZGVw ZW5kZW5jZSB0eXBlcyAiCi0JCQkJICJhcmUgYWxsb3dlZCBvbiBPUkRFUkVEIGRpcmVjdGl2 ZSBhdCAlTCIsCi0JCQkJICZuLT53aGVyZSk7Ci0JCSAgICBlbHNlIGlmIChuLT51LmRlcGVu ZF9vcCA9PSBPTVBfREVQRU5EX0RFUE9CSgorCQkgICAgZWxzZSBpZiAobi0+dS5kZXBlbmRf ZG9hY3Jvc3Nfb3AgPT0gT01QX0RFUEVORF9ERVBPQkoKIAkJCSAgICAgJiYgIW4tPmV4cHIK IAkJCSAgICAgJiYgKG4tPnN5bS0+dHMudHlwZSAhPSBCVF9JTlRFR0VSCiAJCQkJIHx8IG4t PnN5bS0+dHMua2luZApAQCAtNzA5NCw3ICs3MTQ2LDcgQEAgcmVzb2x2ZV9vbXBfY2xhdXNl cyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJCQkJ ICJ0eXBlIHNoYWxsIGJlIGEgc2NhbGFyIGludGVnZXIgb2YgIgogCQkJCSAiT01QX0RFUEVO RF9LSU5EIGtpbmQiLCBuLT5zeW0tPm5hbWUsCiAJCQkJICZuLT53aGVyZSk7Ci0JCSAgICBl bHNlIGlmIChuLT51LmRlcGVuZF9vcCA9PSBPTVBfREVQRU5EX0RFUE9CSgorCQkgICAgZWxz ZSBpZiAobi0+dS5kZXBlbmRfZG9hY3Jvc3Nfb3AgPT0gT01QX0RFUEVORF9ERVBPQkoKIAkJ CSAgICAgJiYgbi0+ZXhwcgogCQkJICAgICAmJiAoIWdmY19yZXNvbHZlX2V4cHIgKG4tPmV4 cHIpCiAJCQkJIHx8IG4tPmV4cHItPnRzLnR5cGUgIT0gQlRfSU5URUdFUgpAQCAtNzc2MCw5 ICs3ODEyLDYgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNvZGUsIGdmY19v bXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAgICAgcmVzb2x2ZV9zY2FsYXJfaW50X2V4cHIg KGVsLT5leHByLCAiV0FJVCIpOwogICBpZiAob21wX2NsYXVzZXMtPmNvbGxhcHNlICYmIG9t cF9jbGF1c2VzLT50aWxlX2xpc3QpCiAgICAgZ2ZjX2Vycm9yICgiSW5jb21wYXRpYmxlIHVz ZSBvZiBUSUxFIGFuZCBDT0xMQVBTRSBhdCAlTCIsICZjb2RlLT5sb2MpOwotICBpZiAob21w X2NsYXVzZXMtPmRlcGVuZF9zb3VyY2UgJiYgY29kZS0+b3AgIT0gRVhFQ19PTVBfT1JERVJF RCkKLSAgICBnZmNfZXJyb3IgKCJTT1VSQ0UgZGVwZW5kZW5jZSB0eXBlIG9ubHkgYWxsb3dl ZCAiCi0JICAgICAgICJvbiBPUkRFUkVEIGRpcmVjdGl2ZSBhdCAlTCIsICZjb2RlLT5sb2Mp OwogICBpZiAob21wX2NsYXVzZXMtPm1lc3NhZ2UpCiAgICAgewogICAgICAgZ2ZjX2V4cHIg KmV4cHIgPSBvbXBfY2xhdXNlcy0+bWVzc2FnZTsKQEAgLTk1NjUsNiArOTYxNCw3IEBAIGdm Y19yZXNvbHZlX29tcF9kaXJlY3RpdmUgKGdmY19jb2RlICpjb2RlLCBnZmNfbmFtZXNwYWNl ICpucykKICAgICBjYXNlIEVYRUNfT01QX0NBTkNFTDoKICAgICBjYXNlIEVYRUNfT01QX0VS Uk9SOgogICAgIGNhc2UgRVhFQ19PTVBfTUFTS0VEOgorICAgIGNhc2UgRVhFQ19PTVBfT1JE RVJFRDoKICAgICBjYXNlIEVYRUNfT01QX1BBUkFMTEVMX1dPUktTSEFSRToKICAgICBjYXNl IEVYRUNfT01QX1BBUkFMTEVMOgogICAgIGNhc2UgRVhFQ19PTVBfUEFSQUxMRUxfTUFTS0VE OgpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MgYi9nY2MvZm9ydHJhbi9wYXJz ZS5jYwppbmRleCA4MDQ5MmM5NTJhYS4uNWIxMzQ0MTkxMmEgMTAwNjQ0Ci0tLSBhL2djYy9m b3J0cmFuL3BhcnNlLmNjCisrKyBiL2djYy9mb3J0cmFuL3BhcnNlLmNjCkBAIC0xMDI2LDcg KzEwMjYsOCBAQCBkZWNvZGVfb21wX2RpcmVjdGl2ZSAodm9pZCkKICAgICAgIG1hdGNobyAo Imxvb3AiLCBnZmNfbWF0Y2hfb21wX2xvb3AsIFNUX09NUF9MT09QKTsKICAgICAgIGJyZWFr OwogICAgIGNhc2UgJ28nOgotICAgICAgaWYgKGdmY19tYXRjaCAoIm9yZGVyZWQgZGVwZW5k ICgiKSA9PSBNQVRDSF9ZRVMpCisgICAgICBpZiAoZ2ZjX21hdGNoICgib3JkZXJlZCBkZXBl bmQgKCIpID09IE1BVENIX1lFUworCSAgfHwgZ2ZjX21hdGNoICgib3JkZXJlZCBkb2Fjcm9z cyAoIikgPT0gTUFUQ0hfWUVTKQogCXsKIAkgIGdmY19jdXJyZW50X2xvY3VzID0gb2xkX2xv Y3VzOwogCSAgaWYgKCFmbGFnX29wZW5tcCkKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3Ry YW5zLW9wZW5tcC5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwppbmRleCA4MmMx MDc5YmMyOC4uMWJlN2QyM2Y4NmIgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLW9w ZW5tcC5jYworKysgYi9nY2MvZm9ydHJhbi90cmFucy1vcGVubXAuY2MKQEAgLTI4NjQsMTUg KzI4NjQsMTggQEAgZ2ZjX3RyYW5zX29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ss IGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcywKIAkJZ2ZjX2luaXRfYmxvY2sgKCZpdGVyX2Js b2NrKTsKIAkgICAgICBwcmV2ID0gbjsKIAkgICAgICBpZiAobGlzdCA9PSBPTVBfTElTVF9E RVBFTkQKLQkJICAmJiBuLT51LmRlcGVuZF9vcCA9PSBPTVBfREVQRU5EX1NJTktfRklSU1Qp CisJCSAgJiYgKG4tPnUuZGVwZW5kX2RvYWNyb3NzX29wID09IE9NUF9ET0FDUk9TU19TSU5L X0ZJUlNUCisJCSAgICAgIHx8IG4tPnUuZGVwZW5kX2RvYWNyb3NzX29wID09IE9NUF9ERVBF TkRfU0lOS19GSVJTVCkpCiAJCXsKIAkJICB0cmVlIHZlYyA9IE5VTExfVFJFRTsKIAkJICB1 bnNpZ25lZCBpbnQgaTsKKwkJICBib29sIGlzX2RlcGVuZAorCQkgICAgPSBuLT51LmRlcGVu ZF9kb2Fjcm9zc19vcCA9PSBPTVBfREVQRU5EX1NJTktfRklSU1Q7CiAJCSAgZm9yIChpID0g MDsgOyBpKyspCiAJCSAgICB7CiAJCSAgICAgIHRyZWUgYWRkZW5kID0gaW50ZWdlcl96ZXJv X25vZGUsIHQ7CiAJCSAgICAgIGJvb2wgbmVnID0gZmFsc2U7Ci0JCSAgICAgIGlmIChuLT5l eHByKQorCQkgICAgICBpZiAobi0+c3ltICYmIG4tPmV4cHIpCiAJCQl7CiAJCQkgIGFkZGVu ZCA9IGdmY19jb252X2NvbnN0YW50X3RvX3RyZWUgKG4tPmV4cHIpOwogCQkJICBpZiAoVFJF RV9DT0RFIChhZGRlbmQpID09IElOVEVHRVJfQ1NUCkBAIC0yODgzLDcgKzI4ODYsMTEgQEAg Z2ZjX3RyYW5zX29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xh dXNlcyAqY2xhdXNlcywKIAkJCQkJCSAgIFRSRUVfVFlQRSAoYWRkZW5kKSwgYWRkZW5kKTsK IAkJCSAgICB9CiAJCQl9Ci0JCSAgICAgIHQgPSBnZmNfdHJhbnNfb21wX3ZhcmlhYmxlIChu LT5zeW0sIGZhbHNlKTsKKworCQkgICAgICBpZiAobi0+c3ltID09IE5VTEwpCisJCQl0ID0g bnVsbF9wb2ludGVyX25vZGU7ICAvKiAib21wX2N1cl9pdGVyYXRpb24gLSAxIi4gICovCisJ CSAgICAgIGVsc2UKKwkJCXQgPSBnZmNfdHJhbnNfb21wX3ZhcmlhYmxlIChuLT5zeW0sIGZh bHNlKTsKIAkJICAgICAgaWYgKHQgIT0gZXJyb3JfbWFya19ub2RlKQogCQkJewogCQkJICBp ZiAoaSA8IHZlY19zYWZlX2xlbmd0aCAoZG9hY3Jvc3Nfc3RlcHMpCkBAIC0yOTAwLDcgKzI5 MDcsNyBAQCBnZmNfdHJhbnNfb21wX2NsYXVzZXMgKHN0bXRibG9ja190ICpibG9jaywgZ2Zj X29tcF9jbGF1c2VzICpjbGF1c2VzLAogCQkJICAgIE9NUF9DTEFVU0VfRE9BQ1JPU1NfU0lO S19ORUdBVElWRSAodmVjKSA9IDE7CiAJCQl9CiAJCSAgICAgIGlmIChuLT5uZXh0ID09IE5V TEwKLQkJCSAgfHwgbi0+bmV4dC0+dS5kZXBlbmRfb3AgIT0gT01QX0RFUEVORF9TSU5LKQor CQkJICB8fCBuLT5uZXh0LT51LmRlcGVuZF9kb2Fjcm9zc19vcCAhPSBPTVBfRE9BQ1JPU1Nf U0lOSykKIAkJCWJyZWFrOwogCQkgICAgICBuID0gbi0+bmV4dDsKIAkJICAgIH0KQEAgLTI5 MTAsNyArMjkxNyw3IEBAIGdmY190cmFuc19vbXBfY2xhdXNlcyAoc3RtdGJsb2NrX3QgKmJs b2NrLCBnZmNfb21wX2NsYXVzZXMgKmNsYXVzZXMsCiAJCSAgdHJlZSBub2RlID0gYnVpbGRf b21wX2NsYXVzZSAoaW5wdXRfbG9jYXRpb24sCiAJCQkJCQlPTVBfQ0xBVVNFX0RPQUNST1NT KTsKIAkJICBPTVBfQ0xBVVNFX0RPQUNST1NTX0tJTkQgKG5vZGUpID0gT01QX0NMQVVTRV9E T0FDUk9TU19TSU5LOwotCQkgIE9NUF9DTEFVU0VfRE9BQ1JPU1NfREVQRU5EIChub2RlKSA9 IDE7CisJCSAgT01QX0NMQVVTRV9ET0FDUk9TU19ERVBFTkQgKG5vZGUpID0gaXNfZGVwZW5k OwogCQkgIE9NUF9DTEFVU0VfREVDTCAobm9kZSkgPSBucmV2ZXJzZSAodmVjKTsKIAkJICBv bXBfY2xhdXNlcyA9IGdmY190cmFuc19hZGRfY2xhdXNlIChub2RlLCBvbXBfY2xhdXNlcyk7 CiAJCSAgY29udGludWU7CkBAIC0yOTYyLDcgKzI5NjksNyBAQCBnZmNfdHJhbnNfb21wX2Ns YXVzZXMgKHN0bXRibG9ja190ICpibG9jaywgZ2ZjX29tcF9jbGF1c2VzICpjbGF1c2VzLAog CQkgIE9NUF9DTEFVU0VfREVDTCAobm9kZSkgPSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZiAo cHRyKTsKIAkJfQogCSAgICAgIGlmIChsaXN0ID09IE9NUF9MSVNUX0RFUEVORCkKLQkJc3dp dGNoIChuLT51LmRlcGVuZF9vcCkKKwkJc3dpdGNoIChuLT51LmRlcGVuZF9kb2Fjcm9zc19v cCkKIAkJICB7CiAJCSAgY2FzZSBPTVBfREVQRU5EX0lOOgogCQkgICAgT01QX0NMQVVTRV9E RVBFTkRfS0lORCAobm9kZSkgPSBPTVBfQ0xBVVNFX0RFUEVORF9JTjsKQEAgLTQyNTMsMTEg KzQyNjAsMTEgQEAgZ2ZjX3RyYW5zX29tcF9jbGF1c2VzIChzdG10YmxvY2tfdCAqYmxvY2ss IGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcywKICAgICAgIG9tcF9jbGF1c2VzID0gZ2ZjX3Ry YW5zX2FkZF9jbGF1c2UgKGMsIG9tcF9jbGF1c2VzKTsKICAgICB9CiAKLSAgaWYgKGNsYXVz ZXMtPmRlcGVuZF9zb3VyY2UpCisgIGlmIChjbGF1c2VzLT5kb2Fjcm9zc19zb3VyY2UpCiAg ICAgewogICAgICAgYyA9IGJ1aWxkX29tcF9jbGF1c2UgKGdmY19nZXRfbG9jYXRpb24gKCZ3 aGVyZSksIE9NUF9DTEFVU0VfRE9BQ1JPU1MpOwogICAgICAgT01QX0NMQVVTRV9ET0FDUk9T U19LSU5EIChjKSA9IE9NUF9DTEFVU0VfRE9BQ1JPU1NfU09VUkNFOwotICAgICAgT01QX0NM QVVTRV9ET0FDUk9TU19ERVBFTkQgKGMpID0gMTsKKyAgICAgIE9NUF9DTEFVU0VfRE9BQ1JP U1NfREVQRU5EIChjKSA9IGNsYXVzZXMtPmRlcGVuZF9zb3VyY2U7CiAgICAgICBvbXBfY2xh dXNlcyA9IGdmY190cmFuc19hZGRfY2xhdXNlIChjLCBvbXBfY2xhdXNlcyk7CiAgICAgfQog CkBAIC01MTE5LDcgKzUxMjYsNyBAQCBnZmNfdHJhbnNfb21wX2RvIChnZmNfY29kZSAqY29k ZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpwYmxvY2ssCiAgIGluaXQgPSBtYWtl X3RyZWVfdmVjIChjb2xsYXBzZSk7CiAgIGNvbmQgPSBtYWtlX3RyZWVfdmVjIChjb2xsYXBz ZSk7CiAgIGluY3IgPSBtYWtlX3RyZWVfdmVjIChjb2xsYXBzZSk7Ci0gIG9yaWdfZGVjbHMg PSBjbGF1c2VzLT5vcmRlcmVkYyA/IG1ha2VfdHJlZV92ZWMgKGNvbGxhcHNlKSA6IE5VTExf VFJFRTsKKyAgb3JpZ19kZWNscyA9IGNsYXVzZXMtPm9yZGVyZWQgPyBtYWtlX3RyZWVfdmVj IChjb2xsYXBzZSkgOiBOVUxMX1RSRUU7CiAKICAgaWYgKHBibG9jayA9PSBOVUxMKQogICAg IHsKQEAgLTUyMTksNiArNTIyNiwxMCBAQCBnZmNfdHJhbnNfb21wX2RvIChnZmNfY29kZSAq Y29kZSwgZ2ZjX2V4ZWNfb3Agb3AsIHN0bXRibG9ja190ICpwYmxvY2ssCiAJCQkJCQkgICAg TU9ESUZZX0VYUFIsCiAJCQkJCQkgICAgdHlwZSwgZG92YXIsCiAJCQkJCQkgICAgVFJFRV9W RUNfRUxUIChpbmNyLCBpKSk7CisJICBpZiAob3JpZ19kZWNscyAmJiAhY2xhdXNlcy0+b3Jk ZXJlZGMpCisJICAgIG9yaWdfZGVjbHMgPSBOVUxMOworCSAgZWxzZSBpZiAob3JpZ19kZWNs cykKKwkgICAgVFJFRV9WRUNfRUxUIChvcmlnX2RlY2xzLCBpKSA9IGRvdmFyX2RlY2w7CiAJ fQogICAgICAgZWxzZQogCXsKQEAgLTUyNTksOSArNTI3MCw5IEBAIGdmY190cmFuc19vbXBf ZG8gKGdmY19jb2RlICpjb2RlLCBnZmNfZXhlY19vcCBvcCwgc3RtdGJsb2NrX3QgKnBibG9j aywKIAkJdmVjX3NhZmVfZ3Jvd19jbGVhcmVkIChkb2Fjcm9zc19zdGVwcywgY2xhdXNlcy0+ b3JkZXJlZGMsIHRydWUpOwogCSAgICAgICgqZG9hY3Jvc3Nfc3RlcHMpW2ldID0gc3RlcDsK IAkgICAgfQorCSAgaWYgKG9yaWdfZGVjbHMpCisJICAgIFRSRUVfVkVDX0VMVCAob3JpZ19k ZWNscywgaSkgPSBkb3Zhcl9kZWNsOwogCX0KLSAgICAgIGlmIChvcmlnX2RlY2xzKQotCVRS RUVfVkVDX0VMVCAob3JpZ19kZWNscywgaSkgPSBkb3Zhcl9kZWNsOwogCiAgICAgICBpZiAo ZG92YXJfZm91bmQgPT0gMwogCSAgJiYgb3AgPT0gRVhFQ19PTVBfU0lNRApAQCAtNTYyOCw3 ICs1NjM5LDcgQEAgZ2ZjX3RyYW5zX29tcF9kZXBvYmogKGdmY19jb2RlICpjb2RlKQogICBp bnQgayA9IC0xOyAvKiBvbXBfY2xhdXNlcy0+ZGVzdHJveSAqLwogICBpZiAoIWNvZGUtPmV4 dC5vbXBfY2xhdXNlcy0+ZGVzdHJveSkKICAgICBzd2l0Y2ggKGNvZGUtPmV4dC5vbXBfY2xh dXNlcy0+ZGVwb2JqX3VwZGF0ZSAhPSBPTVBfREVQRU5EX1VOU0VUCi0JICAgID8gY29kZS0+ ZXh0Lm9tcF9jbGF1c2VzLT5kZXBvYmpfdXBkYXRlIDogbi0+dS5kZXBlbmRfb3ApCisJICAg ID8gY29kZS0+ZXh0Lm9tcF9jbGF1c2VzLT5kZXBvYmpfdXBkYXRlIDogbi0+dS5kZXBlbmRf ZG9hY3Jvc3Nfb3ApCiAgICAgICB7CiAgICAgICBjYXNlIE9NUF9ERVBFTkRfSU46IGsgPSBH T01QX0RFUEVORF9JTjsgYnJlYWs7CiAgICAgICBjYXNlIE9NUF9ERVBFTkRfT1VUOiBrID0g R09NUF9ERVBFTkRfT1VUOyBicmVhazsKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Zv cnRyYW4uZGcvZ29tcC9hbGwtbWVtb3J5LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9nb21wL2FsbC1tZW1vcnktMS5mOTAKaW5kZXggZjhmMzRmMGM4ODcuLjUxYjU2MzNh ZGJhIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1l bW9yeS0xLmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvYWxsLW1l bW9yeS0xLmY5MApAQCAtNTAsNSArNTAsNSBAQCBzdWJyb3V0aW5lIGY2CiAgICEkb21wIHRh cmdldCBkZXBlbmQgKCBkZXBvYmogOiBvbXBfYWxsX21lbW9yeSkgICEgeyBkZy1lcnJvciAi J29tcF9hbGxfbWVtb3J5JyB1c2VkIHdpdGggREVQRU5EIGtpbmQgb3RoZXIgdGhhbiBPVVQg b3IgSU5PVVQiIH0KICAgISEkb21wIGVuZCB0YXJnZXQKIAotICAhJG9tcCBvcmRlcmVkIGRl cGVuZCAoIHNpbmsgOiBvbXBfYWxsX21lbW9yeSkgICEgeyBkZy1lcnJvciAiJ29tcF9hbGxf bWVtb3J5JyB1c2VkIHdpdGggREVQRU5EIGtpbmQgb3RoZXIgdGhhbiBPVVQgb3IgSU5PVVQi IH0KKyAgISRvbXAgb3JkZXJlZCBkZXBlbmQgKCBzaW5rIDogb21wX2FsbF9tZW1vcnkpICAh IHsgZGctZXJyb3IgInVzZWQgd2l0aCBkZXBlbmRlbmNlLXR5cGUgb3RoZXIgdGhhbiBPVVQg b3IgSU5PVVQiIH0KIGVuZApkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL2RlcGVuZC1pdGVyYXRvci0yLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZ29tcC9kZXBlbmQtaXRlcmF0b3ItMi5mOTAKaW5kZXggMjFmYzMyNzI5NzQuLmNhZGQ5 YTA2Y2ZlIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVw ZW5kLWl0ZXJhdG9yLTIuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29t cC9kZXBlbmQtaXRlcmF0b3ItMi5mOTAKQEAgLTM0LDcgKzM0LDcgQEAgcHJvZ3JhbSBtYWlu CiAgICAgICAhISRvbXAgZW5kIHRhc2sKICAgICAhJG9tcCB0YXNrIGRlcGVuZChpdGVyYXRv cihpPTE6NSksIHNvdXJjZSApICAhIHsgZGctZXJyb3IgIklURVJBVE9SIG1heSBub3QgYmUg Y29tYmluZWQgd2l0aCBTT1VSQ0UiIH0KICAgISEkb21wIGVuZCB0YXNrCi0gICEkb21wIHRh c2sgYWZmaW5pdHkgKGl0ZXJhdG9yKGk9MTo1KTogYSkgZGVwZW5kKGl0ZXJhdG9yKGk9MTo1 KSwgc2luayA6IHgpICEgeyBkZy1lcnJvciAiSVRFUkFUT1IgbWF5IG5vdCBiZSBjb21iaW5l ZCB3aXRoIFNJTksiIH0KKyAgISRvbXAgdGFzayBhZmZpbml0eSAoaXRlcmF0b3IoaT0xOjUp OiBhKSBkZXBlbmQoaXRlcmF0b3IoaT0xOjUpLCBzaW5rIDogeCkgISB7IGRnLWVycm9yICJT SU5LIGF0IC4xLiBub3QgcGVybWl0dGVkIGFzIGRlcGVuZGVuY2UtdHlwZSBmb3IgdGhpcyBk aXJlY3RpdmUiIH0KICAgISEkb21wIGVuZCB0YXNrCiAKICAgICBlbmQgZG8KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kZXBvYmotMi5mOTAgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZGVwb2JqLTIuZjkwCmluZGV4IGNiNjdjM2Nl OWQxLi42ZTc0NDFkOGQwMCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9nb21wL2RlcG9iai0yLmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dv bXAvZGVwb2JqLTIuZjkwCkBAIC0yMSwxMyArMjEsMTMgQEAgc3Vicm91dGluZSBmMQogICAh JG9tcCBkZXBvYmooZCkgZGVwZW5kKCBpbm91dCA6IGEpICAgICAgICAgICAgICAgICAhIHsg ZGctZXJyb3IgIkRFUE9CSiBpbiBERVBPQkogY29uc3RydWN0IGF0IC4xLiBzaGFsbCBiZSBh IHNjYWxhciBpbnRlZ2VyIG9mIE9NUF9ERVBFTkRfS0lORCBraW5kIiB9CiAgICEkb21wIGRl cG9iaihkZXBvYmopIGRlcGVuZCggaW5vdXQgOiBhLCBiKSAgICAgICAgICEgeyBkZy1lcnJv ciAiREVQRU5EIGNsYXVzZSBhdCAuMS4gb2YgT01QIERFUE9CSiBjb25zdHJ1Y3Qgc2hhbGwg aGF2ZSBvbmx5IGEgc2luZ2xlIGxvY2F0b3IiIH0KICAgISRvbXAgZGVwb2JqKGRlcG9iaikg ZGVwZW5kKG11dGV4aW5vdXRzZXQgOiBhKSAgICAgISBPSwotICAhJG9tcCBkZXBvYmooZGVw b2JqKSBkZXBlbmQoc291cmNlKSAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgIkRFUEVO RCBjbGF1c2UgYXQgLjEuIG9mIE9NUCBERVBPQkogY29uc3RydWN0IHNoYWxsIG5vdCBoYXZl IGRlcGVuZGVuY2UtdHlwZSBTT1VSQ0UsIFNJTksgb3IgREVQT0JKIiB9Ci0gICEkb21wIGRl cG9iaihkZXBvYmopIGRlcGVuZChzaW5rIDogaSArIDEpICAgICAgICAgICEgeyBkZy1lcnJv ciAiREVQRU5EIGNsYXVzZSBhdCAuMS4gb2YgT01QIERFUE9CSiBjb25zdHJ1Y3Qgc2hhbGwg bm90IGhhdmUgZGVwZW5kZW5jZS10eXBlIFNPVVJDRSwgU0lOSyBvciBERVBPQkoiIH0KKyAg ISRvbXAgZGVwb2JqKGRlcG9iaikgZGVwZW5kKHNvdXJjZSkgICAgICAgICAgICAgICAgISB7 IGRnLWVycm9yICJTT1VSQ0UgYXQgLjEuIG5vdCBwZXJtaXR0ZWQgYXMgZGVwZW5kZW5jZS10 eXBlIGZvciB0aGlzIGRpcmVjdGl2ZSIgfQorICAhJG9tcCBkZXBvYmooZGVwb2JqKSBkZXBl bmQoc2luayA6IGkgKyAxKSAgICAgICAgICAhIHsgZGctZXJyb3IgIlNJTksgYXQgLjEuIG5v dCBwZXJtaXR0ZWQgYXMgZGVwZW5kZW5jZS10eXBlIGZvciB0aGlzIGRpcmVjdGl2ZSIgfQog ICAhJG9tcCBkZXBvYmooZGVwb2JqKSB1cGRhdGUoc291cmNlKSAgICAgICAgICAgICAgICAh IHsgZGctZXJyb3IgIkV4cGVjdGVkIElOLCBPVVQsIElOT1VULCBJTk9VVFNFVCBvciBNVVRF WElOT1VUU0VUIGZvbGxvd2VkIGJ5ICdcXCknIiB9CiAgICEkb21wIGRlcG9iaihkZXBvYmop IHVwZGF0ZShzaW5rKSAgICAgICAgICAgICAgICAgICEgeyBkZy1lcnJvciAiRXhwZWN0ZWQg SU4sIE9VVCwgSU5PVVQsIElOT1VUU0VUIG9yIE1VVEVYSU5PVVRTRVQgZm9sbG93ZWQgYnkg J1xcKSciIH0KICAgISRvbXAgZGVwb2JqKGRlcG9iaikgdXBkYXRlKGRlcG9iaikgICAgICAg ICAgICAgICAgISB7IGRnLWVycm9yICJFeHBlY3RlZCBJTiwgT1VULCBJTk9VVCwgSU5PVVRT RVQgb3IgTVVURVhJTk9VVFNFVCBmb2xsb3dlZCBieSAnXFwpJyIgfQogCiAgICEgVmFsaWQg aW4gT3Blbk1QIDUuMToKLSAgISRvbXAgZGVwb2JqKGRlcG9iajUpIGRlcGVuZChkZXBvYmo6 IGRlcG9iajMpICAgICAgISB7IGRnLWVycm9yICJERVBFTkQgY2xhdXNlIGF0IC4xLiBvZiBP TVAgREVQT0JKIGNvbnN0cnVjdCBzaGFsbCBub3QgaGF2ZSBkZXBlbmRlbmNlLXR5cGUgU09V UkNFLCBTSU5LIG9yIERFUE9CSiIgfQorICAhJG9tcCBkZXBvYmooZGVwb2JqNSkgZGVwZW5k KGRlcG9iajogZGVwb2JqMykgICAgICAhIHsgZGctZXJyb3IgIkRFUEVORCBjbGF1c2UgYXQg LjEuIG9mIE9NUCBERVBPQkogY29uc3RydWN0IHNoYWxsIG5vdCBoYXZlIGRlcGVuZGVuY2Ut dHlwZSBERVBPQkoiIH0KIGVuZCBzdWJyb3V0aW5lIGYxCiAKZGlmZiAtLWdpdCBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9kb2Fjcm9zcy01LmY5MCBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvZ29tcC9kb2Fjcm9zcy01LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uM2ExNjc5YTFlZWMKLS0tIC9kZXYvbnVsbAorKysgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZG9hY3Jvc3MtNS5mOTAKQEAgLTAsMCAr MSw4OCBAQAorc3Vicm91dGluZSBmb28gKG4pCisgIGludGVnZXIgaSwgbgorCisgICEkb21w IGRvIG9yZGVyZWQKKyAgZG8gaSA9IDEsIDgsIG4KKyAgICAhJG9tcCBvcmRlcmVkIGRvYWNy b3NzKHNvdXJjZTopCisgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzaW5rOiBpIC0gMikK KyAgZW5kIGRvCitlbmQKKworc3Vicm91dGluZSBiYXIgKG4pCisgIGludGVnZXIgOjogaSwg aiwgbgorCisgICEkb21wIGRvIGNvbGxhcHNlKDIpIG9yZGVyZWQoMikKKyAgZG8gaSA9IDEs IDgsIG4KKyAgICBkbyBqID0gMSwgOCwgbgorICAgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9z cyhzb3VyY2U6b21wX2N1cl9pdGVyYXRpb24pCisgICAgICAhJG9tcCBvcmRlcmVkIGRvYWNy b3NzKHNpbms6IGkgLSAyLCBqICsgMikKKyAgICBlbmQgZG8KKyAgZW5kIGRvCitlbmQKKwor c3Vicm91dGluZSBiYXogKCkKKyAgaW50ZWdlciA6OiBpLCBqCisKKyAgISRvbXAgZG8gb3Jk ZXJlZCgxKQorICBkbyBpID0gMSwgNjQKKyAgICAhJG9tcCBvcmRlcmVkCQkJISB7IGRnLWVy cm9yICInb3JkZXJlZCcgY29uc3RydWN0IHdpdGhvdXQgJ2RvYWNyb3NzJyBvciAnZGVwZW5k JyBjbGF1c2VzIG11c3Qgbm90IGhhdmUgdGhlIHNhbWUgYmluZGluZyByZWdpb24gYXMgJ29y ZGVyZWQnIGNvbnN0cnVjdCB3aXRoIHRob3NlIGNsYXVzZXMiIH0KKyAgICAhJG9tcCBlbmQg b3JkZXJlZAorCisgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzb3VyY2U6KQorCisgICAg ISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzaW5rOiBpIC0gMSkKKyAgZW5kIGRvCisKKyAgISRv bXAgZG8gb3JkZXJlZAorICBkbyBpID0gMSwgNjQKKyAgICAhJG9tcCBvcmRlcmVkIGRvYWNy b3NzKHNvdXJjZTogb21wX2N1cl9pdGVyYXRpb24gKQorCisgICAgISRvbXAgb3JkZXJlZCBk b2Fjcm9zcyhzaW5rOiBpIC0gMSkKKworICAgICEkb21wIG9yZGVyZWQgdGhyZWFkcwkJISB7 IGRnLWVycm9yICInb3JkZXJlZCcgY29uc3RydWN0IHdpdGhvdXQgJ2RvYWNyb3NzJyBvciAn ZGVwZW5kJyBjbGF1c2VzIG11c3Qgbm90IGhhdmUgdGhlIHNhbWUgYmluZGluZyByZWdpb24g YXMgJ29yZGVyZWQnIGNvbnN0cnVjdCB3aXRoIHRob3NlIGNsYXVzZXMiIH0KKyAgICAhJG9t cCBlbmQgb3JkZXJlZAorICBlbmQgZG8KKyAgISRvbXAgZG8gb3JkZXJlZCgyKQorICBkbyBp ID0gMSwgNjQKKyAgICBkbyBqID0gMSwgNjQKKwkhJG9tcCBvcmRlcmVkCQkJISB7IGRnLWVy cm9yICInb3JkZXJlZCcgY29uc3RydWN0IHdpdGhvdXQgJ2RvYWNyb3NzJyBvciAnZGVwZW5k JyBjbGF1c2VzIGJpbmRzIHRvIGxvb3Agd2hlcmUgJ2NvbGxhcHNlJyBhcmd1bWVudCAxIGlz IGRpZmZlcmVudCBmcm9tICdvcmRlcmVkJyBhcmd1bWVudCAyIiB9CisJISRvbXAgZW5kIG9y ZGVyZWQKKyAgICBlbmQgZG8KKyAgZW5kIGRvCisgICEkb21wIGRvIG9yZGVyZWQoMikgY29s bGFwc2UoMSkKKyAgZG8gaSA9IDEsIDgKKyAgICBkbyBqID0gMSwgOAorICAgICAgISRvbXAg b3JkZXJlZCB0aHJlYWRzCQkhIHsgZGctZXJyb3IgIidvcmRlcmVkJyBjb25zdHJ1Y3Qgd2l0 aG91dCAnZG9hY3Jvc3MnIG9yICdkZXBlbmQnIGNsYXVzZXMgYmluZHMgdG8gbG9vcCB3aGVy ZSAnY29sbGFwc2UnIGFyZ3VtZW50IDEgaXMgZGlmZmVyZW50IGZyb20gJ29yZGVyZWQnIGFy Z3VtZW50IDIiIH0KKyAgICAgICEkb21wIGVuZCBvcmRlcmVkCisgICAgZW5kIGRvCisgIGVu ZCBkbworZW5kCisKK3N1YnJvdXRpbmUgcXV4ICgpCisgIGludGVnZXIgOjogaSwgagorICBq ID0gMAorICAhJG9tcCBkbyBvcmRlcmVkIGxpbmVhcihqKQorICBkbyBpID0gMSwgNjQKKyAg ICBqID0gaiArIDEKKyAgICAhJG9tcCBvcmRlcmVkCisgICAgISRvbXAgZW5kIG9yZGVyZWQK KyAgZW5kIGRvCisgICEkb21wIGRvIG9yZGVyZWQgbGluZWFyKGopCQkhIHsgZGctZXJyb3Ig IidsaW5lYXInIGNsYXVzZSBtYXkgbm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoICdv cmRlcmVkJyBjbGF1c2UgaWYgc3RhbmQtYWxvbmUgJ29yZGVyZWQnIGNvbnN0cnVjdCBpcyBu ZXN0ZWQgaW4gaXQiIH0KKyAgZG8gaSA9IDEsIDY0CisgICAgaiA9IGogKyAxCisgICAgISRv bXAgb3JkZXJlZCBkb2Fjcm9zcyhzb3VyY2U6KQorICAgICEkb21wIG9yZGVyZWQgZG9hY3Jv c3Moc2luazppLTEpCisgIGVuZCBkbworICAhJG9tcCBkbyBvcmRlcmVkKDEpIGxpbmVhcihq KQorICBkbyBpID0gMSwgNjQKKyAgICBqID0gaiArIDEKKyAgICAhJG9tcCBvcmRlcmVkCisg ICAgISRvbXAgZW5kIG9yZGVyZWQKKyAgZW5kIGRvCisgICEkb21wIGRvIG9yZGVyZWQoMSkg bGluZWFyKGopCQkhIHsgZGctZXJyb3IgIidsaW5lYXInIGNsYXVzZSBtYXkgbm90IGJlIHNw ZWNpZmllZCB0b2dldGhlciB3aXRoICdvcmRlcmVkJyBjbGF1c2UgaWYgc3RhbmQtYWxvbmUg J29yZGVyZWQnIGNvbnN0cnVjdCBpcyBuZXN0ZWQgaW4gaXQiIH0KKyAgZG8gaSA9IDEsIDY0 CisgICAgaiA9IGogKyAxCisgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzb3VyY2U6KQor ICAgICEkb21wIG9yZGVyZWQgZG9hY3Jvc3Moc2luazppLTEpCisgIGVuZCBkbworZW5kCmRp ZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZG9hY3Jvc3MtNi5m OTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvZG9hY3Jvc3MtNi5mOTAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE0NWUxYzkzODZjCi0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21wL2RvYWNyb3Nz LTYuZjkwCkBAIC0wLDAgKzEsNzcgQEAKK3N1YnJvdXRpbmUgZm9vIChuKQorICBpbnRlZ2Vy IDo6IGksIG4KKyAgISRvbXAgZG8gb3JkZXJlZAorICBkbyBpID0gMSwgOCwgbgorICAgICEk b21wIG9yZGVyZWQgZG9hY3Jvc3Moc291cmNlKQkJISB7IGRnLWVycm9yICJFeHBlY3RlZCAn OiciIH0KKyAgZW5kIGRvCisKKyAgISRvbXAgZG8gb3JkZXJlZAorICBkbyBpID0gMSwgOCwg bgorICAgICEkb21wIG9yZGVyZWQgZG9hY3Jvc3Moc291cmNlOm9tcF9jdXJyZW50X2l0ZXJh dGlvbikJISB7IGRnLWVycm9yICJFeHBlY3RlZCAnXFxcKScgb3IgJ29tcF9jdXJfaXRlcmF0 aW9uXFxcKSciIH0KKyAgZW5kIGRvCisKKyAgISRvbXAgZG8gb3JkZXJlZAorICBkbyBpID0g MSwgOCwgbgorICAgICEkb21wIG9yZGVyZWQgZG9hY3Jvc3Moc291cmNlOmkgLSAyKQkhIHsg ZGctZXJyb3IgIkV4cGVjdGVkICdcXFwpJyBvciAnb21wX2N1cl9pdGVyYXRpb25cXFwpJyIg fQorICBlbmQgZG8KKworICAhJG9tcCBkbyBvcmRlcmVkCisgIGRvIGkgPSAxLCA4LCBuCisg ICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzaW5rKQkJISB7IGRnLWVycm9yICJFeHBlY3Rl ZCAnOiciIH0KKyAgZW5kIGRvCisKKyAgISRvbXAgZG8gb3JkZXJlZAorICBkbyBpID0gMSwg OCwgbgorICAgICEkb21wIG9yZGVyZWQgZG9hY3Jvc3Moc2luazopCQkhIHsgZGctZXJyb3Ig IlN5bnRheCBlcnJvciBpbiBPcGVuTVAgU0lOSyBkZXBlbmRlbmNlLXR5cGUgbGlzdCIgfQor ICBlbmQgZG8KK2VuZAorCitzdWJyb3V0aW5lIGJhciAobikKKyAgaW1wbGljaXQgbm9uZQor ICBpbnRlZ2VyIGksIG4KKworICAhJG9tcCBkbyBvcmRlcmVkCisgIGRvIGkgPSAxLCA4LCBu CisgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhzaW5rOm9tcF9jdXJyZW50X2l0ZXJhdGlv biAtIDEpCSEgeyBkZy1lcnJvciAiU3ltYm9sICdvbXBfY3VycmVudF9pdGVyYXRpb24nIGF0 IC4xLiBoYXMgbm8gSU1QTElDSVQgdHlwZSIgfQorICBlbmQgZG8KKworICAhJG9tcCBkbyBv cmRlcmVkCisgIGRvIGkgPSAxLCA4LCBuCisgICAgISRvbXAgb3JkZXJlZCBkb2Fjcm9zcyhz aW5rOm9tcF9jdXJfaXRlcmF0aW9uKQkhIHsgZGctZXJyb3IgIm9tcF9jdXJfaXRlcmF0aW9u IGF0IC4xLiByZXF1aXJlcyAnLTEnIGFzIGxvZ2ljYWwgb2Zmc2V0IiB9CisgIGVuZCBkbwor ZW5kCisKK3N1YnJvdXRpbmUgYmF6IChuKQorICBpbXBsaWNpdCBub25lCisgIGludGVnZXIg aSwgbgorCisgICEkb21wIGRvIG9yZGVyZWQKKyAgZG8gaSA9IDEsIDgsIG4KKyAgICAhJG9t cCBvcmRlcmVkIGRvYWNyb3NzKHNpbms6b21wX2N1cl9pdGVyYXRpb24gKyAxKQkhIHsgZGct ZXJyb3IgIm9tcF9jdXJfaXRlcmF0aW9uIGF0IC4xLiByZXF1aXJlcyAnLTEnIGFzIGxvZ2lj YWwgb2Zmc2V0IiB9CisgIGVuZCBkbworZW5kCisKK3N1YnJvdXRpbmUgcXV4IChuKQorICBp bXBsaWNpdCBub25lCisgIGludGVnZXIgaSwgbgorCisgICEkb21wIGRvIG9yZGVyZWQKKyAg ZG8gaSA9IDEsIDgsIG4KKyAgICAhJG9tcCBvcmRlcmVkIGRvYWNyb3NzKHNpbms6b21wX2N1 cl9pdGVyYXRpb24gLSAoMiAtIDEpKQkhIHsgZGctZXJyb3IgIlN5bnRheCBlcnJvciBpbiBP cGVuTVAgU0lOSyBkZXBlbmRlbmNlLXR5cGUgbGlzdCIgfQorICBlbmQgZG8KK2VuZAorCitz dWJyb3V0aW5lIGNvcmdlIChuKQorICBpbXBsaWNpdCBub25lCisgIGludGVnZXIgaSwgbgor CisgICEkb21wIGRvIG9yZGVyZWQKKyAgZG8gaSA9IDEsIDgsIG4KKyAgICAhJG9tcCBvcmRl cmVkIGRvYWNyb3NzKHNpbms6b21wX2N1cl9pdGVyYXRpb24gLSAxKQorICBlbmQgZG8KKwor ICAhJG9tcCBkbyBvcmRlcmVkCisgIGRvIGkgPSAxLCA4LCBuCisgICAgISRvbXAgb3JkZXJl ZCBkb2Fjcm9zcyhzaW5rOm9tcF9jdXJfaXRlcmF0aW9uIC0gMV84KQorICBlbmQgZG8KK2Vu ZApkaWZmIC0tZ2l0IGEvbGliZ29tcC9saWJnb21wLnRleGkgYi9saWJnb21wL2xpYmdvbXAu dGV4aQppbmRleCAwZjI5OThjZjhmMS4uM2RmOTc5ZTE3MGIgMTAwNjQ0Ci0tLSBhL2xpYmdv bXAvbGliZ29tcC50ZXhpCisrKyBiL2xpYmdvbXAvbGliZ29tcC50ZXhpCkBAIC0zOTQsMTAg KzM5NCwxMSBAQCB0byBhZGRyZXNzIG9mIG1hdGNoaW5nIG1hcHBlZCBsaXN0IGl0ZW0gcGVy IDUuMSwgU2VjdC4gMi4yMS43LjIgQHRhYiBOIEB0YWIKIEBpdGVtIERlZmF1bHQgbWFwLXR5 cGUgZm9yIEBjb2Rle21hcH0gY2xhdXNlIGluIEBjb2Rle3RhcmdldCBlbnRlci9leGl0IGRh dGF9CiAgICAgICBAdGFiIFkgQHRhYgogQGl0ZW0gTmV3IEBjb2Rle2RvYWNyb3NzfSBjbGF1 c2UgYXMgYWxpYXMgZm9yIEBjb2Rle2RlcGVuZH0gd2l0aAotICAgICAgQGNvZGV7c291cmNl fS9AY29kZXtzaW5rfSBtb2RpZmllciBAdGFiIE4gQHRhYgorICAgICAgQGNvZGV7c291cmNl fS9AY29kZXtzaW5rfSBtb2RpZmllciBAdGFiIFkgQHRhYgogQGl0ZW0gRGVwcmVjYXRpb24g b2YgQGNvZGV7ZGVwZW5kfSB3aXRoIEBjb2Rle3NvdXJjZX0vQGNvZGV7c2lua30gbW9kaWZp ZXIKICAgICAgIEB0YWIgTiBAdGFiCi1AaXRlbSBAY29kZXtvbXBfY3VyX2l0ZXJhdGlvbn0g a2V5d29yZCBAdGFiIE4gQHRhYgorQGl0ZW0gQGNvZGV7b21wX2N1cl9pdGVyYXRpb259IGtl eXdvcmQgQHRhYiBQCisgICAgICBAdGFiIEBjb2Rle3Npbms6IG9tcF9jdXJfaXRlcmF0aW9u IC0gMX0gdW5zdXBwb3J0ZWQKIEBlbmQgbXVsdGl0YWJsZQogCiBAdW5udW1iZXJlZHN1YnNl YyBPdGhlciBuZXcgT3Blbk1QIDUuMiBmZWF0dXJlcwo= --------------obqjVo80jga4yHZUjDMMU0Ig--