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 6EECF3858D33 for ; Tue, 31 Oct 2023 02:46:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6EECF3858D33 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 6EECF3858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=18.132.163.193 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698720431; cv=none; b=pHDMHAZnKcw5iaov2K+ewykNHv5hgR8KpZ4CVXuuMIU+DgmnonE4zhAxng13UBBUqZ+hIY5n4gLnLuEQ/HpRYPPdO6ZemtSzWLM/kgV1bI835tf/9vJczEcNQWD4nfK2eFT7uEWMjnkrShXNyp8LvsrqP87B8jwlrhfkA0SKN04= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1698720431; c=relaxed/simple; bh=ZcMDdl34u5rgvdDaqnCL0yFu5Z8gZEcDuE3WbU3yOL8=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=kaCsWWhl/iF0iDmZ1ln7jgovgyg4McGiy7S6gsdHgo+Fb4jP78ejiluNFTV7BxTzKRxfvmwfGqF68qF5ybzBcVeHYlnIBf75AuBBElHloiufTJBC6Z9VySpHzl3WoK4NJqVK/5IT7I1zEbBBUNJZnVG18qi2H2UxGnD7hJVOb+M= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp67t1698720405twls2i6f Received: from LAPTOP-EPITNQBU ( [113.104.214.30]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 31 Oct 2023 10:46:44 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: ERSZEewZJuneH3VRYKiQ6aLi01kAanHGB5oHLqx4RIV0HTuesEG1WLr13ZMpD V8oBy/qmfZtOzQnhw9ktkmbCAo5rNGA/Gq997khr6BxvPm2koc7APdyoSD9ZNv+qvAW3IQJ nYES0AE4fFlsZ21aPy3IX7ojTEXZBDRIH4W9Yu3K8fbXZdyhpYLLLnaFoHpNfc1i25bihUk vUAK2RxsJ6eGTarWXOQnpF8XQEbNobczhhmFTmUPwZISuBp7EbyWixx4e83uUZqEDZ002gv xkYtpS1ADk3+0pYo486BID3v3Jl1zz+Q6uSKLBJm2sX15LJHzyNad2TABsgdSuJ0Pm8kWVk 8WCaiBRwS9ScKxxVj5V+0nPfJIwJfr646d38BlOrdN6jlhv3+HPiEe6oeAgehw/EBM9kFCd 0wfQnKcfBkoUlzXP2ipBvOn22wOFPxPL X-QQ-GoodBg: 2 X-BIZMAIL-ID: 17125408461803852887 Date: Tue, 31 Oct 2023 10:46:44 +0800 From: "juzhe.zhong@rivai.ai" To: "Li Xu" , gcc-patches Cc: kito.cheng , palmer , "Li Xu" Subject: Re: [PATCH V5] RISC-V: Implement RESOLVE_OVERLOADED_BUILTIN for RVV intrinsic References: <20231031022436.18525-1-xuli1@eswincomputing.com> X-Priority: 3 X-GUID: 52F0417A-3100-4F69-AFB1-25E7BB3FA044 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart463116256637_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,KAM_SHORT,MIME_BASE64_TEXT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SCC_10_SHORT_WORD_LINES,SCC_20_SHORT_WORD_LINES,SCC_35_SHORT_WORD_LINES,SCC_5_SHORT_WORD_LINES,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_NextPart463116256637_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 K3N0YXRpYyBib29sCittYXliZV9yZXF1aXJlX2ZybV9wIChmdW5jdGlvbl9p bnN0YW5jZSAmaW5zdGFuY2UpCit7CisgIHJldHVybiBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2ZndyZWR1c3VtCisJIHx8IGluc3RhbmNlLmJhc2UgPT0g YmFzZXM6OnZmd3JlZG9zdW0gfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dmZhZGQKKwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3c3ViIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tc2FjCisJIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZmd211bAorCSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2ZmN2dF94IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmY3Z0X2YK KwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZjdnRfeHUgfHwgaW5z dGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bXNhYworCSB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZndtYWNjIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmd2N2dF94CisJIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZm d2FkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnN1YgorCSB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnNxcnQgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZyZWR1c3VtCisJIHx8IGluc3RhbmNlLmJhc2UgPT0g YmFzZXM6OnZmcnN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnJl ZG9zdW0KKwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZyZWM3IHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcmRpdgorCSB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm5tc3ViIHx8IGluc3RhbmNlLmJhc2UgPT0g YmFzZXM6OnZmbm1zYWMKKwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6 dmZubWFkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tYWNjCisJ IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2dF9mIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94CisJIHx8IGluc3RhbmNlLmJh c2UgPT0gYmFzZXM6OnZmbmN2dF94dSB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2Zm11bAorCSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1z dWIgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZtc2FjCisJIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbWFkZCB8fCBpbnN0YW5jZS5iYXNl ID09IGJhc2VzOjp2Zm1hY2MKKwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZkaXYgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3Y3Z0X3h1 OworfQorCitzdGF0aWMgYm9vbAorbWF5YmVfcmVxdWlyZV92eHJtX3AgKGZ1 bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSkKK3sKKyAgcmV0dXJuIGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZhYWRkIHx8IGluc3RhbmNlLmJhc2UgPT0g YmFzZXM6OnZhYWRkdQorCSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 YXN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2YXN1YnUKKwkgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNzcmwgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dnNzcmEKKwkgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dnNtdWwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dm5jbGlwdQor CSB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2bmNsaXA7Cit9DQoNCkkg YW0gc29ycnkgdGhhdCBJIGRpZG4ndCB3YXMgd3JvbmcgYmVmb3JlLg0KDQpD b3VsZCB3ZSBhZGQgbWF5YmVfcmVxdWlyZV9mcm1fcCBhbmQgbWF5YmVfcmVx dWlyZV92eHJtX3AgaW50byBmdW5jdGlvbl9iYXNlID8NCkJ5IGRlZmF1bHQg aXQgaXMgRkFMU0UuDQoNCkluIHJpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNl cy5jYywgc2V0IHRoZW0gaW4gZWFjaCBjb3JyZXNwb25kaW5nIGZ1bmN0aW9u X2Jhc2U6DQoNCkZvciBleGFtcGxlOg0KDQpjbGFzcyB2c211bCA6OiBwdWJs aWMgZnVuY3Rpb25fYmFzZQ0KYm9vbCBtYXliZV9yZXF1aXJlX3Z4cm1fcCAo KSBjb25zdA0Kew0KICByZXR1cm4gdHJ1ZTsNCn0NCg0KVGhlIGJlbmVmaXRz IGlzIHRoYXQgeW91IG9ubHkgbmVlZCB0byB1c2UgaW5zdGFuY2UuYmFzZS5t YXliZV9yZXF1aXJlX2ZybV9wICgpIG9yIGluc3RhbmNlLmJhc2UubWF5YmVf cmVxdWlyZV92eHJtX3AgKCkNCkFuZCBubyBuZWVkIHRvIGNvbXBhcmUgdGhl bSBvbmUgYnkgb25lLg0KDQpUaGFua3MuDQoNCg0KanV6aGUuemhvbmdAcml2 YWkuYWkNCiANCkZyb206IExpIFh1DQpEYXRlOiAyMDIzLTEwLTMxIDEwOjI0 DQpUbzogZ2NjLXBhdGNoZXMNCkNDOiBraXRvLmNoZW5nOyBwYWxtZXI7IGp1 emhlLnpob25nOyB4dWxpDQpTdWJqZWN0OiBbUEFUQ0ggVjVdIFJJU0MtVjog SW1wbGVtZW50IFJFU09MVkVfT1ZFUkxPQURFRF9CVUlMVElOIGZvciBSVlYg aW50cmluc2ljDQpGcm9tOiB4dWxpIDx4dWxpMUBlc3dpbmNvbXB1dGluZy5j b20+DQogDQpVcGRhdGUgaW4gdjU6DQoqIFNwbGl0IGhhc192eHJtX29yX2Zy bV9wIGludG8gbWF5YmVfcmVxdWlyZV9mcm1fcCBhbmQNCiAgbWF5YmVfcmVx dWlyZV92eHJtX3AuDQoqIEFkanVzdCBjb21tZW50cy4NCiANClVwZGF0ZSBp biB2NDoNCiogUmVtb3ZlIGNsYXNzIGZ1bmN0aW9uX3Jlc29sdmVyLg0KKiBS ZW1vdmUgZnVuY3Rpb24gZ2V0X25vbl9vdmVybG9hZGVkX2luc3RhbmNlLg0K KiBBZGQgb3ZlcmxvYWRlZCBoYXNoIHRyYWl0cyBmb3Igbm9uLW92ZXJsb2Fk ZWQgaW50cmluc2ljLg0KKiBBbGwgb3ZlcmxvYWRlZCBpbnRyaW5zaWNzIGFy ZSBpbXBsZW1lbnRlZCwgYW5kIHRoZSB0ZXN0cyBwYXNzLg0KIA0KVXBkYXRl IGluIHYzOg0KIA0KKiBSZXdyaXRlIGNvbW1lbnQgZm9yIG92ZXJsb2FkZWQg ZnVuY3Rpb24gYWRkLg0KKiBNb3ZlIGdldF9ub25fb3ZlcmxvYWRlZF9pbnN0 YW5jZSB0byBmdW5jdGlvbl9iYXNlLg0KIA0KVXBkYXRlIGluIHYyOg0KIA0K KiBBZGQgZ2V0X25vbl9vdmVybG9hZGVkX2luc3RhbmNlIGZvciBmdW5jdGlv biBpbnN0YW5jZS4NCiogRml4IG92ZXJsb2FkIGNoZWNrIGZvciBwb2xpY3kg ZnVuY3Rpb24uDQoqIEVucmljaCB0aGUgdGVzdCBjYXNlcyBjaGVjay4NCiAN Ck9yaWdpbmFsIGxvZzoNCiANClRoaXMgcGF0Y2ggd291bGQgbGlrZSBhZGQg dGhlIGZyYW1ld29yayB0byBzdXBwb3J0IHRoZSBSVlYgb3ZlcmxvYWRlZA0K aW50cmluc2ljIEFQSSBpbiByaXNjdi14eHgteHh4LWdjYywgbGlrZSByaXNj di14eHgteHh4LWcrKyBkaWQuDQogDQpIb3dldmVyLCBpdCBhbG1vc3QgbGV2 ZXJhZ2UgdGhlIGhvb2sgVEFSR0VUX1JFU09MVkVfT1ZFUkxPQURFRF9CVUlM VElODQp3aXRoIGJlbG93IHN0ZXBzLg0KIA0KKiBSZWdpc3RlciBvdmVybG9h ZGVkIGZ1bmN0aW9ucy4NCiogQWRkIGZ1bmN0aW9uX3Jlc29sdmVyIGZvciBv dmVybG9hZGVkIGZ1bmN0aW9uIHJlc29sdmluZy4NCiogQWRkIHJlc29sdmUg QVBJIGZvciBmdW5jdGlvbiBzaGFwZSB3aXRoIGRlZmF1bHQgaW1wbGVtZW50 YXRpb24uDQoqIEltcGxlbWVudCBIT09LIGZvciBuYXZpZ2F0aW5nIHRoZSBv dmVybG9hZGVkIEFQSSB0byBub24tb3ZlcmxvYWRlZCBBUEkuDQogDQpnY2Mv Q2hhbmdlTG9nOg0KIA0KICAgICAgICAqIGNvbmZpZy9yaXNjdi9yaXNjdi1j LmNjIChyaXNjdl9yZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbik6IE5ldyBm dW5jdGlvbiBmb3IgdGhlIGhvb2suDQogICAgICAgIChyaXNjdl9yZWdpc3Rl cl9wcmFnbWFzKTogUmVnaXN0ZXIgdGhlIGhvb2suDQogICAgICAgICogY29u ZmlnL3Jpc2N2L3Jpc2N2LXByb3Rvcy5oIChyZXNvbHZlX292ZXJsb2FkZWRf YnVpbHRpbik6IE5ldyBkZWNsLg0KICAgICAgICAqIGNvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIChidWlsZF9vbmUpOiBS ZWdpc3RlciBvdmVybG9hZGVkIGZ1bmN0aW9uLg0KICAgICAgICAqIGNvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgKHN0cnVjdCBub25f b3ZlcmxvYWRlZF9yZWdpc3RlcmVkX2Z1bmN0aW9uX2hhc2hlcik6DQogICAg ICAgICAgTmV3IGhhc2ggdGFibGUuDQogICAgICAgIChmdW5jdGlvbl9idWls ZGVyOjphZGRfZnVuY3Rpb24pOiBBZGQgb3ZlcmxvYWRlZCBhcmcuDQogICAg ICAgIChmdW5jdGlvbl9idWlsZGVyOjphZGRfdW5pcXVlX2Z1bmN0aW9uKTog TWFwIG92ZXJsb2FkZWQgZnVuY3Rpb24gdG8gbm9uLW92ZXJsb2FkZWQgZnVu Y3Rpb24uDQogICAgICAgIChmdW5jdGlvbl9idWlsZGVyOjphZGRfb3Zlcmxv YWRlZF9mdW5jdGlvbik6IE5ldyBBUEkgaW1wbC4NCiAgICAgICAgKHJlZ2lz dGVyZWRfZnVuY3Rpb246Om92ZXJsb2FkZWRfaGFzaCk6IENhbGN1bGF0ZSBo YXNoIHZhbHVlLg0KICAgICAgICAobWF5YmVfcmVxdWlyZV9mcm1fcCk6IE5l dyBmdW5jdGlvbiBpbXBsLg0KICAgICAgICAobWF5YmVfcmVxdWlyZV92eHJt X3ApOiBEaXR0by4NCiAgICAgICAgKGhhc192eHJtX29yX2ZybV9wKTogRGl0 dG8uDQogICAgICAgIChub25fb3ZlcmxvYWRlZF9yZWdpc3RlcmVkX2Z1bmN0 aW9uX2hhc2hlcjo6aGFzaCk6IERpdHRvLg0KICAgICAgICAobm9uX292ZXJs b2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI6OmVxdWFsKTogRGl0 dG8uDQogICAgICAgIChoYW5kbGVfcHJhZ21hX3ZlY3Rvcik6IEFsbG9jYXRl IHNwYWNlIGZvciBoYXNoIHRhYmxlLg0KICAgICAgICAocmVzb2x2ZV9vdmVy bG9hZGVkX2J1aWx0aW4pOiBOZXcgZnVuY3Rpb24gaW1wbC4NCiAgICAgICAg KiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmg6IEFkZCBh ZGRpdGlvbmFsIHBhcmFtZXRlcnMgdG8gYWRkX2Z1bmN0aW9uLg0KIA0KZ2Nj L3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6DQogDQogICAgICAgICogZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmFkZC5jOiBOZXcg dGVzdC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnYzMl92ZmFkZC5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0 X3ZzZXQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmM6IE5l dyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjMyX3Ztdi5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92cmVp bnRlcnByZXQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jOiBOZXcgdGVz dC4NCiAgICAgICAgKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfcnY2NF92ZmFkZC5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92Z2V0X3Zz ZXQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmxveHNlZzJlaTE2LmM6IE5ldyB0 ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3Ztdi5jOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92cmVpbnRl cnByZXQuYzogTmV3IHRlc3QuDQogICAgICAgICogZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3ZhZGQuaDogTmV3IHRlc3QuDQogICAg ICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zm YWRkLmg6IE5ldyB0ZXN0Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaDogTmV3IHRlc3QuDQog ICAgICAgICogZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3Zsb3hzZWcyZWkxNi5oOiBOZXcgdGVzdC4NCiAgICAgICAgKiBnY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12Lmg6IE5ldyB0ZXN0 Lg0KICAgICAgICAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF92cmVpbnRlcnByZXQuaDogTmV3IHRlc3QuDQogDQpTaWduZWQtb2Zm LWJ5OiBMaSBYdSA8eHVsaTFAZXN3aW5jb21wdXRpbmcuY29tPg0KQ28tQXV0 aG9yZWQtQnk6IFBhbiBMaSA8cGFuMi5saUBpbnRlbC5jb20+DQotLS0NCmdj Yy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYyAgICAgICAgICAgICAgICAgICB8 ICAzNiArKy0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggICAg ICAgICAgICAgICB8ICAgMSArDQouLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXNoYXBlcy5jYyAgICAgfCAgIDEgKw0KZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgICAgIHwgMjU5ICsrKysrKysr KysrKysrKysrLQ0KZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuaCAgICAgIHwgICA1ICstDQouLi4vcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3ZhZGQuYyAgICAgfCAgMTIgKw0KLi4uL3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnYzMl92ZmFkZC5jICAgIHwgIDEyICsNCi4u Li9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmMgICAgICB8 ICAgNyArDQouLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zsb3hzZWcy ZWkxNi5jICAgfCAgMTEgKw0KLi4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnYzMl92bXYuYyAgICAgIHwgIDEwICsNCi4uLi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2MzJfdnJlaW50ZXJwcmV0LmMgICB8ICAxMCArDQouLi4vcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3ZhZGQuYyAgICAgfCAgMTEg Kw0KLi4uL3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92ZmFkZC5j ICAgIHwgIDExICsNCi4uLi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdl dF92c2V0LmMgICAgICB8ICAgNiArDQouLi4vcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3Zsb3hzZWcyZWkxNi5jICAgfCAgMTAgKw0KLi4uL3Jpc2N2L3J2 di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYyAgICAgIHwgIDEwICsNCi4u Li9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmMgICB8 ICAgOSArDQouLi4vcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92YWRkLmgg ICAgICAgICAgfCAgNTkgKysrKw0KLi4uL3Jpc2N2L3J2di9iYXNlL292ZXJs b2FkZWRfdmZhZGQuaCAgICAgICAgIHwgIDY3ICsrKysrDQouLi4vcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCAgICAgfCAgMjcgKysN Ci4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5o ICB8ICAzOSArKysNCi4uLi9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zt di5oICAgICAgICAgICB8ICAyNiArKw0KLi4uL3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmggIHwgIDI5ICsrDQoyMyBmaWxlcyBj aGFuZ2VkLCA2NTkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCmNy ZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlz Y3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYw0KY3JlYXRlIG1v ZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv YmFzZS9vdmVybG9hZGVkX3J2MzJfdmZhZGQuYw0KY3JlYXRlIG1vZGUgMTAw NjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmdldF92c2V0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0 NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjMyX3Zsb3hzZWcyZWkxNi5jDQpjcmVhdGUgbW9kZSAxMDA2 NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292 ZXJsb2FkZWRfcnYzMl92bXYuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdnJlaW50ZXJwcmV0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRl ZF9ydjY0X3ZhZGQuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRf dmZhZGQuYw0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92 c2V0LmMNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjY0X3Zsb3hzZWcy ZWkxNi5jDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bXYuYw0K Y3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmMN CmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92YWRkLmgNCmNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF92ZmFkZC5oDQpjcmVhdGUgbW9kZSAxMDA2NDQgZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdmdldF92c2V0LmgNCmNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bG94 c2VnMmVpMTYuaA0KY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Ztdi5oDQpj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgNCiANCmRp ZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MgYi9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2MNCmluZGV4IDI4MzA1MmFlMzEzLi5i ZWRmNzIxNzM5MCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtYy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi1jLmNjDQpA QCAtMjE1LDE2ICsyMTUsNTAgQEAgcmlzY3ZfY2hlY2tfYnVpbHRpbl9jYWxs IChsb2NhdGlvbl90IGxvYywgdmVjPGxvY2F0aW9uX3Q+IGFyZ19sb2MsIHRy ZWUgZm5kZWNsLA0KICAgICBjYXNlIFJJU0NWX0JVSUxUSU5fVkVDVE9SOg0K ICAgICAgIHJldHVybiByaXNjdl92ZWN0b3I6OmNoZWNrX2J1aWx0aW5fY2Fs bCAobG9jLCBhcmdfbG9jLCBzdWJjb2RlLA0KLSAgICAgICAgb3JpZ19mbmRl Y2wsIG5hcmdzLCBhcmdzKTsNCisgICAgICAgIGZuZGVjbCwgbmFyZ3MsIGFy Z3MpOw0KICAgICB9DQogICBnY2NfdW5yZWFjaGFibGUgKCk7DQp9DQorLyog SW1wbGVtZW50IFRBUkdFVF9SRVNPTFZFX09WRVJMT0FERURfQlVJTFRJTi4g ICovDQorc3RhdGljIHRyZWUNCityaXNjdl9yZXNvbHZlX292ZXJsb2FkZWRf YnVpbHRpbiAodW5zaWduZWQgaW50IHVuY2FzdF9sb2NhdGlvbiwgdHJlZSBm bmRlY2wsDQorICAgdm9pZCAqdW5jYXN0X2FyZ2xpc3QpDQorew0KKyAgdmVj PHRyZWUsIHZhX2djPiBlbXB0eSA9IHt9Ow0KKyAgbG9jYXRpb25fdCBsb2Mg PSAobG9jYXRpb25fdCkgdW5jYXN0X2xvY2F0aW9uOw0KKyAgdmVjPHRyZWUs IHZhX2djPiAqYXJnbGlzdCA9ICh2ZWM8dHJlZSwgdmFfZ2M+ICopIHVuY2Fz dF9hcmdsaXN0Ow0KKyAgdW5zaWduZWQgaW50IGNvZGUgPSBERUNMX01EX0ZV TkNUSU9OX0NPREUgKGZuZGVjbCk7DQorICB1bnNpZ25lZCBpbnQgc3ViY29k ZSA9IGNvZGUgPj4gUklTQ1ZfQlVJTFRJTl9TSElGVDsNCisgIHRyZWUgbmV3 X2ZuZGVjbCA9IE5VTExfVFJFRTsNCisNCisgIGlmICghYXJnbGlzdCkNCisg ICAgYXJnbGlzdCA9ICZlbXB0eTsNCisNCisgIHN3aXRjaCAoY29kZSAmIFJJ U0NWX0JVSUxUSU5fQ0xBU1MpDQorICAgIHsNCisgICAgY2FzZSBSSVNDVl9C VUlMVElOX0dFTkVSQUw6DQorICAgICAgYnJlYWs7DQorICAgIGNhc2UgUklT Q1ZfQlVJTFRJTl9WRUNUT1I6DQorICAgICAgbmV3X2ZuZGVjbCA9IHJpc2N2 X3ZlY3Rvcjo6cmVzb2x2ZV9vdmVybG9hZGVkX2J1aWx0aW4gKHN1YmNvZGUs IGFyZ2xpc3QpOw0KKyAgICAgIGJyZWFrOw0KKyAgICBkZWZhdWx0Og0KKyAg ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCisgICAgfQ0KKw0KKyAgaWYgKG5l d19mbmRlY2wgPT0gTlVMTF9UUkVFKQ0KKyAgICByZXR1cm4gbmV3X2ZuZGVj bDsNCisNCisgIHJldHVybiBidWlsZF9mdW5jdGlvbl9jYWxsX3ZlYyAobG9j LCB2TlVMTCwgbmV3X2ZuZGVjbCwgYXJnbGlzdCwgTlVMTCwNCisgICBmbmRl Y2wpOw0KK30NCisNCi8qIEltcGxlbWVudCBSRUdJU1RFUl9UQVJHRVRfUFJB R01BUy4gICovDQp2b2lkDQpyaXNjdl9yZWdpc3Rlcl9wcmFnbWFzICh2b2lk KQ0Kew0KKyAgdGFyZ2V0bS5yZXNvbHZlX292ZXJsb2FkZWRfYnVpbHRpbiA9 IHJpc2N2X3Jlc29sdmVfb3ZlcmxvYWRlZF9idWlsdGluOw0KICAgdGFyZ2V0 bS5jaGVja19idWlsdGluX2NhbGwgPSByaXNjdl9jaGVja19idWlsdGluX2Nh bGw7DQogICBjX3JlZ2lzdGVyX3ByYWdtYSAoInJpc2N2IiwgImludHJpbnNp YyIsIHJpc2N2X3ByYWdtYV9pbnRyaW5zaWMpOw0KfQ0KZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtcHJvdG9zLmggYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LXByb3Rvcy5oDQppbmRleCAyOTI2ZDVkNTBkNS4uNTgz NjMzM2JjNWQgMTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXByb3Rvcy5oDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXByb3Rv cy5oDQpAQCAtNDMwLDYgKzQzMCw3IEBAIGdpbXBsZSAqZ2ltcGxlX2ZvbGRf YnVpbHRpbiAodW5zaWduZWQgaW50LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAq LCBnY2FsbCAqKTsNCnJ0eCBleHBhbmRfYnVpbHRpbiAodW5zaWduZWQgaW50 LCB0cmVlLCBydHgpOw0KYm9vbCBjaGVja19idWlsdGluX2NhbGwgKGxvY2F0 aW9uX3QsIHZlYzxsb2NhdGlvbl90PiwgdW5zaWduZWQgaW50LA0KICAgdHJl ZSwgdW5zaWduZWQgaW50LCB0cmVlICopOw0KK3RyZWUgcmVzb2x2ZV9vdmVy bG9hZGVkX2J1aWx0aW4gKHVuc2lnbmVkIGludCwgdmVjPHRyZWUsIHZhX2dj PiAqKTsNCmJvb2wgY29uc3RfdmVjX2FsbF9zYW1lX2luX3JhbmdlX3AgKHJ0 eCwgSE9TVF9XSURFX0lOVCwgSE9TVF9XSURFX0lOVCk7DQpib29sIGxlZ2l0 aW1pemVfbW92ZSAocnR4LCBydHggKik7DQp2b2lkIGVtaXRfdmxtYXhfdnNl dHZsIChtYWNoaW5lX21vZGUsIHJ0eCk7DQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjDQppbmRleCAwYmRhOTM0YWUxNi4uZWU1NzA0NThjZTkgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYw0KQEAgLTQ5LDYgKzQ5LDcgQEAgYnVpbGRf b25lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9ncm91 cF9pbmZvICZncm91cCwNCiAgICAgZ3JvdXAub3BzX2luZm9zLnR5cGVzW3Zl Y190eXBlX2lkeF0uaW5kZXgpOw0KICAgYi5hbGxvY2F0ZV9hcmd1bWVudF90 eXBlcyAoZnVuY3Rpb25faW5zdGFuY2UsIGFyZ3VtZW50X3R5cGVzKTsNCiAg IGIuYXBwbHlfcHJlZGljYXRpb24gKGZ1bmN0aW9uX2luc3RhbmNlLCByZXR1 cm5fdHlwZSwgYXJndW1lbnRfdHlwZXMpOw0KKyAgYi5hZGRfb3ZlcmxvYWRl ZF9mdW5jdGlvbiAoZnVuY3Rpb25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7 DQogICBiLmFkZF91bmlxdWVfZnVuY3Rpb24gKGZ1bmN0aW9uX2luc3RhbmNl LCAoKmdyb3VwLnNoYXBlKSwgcmV0dXJuX3R5cGUsDQphcmd1bWVudF90eXBl cyk7DQp9DQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5jYw0KaW5kZXggNWQ0ZGMyNjRmYTYuLjVjNzBmN2E5 YzZjIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmNjDQpAQCAtODAsNiArODAsMzIgQEAgcHVibGlj Og0KICAgLyogVGhlIGRlY2wgaXRzZWxmLiAgKi8NCiAgIHRyZWUgR1RZICgo c2tpcCkpIGRlY2w7DQorDQorICAvKiBUaGUgb3ZlcmxvYWQgaGFzaCBvZiBu b24tb3ZlcmxvYWRlZCBpbnRyaW5zaWMgaXMgZGV0ZXJtaW5lZCBieQ0KKyAg ICAgdGhlIG92ZXJsb2FkIG5hbWUgYW5kIGFyZ3VtZW50IGxpc3QuIEFkZGlu ZyB0aGUgb3ZlcmxvYWQgbmFtZSB0bw0KKyAgICAgdGhlIGhhc2ggaXMgYWxz byB0byBhZGRyZXNzIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uczoNCisgICAg IHZpbnQxNm1mNF90ICBfX3Jpc2N2X3ZyZWludGVycHJldF9pMTZtZjQgKHZm bG9hdDE2bWY0X3Qgc3JjKTsNCisgICAgIHZ1aW50MTZtZjRfdCBfX3Jpc2N2 X3ZyZWludGVycHJldF91MTZtZjQgKHZmbG9hdDE2bWY0X3Qgc3JjKTsNCisg ICAgIFRoZSBiYXNlLCBzaGFwZSBhbmQgYXJndW1lbnQgbGlzdCBvZiB0aGUg dnJlaW50ZXJwcmV0IGluc3RhbmNlIGFyZQ0KKyAgICAgdGhlIHNhbWUsIG9u bHkgdGhlIG92ZXJsb2FkIG5hbWUgaXMgZGlmZmVyZW50LiBUaGVyZWZvcmUs IGl0IGlzDQorICAgICBlbm91Z2ggdG8gYWRkIG92ZXJsb2FkX25hbWUgYW5k IGFyZ3VtZW50IGxpc3QgdG8gdGhlIGhhc2ggdmFsdWUuKi8NCisgIGNvbnN0 IGNoYXIgKm92ZXJsb2FkX25hbWU7DQorDQorICAvKiBUaGUgYXJndW1lbnQg bGlzdCBwYXJ0IG9mIHRoZSBoYXNoIHZhbHVlLiBBZGQgdGhlIHVuc2lnbmVk L3NpZ25lZCB0eXBlDQorICAgICBhbmQgbWFjaGluZSBtb2RlIG9mIGVhY2gg YXJndW1lbnQgdG8gdGhlIGhhc2ggdmFsdWUuICovDQorICB2ZWM8dHJlZT4g R1RZICgoc2tpcCkpIGFyZ3VtZW50X3R5cGVzOw0KKw0KKyAgLyogVHJ1ZSBp ZiB0aGUgZGVjbCByZXByZXNlbnRzIGFuIG92ZXJsb2FkZWQgZnVuY3Rpb24g dGhhdCBuZWVkcyB0byBiZQ0KKyAgICAgcmVzb2x2ZWQuICovDQorICBib29s IG92ZXJsb2FkZWRfcDsNCisNCisgIC8qIFRoZSBoYXNoIHZhbHVlIHRvIGlu ZGljYXRlIHRoZSBub24tb3ZlcmxvYWRlZCBmdW5jdGlvbi4gR2VuZXJhdGUg aGFzaCB2YWx1ZQ0KKyAgICAgYmFzZWQgb24gb3ZlcmxvYWRfbmFtZSBhbmQg YXJndW1lbnRfdHlwZXMuICovDQorICBoYXNodmFsX3Qgb3ZlcmxvYWRlZF9o YXNoICgpIGNvbnN0Ow0KKw0KKyAgLyogR2VuZXJhdGUgaGFzaCB2YWx1ZSBi YXNlZCBvbiB0aGUgb3ZlcmxvYWRfbmFtZSBhbmQgdGhlIGFyZ3VtZW50IGxp c3QgcGFzc2VkDQorICAgICBieSB0aGUgdXNlciB3aGVuIGNhbGxpbmcuICov DQorICBoYXNodmFsX3Qgb3ZlcmxvYWRlZF9oYXNoIChjb25zdCB2ZWM8dHJl ZSwgdmFfZ2M+ICYpOw0KfTsNCi8qIEhhc2ggdHJhaXRzIGZvciByZWdpc3Rl cmVkX2Z1bmN0aW9uLiAgKi8NCkBAIC05MSw2ICsxMTcsMTQgQEAgc3RydWN0 IHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyIDogbm9mcmVlX3B0cl9oYXNo PHJlZ2lzdGVyZWRfZnVuY3Rpb24+DQogICBzdGF0aWMgYm9vbCBlcXVhbCAo dmFsdWVfdHlwZSwgY29uc3QgY29tcGFyZV90eXBlICYpOw0KfTsNCisvKiBI YXNoIHRyYWl0cyBmb3Igb3ZlcmxvYWQgcmVnaXN0ZXJlZF9mdW5jdGlvbi4g Ki8NCitzdHJ1Y3Qgbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlv bl9oYXNoZXINCisgIDogbm9mcmVlX3B0cl9oYXNoPHJlZ2lzdGVyZWRfZnVu Y3Rpb24+DQorew0KKyAgc3RhdGljIGhhc2h2YWxfdCBoYXNoICh2YWx1ZV90 eXBlKTsNCisgIHN0YXRpYyBib29sIGVxdWFsICh2YWx1ZV90eXBlLCBjb25z dCBjb21wYXJlX3R5cGUgJik7DQorfTsNCisNCi8qIFN0YXRpYyBpbmZvcm1h dGlvbiBhYm91dCBlYWNoIFJWViB0eXBlLiAgKi8NCnN0YXRpYyBDT05TVEVY UFIgY29uc3QgdmVjdG9yX3R5cGVfaW5mbyB2ZWN0b3JfdHlwZXNbXSA9IHsN CiNkZWZpbmUgREVGX1JWVl9UWVBFKE5BTUUsIE5DSEFSUywgQUJJX05BTUUs IEFSR1MuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICBcDQpAQCAtMjYx MSw2ICsyNjQ1LDEyIEBAIHN0YXRpYyBHVFkgKCgpKSB2ZWM8cmVnaXN0ZXJl ZF9mdW5jdGlvbiAqLCB2YV9nYz4gKnJlZ2lzdGVyZWRfZnVuY3Rpb25zOw0K ICAgIG92ZXJsb2FkZWQgZnVuY3Rpb25zLiAgKi8NCnN0YXRpYyBoYXNoX3Rh YmxlPHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyPiAqZnVuY3Rpb25fdGFi bGU7DQorLyogQWxsIHJlZ2lzdGVyZWQgZnVuY3Rpb24gZGVjbHMsIGhhc2hl ZCBvbiBvdmVybG9hZF9uYW1lIGFuZCBhcmd1bWVudCBsaXN0DQorICAgb2Yg dGhlIHJlZ2lzdGVyZWRfZnVuY3Rpb24uICBUaGlzIGlzIHVzZWQgZm9yIGxv b2tpbmcgdXAgaW1wbGVtZW50YXRpb25zDQorICAgb2Ygbm9uLW92ZXJsb2Fk ZWQgZnVuY3Rpb25zLiAqLw0KK3N0YXRpYyBoYXNoX3RhYmxlPG5vbl9vdmVy bG9hZGVkX3JlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyPg0KKyAgKm5vbl9v dmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlOw0KKw0KLyogUkFJSSBjbGFzcyBm b3IgZW5hYmxpbmcgZW5vdWdoIFJWViBmZWF0dXJlcyB0byBkZWZpbmUgdGhl IGJ1aWx0LWluDQogICAgdHlwZXMgYW5kIGltcGxlbWVudCB0aGUgcmlzY3Zf dmVjdG9yLmggcHJhZ21hLg0KQEAgLTMzNjksNyArMzQwOSw5IEBAIGZ1bmN0 aW9uX2J1aWxkZXI6OmdldF9hdHRyaWJ1dGVzIChjb25zdCBmdW5jdGlvbl9p bnN0YW5jZSAmaW5zdGFuY2UpDQpyZWdpc3RlcmVkX2Z1bmN0aW9uICYNCmZ1 bmN0aW9uX2J1aWxkZXI6OmFkZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLA0KY29uc3QgY2hhciAqbmFtZSwgdHJlZSBm bnR5cGUsIHRyZWUgYXR0cnMsDQotIGJvb2wgcGxhY2Vob2xkZXJfcCkNCisg Ym9vbCBwbGFjZWhvbGRlcl9wLCBjb25zdCBjaGFyICpvdmVybG9hZF9uYW1l LA0KKyBjb25zdCB2ZWM8dHJlZT4gJmFyZ3VtZW50X3R5cGVzLA0KKyBib29s IG92ZXJsb2FkZWRfcCA9IGZhbHNlKQ0Kew0KICAgdW5zaWduZWQgaW50IGNv ZGUgPSB2ZWNfc2FmZV9sZW5ndGggKHJlZ2lzdGVyZWRfZnVuY3Rpb25zKTsN CiAgIGNvZGUgPSAoY29kZSA8PCBSSVNDVl9CVUlMVElOX1NISUZUKSArIFJJ U0NWX0JVSUxUSU5fVkVDVE9SOw0KQEAgLTMzOTUsNiArMzQzNyw5IEBAIGZ1 bmN0aW9uX2J1aWxkZXI6OmFkZF9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLA0KICAgcmVnaXN0ZXJlZF9mdW5jdGlvbiAm cmZuID0gKmdnY19hbGxvYzxyZWdpc3RlcmVkX2Z1bmN0aW9uPiAoKTsNCiAg IHJmbi5pbnN0YW5jZSA9IGluc3RhbmNlOw0KICAgcmZuLmRlY2wgPSBkZWNs Ow0KKyAgcmZuLm92ZXJsb2FkX25hbWUgPSBvdmVybG9hZF9uYW1lID8geHN0 cmR1cCAob3ZlcmxvYWRfbmFtZSkgOiBOVUxMOw0KKyAgcmZuLmFyZ3VtZW50 X3R5cGVzID0gYXJndW1lbnRfdHlwZXM7DQorICByZm4ub3ZlcmxvYWRlZF9w ID0gb3ZlcmxvYWRlZF9wOw0KICAgdmVjX3NhZmVfcHVzaCAocmVnaXN0ZXJl ZF9mdW5jdGlvbnMsICZyZm4pOw0KICAgcmV0dXJuIHJmbjsNCkBAIC0zNDE1 LDYgKzM0NjAsMTAgQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3VuaXF1ZV9m dW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0K ICAgaWYgKCFjaGVja19yZXF1aXJlZF9leHRlbnNpb25zIChpbnN0YW5jZSkp DQogICAgIHJldHVybjsNCisgIC8qIEFsc28gYWRkIHRoZSBmdW5jdGlvbiB1 bmRlciBpdHMgb3ZlcmxvYWRlZCBhbGlhcywgaWYgd2Ugd2FudA0KKyAgICAg YSBzZXBhcmF0ZSBkZWNsIGZvciBlYWNoIGluc3RhbmNlIG9mIGFuIG92ZXJs b2FkZWQgZnVuY3Rpb24uICAqLw0KKyAgY2hhciAqb3ZlcmxvYWRfbmFtZSA9 IHNoYXBlLT5nZXRfbmFtZSAoKnRoaXMsIGluc3RhbmNlLCB0cnVlKTsNCisN CiAgIC8qIEFkZCB0aGUgZnVuY3Rpb24gdW5kZXIgaXRzIGZ1bGwgKHVuaXF1 ZSkgbmFtZS4gICovDQogICBjaGFyICpuYW1lID0gc2hhcGUtPmdldF9uYW1l ICgqdGhpcywgaW5zdGFuY2UsIGZhbHNlKTsNCiAgIHRyZWUgZm50eXBlDQpA QCAtMzQyMiw3ICszNDcxLDggQEAgZnVuY3Rpb25fYnVpbGRlcjo6YWRkX3Vu aXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3Rh bmNlLA0KYXJndW1lbnRfdHlwZXMuYWRkcmVzcyAoKSk7DQogICB0cmVlIGF0 dHJzID0gZ2V0X2F0dHJpYnV0ZXMgKGluc3RhbmNlKTsNCiAgIHJlZ2lzdGVy ZWRfZnVuY3Rpb24gJnJmbg0KLSAgICA9IGFkZF9mdW5jdGlvbiAoaW5zdGFu Y2UsIG5hbWUsIGZudHlwZSwgYXR0cnMsIGZhbHNlKTsNCisgICAgPSBhZGRf ZnVuY3Rpb24gKGluc3RhbmNlLCBuYW1lLCBmbnR5cGUsIGF0dHJzLCBmYWxz ZSwgb3ZlcmxvYWRfbmFtZSwNCisgICAgIGFyZ3VtZW50X3R5cGVzLmNvcHkg KCkpOw0KICAgLyogRW50ZXIgdGhlIGZ1bmN0aW9uIGludG8gdGhlIGhhc2gg dGFibGUuICAqLw0KICAgaGFzaHZhbF90IGhhc2ggPSBpbnN0YW5jZS5oYXNo ICgpOw0KQEAgLTM0MzEsMTkgKzM0ODEsNDUgQEAgZnVuY3Rpb25fYnVpbGRl cjo6YWRkX3VuaXF1ZV9mdW5jdGlvbiAoY29uc3QgZnVuY3Rpb25faW5zdGFu Y2UgJmluc3RhbmNlLA0KICAgZ2NjX2Fzc2VydCAoISpyZm5fc2xvdCk7DQog ICAqcmZuX3Nsb3QgPSAmcmZuOw0KLSAgLyogQWxzbyBhZGQgdGhlIGZ1bmN0 aW9uIHVuZGVyIGl0cyBvdmVybG9hZGVkIGFsaWFzLCBpZiB3ZSB3YW50DQot ICAgICBhIHNlcGFyYXRlIGRlY2wgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYW4g b3ZlcmxvYWRlZCBmdW5jdGlvbi4gICovDQotICBjaGFyICpvdmVybG9hZF9u YW1lID0gc2hhcGUtPmdldF9uYW1lICgqdGhpcywgaW5zdGFuY2UsIHRydWUp Ow0KICAgaWYgKG92ZXJsb2FkX25hbWUpDQogICAgIHsNCiAgICAgICAvKiBB dHRyaWJ1dGUgbGlzdHMgc2hvdWxkbid0IGJlIHNoYXJlZC4gICovDQogICAg ICAgdHJlZSBhdHRycyA9IGdldF9hdHRyaWJ1dGVzIChpbnN0YW5jZSk7DQog ICAgICAgYm9vbCBwbGFjZWhvbGRlcl9wID0gIW1fZGlyZWN0X292ZXJsb2Fk czsNCi0gICAgICBhZGRfZnVuY3Rpb24gKGluc3RhbmNlLCBvdmVybG9hZF9u YW1lLCBmbnR5cGUsIGF0dHJzLCBwbGFjZWhvbGRlcl9wKTsNCisgICAgICBh ZGRfZnVuY3Rpb24gKGluc3RhbmNlLCBvdmVybG9hZF9uYW1lLCBmbnR5cGUs IGF0dHJzLCBwbGFjZWhvbGRlcl9wLCBOVUxMLA0KKyAgICAgdk5VTEwpOw0K Kw0KKyAgICAgIC8qIEVudGVyIHRoZSBmdW5jdGlvbiBpbnRvIHRoZSBub24t b3ZlcmxvYWRlZCBoYXNoIHRhYmxlLiAgKi8NCisgICAgICBoYXNoID0gcmZu Lm92ZXJsb2FkZWRfaGFzaCAoKTsNCisgICAgICByZm5fc2xvdCA9IG5vbl9v dmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlLT5maW5kX3Nsb3Rfd2l0aF9oYXNo ICgmcmZuLCBoYXNoLA0KKyAgICAgIElOU0VSVCk7DQorICAgICAgZ2NjX2Fz c2VydCAoISpyZm5fc2xvdCk7DQorICAgICAgKnJmbl9zbG90ID0gJnJmbjsN CiAgICAgfQ0KICAgb2JzdGFja19mcmVlICgmbV9zdHJpbmdfb2JzdGFjaywg bmFtZSk7DQp9DQorLyogQWRkIG92ZXJsb2FkZWQgZnVuY3Rpb24gZm9yIGdj Yy4gKi8NCit2b2lkDQorZnVuY3Rpb25fYnVpbGRlcjo6YWRkX292ZXJsb2Fk ZWRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5j ZSwNCisgICAgY29uc3QgZnVuY3Rpb25fc2hhcGUgKnNoYXBlKQ0KK3sNCisg IGlmICghY2hlY2tfcmVxdWlyZWRfZXh0ZW5zaW9ucyAoaW5zdGFuY2UpKQ0K KyAgICByZXR1cm47DQorDQorICBjaGFyICpuYW1lID0gc2hhcGUtPmdldF9u YW1lICgqdGhpcywgaW5zdGFuY2UsIHRydWUpOw0KKw0KKyAgaWYgKG5hbWUp DQorICAgIHsNCisgICAgICAvKiBUbyBhdm9pZCBBUEkgY29uZmxpY3Rpbmcs IHRha2Ugdm9pZCByZXR1cm4gdHlwZSBhbmQgdm9pZCBhcmd1bWVudA0KKyBm b3IgdGhlIG92ZXJsb2FkZWQgZnVuY3Rpb24uICAqLw0KKyAgICAgIHRyZWUg Zm50eXBlID0gYnVpbGRfZnVuY3Rpb25fdHlwZSAodm9pZF90eXBlX25vZGUs IHZvaWRfbGlzdF9ub2RlKTsNCisgICAgICBhZGRfZnVuY3Rpb24gKGluc3Rh bmNlLCBuYW1lLCBmbnR5cGUsIE5VTExfVFJFRSwgbV9kaXJlY3Rfb3Zlcmxv YWRzLCBuYW1lLA0KKyAgICAgdk5VTEwsIHRydWUpOw0KKyAgICAgIG9ic3Rh Y2tfZnJlZSAoJm1fc3RyaW5nX29ic3RhY2ssIG5hbWUpOw0KKyAgICB9DQor fQ0KKw0KZnVuY3Rpb25fY2FsbF9pbmZvOjpmdW5jdGlvbl9jYWxsX2luZm8g KGxvY2F0aW9uX3QgbG9jYXRpb25faW4sDQpjb25zdCBmdW5jdGlvbl9pbnN0 YW5jZSAmaW5zdGFuY2VfaW4sDQp0cmVlIGZuZGVjbF9pbikNCkBAIC0zOTkx LDYgKzQwNjcsMTU1IEBAIHJlZ2lzdGVyZWRfZnVuY3Rpb25faGFzaGVyOjpl cXVhbCAodmFsdWVfdHlwZSB2YWx1ZSwgY29uc3QgY29tcGFyZV90eXBlICZr ZXkpDQogICByZXR1cm4gdmFsdWUtPmluc3RhbmNlID09IGtleTsNCn0NCito YXNodmFsX3QNCityZWdpc3RlcmVkX2Z1bmN0aW9uOjpvdmVybG9hZGVkX2hh c2ggKCkgY29uc3QNCit7DQorICBpbmNoYXNoOjpoYXNoIGg7DQorICB0cmVl IHR5cGU7DQorICB1bnNpZ25lZCBpbnQgdW5zaWduZWRfcCwgbW9kZV9wOw0K KyAgaC5hZGQgKG92ZXJsb2FkX25hbWUsIHN0cmxlbiAob3ZlcmxvYWRfbmFt ZSkpOw0KKyAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBhcmd1bWVu dF90eXBlcy5sZW5ndGggKCk7IGkrKykNCisgICAgew0KKyAgICAgIHR5cGUg PSBhcmd1bWVudF90eXBlc1tpXTsNCisgICAgICB1bnNpZ25lZF9wID0gUE9J TlRFUl9UWVBFX1AgKHR5cGUpID8gVFlQRV9VTlNJR05FRCAoVFJFRV9UWVBF ICh0eXBlKSkNCisgOiBUWVBFX1VOU0lHTkVEICh0eXBlKTsNCisgICAgICBt b2RlX3AgPSBQT0lOVEVSX1RZUEVfUCAodHlwZSkgPyBUWVBFX01PREUgKFRS RUVfVFlQRSAodHlwZSkpDQorICAgICAgOiBUWVBFX01PREUgKHR5cGUpOw0K KyAgICAgIGguYWRkX2ludCAodW5zaWduZWRfcCk7DQorICAgICAgaC5hZGRf aW50IChtb2RlX3ApOw0KKyAgICB9DQorDQorICByZXR1cm4gaC5lbmQgKCk7 DQorfQ0KKw0KK3N0YXRpYyBib29sDQorbWF5YmVfcmVxdWlyZV9mcm1fcCAo ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlKQ0KK3sNCisgIHJldHVybiBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndyZWR1c3VtDQorIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmd3JlZG9zdW0gfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZhZGQNCisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZ3c3ViIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tc2Fj DQorIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd25tYWNjIHx8IGlu c3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmd211bA0KKyB8fCBpbnN0YW5jZS5i YXNlID09IGJhc2VzOjp2ZmN2dF94IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFz ZXM6OnZmY3Z0X2YNCisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZj dnRfeHUgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZ3bXNhYw0KKyB8 fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZndtYWNjIHx8IGluc3RhbmNl LmJhc2UgPT0gYmFzZXM6OnZmd2N2dF94DQorIHx8IGluc3RhbmNlLmJhc2Ug PT0gYmFzZXM6OnZmd2FkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 ZnN1Yg0KKyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2ZnNxcnQgfHwg aW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZyZWR1c3VtDQorIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmcnN1YiB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2ZnJlZG9zdW0NCisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZyZWM3IHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmcmRpdg0K KyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm5tc3ViIHx8IGluc3Rh bmNlLmJhc2UgPT0gYmFzZXM6OnZmbm1zYWMNCisgfHwgaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dmZubWFkZCB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2Zm5tYWNjDQorIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2 dF9mIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94DQorIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbmN2dF94dSB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2Zm11bA0KKyB8fCBpbnN0YW5jZS5iYXNlID09 IGJhc2VzOjp2Zm1zdWIgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmZt c2FjDQorIHx8IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZmbWFkZCB8fCBp bnN0YW5jZS5iYXNlID09IGJhc2VzOjp2Zm1hY2MNCisgfHwgaW5zdGFuY2Uu YmFzZSA9PSBiYXNlczo6dmZkaXYgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNl czo6dmZ3Y3Z0X3h1Ow0KK30NCisNCitzdGF0aWMgYm9vbA0KK21heWJlX3Jl cXVpcmVfdnhybV9wIChmdW5jdGlvbl9pbnN0YW5jZSAmaW5zdGFuY2UpDQor ew0KKyAgcmV0dXJuIGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZhYWRkIHx8 IGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZhYWRkdQ0KKyB8fCBpbnN0YW5j ZS5iYXNlID09IGJhc2VzOjp2YXN1YiB8fCBpbnN0YW5jZS5iYXNlID09IGJh c2VzOjp2YXN1YnUNCisgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNz cmwgfHwgaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNzcmENCisgfHwgaW5z dGFuY2UuYmFzZSA9PSBiYXNlczo6dnNtdWwgfHwgaW5zdGFuY2UuYmFzZSA9 PSBiYXNlczo6dm5jbGlwdQ0KKyB8fCBpbnN0YW5jZS5iYXNlID09IGJhc2Vz Ojp2bmNsaXA7DQorfQ0KKw0KK2Jvb2wNCitoYXNfdnhybV9vcl9mcm1fcCAo ZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLCBjb25zdCB2ZWM8dHJlZSwg dmFfZ2M+ICZhcmdsaXN0KQ0KK3sNCisgIGlmIChtYXliZV9yZXF1aXJlX3Z4 cm1fcCAoaW5zdGFuY2UpDQorICAgICAgfHwgKG1heWJlX3JlcXVpcmVfZnJt X3AgKGluc3RhbmNlKQ0KKyAgICYmIChUUkVFX0NPREUgKFRSRUVfVFlQRSAo YXJnbGlzdFthcmdsaXN0Lmxlbmd0aCAoKSAtIDJdKSkNCisgICAgICAgPT0g SU5URUdFUl9UWVBFKSkpDQorICAgIHJldHVybiB0cnVlOw0KKyAgcmV0dXJu IGZhbHNlOw0KK30NCisNCitoYXNodmFsX3QNCityZWdpc3RlcmVkX2Z1bmN0 aW9uOjpvdmVybG9hZGVkX2hhc2ggKGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4g JmFyZ2xpc3QpDQorew0KKyAgYXJndW1lbnRfdHlwZXMgPSB2TlVMTDsNCisg IHVuc2lnbmVkIGludCBsZW4gPSBhcmdsaXN0Lmxlbmd0aCAoKTsNCisNCisg IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspDQorICAg IHsNCisgICAgICAvKiB2aW50OG0xX3QgX19yaXNjdl92Z2V0X2k4bTEodmlu dDhtMl90IHNyYywgc2l6ZV90IGluZGV4KTsNCisgICAgICBXaGVuIHRoZSB1 c2VyIGNhbGxzIHZnZXQgaW50cmluc2ljLCB0aGUgX19yaXNjdl92Z2V0X2k4 bTEoc3JjLCAxKQ0KKyAgICAgICBmb3JtIGlzIHVzZWQuIFRoZSBjb21waWxl ciByZWNvZ25pemVzIHRoYXQgdGhlIHBhcmFtZXRlciBpbmRleCBpcyBzaWdu ZWQNCisgICAgICAgaW50LCB3aGljaCBpcyBpbmNvbnNpc3RlbnQgd2l0aCBz aXplX3QsIHNvIHRoZSBpbmRleCBpcyBjb252ZXJ0ZWQgdG8NCisgICAgICAg c2l6ZV90IHR5cGUgaW4gb3JkZXIgdG8gZ2V0IGNvcnJlY3QgaGFzaCB2YWx1 ZS4gdmludDhtMl90DQorICAgICAgIF9fcmlzY3ZfdnNldCh2aW50OG0yX3Qg ZGVzdCwgc2l6ZV90IGluZGV4LCB2aW50OG0xX3QgdmFsdWUpOyBUaGUgcmVh c29uDQorICAgICAgIGlzIHRoZSBzYW1lIGFzIGFib3ZlLiAqLw0KKyAgICAg IGlmICgoaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dmdldCAmJiAoaSA9PSAo bGVuIC0gMSkpKQ0KKyAgIHx8IChpbnN0YW5jZS5iYXNlID09IGJhc2VzOjp2 c2V0ICYmIChpID09IChsZW4gLSAyKSkpKQ0KKyBhcmd1bWVudF90eXBlcy5z YWZlX3B1c2ggKHNpemVfdHlwZV9ub2RlKTsNCisgICAgICAvKiBWZWN0b3Ig Zml4ZWQtcG9pbnQgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMgcmVxdWlyaW5n IGFyZ3VtZW50IHZ4cm0uDQorICAgICAgRm9yIGV4YW1wbGU6IHZ1aW50MzJt NF90IF9fcmlzY3ZfdmFhZGR1KHZ1aW50MzJtNF90IHZzMiwNCisgICAgICB2 dWludDMybTRfdCB2czEsIHVuc2lnbmVkIGludCB2eHJtLCBzaXplX3Qgdmwp OyBUaGUgdXNlciBjYWxscyB2YWFkZHUNCisgICAgICBpbnRyaW5zaWMgaW4g dGhlIGZvcm0gb2YgX19yaXNjdl92YWFkZHUodnMyLCB2czEsIDIsIHZsKS4g VGhlIGNvbXBpbGVyDQorICAgICAgcmVjb2duaXplcyB0aGF0IHRoZSBwYXJh bWV0ZXIgdnhybSBpcyBhIHNpZ25lZCBpbnQsIHdoaWNoIGlzIGluY29uc2lz dGVudA0KKyAgICAgIHdpdGggdGhlIHBhcmFtZXRlciB1bnNpZ25lZCBpbnQg dnhybSBkZWNsYXJlZCBieSBpbnRyaW5zaWMsIHNvIHRoZQ0KKyAgICAgIHBh cmFtZXRlciB2eHJtIGlzIGNvbnZlcnRlZCB0byBhbiB1bnNpZ25lZCBpbnQg dHlwZSBpbiBvcmRlciB0byBnZXQNCisgICAgICBjb3JyZWN0IGhhc2ggdmFs dWUuDQorDQorICAgICAgVmVjdG9yIEZsb2F0aW5nLVBvaW50IEluc3RydWN0 aW9ucyByZXF1aXJpbmcgYXJndW1lbnQgZnJtLg0KKyAgICAgIERFRl9SVlZf RlVOQ1RJT04gKHZmYWRkLCBhbHUsIGZ1bGxfcHJlZHMsIGZfdnZ2X29wcykN CisgICAgICBERUZfUlZWX0ZVTkNUSU9OICh2ZmFkZF9mcm0sIGFsdV9mcm0s IGZ1bGxfcHJlZHMsIGZfdnZ2X29wcykNCisgICAgICBUYWtpbmcgdmZhZGQg YXMgYW4gZXhhbXBsZSwgdGhlb3JldGljYWxseSB3ZSBjYW4gYWRkIGJhc2Ug b3Igc2hhcGUgdG8gdGhlDQorICAgICAgaGFzaCB2YWx1ZSB0byBkaXN0aW5n dWlzaCB3aGV0aGVyIHRoZSBmcm0gcGFyYW1ldGVyIGlzIHJlcXVpcmVkLg0K KyAgICAgIHZmbG9hdDMybTFfdCBfX3Jpc2N2X3ZmYWRkKHZmbG9hdDMybTFf dCB2czIsIGZsb2F0MzJfdCByczEsIHNpemVfdCB2bCk7DQorICAgICAgdmZs b2F0MzJtMV90IF9fcmlzY3ZfdmZhZGQodmZsb2F0MzJtMV90IHZzMiwgdmZs b2F0MzJtMV90IHZzMSwgdW5zaWduZWQgaW50DQorICAgICAgZnJtLCBzaXpl X3QgdmwpOw0KKw0KKyAgICAgSG93ZXZlciwgdGhlIGN1cnJlbnQgcmVnaXN0 cmF0aW9uIG1lY2hhbmlzbSBvZiBvdmVybG9hZGVkIGludGluc2ljIGZvciBn Y2MNCisgICAgICBsaW1pdHMgdGhlIGludHJpbnNpYyBvYnRhaW5lZCBieSBl bnRlcmluZyB0aGUgaG9vayB0byBhbHdheXMgYmUgdmZhZGQsIG5vdA0KKyAg ICAgIHZmYWRkX2ZybS4gVGhlcmVmb3JlLCB0aGUgY29ycmVjdCBoYXNoIHZh bHVlIGNhbm5vdCBiZSBvYnRhaW5lZCB0aHJvdWdoIHRoZQ0KKyAgICAgIHBh cmFtZXRlciBsaXN0IGFuZCBvdmVybG9hZCBuYW1lLCBiYXNlIG9yIHNoYXBl Lg0KKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICAgICB8IGluZGV4ICB8IG5h bWUgICAgICAgICAgICAgICAgICAgICAgfCBraW5kICAgICAgICAgICAgICB8 DQorICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgICAgIHwgMTI0NzMzIHwgX19y aXNjdl92ZmFkZCAgICAgICAgICAgICB8IE92ZXJsb2FkZWQgICAgICAgIHwg PC0gSG9vayBmdW4gY29kZQ0KKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICAg ICB8IDEyNDczNSB8ICBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xICAgfCBOb24t b3ZlcmxvYWRlZCAgICB8DQorICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgICAg IHwgMTI0NzM3IHwgX19yaXNjdl92ZmFkZCAgICAgICAgICAgICB8IFBsYWNl aG9sZGVyICAgICAgIHwNCisgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgICAg fCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfA0KKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICAgICB8 IC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQorICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKyAgICAgIHwg MTI1NzM5IHwgX19yaXNjdl92ZmFkZCAgICAgICAgICAgICB8IE92ZXJsb2Fk ZWQgICAgICAgIHwNCisgICAgICArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rDQorICAgICAgfCAx MjU3NDEgfCBfX3Jpc2N2X3ZmYWRkX3Z2X2YzMm0xX3JtIHwgTm9uLW92ZXJs b2FkZWQgICAgfA0KKyAgICAgICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCisgICAgICB8IDEy NTc0MyB8IF9fcmlzY3ZfdmZhZGQgICAgICAgICAgICAgfCBQbGFjZWhvbGRl ciAgICAgICB8DQorICAgICAgKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKw0KKw0KKyAgICAgVGhl cmVmb3JlLCB0aGUgaGFzaCB2YWx1ZSBjYW5ub3QgYmUgYWRkZWQgd2l0aCBi YXNlIG9yIHNoYXBlLCBhbmQgbmVlZHMNCisgICAgICB0byBiZSBkaXN0aW5n dWlzaGVkIGJ5IHdoZXRoZXIgdGhlIHBlbnVsdGltYXRlIHBhcmFtZXRlciBp cyBJTlRFR0VSX1RZUEUuICovDQorICAgICAgZWxzZSBpZiAoaGFzX3Z4cm1f b3JfZnJtX3AgKGluc3RhbmNlLCBhcmdsaXN0KSAmJiAoaSA9PSAobGVuIC0g MikpKQ0KKyBhcmd1bWVudF90eXBlcy5zYWZlX3B1c2ggKHVuc2lnbmVkX3R5 cGVfbm9kZSk7DQorICAgICAgZWxzZQ0KKyBhcmd1bWVudF90eXBlcy5zYWZl X3B1c2ggKFRSRUVfVFlQRSAoYXJnbGlzdFtpXSkpOw0KKyAgICB9DQorICBy ZXR1cm4gb3ZlcmxvYWRlZF9oYXNoICgpOw0KK30NCisNCitpbmxpbmUgaGFz aHZhbF90DQorbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9o YXNoZXI6Omhhc2ggKHZhbHVlX3R5cGUgdmFsdWUpDQorew0KKyAgcmV0dXJu IHZhbHVlLT5vdmVybG9hZGVkX2hhc2ggKCk7DQorfQ0KKw0KK2lubGluZSBi b29sDQorbm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNo ZXI6OmVxdWFsICh2YWx1ZV90eXBlIHZhbHVlLA0KKyAgIGNvbnN0IGNvbXBh cmVfdHlwZSAma2V5KQ0KK3sNCisgIHJldHVybiAoKHN0cmNtcCAodmFsdWUt Pm92ZXJsb2FkX25hbWUsIGtleS0+b3ZlcmxvYWRfbmFtZSkgPT0gMCkNCisg ICAmJiB2YWx1ZS0+b3ZlcmxvYWRlZF9oYXNoICgpID09IGtleS0+b3Zlcmxv YWRlZF9oYXNoICgpKTsNCit9DQorDQovKiBJZiBUWVBFIGlzIGEgYnVpbHQt aW4gdHlwZSBkZWZpbmVkIGJ5IHRoZSBSVlYgQUJJLCByZXR1cm4gdGhlIG1h bmdsZWQgbmFtZSwNCiAgICBvdGhlcndpc2UgcmV0dXJuIE5VTEwuICAqLw0K Y29uc3QgY2hhciAqDQpAQCAtNDEzOSw3ICs0MzY0LDcgQEAgcmVnaXN0ZXJf ZnJtICgpDQp2b2lkDQpoYW5kbGVfcHJhZ21hX3ZlY3RvciAoKQ0Kew0KLSAg aWYgKGZ1bmN0aW9uX3RhYmxlKQ0KKyAgaWYgKGZ1bmN0aW9uX3RhYmxlIHx8 IG5vbl9vdmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlKQ0KICAgICB7DQogICAg ICAgZXJyb3IgKCJkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiAlcXMiLCAicmlz Y3ZfdmVjdG9yLmgiKTsNCiAgICAgICByZXR1cm47DQpAQCAtNDE1Niw2ICs0 MzgxLDggQEAgaGFuZGxlX3ByYWdtYV92ZWN0b3IgKCkNCiAgIC8qIERlZmlu ZSB0aGUgZnVuY3Rpb25zLiAgKi8NCiAgIGZ1bmN0aW9uX3RhYmxlID0gbmV3 IGhhc2hfdGFibGU8cmVnaXN0ZXJlZF9mdW5jdGlvbl9oYXNoZXI+ICgxMDIz KTsNCisgIG5vbl9vdmVybG9hZGVkX2Z1bmN0aW9uX3RhYmxlDQorICAgID0g bmV3IGhhc2hfdGFibGU8bm9uX292ZXJsb2FkZWRfcmVnaXN0ZXJlZF9mdW5j dGlvbl9oYXNoZXI+ICgxMDIzKTsNCiAgIGZ1bmN0aW9uX2J1aWxkZXIgYnVp bGRlcjsNCiAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgQVJSQVlf U0laRSAoZnVuY3Rpb25fZ3JvdXBzKTsgKytpKQ0KICAgICBidWlsZGVyLnJl Z2lzdGVyX2Z1bmN0aW9uX2dyb3VwIChmdW5jdGlvbl9ncm91cHNbaV0pOw0K QEAgLTQyMDgsNiArNDQzNSwyNCBAQCBjaGVja19idWlsdGluX2NhbGwgKGxv Y2F0aW9uX3QgbG9jYXRpb24sIHZlYzxsb2NhdGlvbl90PiwgdW5zaWduZWQg aW50IGNvZGUsDQogICBUUkVFX1RZUEUgKHJmbi5kZWNsKSwgbmFyZ3MsIGFy Z3MpLmNoZWNrICgpOw0KfQ0KK3RyZWUNCityZXNvbHZlX292ZXJsb2FkZWRf YnVpbHRpbiAodW5zaWduZWQgaW50IGNvZGUsIHZlYzx0cmVlLCB2YV9nYz4g KmFyZ2xpc3QpDQorew0KKyAgaWYgKGNvZGUgPj0gdmVjX3NhZmVfbGVuZ3Ro IChyZWdpc3RlcmVkX2Z1bmN0aW9ucykpDQorICAgIHJldHVybiBOVUxMX1RS RUU7DQorDQorICByZWdpc3RlcmVkX2Z1bmN0aW9uICpyZnVuID0gKCpyZWdp c3RlcmVkX2Z1bmN0aW9ucylbY29kZV07DQorDQorICBpZiAoIXJmdW4gfHwg IXJmdW4tPm92ZXJsb2FkZWRfcCkNCisgICAgcmV0dXJuIE5VTExfVFJFRTsN CisNCisgIGhhc2h2YWxfdCBoYXNoID0gcmZ1bi0+b3ZlcmxvYWRlZF9oYXNo ICgqYXJnbGlzdCk7DQorICByZWdpc3RlcmVkX2Z1bmN0aW9uICpyZm4NCisg ICAgPSBub25fb3ZlcmxvYWRlZF9mdW5jdGlvbl90YWJsZS0+ZmluZF93aXRo X2hhc2ggKHJmdW4sIGhhc2gpOw0KKyAgZ2NjX2Fzc2VydCAocmZuKTsNCisg IHJldHVybiByZm4tPmRlY2w7DQorfQ0KKw0KZnVuY3Rpb25faW5zdGFuY2UN CmdldF9yZWFkX3ZsX2luc3RhbmNlICh2b2lkKQ0Kew0KZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQppbmRl eCBlMzU4YThlNGQ5MS4uNGY0MWU4ODBhYzMgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5oDQpAQCAt Mjc3LDYgKzI3Nyw4IEBAIHB1YmxpYzoNCiAgIHZvaWQgYXBwbHlfcHJlZGlj YXRpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICYsIHRyZWUsIHZlYzx0 cmVlPiAmKSBjb25zdDsNCiAgIHZvaWQgYWRkX3VuaXF1ZV9mdW5jdGlvbiAo Y29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJiwgY29uc3QgZnVuY3Rpb25fc2hh cGUgKiwNCiAgICB0cmVlLCB2ZWM8dHJlZT4gJik7DQorICB2b2lkIGFkZF9v dmVybG9hZGVkX2Z1bmN0aW9uIChjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAm LA0KKyBjb25zdCBmdW5jdGlvbl9zaGFwZSAqKTsNCiAgIHZvaWQgcmVnaXN0 ZXJfZnVuY3Rpb25fZ3JvdXAgKGNvbnN0IGZ1bmN0aW9uX2dyb3VwX2luZm8g Jik7DQogICB2b2lkIGFwcGVuZF9uYW1lIChjb25zdCBjaGFyICopOw0KICAg dm9pZCBhcHBlbmRfYmFzZV9uYW1lIChjb25zdCBjaGFyICopOw0KQEAgLTI4 OCw3ICsyOTAsOCBAQCBwcml2YXRlOg0KICAgdHJlZSBnZXRfYXR0cmlidXRl cyAoY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJik7DQogICByZWdpc3RlcmVk X2Z1bmN0aW9uICZhZGRfZnVuY3Rpb24gKGNvbnN0IGZ1bmN0aW9uX2luc3Rh bmNlICYsIGNvbnN0IGNoYXIgKiwNCi0gICAgICB0cmVlLCB0cmVlLCBib29s KTsNCisgICAgICB0cmVlLCB0cmVlLCBib29sLCBjb25zdCBjaGFyICosDQor ICAgICAgY29uc3QgdmVjPHRyZWU+ICYsIGJvb2wpOw0KICAgLyogVHJ1ZSBp ZiB3ZSBzaG91bGQgY3JlYXRlIGEgc2VwYXJhdGUgZGVjbCBmb3IgZWFjaCBp bnN0YW5jZSBvZiBhbg0KICAgICAgb3ZlcmxvYWRlZCBmdW5jdGlvbiwgaW5z dGVhZCBvZiB1c2luZyBmdW5jdGlvbl9idWlsZGVyLiAgKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjMyX3ZhZGQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmFkZC5jDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjVmMTBh YTliZjM1DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZhZGQu Yw0KQEAgLTAsMCArMSwxMiBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJp PWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgIm92 ZXJsb2FkZWRfdmFkZC5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxc cyplOCxccyptMSxccyp0YSxccyptYX0gNCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAt OV0rLFxzKnplcm8sXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9IDggfSB9ICov DQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0 dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnR1LFxz Km1hfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxc cyptMSxccyp0YSxccyptdX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1b MC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbXV9IDIgfSB9ICovDQorLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52dlxz K3ZbMC05XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSA2IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmFkZFwudnhc cyt2WzAtOV0rLFxzKnZbMC05XSssXHMqW2F4XVswLTldK30gNiB9IH0gKi8N CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3Yv cnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZmYWRkLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMy X3ZmYWRkLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAw MDAwMC4uYmVhMzVhMTNhN2INCi0tLSAvZGV2L251bGwNCisrKyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVk X3J2MzJfdmZhZGQuYw0KQEAgLTAsMCArMSwxMiBAQA0KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdj dl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQor I2luY2x1ZGUgIm92ZXJsb2FkZWRfdmZhZGQuaCINCisNCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAt OV0rLFxzKnplcm8sXHMqZTE2LFxzKm1mNCxccyp0YSxccyptYX0gMTYgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmUxNixccyptZjQsXHMq dGEsXHMqbWF9IDQgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxccyp6ZXJvLFxz KmU4LFxzKm1mOCxccyp0YSxccyptYX0gOCB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxz KltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0dSxccyptYX0gNCB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zz ZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxzKm1mNCxccyp0 dSxccyptdX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMq ZTE2LFxzKm1mNCxccyp0YSxccyptdX0gMiB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZmYWRkXC52dlxzK3ZbMC05 XSssXHMqdlswLTldKyxccyp2WzAtOV0rfSAxMiB9IH0gKi8NCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjMyX3ZnZXRfdnNldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92Z2V0 X3ZzZXQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAw MDAwLi42YjBiYTE0MmI5MA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRf cnYzMl92Z2V0X3ZzZXQuYw0KQEAgLTAsMCArMSw3IEBADQorLyogeyBkZy1k byBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMy Z2N2X3p2ZmggLW1hYmk9aWxwMzIgLU8zIC1Xbm8tcHNhYmkiIH0gKi8NCisN CisjaW5jbHVkZSAib3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaCINCisNCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZsWzAtOV0rcmVb MC05XStcLnZccyt2WzAtOV0rLFxzKjBcKFtheF1bMC05XStcKX0gMTQgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c1swLTldK3JcLnZccyt2WzAtOV0rLFxzKjBcKFtheF1bMC05XStcKX0gMTMg fSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92bG94c2VnMmVpMTYu YyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmMNCm5ldyBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uYTIwZTRhM2JiNGYNCi0tLSAv ZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYvYmFzZS9vdmVybG9hZGVkX3J2MzJfdmxveHNlZzJlaTE2LmMNCkBA IC0wLDAgKzEsMTEgQEANCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3ZfenZmaCAtbWFiaT1pbHAz MiAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJvdmVybG9h ZGVkX3Zsb3hzZWcyZWkxNi5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTld KyxccyplNjQsXHMqbTQsXHMqdGEsXHMqbWF9IDIgfSB9ICovDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4 XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm1mMixccyp0YSxccyptYX0gNCB9 IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTY0LFxzKm00LFxz KnR1LFxzKm1hfSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxc cyplNjQsXHMqbTQsXHMqdHUsXHMqbXV9IDEgfSB9ICovDQorLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxc cypbYXhdWzAtOV0rLFxzKmU2NCxccyptNCxccyp0YSxccyptdX0gMSB9IH0g Ki8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3Zs b3hzZWcyZWkxNlwudlxzK3ZbMC05XSssXHMqXChbYXhdWzAtOV0rXCksXHMq dlswLTldK30gNiB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3Zt di5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfcnYzMl92bXYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwLi4yMzdiMzRkYmU5MQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnYzMl92bXYuYw0KQEAgLTAsMCArMSwxMCBAQA0K Ky8qIHsgZGctZG8gY29tcGlsZSB9ICovDQorLyogeyBkZy1vcHRpb25zICIt bWFyY2g9cnYzMmdjdl96dmZoIC1tYWJpPWlscDMyIC1PMyAtV25vLXBzYWJp IiB9ICovDQorDQorI2luY2x1ZGUgIm92ZXJsb2FkZWRfdm12LmgiDQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccypt MSxccyp0dSxccyptYX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05 XSssXHMqZTE2LFxzKm0xLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3pl cm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbTEsXHMqdHUsXHMqbWF9IDEg fSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHt2c2V0aXZsaVxzK3plcm8sXHMqMCxccyplOCxccyptMSxccyp0YSxccypt YX0gMSB9IH0gKi8NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9ydjMyX3ZyZWludGVy cHJldC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9i YXNlL292ZXJsb2FkZWRfcnYzMl92cmVpbnRlcnByZXQuYw0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi40MmQ1MDU4OTI0Ng0K LS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnYzMl92cmVpbnRlcnByZXQu Yw0KQEAgLTAsMCArMSwxMCBAQA0KKy8qIHsgZGctZG8gY29tcGlsZSB9ICov DQorLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjdl96dmZoIC1tYWJp PWlscDMyIC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgIm92 ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgiDQorDQorLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMrW2F4XVswLTldKyxc cyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1theF1bMC05XSssXHMqemVybyxccyplOCxccyptMixccyp0YSxccyptYX0g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYy LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVy byxccyplMTYsXHMqbWYyLFxzKnRhLFxzKm1hfSAyIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th eF1bMC05XSssXHMqemVybyxccyplMzIsXHMqbWYyLFxzKnRhLFxzKm1hfSAx IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmFkZC5jIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92YWRkLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwMC4uYzQ1NTVlM2Y0NzcNCi0tLSAvZGV2L251bGwNCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVy bG9hZGVkX3J2NjRfdmFkZC5jDQpAQCAtMCwwICsxLDExIEBADQorLyogeyBk Zy1vcHRpb25zICItbWFyY2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQgLU8z IC1Xbm8tcHNhYmkiIH0gKi8NCisNCisjaW5jbHVkZSAib3ZlcmxvYWRlZF92 YWRkLmgiDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0x LFxzKnRhLFxzKm1hfSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVy byxccyplOCxccyptMSxccyp0YSxccyptYX0gOCB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJv LFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEsXHMqdHUsXHMqbWF9IDQgfSB9 ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2 c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxzKmU4LFxzKm0xLFxzKnRh LFxzKm11fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccypl OCxccyptMSxccyp0dSxccyptdX0gMiB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZhZGRcLnZ2XHMrdlswLTldKyxc cyp2WzAtOV0rLFxzKnZbMC05XSt9IDYgfSB9ICovDQorLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2YWRkXC52eFxzK3ZbMC05XSss XHMqdlswLTldKyxccypbYXhdWzAtOV0rfSA2IH0gfSAqLw0KZGlmZiAtLWdp dCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9v dmVybG9hZGVkX3J2NjRfdmZhZGQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmZhZGQuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwLi5jYTk4 MTM2Y2U5Yg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92ZmFk ZC5jDQpAQCAtMCwwICsxLDExIEBADQorLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnY2NGdjdl96dmZoIC1tYWJpPWxwNjQgLU8zIC1Xbm8tcHNhYmkiIH0g Ki8NCisNCisjaW5jbHVkZSAib3ZlcmxvYWRlZF92ZmFkZC5oIg0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K1theF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm1h fSAxNiB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTE2LFxz Km1mNCxccyp0YSxccyptYX0gNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxz Knplcm8sXHMqZTgsXHMqbWY4LFxzKnRhLFxzKm1hfSA4IH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMqbWY0LFxzKnR1LFxzKm1h fSA0IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplMTYsXHMq bWY0LFxzKnR1LFxzKm11fSAyIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK3plcm8sXHMqW2F4XVsw LTldKyxccyplMTYsXHMqbWY0LFxzKnRhLFxzKm11fSAyIH0gfSAqLw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmZhZGRcLnZ2 XHMrdlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSt9IDEyIH0gfSAqLw0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdmdldF92c2V0LmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF9y djY0X3ZnZXRfdnNldC5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MDAwMDAwMDAwMDAuLjFjYjQyMjUwODRjDQotLS0gL2Rldi9udWxsDQorKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3ZnZXRfdnNldC5jDQpAQCAtMCwwICsxLDYgQEANCisv KiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2 NCAtTzMgLVduby1wc2FiaSIgfSAqLw0KKw0KKyNpbmNsdWRlICJvdmVybG9h ZGVkX3ZnZXRfdnNldC5oIg0KKw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7dmxbMC05XStyZVswLTldK1wudlxzK3ZbMC05XSss XHMqMFwoW2F4XVswLTldK1wpfSAxNCB9IH0gKi8NCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzWzAtOV0rclwudlxzK3ZbMC05 XSssXHMqMFwoW2F4XVswLTldK1wpfSAxMyB9IH0gKi8NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF9ydjY0X3Zsb3hzZWcyZWkxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92bG94 c2VnMmVpMTYuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi5lYTczMTcwNDQ0ZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfcnY2NF92bG94c2VnMmVpMTYuYw0KQEAgLTAsMCArMSwxMCBAQA0KKy8q IHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2NjRnY3ZfenZmaCAtbWFiaT1scDY0 IC1PMyAtV25vLXBzYWJpIiB9ICovDQorDQorI2luY2x1ZGUgIm92ZXJsb2Fk ZWRfdmxveHNlZzJlaTE2LmgiDQorDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmU2NCxccyptNCxccyp0YSxccyptYX0gMiB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhd WzAtOV0rLFxzKnplcm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSA0IH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldHZsaVxzK3plcm8sXHMqW2F4XVswLTldKyxccyplNjQsXHMqbTQsXHMq dHUsXHMqbWF9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0rLFxz KmU2NCxccyptNCxccyp0dSxccyptdX0gMSB9IH0gKi8NCisvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJvLFxz KltheF1bMC05XSssXHMqZTY0LFxzKm00LFxzKnRhLFxzKm11fSAxIH0gfSAq Lw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dmxv eHNlZzJlaTE2XC52XHMrdlswLTldKyxccypcKFtheF1bMC05XStcKSxccyp2 WzAtOV0rfSA2IH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdm12 LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF9ydjY0X3Ztdi5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMDAuLmM1ZGE2YmJmY2E4DQotLS0gL2Rldi9udWxs DQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jh c2Uvb3ZlcmxvYWRlZF9ydjY0X3Ztdi5jDQpAQCAtMCwwICsxLDEwIEBADQor LyogeyBkZy1kbyBjb21waWxlIH0gKi8NCisvKiB7IGRnLW9wdGlvbnMgIi1t YXJjaD1ydjY0Z2N2X3p2ZmggLW1hYmk9bHA2NCAtTzMgLVduby1wc2FiaSIg fSAqLw0KKw0KKyNpbmNsdWRlICJvdmVybG9hZGVkX3Ztdi5oIg0KKw0KKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxz K3plcm8sXHMqW2F4XVswLTldKyxccyplOCxccyptMSxccyp0YSxccyptYX0g MSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge3ZzZXR2bGlccyt6ZXJvLFxzKltheF1bMC05XSssXHMqZTgsXHMqbTEs XHMqdHUsXHMqbWF9IDIgfSB9ICovDQorLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxpXHMremVybyxccypbYXhdWzAtOV0r LFxzKmUxNixccyptMSxccyp0YSxccyptYX0gMSB9IH0gKi8NCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccyt6ZXJv LFxzKltheF1bMC05XSssXHMqZTE2LFxzKm0xLFxzKnR1LFxzKm1hfSAxIH0g fSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 dnNldGl2bGlccyt6ZXJvLFxzKjAsXHMqZTgsXHMqbTEsXHMqdGEsXHMqbWF9 IDEgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfcnY2NF92cmVpbnRlcnBy ZXQuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmMNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMC4uM2I4Mzk5YzEyNmQNCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3J2NjRfdnJlaW50ZXJwcmV0LmMN CkBAIC0wLDAgKzEsOSBAQA0KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 NjRnY3ZfenZmaCAtbWFiaT1scDY0IC1PMyAtV25vLXBzYWJpIiB9ICovDQor DQorI2luY2x1ZGUgIm92ZXJsb2FkZWRfdnJlaW50ZXJwcmV0LmgiDQorDQor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHt2c2V0dmxp XHMrW2F4XVswLTldKyxccyp6ZXJvLFxzKmU4LFxzKm00LFxzKnRhLFxzKm1h fSAxIH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10 aW1lcyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplOCxccypt Mixccyp0YSxccyptYX0gMSB9IH0gKi8NCisvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge3ZzZXR2bGlccytbYXhdWzAtOV0rLFxzKnpl cm8sXHMqZTgsXHMqbWYyLFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KKy8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7dnNldHZsaVxzK1th eF1bMC05XSssXHMqemVybyxccyplMTYsXHMqbWYyLFxzKnRhLFxzKm1hfSAy IH0gfSAqLw0KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7dnNldHZsaVxzK1theF1bMC05XSssXHMqemVybyxccyplMzIsXHMqbWYy LFxzKnRhLFxzKm1hfSAxIH0gfSAqLw0KZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zh ZGQuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3ZhZGQuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IDAwMDAwMDAwMDAwLi4zYjQxY2ZmMWI2Mg0KLS0tIC9kZXYvbnVsbA0K KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNl L292ZXJsb2FkZWRfdmFkZC5oDQpAQCAtMCwwICsxLDU5IEBADQorI2luY2x1 ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRf dnZfaThtMSh2aW50OG0xX3QgdnMyLCB2aW50OG0xX3QgdnMxLCBzaXplX3Qg dmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZhZGQodnMyLCB2czEsIHZsKTsN Cit9DQorDQordmludDhtMV90IHRlc3RfdmFkZF92eF9pOG0xKHZpbnQ4bTFf dCB2czIsIGludDhfdCByczEsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9f cmlzY3ZfdmFkZCh2czIsIHJzMSwgdmwpOw0KK30NCisNCit2aW50OG0xX3Qg dGVzdF92YWRkX3Z2X2k4bTFfbSh2Ym9vbDhfdCB2bSwgdmludDhtMV90IHZz MiwgdmludDhtMV90IHZzMSwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzaXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZhZGQodm0s IHZzMiwgdnMxLCB2bCk7DQorfQ0KKw0KK3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRf dnhfaThtMV9tKHZib29sOF90IHZtLCB2aW50OG0xX3QgdnMyLCBpbnQ4X3Qg cnMxLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCB2 bCkgew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZCh2bSwgdnMyLCByczEsIHZs KTsNCit9DQorDQordmludDhtMV90IHRlc3RfdmFkZF92dl9pOG0xX3R1KHZp bnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMiwgdmludDhtMV90IHZzMSwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQor ICByZXR1cm4gX19yaXNjdl92YWRkX3R1KHZkLCB2czIsIHZzMSwgdmwpOw0K K30NCisNCit2aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTFfdHUodmludDht MV90IHZkLCB2aW50OG0xX3QgdnMyLCBpbnQ4X3QgcnMxLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCisgIHJldHVy biBfX3Jpc2N2X3ZhZGRfdHUodmQsIHZzMiwgcnMxLCB2bCk7DQorfQ0KKw0K K3ZpbnQ4bTFfdCB0ZXN0X3ZhZGRfdnZfaThtMV90dW0odmJvb2w4X3Qgdm0s IHZpbnQ4bTFfdCB2ZCwgdmludDhtMV90IHZzMiwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZpbnQ4bTFfdCB2czEsIHNpemVfdCB2bCkg ew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90dW0odm0sIHZkLCB2czIsIHZz MSwgdmwpOw0KK30NCisNCit2aW50OG0xX3QgdGVzdF92YWRkX3Z4X2k4bTFf dHVtKHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czIs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgcnMx LCBzaXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZhZGRfdHVtKHZt LCB2ZCwgdnMyLCByczEsIHZsKTsNCit9DQorDQordmludDhtMV90IHRlc3Rf dmFkZF92dl9pOG0xX211KHZib29sOF90IHZtLCB2aW50OG0xX3QgdmQsIHZp bnQ4bTFfdCB2czIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZpbnQ4bTFfdCB2czEsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlz Y3ZfdmFkZF9tdSh2bSwgdmQsIHZzMiwgdnMxLCB2bCk7DQorfQ0KKw0KK3Zp bnQ4bTFfdCB0ZXN0X3ZhZGRfdnhfaThtMV9tdSh2Ym9vbDhfdCB2bSwgdmlu dDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQ4X3QgcnMxLCBzaXplX3QgdmwpIHsNCisgIHJl dHVybiBfX3Jpc2N2X3ZhZGRfbXUodm0sIHZkLCB2czIsIHJzMSwgdmwpOw0K K30NCisNCit2aW50OG0xX3QgdGVzdF92YWRkX3Z2X2k4bTFfdHVtdSh2Ym9v bDhfdCB2bSwgdmludDhtMV90IHZkLCB2aW50OG0xX3QgdnMyLA0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpbnQ4bTFfdCB2czEsIHNp emVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmFkZF90dW11KHZtLCB2 ZCwgdnMyLCB2czEsIHZsKTsNCit9DQorDQordmludDhtMV90IHRlc3RfdmFk ZF92eF9pOG0xX3R1bXUodmJvb2w4X3Qgdm0sIHZpbnQ4bTFfdCB2ZCwgdmlu dDhtMV90IHZzMiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQ4X3QgcnMxLCBzaXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2 X3ZhZGRfdHVtdSh2bSwgdmQsIHZzMiwgcnMxLCB2bCk7DQorfQ0KZGlmZiAt LWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFz ZS9vdmVybG9hZGVkX3ZmYWRkLmggYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5oDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjc5OGFmNDIwZjJk DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJn ZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92ZmFkZC5oDQpAQCAtMCww ICsxLDY3IEBADQorI2luY2x1ZGUgInJpc2N2X3ZlY3Rvci5oIg0KKw0KK3Zm bG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjQodmZsb2F0MTZtZjRf dCB2czIsIHZmbG9hdDE2bWY0X3QgdnMxLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19y aXNjdl92ZmFkZCh2czIsIHZzMSwgdmwpOw0KK30NCisNCit2ZmxvYXQxNm1m NF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X20odmJvb2w2NF90IHZtLCB2Zmxv YXQxNm1mNF90IHZzMiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmZsb2F0MTZtZjRfdCB2czEsIHNpemVfdCB2bCkgew0KKyAg cmV0dXJuIF9fcmlzY3ZfdmZhZGQodm0sIHZzMiwgdnMxLCB2bCk7DQorfQ0K Kw0KK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92dl9mMTZtZjRfdHUodmZs b2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRfdCB2czIsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90IHZz MSwgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19yaXNjdl92ZmFkZF90dSh2 ZCwgdnMyLCB2czEsIHZsKTsNCit9DQorDQordmZsb2F0MTZtZjRfdCB0ZXN0 X3ZmYWRkX3Z2X2YxNm1mNF90dW0odmJvb2w2NF90IHZtLCB2ZmxvYXQxNm1m NF90IHZkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg dmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX3R1bSh2bSwgdmQsIHZz MiwgdnMxLCB2bCk7DQorfQ0KKw0KK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFk ZF92dl9mMTZtZjRfdHVtdSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3Qg dmQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZmbG9hdDE2bWY0X3QgdnMyLCB2ZmxvYXQxNm1mNF90IHZzMSwNCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHZs KSB7DQorICByZXR1cm4gX19yaXNjdl92ZmFkZF90dW11KHZtLCB2ZCwgdnMy LCB2czEsIHZsKTsNCit9DQorDQordmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRk X3Z2X2YxNm1mNF9tdSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3QgdmQs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2Zmxv YXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgdmwpIHsNCisg IHJldHVybiBfX3Jpc2N2X3ZmYWRkX211KHZtLCB2ZCwgdnMyLCB2czEsIHZs KTsNCit9DQorDQordmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRkX3Z2X2YxNm1m NF9ybSh2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg dmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZmYWRkKHZzMiwgdnMxLCBfX1JJ U0NWX0ZSTV9STkUsIHZsKTsNCit9DQorDQordmZsb2F0MTZtZjRfdCB0ZXN0 X3ZmYWRkX3Z2X2YxNm1mNF9ybV9tKHZib29sNjRfdCB2bSwgdmZsb2F0MTZt ZjRfdCB2czIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZmbG9hdDE2bWY0X3QgdnMxLCBzaXplX3QgdmwpIHsNCisgIHJl dHVybiBfX3Jpc2N2X3ZmYWRkKHZtLCB2czIsIHZzMSwgX19SSVNDVl9GUk1f Uk5FLCB2bCk7DQorfQ0KKw0KK3ZmbG9hdDE2bWY0X3QgdGVzdF92ZmFkZF92 dl9mMTZtZjRfcm1fdHUodmZsb2F0MTZtZjRfdCB2ZCwgdmZsb2F0MTZtZjRf dCB2czIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2ZmxvYXQxNm1mNF90IHZzMSwgc2l6ZV90IHZsKSB7DQorICByZXR1 cm4gX19yaXNjdl92ZmFkZF90dSh2ZCwgdnMyLCB2czEsIF9fUklTQ1ZfRlJN X1JORSwgdmwpOw0KK30NCisNCit2ZmxvYXQxNm1mNF90IHRlc3RfdmZhZGRf dnZfZjE2bWY0X3JtX3R1bSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3Qg dmQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmZsb2F0MTZtZjRfdCB2czIsIHZmbG9hdDE2bWY0X3QgdnMxLA0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf dCB2bCkgew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmZhZGRfdHVtKHZtLCB2ZCwg dnMyLCB2czEsIF9fUklTQ1ZfRlJNX1JORSwgdmwpOw0KK30NCisNCit2Zmxv YXQxNm1mNF90IHRlc3RfdmZhZGRfdnZfZjE2bWY0X3JtX3R1bXUodmJvb2w2 NF90IHZtLCB2ZmxvYXQxNm1mNF90IHZkLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2ZmxvYXQxNm1mNF90IHZzMiwg dmZsb2F0MTZtZjRfdCB2czEsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9f cmlzY3ZfdmZhZGRfdHVtdSh2bSwgdmQsIHZzMiwgdnMxLCBfX1JJU0NWX0ZS TV9STkUsIHZsKTsNCit9DQorDQordmZsb2F0MTZtZjRfdCB0ZXN0X3ZmYWRk X3Z2X2YxNm1mNF9ybV9tdSh2Ym9vbDY0X3Qgdm0sIHZmbG9hdDE2bWY0X3Qg dmQsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2ZmxvYXQxNm1mNF90IHZzMiwgdmZsb2F0MTZtZjRfdCB2czEsDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg dmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZmYWRkX211KHZtLCB2ZCwgdnMy LCB2czEsIF9fUklTQ1ZfRlJNX1JORSwgdmwpOw0KK30NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF92Z2V0X3ZzZXQuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3ZnZXRfdnNldC5oDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjAxZTA3MmVi MzhmDQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92Z2V0X3ZzZXQuaA0K QEAgLTAsMCArMSwyNyBAQA0KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIN CisNCit2ZmxvYXQxNm0xX3QgdGVzdF92Z2V0X3ZfZjE2bTJfZjE2bTEodmZs b2F0MTZtMl90IHNyYywgc2l6ZV90IGluZGV4KSB7DQorICByZXR1cm4gX19y aXNjdl92Z2V0X2YxNm0xKHNyYywgMCk7DQorfQ0KKw0KK3ZpbnQ2NG0xX3Qg dGVzdF92Z2V0X3ZfaTY0bTRfaTY0bTEodmludDY0bTRfdCBzcmMsIHNpemVf dCBpbmRleCkgew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmdldF9pNjRtMShzcmMs IDApOw0KK30NCisNCit2ZmxvYXQxNm0xX3QgdGVzdF92Z2V0X3ZfZjE2bTF4 NF9mMTZtMSh2ZmxvYXQxNm0xeDRfdCBzcmMsIHNpemVfdCBpbmRleCkgew0K KyAgcmV0dXJuIF9fcmlzY3ZfdmdldF9mMTZtMShzcmMsIDApOw0KK30NCisN Cit2aW50OG0yX3QgdGVzdF92Z2V0X3ZfaThtMngzX2k4bTIodmludDhtMngz X3Qgc3JjLCBzaXplX3QgaW5kZXgpIHsNCisgIHJldHVybiBfX3Jpc2N2X3Zn ZXRfaThtMihzcmMsIDApOw0KK30NCisNCit2ZmxvYXQxNm0yX3QgdGVzdF92 c2V0X3ZfZjE2bTFfZjE2bTIodmZsb2F0MTZtMl90IGRlc3QsIHNpemVfdCBp bmRleCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmZsb2F0MTZtMV90IHZhbHVlKSB7DQorICByZXR1cm4gX19yaXNjdl92c2V0 KGRlc3QsIDAsIHZhbHVlKTsNCit9DQorDQordmZsb2F0NjRtMXg3X3QgdGVz dF92c2V0X3ZfZjY0bTFfZjY0bTF4Nyh2ZmxvYXQ2NG0xeDdfdCBkZXN0LCBz aXplX3QgaW5kZXgsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2ZmxvYXQ2NG0xX3QgdmFsdWUpIHsNCisgIHJldHVybiBf X3Jpc2N2X3ZzZXQoZGVzdCwgMCwgdmFsdWUpOw0KK30NCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zl cmxvYWRlZF92bG94c2VnMmVpMTYuaCBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9hZGVkX3Zsb3hzZWcyZWkxNi5o DQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAuLjJl YmNkYjQxNzk1DQotLS0gL2Rldi9udWxsDQorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92bG94c2Vn MmVpMTYuaA0KQEAgLTAsMCArMSwzOSBAQA0KKyNpbmNsdWRlICJyaXNjdl92 ZWN0b3IuaCINCisNCit0eXBlZGVmIF9GbG9hdDE2IGZsb2F0MTZfdDsNCit0 eXBlZGVmIGZsb2F0IGZsb2F0MzJfdDsNCit0eXBlZGVmIGRvdWJsZSBmbG9h dDY0X3Q7DQorDQordmZsb2F0NjRtNHgyX3QgdGVzdF92bG94c2VnMmVpMTZf dl9mNjRtNHgyKGNvbnN0IGZsb2F0NjRfdCAqcnMxLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWludDE2bTFfdCBy czIsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlzY3ZfdmxveHNlZzJl aTE2KHJzMSwgcnMyLCB2bCk7DQorfQ0KKw0KK3ZmbG9hdDY0bTR4Ml90IHRl c3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4Ml9tKHZib29sMTZfdCB2bSwgY29u c3QgZmxvYXQ2NF90ICpyczEsDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3Qg dmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNih2bSwgcnMx LCByczIsIHZsKTsNCit9DQorDQordmZsb2F0NjRtNHgyX3QgdGVzdF92bG94 c2VnMmVpMTZfdl9mNjRtNHgyX3R1bSh2Ym9vbDE2X3Qgdm0sIHZmbG9hdDY0 bTR4Ml90IHZkLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZmxvYXQ2NF90ICpyczEsDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2dWlu dDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlzY3Zf dmxveHNlZzJlaTE2X3R1bSh2bSwgdmQsIHJzMSwgcnMyLCB2bCk7DQorfQ0K Kw0KK3ZmbG9hdDY0bTR4Ml90IHRlc3RfdmxveHNlZzJlaTE2X3ZfZjY0bTR4 Ml90dW11KHZib29sMTZfdCB2bSwgdmZsb2F0NjRtNHgyX3QgdmQsDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZmxvYXQ2NF90ICpyczEsDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBz aXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90 dW11KHZtLCB2ZCwgcnMxLCByczIsIHZsKTsNCit9DQorDQordmZsb2F0NjRt NHgyX3QgdGVzdF92bG94c2VnMmVpMTZfdl9mNjRtNHgyX211KHZib29sMTZf dCB2bSwgdmZsb2F0NjRtNHgyX3QgdmQsDQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0NjRfdCAq cnMxLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB2dWludDE2bTFfdCByczIsIHNpemVfdCB2bCkgew0KKyAgcmV0 dXJuIF9fcmlzY3ZfdmxveHNlZzJlaTE2X211KHZtLCB2ZCwgcnMxLCByczIs IHZsKTsNCit9DQorDQordmZsb2F0NjRtNHgyX3QgdGVzdF92bG94c2VnMmVp MTZfdl9mNjRtNHgyX3R1KHZmbG9hdDY0bTR4Ml90IHZkLA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBm bG9hdDY0X3QgKnJzMSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdnVpbnQxNm0xX3QgcnMyLCBzaXplX3Qgdmwp IHsNCisgIHJldHVybiBfX3Jpc2N2X3Zsb3hzZWcyZWkxNl90dSh2ZCwgcnMx LCByczIsIHZsKTsNCit9DQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2FkZWRfdm12LmggYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uvb3Zlcmxv YWRlZF92bXYuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAwMDAwLi5mZDNmMWQyOGMwYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL292ZXJsb2Fk ZWRfdm12LmgNCkBAIC0wLDAgKzEsMjYgQEANCisjaW5jbHVkZSAicmlzY3Zf dmVjdG9yLmgiDQorDQordmludDhtMV90IHRlc3Rfdm12X3Zfdl9pOG0xICh2 aW50OG0xX3QgdnMxLCBzaXplX3QgdmwpIHsNCisgIHJldHVybiBfX3Jpc2N2 X3Ztdl92ICh2czEsIHZsKTsNCit9DQorDQordmludDhtMV90IHRlc3Rfdm12 X3Zfdl9pOG0xX3R1ICh2aW50OG0xX3QgdmQsIHZpbnQ4bTFfdCB2czEsIHNp emVfdCB2bCkgew0KKyAgcmV0dXJuIF9fcmlzY3Zfdm12X3ZfdHUodmQsIHZz MSwgdmwpOw0KK30NCisNCit2ZmxvYXQxNm0xX3QgdGVzdF92bXZfdl92X2Yx Nm0xICh2ZmxvYXQxNm0xX3QgdnMxLCBzaXplX3QgdmwpIHsNCisgIHJldHVy biBfX3Jpc2N2X3Ztdl92ICh2czEsIHZsKTsNCit9DQorDQordmZsb2F0MTZt MV90IHRlc3Rfdm12X3Zfdl9mMTZtMV90dSAodmZsb2F0MTZtMV90IHZkLCB2 ZmxvYXQxNm0xX3QgdnMxLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2l6ZV90IHZsKSB7DQorICByZXR1cm4gX19yaXNjdl92bXZf dl90dSAodmQsIHZzMSwgdmwpOw0KK30NCisNCitpbnQ4X3QgdGVzdF92bXZf eF9zX2k4bTFfaTgodmludDhtMV90IHZzMSkgew0KKyAgcmV0dXJuIF9fcmlz Y3Zfdm12X3ggKHZzMSk7DQorfQ0KKw0KK3ZpbnQ4bTFfdCB0ZXN0X3Ztdl9z X3hfaThtMV90dSh2aW50OG0xX3QgdmQsIGludDhfdCByczEsIHNpemVfdCB2 bCkgew0KKyAgcmV0dXJuIF9fcmlzY3Zfdm12X3NfdHUodmQsIHJzMSwgdmwp Ow0KK30NCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv cmlzY3YvcnZ2L2Jhc2Uvb3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaCBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYvYmFzZS9vdmVybG9h ZGVkX3ZyZWludGVycHJldC5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggMDAwMDAwMDAwMDAuLjkwNGIwY2VlZTcyDQotLS0gL2Rldi9udWxsDQor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2Uv b3ZlcmxvYWRlZF92cmVpbnRlcnByZXQuaA0KQEAgLTAsMCArMSwyOSBAQA0K KyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCINCisNCit2dWludDE2bTFfdCB0 ZXN0X3ZyZWludGVycHJldF92X2IyX3UxNm0xKHZib29sMl90IHNyYykgew0K KyAgcmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X3UxNm0xKHNyYyk7DQor fQ0KKw0KK3Zib29sNF90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTMybTFfYjQo dmludDMybTFfdCBzcmMpIHsNCisgIHJldHVybiBfX3Jpc2N2X3ZyZWludGVy cHJldF9iNChzcmMpOw0KK30NCisNCit2aW50OG1mMl90IHRlc3RfdnJlaW50 ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKHZpbnQxNm1mMl90IHNyYykgew0KKyAg cmV0dXJuIF9fcmlzY3ZfdnJlaW50ZXJwcmV0X2k4bWYyKHNyYyk7DQorfQ0K Kw0KK3ZpbnQzMm1mMl90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2kz Mm1mMih2aW50MTZtZjJfdCBzcmMpIHsNCisgIHJldHVybiBfX3Jpc2N2X3Zy ZWludGVycHJldF9pMzJtZjIoc3JjKTsNCit9DQorDQordmludDMybTFfdCB0 ZXN0X3ZyZWludGVycHJldF92X2kxNm0xX2kzMm0xKHZpbnQxNm0xX3Qgc3Jj KSB7DQorICByZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRfaTMybTEoc3Jj KTsNCit9DQorDQordmludDhtNF90IHRlc3RfdnJlaW50ZXJwcmV0X3ZfaTMy bTRfaThtNCh2aW50MzJtNF90IHNyYykgew0KKyAgcmV0dXJuIF9fcmlzY3Zf dnJlaW50ZXJwcmV0X2k4bTQoc3JjKTsNCit9DQorDQordnVpbnQ4bThfdCB0 ZXN0X3ZyZWludGVycHJldF92X3UzMm04X3U4bTgodnVpbnQzMm04X3Qgc3Jj KSB7DQorICByZXR1cm4gX19yaXNjdl92cmVpbnRlcnByZXRfdThtOChzcmMp Ow0KK30NCi0tIA0KMi4xNy4xDQogDQogDQo= ------=_001_NextPart463116256637_=------