From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbg150.qq.com (smtpbg150.qq.com [18.132.163.193]) by sourceware.org (Postfix) with ESMTPS id AF5933858C01 for ; Wed, 23 Aug 2023 12:35:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org AF5933858C01 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: bizesmtp64t1692794100t8wlgzrp Received: from LAPTOP-EPITNQBU ( [119.123.199.188]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 23 Aug 2023 20:34:59 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: W+onFc5Tw4Pet8R+iCsF+ktrLQrqR64CYufEoCM/d46jaivnJVJ6KzbBXP2ZX lGyIC2wfOCU+WONYqmI6NHP3zdKObEmFD6Xo01n0udVKMewWBFpshMW7LtgbD3N5W0VrgmJ 91SvmTe3/5ZlYAb0KC96OAQmHmdxz37Dw7tsVaqjBqcHbR8T1RQrHZWCECtTBHmF/m3NfE5 C2W5Kkc3ZvrIBPyKTGA6RGgv+hNowJoDKZH5fBf49+fPXNemgbnhqCMgk2XSMNvv++KCQIF 6l5AiSpMIfHv8HClMsadDjLOjxeHJ3tz4JYybeCeF4hFzh0u5mdzGEivkXXm9m+5rMaAFVF 13AMU0YWQAOcIrhKELcxX6hBxC5Td+zMmAHTNisXTUedINSarcwz/LgGM9ktaV9rAO58hYD XMf/VYPYhrzB2xfZ0cObSjb5TLD378+u+ZR2pw+K5+RPHA5rPRFz8Q== X-QQ-GoodBg: 2 X-BIZMAIL-ID: 5917386854171778831 Date: Wed, 23 Aug 2023 20:34:59 +0800 From: "juzhe.zhong@rivai.ai" To: Kito.cheng , kito.cheng Cc: "Robin Dapp" , gcc-patches , jeffreyalaw Subject: Re: Re: [PATCH] RISC-V: Refactor Phase 3 (Demand fusion) of VSETVL PASS References: <20230821015951.399184-1-juzhe.zhong@rivai.ai>, , , X-Priority: 3 X-GUID: A8F7FF8A-6612-44C9-A91E-5734F1D88022 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: <606871787D33AC48+2023082320345936812136@rivai.ai> Content-Type: multipart/alternative; boundary="----=_001_NextPart171544373200_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MANY_SPAN_IN_TEXT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_KAM_HTML_FONT_INVALID 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_NextPart171544373200_=---- Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SSBoYXZlIHJlb3JkZXIgdGhlIGZ1bmN0aW9ucyBzbyB0aGF0IHdlIHdvbid0 IG1lc3MgdXAgZGVsZXRlZCBmdW5jdGlvbnMgYW5kIG5ldyBmdW5jdGlvbnMu DQpWMiBwYXRjaDoNCmh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJtYWlsL2dj Yy1wYXRjaGVzLzIwMjMtQXVndXN0LzYyODIzNy5odG1sIA0KDQo+PiBXaHkg bmVlZCB0aGlzIGV4Y2VwdGlvbj8KDQpCZWNhdXNlIHdlIGhhdmUgdGhpcyBw aWVjZSBjb2RlIGhlcmUgZm9yIGZ1c2lvbiBpbiAiRU1QVFkiIGJsb2NrOg0K bmV3X2luZm8gPSBleHByLm1lcmdlIChleHByLCBHTE9CQUxfTUVSR0UsIGVn LT5zcmMtPmluZGV4KTsNClRoZSBleHByIG1heSBub3QgaGF2ZSBhIHJlYWxs IGF2bCBzb3VyY2Ugd2hpY2ggaXMgY29uc2lkZXJlZCBhcyBpbmNvbXBhdGli bGUuDQpIb3dldmVyLCBpbiB0aGlzIGNhc2UsIHdlIHNob3VsZCBza2lwIHRo ZSBjb21wYXRpYmxlIGNoZWNrLCBqdXN0IHVzZSBtZXJnZSB0byBjb21wdXRl IGRlbWFuZCBpbmZvLg0KDQo+Pk1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhp cyBjb3JyZWN0bHk6IGl0J3Mgd29ydGggaWYgdGhvZSBlZGdlcyBoYXMKPj5k aWZmZXJlbnQgcHJvYmFiaWxpdHk/DQo+PklmIGFsbCBwcm9iYWJpbGl0eSBp cyBzYW1lLCB0aGVuIGl0J3Mgbm90IHdvcnRoPw0KVGhlIHByb2JhYmlsaXR5 IGlzIHN1cHBvc2VkIHRvIGhlbHAgZm9yIHBpY2tpbmcgdGhlIG9wdGltYWwg VlNFVFZMIGluZm8gZm9yIGluY29tcGF0aWJsZSBkZW1hbmQgaW5mb3MuDQoN CkNvbnNpZGVyIHRoaXMgZm9sbG93aW5nIGNhc2U6DQoNCnZvaWQgZiAoaW50 MzJfdCAqIHJlc3RyaWN0IGluLCBpbnQzMl90ICogcmVzdHJpY3Qgb3V0LCBz aXplX3Qgbiwgc2l6ZV90IGNvbmQsIHNpemVfdCBjb25kMikNCnsNCiAgZm9y IChzaXplX3QgaSA9IDA7IGkgPCBuOyBpKyspDQogICAgew0KICAgICAgaWYg KGk9PSBjb25kKSB7DQogICAgICAgIHZpbnQ4bWY4X3QgdiA9ICoodmludDht ZjhfdCopKGluICsgaSArIDEwMCk7DQogICAgICAgICoodmludDhtZjhfdCop KG91dCArIGkgKyAxMDApID0gdjsNCiAgICAgIH0gZWxzZSB7DQogICAgICAg IHZib29sMV90IHYgPSAqKHZib29sMV90KikoaW4gKyBpICsgNDAwKTsNCiAg ICAgICAgKih2Ym9vbDFfdCopKG91dCArIGkgKyA0MDApID0gdjsNCiAgICAg IH0NCiAgICB9DQp9DQoNCkJvdGggVlNFVFZMcyBhcmUgaW5jb21wYXRpYmxl IHNpbmNlIG9uZSB3YW50IGU4bWY4LCB0aGUgb3RoZXIgd2FudHMgZThtOC4N CkZvciBpZiAoaSA9PSBjb25kKSBpcyB2ZXJ5IGxvdyBwcm9iYWJpbGl0eSAo SXQgY291bGQgb25seSBiZSBhY2Nlc3NlZCAwIHRpbWVzIG9yIG9uY2UpDQpX ZSB3YW50IHRvIGhvaXN0IHRoZSBlOG04IHRvIGdldCBvcHRpbWFsIGNvZGVn ZW4gbGlrZSB0aGlzOg0KZjoNCmJlcSBhMix6ZXJvLC5MMTANCmFkZGkgYTAs YTAsMTYwMA0KYWRkaSBhMSxhMSwxNjAwDQpsaSBhNSwwDQp2c2V0dmxpIGE0 LHplcm8sZTgsbTgsdGEsbWENCi5MNToNCmJlcSBhMyxhNSwuTDEyDQp2bG0u diB2MSwwKGEwKQ0KdnNtLnYgdjEsMChhMSkNCi5MNDoNCmFkZGkgYTUsYTUs MQ0KYWRkaSBhMCxhMCw0DQphZGRpIGExLGExLDQNCmJuZSBhMixhNSwuTDUN Ci5MMTA6DQpyZXQNCi5MMTI6DQp2c2V0dmxpIGE3LHplcm8sZTgsbWY4LHRh LG1hDQphZGRpIGE2LGExLC0xMjAwDQphZGRpIHQxLGEwLC0xMjAwDQp2bGU4 LnYgdjEsMCh0MSkNCnZzZTgudiB2MSwwKGE2KQ0KdnNldHZsaSBhNCx6ZXJv LGU4LG04LHRhLG1hDQpqIC5MNA0KDQoNCldoZXJhcyB0aGUgb3RoZXIgY2Fz ZSBpcyBsaWtlIHRoaXM6DQp2b2lkIGYgKGludDMyX3QgKiByZXN0cmljdCBp biwgaW50MzJfdCAqIHJlc3RyaWN0IG91dCwgc2l6ZV90IG4sIHNpemVfdCBj b25kLCBzaXplX3QgY29uZDIpDQp7DQogIGZvciAoc2l6ZV90IGkgPSAwOyBp IDwgbjsgaSsrKQ0KICAgIHsNCiAgICAgIGlmIChpID4gY29uZCkgew0KICAg ICAgICB2aW50OG1mOF90IHYgPSAqKHZpbnQ4bWY4X3QqKShpbiArIGkgKyAx MDApOw0KICAgICAgICAqKHZpbnQ4bWY4X3QqKShvdXQgKyBpICsgMTAwKSA9 IHY7DQogICAgICB9IGVsc2Ugew0KICAgICAgICB2Ym9vbDFfdCB2ID0gKih2 Ym9vbDFfdCopKGluICsgaSArIDQwMCk7DQogICAgICAgICoodmJvb2wxX3Qq KShvdXQgKyBpICsgNDAwKSA9IHY7DQogICAgICB9DQogICAgfQ0KfQ0KDQpC b3RoIGNvbmRpdGlvbiBwcm9iYWJpbGl0aWVzIGFyZSBlcXVhbCwgc28gd2Ug ZG9uJ3Qgd2FudCB0byB0YWtlIGFueSBvZiB0aGVtIGFzIGhpZ2hlciBwcmlv cml0eSwNCnNvIHRoZSBjb2RlZ2VuIHNob3VsZCBiZToNCmY6DQpiZXEgYTIs emVybywuTDEwDQphZGRpIGEwLGEwLDE2MDANCmFkZGkgYTEsYTEsMTYwMA0K bGkgYTUsMA0KaiAuTDUNCi5MMTI6DQp2c2V0dmxpIGE3LHplcm8sZTgsbWY4 LHRhLG1hDQphZGRpIGE1LGE1LDENCnZsZTgudiB2MSwwKGE2KQ0KdnNlOC52 IHYxLDAoYTQpDQphZGRpIGEwLGEwLDQNCmFkZGkgYTEsYTEsNA0KYmVxIGEy LGE1LC5MMTANCi5MNToNCmFkZGkgYTQsYTEsLTEyMDANCmFkZGkgYTYsYTAs LTEyMDANCmJsdHUgYTMsYTUsLkwxMg0KdnNldHZsaSB0MSx6ZXJvLGU4LG04 LHRhLG1hDQphZGRpIGE1LGE1LDENCnZsbS52IHYxLDAoYTApDQp2c20udiB2 MSwwKGExKQ0KYWRkaSBhMCxhMCw0DQphZGRpIGExLGExLDQNCmJuZSBhMixh NSwuTDUNCi5MMTA6DQpyZXQNCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFp DQogDQpGcm9tOiBLaXRvIENoZW5nDQpEYXRlOiAyMDIzLTA4LTIyIDIzOjM1 DQpUbzogS2l0byBDaGVuZw0KQ0M6IFJvYmluIERhcHA7IEp1emhlLVpob25n OyBHQ0MgUGF0Y2hlczsgSmVmZiBMYXcNClN1YmplY3Q6IFJlOiBbUEFUQ0hd IFJJU0MtVjogUmVmYWN0b3IgUGhhc2UgMyAoRGVtYW5kIGZ1c2lvbikgb2Yg VlNFVFZMIFBBU1MNCkl0J3MgcmVhbGx5IGdyZWF0IGltcHJvdmVtZW50LCBp dCdzIGRyb3Agc29tZSBzdGF0ZSBsaWtlIEhBUkRfRU1QVFkNCmFuZCBESVJU WV9XSVRIX0tJTExFRF9BVkwgd2hpY2ggbWFrZSB0aGlzIGFsZ29yaXRobSBt b3JlIGVhc3kgdG8NCnVuZGVyc3RhbmQhDQphbHNvIHRoaXMgYWxzbyBmdW5k YW1lbnRhbGx5IGltcHJvdmVkIHRoZSBwaGFzZSAzLCBhbHRob3VnaCBvbmUN CmNvbmNlcm4gaXMgdGhlIHRpbWUgY29tcGxleGl0eSBtaWdodCBiZSBjb21l IG1vcmUgaGlnaGVyIG9yZGVyLA0KKGFuZCBpdCdzIGFscmVhZHkgaGlnaCBl bm91Z2ggaW4gZmFjdC4pDQpidXQgbW9zdGx5IHRob3NlIHZlY3Rvcml6ZWQg Y29kZSBhcmUgb25seSBhcHBlYXJkIHdpdGhpbiB0aGUgaW5uZXINCm1vc3Qg bG9vcCwgc28gdGhhdCBpcyBhY2NlcHRhYmxlIGluIGdlbmVyYWxseQ0KIA0K U28gSSB3aWxsIHRyeSBteSBiZXN0IHRvIHJldmlldyB0aGlzIGNsb3NlbHkg dG8gbWFrZSBpdCBtb3JlIGNsb3NlIHRvDQp0aGUgcGVyZmVjdCA6KQ0KIA0K SSBzYXcgeW91IGhhcyB1cGRhdGUgc2VydmVyYWwgdGVzdGNhc2UsIHdoeSB1 cGRhdGUgaW5zdGVhZCBvZiBhZGQgbmV3IHRlc3RjYXNlPz8NCmNvdWxkIHlv dSBzYXkgbW9yZSBhYm91dCB3aHkgc29tZSB0ZXN0Y2FzZSBhZGRlZCBfX3Jp c2N2X3ZhZGRfdnZfaThtZjgNCm9yIGFkZCBzb21lIG1vcmUgZGVwZW5kZW5j eSBvZiB2bCB2YXJpYWJsZT8NCiANCiANCiANCj4gQEAgLTE0MjMsOCArMTQw OSwxMyBAQCBzdGF0aWMgYm9vbA0KPiAgZ2Vfc2V3X3JhdGlvX3VuYXZhaWxh YmxlX3AgKGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gJmluZm8xLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yX2luc25faW5m byAmaW5mbzIpDQo+ICB7DQo+IC0gIGlmICghaW5mbzIuZGVtYW5kX3AgKERF TUFORF9MTVVMKSAmJiBpbmZvMi5kZW1hbmRfcCAoREVNQU5EX0dFX1NFVykp DQo+IC0gICAgcmV0dXJuIGluZm8xLmdldF9zZXcgKCkgPCBpbmZvMi5nZXRf c2V3ICgpOw0KPiArICBpZiAoIWluZm8yLmRlbWFuZF9wIChERU1BTkRfTE1V TCkpDQo+ICsgICAgew0KPiArICAgICAgaWYgKGluZm8yLmRlbWFuZF9wIChE RU1BTkRfR0VfU0VXKSkNCj4gKyAgICAgICByZXR1cm4gaW5mbzEuZ2V0X3Nl dyAoKSA8IGluZm8yLmdldF9zZXcgKCk7DQo+ICsgICAgICBlbHNlIGlmICgh aW5mbzIuZGVtYW5kX3AgKERFTUFORF9TRVcpKQ0KPiArICAgICAgIHJldHVy biBmYWxzZTsNCj4gKyAgICB9DQogDQpUaGlzIHNlZW1zIHJlbGF4IHRoZSBj b21wYXRpYmxpdGx5IGNoZWNrIHRvIGFsbG93IG9wdGltaXplIG1vcmUgY2Fz ZSwNCmlmIHNvIHRoaXMgc2hvdWxkIGJlIGEgc3BlcmF0ZWQgcGF0Y2guDQog DQo+ICAgIHJldHVybiB0cnVlOw0KPiAgfQ0KIA0KIA0KPiBAQCAtMTgxNSw3 ICsxNzM3LDcgQEAgdmVjdG9yX2luc25faW5mbzo6cGFyc2VfaW5zbiAocnR4 X2luc24gKnJpbnNuKQ0KPiAgICAgIHJldHVybjsNCj4gICAgaWYgKG9wdGlt aXplID09IDAgJiYgIWhhc192dHlwZV9vcCAocmluc24pKQ0KPiAgICAgIHJl dHVybjsNCj4gLSAgaWYgKG9wdGltaXplID4gMCAmJiAhdnNldHZsX2luc25f cCAocmluc24pKQ0KPiArICBpZiAob3B0aW1pemUgPiAwICYmIHZzZXR2bF9k aXNjYXJkX3Jlc3VsdF9pbnNuX3AgKHJpbnNuKSkNCiANCkkgZGlkbid0IGdl dCB0aGlzIGNoYW5nZSwgY291bGQgeW91IGV4cGxhbiBmZXcgbW9yZSBhYm91 dCB0aGF0PyBpdCB3YXMNCmVhcmx5IGV4aXQgZm9yIG5vbiB2c2V0dmwgaW5z biwgYnV0IG5vdyBpdCBhbGxvd2VkIHRoYXQgbm93Pw0KIA0KPiAgICAgIHJl dHVybjsNCj4gICAgbV9zdGF0ZSA9IFZBTElEOw0KPiAgICBleHRyYWN0X2lu c25fY2FjaGVkIChyaW5zbik7DQogDQo+IEBAIC0yMjA2LDkgKzIxMjgsOSBA QCB2ZWN0b3JfaW5zbl9pbmZvOjpmdXNlX21hc2tfcG9saWN5IChjb25zdCB2 ZWN0b3JfaW5zbl9pbmZvICZpbmZvMSwNCj4NCj4gIHZlY3Rvcl9pbnNuX2lu Zm8NCj4gIHZlY3Rvcl9pbnNuX2luZm86Om1lcmdlIChjb25zdCB2ZWN0b3Jf aW5zbl9pbmZvICZtZXJnZV9pbmZvLA0KPiAtICAgICAgICAgICAgICAgICAg ICAgICAgZW51bSBtZXJnZV90eXBlIHR5cGUpIGNvbnN0DQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIG1lcmdlX3R5cGUgdHlwZSwgdW5zaWdu ZWQgYmJfaW5kZXgpIGNvbnN0DQo+ICB7DQo+IC0gIGlmICghdnNldHZsX2lu c25fcCAoZ2V0X2luc24gKCktPnJ0bCAoKSkpDQo+ICsgIGlmICghdnNldHZs X2luc25fcCAoZ2V0X2luc24gKCktPnJ0bCAoKSkgJiYgKnRoaXMgIT0gbWVy Z2VfaW5mbykNCiANCldoeSBuZWVkIHRoaXMgZXhjZXB0aW9uPw0KIA0KPiAg ICAgIGdjY19hc3NlcnQgKHRoaXMtPmNvbXBhdGlibGVfcCAobWVyZ2VfaW5m bykNCj4gICAgICAgICAgICAgICAgICYmICJDYW4ndCBtZXJnZSBpbmNvbXBh dGlibGUgZGVtYW5kZWQgaW5mb3MiKTsNCiANCj4gQEAgLTI0MDMsMTggKzIz NDgsMjIgQEAgdmVjdG9yX2luZm9zX21hbmFnZXI6OmdldF9hbGxfYXZhaWxh YmxlX2V4cHJzICgNCj4gIH0NCj4NCj4gIGJvb2wNCj4gLXZlY3Rvcl9pbmZv c19tYW5hZ2VyOjphbGxfZW1wdHlfcHJlZGVjZXNzb3JfcCAoY29uc3QgYmFz aWNfYmxvY2sgY2ZnX2JiKSBjb25zdA0KPiArdmVjdG9yX2luZm9zX21hbmFn ZXI6OmVhcmxpZXN0X2Z1c2lvbl93b3J0aHdoaWxlX3AgKA0KPiArICBjb25z dCBiYXNpY19ibG9jayBjZmdfYmIpIGNvbnN0DQo+ICB7DQo+IC0gIGhhc2hf c2V0PGJhc2ljX2Jsb2NrPiBwcmVkX2NmZ19iYnMgPSBnZXRfYWxsX3ByZWRl Y2Vzc29ycyAoY2ZnX2JiKTsNCj4gLSAgZm9yIChjb25zdCBiYXNpY19ibG9j ayBwcmVkX2NmZ19iYiA6IHByZWRfY2ZnX2JicykNCj4gKyAgZWRnZSBlOw0K PiArICBlZGdlX2l0ZXJhdG9yIGVpOw0KPiArICBwcm9maWxlX3Byb2JhYmls aXR5IHByb2IgPSBwcm9maWxlX3Byb2JhYmlsaXR5Ojp1bmluaXRpYWxpemVk ICgpOw0KPiArICBGT1JfRUFDSF9FREdFIChlLCBlaSwgY2ZnX2JiLT5zdWNj cykNCj4gICAgICB7DQo+IC0gICAgICBjb25zdCBhdXRvICZwcmVkX2Jsb2Nr X2luZm8gPSB2ZWN0b3JfYmxvY2tfaW5mb3NbcHJlZF9jZmdfYmItPmluZGV4 XTsNCj4gLSAgICAgIGlmICghcHJlZF9ibG9ja19pbmZvLmxvY2FsX2RlbS52 YWxpZF9vcl9kaXJ0eV9wICgpDQo+IC0gICAgICAgICAmJiAhcHJlZF9ibG9j a19pbmZvLnJlYWNoaW5nX291dC52YWxpZF9vcl9kaXJ0eV9wICgpKQ0KPiAr ICAgICAgaWYgKHByb2IgPT0gcHJvZmlsZV9wcm9iYWJpbGl0eTo6dW5pbml0 aWFsaXplZCAoKSkNCj4gKyAgICAgICBwcm9iID0gdmVjdG9yX2Jsb2NrX2lu Zm9zW2UtPmRlc3QtPmluZGV4XS5wcm9iYWJpbGl0eTsNCj4gKyAgICAgIGVs c2UgaWYgKHByb2IgPT0gdmVjdG9yX2Jsb2NrX2luZm9zW2UtPmRlc3QtPmlu ZGV4XS5wcm9iYWJpbGl0eSkNCj4gICAgICAgICBjb250aW51ZTsNCj4gLSAg ICAgIHJldHVybiBmYWxzZTsNCj4gKyAgICAgIGVsc2UNCj4gKyAgICAgICBy ZXR1cm4gdHJ1ZTsNCiANCk1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhpcyBj b3JyZWN0bHk6IGl0J3Mgd29ydGggaWYgdGhvZSBlZGdlcyBoYXMNCmRpZmZl cmVudCBwcm9iYWJpbGl0eT8NCiANCj4gICAgICB9DQo+IC0gIHJldHVybiB0 cnVlOw0KPiArICByZXR1cm4gZmFsc2U7DQogDQpJZiBhbGwgcHJvYmFiaWxp dHkgaXMgc2FtZSwgdGhlbiBpdCdzIG5vdCB3b3J0aD8NCiANClBseiBhZGQg ZmV3IGNvbW1lbnRzIG5vIG1hdHRlciBteSB1bmRlcnN0YW5kIGlzIHJpZ2h0 IG9yIG5vdCA6KQ0KIA0KPiAgfQ0KPg0KPiAgYm9vbA0KIA0KPiBAQCAtMjQy OCwxMiArMjM3NywxMiBAQCB2ZWN0b3JfaW5mb3NfbWFuYWdlcjo6YWxsX3Nh bWVfcmF0aW9fcCAoc2JpdG1hcCBiaXRkYXRhKSBjb25zdA0KPiAgICBzYml0 bWFwX2l0ZXJhdG9yIHNiaTsNCj4NCj4gICAgRVhFQ1VURV9JRl9TRVRfSU5f QklUTUFQIChiaXRkYXRhLCAwLCBiYl9pbmRleCwgc2JpKQ0KPiAtICB7DQo+ IC0gICAgaWYgKHJhdGlvID09IC0xKQ0KPiAtICAgICAgcmF0aW8gPSB2ZWN0 b3JfZXhwcnNbYmJfaW5kZXhdLT5nZXRfcmF0aW8gKCk7DQo+IC0gICAgZWxz ZSBpZiAodmVjdG9yX2V4cHJzW2JiX2luZGV4XS0+Z2V0X3JhdGlvICgpICE9 IHJhdGlvKQ0KPiAtICAgICAgcmV0dXJuIGZhbHNlOw0KPiAtICB9DQo+ICsg ICAgew0KPiArICAgICAgaWYgKHJhdGlvID09IC0xKQ0KPiArICAgICAgIHJh dGlvID0gdmVjdG9yX2V4cHJzW2JiX2luZGV4XS0+Z2V0X3JhdGlvICgpOw0K PiArICAgICAgZWxzZSBpZiAodmVjdG9yX2V4cHJzW2JiX2luZGV4XS0+Z2V0 X3JhdGlvICgpICE9IHJhdGlvKQ0KPiArICAgICAgIHJldHVybiBmYWxzZTsN Cj4gKyAgICB9DQo+ICAgIHJldHVybiB0cnVlOw0KPiAgfQ0KIA0KU3BsaXQg dGhpcyBpbnRvIGEgTkZDIHBhdGNoLCB5b3UgY2FuIGNvbW1pdCB0aGF0IHdp dGhvdXQgYXNraW5nIHJldmlldy4NCiANCj4gQEAgLTkwNyw4ICs4OTMsOCBA QCBjaGFuZ2VfaW5zbiAoZnVuY3Rpb25faW5mbyAqc3NhLCBpbnNuX2NoYW5n ZSBjaGFuZ2UsIGluc25faW5mbyAqaW5zbiwNCj4gICAgICAgICAgICAgICAg IF0gVU5TUEVDX1ZQUkVESUNBVEUpDQo+ICAgICAgICAgICAgIChwbHVzOlJW Vk00REkgKHJlZy92OlJWVk00REkgMTA0IHY4IFtvcmlnOjEzNyBvcDEgXSBb MTM3XSkNCj4gICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpSVlZNNERJ ICh2ZWNfZHVwbGljYXRlOlJWVk00U0kgKHJlZzpTSSAxNSBhNQ0KPiAtICAg IFsxNDBdKSkpKSAodW5zcGVjOlJWVk00REkgWyAoY29uc3RfaW50IDAgWzBd KSBdIFVOU1BFQ19WVU5ERUYpKSkgInJ2di5jIjo4OjEyDQo+IC0gICAgMjc4 NCB7cHJlZF9zaW5nbGVfd2lkZW5fYWRkc3ZueDhkaV9zY2FsYXJ9IChleHBy X2xpc3Q6UkVHX0VRVUlWDQo+ICsgICAgWzE0MF0pKSkpICh1bnNwZWM6UlZW TTRESSBbIChjb25zdF9pbnQgMCBbMF0pIF0gVU5TUEVDX1ZVTkRFRikpKQ0K PiArICAgICJydnYuYyI6ODoxMiAyNzg0IHtwcmVkX3NpbmdsZV93aWRlbl9h ZGRzdm54OGRpX3NjYWxhcn0gKGV4cHJfbGlzdDpSRUdfRVFVSVYNCj4gICAg ICAobWVtL2M6UlZWTTRESSAocmVnOkRJIDEwIGEwIFsxNDJdKSBbMSA8cmV0 dmFsPiswIFNbNjQsIDY0XSBBMTI4XSkNCj4gICAgICAgICAoZXhwcl9saXN0 OlJFR19FUVVBTCAoaWZfdGhlbl9lbHNlOlJWVk00REkgKHVuc3BlYzpSVlZN RjhCSSBbDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF92ZWN0 b3I6UlZWTUY4QkkgcmVwZWF0IFsNCiANClNwbGl0IHRoaXMgaW50byBhIE5G QyBwYXRjaCwgeW91IGNhbiBjb21taXQgdGhhdCB3aXRob3V0IGFza2luZyBy ZXZpZXcuDQogDQogDQo+IEBAIC0yNzc3LDYgKzI3NzAsMTcgQEAgcGFzc192 c2V0dmw6OnVwZGF0ZV92ZWN0b3JfaW5mbyAoY29uc3QgaW5zbl9pbmZvICpp LA0KPiAgICBtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfaW5zbl9pbmZvc1tp LT51aWQgKCldID0gbmV3X2luZm87DQo+ICB9DQo+DQo+ICt2b2lkDQo+ICtw YXNzX3ZzZXR2bDo6dXBkYXRlX2Jsb2NrX2luZm8gKGludCBpbmRleCwgcHJv ZmlsZV9wcm9iYWJpbGl0eSBwcm9iLA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlY3Rvcl9pbnNuX2luZm8gbmV3X2luZm8pDQpjb25z dCB2ZWN0b3JfaW5zbl9pbmZvICZuZXdfaW5mbw0KIA0KIA0KPiArew0KPiAr ICBtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfYmxvY2tfaW5mb3NbaW5kZXhd LnByb2JhYmlsaXR5ID0gcHJvYjsNCj4gKyAgaWYgKG1fdmVjdG9yX21hbmFn ZXItPnZlY3Rvcl9ibG9ja19pbmZvc1tpbmRleF0ubG9jYWxfZGVtDQo+ICsg ICAgICA9PSBtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfYmxvY2tfaW5mb3Nb aW5kZXhdLnJlYWNoaW5nX291dCkNCj4gKyAgICBtX3ZlY3Rvcl9tYW5hZ2Vy LT52ZWN0b3JfYmxvY2tfaW5mb3NbaW5kZXhdLmxvY2FsX2RlbSA9IG5ld19p bmZvOw0KPiArICBtX3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfYmxvY2tfaW5m b3NbaW5kZXhdLnJlYWNoaW5nX291dCA9IG5ld19pbmZvOw0KPiArfQ0KPiAr DQogDQp7DQogIGF1dG8gJmJsb2NrX2luZm8gPSBtX3ZlY3Rvcl9tYW5hZ2Vy LT52ZWN0b3JfYmxvY2tfaW5mb3NbaW5kZXhdOw0KICBibG9ja19pbmZvLnBy b2JhYmlsaXR5ID0gcHJvYjsNCiAgaWYgKGJsb2NrX2luZm8ubG9jYWxfZGVt ID09IGJsb2NrX2luZm8ucmVhY2hpbmdfb3V0KQ0KICAgIGJsb2NrX2luZm8u bG9jYWxfZGVtID0gbmV3X2luZm87DQogIGJsb2NrX2luZm8ucmVhY2hpbmdf b3V0ID0gbmV3X2luZm87DQp9DQogDQo+ICAvKiBTaW1wbGUgbV92c2V0dmxf aW5zZXJ0IHZzZXR2bCBmb3Igb3B0aW1pemUgPT0gMC4gICovDQo+ICB2b2lk DQo+ICBwYXNzX3ZzZXR2bDo6c2ltcGxlX3ZzZXR2bCAodm9pZCkgY29uc3QN CiANCiANCj4gKyAgICAgIGZvciAoaW5zbl9pbmZvICppID0gZWFybGllc3Rf cHJlZC0+ZW5kX2luc24gKCktPnByZXZfbm9uZGVidWdfaW5zbiAoKTsNCj4g KyAgICAgICAgICByZWFsX2luc25fYW5kX3NhbWVfYmJfcCAoaSwgZWFybGll c3RfcHJlZCkNCj4gKyAgICAgICAgICAmJiBhZnRlcl9vcl9zYW1lX3AgKGks IGxhc3RfaW5zbik7DQo+ICsgICAgICAgICAgaSA9IGktPnByZXZfbm9uZGVi dWdfaW5zbiAoKSkNCj4gICAgICAgICB7DQo+ICsgICAgICAgICBpZiAoIXZs ICYmIGZpbmRfYWNjZXNzIChpLT5kZWZzICgpLCBSRUdOTyAoYXZsKSkpDQo+ ICsgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gKyAgICAgICAgIGlmICh2 bCAmJiBmaW5kX2FjY2VzcyAoaS0+ZGVmcyAoKSwgUkVHTk8gKHZsKSkpDQo+ ICsgICAgICAgICAgIHJldHVybiBmYWxzZTsNCj4gKyAgICAgICAgIGlmICh2 bCAmJiBmaW5kX2FjY2VzcyAoaS0+dXNlcyAoKSwgUkVHTk8gKHZsKSkpDQo+ ICsgICAgICAgICAgIHJldHVybiBmYWxzZTsNCiANCnNob3VsZCB3ZSBjaGVj ayBgaS0+aXNfY2FsbCAoKSB8fCBpLT5pc19hc20gKClgPw0KIA0KIA0KPiBA QCAtMzg5Miw3ICszNDA4LDcgQEAgcGFzc192c2V0dmw6OnJlZmluZV92c2V0 dmxzICh2b2lkKSBjb25zdA0KPiAgICBiYXNpY19ibG9jayBjZmdfYmI7DQo+ ICAgIEZPUl9FQUNIX0JCX0ZOIChjZmdfYmIsIGNmdW4pDQo+ICAgICAgew0K PiAtICAgICAgYXV0byBpbmZvID0gZ2V0X2Jsb2NrX2luZm8oY2ZnX2JiKS5s b2NhbF9kZW07DQo+ICsgICAgICBhdXRvIGluZm8gPSBnZXRfYmxvY2tfaW5m byAoY2ZnX2JiKS5sb2NhbF9kZW07DQo+ICAgICAgICBpbnNuX2luZm8gKmlu c24gPSBpbmZvLmdldF9pbnNuICgpOw0KPiAgICAgICAgaWYgKCFpbmZvLnZh bGlkX3AgKCkpDQo+ICAgICAgICAgY29udGludWU7DQogDQpTcGxpdCB0aGlz IGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29tbWl0IHRoYXQgd2l0aG91 dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPiBAQCAtMzkzOCw4ICszNDU0LDcgQEAg cGFzc192c2V0dmw6OmNsZWFudXBfdnNldHZscyAoKQ0KPiAgICBiYXNpY19i bG9jayBjZmdfYmI7DQo+ICAgIEZPUl9FQUNIX0JCX0ZOIChjZmdfYmIsIGNm dW4pDQo+ICAgICAgew0KPiAtICAgICAgYXV0byAmaW5mbw0KPiAtICAgICAg ID0gZ2V0X2Jsb2NrX2luZm8oY2ZnX2JiKS5yZWFjaGluZ19vdXQ7DQo+ICsg ICAgICBhdXRvICZpbmZvID0gZ2V0X2Jsb2NrX2luZm8gKGNmZ19iYikucmVh Y2hpbmdfb3V0Ow0KPiAgICAgICAgZ2NjX2Fzc2VydCAobV92ZWN0b3JfbWFu YWdlci0+ZXhwcl9zZXRfbnVtICgNCj4gICAgICAgICAgICAgICAgICAgICBt X3ZlY3Rvcl9tYW5hZ2VyLT52ZWN0b3JfZGVsW2NmZ19iYi0+aW5kZXhdKQ0K PiAgICAgICAgICAgICAgICAgICA8PSAxKTsNCiANClNwbGl0IHRoaXMgaW50 byBhIE5GQyBwYXRjaCwgeW91IGNhbiBjb21taXQgdGhhdCB3aXRob3V0IGFz a2luZyByZXZpZXcuDQogDQo+IEBAIC0zOTUxLDkgKzM0NjYsNyBAQCBwYXNz X3ZzZXR2bDo6Y2xlYW51cF92c2V0dmxzICgpDQo+ICAgICAgICAgICAgICAg ICBpbmZvLnNldF91bmtub3duICgpOw0KPiAgICAgICAgICAgICAgIGVsc2UN Cj4gICAgICAgICAgICAgICAgIHsNCj4gLSAgICAgICAgICAgICAgICAgY29u c3QgYXV0byBkZW0NCj4gLSAgICAgICAgICAgICAgICAgICA9IGdldF9ibG9j a19pbmZvKGNmZ19iYikNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgLmxv Y2FsX2RlbTsNCj4gKyAgICAgICAgICAgICAgICAgY29uc3QgYXV0byBkZW0g PSBnZXRfYmxvY2tfaW5mbyAoY2ZnX2JiKS5sb2NhbF9kZW07DQo+ICAgICAg ICAgICAgICAgICAgIGdjY19hc3NlcnQgKGRlbSA9PSAqbV92ZWN0b3JfbWFu YWdlci0+dmVjdG9yX2V4cHJzW2ldKTsNCj4gICAgICAgICAgICAgICAgICAg aW5zbl9pbmZvICppbnNuID0gZGVtLmdldF9pbnNuICgpOw0KPiAgICAgICAg ICAgICAgICAgICBnY2NfYXNzZXJ0IChpbnNuICYmIGluc24tPnJ0bCAoKSk7 DQogDQpTcGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29t bWl0IHRoYXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPiBAQCAtNDAy MCwzMyArMzU0MywxMCBAQCBwYXNzX3ZzZXR2bDo6Y29tbWl0X3ZzZXR2bHMg KHZvaWQpDQo+ICAgIGZvciAoY29uc3QgYmJfaW5mbyAqYmIgOiBjcnRsLT5z c2EtPmJicyAoKSkNCj4gICAgICB7DQo+ICAgICAgICBiYXNpY19ibG9jayBj ZmdfYmIgPSBiYi0+Y2ZnX2JiICgpOw0KPiAtICAgICAgY29uc3QgYXV0byBy ZWFjaGluZ19vdXQNCj4gLSAgICAgICA9IGdldF9ibG9ja19pbmZvKGNmZ19i YikucmVhY2hpbmdfb3V0Ow0KPiArICAgICAgY29uc3QgYXV0byByZWFjaGlu Z19vdXQgPSBnZXRfYmxvY2tfaW5mbyAoY2ZnX2JiKS5yZWFjaGluZ19vdXQ7 DQogDQpTcGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29t bWl0IHRoYXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPiBAQCAtNDI2 Myw3ICszNzgzLDggQEAgcGFzc192c2V0dmw6OmxvY2FsX2VsaW1pbmF0ZV92 c2V0dmxfaW5zbiAoY29uc3QgYmJfaW5mbyAqYmIpIGNvbnN0DQo+DQo+ICAg ICAgICAvKiBMb2NhbCBBVkwgY29tcGF0aWJpbGl0eSBjaGVja2luZyBpcyBz aW1wbGVyIHRoYW4gZ2xvYmFsLCB3ZSBvbmx5DQo+ICAgICAgICAgIG5lZWQg dG8gY2hlY2sgdGhlIFJFR05PIGlzIHNhbWUuICAqLw0KPiAtICAgICAgaWYg KHByZXZfZGVtLnZhbGlkX29yX2RpcnR5X3AgKCkgJiYgcHJldl9kZW0uc2tp cF9hdmxfY29tcGF0aWJsZV9wIChjdXJyX2RlbSkNCj4gKyAgICAgIGlmIChw cmV2X2RlbS52YWxpZF9vcl9kaXJ0eV9wICgpDQo+ICsgICAgICAgICAmJiBw cmV2X2RlbS5za2lwX2F2bF9jb21wYXRpYmxlX3AgKGN1cnJfZGVtKQ0KPiAg ICAgICAgICAgJiYgbG9jYWxfYXZsX2NvbXBhdGlibGVfcCAocHJldl9hdmws IGN1cnJfYXZsKSkNCj4gICAgICAgICB7DQo+ICAgICAgICAgICAvKiBjdXJy X2RlbSBhbmQgcHJldl9kZW0gaXMgY29tcGF0aWJsZSEgICovDQogDQpTcGxp dCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29tbWl0IHRoYXQg d2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPkBAIC00NjU1LDggKzQyNDAs NyBAQCBwYXNzX3ZzZXR2bDo6Y29tcHV0ZV9wcm9iYWJpbGl0aWVzICh2b2lk KQ0KPiAgIGZvciAoY29uc3QgYmJfaW5mbyAqYmIgOiBjcnRsLT5zc2EtPmJi cyAoKSkNCj4gICAgIHsNCj4gICAgICAgYmFzaWNfYmxvY2sgY2ZnX2JiID0g YmItPmNmZ19iYiAoKTsNCj4tICAgICAgYXV0byAmY3Vycl9wcm9iDQo+LSAg ICAgICA9IGdldF9ibG9ja19pbmZvKGNmZ19iYikucHJvYmFiaWxpdHk7DQo+ KyAgICAgIGF1dG8gJmN1cnJfcHJvYiA9IGdldF9ibG9ja19pbmZvIChjZmdf YmIpLnByb2JhYmlsaXR5Ow0KPg0KPiAgICAgICAvKiBHQ0MgYXNzdW1lIGVu dHJ5IGJsb2NrIChiYiAwKSBhcmUgYWx3YXlzIHNvDQo+ICAgICAgICAgZXhl Y3V0ZWQgc28gc2V0IGl0cyBwcm9iYWJpbGl0eSBhcyAiYWx3YXlzIi4gICov DQogDQpTcGxpdCB0aGlzIGludG8gYSBORkMgcGF0Y2gsIHlvdSBjYW4gY29t bWl0IHRoYXQgd2l0aG91dCBhc2tpbmcgcmV2aWV3Lg0KIA0KPiBAQCAtNDY2 OSw4ICs0MjUzLDcgQEAgcGFzc192c2V0dmw6OmNvbXB1dGVfcHJvYmFiaWxp dGllcyAodm9pZCkNCj4gICAgICAgIGdjY19hc3NlcnQgKGN1cnJfcHJvYi5p bml0aWFsaXplZF9wICgpKTsNCj4gICAgICAgIEZPUl9FQUNIX0VER0UgKGUs IGVpLCBjZmdfYmItPnN1Y2NzKQ0KPiAgICAgICAgIHsNCj4gLSAgICAgICAg IGF1dG8gJm5ld19wcm9iDQo+IC0gICAgICAgICAgID0gZ2V0X2Jsb2NrX2lu Zm8oZS0+ZGVzdCkucHJvYmFiaWxpdHk7DQo+ICsgICAgICAgICBhdXRvICZu ZXdfcHJvYiA9IGdldF9ibG9ja19pbmZvIChlLT5kZXN0KS5wcm9iYWJpbGl0 eTsNCj4gICAgICAgICAgIGlmICghbmV3X3Byb2IuaW5pdGlhbGl6ZWRfcCAo KSkNCj4gICAgICAgICAgICAgbmV3X3Byb2IgPSBjdXJyX3Byb2IgKiBlLT5w cm9iYWJpbGl0eTsNCj4gICAgICAgICAgIGVsc2UgaWYgKG5ld19wcm9iID09 IHByb2ZpbGVfcHJvYmFiaWxpdHk6OmFsd2F5cyAoKSkNCiANCiANClNwbGl0 IHRoaXMgaW50byBhIE5GQyBwYXRjaCwgeW91IGNhbiBjb21taXQgdGhhdCB3 aXRob3V0IGFza2luZyByZXZpZXcuDQogDQogDQo+IEBAIC00Mjk4LDcgKzM4 MTksOCBAQCBwYXNzX3ZzZXR2bDo6bG9jYWxfZWxpbWluYXRlX3ZzZXR2bF9p bnNuIChjb25zdCBiYl9pbmZvICpiYikgY29uc3QNCj4gICAgIG5vbmUgZXhp c3RzIG9yIGlmIGEgdXNlciBSVlYgaW5zdHJ1Y3Rpb24gaXMgZW5vdW50ZXJl ZA0KPiAgICAgcHJpb3IgdG8gYW55IHZzZXR2bC4gICovDQo+ICBzdGF0aWMg cnR4X2luc24gKg0KPiAtZ2V0X2ZpcnN0X3ZzZXR2bF9iZWZvcmVfcnZ2X2lu c25zIChiYXNpY19ibG9jayBjZmdfYmIpDQo+ICtnZXRfZmlyc3RfdnNldHZs X2JlZm9yZV9ydnZfaW5zbnMgKGJhc2ljX2Jsb2NrIGNmZ19iYiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHZzZXR2bF90 eXBlIGluc25fdHlwZSkNCj4gIHsNCiANCmFkZCBnY2NfYXNzZXJ0IChpbnNu X3R5cGUgPT0gVlNFVFZMX0RJU0NBUkRfUkVTVUxUIHx8IGluc25fdHlwZSA9 PQ0KVlNFVFZMX1ZUWVBFX0NIQU5HRV9PTkxZKS4NCiANCj4gICAgcnR4X2lu c24gKnJpbnNuOw0KPiAgICBGT1JfQkJfSU5TTlMgKGNmZ19iYiwgcmluc24p DQo+IEBAIC00MzEwLDcgKzM4MzIsMTEgQEAgZ2V0X2ZpcnN0X3ZzZXR2bF9i ZWZvcmVfcnZ2X2luc25zIChiYXNpY19ibG9jayBjZmdfYmIpDQo+ICAgICAg ICBpZiAoaGFzX3Z0eXBlX29wIChyaW5zbikgfHwgdnNldHZsX2luc25fcCAo cmluc24pKQ0KPiAgICAgICAgIHJldHVybiBudWxscHRyOw0KPg0KPiAtICAg ICAgaWYgKHZzZXR2bF9kaXNjYXJkX3Jlc3VsdF9pbnNuX3AgKHJpbnNuKSkN Cj4gKyAgICAgIGlmIChpbnNuX3R5cGUgPT0gVlNFVFZMX0RJU0NBUkRfUkVT VUxUDQo+ICsgICAgICAgICAmJiB2c2V0dmxfZGlzY2FyZF9yZXN1bHRfaW5z bl9wIChyaW5zbikpDQo+ICsgICAgICAgcmV0dXJuIHJpbnNuOw0KPiArICAg ICAgaWYgKGluc25fdHlwZSA9PSBWU0VUVkxfVlRZUEVfQ0hBTkdFX09OTFkN Cj4gKyAgICAgICAgICYmIHZzZXR2bF92dHlwZV9jaGFuZ2Vfb25seV9wIChy aW5zbikpDQo+ICAgICAgICAgcmV0dXJuIHJpbnNuOw0KPiAgICAgIH0NCj4g ICAgcmV0dXJuIG51bGxwdHI7DQogDQogDQo+IGRpZmYgLS1naXQgYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5kZWYgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZzZXR2bC5kZWYNCj4gaW5kZXggN2E3MzE0OWYxZGEuLjcy ODljMDFlZmNmIDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZzZXR2bC5kZWYNCj4gKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12c2V0dmwuZGVmDQo+IEBAIC0zMTksNyArMzE5LDcgQEAgREVGX1NFV19M TVVMX0ZVU0VfUlVMRSAoLypTRVcqLyBERU1BTkRfVFJVRSwgLypMTVVMKi8g REVNQU5EX0ZBTFNFLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAvKlJB VElPKi8gREVNQU5EX1RSVUUsIC8qR0VfU0VXKi8gREVNQU5EX0ZBTFNFLA0K PiAgICAgICAgICAgICAgICAgICAgICAgICAvKk5FV19ERU1BTkRfU0VXKi8g dHJ1ZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgLypORVdfREVNQU5E X0xNVUwqLyBmYWxzZSwNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgLypO RVdfREVNQU5EX1JBVElPKi8gZmFsc2UsDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIC8qTkVXX0RFTUFORF9SQVRJTyovIHRydWUsDQogDQpUaGlzIHNl ZW1zIHJlbGF4IHRoZSBjb21wYXRpYmxpdGx5IGNoZWNrIHRvIGFsbG93IG9w dGltaXplIG1vcmUgY2FzZSwNCmlmIHNvIHRoaXMgc2hvdWxkIGJlIGEgc3Bl cmF0ZWQgcGF0Y2guDQogDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIC8q TkVXX0RFTUFORF9HRV9TRVcqLyB0cnVlLCBmaXJzdF9zZXcsDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgIHZsbXVsX2Zvcl9maXJzdF9zZXdfc2Vjb25k X3JhdGlvLCBzZWNvbmRfcmF0aW8pDQo+ICBERUZfU0VXX0xNVUxfRlVTRV9S VUxFICgvKlNFVyovIERFTUFORF9UUlVFLCAvKkxNVUwqLyBERU1BTkRfRkFM U0UsDQogDQogDQo+IEBAIC0zODYsNyArMzM3LDggQEAgcHVibGljOg0KPiAg ICBib29sIGNvbXBhdGlibGVfYXZsX3AgKGNvbnN0IGF2bF9pbmZvICYpIGNv bnN0Ow0KPiAgICBib29sIGNvbXBhdGlibGVfdnR5cGVfcCAoY29uc3Qgdmxf dnR5cGVfaW5mbyAmKSBjb25zdDsNCj4gICAgYm9vbCBjb21wYXRpYmxlX3Ag KGNvbnN0IHZsX3Z0eXBlX2luZm8gJikgY29uc3Q7DQo+IC0gIHZlY3Rvcl9p bnNuX2luZm8gbWVyZ2UgKGNvbnN0IHZlY3Rvcl9pbnNuX2luZm8gJiwgZW51 bSBtZXJnZV90eXBlKSBjb25zdDsNCj4gKyAgdmVjdG9yX2luc25faW5mbyBt ZXJnZSAoY29uc3QgdmVjdG9yX2luc25faW5mbyAmLCBlbnVtIG1lcmdlX3R5 cGUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgPSAw KSBjb25zdDsNCiANCml0IHNlZW1zIHdlaXJlZCB0byBzZXQgYmJfaW5kZXgg YXMgMCBieSBkZWZhdWx0Pw0KIA0KPg0KPiAgICBydGxfc3NhOjppbnNuX2lu Zm8gKmdldF9pbnNuICgpIGNvbnN0IHsgcmV0dXJuIG1faW5zbjsgfQ0KPiAg ICBjb25zdCBib29sICpnZXRfZGVtYW5kcyAodm9pZCkgY29uc3QgeyByZXR1 cm4gbV9kZW1hbmRzOyB9DQogDQogDQo+IGRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL3Jpc2N2L3QtcmlzY3YgYi9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YN Cj4gaW5kZXggMTI1MmQ2Zjg1MWEuLmYzY2U2NmNjZGQ0IDEwMDY0NA0KPiAt LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3YNCj4gKysrIGIvZ2NjL2Nv bmZpZy9yaXNjdi90LXJpc2N2DQo+IEBAIC02Miw3ICs2Miw4IEBAIHJpc2N2 LXZzZXR2bC5vOiAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2 bC5jYyBcDQo+ICAgICQoQ09ORklHX0gpICQoU1lTVEVNX0gpIGNvcmV0eXBl cy5oICQoVE1fSCkgJChSVExfSCkgJChSRUdTX0gpIFwNCj4gICAgJChUQVJH RVRfSCkgdHJlZS1wYXNzLmggZGYuaCBydGwtc3NhLmggY2ZnY2xlYW51cC5o IGluc24tY29uZmlnLmggXA0KPiAgICBpbnNuLWF0dHIuaCBpbnNuLW9waW5p dC5oIHRtLWNvbnN0cnMuaCBjZmdydGwuaCBjZmdhbmFsLmggbGNtLmggXA0K PiAtICBwcmVkaWN0LmggcHJvZmlsZS1jb3VudC5oICQoc3JjZGlyKS9jb25m aWcvcmlzY3YvcmlzY3YtdnNldHZsLmgNCj4gKyAgcHJlZGljdC5oIHByb2Zp bGUtY291bnQuaCAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2 bC5oIFwNCj4gKyAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12c2V0 dmwuZGVmDQogDQpUaGlzIHNob3VsZCBiZSBhIHNlcGVyYXRlIGZpeCBhbmQg YmFja3BvcnQgdG8gR0NDIDEzIGFzIHdlbGwsDQpwcmUtYXBwcm92ZSBmb3Ig Ym90aCBtYXN0ZXIgYW5kIEdDQy0xMyBicmFuY2ggZm9yIHRoaXMgZml4Lg0K IA0KPiAgICAgICAgICQoQ09NUElMRVIpIC1jICQoQUxMX0NPTVBJTEVSRkxB R1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xVREVTKSBcDQo+ICAgICAgICAg ICAgICAgICAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZzZXR2bC5j Yw0KIA0K ------=_001_NextPart171544373200_=------