From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from m15.mail.163.com (m15.mail.163.com [45.254.50.220]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A23C4198E9F for ; Mon, 17 Jun 2024 13:54:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=45.254.50.220 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718632463; cv=none; b=LMMUlA1IN0WurcK2FanH1/8gpOXnmbktwZ1tg/Cp+pxzrISBoREsNge259TMlrLIwTnYcsNfCbkHFPt37FL9Kcm5EHeNBmyLCGIxr3iMYlN94NDYoYG5zvQcaSgk6KVzlbv194CIwi2b1BDXgsA3TNQF7NvBgisSySM5vAInqZQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718632463; c=relaxed/simple; bh=Ot+ezqa28EYQfAX3dcKVs86E0ealzLcxlW9uVep3H0Q=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=poBMIAmolH8T7cp8x4IIW0UTKg42a6vQ1/FKXaDcxaVbIQAK9kY+WTV8mjcFN6ybC832nd+CmNZ51+iVEWVKHz7O0cNUKNOLK+AWbWqMJ/xpaUGF8zVRi4ZsbPoClNoP3VZIU8QGBKaIDo6of+HNS9RLa3XHOVLcovTE1oBWqiA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com; spf=pass smtp.mailfrom=163.com; dkim=fail (1024-bit key) header.d=163.com header.i=@163.com header.b=UVcfGSmc reason="signature verification failed"; arc=none smtp.client-ip=45.254.50.220 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=163.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=163.com Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=163.com header.i=@163.com header.b="UVcfGSmc" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=Date:From:Subject:Content-Type:MIME-Version: Message-ID; bh=xwWGVByFYxPGOkV8Mrv4cretO0MZ43vlkWtTXlWQElo=; b=U VcfGSmclFvfZBBA6YfN9UvVAkpB21zkxv1Cbpb1xP9Fcyxw+01WmPjbjCO+t6+Sp h4GiaTclAHeBY/Ba1kcSeGDFQnboTa7F8E4va4FaOUmn0yP2akmwedBY3Hh6bR8Y O4INmCqDyrifmKqt3WdsGdcOLGuJTtL8gpJVVB9vFM= Received: from bupt_xingxin$163.com ( [124.160.72.194] ) by ajax-webmail-wmsvr-40-148 (Coremail) ; Mon, 17 Jun 2024 21:53:56 +0800 (CST) Date: Mon, 17 Jun 2024 21:53:56 +0800 (CST) From: "Xing Xin" To: "Junio C Hamano" Cc: "Xing Xin via GitGitGadget" , git@vger.kernel.org, "Patrick Steinhardt" , "Karthik Nayak" , "Xing Xin" Subject: Re:Re: [PATCH v6 1/3] bundle-uri: verify oid before writing refs X-Priority: 3 X-Mailer: Coremail Webmail Server Version XT5.0.14 build 20230109(dcb5de15) Copyright (c) 2002-2024 www.mailtech.cn 163com In-Reply-To: References: X-NTES-SC: AL_Qu2aCvqYvUwo4CiZYekXn0oVhe85UMW2ufsg3YReP500uSbU/gU9d3VHHWTz1/qPGQavuhK4bx1q6eVGQJlFf4htWiuCIpfXTZRrIwGVtPgy Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=GBK Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <77366503.bef9.1902679d458.Coremail.bupt_xingxin@163.com> X-Coremail-Locale: zh_CN X-CM-TRANSID:_____wD3v6X0P3BmmW5uAA--.6591W X-CM-SenderInfo: xexs3sp0lqw5llq6il2tof0z/1tbiYBQBbWV4HPV+cgAFsl X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU== QXQgMjAyNC0wNi0xMiAwMzowODowNCwgIkp1bmlvIEMgSGFtYW5vIiA8Z2l0c3RlckBwb2JveC5j b20+IHdyb3RlOgo+IlhpbmcgWGluIHZpYSBHaXRHaXRHYWRnZXQiIDxnaXRnaXRnYWRnZXRAZ21h aWwuY29tPiB3cml0ZXM6Cj4KPj4gVGhpcyBjb21taXQgZml4ZXMgdGhlIGJ1ZyBieSByZW1vdmlu ZyBgUkVGX1NLSVBfT0lEX1ZFUklGSUNBVElPTmAgZmxhZwo+Cj4iRml4IHRoZSBidWcgYnkgLi4u Ii4KPgo+PiB3aGVuIHdyaXRpbmcgYnVuZGxlIHJlZnMuIFdoZW4gYHJlZnMuYzpyZWZzX3VwZGF0 ZV9yZWZgIGlzIGNhbGxlZCB0byB0bwo+Cj4idG8gdG8iCgpBaCwgYWx3YXlzIHR5cG9zLiA6LSkK CltzbmlwXQo+PiAgdGVzdF9leHBlY3Rfc3VjY2VzcyAnY3JlYXRlIGJ1bmRsZScgJwo+PiAgCWdp dCBpbml0IGNsb25lLWZyb20gJiYKPj4gLQlnaXQgLUMgY2xvbmUtZnJvbSBjaGVja291dCAtYiB0 b3BpYyAmJgo+PiAtCXRlc3RfY29tbWl0IC1DIGNsb25lLWZyb20gQSAmJgo+PiAtCXRlc3RfY29t bWl0IC1DIGNsb25lLWZyb20gQiAmJgo+PiAtCWdpdCAtQyBjbG9uZS1mcm9tIGJ1bmRsZSBjcmVh dGUgQi5idW5kbGUgdG9waWMKPj4gKwkoCj4+ICsJCWNkIGNsb25lLWZyb20gJiYKPj4gKwkJZ2l0 IGNoZWNrb3V0IC1iIHRvcGljICYmCj4+ICsKPj4gKwkJdGVzdF9jb21taXQgQSAmJgo+PiArCQln aXQgYnVuZGxlIGNyZWF0ZSBBLmJ1bmRsZSB0b3BpYyAmJgo+PiArCj4+ICsJCXRlc3RfY29tbWl0 IEIgJiYKPj4gKwkJZ2l0IGJ1bmRsZSBjcmVhdGUgQi5idW5kbGUgdG9waWMgJiYKPj4gKwo+PiAr CQkjIENyZWF0ZSBhIGJ1bmRsZSB3aXRoIHJlZmVyZW5jZSBwb2ludGluZyB0byBub24tZXhpc3Rl bnQgb2JqZWN0Lgo+PiArCQlzZWQgInMvJChnaXQgcmV2LXBhcnNlIEEpLyQoZ2l0IHJldi1wYXJz ZSBCKS8iIDxBLmJ1bmRsZSA+YmFkLWhlYWRlci5idW5kbGUKPgo+SSBzdXNwZWN0IHRoYXQgdGhp cyB3b3VsZCBiZSB0ZXJyaWJseSB1bnBvcnRhYmxlLiAgVGhlIGVhcmx5IHBhcnQgb2YKPmEgYnVu ZGxlIGZpbGUgbWF5IGJlIHRleHQgYW5kIHNlZCBtYXkgYmUgYWJsZSB0byBncm9rIGJ1dCBhcmUg eW91Cj5zdXJlIGV2ZXJ5Ym9keSdzIGltcGxlbWVudGF0aW9uIG9mIHNlZCB3b3VsZCBub3QgYmFy ZiAob3IgZXZlbgo+d29yc2UsIGNvcnJ1cHQpIHRoZSBwYWNrIHN0cmVhbSBkYXRhIHRoYXQgZm9s bG93cz8KPgo+VGhlIGNvZGUgdXNlZCBpbiB0L2xpYi1idW5kbGUuc2g6Y29udmVydF9idW5kbGVf dG9fcGFjaygpIGhhcyBiZWVuCj5pbiB1c2Ugc2luY2UgODMxNTU4OGIgKGJ1bmRsZTogZml4IHdy b25nIGNoZWNrIG9mIHJlYWRfaGVhZGVyKCkncwo+cmV0dXJuIHZhbHVlICYgYWRkIHRlc3RzLCAy MDA3LTAzLTA2KSwgc28gbXVuZ2luZyB0aGUgYnVuZGxlIHdpdGgKPmEgY29kZSBzaW1pbGFyIHRv IGl0IG1heSBoYXZlIGEgYmV0dGVyIHBvcnRhYmlsaXR5IHN0b3J5Lgo+Cj5BZGQgc29tZXRoaW5n IGxpa2U6Cj4KPiAgICAgICAgY29ycnVwdF9idW5kbGVfaGVhZGVyICgpIHsKPiAgICAgICAgICAg ICAgICBzZWQgLWUgJy9eJC9xJyAiJEAiCj4gICAgICAgICAgICAgICAgY2F0Cj4gICAgICAgIH0K Pgo+dG8gdC9saWItYnVuZGxlLnNoLCB3aGljaCBjYW4gdGFrZSBhbiBhcmJpdHJhcnkgc2VxdWVu Y2Ugb2YgY29tbWFuZAo+bGluZSBwYXJhbWV0ZXJzIHRvIGRyaXZlICJzZWQiLCBhbmQgY2FuIGJl IHVzZWQgbGlrZSBzbzoKPgo+CWNvcnJ1cHRfYnVuZGxlX2hlYWRlciBcCj4JCS1lICJzL14kKGdp dCByZXYtcGFyc2UgQSkgLyQoZ2l0IHJldi1wYXJzZSBCKSAvIiBcCj4JCTxBLmJuZGwgPkIuYm5k bAo+Cj5wZXJoYXBzPwoKVGhhbmtzLCBJIG5ldmVyIGtuZXcgc2VkIGNvdWxkIGJlIHVzZWQgdGhp cyB3YXkhIEl0J3Mgc28gY29uY2lzZSEKCkhvd2V2ZXIsIGFmdGVyIGFwcGx5aW5nIHRoZXNlIGNv ZGUsIHRoZSBhZGRlZCB0ZXN0ICJ0NTU1OC41IGNsb25lIHdpdGgKYnVuZGxlIHRoYXQgaGFzIGJh ZCBoZWFkZXIiIGZhaWxzIGluIHNvbWUgQ0kgam9icyBzaG93aW5nIHRoYXQgd2UgY2FuCm5vdCBn ZXQgZXhwZWN0ZWQgZXJyb3IuIEZvciBleGFtcGxlIENJICJsaW51eC1tdXNsIChhbHBpbmUpIiBn aXZlczoKCgkrIGdpdCBjbG9uZSAnLS1idW5kbGUtdXJpPWNsb25lLWZyb20vYmFkLWhlYWRlci5i dW5kbGUnIGNsb25lLWZyb20gY2xvbmUtYmFkLWhlYWRlcgoJKyBnaXQgLUMgY2xvbmUtZnJvbSBy ZXYtcGFyc2UgQgoJKyBjb21taXRfYj1kOWRmNDUwNWNiMzUyMjA4OGI5ZTI5ZDYwNTFhYzE2ZjE1 NjQxNTRhCgkrIHRlc3RfZ3JlcCAndHJ5aW5nIHRvIHdyaXRlIHJlZiAnIiciJ3JlZnMvYnVuZGxl cy90b3BpYyciJyInIHdpdGggbm9uZXhpc3RlbnQgb2JqZWN0IGQ5ZGY0NTA1Y2IzNTIyMDg4Yjll MjlkNjA1MWFjMTZmMTU2NDE1NGEnIGVycgoJKyBldmFsICdsYXN0X2FyZz0kezJ9JwoJKyBsYXN0 X2FyZz1lcnIKCSsgdGVzdCAtZiBlcnIKCSsgdGVzdCAyIC1sdCAyCgkrIHRlc3QgJ3ghJyAnPScg J3h0cnlpbmcgdG8gd3JpdGUgcmVmICciJyIncmVmcy9idW5kbGVzL3RvcGljJyInIicgd2l0aCBu b25leGlzdGVudCBvYmplY3QgZDlkZjQ1MDVjYjM1MjIwODhiOWUyOWQ2MDUxYWMxNmYxNTY0MTU0 YScKCSsgdGVzdCAneCEnICc9JyAneHRyeWluZyB0byB3cml0ZSByZWYgJyInIidyZWZzL2J1bmRs ZXMvdG9waWMnIiciJyB3aXRoIG5vbmV4aXN0ZW50IG9iamVjdCBkOWRmNDUwNWNiMzUyMjA4OGI5 ZTI5ZDYwNTFhYzE2ZjE1NjQxNTRhJwoJKyBncmVwICd0cnlpbmcgdG8gd3JpdGUgcmVmICciJyIn cmVmcy9idW5kbGVzL3RvcGljJyInIicgd2l0aCBub25leGlzdGVudCBvYmplY3QgZDlkZjQ1MDVj YjM1MjIwODhiOWUyOWQ2MDUxYWMxNmYxNTY0MTU0YScgZXJyCgkrIGVjaG8gJ2Vycm9yOiAnIici J2dyZXAgdHJ5aW5nIHRvIHdyaXRlIHJlZiAnIiciJ3JlZnMvYnVuZGxlcy90b3BpYyciJyInIHdp dGggbm9uZXhpc3RlbnQgb2JqZWN0IGQ5ZGY0NTA1Y2IzNTIyMDg4YjllMjlkNjA1MWFjMTZmMTU2 NDE1NGEnICdlcnInIiciJyBkaWRuJyInIid0IGZpbmQgYSBtYXRjaCBpbjonCgllcnJvcjogJ2dy ZXAgdHJ5aW5nIHRvIHdyaXRlIHJlZiAncmVmcy9idW5kbGVzL3RvcGljJyB3aXRoIG5vbmV4aXN0 ZW50IG9iamVjdCBkOWRmNDUwNWNiMzUyMjA4OGI5ZTI5ZDYwNTFhYzE2ZjE1NjQxNTRhIGVycicg ZGlkbid0IGZpbmQgYSBtYXRjaCBpbjoKCSsgdGVzdCAtcyBlcnIKCSsgY2F0IGVycgoJQ2xvbmlu ZyBpbnRvICdjbG9uZS1iYWQtaGVhZGVyJy4uLgoJZmF0YWw6IHBhY2sgc2lnbmF0dXJlIG1pc21h dGNoCgllcnJvcjogaW5kZXgtcGFjayBkaWVkCglkb25lLgoJKyByZXR1cm4gMQoJZXJyb3I6IGxh c3QgY29tbWFuZCBleGl0ZWQgd2l0aCAkPz0xCglub3Qgb2sgNSAtIGNsb25lIHdpdGggYnVuZGxl IHRoYXQgaGFzIGJhZCBoZWFkZXIKCgkrIyBDcmVhdGUgYSBidW5kbGUgd2l0aCByZWZlcmVuY2Ug cG9pbnRpbmcgdG8gbm9uLWV4aXN0ZW50IG9iamVjdC4KCStzZWQgLWUgIi9eJC9xIiAtZSAicy8k KGdpdCByZXYtcGFyc2UgQSkgLyQoZ2l0IHJldi1wYXJzZSBCKSAvIiBcCgkrCTxBLmJ1bmRsZSA+ YmFkLWhlYWRlci5idW5kbGUgJiYKCStjb252ZXJ0X2J1bmRsZV90b19wYWNrIFwKCSsJPEEuYnVu ZGxlID4+YmFkLWhlYWRlci5idW5kbGUKCk1vcmUgZGV0YWlscyBjYW4gYmUgZm91bmQgYXQgaHR0 cHM6Ly9naXRodWIuY29tL2JsYW5ldC9naXQvYWN0aW9ucy9ydW5zLzk1NDE0NzgxOTEvam9iLzI2 Mjk0NzMxMjU0LgoKQWZ0ZXIgc29tZSBkaWdnaW5nLCBJIGRpc2NvdmVyZWQgdGhhdCBpbnNpZGUg dGhlIEFscGluZSBjb250YWluZXIsCmBjb3JydXB0X2J1bmRsZV9oZWFkZXJgIGlzIG1pc3Npbmcg dGhlIGxlYWRpbmcgIlBBQ0tceDAwIiBpbiB0aGUgcGFjawpzZWN0aW9uIG9mIHRoZSBjb252ZXJ0 ZWQgYnVuZGxlLiBUaGlzIGlzIGxpa2VseSBjYXVzZWQgYnkgdGhlCmluY29tcGF0aWJpbGl0eSBv ZiAic2VkIiBhY3Jvc3MgZGlmZmVyZW50IG9wZXJhdGluZyBzeXN0ZW1zLiBJIHN0b3BwZWQKaW52 ZXN0aWdhdGluZyBmdXJ0aGVyIGR1ZSB0byBteSB1bmZhbWlsaWFyaXR5IHdpdGggY29udGFpbmVy cyBhbmQgInNlZCIKaXRzZWxmLiBJbnN0ZWFkLCBJIGZvdW5kIGFub3RoZXIgYXBwcm9hY2ggdGhh dCB1dGlsaXplcyB0aGUgc3VnZ2VzdGVkCnVzYWdlIG9mICJzZWQiIGFuZCBgbGliLWJ1bmRsZS5z aDpjb252ZXJ0X2J1bmRsZV90b19wYWNrYC4KCiAJKyMgQ3JlYXRlIGEgYnVuZGxlIHdpdGggcmVm ZXJlbmNlIHBvaW50aW5nIHRvIG5vbi1leGlzdGVudCBvYmplY3QuCgkrc2VkIC1lICIvXiQvcSIg LWUgInMvJChnaXQgcmV2LXBhcnNlIEEpIC8kKGdpdCByZXYtcGFyc2UgQikgLyIgXAoJKwk8QS5i dW5kbGUgPmJhZC1oZWFkZXIuYnVuZGxlICYmCgkrY29udmVydF9idW5kbGVfdG9fcGFjayBcCgkr CTxBLmJ1bmRsZSA+PmJhZC1oZWFkZXIuYnVuZGxlCgo+PiBAQCAtMzMsNiArNDIsMTYgQEAgdGVz dF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUgd2l0aCBwYXRoIGJ1bmRsZScgJwo+PiAgCXRlc3RfY21w IGV4cGVjdCBhY3R1YWwKPj4gICcKPj4gIAo+PiArdGVzdF9leHBlY3Rfc3VjY2VzcyAnY2xvbmUg d2l0aCBidW5kbGUgdGhhdCBoYXMgYmFkIGhlYWRlcicgJwo+PiArCWdpdCBjbG9uZSAtLWJ1bmRs ZS11cmk9ImNsb25lLWZyb20vYmFkLWhlYWRlci5idW5kbGUiIFwKPj4gKwkJY2xvbmUtZnJvbSBj bG9uZS1iYWQtaGVhZGVyIDI+ZXJyICYmCj4+ICsJIyBXcml0ZSBidW5kbGUgcmVmIGZhaWxzLCBi dXQgY2xvbmUgY2FuIHN0aWxsIHByb2NlZWQuCj4+ICsJY29tbWl0X2I9JChnaXQgLUMgY2xvbmUt ZnJvbSByZXYtcGFyc2UgQikgJiYKPj4gKwl0ZXN0X2dyZXAgInRyeWluZyB0byB3cml0ZSByZWYg J1wnJ3JlZnMvYnVuZGxlcy90b3BpYydcJycgd2l0aCBub25leGlzdGVudCBvYmplY3QgJGNvbW1p dF9iIiBlcnIgJiYKPj4gKwlnaXQgLUMgY2xvbmUtYmFkLWhlYWRlciBmb3ItZWFjaC1yZWYgLS1m b3JtYXQ9IiUocmVmbmFtZSkiID5yZWZzICYmCj4+ICsJISBncmVwICJyZWZzL2J1bmRsZXMvIiBy ZWZzCj4+ICsnCj4+ICsKPgo+U28gdGhpcyBpcyB0aGUgdGVzdCB0aGUgcHJvcG9zZWQgbG9nIG1l c3NhZ2UgZGlzY3Vzc2VkLiAgVGhlCj5kZXNjcmlwdGlvbiBnYXZlIGEgZmFsc2UgaW1wcmVzc2lv biB0aGF0IHRoZSAiYnJva2VuIGhlYWRlciIgdGVzdAo+dGhhdCBoYXMgbm90IG11Y2ggdG8gZG8g d2l0aCB0aGUgYnVnIGJlaW5nIGZpeGVkIHdhcyB0aGUgb25seSBhZGRlZAo+dGVzdC0tLXdlIHBy b2JhYmx5IHdhbnQgdG8gY29ycmVjdCB0aGF0IGltcHJlc3Npb24uCgpBZGp1c3RlZCB0aGUgY29t bWl0IG1lc3NhZ2UuCgo+PiBAQCAtMjU5LDYgKzI3OCwxMzIgQEAgdGVzdF9leHBlY3Rfc3VjY2Vz cyAnY2xvbmUgYnVuZGxlIGxpc3QgKGZpbGUsIGFueSBtb2RlLCBhbGwgZmFpbHVyZXMpJyAnCj4+ ICAJISBncmVwICJyZWZzL2J1bmRsZXMvIiByZWZzCj4+ICAnCj4+ICAKPj4gKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKPj4gKyMgQ2xvbmUgbmVnb3RpYXRpb24gcmVsYXRlZCB0ZXN0cyBiZWdpbiBoZXJlCj4K PkRyb3AgdGhpcyBkaXZpZGVyIGFuZCBjb21tZW50LiAgVGhlIEhUVFAgdGVzdHMgeW91IHNlZSBi ZWxvdyBoYXMgYQo+bXVjaCBiZXR0ZXIgcmVhc29uIHRvIGJlIHNlcGFyYXRlZCBsaWtlIHRoYXQg aW4gb3JkZXIgdG8gd2FybiB0ZXN0Cj53cml0ZXJzICh0aGV5IHNob3VsZG4ndCBhZGQgdGhlaXIg cmFuZG9tIG5ldyB0ZXN0cyBhZnRlciB0aGF0IHBvaW50LAo+YmVjYXVzZSBldmVyeXRoaW5nIGFm dGVyIHRoYXQgb25lIGlzIHNraXBwZWQgd2hlbiBIVFRQRCB0ZXN0cyBhcmUKPmRpc2FibGVkLS0t c2VlIHRoZSBiZWdpbm5pbmcgb2YgdC9saWItaHR0cGQuc2ggd2hpY2ggaXMgaW5jbHVkZWQKPmFm dGVyIHRoYXQgZGl2aWRlciBsaW5lKSwgYnV0IGV2ZXJ5dGhpbmcgaGVyZSB5b3UgYWRkZWQgaXMg bm90Cj5zcGVjaWFsLiAgRXZlcnlib2R5IHNob3VsZCBydW4gdGhlc2UgdGVzdHMuCgpUaGFua3Mg Zm9yIHRoZSBleHBsYW5hdGlvbiwgZHJvcHBlZCB0aGUgZGl2aWRlciBpbiBuZXcgc2VyaWVzLgoK Pj4gK3Rlc3RfZXhwZWN0X3N1Y2Nlc3MgJ25lZ290aWF0aW9uOiBidW5kbGUgd2l0aCBwYXJ0IG9m IHdhbnRlZCBjb21taXRzJyAnCj4+ICsJdGVzdF93aGVuX2ZpbmlzaGVkIHJtIC1yZiB0cmFjZSou dHh0ICYmCj4KPkRvIG5vdCBvdmVybHkgZGVwZW5kIG9uIGdsb2Igbm90IG1hdGNoaW5nIGF0IHRo aXMgcG9pbnQgd2hlbiB5b3UKPmVzdGFibGlzaCB0aGUgd2hlbi1maW5pc2hlZCBoYW5kbGVyIChv ciBnbG9iIG1hdGNoaW5nIHRoZSBmaWxlcyB5b3UKPndhbnQgdG8gY2F0Y2ggYW5kIGxhdGVyIHRl c3Qgbm90IGFkZGluZyBhbnl0aGluZyB5b3Ugd291bGQgd2FudCB0bwo+Y2xlYW4pLiAgUXVvdGUg InJtIC1mIHRyYWNlKi50eHQiIGFuZCBkcm9wICJyIiBpZiB5b3UgZG8gbm90IGFic29sdXRlbHkK Pm5lZWQgaXQgKGFuZCBJIHdvdWxkIGltYWdpbmUgeW91IGRvbid0LCBnaXZlbiB0aGUgLnR4dCBz dWZmaXgpLgoKWWVzLCB0aGUgIi1yIiBpcyBub3Qgc2FmZSBhbmQgSSBqdXN0IG5lZWQgdG8gY2xl YW4gdGhlICIqLnR4dCIsIG5vdCBpbnZvbHZpbmcgZGlyZWN0b3JpZXMuCgo+PiArCUdJVF9UUkFD RV9QQUNLRVQ9IiQocHdkKS90cmFjZS1wYWNrZXQudHh0IiBcCj4+ICsJZ2l0IGNsb25lIC0tbm8t bG9jYWwgLS1idW5kbGUtdXJpPSJjbG9uZS1mcm9tL0EuYnVuZGxlIiBcCj4+ICsJCWNsb25lLWZy b20gbmVnby1idW5kbGUtcGFydCAmJgo+PiArCWdpdCAtQyBuZWdvLWJ1bmRsZS1wYXJ0IGZvci1l YWNoLXJlZiAtLWZvcm1hdD0iJShyZWZuYW1lKSIgPnJlZnMgJiYKPj4gKwlncmVwICJyZWZzL2J1 bmRsZXMvIiByZWZzID5hY3R1YWwgJiYKPj4gKwljYXQgPmV4cGVjdCA8PC1cRU9GICYmCj4+ICsJ cmVmcy9idW5kbGVzL3RvcGljCj4+ICsJRU9GCj4KPkhtcGgsIGlmIHRoZSBleHBlY3RlZCBwYXR0 ZXJuIGlzIG9ubHkgYSBmZXcgbGluZXMgd2l0aG91dCBhbnkgbWFnaWMsCj4KPgl0ZXN0X3dyaXRl X2xpbmVzID5leHBlY3QgcmVmcy9idW5kbGVzL3RvcGljICYmCj4KPm1heSBiZSBlYXNpZXIgdG8g Zm9sbG93LgoKQXBwbGllZCEKCj4+ICsJdGVzdF9jbXAgZXhwZWN0IGFjdHVhbCAmJgo+PiArCSMg RW5zdXJlIHRoYXQgcmVmcy9idW5kbGVzL3RvcGljIGFyZSBzZW50IGFzICJoYXZlIi4KPj4gKwln cmVwICJjbG9uZT4gaGF2ZSAkKGdpdCAtQyBjbG9uZS1mcm9tIHJldi1wYXJzZSBBKSIgdHJhY2Ut cGFja2V0LnR4dAo+PiArJwo+Cj5Vc2luZyAidGVzdF9ncmVwIiB3b3VsZCBtYWtlIGl0IGVhc2ll ciB0byBkaWFnbm9zZSB3aGVuIHRlc3QgYnJlYWtzLgo+QSBmYWlsaW5nICJncmVwIiB3aWxsIGJl IHNpbGVudCAoaS5lLiwgIkkgZGlkbid0IGZpbmQgYW55dGhpbmcgeW91Cj50b2xkIG1lIHRvIGxv b2sgZm9yIikuICBBIGZhaWxpbmcgInRlc3RfZ3JlcCIgd2lsbCB0ZWxsIHlvdSAiSSB3YXMKPnRv bGQgdG8gZmluZCB0aGlzLCBidXQgZGlkbid0IGZpbmQgYW55IGluIHRoYXQiLgoKVGhhbmtzLCBp dCBqdXN0IGFjY2VsZXJhdGVkIHRoZSBkaWdnaW5nIHByb2Nlc3Mgb2YgdGhlIHRlc3QgZmFpbHVy ZQptZW50aW9uZWQgYWJvdmUuIDopCgo+PiArdGVzdF9leHBlY3Rfc3VjY2VzcyAnbmVnb3RpYXRp b246IGJ1bmRsZSB3aXRoIGFsbCB3YW50ZWQgY29tbWl0cycgJwo+PiArCXRlc3Rfd2hlbl9maW5p c2hlZCBybSAtcmYgdHJhY2UqLnR4dCAmJgo+PiArCUdJVF9UUkFDRV9QQUNLRVQ9IiQocHdkKS90 cmFjZS1wYWNrZXQudHh0IiBcCj4+ICsJZ2l0IGNsb25lIC0tbm8tbG9jYWwgLS1zaW5nbGUtYnJh bmNoIC0tYnJhbmNoPXRvcGljIC0tbm8tdGFncyBcCj4+ICsJCS0tYnVuZGxlLXVyaT0iY2xvbmUt ZnJvbS9CLmJ1bmRsZSIgXAo+PiArCQljbG9uZS1mcm9tIG5lZ28tYnVuZGxlLWFsbCAmJgo+PiAr CWdpdCAtQyBuZWdvLWJ1bmRsZS1hbGwgZm9yLWVhY2gtcmVmIC0tZm9ybWF0PSIlKHJlZm5hbWUp IiA+cmVmcyAmJgo+PiArCWdyZXAgInJlZnMvYnVuZGxlcy8iIHJlZnMgPmFjdHVhbCAmJgo+PiAr CWNhdCA+ZXhwZWN0IDw8LVxFT0YgJiYKPj4gKwlyZWZzL2J1bmRsZXMvdG9waWMKPj4gKwlFT0YK Pj4gKwl0ZXN0X2NtcCBleHBlY3QgYWN0dWFsICYmCj4+ICsJIyBXZSBhbHJlYWR5IGhhdmUgYWxs IG5lZWRlZCBjb21taXRzIHNvIG5vICJ3YW50IiBuZWVkZWQuCj4+ICsJISBncmVwICJjbG9uZT4g d2FudCAiIHRyYWNlLXBhY2tldC50eHQKPj4gKycKPj4gKwo+PiArdGVzdF9leHBlY3Rfc3VjY2Vz cyAnbmVnb3RpYXRpb246IGJ1bmRsZSBsaXN0IChubyBoZXVyaXN0aWMpJyAnCj4+ICsJdGVzdF93 aGVuX2ZpbmlzaGVkIHJtIC1mIHRyYWNlKi50eHQgJiYKPj4gKwljYXQgPmJ1bmRsZS1saXN0IDw8 LUVPRiAmJgo+PiArCVtidW5kbGVdCj4+ICsJCXZlcnNpb24gPSAxCj4+ICsJCW1vZGUgPSBhbGwK Pj4gKwo+PiArCVtidW5kbGUgImJ1bmRsZS0xIl0KPj4gKwkJdXJpID0gZmlsZTovLyQocHdkKS9j bG9uZS1mcm9tL2J1bmRsZS0xLmJ1bmRsZQo+PiArCj4+ICsJW2J1bmRsZSAiYnVuZGxlLTIiXQo+ PiArCQl1cmkgPSBmaWxlOi8vJChwd2QpL2Nsb25lLWZyb20vYnVuZGxlLTIuYnVuZGxlCj4+ICsJ RU9GCj4KPk9LLiAgVGhpcyBpcyBhIGdvb2QgdXNlIG9mIGhlcmUtZG9jIChhcyBvcHBvc2VkIHRv IHRlc3Rfd3JpdGVfbGluZXMKPkkgc3VnZXN0ZWQgZWFybGllciBmb3IgZGlmZmVyZW50IHB1cnBv c2VzKS4gIEkgd29uZGVyZWQgaWYgdGhlc2UKPiQocHdkKSBhbmQgZmlsZTovLyQocHdkKSBhcmUg c2FmZSAoSSBhbHdheXMgZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBuZWVkCj50byBzb21ldGltZXMgdXNl ICRQV0QgdG8gaGVscCBXaW5kb3dzKSwgYnV0IEkgc2VlIHRoZW0gdXNlZCBpbiB3aGF0Cj5EZXJy aWNrIHdyb3RlIGluIHRoaXMgZmlsZSwgc28gdGhleSBtdXN0IGJlIGZpbmUuCj4KPkJ1dCB0aGVy ZSBtYXkgYmUgY2hhcmFjdGVycyBpbiB0aGUgbGVhZGluZyBwYXJ0IG9mICQocHdkKSB0aGF0IHdl IGRvCj5ub3QgY29udHJvbCB0aGF0IG5lZWRzIHF1b3RpbmcgKGxpa2UgYSBkb3VibGUgcXVvdGUg JyInKS4gIFRoZSB2YWx1ZQo+b2YgYnVuZGxlLioudXJpIG1heSBuZWVkIHRvIGJlIHF1b3RlZCBh IGJpdCBjYXJlZnVsbHkuICBUaGlzIGlzIG5vdAo+YSBuZXcgcHJvYmxlbSB0aGlzIHBhdGNoIGlu dHJvZHVjZXMsIHNvIHlvdSBkbyBub3QgaGF2ZSB0byByZXdyaXRlCj50aGlzIHBhcnQgb2YgdGhl IHBhdGNoOyBJJ2xsIG1hcmsgaXQgd2l0aCAjbGVmdG92ZXJiaXRzIGhlcmUtLS10aGUKPmlkZWEg YmVpbmcgc29tZWJvZHkgZWxzZSB3aG8gaXMgdG9vIGJvcmVkIGNhbiBjb21lIGJhY2ssIHNlZSBp ZiBpdAo+aXMgdHJ1bHkgYnJva2VuLCBhbmQgZml4IHRoZW0gYWZ0ZXIgYWxsIGR1c3Qgc2V0dGxl cy4KPgo+QWJ1c2luZyAiZ2l0IGNvbmZpZyAtZiBidW5kbGUtbGlzdCIgbWlnaHQgYmUgc2FmZXIs IGUuZy4KPgo+CSQgZ2l0IGNvbmZpZyAtZiBidW5kbGUubGlzdCBidW5kbGUuYnVuZGxlLTEudXJp IFwKPgkJJ2ZpbGU6Ly8vaG9tZS9hYmMiZGVmL3QvdHJhc2ggZGlyL2Nsb25lLWZyb20vYjEuYm5k bCcKPgkkIGNhdCBidW5kbGUubGlzdAo+ICAgICAgICBbYnVuZGxlICJidW5kbGUtMSJdCj4gICAg ICAgICAgICAgICAgdXJpID0gZmlsZTovLy9ob21lL2FiY1wiZGVmL3QvdHJhc2ggZGlyL2Nsb25l LWZyb20vYjEuYm5kbAo+Cj5hcyB5b3UgZG8gbm90IGtub3cgd2hhdCBvdGhlciBnYXJiYWdlIGNo YXJhY3RlciBpcyBpbiAkKHB3ZCkgcGFydC4KPgo+PiArCSMgV2UgYWxyZWFkeSBoYXZlIGFsbCBu ZWVkZWQgY29tbWl0cyBzbyBubyAid2FudCIgbmVlZGVkLgo+PiArCSEgZ3JlcCAiY2xvbmU+IHdh bnQgIiB0cmFjZS1wYWNrZXQudHh0Cj4KPkp1c3QgRllJLCB0byBuZWdhdGUgdGVzdF9ncmVwLCB1 c2UKPgo+CXRlc3RfZ3JlcCAhICJjbG9uZSA+IHdhbnQgIiB0cmFjZS1wYWNrZXQudHh0Cj4KPm5v dAkKPgo+CSEgdGVzdF9ncmVwICJjbG9uZSA+IHdhbnQgIiB0cmFjZS1wYWNrZXQudHh0IDsjIFdS T05HCgpUaGFua3MgeW91ciB0aHJvdWdoIHJldmlldyEKClhpbmcgWGluCgo=