From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from conssluserg-02.nifty.com (conssluserg-02.nifty.com [210.131.2.81]) by sourceware.org (Postfix) with ESMTPS id C8AF53858D35 for ; Thu, 23 Sep 2021 15:03:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C8AF53858D35 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=nifty.ne.jp Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nifty.ne.jp Received: from Express5800-S70 (z221123.dynamic.ppp.asahi-net.or.jp [110.4.221.123]) (authenticated) by conssluserg-02.nifty.com with ESMTP id 18NF3Edj028840 for ; Fri, 24 Sep 2021 00:03:15 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-02.nifty.com 18NF3Edj028840 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.ne.jp; s=dec2015msa; t=1632409395; bh=0xx9mqOm7Koe4/E8iqvsIjR1eVLsI7ktEQJ/9GUjUrE=; h=Date:From:To:Subject:In-Reply-To:References:From; b=BP3NYJ40uiU7rWDKGbHN7e2Wq4mgWK4gSgVKJJU7zcjisVxouRGOYDq13QNHA0whx kXu708/ojjzIPqLLxcLeDL2t247iI0pSzXn8dggA5iw6eCgrLPflNfQ/pDRhznIKJl u5WmFe0VLq8x4HP8Hjh4Mm/kKWK8Tf4gP1vvDUP5brt22az0QA5M2pWHkgAB3Dd2lN nZCPmswIPzBR/Tx9o9l6a8t233a9ULTWjTOBDbK1L+pL6E7klL3wjpINJKiYWeVTzM dm7VeHo4Hcz01oEuE/A85qIYyBjUjZYsRgAO/cmQV4VHZddt6+tphBds4XcKAclpV8 C/WHY2RPCtqnA== X-Nifty-SrcIP: [110.4.221.123] Date: Fri, 24 Sep 2021 00:03:18 +0900 From: Takashi Yano To: cygwin-developers@cygwin.com Subject: Re: cygrunsrv + sshd + rsync = 20 times too slow -- throttled? Message-Id: <20210924000318.d5a248f6efb4362eda6fa243@nifty.ne.jp> In-Reply-To: References: <20210907122631.65452be8d021ec72259431d5@nifty.ne.jp> <20210911113517.f74fc3ac1971bbf04c7a9bd1@nifty.ne.jp> <20210920215229.cea5722b2c2fcd7e03917108@nifty.ne.jp> <00f4eca0-2b38-f4bb-98f2-e99e7ee941f5@cornell.edu> <20210921062737.13448347e0fc28a9a3dae38c@nifty.ne.jp> <2bdbd4bd-a9fd-ee74-58c5-0e102da111e9@cornell.edu> <20210921071652.a7885fa2d5f89db844ed1119@nifty.ne.jp> <61adb3e0-9ef5-50ee-d422-6ee718d633c8@cornell.edu> <20210921082230.4e7f2421c729c0f74b4a8cfe@nifty.ne.jp> <20210921173035.d3f61cb132b7dab80fed352c@nifty.ne.jp> <682e0f1f-7a5e-be88-6f96-32284423bc94@cornell.edu> <20210922003614.3a39a2e91632a58105a99fde@nifty.ne.jp> <20210923172601.8fcd5304f606b96377ce75f0@nifty.ne.jp> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.30; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Fri__24_Sep_2021_00_03_18_+0900_Z.wVx6H7SwcFtsDI" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin-developers@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin core component developers mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Sep 2021 15:03:47 -0000 This is a multi-part message in MIME format. --Multipart=_Fri__24_Sep_2021_00_03_18_+0900_Z.wVx6H7SwcFtsDI Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Thu, 23 Sep 2021 09:03:13 -0400 Ken Brown wrote: > On 9/23/2021 4:26 AM, Takashi Yano wrote: > > * Make temporary_query_hdl() faster. > > Thanks! Again, I'm not familiar with the Windows functions that you used, so > Corinna should review this too when she returns. > > I have one question: > > The documentation at > https://docs.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-enumprocesses > says, "There is no indication given when the buffer is too small to store all > process identifiers. Therefore, if lpcbNeeded equals cb, consider retrying the > call with a larger array." > > Does this mean that EnumProcesses could return TRUE even if the buffer is too small? Ah, right. Thanks for pointing out that mistake. I have fixed that. P.S. I measured the response of select(). The first time and second time response is measured. Only the first time takes long response time because the cached info is used in the second time. This patch improves the response much. Also, caching info is very effective. First time, Second time Without this patch: 19.427600 [msec], 0.113900 [msec] With this patch: 3.344600 [msec], 0.115000 [msec] -- Takashi Yano --Multipart=_Fri__24_Sep_2021_00_03_18_+0900_Z.wVx6H7SwcFtsDI Content-Type: application/octet-stream; name="v2-0001-Cygwin-pipe-Use-ProcessHandleInformation-if-avail.patch" Content-Disposition: attachment; filename="v2-0001-Cygwin-pipe-Use-ProcessHandleInformation-if-avail.patch" Content-Transfer-Encoding: base64 RnJvbSAxMTc0MWVjNmRlOTIwMjJlYzMwYmQ1N2E0NWI2ZDY2ZjdjYjhlYmUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWthc2hpIFlhbm8gPHRha2FzaGkueWFub0BuaWZ0eS5uZS5q cD4KRGF0ZTogVGh1LCAyMyBTZXAgMjAyMSAyMzozMzo1NSArMDkwMApTdWJqZWN0OiBbUEFUQ0gg djJdIEN5Z3dpbjogcGlwZTogVXNlIFByb2Nlc3NIYW5kbGVJbmZvcm1hdGlvbiBpZiBhdmFpbGFi bGUuCgotIFRoZSBjb21taXQgYjUzMWQ2YjAgaW50cm9kdWNlZCB0ZW1wb3JhcnlfcXVlcnlfaGRs KCkgd2hpY2ggdXNlcwogIFN5c3RlbUhhbmRsZUluZm9ybWF0aW9uLiBXaXRoIHRoaXMgcGF0Y2gs IFByb2Nlc3NIYW5kbGVJbmZvcm1hdGlvbgogIHJhdGhlciB0aGFuIFN5c3RlbUhhbmRsZUluZm9y bWF0aW9uIGlzIHVzZWQgaWYgaXQgaXMgYXZhaWxhYmxlLgogIFRoaXMgcmVxdWVzdCBpcyBmYXN0 ZXIsIGhvd2V2ZXIsIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIFdpbmRvd3MgOCwKICB0aGVyZWZv cmUsIFN5c3RlbUhhbmRsZUluZm9ybWF0aW9uIGlzIHVzZWQgZm9yIFdpbmRvd3MgVmlzdGEgYW5k IDcKICBhcyBiZWZvcmUuCi0tLQogd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oICAgICAgIHwgICAy ICsKIHdpbnN1cC9jeWd3aW4vZmhhbmRsZXJfcGlwZS5jYyB8IDEzMyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0KIHdpbnN1cC9jeWd3aW4vbnRkbGwuaCAgICAgICAgICB8ICAyMSAr KysrKy0KIHdpbnN1cC9jeWd3aW4vd2luY2FwLmNjICAgICAgICB8ICAxMSArKysKIHdpbnN1cC9j eWd3aW4vd2luY2FwLmggICAgICAgICB8ICAgMiArCiA1IGZpbGVzIGNoYW5nZWQsIDE2MCBpbnNl cnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vZmhh bmRsZXIuaCBiL3dpbnN1cC9jeWd3aW4vZmhhbmRsZXIuaAppbmRleCAwMDYxZDQ4MzAuLmMwMzNm NzgxNiAxMDA2NDQKLS0tIGEvd2luc3VwL2N5Z3dpbi9maGFuZGxlci5oCisrKyBiL3dpbnN1cC9j eWd3aW4vZmhhbmRsZXIuaApAQCAtMTE5Nyw2ICsxMTk3LDggQEAgcHJpdmF0ZToKICAgRFdPUkQg cGlwZW5hbWVfcGlkOwogICBMT05HIHBpcGVuYW1lX2lkOwogICB2b2lkIHJlbGVhc2Vfc2VsZWN0 X3NlbSAoY29uc3QgY2hhciAqKTsKKyAgSEFORExFIGdldF9xdWVyeV9oZGxfcGVyX3Byb2Nlc3Mg KFdDSEFSICosIE9CSkVDVF9OQU1FX0lORk9STUFUSU9OICopOworICBIQU5ETEUgZ2V0X3F1ZXJ5 X2hkbF9wZXJfc3lzdGVtIChXQ0hBUiAqLCBPQkpFQ1RfTkFNRV9JTkZPUk1BVElPTiAqKTsKIHB1 YmxpYzoKICAgZmhhbmRsZXJfcGlwZSAoKTsKIApkaWZmIC0tZ2l0IGEvd2luc3VwL2N5Z3dpbi9m aGFuZGxlcl9waXBlLmNjIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjCmluZGV4IDc4 ZTJmOTBkOC4uZGQ4YjRmMzE3IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL2ZoYW5kbGVyX3Bp cGUuY2MKKysrIGIvd2luc3VwL2N5Z3dpbi9maGFuZGxlcl9waXBlLmNjCkBAIC0yMCw2ICsyMCw3 IEBAIGRldGFpbHMuICovCiAjaW5jbHVkZSAicGluZm8uaCIKICNpbmNsdWRlICJzaGFyZWRfaW5m by5oIgogI2luY2x1ZGUgInRsc19wYnVmLmgiCisjaW5jbHVkZSA8cHNhcGkuaD4KIAogLyogVGhp cyBpcyBvbmx5IHRvIGJlIHVzZWQgZm9yIHdyaXRpbmcuICBXaGVuIHJlYWRpbmcsCiBTVEFUVVNf UElQRV9FTVBUWSBzaW1wbHkgbWVhbnMgdGhlcmUncyBubyBkYXRhIHRvIGJlIHJlYWQuICovCkBA IC0xMTc2LDE0ICsxMTc3LDEyOSBAQCBjYWNoZV9lcnI6CiAJICAgICAgICZwaXBlbmFtZV9rZXks ICZwaXBlbmFtZV9waWQsICZwaXBlbmFtZV9pZCkgIT0gMykKICAgICByZXR1cm4gTlVMTDsgLyog Tm9uIGN5Z3dpbiBwaXBlPyAqLwogCisgIGlmICh3aW5jYXAuaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFu ZGxlX2luZm8gKCkpCisgICAgcmV0dXJuIGdldF9xdWVyeV9oZGxfcGVyX3Byb2Nlc3MgKG5hbWUs IG50Zm4pOyAvKiBTaW5jZSBXaW44ICovCisgIGVsc2UKKyAgICByZXR1cm4gZ2V0X3F1ZXJ5X2hk bF9wZXJfc3lzdGVtIChuYW1lLCBudGZuKTsgLyogVmlzdGEgb3IgV2luNyAqLworfQorCisvKiBU aGlzIGZ1bmN0aW9uIGlzIGZhc3RlciB0aGFuIGdldF9xdWVyeV9oZGxfcGVyX3N5c3RlbSgpLCBo b3dldmVyLAorICAgb25seSB3b3JrcyBzaW5jZSBXaW5kb3dzIDggYmVjYXVzZSBQcm9jZXNzSGFu ZGxlSW5mb3JtYXRpb24gaXMgbm90CisgICBzdXBwb3RlZCBieSBOdFF1ZXJ5SW5mb3JtYXRpb25Q cm9jZXNzKCkgYmVmb3JlIFdpbmRvd3MgOC4gKi8KK0hBTkRMRQorZmhhbmRsZXJfcGlwZTo6Z2V0 X3F1ZXJ5X2hkbF9wZXJfcHJvY2VzcyAoV0NIQVIgKm5hbWUsCisJCQkJCSAgT0JKRUNUX05BTUVf SU5GT1JNQVRJT04gKm50Zm4pCit7CisgIFVMT05HIGxlbjsKKyAgQk9PTCByZXM7CisgIERXT1JE IG5fcHJvY2VzcyA9IDI1NjsKKyAgRFdPUkQgKnByb2NfcGlkczsKKyAgZG8KKyAgICB7IC8qIEVu dW1lcmF0ZSBwcm9jZXNzZXMgKi8KKyAgICAgIERXT1JEIG5ieXRlcyA9IG5fcHJvY2VzcyAqIHNp emVvZiAoRFdPUkQpOworICAgICAgcHJvY19waWRzID0gKERXT1JEICopIEhlYXBBbGxvYyAoR2V0 UHJvY2Vzc0hlYXAgKCksIDAsIG5ieXRlcyk7CisgICAgICBpZiAoIXByb2NfcGlkcykKKwlyZXR1 cm4gTlVMTDsKKyAgICAgIHJlcyA9IEVudW1Qcm9jZXNzZXMgKHByb2NfcGlkcywgbmJ5dGVzLCAm bGVuKTsKKyAgICAgIGlmIChyZXMgJiYgbGVuIDwgbmJ5dGVzKQorCWJyZWFrOworICAgICAgcmVz ID0gRkFMU0U7CisgICAgICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAgKCksIDAsIHByb2NfcGlk cyk7CisgICAgICBuX3Byb2Nlc3MgKj0gMjsKKyAgICB9CisgIHdoaWxlIChuX3Byb2Nlc3MgPCAo MUw8PDIwKSk7CisgIGlmICghcmVzKQorICAgIHJldHVybiBOVUxMOworICBuX3Byb2Nlc3MgPSBs ZW4gLyBzaXplb2YgKERXT1JEKTsKKworICBmb3IgKExPTkcgaSA9IChMT05HKSBuX3Byb2Nlc3Mg LSAxOyBpID49IDA7IGktLSkKKyAgICB7CisgICAgICBIQU5ETEUgcHJvYyA9IE9wZW5Qcm9jZXNz IChQUk9DRVNTX0RVUF9IQU5ETEUKKwkJCQkgfCBQUk9DRVNTX1FVRVJZX0lORk9STUFUSU9OLAor CQkJCSAwLCBwcm9jX3BpZHNbaV0pOworICAgICAgaWYgKCFwcm9jKQorCWNvbnRpbnVlOworCisg ICAgICAvKiBSZXRyaWV2ZSBwcm9jZXNzIGhhbmRsZXMgKi8KKyAgICAgIE5UU1RBVFVTIHN0YXR1 czsKKyAgICAgIERXT1JEIG5faGFuZGxlID0gMjU2OworICAgICAgUFBST0NFU1NfSEFORExFX1NO QVBTSE9UX0lORk9STUFUSU9OIHBoaTsKKyAgICAgIGRvCisJeworCSAgRFdPUkQgbmJ5dGVzID0g MiAqIHNpemVvZiAoVUxPTkdfUFRSKSArCisJICAgIG5faGFuZGxlICogc2l6ZW9mIChQUk9DRVNT X0hBTkRMRV9UQUJMRV9FTlRSWV9JTkZPKTsKKwkgIHBoaSA9IChQUFJPQ0VTU19IQU5ETEVfU05B UFNIT1RfSU5GT1JNQVRJT04pCisJICAgIEhlYXBBbGxvYyAoR2V0UHJvY2Vzc0hlYXAgKCksIDAs IG5ieXRlcyk7CisJICBpZiAoIXBoaSkKKwkgICAgZ290byBjbG9zZV9wcm9jOworCSAgc3RhdHVz ID0gTnRRdWVyeUluZm9ybWF0aW9uUHJvY2VzcyAocHJvYywgUHJvY2Vzc0hhbmRsZUluZm9ybWF0 aW9uLAorCQkJCQkgICAgICBwaGksIG5ieXRlcywgJmxlbik7CisJICBpZiAoTlRfU1VDQ0VTUyAo c3RhdHVzKSkKKwkgICAgYnJlYWs7CisJICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAgKCksIDAs IHBoaSk7CisJICBuX2hhbmRsZSAqPSAyOworCX0KKyAgICAgIHdoaWxlIChuX2hhbmRsZSA8ICgx TDw8MjApICYmIHN0YXR1cyA9PSBTVEFUVVNfSU5GT19MRU5HVEhfTUlTTUFUQ0gpOworICAgICAg aWYgKCFOVF9TVUNDRVNTIChzdGF0dXMpKQorCWdvdG8gY2xvc2VfcHJvYzsKKworICAgICAgZm9y IChVTE9ORyBqID0gMDsgaiA8IHBoaS0+TnVtYmVyT2ZIYW5kbGVzOyBqKyspCisJeworCSAgLyog Q2hlY2sgZm9yIHRoZSBwZWN1bGlhcml0eSBvZiBjeWd3aW4gcmVhZCBwaXBlICovCisJICBjb25z dCBVTE9ORyBhY2Nlc3MgPSBGSUxFX1JFQURfREFUQSB8IEZJTEVfUkVBRF9FQQorCSAgICB8IEZJ TEVfV1JJVEVfRUEgLyogbWFya2VyICovCisJICAgIHwgRklMRV9SRUFEX0FUVFJJQlVURVMgfCBG SUxFX1dSSVRFX0FUVFJJQlVURVMKKwkgICAgfCBSRUFEX0NPTlRST0wgfCBTWU5DSFJPTklaRTsK KwkgIGlmIChwaGktPkhhbmRsZXNbal0uR3JhbnRlZEFjY2VzcyAhPSBhY2Nlc3MpCisJICAgIGNv bnRpbnVlOworCisJICAvKiBSZXRyaWV2ZSBoYW5kbGUgKi8KKwkgIEhBTkRMRSBoID0gKEhBTkRM RSkoaW50cHRyX3QpIHBoaS0+SGFuZGxlc1tqXS5IYW5kbGVWYWx1ZTsKKwkgIHJlcyA9IER1cGxp Y2F0ZUhhbmRsZSAocHJvYywgaCwgR2V0Q3VycmVudFByb2Nlc3MgKCksICZoLAorCQkJCSBGSUxF X1JFQURfREFUQSwgMCwgMCk7CisJICBpZiAoIXJlcykKKwkgICAgY29udGludWU7CisKKwkgIC8q IENoZWNrIG9iamVjdCBuYW1lICovCisJICBzdGF0dXMgPSBOdFF1ZXJ5T2JqZWN0IChoLCBPYmpl Y3ROYW1lSW5mb3JtYXRpb24sCisJCQkJICBudGZuLCA2NTUzNiwgJmxlbik7CisJICBpZiAoIU5U X1NVQ0NFU1MgKHN0YXR1cykgfHwgIW50Zm4tPk5hbWUuQnVmZmVyKQorCSAgICBnb3RvIGNsb3Nl X2hhbmRsZTsKKwkgIG50Zm4tPk5hbWUuQnVmZmVyW250Zm4tPk5hbWUuTGVuZ3RoIC8gc2l6ZW9m IChXQ0hBUildID0gTCdcMCc7CisJICBpZiAod2NzY21wIChuYW1lLCBudGZuLT5OYW1lLkJ1ZmZl cikgPT0gMCkKKwkgICAgeworCSAgICAgIHF1ZXJ5X2hkbF9wcm9jID0gcHJvYzsKKwkgICAgICBx dWVyeV9oZGxfdmFsdWUgPSAoSEFORExFKShpbnRwdHJfdCkgcGhpLT5IYW5kbGVzW2pdLkhhbmRs ZVZhbHVlOworCSAgICAgIEhlYXBGcmVlIChHZXRQcm9jZXNzSGVhcCAoKSwgMCwgcGhpKTsKKwkg ICAgICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAgKCksIDAsIHByb2NfcGlkcyk7CisJICAgICAg cmV0dXJuIGg7CisJICAgIH0KK2Nsb3NlX2hhbmRsZToKKwkgIENsb3NlSGFuZGxlIChoKTsKKwl9 CisgICAgICBIZWFwRnJlZSAoR2V0UHJvY2Vzc0hlYXAgKCksIDAsIHBoaSk7CitjbG9zZV9wcm9j OgorICAgICAgQ2xvc2VIYW5kbGUgKHByb2MpOworICAgIH0KKyAgSGVhcEZyZWUgKEdldFByb2Nl c3NIZWFwICgpLCAwLCBwcm9jX3BpZHMpOworICByZXR1cm4gTlVMTDsKK30KKworLyogVGhpcyBm dW5jdGlvbiBpcyBzbG93ZXIgdGhhbiBnZXRfcXVlcnlfaGRsX3Blcl9wcm9jZXNzKCksIGhvd2V2 ZXIsCisgICB3b3JrcyBldmVuIGJlZm9yZSBXaW5kb3dzIDguICovCitIQU5ETEUKK2ZoYW5kbGVy X3BpcGU6OmdldF9xdWVyeV9oZGxfcGVyX3N5c3RlbSAoV0NIQVIgKm5hbWUsCisJCQkJCSBPQkpF Q1RfTkFNRV9JTkZPUk1BVElPTiAqbnRmbikKK3sKKyAgTlRTVEFUVVMgc3RhdHVzOwogICBTSVpF X1Qgbl9oYW5kbGUgPSA2NTUzNjsKICAgUFNZU1RFTV9IQU5ETEVfSU5GT1JNQVRJT04gc2hpOwog ICBkbwotICAgIHsKKyAgICB7IC8qIEVudW1lcmF0ZSBoYW5kbGVzICovCiAgICAgICBTSVpFX1Qg bmJ5dGVzID0KIAlzaXplb2YgKFVMT05HKSArIG5faGFuZGxlICogc2l6ZW9mIChTWVNURU1fSEFO RExFX1RBQkxFX0VOVFJZX0lORk8pOwogICAgICAgc2hpID0gKFBTWVNURU1fSEFORExFX0lORk9S TUFUSU9OKSBIZWFwQWxsb2MgKEdldFByb2Nlc3NIZWFwICgpLAotCQkJCQkJICAgICAwLCBuYnl0 ZXMpOworCQkJCQkJICAgIDAsIG5ieXRlcyk7CiAgICAgICBpZiAoIXNoaSkKIAlyZXR1cm4gTlVM TDsKICAgICAgIHN0YXR1cyA9IE50UXVlcnlTeXN0ZW1JbmZvcm1hdGlvbiAoU3lzdGVtSGFuZGxl SW5mb3JtYXRpb24sCkBAIC0xMTkzLDE1ICsxMzA5LDE1IEBAIGNhY2hlX2VycjoKICAgICAgIEhl YXBGcmVlIChHZXRQcm9jZXNzSGVhcCAoKSwgMCwgc2hpKTsKICAgICAgIG5faGFuZGxlICo9IDI7 CiAgICAgfQotICB3aGlsZSAobl9oYW5kbGUgPCAoMUw8PDIwKSk7CisgIHdoaWxlIChuX2hhbmRs ZSA8ICgxTDw8MjMpICYmIHN0YXR1cyA9PSBTVEFUVVNfSU5GT19MRU5HVEhfTUlTTUFUQ0gpOwog ICBpZiAoIU5UX1NVQ0NFU1MgKHN0YXR1cykpCiAgICAgcmV0dXJuIE5VTEw7CiAKLSAgSEFORExF IHFoID0gTlVMTDsKICAgZm9yIChMT05HIGkgPSAoTE9ORykgc2hpLT5OdW1iZXJPZkhhbmRsZXMg LSAxOyBpID49IDA7IGktLSkKICAgICB7CiAgICAgICAvKiBDaGVjayBmb3IgdGhlIHBlY3VsaWFy aXR5IG9mIGN5Z3dpbiByZWFkIHBpcGUgKi8KLSAgICAgIERXT1JEIGFjY2VzcyA9IEZJTEVfUkVB RF9EQVRBIHwgRklMRV9SRUFEX0VBIHwgRklMRV9XUklURV9FQSAvKiBtYXJrZXIgKi8KKyAgICAg IGNvbnN0IFVMT05HIGFjY2VzcyA9IEZJTEVfUkVBRF9EQVRBIHwgRklMRV9SRUFEX0VBCisJfCBG SUxFX1dSSVRFX0VBIC8qIG1hcmtlciAqLwogCXwgRklMRV9SRUFEX0FUVFJJQlVURVMgfCBGSUxF X1dSSVRFX0FUVFJJQlVURVMKIAl8IFJFQURfQ09OVFJPTCB8IFNZTkNIUk9OSVpFOwogICAgICAg aWYgKHNoaS0+SGFuZGxlc1tpXS5HcmFudGVkQWNjZXNzICE9IGFjY2VzcykKQEAgLTEyMTksNiAr MTMzNSw3IEBAIGNhY2hlX2VycjoKIAlnb3RvIGNsb3NlX3Byb2M7CiAKICAgICAgIC8qIENoZWNr IG9iamVjdCBuYW1lICovCisgICAgICBVTE9ORyBsZW47CiAgICAgICBzdGF0dXMgPSBOdFF1ZXJ5 T2JqZWN0IChoLCBPYmplY3ROYW1lSW5mb3JtYXRpb24sIG50Zm4sIDY1NTM2LCAmbGVuKTsKICAg ICAgIGlmICghTlRfU1VDQ0VTUyAoc3RhdHVzKSB8fCAhbnRmbi0+TmFtZS5CdWZmZXIpCiAJZ290 byBjbG9zZV9oYW5kbGU7CkBAIC0xMjI3LDggKzEzNDQsOCBAQCBjYWNoZV9lcnI6CiAJewogCSAg cXVlcnlfaGRsX3Byb2MgPSBwcm9jOwogCSAgcXVlcnlfaGRsX3ZhbHVlID0gKEhBTkRMRSkoaW50 cHRyX3QpIHNoaS0+SGFuZGxlc1tpXS5IYW5kbGVWYWx1ZTsKLQkgIHFoID0gaDsKLQkgIGJyZWFr OworCSAgSGVhcEZyZWUgKEdldFByb2Nlc3NIZWFwICgpLCAwLCBzaGkpOworCSAgcmV0dXJuIGg7 CiAJfQogY2xvc2VfaGFuZGxlOgogICAgICAgQ2xvc2VIYW5kbGUgKGgpOwpAQCAtMTIzNiw1ICsx MzUzLDUgQEAgY2xvc2VfcHJvYzoKICAgICAgIENsb3NlSGFuZGxlIChwcm9jKTsKICAgICB9CiAg IEhlYXBGcmVlIChHZXRQcm9jZXNzSGVhcCAoKSwgMCwgc2hpKTsKLSAgcmV0dXJuIHFoOworICBy ZXR1cm4gTlVMTDsKIH0KZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vbnRkbGwuaCBiL3dpbnN1 cC9jeWd3aW4vbnRkbGwuaAppbmRleCBlOGMzYzQ1YzUuLjA1MTBkODMzYiAxMDA2NDQKLS0tIGEv d2luc3VwL2N5Z3dpbi9udGRsbC5oCisrKyBiL3dpbnN1cC9jeWd3aW4vbnRkbGwuaApAQCAtODQy LDkgKzg0MiwyOCBAQCB0eXBlZGVmIGVudW0gX1BST0NFU1NJTkZPQ0xBU1MKICAgUHJvY2Vzc1Nl c3Npb25JbmZvcm1hdGlvbiA9IDI0LAogICBQcm9jZXNzV293NjRJbmZvcm1hdGlvbiA9IDI2LAog ICBQcm9jZXNzSW1hZ2VGaWxlTmFtZSA9IDI3LAotICBQcm9jZXNzRGVidWdGbGFncyA9IDMxCisg IFByb2Nlc3NEZWJ1Z0ZsYWdzID0gMzEsCisgIFByb2Nlc3NIYW5kbGVJbmZvcm1hdGlvbiA9IDUx IC8qIFNpbmNlIFdpbjggKi8KIH0gUFJPQ0VTU0lORk9DTEFTUzsKIAordHlwZWRlZiBzdHJ1Y3Qg X1BST0NFU1NfSEFORExFX1RBQkxFX0VOVFJZX0lORk8KK3sKKyAgSEFORExFIEhhbmRsZVZhbHVl OworICBVTE9OR19QVFIgSGFuZGxlQ291bnQ7CisgIFVMT05HX1BUUiBQb2ludGVyQ291bnQ7Cisg IFVMT05HIEdyYW50ZWRBY2Nlc3M7CisgIFVMT05HIE9iamVjdFR5cGVJbmRleDsKKyAgVUxPTkcg SGFuZGxlQXR0cmlidXRlczsKKyAgVUxPTkcgUmVzZXJ2ZWQ7Cit9IFBST0NFU1NfSEFORExFX1RB QkxFX0VOVFJZX0lORk8sICpQUFJPQ0VTU19IQU5ETEVfVEFCTEVfRU5UUllfSU5GTzsKKwordHlw ZWRlZiBzdHJ1Y3QgX1BST0NFU1NfSEFORExFX1NOQVBTSE9UX0lORk9STUFUSU9OCit7CisgIFVM T05HX1BUUiBOdW1iZXJPZkhhbmRsZXM7CisgIFVMT05HX1BUUiBSZXNlcnZlZDsKKyAgUFJPQ0VT U19IQU5ETEVfVEFCTEVfRU5UUllfSU5GTyBIYW5kbGVzWzFdOworfSBQUk9DRVNTX0hBTkRMRV9T TkFQU0hPVF9JTkZPUk1BVElPTiwgKlBQUk9DRVNTX0hBTkRMRV9TTkFQU0hPVF9JTkZPUk1BVElP TjsKKwogdHlwZWRlZiBzdHJ1Y3QgX0RFQlVHX0JVRkZFUgogewogICBIQU5ETEUgU2VjdGlvbkhh bmRsZTsKZGlmZiAtLWdpdCBhL3dpbnN1cC9jeWd3aW4vd2luY2FwLmNjIGIvd2luc3VwL2N5Z3dp bi93aW5jYXAuY2MKaW5kZXggNjM1ZTA4OTJiLi42Yzc5ZDg3MTAgMTAwNjQ0Ci0tLSBhL3dpbnN1 cC9jeWd3aW4vd2luY2FwLmNjCisrKyBiL3dpbnN1cC9jeWd3aW4vd2luY2FwLmNjCkBAIC01MCw2 ICs1MCw3IEBAIHdpbmNhcHMgd2luY2FwX3Zpc3RhIF9fYXR0cmlidXRlX18oKHNlY3Rpb24gKCIu Y3lnd2luX2RsbF9jb21tb24iKSwgc2hhcmVkKSkgPSB7CiAgICAgaGFzX3RjcF9mYXN0b3Blbjpm YWxzZSwKICAgICBoYXNfbGludXhfdGNwX2tlZXBhbGl2ZV9zb2Nrb3B0czpmYWxzZSwKICAgICBo YXNfdGNwX21heHJ0bXM6ZmFsc2UsCisgICAgaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFuZGxlX2luZm86 ZmFsc2UsCiAgIH0sCiB9OwogCkBAIC04NSw2ICs4Niw3IEBAIHdpbmNhcHMgd2luY2FwXzcgX19h dHRyaWJ1dGVfXygoc2VjdGlvbiAoIi5jeWd3aW5fZGxsX2NvbW1vbiIpLCBzaGFyZWQpKSA9IHsK ICAgICBoYXNfdGNwX2Zhc3RvcGVuOmZhbHNlLAogICAgIGhhc19saW51eF90Y3Bfa2VlcGFsaXZl X3NvY2tvcHRzOmZhbHNlLAogICAgIGhhc190Y3BfbWF4cnRtczpmYWxzZSwKKyAgICBoYXNfcXVl cnlfcHJvY2Vzc19oYW5kbGVfaW5mbzpmYWxzZSwKICAgfSwKIH07CiAKQEAgLTEyMCw2ICsxMjIs NyBAQCB3aW5jYXBzIHdpbmNhcF84IF9fYXR0cmlidXRlX18oKHNlY3Rpb24gKCIuY3lnd2luX2Rs bF9jb21tb24iKSwgc2hhcmVkKSkgPSB7CiAgICAgaGFzX3RjcF9mYXN0b3BlbjpmYWxzZSwKICAg ICBoYXNfbGludXhfdGNwX2tlZXBhbGl2ZV9zb2Nrb3B0czpmYWxzZSwKICAgICBoYXNfdGNwX21h eHJ0bXM6ZmFsc2UsCisgICAgaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFuZGxlX2luZm86dHJ1ZSwKICAg fSwKIH07CiAKQEAgLTE1NSw2ICsxNTgsNyBAQCB3aW5jYXBzIHdpbmNhcF84XzEgX19hdHRyaWJ1 dGVfXygoc2VjdGlvbiAoIi5jeWd3aW5fZGxsX2NvbW1vbiIpLCBzaGFyZWQpKSA9IHsKICAgICBo YXNfdGNwX2Zhc3RvcGVuOmZhbHNlLAogICAgIGhhc19saW51eF90Y3Bfa2VlcGFsaXZlX3NvY2tv cHRzOmZhbHNlLAogICAgIGhhc190Y3BfbWF4cnRtczpmYWxzZSwKKyAgICBoYXNfcXVlcnlfcHJv Y2Vzc19oYW5kbGVfaW5mbzp0cnVlLAogICB9LAogfTsKIApAQCAtMTkwLDYgKzE5NCw3IEBAIHdp bmNhcHMgIHdpbmNhcF8xMF8xNTA3IF9fYXR0cmlidXRlX18oKHNlY3Rpb24gKCIuY3lnd2luX2Rs bF9jb21tb24iKSwgc2hhcmVkKSkKICAgICBoYXNfdGNwX2Zhc3RvcGVuOmZhbHNlLAogICAgIGhh c19saW51eF90Y3Bfa2VlcGFsaXZlX3NvY2tvcHRzOmZhbHNlLAogICAgIGhhc190Y3BfbWF4cnRt czpmYWxzZSwKKyAgICBoYXNfcXVlcnlfcHJvY2Vzc19oYW5kbGVfaW5mbzp0cnVlLAogICB9LAog fTsKIApAQCAtMjI1LDYgKzIzMCw3IEBAIHdpbmNhcHMgIHdpbmNhcF8xMF8xNjA3IF9fYXR0cmli dXRlX18oKHNlY3Rpb24gKCIuY3lnd2luX2RsbF9jb21tb24iKSwgc2hhcmVkKSkKICAgICBoYXNf dGNwX2Zhc3RvcGVuOnRydWUsCiAgICAgaGFzX2xpbnV4X3RjcF9rZWVwYWxpdmVfc29ja29wdHM6 ZmFsc2UsCiAgICAgaGFzX3RjcF9tYXhydG1zOnRydWUsCisgICAgaGFzX3F1ZXJ5X3Byb2Nlc3Nf aGFuZGxlX2luZm86dHJ1ZSwKICAgfSwKIH07CiAKQEAgLTI2MCw2ICsyNjYsNyBAQCB3aW5jYXBz IHdpbmNhcF8xMF8xNzAzIF9fYXR0cmlidXRlX18oKHNlY3Rpb24gKCIuY3lnd2luX2RsbF9jb21t b24iKSwgc2hhcmVkKSkgPQogICAgIGhhc190Y3BfZmFzdG9wZW46dHJ1ZSwKICAgICBoYXNfbGlu dXhfdGNwX2tlZXBhbGl2ZV9zb2Nrb3B0czpmYWxzZSwKICAgICBoYXNfdGNwX21heHJ0bXM6dHJ1 ZSwKKyAgICBoYXNfcXVlcnlfcHJvY2Vzc19oYW5kbGVfaW5mbzp0cnVlLAogICB9LAogfTsKIApA QCAtMjk1LDYgKzMwMiw3IEBAIHdpbmNhcHMgd2luY2FwXzEwXzE3MDkgX19hdHRyaWJ1dGVfXygo c2VjdGlvbiAoIi5jeWd3aW5fZGxsX2NvbW1vbiIpLCBzaGFyZWQpKSA9CiAgICAgaGFzX3RjcF9m YXN0b3Blbjp0cnVlLAogICAgIGhhc19saW51eF90Y3Bfa2VlcGFsaXZlX3NvY2tvcHRzOnRydWUs CiAgICAgaGFzX3RjcF9tYXhydG1zOnRydWUsCisgICAgaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFuZGxl X2luZm86dHJ1ZSwKICAgfSwKIH07CiAKQEAgLTMzMCw2ICszMzgsNyBAQCB3aW5jYXBzIHdpbmNh cF8xMF8xODAzIF9fYXR0cmlidXRlX18oKHNlY3Rpb24gKCIuY3lnd2luX2RsbF9jb21tb24iKSwg c2hhcmVkKSkgPQogICAgIGhhc190Y3BfZmFzdG9wZW46dHJ1ZSwKICAgICBoYXNfbGludXhfdGNw X2tlZXBhbGl2ZV9zb2Nrb3B0czp0cnVlLAogICAgIGhhc190Y3BfbWF4cnRtczp0cnVlLAorICAg IGhhc19xdWVyeV9wcm9jZXNzX2hhbmRsZV9pbmZvOnRydWUsCiAgIH0sCiB9OwogCkBAIC0zNjUs NiArMzc0LDcgQEAgd2luY2FwcyB3aW5jYXBfMTBfMTgwOSBfX2F0dHJpYnV0ZV9fKChzZWN0aW9u ICgiLmN5Z3dpbl9kbGxfY29tbW9uIiksIHNoYXJlZCkpID0KICAgICBoYXNfdGNwX2Zhc3RvcGVu OnRydWUsCiAgICAgaGFzX2xpbnV4X3RjcF9rZWVwYWxpdmVfc29ja29wdHM6dHJ1ZSwKICAgICBo YXNfdGNwX21heHJ0bXM6dHJ1ZSwKKyAgICBoYXNfcXVlcnlfcHJvY2Vzc19oYW5kbGVfaW5mbzp0 cnVlLAogICB9LAogfTsKIApAQCAtNDAwLDYgKzQxMCw3IEBAIHdpbmNhcHMgd2luY2FwXzEwXzE5 MDMgX19hdHRyaWJ1dGVfXygoc2VjdGlvbiAoIi5jeWd3aW5fZGxsX2NvbW1vbiIpLCBzaGFyZWQp KSA9CiAgICAgaGFzX3RjcF9mYXN0b3Blbjp0cnVlLAogICAgIGhhc19saW51eF90Y3Bfa2VlcGFs aXZlX3NvY2tvcHRzOnRydWUsCiAgICAgaGFzX3RjcF9tYXhydG1zOnRydWUsCisgICAgaGFzX3F1 ZXJ5X3Byb2Nlc3NfaGFuZGxlX2luZm86dHJ1ZSwKICAgfSwKIH07CiAKZGlmZiAtLWdpdCBhL3dp bnN1cC9jeWd3aW4vd2luY2FwLmggYi93aW5zdXAvY3lnd2luL3dpbmNhcC5oCmluZGV4IDZiZTJj YTJhMS4uNzI0OWI5NTE4IDEwMDY0NAotLS0gYS93aW5zdXAvY3lnd2luL3dpbmNhcC5oCisrKyBi L3dpbnN1cC9jeWd3aW4vd2luY2FwLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IHdpbmNhcHMK ICAgICB1bnNpZ25lZCBoYXNfdGNwX2Zhc3RvcGVuCQkJCQk6IDE7CiAgICAgdW5zaWduZWQgaGFz X2xpbnV4X3RjcF9rZWVwYWxpdmVfc29ja29wdHMJCQk6IDE7CiAgICAgdW5zaWduZWQgaGFzX3Rj cF9tYXhydG1zCQkJCQk6IDE7CisgICAgdW5zaWduZWQgaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFuZGxl X2luZm8JCQk6IDE7CiAgIH07CiB9OwogCkBAIC0xMTEsNiArMTEyLDcgQEAgcHVibGljOgogICBi b29sCUlNUExFTUVOVCAoaGFzX3RjcF9mYXN0b3BlbikKICAgYm9vbAlJTVBMRU1FTlQgKGhhc19s aW51eF90Y3Bfa2VlcGFsaXZlX3NvY2tvcHRzKQogICBib29sCUlNUExFTUVOVCAoaGFzX3RjcF9t YXhydG1zKQorICBib29sCUlNUExFTUVOVCAoaGFzX3F1ZXJ5X3Byb2Nlc3NfaGFuZGxlX2luZm8p CiAKICAgdm9pZCBkaXNhYmxlX2Nhc2Vfc2Vuc2l0aXZlX2RpcnMgKCkKICAgewotLSAKMi4zMy4w Cgo= --Multipart=_Fri__24_Sep_2021_00_03_18_+0900_Z.wVx6H7SwcFtsDI--