From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by sourceware.org (Postfix) with ESMTPS id 3163C3858D32 for ; Thu, 13 Apr 2023 09:54:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3163C3858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp79t1681379645tyxc5sy8 Received: from LAPTOP-EPITNQBU ( [58.60.1.20]) by bizesmtp.qq.com (ESMTP) with id ; Thu, 13 Apr 2023 17:54:03 +0800 (CST) X-QQ-SSF: 01400000000000F0O000000A0000000 X-QQ-FEAT: GCnNav7cYK+9H2dlRfsl3xilhuH0h5tJ7ulwa06MsxNj/SELIbqSE6iEvvxKZ lCfV9B9GEYfrjwCXRIoAu3KCb4PfBwDYEDpRbauMtk8v9bG+GPNJX8o50avUBv96LlJ66Ux 7gCpsZDHkPdcNoY8ythzx+Et+qulrbzlai4iwlW1rAkVk5WF7E8AwAAR/XBlWpOJfmjHXHr WG7Y5Nm4aeA0SGIfKUTH3DDswCZdXW2+2n9Tqjo5Y8D+DzfXIOZ1Abhrw50g9xkHtFcdoX8 EXZ1dE0fahYT+ulQclVyl2uuEKaiV55jqn+r9ECKSG4A564naBw7ayxrTksatTzIPapdwCw aUhkJMzshdLBzbfxdsr8o8wzoL4PDOi9aV4cmp+VeVl0W7uFKsoon82KJaRT3pL905Etkqy W9Y1qEqoQICqUUXtOFYC9yHz3GNe4z10r5JkUrq1tZdBKyVWaogtLw== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 8294441061862471688 Date: Thu, 13 Apr 2023 17:54:01 +0800 From: "juzhe.zhong@rivai.ai" To: rguenther Cc: richard.sandiford , gcc-patches , jeffreyalaw , rdapp , linkw , kito.cheng Subject: Re: Re: [PATCH] VECT: Add WHILE_LEN pattern for decrement IV support for auto-vectorization References: <20230407014741.139387-1-juzhe.zhong@rivai.ai>, <63723855B0BF2130+2023041120125573846623@rivai.ai>, , , <139DA38AFC9CA5B5+2023041216004591287739@rivai.ai>, , , , , , , <3340A6BE437A5F32+2023041222184139393725@rivai.ai>, X-Priority: 3 X-GUID: 133FC7CC-E39C-4439-8E7B-D24B988D02B3 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <4EBEDF1F4A296E7C+2023041317540077309355@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart176018316111_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,BODY_8BITS,HTML_MESSAGE,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,RCVD_IN_SORBS_WEB,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID autolearn=no 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_NextPart176018316111_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmsgeW91IFJpY2hhcmQuDQoNCj4+IEJ1dCB0aGUgaXNzdWUgaXMgdGhl IHNhbWUgaW4gdGhlIHJldmVyc2Ugd2l0aCBXSElMRV9MRU4sIG5vPw0KPj5X SElMRV9MRU4ganVzdCBjb21wdXRlcyBhIHNjYWxhciB2YWx1ZSAtIHlvdSBz ZWVtIHRvIHN1Z2dlc3QNCj4+dGhlcmUncyBhIGhpZGRlbiBzaWRlLWVmZmVj dCBvZiAiY29hbGVzY2luZyIgdGhlIHJlc3VsdCB3aXRoDQo+PmEgaGFyZHdh cmUgdmVjdG9yIGxlbmd0aCByZWdpc3Rlcj8gIEkgZG9uJ3QgdGhpbmsgdGhh dCdzIGdvb2QgZGVzaWduLg0KTm8sIEkgZG9uJ3QgcGxhbiB0byBzdWdnZXN0 IHRoZXJlJ3MgYSBoaWRkZW4gc2lkZS1lZmZlY3Qgb2YgImNvYWxlc2Npbmci DQp0aGUgcmVzdWx0IHdpdGggYSBoYXJkd2FyZSB2ZWN0b3IgbGVuZ3RoIHJl Z2lzdGVyLg0KDQpUb2RheSwgSSByZWFkIFJWViBJU0EgZGVlcGx5IGFnYWlu LiBJIHJlYWxpemUgdGhhdCB0aGlzIHBhdGNoIGlzIG5vdCBhYnNvbHV0ZSBj b3JyZWN0IGZvciANCmFueSBSVlYgaGFyZHdhcmQuDQoNCkFjY29yZGluZyB0 byBSVlYgSVNBLCB0aGUgdnNldHZsIGRlZmluaXRpb246DQphbiB2c2V0dmxp IGluc3RydWN0aW9uIHdoaWNoIGlzIHZzZXR2bGkgdmwsIGF2bCwgdnR5cGUN CnZsID0gQVZMIGlmIEFWTCDiiaQgVkxNQVgNCmNlaWwoQVZMIC8gMikg4omk IHZsIOKJpCBWTE1BWCBpZiBBVkwgPCAoMiAqIFZMTUFYKQ0KdmwgPSBWTE1B WCBpZiBBVkwg4omlICgyICogVkxNQVgpDQpEZXRlcm1pbmlzdGljIG9uIGFu eSBnaXZlbiBpbXBsZW1lbnRhdGlvbiBmb3Igc2FtZSBpbnB1dCBBVkwgYW5k IFZMTUFYIHZhbHVlcw0KVGhlIHNlY29uZCBjb25zdHJhaW50IG1ha2UgdGhl IHJlc3VsdCBvZiB2c2V0dmxpIGlzIG5vdCBuZWNlc3NhcnkgdG8gYmUgVkxN QVggKHRoZSBtYXhpbXVtIG51bWJlciBvZiBlbGVtZW50cyB3aWxsIGJlIHVw ZGF0ZWQgb2Ygc3BlY2lmaWMgdmVjdG9yLWxlbmd0aCBSVlYgQ1BVKS4NCg0K U28gZm9yIGEgdnNldHZsaSBpbnN0cnVjdGlvbiAodnNldHZsaSB2bCxhdmws dnR5cGUpLiBUaGUgInZsIiB2YWx1ZSBjYW4gYmUgdmFyaW91cyBhbW9uZyBk aWZmZXJlbnQgUlZWIENQVSBkZXBlbmRpbmcgb24gdGhlIGltcGxlbWVudGF0 aW9uIG9mIHRoZSBkb3duc3RyZWFtIFJWViBoYXJkd2FyZS4NCg0KDQogTm93 IEkgdGhpbmsgSSBzaG91bGQgZml4IHRoaXMgcGF0Y2ggc2luY2UgdGhpcyBw YXRjaCBpcyBub3QgYWx3YXlzIHN1aXRhYmxlIGZvciBhbGwgaGFyZHdhcmUu DQoNClNvIGFjY29yZGluZyB0byBSVlYgSVNBOg0KRm9yIGV4YW1wbGUsIHRo aXMgcGVybWl0cyBhbiBpbXBsZW1lbnRhdGlvbiB0byBzZXQgdmwgPSBjZWls KEFWTCAvIDIpIGZvciBWTE1BWCA8IEFWTCA8IDIqVkxNQVggaW4gb3JkZXIg dG8gZXZlbmx5IGRpc3RyaWJ1dGUgd29yayBvdmVyIHRoZSBsYXN0IHR3byBp dGVyYXRpb25zIG9mIGEgc3RyaXBtaW5lIGxvb3AuDQoNCldlIGNhbiBoYXZl IHRoZXNlIDIgZm9sbG93aW5nIGRpZmZlcmVudCBSVlYgQ1BVOg0KDQpTdXBw b3NlICB0aGUgbWF4aW11bSBudW1iZXIgb2YgdGhlIGVsZW1lbnRzIG5lZWRz IHRvIGJlIHVwZGF0ZWQgaXMgMTAgZWxlbWVudCAoaW50MzJfdCksIGFuZCB0 aGUgdmVjdG9yIGxlbmd0aCA9IDI1NiBiaXQgKHVwZGF0ZSA4IElOVDMyIGVs ZW1lbnRzIGluIG1heCkuDQoNClNvIHRoZXJlIGFyZSAyIGl0ZXJhdGlvbnMg d2UgbmVlZCwgdGhlIG51bWJlciBlbGVtZW50cyBvZiBlYWNoIGl0ZXJhdGlv biBkZXBlbmRpbmcgb24gaGFyZHdhcmUgaW1wbGVtZW50YXRpb24uDQoNClNv IHdlIGNhbiBoYXZlIHRoZXNlIDIgZm9sbG93aW5nIGhhcmR3YXJlIGltcGxl bWVudGF0aW9uIGFyZSBib3RoIGxlZ2FsIGZvciBSVlYgc3RhbmRhcmQ6DQoN ClJWViBDUFUgMToNCjFzdCBpdGVyYXRpb24gdXBkYXRlIDUgZWxlbWVudCAo aXQgc2F0aXNmeSB0aGUgY29uc3RyYWludCBjZWlsIChBVkwvMikgPD0gdmwg PD0gVkxNQVgpLCBzZXQgdmwgPSBjZWlsIChBVkwvMikgPSA1DQoybmQgaXRl cmF0aW9uIHVwZGF0ZSA1IGVsZW1lbnRzIHRvby4NCg0KUlZWIENQVSAyOg0K MXN0IGl0ZXJhdGlvbiB1cGRhdGUgOCBlbGVtZW50cy4gc2V0IHZsID0gVkxN QVggPSA4Lg0KMm5kIGl0ZXJhdGlvbiB1cGRhdGUgMyBlbG1lbnRzLg0KDQpU aGVzZSAyIFJWViBDUFUgYXJlIGJvdGggbGVnYWwgYWNjb3JkaW5nIHRvIFJW ViBzcGVjaWZpY2F0aW9uIHN0YW5kYXJkLg0KSXQncyBvYnZpb3VzIHRoaXMg cGF0Y2ggaXMgY29ycmVjdCBmb3IgUlZWIENQVSAyIGJ1dCBpbmNvcnJlY3Qg Zm9yIFJWViBDUFUgMS4NCg0KU2luY2UgdGhlIGN1cnJlbnQgZmxvdyBvZiB0 aGlzIHBhdGNoIGlzIGFzIGZvbGxvd3M6DQoNCisJPGJiIDM+CisJXzE5ID0g KHVuc2lnbmVkIGxvbmcpIG5fNShEKTsKKwkuLi4KKworCTxiYiA0PjoKKwku Li4KKwkjIGl2dG1wXzIwID0gUEhJIDxpdnRtcF8yMSg0KSwgXzE5KDMpPgor CS4uLgorCV8yMiA9IC5XSElMRV9MRU4gKGl2dG1wXzIwLCB2Zik7CisJLi4u CisJTEVOX0xPQUQgKGFkZHIsIF8yMik7Li4uICAgICAgICBhZGRyID0gYWRk ciArIHZmOysJaXZ0bXBfMjEgPSBpdnRtcF8yMCAtIF8yMjsKKwkuLi4KKwlp ZiAoaXZ0bXBfMjEgIT0gMCkKKwkgIGdvdG8gPGJiIDQ+OyBbNzUuMDAlXQor CWVsc2UKKwkgIGdvdG8gPGJiIDU+OyBbMjUuMDAlXQorCisJPGJiIDU+CisJ cmV0dXJuOw0KDQpIZXJlIHRoZSBfMjIgd2hpY2ggaXMgdGhlIG91dHB1dCBv ZiBXSElMRV9MRU4gaXMgb25seSB1c2VkIGluIGl2dG1wXzIxID0gaXZ0bXBf MjAgLSBfMjI7DQp3aGljaCBzZXJ2ZXMgdGhlIHNhdHVyYXRpbmctdG8temVy byBzdWJ0cmFjdGlvbi4gDQpBbmQgImFkZHIgPSBhZGRyICsgdmY7IiANClRo ZSBhZGRyZXNzIGlzIGNhbGN1bGF0ZWQgaW4gdGhlIGxvb3AganVzdCBrZWVw IGFkZCB2Zi4gDQpTdWNoIHNlcXVlbmNlIGlzIE9rIGZvciBtb3N0IG9mIHRo ZSBSVlYgQ1BVIHNvIGZhciBJIHRoaW5rLg0KSG93ZXZlciwgZm9yIGZ1dHVy ZSBjb21wYXRpYmlsaXR5LCB3ZSBzaG91bGQgbWFrZSBXSElMRV9MRU4gb3V0 cHV0IGFzIHRoZSBhZGRyZXNzIElWIGFkZGluZyB2YWx1ZSB0b28uDQoNClNv LCB3ZSBzaG91bGQgYWJhbmRvbiB0aGUgY3VycmVudCB0aGUgYWRkcmVzcyBs b29wIHdheSB3aGljaCBpcyBqdXN0IGtlZXBpbmcgYWRkIHZmLg0KDQpSZXBs YWNlICJhZGRyID0gYWRkciArIHZmIi4NCg0KSW5zdGVhZCwgd2Ugc2hvdWxk IGRvIGxpa2UgdGhhdDoNCg0KXzIyID0gLldISUxFX0xFTiAoaXZ0bXBfMjAs IHZmKTsNCi4uLi4NCkxFTl9MT0FEIChhZGRyLCBfMjIpO3RtcCA9IF8yMiAq IDQ7IChBc3N1bWUgaXQgaXMgSU5UMzIgY2FsY3VsYXRpb24sIG1ha2UgXzIy IHdoaWNoIGlzIElOVDMyIGFsaWduIGludG8gQllURSBhbGlnbiBmb3IgYWRk cmVzcyBjb3VudGluZykgYWRkciA9IGFkZHIgKyB0bXA7Li4uLg0KTWFrZWlu ZyB0aGUgcmVzdWx0IG9mIFdISUxFX0xFTiBpcyBub3Qgb25seSB1c2VkIHRv IGRvIHRoZSByZW1haW4gPSByZW1haW4gLSBsZW4sQnV0IGFsc28gdXNlZCBp biBhZGRyZXNzaW5nIGNhbGN1bGF0aW5nOiB0bXAgPSBsZW4gKiAoZWxlbWVu dCBieXRlc2l6ZSkgOyBhZGRyID0gYWRkciArIHRtcDsNClRoZW4gdGhpcyBm bG93IGlzIHRoZSBjb3JyZWN0IGZsb3cgZm9yIGFsbCBSVlYgQ1BVLg0KVGhp cyBmbG93IGlzIHRvdGFsbHkgc2FtZSBhcyBleGFtcGxlIGluIFJWViBJU0Eg ZGVmaW5lOg0KaHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2L3Jpc2N2LXYtc3Bl Yy9ibG9iL21hc3Rlci9leGFtcGxlL3Z2YWRkaW50MzIucw0KSSB0aGluayBJ IG5lZWQgdG8gY2hhbmdlIHRoaXMgcGF0Y2ggYXMgZGVzY3JpYmVkIGFib3Zl IHRvIG1ha2UgaXQgdG8gYmUgZ2xvYmFsIHN1aXRhYmxlIGZvciBhbGwgUlZW IENQVSBpbiB0aGUgd29yZC4gQnV0IEkgYW0gbm90IHN1cmUgd2hldGhlciBH Q0MgY29tbXVuaXR5IGFjY2VwdCB0aGlzIGZsb3cuIFNvIEkgcHJvcG9zZSBp dCBub3cgYmVmb3JlIEkgZG8gaXQuIA0KSSBkaWRuJ3QgcmVhbGl6ZSB0aGF0 IHNpbmNlIG15IGRvd25zdHJlYW0gUlZWIGhhcmR3YXJlIGFuZCB0aGUgb3Bl bi1zb3VyY2Ugc2ltdWxhdG9yIGdlbmVyYXRlICJ2bCIgPSBWTE1BWC4gKFNv cnJ5IGFib3V0IHRoYXQpDQoNCg0KRXhwZWN0aW5nIGFueSBzdWdnZXN0aW9u cyBhbmQgY29tbWVudHMuDQpUaGFuayB5b3Ugc28gbXVjaC4NCg0KDQpqdXpo ZS56aG9uZ0ByaXZhaS5haQ0KIA0KRnJvbTogUmljaGFyZCBCaWVuZXINCkRh dGU6IDIwMjMtMDQtMTMgMTQ6NDcNClRvOiDpkp/lsYXlk7INCkNDOiByaWNo YXJkLnNhbmRpZm9yZDsgZ2NjLXBhdGNoZXM7IEplZmYgTGF3OyByZGFwcDsg bGlua3c7IGtpdG8uY2hlbmcNClN1YmplY3Q6IFJlOiBSZTogW1BBVENIXSBW RUNUOiBBZGQgV0hJTEVfTEVOIHBhdHRlcm4gZm9yIGRlY3JlbWVudCBJViBz dXBwb3J0IGZvciBhdXRvLXZlY3Rvcml6YXRpb24NCk9uIFdlZCwgMTIgQXBy IDIwMjMsID8/PyB3cm90ZToNCiANCj4gPj4gSXQncyBub3Qgc28gbXVjaCB0 aGF0IHdlIG5lZWQgdG8gZG8gdGhhdC4gIEJ1dCBub3JtYWxseSBpdCdzIG9u bHkgd29ydGgNCj4gPj4gYWRkaW5nIGludGVybmFsIGZ1bmN0aW9ucyBpZiB0 aGV5IGRvIHNvbWV0aGluZyB0aGF0IGlzIHRvbyBjb21wbGljYXRlZA0KPiA+ PiB0byBleHByZXNzIGluIHNpbXBsZSBnaW1wbGUgYXJpdGhtZXRpYy4gIFRo ZSBVUURFQyBjYXNlIEkgbWVudGlvbmVkOg0KPiANCj4gPj4gICAgeiA9IE1B WCAoeCwgeSkgLSB5DQo+IA0KPiA+PiBmZWxsIGludG8gdGhlICJzaW1wbGUg YXJpdGhtZXRpYyIgY2F0ZWdvcnkgZm9yIG1lLiAgV2UgY291bGQgaGF2ZSBh ZGRlZA0KPiA+PiBhbiBpZm4gZm9yIHVuc2lnbmVkIHNhdHVyYXRpbmcgZGVj cmVtZW50LCBidXQgaXQgZGlkbid0IHNlZW0gY29tcGxpY2F0ZWQNCj4gPj4g ZW5vdWdoIHRvIG1lcml0IGl0cyBvd24gaWZuLg0KPiANCj4gQWgsIEkga25v d24geW91ciBjb25jZXJuLiBJIHNob3VsZCBhZG1pdCB0aGF0IFdISUxFX0xF TiBpcyBhIHNpbXBsZSBhcml0aG1ldGljIG9wZXJhdGlvbg0KPiB3aGljaCBp cyBqdXN0IHRha2luZyByZXN1bHQgZnJvbQ0KPiANCj4gbWluIChyZW1haW4s dmYpLg0KPiANCj4gVGhlIHBvc3NpYmxlIHNvbHV0aW9uIGlzIHRvIGp1c3Qg dXNlIE1JTl9FWFBSIChyZW1haW4sdmYpLg0KPiBUaGVuLCBhZGQgc3BlY2lh bGwgaGFuZGxpbmcgaW4gdW1pbl9vcHRhYiBwYXR0ZXJuIHRvIHJlY29nbml6 ZSAidmYiIGluIHRoZSBiYWNrZW5kLg0KPiBGaW5hbGx5IGdlbmVyYXRlIHZz ZXR2bCBpbiBSSVNDLVYgYmFja2VuZC4NCj4gDQo+IFRoZSAidmYiIHNob3Vs ZCBiZSByZWNvZ25pemVkIGFzIHRoZSBvcGVyYW5kIG9mIHVtaW4gc2hvdWxk IGJlIGNvbnN0X2ludC9jb25zdF9wb2x5X2ludCBvcGVyYW5kLg0KPiBPdGhl cndpc2UsIGp1c3QgZ2VuZXJhdGUgdW1pbiBzY2FsYXIgaW5zdHJ1Y3Rpb24u Lg0KPiANCj4gSG93ZXZlciwgdGhlcmUgaXMgYSBjYXNlIHRoYXQgSSBjYW4n dCByZWNvZ25pemUgdW1pbiBzaG91bGQgZ2VuZXJhdGUgdnNldHZsIG9yIHVt aW4uIElzIHRoaXMgZm9sbG93aW5nIGNhc2U6DQo+IHZvaWQgZm9vIChpbnQz Ml90IGEpDQo+IHsNCj4gICByZXR1cm4gbWluIChhLCA0KTsNCj4gfQ0KPiAN Cj4gSW4gdGhpcyBjYXNlIEkgc2hvdWxkIGdlbmVyYXRlOg0KPiBsaSBhMSw0 DQo+IHVtaW4gYTEsYTAsYTENCj4gDQo+IGluc3RlYWQgb2YgZ2VuZXJhdGlu ZyB2c2V0dmwNCj4gDQo+IEhvd2V2ZXIsIGluIHRoaXMgY2FzZToNCj4gDQo+ IHZvaWQgZm9vIChpbnQzMl90ICphLi4uKQ0KPiBmb3IgKGludCBpID0gMDsg aSA8IG47IGkrKykNCj4gICBhW2ldID0gYltpXSArIGNbaV07DQo+IA0KPiB3 aXRoIC1tcmlzY3YtdmVjdG9yLWJpdHM9MTI4ICh3aGljaCBtZWFucyBlYWNo IHZlY3RvciBjYW4gaGFuZGxlIDQgSU5UMzIpDQo+IFRoZW4gdGhlIFZGIHdp bGwgYmUgNCB0b28uIElmIHdlIGFsc28gTUlOX0VYUFIgaW5zdGVhZCBXSElM RV9MRU46DQo+IA0KPiAuLi4NCj4gbGVuID0gTUlOX0VYUFIgKG4sNCkNCj4g diA9IGxlbl9sb2FkIChsZW4pDQo+IC4uLi4NCj4gLi4uDQo+IA0KPiBJbiB0 aGlzIGNhc2UsIE1JTl9FWFBSIHNob3VsZCBlbWl0IHZzZXR2bC4NCj4gDQo+ IEl0J3MgaGFyZCBmb3IgbWUgdG8gdGVsbCB0aGUgZGlmZmVyZW5jZSBiZXR3 ZWVuIHRoZXNlIDIgY2FzZXMuLi4NCiANCkJ1dCB0aGUgaXNzdWUgaXMgdGhl IHNhbWUgaW4gdGhlIHJldmVyc2Ugd2l0aCBXSElMRV9MRU4sIG5vPw0KV0hJ TEVfTEVOIGp1c3QgY29tcHV0ZXMgYSBzY2FsYXIgdmFsdWUgLSB5b3Ugc2Vl bSB0byBzdWdnZXN0DQp0aGVyZSdzIGEgaGlkZGVuIHNpZGUtZWZmZWN0IG9m ICJjb2FsZXNjaW5nIiB0aGUgcmVzdWx0IHdpdGgNCmEgaGFyZHdhcmUgdmVj dG9yIGxlbmd0aCByZWdpc3Rlcj8gIEkgZG9uJ3QgdGhpbmsgdGhhdCdzIGdv b2QgZGVzaWduLg0KIA0KSU1ITyB0aWVpbmcgdGhlIHNjYWxhciByZXN1bHQg d2l0aCB0aGUgdXNlcyBoYXMgdG8gYmUgZG9uZSB3aGVyZQ0KeW91IGVtaXQg dGhlIG90aGVyIHZzZXR2bCBpbnN0cnVjdGlvbnMuDQogDQpPbmUgY29udmVu aWVudCB0aGluZyB3ZSBoYXZlIHdpdGggV0hJTEVfTEVOIGlzIHRoYXQgaXQg aXMgYSBrZXkNCmZvciB0aGUgdmVjdG9yaXplciB0byBxdWVyeSB0YXJnZXQg Y2FwYWJpbGl0aWVzIChhbmQgcHJlZmVyZW5jZXMpLg0KQnV0IG9mIGNvdXJz ZSBjb2xsZWN0aW5nIHdoZXRoZXIgc3RtdHMgY2FuIGJlIHZlY3Rvcml6ZWQN CndpdGggbGVuZ3RoIGFuZC9vciB3aXRoIG1hc2sgd291bGQgYmUgYmV0dGVy Lg0KIA0KUmljaGFyZC4NCiANCj4gQ0MgUklTQy1WIHBvcnQgYmFja2VuZCBt YWludGFpbmVyOiBLaXRvLg0KPiANCj4gDQo+IA0KPiBqdXpoZS56aG9uZ0By aXZhaS5haQ0KPiAgDQo+IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkDQo+IERh dGU6IDIwMjMtMDQtMTIgMjA6MjQNCj4gVG86IGp1emhlLnpob25nXEByaXZh aS5haQ0KPiBDQzogcmd1ZW50aGVyOyBnY2MtcGF0Y2hlczsgamVmZnJleWFs YXc7IHJkYXBwOyBsaW5rdw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBWRUNU OiBBZGQgV0hJTEVfTEVOIHBhdHRlcm4gZm9yIGRlY3JlbWVudCBJViBzdXBw b3J0IGZvciBhdXRvLXZlY3Rvcml6YXRpb24NCj4gImp1emhlLnpob25nQHJp dmFpLmFpIiA8anV6aGUuemhvbmdAcml2YWkuYWk+IHdyaXRlczoNCj4gPj4+ IEkgdGhpbmsgdGhhdCBhbHJlYWR5IHdvcmtzIGZvciB0aGVtIChjb3VsZCBi ZSBtaXNyZW1lbWJlcmluZykuDQo+ID4+PiBIb3dldmVyLCBJSVVDLCB0aGV5 IGhhdmUgbm8gc3BlY2lhbCBpbnN0cnVjdGlvbiB0byBjYWxjdWxhdGUgdGhl DQo+ID4+PiBsZW5ndGggKHVubGlrZSBmb3IgUlZWKSwgYW5kIHNvIGl0J3Mg b3Blbi1jb2RlZCB1c2luZyB2ZWN0X2dldF9sZW4uDQo+ID4NCj4gPiBZZWFo LCB0aGUgY3VycmVudCBmbG93IHVzaW5nIG1pbiwgc3ViLCBhbmQgdGhlbiBt aW4gaW4gdmVjdF9nZXRfbGVuDQo+ID4gaXMgd29ya2luZyBmb3IgSUJNLiBC dXQgSSB3b25kZXIgd2hldGhlciBzd2l0Y2hpbmcgdGhlIGN1cnJlbnQgZmxv dyBvZg0KPiA+IGxlbmd0aC1sb29wLWNvbnRyb2wgaW50byB0aGUgV0hJTEVf TEVOIHBhdHRlcm4gdGhhdCB0aGlzIHBhdGNoIGNhbiBpbXByb3ZlDQo+ID4g dGhlaXIgcGVyZm9ybWFuY2UuDQo+ID4NCj4gPj4+ICgxKSBIb3cgZWFzeSB3 b3VsZCBpdCBiZSB0byBleHByZXNzIFdISUxFX0xFTiBpbiBub3JtYWwgZ2lt cGxlPw0KPiA+Pj4gICAgIEkgaGF2ZW4ndCB0aG91Z2h0IGFib3V0IHRoaXMg YXQgYWxsLCBzbyB0aGUgYW5zd2VyIG1pZ2h0IGJlDQo+ID4+PiAgICAgInZl cnkgaGFyZCIuICBCdXQgaXQgcmVtaW5kcyBtZSBhIGxpdHRsZSBvZiBVUURF QyBvbiBBQXJjaDY0LA0KPiA+Pj4gICAgIHdoaWNoIHdlIG9wZW4tY29kZSB1 c2luZyBNQVhfRVhQUiBhbmQgTUlOVVNfRVhQUiAoc2VlDQo+ID4gID4+ICAg IHZlY3Rfc2V0X2xvb3BfY29udHJvbHNfZGlyZWN0bHkpLg0KPiA+DQo+ID4g ICA+PiAgIEknbSBub3Qgc2F5aW5nIFdISUxFX0xFTiBpcyB0aGUgc2FtZSBv cGVyYXRpb24sIGp1c3QgdGhhdCBpdCBzZWVtcw0KPiA+ICAgPj4gICBsaWtl IGl0IG1pZ2h0IGJlIG9wZW4tY29kZWFibGUgaW4gYSBzaW1pbGFyIHdheS4N Cj4gPg0KPiA+ICA+PiAgICBFdmVuIGlmIHdlIGNhbiBvcGVuLWNvZGUgaXQs IHdlJ2Qgc3RpbGwgbmVlZCBzb21lIHdheSBmb3IgdGhlDQo+ID4gICA+PiAg IHRhcmdldCB0byBzZWxlY3QgdGhlICJSVlYgd2F5IiBmcm9tIHRoZSAiczM5 MC9Qb3dlclBDIHdheSIuDQo+ID4NCj4gPiBXSElMRV9MRU4gaW4gZG9jIEkg ZGVmaW5lIGlzDQo+ID4gb3BlcmFuZDAgPSBNSU4gKG9wZXJhbmQxLCBvcGVy YW5kMilvcGVyYW5kMSBpcyB0aGUgcmVzaWR1YWwgbnVtYmVyIG9mIHNjYWxh ciBlbGVtZW50cyBuZWVkIHRvIGJlIHVwZGF0ZWQub3BlcmFuZDIgaXMgdmVj dG9yaXphdGlvbiBmYWN0b3IgKHZmKSBmb3Igc2luZ2xlIHJncm91cC4gICAg ICAgICBpZiBtdWx0aXBsZSByZ3JvdXAgb3BlcmFuMiA9IHZmICogbml0ZW1z X3Blcl9jdHJsLllvdSBtZWFuIHN1Y2ggcGF0dGVybiBpcyBub3Qgd2VsbCBl eHByZXNzZWQgc28gd2UgbmVlZCB0byByZXBsYWNlIGl0IHdpdGggbm9ybWFs dHJlZSBjb2RlIChNSU4gT1IgTUFYKS4gQW5kIGxldCBSSVNDLVYgYmFja2Vu ZCB0byBvcHRpbWl6ZSB0aGVtIGludG8gdnNldHZsID9Tb3JyeSwgbWF5YmUg SSBhbSBub3Qgb24gdGhlIHNhbWUgcGFnZS4NCj4gIA0KPiBJdCdzIG5vdCBz byBtdWNoIHRoYXQgd2UgbmVlZCB0byBkbyB0aGF0LiAgQnV0IG5vcm1hbGx5 IGl0J3Mgb25seSB3b3J0aA0KPiBhZGRpbmcgaW50ZXJuYWwgZnVuY3Rpb25z IGlmIHRoZXkgZG8gc29tZXRoaW5nIHRoYXQgaXMgdG9vIGNvbXBsaWNhdGVk DQo+IHRvIGV4cHJlc3MgaW4gc2ltcGxlIGdpbXBsZSBhcml0aG1ldGljLiAg VGhlIFVRREVDIGNhc2UgSSBtZW50aW9uZWQ6DQo+ICANCj4gICAgeiA9IE1B WCAoeCwgeSkgLSB5DQo+ICANCj4gZmVsbCBpbnRvIHRoZSAic2ltcGxlIGFy aXRobWV0aWMiIGNhdGVnb3J5IGZvciBtZS4gIFdlIGNvdWxkIGhhdmUgYWRk ZWQNCj4gYW4gaWZuIGZvciB1bnNpZ25lZCBzYXR1cmF0aW5nIGRlY3JlbWVu dCwgYnV0IGl0IGRpZG4ndCBzZWVtIGNvbXBsaWNhdGVkDQo+IGVub3VnaCB0 byBtZXJpdCBpdHMgb3duIGlmbi4NCj4gIA0KPiA+Pj4gKDIpIFdoYXQgZWZm ZWN0IGRvZXMgdXNpbmcgYSB2YXJpYWJsZSBJViBzdGVwICh0aGUgcmVzdWx0 IG9mDQo+ID4+PiB0aGUgV0hJTEVfTEVOKSBoYXZlIG9uIGl2b3B0cz8gIEkg cmVtZW1iZXIgZXhwZXJpbWVudGluZyB3aXRoDQo+ID4+PiBzb21ldGhpbmcg c2ltaWxhciBvbmNlIChjYW4ndCByZW1lbWJlciB0aGUgY29udGV4dCkgYW5k IG5vdA0KPiA+Pj4gaGF2aW5nIGEgY29uc3RhbnQgc3RlcCBwcmV2ZW50ZWQg aXZvcHRzIGZyb20gbWFraW5nIGdvb2QNCj4gPj4+IGFkZHJlc2luZy1tb2Rl IGNob2ljZXMuDQo+ID4NCj4gPiBUaGFuayB5b3Ugc28gbXVjaCBmb3IgcG9p bnRpbmcgb3V0IHRoaXMuIEN1cnJlbnRseSwgdmFyaWFsYmxlIElWIHN0ZXAg YW5kIGRlY3JlYXNpbmcgbiBkb3duIHRvIDAgDQo+ID4gd29ya3MgZmluZSBm b3IgUklTQy1WIGRvd25zdHJlYW0gR0NDIGFuZCB3ZSBkaWRuJ3QgZmluZCBp c3N1ZXMgcmVsYXRlZCBhZGRyZXNzaW5nLW1vZGUgY2hvb3NpbmcuDQo+ICAN Cj4gT0ssIHRoYXQncyBnb29kLiAgU291bmRzIGxpa2UgaXQgaXNuJ3QgYSBw cm9ibGVtIHRoZW4uDQo+ICANCj4gPiBJIHRoaW5rIEkgbXVzdCBtaXNzZWQg c29tZXRoaW5nLCB3b3VsZCB5b3UgbWluZCBnaXZpbmcgbWUgc29tZSBoaW50 cyBzbyB0aGF0IEkgY2FuIHN0dWR5IG9uIGl2b3B0cw0KPiA+IHRvIGZpbmQg b3V0IHdoaWNoIGNhc2UgbWF5IGdlbmVyYXRlIGluZmVyaW9yIGNvZGVnZW5z IGZvciB2YXJpYWxibGUgSVYgc3RlcD8NCj4gIA0KPiBJIHRoaW5rIEFBcmNo NjQgd2FzIHNlbnNpdGl2ZSB0byB0aGlzIGJlY2F1c2UgKGEpIHRoZSB2ZWN0 b3Jpc2VyIGNyZWF0ZXMNCj4gc2VwYXJhdGUgSVZzIGZvciBlYWNoIGJhc2Ug YWRkcmVzcyBhbmQgKGIpIGZvciBTVkUsIHdlIGluc3RlYWQgd2FudA0KPiBp bnZhcmlhbnQgYmFzZSBhZGRyZXNzZXMgdGhhdCBhcmUgaW5kZXhlZCBieSB0 aGUgbG9vcCBjb250cm9sIElWLg0KPiBMaWtlIFJpY2hhcmQgc2F5cywgaWYg dGhlIGxvb3AgY29udHJvbCBJViBpc24ndCBhIFNDRVYsIGl2b3B0cyBpc24n dA0KPiBhYmxlIHRvIHVzZSBpdCBhbmQgc28gKGIpIGZhaWxzLg0KPiAgDQo+ IFRoYW5rcywNCj4gUmljaGFyZA0KPiAgDQo+IA0KIA0KLS0gDQpSaWNoYXJk IEJpZW5lciA8cmd1ZW50aGVyQHN1c2UuZGU+DQpTVVNFIFNvZnR3YXJlIFNv bHV0aW9ucyBHZXJtYW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0 NjEgTnVlcm5iZXJnLA0KR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3 IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1hbjsNCkhS QiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart176018316111_=------