From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id 7A5723858C52 for ; Fri, 23 Sep 2022 13:07:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7A5723858C52 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: bizesmtp78t1663938450tbzd45dh Received: from TABLET-POE6JQHH ( [36.36.107.177]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 23 Sep 2022 21:07:29 +0800 (CST) X-QQ-SSF: 01400000002000D0J000B00A0000000 X-QQ-FEAT: RrZlkntZBfnhZc4LkoBTV6eFcnS880lLP2j0Y1vLFgfe2VGeXWUXRgeTVWlRO N5jGq68PwXFzH/Au0x5evUhtVCh2b6S/1kIoNAiRbKEWn+7Nl1SonCUeEWmnqVi91B67grV EWGdebCnp/Be5ts4k+r9lmh7z1rJp7erFX2DQR5xgAlw3zqJ11hQDlh3Kvwp329+ogRx+Wg 5W6f1WmApQCWnHULheC3uZDJpefQEtZLynZRZjs+j74vDq3JC8KO5oe5/lzM7G/e/QpgY47 ITXw2x8aRhpIp8J0kQWiX3AqeHCQKrSbbF7aluNgSc8RxwnzkFoc1EuMf99U0/T4w4g9lJO gpns6A8DmjSeKkwPLfHWFn0nJnBLP99X+oi3T4N56eMSQurBF5MfjhPYoHflQRK0oYTteQ2 jdDvUuhPYb/Tu7qYTgHXhC/bELbx0kro X-QQ-GoodBg: 2 Date: Fri, 23 Sep 2022 21:07:30 +0800 From: =?utf-8?B?6ZKf5bGF5ZOy?= To: rguenther , "Tamar Christina" Cc: richard.sandiford , gcc-patches , nd Subject: Re: RE: [PATCH]middle-end Add optimized float addsub without needing VEC_PERM_EXPR. References: , <1C4185AB-6EE6-4B8B-838C-465098DAFD3B@suse.de>, , <997q6no-qsqp-1oro-52sp-899sr075p4po@fhfr.qr>, , , , X-Priority: 3 X-GUID: 6DF10EDA-4286-43D5-AD1A-71E6F06B1CB6 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: <70BCA67A87BC8996+202209232107298908525@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart478538408347_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvr:qybglogicsvr7 X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP 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_NextPart478538408347_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U28gZmFyIEkgZGlkbid0IHNlZSB0aGUgY2FzZSB0aGF0IFYyREYgPC0+IFY0 U0YgaW4gUklTQy1WLiANCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQog DQpGcm9tOiBSaWNoYXJkIEJpZW5lcg0KRGF0ZTogMjAyMi0wOS0yMyAyMDo1 NA0KVG86IFRhbWFyIENocmlzdGluYQ0KQ0M6IFJpY2hhcmQgU2FuZGlmb3Jk OyBUYW1hciBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVzOyBuZDsganV6aGUu emhvbmcNClN1YmplY3Q6IFJFOiBbUEFUQ0hdbWlkZGxlLWVuZCBBZGQgb3B0 aW1pemVkIGZsb2F0IGFkZHN1YiB3aXRob3V0IG5lZWRpbmcgVkVDX1BFUk1f RVhQUi4NCk9uIEZyaSwgMjMgU2VwIDIwMjIsIFRhbWFyIENocmlzdGluYSB3 cm90ZToNCiANCj4gSGksDQo+IA0KPiBBdHRhY2hlZCBpcyB0aGUgcmVzcHVu IHZlcnNpb24gb2YgdGhlIHBhdGNoLA0KPiANCj4gPiA+Pg0KPiA+ID4+IFdv dWxkbid0IGEgdGFyZ2V0IG5lZWQgdG8gcmUtY2hlY2sgaWYgbGFuZXMgYXJl IE5hTiBvciBkZW5vcm1hbCBpZg0KPiA+ID4+IGFmdGVyIGEgU0Ztb2RlIGxh bmUgb3BlcmF0aW9uIGEgREZtb2RlIGxhbmUgb3BlcmF0aW9uIGZvbGxvd3M/ ICBJSVJDDQo+ID4gPj4gdGhhdCBpcyB3aGF0IHVzdWFsbHkgbWFrZXMgcHVu bmluZyAiaW50ZWdlciIgdmVjdG9ycyBhcyBGUCB2ZWN0b3JzIGNvc3RseS4N Cj4gDQo+IEkgZG9uJ3QgYmVsaWV2ZSB0aGlzIGlzIGEgcHJvYmxlbSwgZHVl IHRvIE5BTnMgbm90IGJlaW5nIGEgc2luZ2xlIHZhbHVlIGFuZA0KPiBhY2Nv cmRpbmcgdG8gdGhlIHN0YW5kYXJkIHRoZSBzaWduIGJpdCBkb2Vzbid0IGNo YW5nZSB0aGUgbWVhbmluZyBvZiBhIE5BTi4NCj4gDQo+IFRoYXQncyB3aHkg c3BlY2lmaWNhbGx5IGZvciBuZWdhdGVzIGdlbmVyYWxseSBubyBjaGVjayBp cyBwZXJmb3JtZWQgYW5kIGl0J3MNCj4gQXNzdW1lZCB0aGF0IGlmIGEgdmFs dWUgaXMgYSBOYU4gZ29pbmcgaW4sIGl0J3MgYSBOYU4gY29taW5nIG91dCwg YW5kIHRoaXMNCj4gT3B0aW1pemF0aW9uIGRvZXNuJ3QgY2hhbmdlIHRoYXQu ICBBbHNvIHVuZGVyIGZhc3QtbWF0aCB3ZSBkb24ndCBndWFyYW50ZWUNCj4g YSBzdGFibGUgcmVwcmVzZW50YXRpb24gZm9yIE5hTiAob3IgemVyb3MsIGV0 YykgYWZhaWsuDQo+IA0KPiBTbyBpZiB0aGF0IGlzIHN0aWxsIGEgY29uY2Vy biBJIGNvdWxkIGFkZCAmJiAhSE9OT1JTX05BTiAoKSB0byB0aGUgY29uc3Ry YWludHMuDQo+IA0KPiBCb290c3RyYXBwZWQgUmVndGVzdGVkIG9uIGFhcmNo NjQtbm9uZS1saW51eC1nbnUgYW5kIG5vIGlzc3Vlcy4NCj4gDQo+IE9rIGZv ciBtYXN0ZXI/DQo+IA0KPiBUaGFua3MsDQo+IFRhbWFyDQo+IA0KPiBnY2Mv Q2hhbmdlTG9nOg0KPiANCj4gKiBtYXRjaC5wZDogQWRkIGZuZWcvZmFkZCBy dWxlLg0KPiANCj4gZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQo+IA0KPiAq IGdjYy50YXJnZXQvYWFyY2g2NC9zaW1kL2FkZHN1Yl8xLmM6IE5ldyB0ZXN0 Lg0KPiAqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvYWRkc3ViXzEuYzogTmV3 IHRlc3QuDQo+IA0KPiAtLS0gaW5saW5lIHZlcnNpb24gb2YgcGF0Y2ggLS0t DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL21hdGNoLnBkIGIvZ2NjL21hdGNo LnBkDQo+IGluZGV4IDFiYjkzNmZjNDAxMGY5OGYyNGJiOTc2NzEzNTBlODQz MmM1NWIzNDcuLjI2MTdkNTYwOTFkZmJkNDFhZTQ5Zjk4MGVlMGFmMzc1N2Y1 ZWMxY2YgMTAwNjQ0DQo+IC0tLSBhL2djYy9tYXRjaC5wZA0KPiArKysgYi9n Y2MvbWF0Y2gucGQNCj4gQEAgLTc5MTYsNiArNzkxNiw1OSBAQCBhbmQsDQo+ ICAgIChzaW1wbGlmeSAocmVkdWMgKG9wIEAwIFZFQ1RPUl9DU1RAMSkpDQo+ ICAgICAgKG9wIChyZWR1Yzp0eXBlIEAwKSAocmVkdWM6dHlwZSBAMSkpKSkN Cj4gIA0KPiArLyogU2ltcGxpZnkgdmVjdG9yIGZsb2F0aW5nIHBvaW50IG9w ZXJhdGlvbnMgb2YgYWx0ZXJuYXRpbmcgc3ViL2FkZCBwYWlycw0KPiArICAg aW50byB1c2luZyBhbiBmbmVnIG9mIGEgd2lkZXIgZWxlbWVudCB0eXBlIGZv bGxvd2VkIGJ5IGEgbm9ybWFsIGFkZC4NCj4gKyAgIHVuZGVyIElFRUUgNzU0 IHRoZSBmbmVnIG9mIHRoZSB3aWRlciB0eXBlIHdpbGwgbmVnYXRlIGV2ZXJ5 IGV2ZW4gZW50cnkNCj4gKyAgIGFuZCB3aGVuIGRvaW5nIGFuIGFkZCB3ZSBn ZXQgYSBzdWIgb2YgdGhlIGV2ZW4gYW5kIGFkZCBvZiBldmVyeSBvZGQNCj4g KyAgIGVsZW1lbnRzLiAgKi8NCj4gKyhzaW1wbGlmeQ0KPiArICh2ZWNfcGVy bSAocGx1czpjIEAwIEAxKSAobWludXMgQDAgQDEpIFZFQ1RPUl9DU1RAMikN Cj4gKyAoaWYgKCFWRUNUT1JfSU5URUdFUl9UWVBFX1AgKHR5cGUpICYmICFC WVRFU19CSUdfRU5ESUFOKQ0KIA0Kc2hvdWxkbid0IHRoaXMgYmUgRkxPQVRf V09SRFNfQklHX0VORElBTiBpbnN0ZWFkPw0KIA0KSSdtIHN0aWxsIGNvbmNl cm5lZCB3aGF0DQogDQoobmVnOlYyREYgKHN1YnJlZzpWMkRGIChyZWc6VjRT RikgMCkpDQogDQptZWFucyBmb3IgYXJjaGl0ZWN0dXJlcyBsaWtlIFJJU0Mt Vi4gIENhbiBvbmUgInJlZm9ybWF0IiBGUCB2YWx1ZXMNCmluIHZlY3RvciBy ZWdpc3RlcnMgc28gdGhhdCB0d28gZmxvYXRzIG92ZXJsYXAgYSBkb3VibGUN CihhbmQgdGhlbiBiYWNrKT8NCiANCkkgc3VwcG9zZSB5b3UgcmVseSBvbiB0 YXJnZXRfY2FuX2NoYW5nZV9tb2RlX2NsYXNzIHRvIHRlbGwgeW91IHRoYXQu DQogDQogDQo+ICsgICh3aXRoDQo+ICsgICB7DQo+ICsgICAgIC8qIEJ1aWxk IGEgdmVjdG9yIG9mIGludGVnZXJzIGZyb20gdGhlIHRyZWUgbWFzay4gICov DQo+ICsgICAgIHZlY19wZXJtX2J1aWxkZXIgYnVpbGRlcjsNCj4gKyAgICAg aWYgKCF0cmVlX3RvX3ZlY19wZXJtX2J1aWxkZXIgKCZidWlsZGVyLCBAMikp DQo+ICsgICAgICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gKw0KPiArICAgICAv KiBDcmVhdGUgYSB2ZWNfcGVybV9pbmRpY2VzIGZvciB0aGUgaW50ZWdlciB2 ZWN0b3IuICAqLw0KPiArICAgICBwb2x5X3VpbnQ2NCBuZWx0cyA9IFRZUEVf VkVDVE9SX1NVQlBBUlRTICh0eXBlKTsNCj4gKyAgICAgdmVjX3Blcm1faW5k aWNlcyBzZWwgKGJ1aWxkZXIsIDIsIG5lbHRzKTsNCj4gKyAgIH0NCj4gKyAg IChpZiAoc2VsLnNlcmllc19wICgwLCAyLCAwLCAyKSkNCj4gKyAgICAod2l0 aA0KPiArICAgICB7DQo+ICsgICAgICAgbWFjaGluZV9tb2RlIHZlY19tb2Rl ID0gVFlQRV9NT0RFICh0eXBlKTsNCj4gKyAgICAgICBhdXRvIGVsZW1fbW9k ZSA9IEdFVF9NT0RFX0lOTkVSICh2ZWNfbW9kZSk7DQo+ICsgICAgICAgYXV0 byBudW5pdHMgPSBleGFjdF9kaXYgKEdFVF9NT0RFX05VTklUUyAodmVjX21v ZGUpLCAyKTsNCj4gKyAgICAgICB0cmVlIHN0eXBlOw0KPiArICAgICAgIHN3 aXRjaCAoZWxlbV9tb2RlKQ0KPiArIHsNCj4gKyBjYXNlIEVfSEZtb2RlOg0K PiArICAgIHN0eXBlID0gZmxvYXRfdHlwZV9ub2RlOw0KPiArICAgIGJyZWFr Ow0KPiArIGNhc2UgRV9TRm1vZGU6DQo+ICsgICAgc3R5cGUgPSBkb3VibGVf dHlwZV9ub2RlOw0KPiArICAgIGJyZWFrOw0KPiArIGRlZmF1bHQ6DQo+ICsg ICAgcmV0dXJuIE5VTExfVFJFRTsNCj4gKyB9DQogDQpDYW4ndCB5b3UgdXNl IEdFVF9NT0RFX1dJREVSX01PREUgYW5kIGRvdWJsZS1jaGVjayB0aGUNCm1v ZGUtc2l6ZSBkb3VibGVzPyAgSSBtZWFuIHlvdSBvYnZpb3VzbHkgbWlzcyBE Rm1vZGUgLT4gVEZtb2RlLg0KIA0KPiArICAgICAgIHRyZWUgbnR5cGUgPSBi dWlsZF92ZWN0b3JfdHlwZSAoc3R5cGUsIG51bml0cyk7DQo+ICsgICAgICAg aWYgKCFudHlwZSkNCiANCllvdSB3YW50IHRvIGNoZWNrIHRoYXQgdGhlIGFi b3ZlIHJlc3VsdHMgaW4gYSB2ZWN0b3IgbW9kZS4NCiANCj4gKyByZXR1cm4g TlVMTF9UUkVFOw0KPiArDQo+ICsgICAgICAgLyogVGhlIGZvcm1hdCBoYXMg dG8gaGF2ZSBhIHNpbXBsZSBzaWduIGJpdC4gICovDQo+ICsgICAgICAgY29u c3Qgc3RydWN0IHJlYWxfZm9ybWF0ICpmbXQgPSBGTE9BVF9NT0RFX0ZPUk1B VCAodmVjX21vZGUpOw0KPiArICAgICAgIGlmIChmbXQgPT0gTlVMTCkNCj4g KyByZXR1cm4gTlVMTF9UUkVFOw0KPiArICAgICB9DQo+ICsgICAgIChpZiAo Zm10LT5zaWduYml0X3J3ID09IEdFVF9NT0RFX1VOSVRfQklUU0laRSAodmVj X21vZGUpIC0gMQ0KIA0Kc2hvdWxkbid0IHRoaXMgYmUgYSBjaGVjayBvbiB0 aGUgY29tcG9uZW50IG1vZGU/ICBJIHRoaW5rIHlvdSdkDQp3YW50IHRvIGNo ZWNrIHRoYXQgdGhlIGJpZ2dlciBmb3JtYXQgc2lnbmJpdF9ydyBpcyBlcXVh bCB0bw0KdGhlIHNtYWxsZXIgZm9ybWF0IG1vZGUgc2l6ZSBwbHVzIGl0cyBz aWduYml0X3J3IG9yIHNvPw0KIA0KPiArICAgJiYgZm10LT5zaWduYml0X3J3 ID09IGZtdC0+c2lnbmJpdF9ybw0KPiArICAgJiYgdGFyZ2V0bS5jYW5fY2hh bmdlX21vZGVfY2xhc3MgKFRZUEVfTU9ERSAobnR5cGUpLCBUWVBFX01PREUg KHR5cGUpLCBBTExfUkVHUykNCj4gKyAgICYmIChvcHRpbWl6ZV92ZWN0b3Jz X2JlZm9yZV9sb3dlcmluZ19wICgpDQo+ICsgICAgICAgfHwgdGFyZ2V0X3N1 cHBvcnRzX29wX3AgKG50eXBlLCBORUdBVEVfRVhQUiwgb3B0YWJfdmVjdG9y KSkpDQo+ICsgICAgICAocGx1cyAodmlld19jb252ZXJ0OnR5cGUgKG5lZ2F0 ZSAodmlld19jb252ZXJ0Om50eXBlIEAxKSkpIEAwKSkpKSkpKQ0KPiArDQo+ ICAoc2ltcGxpZnkNCj4gICAodmVjX3Blcm0gQDAgQDEgVkVDVE9SX0NTVEAy KQ0KPiAgICh3aXRoDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zaW1kL2FkZHN1Yl8xLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL2FkZHN1Yl8xLmMNCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWZiOTFhMzRjNDIxYmJkMjg5NGZh YTBkYmJmMWI0N2FkNDMzMTBjNA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvYWRkc3Vi XzEuYw0KPiBAQCAtMCwwICsxLDU2IEBADQo+ICsvKiB7IGRnLWRvIGNvbXBp bGUgfSAqLw0KPiArLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQg YXJtX3Y4XzJhX2ZwMTZfbmVvbl9vayB9ICovDQo+ICsvKiB7IGRnLW9wdGlv bnMgIi1PZmFzdCIgfSAqLw0KPiArLyogeyBkZy1hZGQtb3B0aW9ucyBhcm1f djhfMmFfZnAxNl9uZW9uIH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBjaGVj ay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB7IHRhcmdldCB7IGxlIH0g fSB9IH0gKi8NCj4gKw0KPiArI3ByYWdtYSBHQ0MgdGFyZ2V0ICIrbm9zdmUi DQo+ICsNCj4gKy8qIA0KPiArKiogZjE6DQo+ICsqKiAuLi4NCj4gKyoqIGZu ZWcgdlswLTldKy4yZCwgdlswLTldKy4yZA0KPiArKiogZmFkZCB2WzAtOV0r LjRzLCB2WzAtOV0rLjRzLCB2WzAtOV0rLjRzDQo+ICsqKiAuLi4NCj4gKyov DQo+ICt2b2lkIGYxIChmbG9hdCAqcmVzdHJpY3QgYSwgZmxvYXQgKnJlc3Ry aWN0IGIsIGZsb2F0ICpyZXMsIGludCBuKQ0KPiArew0KPiArICAgZm9yIChp bnQgaSA9IDA7IGkgPCAobiAmIC00KTsgaSs9MikNCj4gKyAgICB7DQo+ICsg ICAgICByZXNbaSswXSA9IGFbaSswXSArIGJbaSswXTsNCj4gKyAgICAgIHJl c1tpKzFdID0gYVtpKzFdIC0gYltpKzFdOw0KPiArICAgIH0NCj4gK30NCj4g Kw0KPiArLyogDQo+ICsqKiBkMToNCj4gKyoqIC4uLg0KPiArKiogZm5lZyB2 WzAtOV0rLjRzLCB2WzAtOV0rLjRzDQo+ICsqKiBmYWRkIHZbMC05XSsuOGgs IHZbMC05XSsuOGgsIHZbMC05XSsuOGgNCj4gKyoqIC4uLg0KPiArKi8NCj4g K3ZvaWQgZDEgKF9GbG9hdDE2ICpyZXN0cmljdCBhLCBfRmxvYXQxNiAqcmVz dHJpY3QgYiwgX0Zsb2F0MTYgKnJlcywgaW50IG4pDQo+ICt7DQo+ICsgICBm b3IgKGludCBpID0gMDsgaSA8IChuICYgLTgpOyBpKz0yKQ0KPiArICAgIHsN Cj4gKyAgICAgIHJlc1tpKzBdID0gYVtpKzBdICsgYltpKzBdOw0KPiArICAg ICAgcmVzW2krMV0gPSBhW2krMV0gLSBiW2krMV07DQo+ICsgICAgfQ0KPiAr fQ0KPiArDQo+ICsvKiANCj4gKyoqIGUxOg0KPiArKiogLi4uDQo+ICsqKiBm YWRkIHZbMC05XSsuMmQsIHZbMC05XSsuMmQsIHZbMC05XSsuMmQNCj4gKyoq IGZzdWIgdlswLTldKy4yZCwgdlswLTldKy4yZCwgdlswLTldKy4yZA0KPiAr KiogaW5zIHZbMC05XSsuZFxbMVxdLCB2WzAtOV0rLmRcWzFcXQ0KPiArKiog Li4uDQo+ICsqLw0KPiArdm9pZCBlMSAoZG91YmxlICpyZXN0cmljdCBhLCBk b3VibGUgKnJlc3RyaWN0IGIsIGRvdWJsZSAqcmVzLCBpbnQgbikNCj4gK3sN Cj4gKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4gJiAtNCk7IGkrPTIpDQo+ ICsgICAgew0KPiArICAgICAgcmVzW2krMF0gPSBhW2krMF0gKyBiW2krMF07 DQo+ICsgICAgICByZXNbaSsxXSA9IGFbaSsxXSAtIGJbaSsxXTsNCj4gKyAg ICB9DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvYWRkc3ViXzEuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9hZGRzdWJfMS5jDQo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAuLmVhN2Y5ZDlkYjJjOGM5YTNlZmU1Yzc5NTFh MzE0YTI5YjdhN2E5MjINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvYWRkc3ViXzEuYw0K PiBAQCAtMCwwICsxLDUyIEBADQo+ICsvKiB7IGRnLWRvIGNvbXBpbGUgfSAq Lw0KPiArLyogeyBkZy1vcHRpb25zICItT2Zhc3QiIH0gKi8NCj4gKy8qIHsg ZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiAiIiB7 IHRhcmdldCB7IGxlIH0gfSB9IH0gKi8NCj4gKw0KPiArLyoNCj4gKyoqIGYx Og0KPiArKiogLi4uDQo+ICsqKiBmbmVnIHpbMC05XSsuZCwgcFswLTldKy9t LCB6WzAtOV0rLmQNCj4gKyoqIGZhZGQgelswLTldKy5zLCB6WzAtOV0rLnMs IHpbMC05XSsucw0KPiArKiogLi4uDQo+ICsqLw0KPiArdm9pZCBmMSAoZmxv YXQgKnJlc3RyaWN0IGEsIGZsb2F0ICpyZXN0cmljdCBiLCBmbG9hdCAqcmVz LCBpbnQgbikNCj4gK3sNCj4gKyAgIGZvciAoaW50IGkgPSAwOyBpIDwgKG4g JiAtNCk7IGkrPTIpDQo+ICsgICAgew0KPiArICAgICAgcmVzW2krMF0gPSBh W2krMF0gKyBiW2krMF07DQo+ICsgICAgICByZXNbaSsxXSA9IGFbaSsxXSAt IGJbaSsxXTsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIA0KPiArKiog ZDE6DQo+ICsqKiAuLi4NCj4gKyoqIGZuZWcgelswLTldKy5zLCBwWzAtOV0r L20sIHpbMC05XSsucw0KPiArKiogZmFkZCB6WzAtOV0rLmgsIHpbMC05XSsu aCwgelswLTldKy5oDQo+ICsqKiAuLi4NCj4gKyovIA0KPiArdm9pZCBkMSAo X0Zsb2F0MTYgKnJlc3RyaWN0IGEsIF9GbG9hdDE2ICpyZXN0cmljdCBiLCBf RmxvYXQxNiAqcmVzLCBpbnQgbikNCj4gK3sNCj4gKyAgIGZvciAoaW50IGkg PSAwOyBpIDwgKG4gJiAtOCk7IGkrPTIpDQo+ICsgICAgew0KPiArICAgICAg cmVzW2krMF0gPSBhW2krMF0gKyBiW2krMF07DQo+ICsgICAgICByZXNbaSsx XSA9IGFbaSsxXSAtIGJbaSsxXTsNCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4g Ky8qDQo+ICsqKiBlMToNCj4gKyoqIC4uLg0KPiArKiogZnN1YiB6WzAtOV0r LmQsIHpbMC05XSsuZCwgelswLTldKy5kDQo+ICsqKiBtb3ZwcmZ4IHpbMC05 XSsuZCwgcFswLTldKy9tLCB6WzAtOV0rLmQNCj4gKyoqIGZhZGQgelswLTld Ky5kLCBwWzAtOV0rL20sIHpbMC05XSsuZCwgelswLTldKy5kDQo+ICsqKiAu Li4NCj4gKyovDQo+ICt2b2lkIGUxIChkb3VibGUgKnJlc3RyaWN0IGEsIGRv dWJsZSAqcmVzdHJpY3QgYiwgZG91YmxlICpyZXMsIGludCBuKQ0KPiArew0K PiArICAgZm9yIChpbnQgaSA9IDA7IGkgPCAobiAmIC00KTsgaSs9MikNCj4g KyAgICB7DQo+ICsgICAgICByZXNbaSswXSA9IGFbaSswXSArIGJbaSswXTsN Cj4gKyAgICAgIHJlc1tpKzFdID0gYVtpKzFdIC0gYltpKzFdOw0KPiArICAg IH0NCj4gK30NCj4gDQo+IA0KIA0KLS0gDQpSaWNoYXJkIEJpZW5lciA8cmd1 ZW50aGVyQHN1c2UuZGU+DQpTVVNFIFNvZnR3YXJlIFNvbHV0aW9ucyBHZXJt YW55IEdtYkgsIEZyYW5rZW5zdHJhc3NlIDE0NiwgOTA0NjEgTnVlcm5iZXJn LA0KR2VybWFueTsgR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRy ZXcgTWNEb25hbGQsIEJvdWRpZW4gTW9lcm1hbjsNCkhSQiAzNjgwOSAoQUcg TnVlcm5iZXJnKQ0KIA0K ------=_001_NextPart478538408347_=------