From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id sB1xG51Mz2aQIwAA62LTzQ:P1 (envelope-from ) for ; Wed, 28 Aug 2024 16:13:17 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id sB1xG51Mz2aQIwAA62LTzQ (envelope-from ) for ; Wed, 28 Aug 2024 18:13:17 +0200 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=tethera.net header.s=2024 header.b=dfxkj2Yj; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 135.181.149.255 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1724861597; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-owner:list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=Laf6dAi4CuoqhmGin0nn2IC9ME7tKENs3baeGsktK0s=; b=u+F6M3W55HLQiZSlA7mOQhtxtolVkmIlWwr8HgPI6FYpcgaDgPM6mVBeMMOdCQYr1hax86 9sHY89JGKp9T3i2ewJmIJS4xrey1tYK2xr1hm0dQuzUQJteL5GSXStS58kOSa1fwF8RaXa VJSft0bMxIWb2++bdaynuI7fZuLUXUZND96VSVQKX3k9G5RnMZ9Q8QOk5NEWEpax9u0a0P hvkj30ze90QJkEvVWA4dIS8GKQfmhYUjasY819k6PvS2sHm/HkZp9zgo/STbB9MpZrQ9F0 1VVrp96/orZkNBHLiuJ+9TzI2RfCmBzEWcWeYp69u/N77Ro7HhelWyRadDUPBw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1724861597; a=rsa-sha256; cv=none; b=t2TgcB4EncQDynw0q3SiRjmMhbBZLZRG013BBDE0rXvr9PxXXGIZpupCNW8U+3BDxkBwEJ gGCzDG3xkPFwgLsC8yV4bXZrPf4bGp8yP25BG2EvoMI7Robty7DHe2uQJLHcPu78REzs3U wDzNhHI/0+AKK3oVf/WUpVbp+beIOV1d/9o4p5IZ4ZfJiFumXiM8O/+D9p8+5LHDEeYF8V yXc+4INWEwBgGJ8dnSCys3pyDD3Ymy1FzzOtHwdTr7m2l1yFx84P+hS7IBwNB3g7+6Z50p 3k70Dh7EwEQtT/CgNToa0Bv/VsH5E4EHbPOm9A/IKgpvd+Lulh5qCTXxLfPNuw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=tethera.net header.s=2024 header.b=dfxkj2Yj; dmarc=none; spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 135.181.149.255 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org Received: from mail.notmuchmail.org (yantan.tethera.net [135.181.149.255]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 41AB076F91 for ; Wed, 28 Aug 2024 18:13:17 +0200 (CEST) Received: from yantan.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id 995095F782; Wed, 28 Aug 2024 16:07:27 +0000 (UTC) Received: from phubs.tethera.net (phubs.tethera.net [IPv6:2607:5300:60:3a9d::1]) by mail.notmuchmail.org (Postfix) with ESMTPS id 21B935F4A5 for ; Wed, 28 Aug 2024 16:07:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tethera.net; i=@tethera.net; q=dns/txt; s=2024; t=1724861240; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type : content-transfer-encoding : from; bh=s3qPKYCPjTVECxr2CF+/LfG/xriFXbelQDImFVtpxfs=; b=dfxkj2Yjk2MqkSdS3ZoiZyShm0jGdOQI+s8ghA8EJ641ySmbyLaqqNtZZnO3ZwBbYgfQw u6jKAVrH8h1gML071CVAMW/CifV1wenQro3u/Yi5usBTa6fCKCRabmFrDyH6o48kqR9Nber OL9fQiCzi/ky6jZGUMrX5nG5AeszsKDMVTBYi7uFk8KfelofKRoA+LEUn1GqAZJN7w21tZ6 MhxHSCNSvyAa1V1t5rgD0aqo03uvfY1c2RiUqx9xkUsuXjcv7rmhRYzf3YwhSIPRtc3cUgR xqcJFG2TppWeDxrkPX2j2Elekemc7drMmlb9hGNC+6FXrhf3RBvbiaMHhBgA== Received: from tethera.net (unknown [207.194.98.244]) by phubs.tethera.net (Postfix) with ESMTPS id 346A0180180; Wed, 28 Aug 2024 13:07:20 -0300 (ADT) Received: (nullmailer pid 869222 invoked by uid 1000); Wed, 28 Aug 2024 16:07:15 -0000 From: David Bremner To: notmuch@notmuchmail.org Subject: [PATCH 2/5] cli: start remote helper for git. Date: Wed, 28 Aug 2024 08:45:55 -0700 Message-ID: <20240828160710.866567-3-david@tethera.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240828160710.866567-1-david@tethera.net> References: <20240828160710.866567-1-david@tethera.net> MIME-Version: 1.0 Message-ID-Hash: 6TJ4447HLW2LRJSG2KRM54UKVNYPA47E X-Message-ID-Hash: 6TJ4447HLW2LRJSG2KRM54UKVNYPA47E X-MailFrom: bremner@tethera.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.3 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Migadu-Flow: FLOW_IN X-Migadu-Country: DE X-Migadu-Spam-Score: 1.54 X-Spam-Score: 1.54 X-Migadu-Queue-Id: 41AB076F91 X-Migadu-Scanner: mx11.migadu.com X-TUID: Sx5kkHyJyN9R VGhpcyBpcyBjbG9zZWx5IGJhc2VkIG9uIGdpdC1yZW1vdGUtbm0gKGluIHJ1YnkpIGJ5IEZlbGlw ZSBDb250cmVyYXMuDQpJbml0aWFsbHkganVzdCBpbXBsZW1lbnQgdGhlIGNvbW1hbmRzICdjYXBh YmlsaXRlcycgYW5kICdsaXN0Jy4gIFRoaXMNCmlzbid0IGVub3VnaCB0byBkbyBhbnl0aGluZyB1 c2VmdWwgc28gc3RhcnQgc29tZSB1bml0IHRlc3RzLg0KLS0tDQogTWFrZWZpbGUubG9jYWwgICAg ICAgICAgfCAgIDcgKy0NCiBnaXQtcmVtb3RlLW5vdG11Y2guYyAgICB8IDE4MSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogdGVzdC9UODYwLWdpdC1yZW1vdGUuc2gg fCAgNDUgKysrKysrKysrKw0KIDMgZmlsZXMgY2hhbmdlZCwgMjMyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2l0LXJlbW90ZS1ub3RtdWNoLmMNCiBj cmVhdGUgbW9kZSAxMDA3NTUgdGVzdC9UODYwLWdpdC1yZW1vdGUuc2gNCg0KZGlmZiAtLWdpdCBh L01ha2VmaWxlLmxvY2FsIGIvTWFrZWZpbGUubG9jYWwNCmluZGV4IDc2OTljMjA4Li4yYWM0OTRi OCAxMDA2NDQNCi0tLSBhL01ha2VmaWxlLmxvY2FsDQorKysgYi9NYWtlZmlsZS5sb2NhbA0KQEAg LTEsNyArMSw4IEBADQogIyAtKi0gbWFrZWZpbGUtZ21ha2UgLSotDQogDQogLlBIT05ZOiBhbGwN Ci1hbGw6IG5vdG11Y2ggbm90bXVjaC1zaGFyZWQgYnVpbGQtbWFuIGJ1aWxkLWluZm8gcnVieS1i aW5kaW5ncyBweXRob24tY2ZmaS1iaW5kaW5ncyBub3RtdWNoLWdpdCBubWJ1Zw0KK2FsbDogbm90 bXVjaCBub3RtdWNoLXNoYXJlZCBnaXQtcmVtb3RlLW5vdG11Y2ggXA0KKwlidWlsZC1tYW4gYnVp bGQtaW5mbyBydWJ5LWJpbmRpbmdzIHB5dGhvbi1jZmZpLWJpbmRpbmdzIG5vdG11Y2gtZ2l0IG5t YnVnDQogaWZlcSAoJChNQUtFQ01ER09BTFMpLCkNCiBpZmVxICgkKHNoZWxsIGNhdCAuZmlyc3Qt YnVpbGQtbWVzc2FnZSAyPi9kZXYvbnVsbCksKQ0KIAlATk9UTVVDSF9GSVJTVF9CVUlMRD0xICQo TUFLRSkgLS1uby1wcmludC1kaXJlY3RvcnkgYWxsDQpAQCAtMjc0LDYgKzI3NSw5IEBAIG5vdG11 Y2g6ICQobm90bXVjaF9jbGllbnRfbW9kdWxlcykgbGliL2xpYm5vdG11Y2guYSB1dGlsL2xpYm5v dG11Y2hfdXRpbC5hIHBhcnNlDQogbm90bXVjaC1zaGFyZWQ6ICQobm90bXVjaF9jbGllbnRfbW9k dWxlcykgbGliLyQoTElOS0VSX05BTUUpDQogCSQoY2FsbCBxdWlldCwkKEZJTkFMX05PVE1VQ0hf TElOS0VSKSAkKENGTEFHUykpICQobm90bXVjaF9jbGllbnRfbW9kdWxlcykgJChGSU5BTF9OT1RN VUNIX0xERkxBR1MpIC1vICRADQogDQorZ2l0LXJlbW90ZS1ub3RtdWNoOiBnaXQtcmVtb3RlLW5v dG11Y2gubyBzdGF0dXMubw0KKwkkKGNhbGwgcXVpZXQsJChGSU5BTF9OT1RNVUNIX0xJTktFUikg JChDRkxBR1MpKSAkXiAkKEZJTkFMX05PVE1VQ0hfTERGTEFHUykgLW8gJEANCisNCiAuUEhPTlk6 IGluc3RhbGwNCiBpbnN0YWxsOiBhbGwgaW5zdGFsbC1tYW4gaW5zdGFsbC1pbmZvDQogCW1rZGly IC1wICIkKERFU1RESVIpJChwcmVmaXgpL2Jpbi8iDQpAQCAtMzAyLDYgKzMwNiw3IEBAIGVuZGlm DQogDQogU1JDUyAgOj0gJChTUkNTKSAkKG5vdG11Y2hfY2xpZW50X3NyY3MpDQogQ0xFQU4gOj0g JChDTEVBTikgbm90bXVjaCBub3RtdWNoLXNoYXJlZCAkKG5vdG11Y2hfY2xpZW50X21vZHVsZXMp DQorQ0xFQU4gOj0gJChDTEVBTikgZ2l0LXJlbW90ZS1ub3RtdWNoIGdpdC1yZW1vdGUtbm90bXVj aC5vDQogQ0xFQU4gOj0gJChDTEVBTikgdmVyc2lvbi5zdGFtcCBub3RtdWNoLSoudGFyLmd6LnRt cA0KIENMRUFOIDo9ICQoQ0xFQU4pIC5kZXBzDQogDQpkaWZmIC0tZ2l0IGEvZ2l0LXJlbW90ZS1u b3RtdWNoLmMgYi9naXQtcmVtb3RlLW5vdG11Y2guYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwLi5jZmM0M2E2OA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2l0LXJlbW90ZS1u b3RtdWNoLmMNCkBAIC0wLDAgKzEsMTgxIEBADQorLyogbm90bXVjaCAtIE5vdCBtdWNoIG9mIGFu IGVtYWlsIHByb2dyYW0sIChqdXN0IGluZGV4IGFuZCBzZWFyY2gpDQorICoNCisgKiBDb3B5cmln aHQgwqkgMjAyMyBGZWxpcGUgQ29udHJlcmFzDQorICogQ29weXJpZ2h0IMKpIDIwMjQgRGF2aWQg QnJlbW5lcg0KKyAqDQorICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KKyAqIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yDQorICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCisgKg0KKyAqIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLA0KKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mDQorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuDQorICoNCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKyAqIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8gLg0K KyAqDQorICogQXV0aG9yczogRmVsaXBlIENvbnRyZXJhcw0KKyAqCSAgICBEYXZpZCBCcmVtbmVy IDxkYXZpZEB0ZXRoZXJhLm5ldD4NCisgKi8NCisNCisjaW5jbHVkZSA8YXNzZXJ0Lmg+DQorI2lu Y2x1ZGUgPHN0ZGxpYi5oPg0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdHJpbmcu aD4NCisjaW5jbHVkZSA8bm90bXVjaC5oPg0KKyNpbmNsdWRlICJub3RtdWNoLWNsaWVudC5oIg0K KyNpbmNsdWRlICJwYXRoLXV0aWwuaCINCisjaW5jbHVkZSAiaGV4LWVzY2FwZS5oIg0KKyNpbmNs dWRlICJzdHJpbmctdXRpbC5oIg0KKw0KKyNkZWZpbmUgQVNTRVJUKHgpIGFzc2VydCgoeCkpDQor DQorLyogRmlsZSBzY29wZSBnbG9iYWxzICovDQorY29uc3QgY2hhciAqYWxpYXMgPSBOVUxMOw0K K2NvbnN0IGNoYXIgKm5tX2RpciA9IE5VTEw7DQorY29uc3QgY2hhciAqdXJsID0gTlVMTDsNCitj b25zdCBjaGFyKiBkZWJ1Z19mbGFncyA9IE5VTEw7DQordW5zaWduZWQgbG9uZyBsYXN0bW9kOw0K K25vdG11Y2hfZGF0YWJhc2VfdCAqZGI7DQorRklMRSAqbG9nX2ZpbGUgPSBOVUxMOw0KKw0KK3N0 YXRpYyB2b2lkDQorZmxvZyAoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pIHsNCisgICAgdmFfbGlz dCB2YV9hcmdzOw0KKw0KKyAgICBpZiAobG9nX2ZpbGUpIHsNCisJdmFfc3RhcnQgKHZhX2FyZ3Ms IGZvcm1hdCk7DQorCXZmcHJpbnRmIChsb2dfZmlsZSwgZm9ybWF0LCB2YV9hcmdzKTsNCisJZmZs dXNoIChsb2dfZmlsZSk7DQorCXZhX2VuZCAodmFfYXJncyk7DQorICAgIH0NCit9DQorDQorc3Rh dGljIHVuc2lnbmVkIGxvbmcgcmVhZF9sYXN0bW9kIChjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNo YXIgKmRpcikgew0KKyAgICBjaGFyICpmaWxlbmFtZSA9IE5VTEw7DQorICAgIHVuc2lnbmVkIGxv bmcgbnVtID0gMDsNCisNCisgICAgRklMRSAqaW47DQorDQorICAgIEFTU0VSVChmaWxlbmFtZSA9 IHRhbGxvY19hc3ByaW50ZiAoY3R4LCAiJXMvbGFzdG1vZCIsIGRpcikpOw0KKw0KKyAgICBpbiA9 IGZvcGVuIChmaWxlbmFtZSwgInIiKTsNCisgICAgaWYgKGluKSB7DQorCUFTU0VSVChmc2NhbmYg KGluLCAiJXp1IiwgJm51bSkgPT0gMSk7DQorICAgIH0gZWxzZSB7DQorCWlmIChlcnJubyAhPSBF Tk9FTlQpIHsNCisJICAgIGZwcmludGYgKHN0ZGVyciwgImVycm9yIG9wZW5pbmcgbGFzdG1vZCBm aWxlIik7DQorCSAgICBleGl0KEVYSVRfRkFJTFVSRSk7DQorCX0NCisgICAgfQ0KKw0KKyAgICBm bG9nICgibG9hZGVkIGxhc3Rtb2QgPSAlenVcbiIsIG51bSk7DQorDQorICAgIHJldHVybiBudW07 DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQorY21kX2NhcGFiaWxpdGllcyAoKSB7DQorICAgIGZwdXRz KCJpbXBvcnRcbmV4cG9ydFxucmVmc3BlYyByZWZzL2hlYWRzLyo6cmVmcy9ub3RtdWNoLypcblxu Iiwgc3Rkb3V0KTsNCisgICAgZmZsdXNoIChzdGRvdXQpOw0KK30NCisNCitzdGF0aWMgdm9pZA0K K2NtZF9saXN0ICgpIHsNCisgICAgdW5zaWduZWQgbG9uZyBjdXJyZW50X2xhc3Rtb2Q7DQorICAg IGN1cnJlbnRfbGFzdG1vZCA9IG5vdG11Y2hfZGF0YWJhc2VfZ2V0X3JldmlzaW9uIChkYiwgTlVM TCk7DQorICAgIHByaW50ZigiPyByZWZzL2hlYWRzL21hc3RlciVzXG5cbiIsDQorCSAgIGxhc3Rt b2QgPT0gY3VycmVudF9sYXN0bW9kID8gIiB1bmNoYW5nZWQiIDogIiIpOw0KKyAgICBmZmx1c2gg KHN0ZG91dCk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkDQordXNhZ2UoKSB7DQorICAgIGZwcmludGYg KHN0ZGVyciwgInVzYWdlOiBnaXQtcmVtb3RlLW5tIEFMSUFTIFVSTFxuIik7DQorICAgIGV4aXQo RVhJVF9GQUlMVVJFKTsNCit9DQorDQoraW50DQorbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkNCit7DQorICBub3RtdWNoX3N0YXR1c190IHN0YXR1czsNCisgIGNoYXIgKnN0YXR1c19zdHJp bmcgPSBOVUxMOw0KKyAgY29uc3QgY2hhciogZ2l0X2RpcjsNCisgIHNzaXplX3QgbnJlYWQ7DQor ICBzaXplX3QgbGVuID0gMDsNCisgIGNvbnN0IGNoYXIgKmxvZ19maWxlX25hbWU7DQorDQorICBj aGFyICpsaW5lID0gTlVMTDsNCisNCisgIGRlYnVnX2ZsYWdzID0gZ2V0ZW52ICgiR0lUX1JFTU9U RV9OTV9ERUJVRyIpOw0KKyAgbG9nX2ZpbGVfbmFtZSA9IGdldGVudiAoIkdJVF9SRU1PVEVfTk1f TE9HIik7DQorDQorICBpZiAobG9nX2ZpbGVfbmFtZSkNCisgICAgICBsb2dfZmlsZSA9IGZvcGVu IChsb2dfZmlsZV9uYW1lLCAidyIpOw0KKw0KKyAgaWYgKGFyZ2MgIT0gMykNCisgICAgdXNhZ2Uo KTsNCisgIC8qIHNldHVwIGdsb2JhbHMgKi8NCisgIGFsaWFzID0gYXJndlsxXTsNCisgIHVybCA9 IGFyZ3ZbMl07DQorDQorICBzdGF0dXMgPSBub3RtdWNoX2RhdGFiYXNlX29wZW5fd2l0aF9jb25m aWcgKE5VTEwsDQorCQkJCQkgICAgICBOT1RNVUNIX0RBVEFCQVNFX01PREVfUkVBRF9XUklURSwN CisJCQkJCSAgICAgIE5VTEwsDQorCQkJCQkgICAgICBOVUxMLA0KKwkJCQkJICAgICAgJmRiLA0K KwkJCQkJICAgICAgJnN0YXR1c19zdHJpbmcpOw0KKyAgaWYgKHN0YXR1cykgew0KKyAgICAgIGlm IChzdGF0dXNfc3RyaW5nKSB7DQorCSAgZnB1dHMgKHN0YXR1c19zdHJpbmcsIHN0ZGVycik7DQor CSAgZnJlZSAoc3RhdHVzX3N0cmluZyk7DQorCSAgc3RhdHVzX3N0cmluZyA9IE5VTEw7DQorICAg ICAgfQ0KKyAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7DQorICB9DQorDQorICBnaXRfZGlyID0g Z2V0ZW52ICgiR0lUX0RJUiIpOw0KKyAgaWYgKCEgZ2l0X2Rpcikgew0KKyAgICAgIGZwcmludGYg KHN0ZGVyciwgIkdJVF9ESVIgbm90IHNldFxuIik7DQorICAgICAgZXhpdChFWElUX0ZBSUxVUkUp Ow0KKyAgfQ0KKyAgZmxvZyAoIkdJVF9ESVI9JXNcbiIsIGdpdF9kaXIpOw0KKw0KKyAgQVNTRVJU KG5tX2RpciA9IHRhbGxvY19hc3ByaW50ZihkYiwgIiVzLyVzIiwgZ2l0X2RpciwgIm5vdG11Y2gi KSk7DQorDQorICBzdGF0dXMgPSBta2Rpcl9yZWN1cnNpdmUgKGRiLCBubV9kaXIsIDA3MDAsICZz dGF0dXNfc3RyaW5nKTsNCisgIGlmIChzdGF0dXMpIHsNCisgICAgICBpZiAoc3RhdHVzX3N0cmlu ZykNCisJICBmcHV0cyhzdGF0dXNfc3RyaW5nLCBzdGRlcnIpOw0KKw0KKyAgICAgIGV4aXQgKEVY SVRfRkFJTFVSRSk7DQorICB9DQorDQorICBsYXN0bW9kID0gcmVhZF9sYXN0bW9kIChkYiwgbm1f ZGlyKTsNCisNCisgIHdoaWxlICgobnJlYWQgPSBnZXRsaW5lKCZsaW5lLCAmbGVuLCBzdGRpbikp ICE9IC0xKSB7DQorICAgICAgc2l6ZV90IGNvdW50PTA7DQorICAgICAgY2hhciAqcyA9IGxpbmU7 DQorICAgICAgZmxvZyAoImNvbW1hbmQgPSAlc1xuIiwgbGluZSk7DQorDQorICAgICAgLyogc2tp cCBsZWFkaW5nIHNwYWNlICovDQorICAgICAgd2hpbGUgKCpzICYmIGlzc3BhY2UoKnMpKSAgcysr Ow0KKyAgICAgIHdoaWxlIChzW2NvdW50XSAgJiYgISBpc3NwYWNlKHNbY291bnRdKSkgY291bnQr KzsNCisNCisgICAgICBpZiAoY291bnQgPT0gMCkNCisJICBicmVhazsNCisNCisgICAgICBpZiAo U1RSTkNNUF9MSVRFUkFMIChzLCAiY2FwYWJpbGl0aWVzIik9PSAwKQ0KKwkgIGNtZF9jYXBhYmls aXRpZXMgKCk7DQorICAgICAgZWxzZSBpZiAoU1RSTkNNUF9MSVRFUkFMIChzLCAibGlzdCIpID09 IDApDQorCSAgY21kX2xpc3QgKCk7DQorDQorICAgICAgZmZsdXNoKHN0ZG91dCk7DQorICAgICAg ZmxvZyAoImZpbmlzaGVkIGNvbW1hbmQgPSAlc1xuIiwgcyk7DQorICB9DQorICBmbG9nICgiZmlu aXNoZWQgbG9vcFxuIik7DQorDQorICBub3RtdWNoX2RhdGFiYXNlX2Rlc3Ryb3kgKGRiKTsNCit9 DQpkaWZmIC0tZ2l0IGEvdGVzdC9UODYwLWdpdC1yZW1vdGUuc2ggYi90ZXN0L1Q4NjAtZ2l0LXJl bW90ZS5zaA0KbmV3IGZpbGUgbW9kZSAxMDA3NTUNCmluZGV4IDAwMDAwMDAwLi43YjJiNmI0OQ0K LS0tIC9kZXYvbnVsbA0KKysrIGIvdGVzdC9UODYwLWdpdC1yZW1vdGUuc2gNCkBAIC0wLDAgKzEs NDUgQEANCisjIS91c3IvYmluL2VudiBiYXNoDQordGVzdF9kZXNjcmlwdGlvbj0nZ2l0LXJlbW90 ZS1ub3RtdWNoJw0KKy4gJChkaXJuYW1lICIkMCIpL3Rlc3QtbGliLnNoIHx8IGV4aXQgMQ0KKw0K K25vdG11Y2hfc2FuaXRpemVfZ2l0KCkgew0KKyAgICBzZWQgJ3MvXmNvbW1pdHRlciBcKC4qXCkg XCg8W14+XSo+XCkgWzEtOV1bMC05XSogWy0rXVswLTldKi9jb21taXR0ZXIgXDEgXDIgVElNRVNU QU1QIFRJTUVaT05FLycNCit9DQorDQorYWRkX2VtYWlsX2NvcnB1cw0KKw0KK21rZGlyIHJlcG8N CisNCitnaXRfdG1wPSQobWt0ZW1wIC1kIGdpdFhYWFhYWFhYKQ0KKw0KK3J1bl9oZWxwZXIgKCkg ew0KKyAgICBHSVRfRElSPSR7Z2l0X3RtcH0gZ2l0LXJlbW90ZS1ub3RtdWNoIGR1bW15LWFsaWFz IGR1bW15LXVybA0KK30NCisNCitleHBvcnQgR0lUX0NPTU1JVFRFUl9OQU1FPSJOb3RtdWNoIFRl c3QgU3VpdGUiDQorZXhwb3J0IEdJVF9DT01NSVRURVJfRU1BSUw9Im5vdG11Y2hAZXhhbXBsZS5j b20iDQorZXhwb3J0IEdJVF9SRU1PVEVfTk1fREVCVUc9InMiDQorZXhwb3J0IEdJVF9SRU1PVEVf Tk1fTE9HPWdybi1sb2cudHh0DQorRVhQRUNURUQ9JE5PVE1VQ0hfU1JDRElSL3Rlc3QvZ2l0LXJl bW90ZS1ubS5leHBlY3RlZC1vdXRwdXQNCisNCitUQUdfRklMRT0iODcvYjEvNEVGQzc0M0EuMzA2 MDYwOUBhcHJpbC5vcmcvdGFncyINCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgJ2NhcGFiaWxpdGll cycNCitlY2hvIGNhcGFiaWxpdGllcyB8IHJ1bl9oZWxwZXIgPiBPVVRQVVQNCitjYXQgPDxFT0Yg PiBFWFBFQ1RFRA0KK2ltcG9ydA0KK2V4cG9ydA0KK3JlZnNwZWMgcmVmcy9oZWFkcy8qOnJlZnMv bm90bXVjaC8qDQorDQorRU9GDQordGVzdF9leHBlY3RfZXF1YWxfZmlsZSBFWFBFQ1RFRCBPVVRQ VVQNCisNCit0ZXN0X2JlZ2luX3N1YnRlc3QgJ2xpc3QnDQorZWNobyBsaXN0IHwgcnVuX2hlbHBl ciA+IE9VVFBVVA0KK2NhdCA8PEVPRiA+IEVYUEVDVEVEDQorPyByZWZzL2hlYWRzL21hc3Rlcg0K Kw0KK0VPRg0KK3Rlc3RfZXhwZWN0X2VxdWFsX2ZpbGUgRVhQRUNURUQgT1VUUFVUDQorDQordGVz dF9kb25lDQotLSANCjIuNDMuMA0KDQ==