From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr1.qq.com (smtpbgbr1.qq.com [54.207.19.206]) by sourceware.org (Postfix) with ESMTPS id D4FA9385770F for ; Fri, 10 Nov 2023 10:00:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D4FA9385770F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D4FA9385770F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.207.19.206 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699610417; cv=none; b=IbU6g8JCzEJF3nCGAS+aPxQ5UdQ2Z0zZZMgYsytDEBZDsvPaGUEx1dQuVwHtmDFyxYCa6X15W+Tfxmp1fsW+MHOIrxLVV5tpVGoNQ1nDA+nEvOtvO1dkTHV4Oy2mPENZ2AK1ODn9V5nN/H5N5BZsn0j8gm/YN5AJDj6AyyiwYeI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1699610417; c=relaxed/simple; bh=x9fwRqF8ieoOqlrIb5mdNME72y6R63RvbIrsTEdc3Eg=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=HoV6+QYCfkaqgRDZjBZwvNa9AmG4NT7ZGrwu489blCtnzL5xCqFyuKiZPgomktZ/NVMg8447d1SC4WfowyQn73FMkG1qeCeUk6BwV8PV7Yb9RbDk9AQ5Jzfwj09awkoeUK1swvroP1mAD9qD9MToP3zwRABo6adHvcjtlEpw1yk= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp91t1699610405t3w15zhw Received: from LAPTOP-EPITNQBU ( [121.35.180.247]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 10 Nov 2023 18:00:03 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: 27H4dUct9tgpWHiwP/o9I+6dLD/+IGLFOsUiYaxEkdoRgr2Q6WdQteEnHG71C Hc2bEj3KKJyyCtto52mvO+gPJufBPcBrF0hvRPHQB3mww5X8TJ36Ou4aQQLcTGqNYDrnp5S YS4hMu69P4jpKTiCoSCfo3fs/K1LUOanBFSpftts8Tq2VO2VM0o4bcW1V5F52cfuQ2IYYcj BLqoMPz+vSLt4IRXzXQr+wtKvsYeTkJKYDMxWK44SP4MsknTupe4Ey8IZaAK41/WalWz/aq N1vir/aKQ/OJ53w1PykIpPputo9opl/A+KJZ39k/FO6qquDYSacQ3IK4wGS+G7rloTxegwz YMO2wUG12CXuHqX72zINBYXzp9CFYWjZI4E2mS0ZZwwagB5eajo6ZK6qS6CTX9TEuUc+E17 srehUQH4RBNgCX4nDKoGIEUHEo63vqHPjYLqtbcLcZg= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 15631744702750735820 Date: Fri, 10 Nov 2023 18:00:03 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: "Richard Biener" , gcc-patches , richard.sandiford , kito.cheng , Kito.cheng Subject: Re: Re: [PATCH] Middle-end: Fix bug of induction variable vectorization for RVV References: <20231108105317.1786716-1-juzhe.zhong@rivai.ai>, , , X-Priority: 3 X-GUID: D61DE813-3F2F-4D6D-BE4A-C99298030F06 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart100405374511_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.7 required=5.0 tests=BAYES_00,BODY_8BITS,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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: This is a multi-part message in MIME format. ------=_001_NextPart100405374511_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksIFJpY2hhcmQuDQoNCj4+IEZvciBuZXN0ZWRfaW5fdmVjdF9sb29wIHdl IG5ldmVyIGhhdmUgTE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUD8NCkNv dWxkIHlvdSBnaXZlIG1lIGFuIGV4YW1wbGUgb2YgbmVzdGVkIGxvb3AgPw0K Rm9yIG5vdywgSSBjYW4ndCBwcm9kdWNlIGEgY2FzZS4NCg0KVGhhbmtzIGEg bG90IGZvciB0aGUgY29tbWVudHMsIEkgd2lsbCB0cnkgdG8gcmVmYWN0b3Ig YXMgeW91IHN1Z2dlc3RlZC4NCg0KDQpqdXpoZS56aG9uZ0ByaXZhaS5haQ0K IA0KRnJvbTogUmljaGFyZCBCaWVuZXINCkRhdGU6IDIwMjMtMTEtMTAgMTc6 NDYNClRvOiDpkp/lsYXlk7INCkNDOiByaWNoYXJkLmd1ZW50aGVyOyBnY2Mt cGF0Y2hlczsgcmljaGFyZC5zYW5kaWZvcmQ7IGtpdG8uY2hlbmc7IGtpdG8u Y2hlbmcNClN1YmplY3Q6IFJlOiBSZTogW1BBVENIXSBNaWRkbGUtZW5kOiBG aXggYnVnIG9mIGluZHVjdGlvbiB2YXJpYWJsZSB2ZWN0b3JpemF0aW9uIGZv ciBSVlYNCk9uIFRodSwgOSBOb3YgMjAyMywgPz8/IHdyb3RlOg0KIA0KPiBI aSwgUmljaGFyZC4NCj4gDQo+ID4+IEkgdGhpbmsgaXQgd291bGQgYmUgYmV0 dGVyIHRvIHNwbGl0IG91dCBidWlsZGluZyBhIHRyZWUgZnJvbSBWRiBmcm9t IGJvdGgNCj4gPj4gYXJtcyBhbmQgYXZvaWQgdXNpbmcgJ3ZmJyB3aGVuIExP T1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AuDQo+IA0KPiBJIGFtIHRyeWlu ZyB0byBzcGxpdCBvdXQgYnVpbGRpbmcgdHJlZSBmcm9tIGJvdGggYXJtcyBh cyB5b3Ugc3VnZ2VzdGVkLi4NCj4gQ291bGQgeW91IHRha2UgYSBsb29rIHRo ZSBmb2xsb3dpbmcgY29kZXMgPw0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy90 cmVlLXZlY3QtbG9vcC5jYyBiL2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiBp bmRleCA4YWJjMTkzN2Q3NC4uMjRhODYxODdkMTEgMTAwNjQ0DQo+IC0tLSBh L2djYy90cmVlLXZlY3QtbG9vcC5jYw0KPiArKysgYi9nY2MvdHJlZS12ZWN0 LWxvb3AuY2MNCj4gQEAgLTEwMzE1LDE5ICsxMDMxNSw0NyBAQCB2ZWN0b3Jp emFibGVfaW5kdWN0aW9uIChsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8sDQo+ ICAgICAgICAvKiBpdl9sb29wIGlzIHRoZSBsb29wIHRvIGJlIHZlY3Rvcml6 ZWQuIEdlbmVyYXRlOg0KPiAgICAgdmVjX3N0ZXAgPSBbVkYqUywgVkYqUywg VkYqUywgVkYqU10gICovDQo+ICAgICAgICBnaW1wbGVfc2VxIHNlcSA9IE5V TEw7DQo+IC0gICAgICBpZiAoU0NBTEFSX0ZMT0FUX1RZUEVfUCAoVFJFRV9U WVBFIChzdGVwX2V4cHIpKSkNCj4gKyAgICAgIGlmIChMT09QX1ZJTkZPX1VT SU5HX1NFTEVDVF9WTF9QIChsb29wX3ZpbmZvKSkNCj4gICB7DQo+IC0gICBl eHByID0gYnVpbGRfaW50X2NzdCAoaW50ZWdlcl90eXBlX25vZGUsIHZmKTsN Cj4gLSAgIGV4cHIgPSBnaW1wbGVfYnVpbGQgKCZzZXEsIEZMT0FUX0VYUFIs IFRSRUVfVFlQRSAoc3RlcF9leHByKSwgZXhwcik7DQo+ICsgICAvKiBXaGVu IHdlJ3JlIHVzaW5nIGxvb3BfbGVuIHByb2R1Y2VkIGJ5IFNFTEVDX1ZMLCB0 aGUgbm9uLWZpbmFsDQo+ICsgICAgICBpdGVyYXRpb25zIGFyZSBub3QgYWx3 YXlzIHByb2Nlc3NpbmcgVkYgZWxlbWVudHMuICBTbyB2ZWN0b3JpemUNCj4g KyAgICAgIGluZHVjdGlvbiB2YXJpYWJsZSBpbnN0ZWFkIG9mDQo+ICsNCj4g KyAgICAgICAgXzIxID0gdmVjdF92ZWNfaXZfLjZfMjIgKyB7IFZGLCAuLi4g fTsNCj4gKw0KPiArICAgICAgV2Ugc2hvdWxkIGdlbmVyYXRlOg0KPiArDQo+ ICsgICAgICAgXzM1ID0gLlNFTEVDVF9WTCAoaXZ0bXBfMzMsIFZGKTsNCj4g KyAgICAgICB2ZWN0X2NzdF9fMjIgPSBbdmVjX2R1cGxpY2F0ZV9leHByXSBf MzU7DQo+ICsgICAgICAgXzIxID0gdmVjdF92ZWNfaXZfLjZfMjIgKyB2ZWN0 X2NzdF9fMjI7ICAqLw0KPiArICAgdmVjX2xvb3BfbGVucyAqbGVucyA9ICZM T09QX1ZJTkZPX0xFTlMgKGxvb3BfdmluZm8pOw0KPiArICAgdHJlZSBsZW4N Cj4gKyAgICAgPSB2ZWN0X2dldF9sb29wX2xlbiAobG9vcF92aW5mbywgTlVM TCwgbGVucywgMSwgdmVjdHlwZSwgMCwgMCk7DQo+ICsgICBleHByID0gZm9y Y2VfZ2ltcGxlX29wZXJhbmQgKGZvbGRfY29udmVydCAoVFJFRV9UWVBFIChz dGVwX2V4cHIpLA0KPiArICAgICAgdW5zaGFyZV9leHByIChsZW4pKSwNCj4g KyAgICAgICAgJnNlcSwgdHJ1ZSwgTlVMTF9UUkVFKTsNCj4gICB9DQo+ICAg ICAgICBlbHNlDQo+IC0gZXhwciA9IGJ1aWxkX2ludF9jc3QgKFRSRUVfVFlQ RSAoc3RlcF9leHByKSwgdmYpOw0KPiArIHsNCj4gKyAgIGJvb2wgZmxvYXRf cCA9IFNDQUxBUl9GTE9BVF9UWVBFX1AgKFRSRUVfVFlQRSAoc3RlcF9leHBy KSk7DQo+ICsgICBleHByID0gYnVpbGRfaW50X2NzdCAoZmxvYXRfcCA/IGlu dGVnZXJfdHlwZV9ub2RlDQo+ICsgOiBUUkVFX1RZUEUgKHN0ZXBfZXhwciks DQo+ICsgdmYpOw0KPiArICAgaWYgKGZsb2F0X3ApDQo+ICsgICAgIGV4cHIg PSBnaW1wbGVfYnVpbGQgKCZzZXEsIEZMT0FUX0VYUFIsIFRSRUVfVFlQRSAo c3RlcF9leHByKSwgZXhwcik7DQo+ICsgfQ0KPiArDQogDQpJIG1lYW50IHlv dSBrZWVwIHRoZSBleGlzdGluZyBmbG93IGluIHRoZSBmdW5jdGlvbiwgc3Bl Y2lmaWNhbGx5DQpJIHRoaW5rIHlvdSBzaG91bGQgaGFuZGxlIFNDQUxBUl9G TE9BVF9UWVBFX1AgbGlrZSBpdCB3YXMgcHJldmlvdXNseQ0KaGFuZGxlZCwg anVzdCBidWlsZCAndmYnIGluIHRoZSBkeW5hbWljIHdheS4NCiANCj4gICAg ICAgIG5ld19uYW1lID0gZ2ltcGxlX2J1aWxkICgmc2VxLCBNVUxUX0VYUFIs IFRSRUVfVFlQRSAoc3RlcF9leHByKSwNCj4gICAgICAgICAgZXhwciwgc3Rl cF9leHByKTsNCj4gICAgICAgIGlmIChzZXEpDQo+ICAgew0KPiAtICAgbmV3 X2JiID0gZ3NpX2luc2VydF9zZXFfb25fZWRnZV9pbW1lZGlhdGUgKHBlLCBz ZXEpOw0KPiAtICAgZ2NjX2Fzc2VydCAoIW5ld19iYik7DQo+ICsgICBpZiAo TE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUCAobG9vcF92aW5mbykpDQo+ ICsgICAgIGdzaV9pbnNlcnRfc2VxX2JlZm9yZSAoJnNpLCBzZXEsIEdTSV9T QU1FX1NUTVQpOw0KPiArICAgZWxzZQ0KPiArICAgICB7DQo+ICsgICAgICAg bmV3X2JiID0gZ3NpX2luc2VydF9zZXFfb25fZWRnZV9pbW1lZGlhdGUgKHBl LCBzZXEpOw0KPiArICAgICAgIGdjY19hc3NlcnQgKCFuZXdfYmIpOw0KPiAr ICAgICB9DQo+ICAgfQ0KPiAgICAgIH0NCj4gIA0KPiBAQCAtMTAzMzUsOSAr MTAzNjMsOSBAQCB2ZWN0b3JpemFibGVfaW5kdWN0aW9uIChsb29wX3ZlY19p bmZvIGxvb3BfdmluZm8sDQo+ICAgIGdjY19hc3NlcnQgKENPTlNUQU5UX0NM QVNTX1AgKG5ld19uYW1lKQ0KPiAgICAgICAgIHx8IFRSRUVfQ09ERSAobmV3 X25hbWUpID09IFNTQV9OQU1FKTsNCj4gICAgbmV3X3ZlYyA9IGJ1aWxkX3Zl Y3Rvcl9mcm9tX3ZhbCAoc3RlcF92ZWN0eXBlLCB0KTsNCj4gLSAgdmVjX3N0 ZXAgPSB2ZWN0X2luaXRfdmVjdG9yIChsb29wX3ZpbmZvLCBzdG10X2luZm8s DQo+IC0gICAgICAgIG5ld192ZWMsIHN0ZXBfdmVjdHlwZSwgTlVMTCk7DQo+ IC0NCj4gKyAgdmVjX3N0ZXANCj4gKyAgICA9IHZlY3RfaW5pdF92ZWN0b3Ig KGxvb3BfdmluZm8sIHN0bXRfaW5mbywgbmV3X3ZlYywgc3RlcF92ZWN0eXBl LA0KPiArIExPT1BfVklORk9fVVNJTkdfU0VMRUNUX1ZMX1AgKGxvb3Bfdmlu Zm8pID8gJnNpIDogTlVMTCk7DQogDQphZ2FpbiB0aGlzIG1ha2VzIHRoZSBm bG93IGhhcmQgdG8gZm9sbG93LiAgSSBzdXBwb3NlIHJlZmFjdG9yaW5nIHRo aXMNCm92ZXJhbGwgdG8NCiANCiAgICBpZiAobmVzdGVkX2luX3ZlY3RfbG9v cCkNCi4uLg0KICAgIGVsc2UgaWYgKExPT1BfVklORk9fVVNJTkdfU0VMRUNU X1ZMX1AgKC4uKSkNCi4uLg0KICAgIGVsc2UNCi4uLg0KIA0KYW5kIGR1cGxp Y2F0ZSB0aGlzIHRhaWwgaW50byB0aGUgY2FzZXMgbWFrZXMgaXQgZWFzaWVy IHRvIGZvbGxvdy4NCiANCkZvciBuZXN0ZWRfaW5fdmVjdF9sb29wIHdlIG5l dmVyIGhhdmUgTE9PUF9WSU5GT19VU0lOR19TRUxFQ1RfVkxfUD8NCiANClJp Y2hhcmQuDQogDQogDQo+IFRoYW5rcy4NCj4gDQo+IA0KPiBqdXpoZS56aG9u Z0ByaXZhaS5haQ0KPiAgDQo+IEZyb206IFJpY2hhcmQgQmllbmVyDQo+IERh dGU6IDIwMjMtMTEtMDkgMjA6MTYNCj4gVG86IEp1emhlLVpob25nDQo+IEND OiBnY2MtcGF0Y2hlczsgcmljaGFyZC5zYW5kaWZvcmQ7IHJndWVudGhlcjsg a2l0by5jaGVuZzsga2l0by5jaGVuZw0KPiBTdWJqZWN0OiBSZTogW1BBVENI XSBNaWRkbGUtZW5kOiBGaXggYnVnIG9mIGluZHVjdGlvbiB2YXJpYWJsZSB2 ZWN0b3JpemF0aW9uIGZvciBSVlYNCj4gT24gV2VkLCBOb3YgOCwgMjAyMyBh dCAxMTo1Mz9BTSBKdXpoZS1aaG9uZyA8anV6aGUuemhvbmdAcml2YWkuYWk+ IHdyb3RlOg0KPiA+DQo+ID4gUFI6IGh0dHBzOi8vZ2NjLmdudS5vcmcvYnVn emlsbGEvc2hvd19idWcuY2dpP2lkPTExMjQzOA0KPiA+DQo+ID4gU0VMRUNU X1ZMIHJlc3VsdCBpcyBub3QgbmVjZXNzYXJ5IGFsd2F5cyBWRiBpbiBub24t ZmluYWwgaXRlcmF0aW9uLg0KPiA+DQo+ID4gQ3VycmVudCBHSU1QTEUgSVIg aXMgd3Jvbmc6DQo+ID4NCj4gPiAjIHZlY3RfdmVjX2l2Xy4yMV8yNSA9IFBI SSA8XzI0KDQpLCB7IDAsIDEsIDIsIC4uLiB9KDMpPg0KPiA+IC4uLg0KPiA+ IF8yNCA9IHZlY3RfdmVjX2l2Xy4yMV8yNSArIHsgUE9MWV9JTlRfQ1NUIFs0 LCA0XSwgLi4uIH07DQo+ID4NCj4gPiBBZnRlciB0aGlzIHBhdGNoIHdoaWNo IGlzIGNvcnJlY3QgZm9yIFNFTEVDVF9WTDoNCj4gPg0KPiA+ICMgdmVjdF92 ZWNfaXZfLjhfMjIgPSBQSEkgPF8yMSg0KSwgeyAwLCAxLCAyLCAuLi4gfSgz KT4NCj4gPiAuLi4NCj4gPiBfMzUgPSAuU0VMRUNUX1ZMIChpdnRtcF8zMywg UE9MWV9JTlRfQ1NUIFs0LCA0XSk7DQo+ID4gXzIxID0gdmVjdF92ZWNfaXZf LjhfMjIgKyB7IFBPTFlfSU5UX0NTVCBbNCwgNF0sIC4uLiB9Ow0KPiA+DQo+ ID4ga2l0bywgY291bGQgeW91IGdpdmUgbW9yZSBleHBsYW5hdGlvbiA/DQo+ ID4NCj4gPiAgICAgICAgIFBSIG1pZGRsZS8xMTI0MzgNCj4gPg0KPiA+IGdj Yy9DaGFuZ2VMb2c6DQo+ID4NCj4gPiAgICAgICAgICogdHJlZS12ZWN0LWxv b3AuY2MgKHZlY3Rvcml6YWJsZV9pbmR1Y3Rpb24pOiBGaXggYnVnLg0KPiA+ DQo+ID4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+ID4NCj4gPiAgICAg ICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wcjExMjQzOC5j OiBOZXcgdGVzdC4NCj4gPg0KPiA+IC0tLQ0KPiA+ICAuLi4vZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYXV0b3ZlYy9wcjExMjQzOC5jICAgfCAzNSArKysrKysr KysrKysrKysrKw0KPiA+ICBnY2MvdHJlZS12ZWN0LWxvb3AuY2MgICAgICAg ICAgICAgICAgICAgICAgICAgfCAzOSArKysrKysrKysrKysrKystLS0tDQo+ ID4gIDIgZmlsZXMgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkNCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wcjExMjQzOC5jDQo+ ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9hdXRvdmVjL3ByMTEyNDM4LmMgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2F1dG92ZWMvcHIxMTI0MzguYw0KPiA+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5kZXggMDAwMDAwMDAwMDAu LmIzMjZkNTZhNTJjDQo+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ICsrKyBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYXV0b3ZlYy9wcjEx MjQzOC5jDQo+ID4gQEAgLTAsMCArMSwzNSBAQA0KPiA+ICsvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLw0KPiA+ICsvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1y djY0Z2N2IC1tYWJpPWxwNjRkIC1PMyAtZm5vLXZlY3QtY29zdC1tb2RlbCAt ZmZhc3QtbWF0aCAtZmR1bXAtdHJlZS1vcHRpbWl6ZWQtZGV0YWlscyIgfSAq Lw0KPiA+ICsNCj4gPiArdm9pZA0KPiA+ICtmb28gKGludCBuLCBpbnQgKl9f cmVzdHJpY3QgaW4sIGludCAqX19yZXN0cmljdCBvdXQpDQo+ID4gK3sNCj4g PiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKz0gMSkNCj4gPiArICAg IHsNCj4gPiArICAgICAgb3V0W2ldID0gaW5baV0gKyBpOw0KPiA+ICsgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkDQo+ID4gK2ZvbzIgKGludCBu LCBmbG9hdCAqIF9fcmVzdHJpY3QgaW4sDQo+ID4gK2Zsb2F0ICogX19yZXN0 cmljdCBvdXQpDQo+ID4gK3sNCj4gPiArICBmb3IgKGludCBpID0gMDsgaSA8 IG47IGkgKz0gMSkNCj4gPiArICAgIHsNCj4gPiArICAgICAgb3V0W2ldID0g aW5baV0gKyBpOw0KPiA+ICsgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2 b2lkDQo+ID4gK2ZvbzMgKGludCBuLCBmbG9hdCAqIF9fcmVzdHJpY3QgaW4s DQo+ID4gK2Zsb2F0ICogX19yZXN0cmljdCBvdXQsIGZsb2F0IHgpDQo+ID4g K3sNCj4gPiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkgKz0gMSkNCj4g PiArICAgIHsNCj4gPiArICAgICAgb3V0W2ldID0gaW5baV0gKyBpKiBpOw0K PiA+ICsgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKiBXZSBkb24ndCB3 YW50IHRvIHNlZSB2ZWN0X3ZlY19pdl8uMjFfMjUgKyB7IFBPTFlfSU5UX0NT VCBbNCwgNF0sIC4uLiB9LiAgKi8NCj4gPiArLyogeyBkZy1maW5hbCB7IHNj YW4tdHJlZS1kdW1wLW5vdCAiXFwrIFx7IFBPTFlfSU5UX0NTVCIgIm9wdGlt aXplZCIgfSB9ICovDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJl ZS12ZWN0LWxvb3AuY2MgYi9nY2MvdHJlZS12ZWN0LWxvb3AuY2MNCj4gPiBp bmRleCBhNTQ0YmM5YjA1OS4uM2UxMDM5NDYxNjggMTAwNjQ0DQo+ID4gLS0t IGEvZ2NjL3RyZWUtdmVjdC1sb29wLmNjDQo+ID4gKysrIGIvZ2NjL3RyZWUt dmVjdC1sb29wLmNjDQo+ID4gQEAgLTEwMzA5LDEwICsxMDMwOSwzMCBAQCB2 ZWN0b3JpemFibGVfaW5kdWN0aW9uIChsb29wX3ZlY19pbmZvIGxvb3Bfdmlu Zm8sDQo+ID4gICAgICBuZXdfbmFtZSA9IHN0ZXBfZXhwcjsNCj4gPiAgICBl bHNlDQo+ID4gICAgICB7DQo+ID4gKyAgICAgIGdpbXBsZV9zZXEgc2VxID0g TlVMTDsNCj4gPiArICAgICAgaWYgKExPT1BfVklORk9fVVNJTkdfU0VMRUNU X1ZMX1AgKGxvb3BfdmluZm8pKQ0KPiA+ICsgICAgICAgew0KPiA+ICsgICAg ICAgICAvKiBXaGVuIHdlJ3JlIHVzaW5nIGxvb3BfbGVuIHByb2R1Y2VkIGJ5 IFNFTEVDX1ZMLCB0aGUgbm9uLWZpbmFsDQo+ID4gKyAgICAgICAgICAgIGl0 ZXJhdGlvbnMgYXJlIG5vdCBhbHdheXMgcHJvY2Vzc2luZyBWRiBlbGVtZW50 cy4gIFNvIHZlY3Rvcml6ZQ0KPiA+ICsgICAgICAgICAgICBpbmR1Y3Rpb24g dmFyaWFibGUgaW5zdGVhZCBvZg0KPiA+ICsNCj4gPiArICAgICAgICAgICAg ICBfMjEgPSB2ZWN0X3ZlY19pdl8uNl8yMiArIHsgVkYsIC4uLiB9Ow0KPiA+ ICsNCj4gPiArICAgICAgICAgICAgV2Ugc2hvdWxkIGdlbmVyYXRlOg0KPiA+ ICsNCj4gPiArICAgICAgICAgICAgICBfMzUgPSAuU0VMRUNUX1ZMIChpdnRt cF8zMywgVkYpOw0KPiA+ICsgICAgICAgICAgICAgIHZlY3RfY3N0X18yMiA9 IFt2ZWNfZHVwbGljYXRlX2V4cHJdIF8zNTsNCj4gPiArICAgICAgICAgICAg ICBfMjEgPSB2ZWN0X3ZlY19pdl8uNl8yMiArIHZlY3RfY3N0X18yMjsgICov DQo+ID4gKyAgICAgICAgIHZlY19sb29wX2xlbnMgKmxlbnMgPSAmTE9PUF9W SU5GT19MRU5TIChsb29wX3ZpbmZvKTsNCj4gPiArICAgICAgICAgdHJlZSBs ZW4NCj4gPiArICAgICAgICAgICA9IHZlY3RfZ2V0X2xvb3BfbGVuIChsb29w X3ZpbmZvLCBOVUxMLCBsZW5zLCAxLCB2ZWN0eXBlLCAwLCAwKTsNCj4gPiAr ICAgICAgICAgZXhwciA9IGZvcmNlX2dpbXBsZV9vcGVyYW5kIChmb2xkX2Nv bnZlcnQgKFRSRUVfVFlQRSAoc3RlcF9leHByKSwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2hhcmVfZXhwciAobGVuKSksDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnNlcSwgdHJ1ZSwgTlVMTF9UUkVFKTsNCj4g PiArICAgICAgIH0NCj4gIA0KPiBJIHRoaW5rIGl0IHdvdWxkIGJlIGJldHRl ciB0byBzcGxpdCBvdXQgYnVpbGRpbmcgYSB0cmVlIGZyb20gVkYgZnJvbSBi b3RoDQo+IGFybXMgYW5kIGF2b2lkIHVzaW5nICd2Zicgd2hlbiBMT09QX1ZJ TkZPX1VTSU5HX1NFTEVDVF9WTF9QLg0KPiAgDQo+IEJ0dywgeW91IGFyZSBu b3QgcGF0Y2hpbmcgdGhlIFNMUCBwYXRoIGhlcmUgd2hpY2ggSSBiZWxpZXZl IGhhcyB0aGUgc2FtZQ0KPiBwcm9ibGVtIGJ1dCBpcyBjdXJyZW50bHkgZXhl bXB0IGZyb20gbm9uLWNvbnN0YW50IFZGIGF0IGxlYXN0Lg0KPiAgDQo+IFJp Y2hhcmQuDQo+ICANCj4gPiAgICAgICAgLyogaXZfbG9vcCBpcyB0aGUgbG9v cCB0byBiZSB2ZWN0b3JpemVkLiBHZW5lcmF0ZToNCj4gPiAgICAgICAgICAg dmVjX3N0ZXAgPSBbVkYqUywgVkYqUywgVkYqUywgVkYqU10gICovDQo+ID4g LSAgICAgIGdpbXBsZV9zZXEgc2VxID0gTlVMTDsNCj4gPiAtICAgICAgaWYg KFNDQUxBUl9GTE9BVF9UWVBFX1AgKFRSRUVfVFlQRSAoc3RlcF9leHByKSkp DQo+ID4gKyAgICAgIGVsc2UgaWYgKFNDQUxBUl9GTE9BVF9UWVBFX1AgKFRS RUVfVFlQRSAoc3RlcF9leHByKSkpDQo+ID4gICAgICAgICB7DQo+ID4gICAg ICAgICAgIGV4cHIgPSBidWlsZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9k ZSwgdmYpOw0KPiA+ICAgICAgICAgICBleHByID0gZ2ltcGxlX2J1aWxkICgm c2VxLCBGTE9BVF9FWFBSLCBUUkVFX1RZUEUgKHN0ZXBfZXhwciksIGV4cHIp Ow0KPiA+IEBAIC0xMDMyMyw4ICsxMDM0MywxMyBAQCB2ZWN0b3JpemFibGVf aW5kdWN0aW9uIChsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8sDQo+ID4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIsIHN0ZXBfZXhwcik7 DQo+ID4gICAgICAgIGlmIChzZXEpDQo+ID4gICAgICAgICB7DQo+ID4gLSAg ICAgICAgIG5ld19iYiA9IGdzaV9pbnNlcnRfc2VxX29uX2VkZ2VfaW1tZWRp YXRlIChwZSwgc2VxKTsNCj4gPiAtICAgICAgICAgZ2NjX2Fzc2VydCAoIW5l d19iYik7DQo+ID4gKyAgICAgICAgIGlmIChMT09QX1ZJTkZPX1VTSU5HX1NF TEVDVF9WTF9QIChsb29wX3ZpbmZvKSkNCj4gPiArICAgICAgICAgICBnc2lf aW5zZXJ0X3NlcV9iZWZvcmUgKCZzaSwgc2VxLCBHU0lfU0FNRV9TVE1UKTsN Cj4gPiArICAgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgIHsNCj4gPiAr ICAgICAgICAgICAgIG5ld19iYiA9IGdzaV9pbnNlcnRfc2VxX29uX2VkZ2Vf aW1tZWRpYXRlIChwZSwgc2VxKTsNCj4gPiArICAgICAgICAgICAgIGdjY19h c3NlcnQgKCFuZXdfYmIpOw0KPiA+ICsgICAgICAgICAgIH0NCj4gPiAgICAg ICAgIH0NCj4gPiAgICAgIH0NCj4gPg0KPiA+IEBAIC0xMDMzMiw5ICsxMDM1 Nyw5IEBAIHZlY3Rvcml6YWJsZV9pbmR1Y3Rpb24gKGxvb3BfdmVjX2luZm8g bG9vcF92aW5mbywNCj4gPiAgICBnY2NfYXNzZXJ0IChDT05TVEFOVF9DTEFT U19QIChuZXdfbmFtZSkNCj4gPiAgICAgICAgICAgICAgIHx8IFRSRUVfQ09E RSAobmV3X25hbWUpID09IFNTQV9OQU1FKTsNCj4gPiAgICBuZXdfdmVjID0g YnVpbGRfdmVjdG9yX2Zyb21fdmFsIChzdGVwX3ZlY3R5cGUsIHQpOw0KPiA+ IC0gIHZlY19zdGVwID0gdmVjdF9pbml0X3ZlY3RvciAobG9vcF92aW5mbywg c3RtdF9pbmZvLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuZXdfdmVjLCBzdGVwX3ZlY3R5cGUsIE5VTEwpOw0KPiA+IC0NCj4gPiAr ICB2ZWNfc3RlcA0KPiA+ICsgICAgPSB2ZWN0X2luaXRfdmVjdG9yIChsb29w X3ZpbmZvLCBzdG10X2luZm8sIG5ld192ZWMsIHN0ZXBfdmVjdHlwZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBMT09QX1ZJTkZPX1VTSU5HX1NF TEVDVF9WTF9QIChsb29wX3ZpbmZvKSA/ICZzaSA6IE5VTEwpOw0KPiA+DQo+ ID4gICAgLyogQ3JlYXRlIHRoZSBmb2xsb3dpbmcgZGVmLXVzZSBjeWNsZToN Cj4gPiAgICAgICBsb29wIHByb2xvZzoNCj4gPiAtLQ0KPiA+IDIuMzYuMw0K PiA+DQo+ICANCj4gDQogDQotLSANClJpY2hhcmQgQmllbmVyIDxyZ3VlbnRo ZXJAc3VzZS5kZT4NClNVU0UgU29mdHdhcmUgU29sdXRpb25zIEdlcm1hbnkg R21iSCwNCkZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJnLCBH ZXJtYW55Ow0KR0Y6IEl2byBUb3RldiwgQW5kcmV3IE1jRG9uYWxkLCBXZXJu ZXIgS25vYmxpY2g7IChIUkIgMzY4MDksIEFHIE51ZXJuYmVyZykNCiANCg== ------=_001_NextPart100405374511_=------