From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgbr2.qq.com (smtpbgbr2.qq.com [54.207.22.56]) by sourceware.org (Postfix) with ESMTPS id 07FB93858284 for ; Fri, 5 Jan 2024 08:56:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 07FB93858284 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 07FB93858284 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=54.207.22.56 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704444980; cv=none; b=Qf7acunrFO7Mc68HbZGcnWJSIuMBYEmcF6Ibt0JkWyBf+mRgAI+ikn/6zzxSqCv4oxkW4G8Wo8k2/obH1b9dhzmm4GisXS1HwtaMWzinr4XCQNJ9UduZgxJxjUX+yVq4Ab10EsepilIL7RYqKzyuu1/Tz+bflF0mm+PhA8NnlII= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704444980; c=relaxed/simple; bh=ZO1I5seYd2UAaSpgy1efXAvtGuFJqa5HbhfvDPy3QIo=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=CDOXdv3owFMhAX8e967NnIYNUlwH7ytNLYBsdWKJUWXC5TIDn6fIlAi0yjP5sWv15CoqYMxZKcfq/Gq/9uUHemaPubdstTY7ayYUlkFvENtwozXidonOveAXlXgGuR2Ttw8p3Kf2/Iy7ilPdIsvm9q4Oe+KghsvzUbDU1t9KVO8= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp67t1704444958tww522sl Received: from LAPTOP-EPITNQBU ( [58.60.1.10]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 05 Jan 2024 16:55:56 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: piJ/4d3CyMpZHhF6al/PN49B+dz7z52EZZJMLGJyJj62W7XvmRYtA71tvehMu yUolE0TWrYNLmU87tWtyqwVuuw/eaX+4EbvhIVeCmyvn4XdEwQ6WZliz5JH8XAJyttKoJUE xD7XaBYbRZLy24eIqm3cpkS6kdSpncFd47GTHx4sGVf9BxWqGCuhwKuWWYp4BxI+pX4M3Vx JEXJkhmpot/y5LkYfKC2DUg2IcsD0CDGis84crVoFWUca8reyGt1YcPGtZaoALFBDp8gXT5 r8QhvEuDrlQ70ghA5o98bneJZLiARwwFuvemqn/Sm4v+X/4isx1lX5LHhv3uqLRMbgqYvbO wLzS8NHWaapQ5xqZLQxttzcuWKghPpPnX8XcQUBlP8b6GO2++HU0xtGhw8m1pJePFEcnysT B6gyxShmB93e7GNXFz3JP9F/NiZOHS9N X-QQ-GoodBg: 2 X-BIZMAIL-ID: 6905476440996987608 Date: Fri, 5 Jan 2024 16:55:57 +0800 From: "juzhe.zhong@rivai.ai" To: wangfeng , gcc-patches Cc: kito.cheng , jeffreyalaw , wangfeng Subject: Re: [PATCH v7 1/2] RISC-V: Add crypto vector builtin function. References: <20240105085152.18530-1-wangfeng@eswincomputing.com> X-Priority: 3 X-GUID: D114DCB1-F767-4FDB-9459-51F33389F074 X-Has-Attach: no X-Mailer: Foxmail 7.2.16.188[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart636024105544_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-8.5 required=5.0 tests=BAYES_00,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,MIME_BASE64_TEXT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. ------=_001_NextPart636024105544_=---- Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: base64 LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0b3IubWQNCisrKyBiL2djYy9j b25maWcvcmlzY3YvdmVjdG9yLm1kDQpAQCAtODY0LDkgKzg2NCw5IEBADQog IHZuY2xpcCx2aWNtcCx2ZmFsdSx2Zm11bCx2Zm1pbm1heCx2ZmRpdix2Zndh bHUsdmZ3bXVsLFwNCiAgdmZzZ25qLHZmY21wLHZzbGlkZXVwLHZzbGlkZWRv d24sdmlzbGlkZTF1cCxcDQogIHZpc2xpZGUxZG93bix2ZnNsaWRlMXVwLHZm c2xpZGUxZG93bix2Z2F0aGVyLHZpd211bGFkZCx2ZndtdWxhZGQsXA0KLSAg IHZsc2VnZHMsdmxzZWdkdXgsdmxzZWdkb3gsdmFuZG4sdnJvbCx2cm9yLHZ3 c2xsIikNCisgICB2bHNlZ2RzLHZsc2VnZHV4LHZsc2VnZG94LHZhbmRuLHZy b2wsdnJvcix2Y2xtdWwsdmNsbXVsaCx2d3NsbCIpDQogICAoY29uc3RfaW50 IDgpDQotIChlcV9hdHRyICJ0eXBlIiAidnN0dXgsdnN0b3gsdnNzZWd0cyx2 c3NlZ3R1eCx2c3NlZ3RveCx2Y2xtdWwsdmNsbXVsaCIpDQorIChlcV9hdHRy ICJ0eXBlIiAidnN0dXgsdnN0b3gsdnNzZWd0cyx2c3NlZ3R1eCx2c3NlZ3Rv eCIpDQogICAoY29uc3RfaW50IDUpDQoNCg0KQWgsIEkga25ldyBzb21ldGhp bmcgZ28gd3JvbmcgaW4gY2FzZSBvZiBhdHRyaWJ1dGUgYnVncy4NCg0KSSB0 aGluayBpdCBzaG91bGQgYmUgYSBzZXBhcmF0ZSBwYXRjaCB3aGljaCBpcyAi Rml4IHZsbWF4IHR5cGUgYXR0cmlidXRlIGJ1Z3Mgb2YgdmNsbXVsIGFuZCB2 Y2xtdWxoIGluc3RydWN0aW9ucyIuDQoNCg0KDQpqdXpoZS56aG9uZ0ByaXZh aS5haQ0KIA0KRnJvbTogRmVuZyBXYW5nDQpEYXRlOiAyMDI0LTAxLTA1IDE2 OjUxDQpUbzogZ2NjLXBhdGNoZXMNCkNDOiBraXRvLmNoZW5nOyBqZWZmcmV5 YWxhdzsganV6aGUuemhvbmc7IEZlbmcgV2FuZw0KU3ViamVjdDogW1BBVENI IHY3IDEvMl0gUklTQy1WOiBBZGQgY3J5cHRvIHZlY3RvciBidWlsdGluIGZ1 bmN0aW9uLg0KUGF0Y2ggdjc6Rml4IGF2bF90eXBlIG9wZXJhbmQgaW5kZXgg b2YgenZiYyBpbnMuDQpQYXRjaCB2NjpSZW1vdmUgdW51c2VkIGNvZGUuDQpQ YXRjaCB2NTpSZWJhc2UuDQpQYXRjaCB2NDpNZXJnZSBjcnlwdG8gdmVjdG9y IGZ1bmN0aW9uLmRlZiBpbnRvIHZlY3Rvci4NClBhdGNoIHYzOkRlZmluZSBh IHNoYXBlIGZvciB2YWVzeiBhbmQgbWVyZ2UgdmVjdG9yLWNyeXB0by10eXBl cy5kZWYNCiAgICAgICAgIGludG8gcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5 cGVzLmRlZi4NClBhdGNoIHYyOk9wdGltaXplIGZ1bmN0aW9uX3NoYXBlIGNs YXNzIGZvciBjcnlwdG9fdmVjdG9yLg0KIA0KVGhpcyBwYXRjaCBhZGQgdGhl IGludHJpbnNpYyBmdW50aW9ucyBvZiBjcnlwdG8gdmVjdG9yIGJhc2VkIG9u IHRoZQ0KaW50cmluc2ljIGRvYyhodHRwczovL2dpdGh1Yi5jb20vcmlzY3Yt bm9uLWlzYS9ydnYtaW50cmluc2ljLWRvYy9ibG9iDQovZW9wYy92ZWN0b3It Y3J5cHRvL2F1dG8tZ2VuZXJhdGVkL3ZlY3Rvci1jcnlwdG8vaW50cmluc2lj X2Z1bmNzLm1kKS4NCiANCkNvLUF1dGhvcmVkIGJ5OiBTb25naGUgWmh1IDx6 aHVzb25naGVAZXN3aW5jb21wdXRpbmcuY29tPg0KQ28tQXV0aG9yZWQgYnk6 IENpeWFuIFBhbiA8cGFuY2l5YW5AZXN3aW5jb21wdXRpbmcuY29tPg0KZ2Nj L0NoYW5nZUxvZzoNCiANCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy1iYXNlcy5jYyAoY2xhc3MgdmFuZG4pOg0KQWRkIG5ldyBmdW5j dGlvbl9iYXNlIGZvciBjcnlwdG8gdmVjdG9yLg0KKGNsYXNzIGJpdG1hbmlw KTogRGl0dG8uDQooY2xhc3MgYl9yZXZlcnNlKTpEaXR0by4NCihjbGFzcyB2 d3NsbCk6ICAgRGl0dG8uDQooY2xhc3MgY2xtdWwpOiAgIERpdHRvLg0KKGNs YXNzIHZnX25oYWIpOiAgRGl0dG8uDQooY2xhc3MgY3J5cHRvX3Z2KTpEaXR0 by4NCihjbGFzcyBjcnlwdG9fdmkpOkRpdHRvLg0KKGNsYXNzIHZhZXNrZjJf dnNtM2MpOkRpdHRvLg0KKGNsYXNzIHZzbTNtZSk6IERpdHRvLg0KKEJBU0Up OiBBZGQgQkFTRSBkZWNsYXJhdGlvbiBmb3IgY3J5cHRvIHZlY3Rvci4NCiog Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oOiBE aXR0by4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1m dW5jdGlvbnMuZGVmIChSRVFVSVJFRF9FWFRFTlNJT05TKToNCkFkZCBjcnlw dG8gdmVjdG9yIGludHJpbnNpYyBkZWZpbml0aW9uLg0KKHZicmV2KTogRGl0 dG8uDQoodmNseik6IERpdHRvLg0KKHZjdHopOiBEaXR0by4NCih2d3NsbCk6 IERpdHRvLg0KKHZhbmRuKTogRGl0dG8uDQoodmJyZXY4KTogRGl0dG8uDQoo dnJldjgpOiBEaXR0by4NCih2cm9sKTogRGl0dG8uDQoodnJvcik6IERpdHRv Lg0KKHZjbG11bCk6IERpdHRvLg0KKHZjbG11bGgpOiBEaXR0by4NCih2Z2hz aCk6IERpdHRvLg0KKHZnbXVsKTogRGl0dG8uDQoodmFlc2VmKTogRGl0dG8u DQoodmFlc2VtKTogRGl0dG8uDQoodmFlc2RmKTogRGl0dG8uDQoodmFlc2Rt KTogRGl0dG8uDQoodmFlc3opOiBEaXR0by4NCih2YWVza2YxKTogRGl0dG8u DQoodmFlc2tmMik6IERpdHRvLg0KKHZzaGEybXMpOiBEaXR0by4NCih2c2hh MmNoKTogRGl0dG8uDQoodnNoYTJjbCk6IERpdHRvLg0KKHZzbTRrKTogRGl0 dG8uDQoodnNtNHIpOiBEaXR0by4NCih2c20zbWUpOiBEaXR0by4NCih2c20z Yyk6IERpdHRvLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLXNoYXBlcy5jYyAoc3RydWN0IGNyeXB0b192dl9kZWYpOg0KQWRkIG5l dyBmdW5jdGlvbl9zaGFwZSBmb3IgY3J5cHRvIHZlY3Rvci4NCihzdHJ1Y3Qg Y3J5cHRvX3ZpX2RlZik6IERpdHRvLg0KKHN0cnVjdCBjcnlwdG9fdnZfbm9f b3BfdHlwZV9kZWYpOiBEaXR0by4NCihTSEFQRSk6IEFkZCBTSEFQRSBkZWNs YXJhdGlvbiBvZiBjcnlwdG8gdmVjdG9yLg0KKiBjb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oOiBEaXR0by4NCiogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYgKERFRl9S VlZfQ1JZUFRPX1NFVzMyX09QUyk6DQpBZGQgbmV3IGRhdGEgdHlwZSBmb3Ig Y3J5cHRvIHZlY3Rvci4NCihERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMpOiBE aXR0by4NCih2dWludDMybWYyX3QpOiBEaXR0by4NCih2dWludDMybTFfdCk6 IERpdHRvLg0KKHZ1aW50MzJtMl90KTogRGl0dG8uDQoodnVpbnQzMm00X3Qp OiBEaXR0by4NCih2dWludDMybThfdCk6IERpdHRvLg0KKHZ1aW50NjRtMV90 KTogRGl0dG8uDQoodnVpbnQ2NG0yX3QpOiBEaXR0by4NCih2dWludDY0bTRf dCk6IERpdHRvLg0KKHZ1aW50NjRtOF90KTogRGl0dG8uDQoqIGNvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MgKERFRl9SVlZfQ1JZUFRP X1NFVzMyX09QUyk6DQpBZGQgbmV3IGRhdGEgc3RydWN0IGZvciBjcnlwdG8g dmVjdG9yLg0KKERFRl9SVlZfQ1JZUFRPX1NFVzY0X09QUyk6IERpdHRvLg0K KHJlZ2lzdGVyZWRfZnVuY3Rpb246Om92ZXJsb2FkZWRfaGFzaCk6IFByb2Nl c3Npbmcgc2l6ZV90IHVpbW0gZm9yIEMgb3ZlcmxvYWRlZCBmdW5jLg0KKiBj b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiAodmkpOiBB ZGQgdmkgT1BfVFlQRS4NCiogY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZDogTW9k aWZ5IGF2bF90eXBlIG9wZXJhbmQgaW5kZXggb2YgenZiYyBpbnMuDQotLS0N Ci4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgICAg ICB8IDI2NCArKysrKysrKysrKysrKysrKy0NCi4uLi9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCAgICAgICB8ICAyOCArKw0KLi4uL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHwgIDk0 ICsrKysrKysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hh cGVzLmNjICAgICB8ICA4NyArKysrKy0NCi4uLi9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtc2hhcGVzLmggICAgICB8ICAgNCArDQouLi4vcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiAgICAgfCAgMjUgKysN CmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjICAg ICB8IDEzMyArKysrKysrKy0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmRlZiAgICB8ICAgMSArDQpnY2MvY29uZmlnL3Jpc2N2 L3ZlY3Rvci5tZCAgICAgICAgICAgICAgICAgICAgfCAgIDQgKy0NCjkgZmls ZXMgY2hhbmdlZCwgNjM1IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0p DQogDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtYmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KaW5kZXggODEwNzgzYmZmNGMu LmZiYTk4MTI0NDczIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MNCisrKyBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQpAQCAt MjEyNyw2ICsyMTI3LDIxMiBAQCBwdWJsaWM6DQogICB9DQp9Ow0KKy8qIEJl bG93IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8NCisvKiBJbXBs ZW1lbnRzIHZhbmRuLlt2dix2eF0gKi8NCitjbGFzcyB2YW5kbiA6IHB1Ymxp YyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIHJ0eCBleHBhbmQg KGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KKyAgew0K KyAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQorICAgICAgew0KKyAgICAg IGNhc2UgT1BfVFlQRV92djoNCisgICAgICAgIHJldHVybiBlLnVzZV9leGFj dF9pbnNuIChjb2RlX2Zvcl9wcmVkX3ZhbmRuIChlLnZlY3Rvcl9tb2RlICgp KSk7DQorICAgICAgY2FzZSBPUF9UWVBFX3Z4Og0KKyAgICAgICAgcmV0dXJu IGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfdmFuZG5fc2NhbGFy IChlLnZlY3Rvcl9tb2RlICgpKSk7DQorICAgICAgZGVmYXVsdDoNCisgICAg ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCisgICAgICB9DQorICB9DQorfTsN CisNCisvKiBJbXBsZW1lbnRzIHZyb2wvdnJvci9jbHovY3R6LiAgKi8NCit0 ZW1wbGF0ZTxydHhfY29kZSBDT0RFPg0KK2NsYXNzIGJpdG1hbmlwIDogcHVi bGljIGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAgYm9vbCBhcHBs eV90YWlsX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAg IHJldHVybiAoQ09ERSA9PSBDTFogfHwgQ09ERSA9PSBDVFopID8gZmFsc2Ug OiB0cnVlOw0KKyAgfQ0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgp IGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHJldHVybiAoQ09ERSA9PSBD TFogfHwgQ09ERSA9PSBDVFopID8gZmFsc2UgOiB0cnVlOw0KKyAgfQ0KKyAg Ym9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlDQor ICB7DQorICAgIHJldHVybiAoQ09ERSA9PSBDTFogfHwgQ09ERSA9PSBDVFop ID8gZmFsc2UgOiB0cnVlOw0KKyAgfQ0KKyAgDQorICBydHggZXhwYW5kIChm dW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisg ICAgc3dpdGNoIChlLm9wX2luZm8tPm9wKQ0KKyAgICB7DQorICAgICAgY2Fz ZSBPUF9UWVBFX3Y6DQorICAgICAgY2FzZSBPUF9UWVBFX3Z2Og0KKyAgICAg ICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfdiAo Q09ERSwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgIGNhc2UgT1BfVFlQ RV92eDoNCisgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2Rl X2Zvcl9wcmVkX3Zfc2NhbGFyIChDT0RFLCBlLnZlY3Rvcl9tb2RlICgpKSk7 DQorICAgICAgZGVmYXVsdDoNCisgICAgICAgIGdjY191bnJlYWNoYWJsZSAo KTsNCisgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVtZW50cyB2YnJl di92YnJldjgvdnJldjguICAqLw0KK3RlbXBsYXRlPGludCBVTlNQRUM+DQor Y2xhc3MgYl9yZXZlcnNlIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQor cHVibGljOg0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgICAgcmV0dXJuIGUudXNlX2V4 YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfdiAoVU5TUEVDLCBlLnZlY3Rvcl9t b2RlICgpKSk7DQorICB9DQorfTsNCisNCitjbGFzcyB2d3NsbCA6IHB1Ymxp YyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIHJ0eCBleHBhbmQg KGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBvdmVycmlkZQ0KKyAgew0K KyAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQorICAgICAgew0KKyAgICAg IGNhc2UgT1BfVFlQRV92djoNCisgICAgICAgIHJldHVybiBlLnVzZV9leGFj dF9pbnNuIChjb2RlX2Zvcl9wcmVkX3Z3c2xsIChlLnZlY3Rvcl9tb2RlICgp KSk7DQorICAgICAgY2FzZSBPUF9UWVBFX3Z4Og0KKyAgICAgICAgcmV0dXJu IGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfdndzbGxfc2NhbGFy IChlLnZlY3Rvcl9tb2RlICgpKSk7DQorICAgICAgZGVmYXVsdDoNCisgICAg ICAgIGdjY191bnJlYWNoYWJsZSAoKTsNCisgICAgICB9DQorICB9DQorfTsN CisNCisvKiBJbXBsZW1lbnRzIGNsbXVsICovDQordGVtcGxhdGU8aW50IFVO U1BFQz4NCitjbGFzcyBjbG11bCA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQor ew0KK3B1YmxpYzoNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVy ICZlKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICBzd2l0Y2ggKGUub3Bf aW5mby0+b3ApDQorICAgICAgew0KKyAgICAgIGNhc2UgT1BfVFlQRV92djoN CisgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuICgNCisgICAgICAg ICAgICAgICAgIGNvZGVfZm9yX3ByZWRfdmNsbXVsIChVTlNQRUMsIGUudmVj dG9yX21vZGUgKCkpKTsNCisgICAgICBjYXNlIE9QX1RZUEVfdng6DQorICAg ICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbg0KKyAgICAgICAgICAgICAg ICAgKGNvZGVfZm9yX3ByZWRfdmNsbXVsX3NjYWxhciAoVU5TUEVDLCBlLnZl Y3Rvcl9tb2RlICgpKSk7DQorICAgICAgZGVmYXVsdDoNCisgICAgICAgIGdj Y191bnJlYWNoYWJsZSAoKTsNCisgICAgICB9DQorICB9DQorfTsNCisNCisv KiBJbXBsZW1lbnRzIHZnaHNoL3ZzaDJtcy92c2hhMmNbaGxdLiAqLw0KK3Rl bXBsYXRlPGludCBVTlNQRUM+DQorY2xhc3MgdmdfbmhhYiA6IHB1YmxpYyBm dW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfbWFz a19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg fQ0KKyAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92 ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIGhhc19tZXJnZV9v cGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N CisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5z biAoY29kZV9mb3JfcHJlZF92IChVTlNQRUMsIGUudmVjdG9yX21vZGUgKCkp KTsNCisgIH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmdtdWwvdmFlcyou ICovDQordGVtcGxhdGU8aW50IFVOU1BFQz4NCitjbGFzcyBjcnlwdG9fdnYg OiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29s IGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1 cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNlX21hc2tfcHJlZGljYXRpb25fcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBo YXNfbWVyZ2Vfb3BlcmFuZF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IGZhbHNlOyB9DQorDQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRl ciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgcG9seV91aW50NjQg bnVuaXRzID0gMFU7DQorICAgIHN3aXRjaCAoZS5vcF9pbmZvLT5vcCkNCisg ICAgew0KKyAgICAgIGNhc2UgT1BfVFlQRV92djoNCisgICAgICAgIGlmIChV TlNQRUMgPT0gVU5TUEVDX1ZHTVVMKQ0KKyAgICAgICAgICByZXR1cm4gZS51 c2VfZXhhY3RfaW5zbg0KKyAgICAgICAgICAgICAgICAgICAoY29kZV9mb3Jf cHJlZF9jcnlwdG9fdnYgKFVOU1BFQywgVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7DQorICAgICAgICBlbHNlDQorICAgICAgICAgIHJldHVybiBlLnVz ZV9leGFjdF9pbnNuDQorICAgICAgICAgICAgICAgICAgIChjb2RlX2Zvcl9w cmVkX2NyeXB0b192diAoVU5TUEVDICsgMSwgVU5TUEVDICsgMSwgZS52ZWN0 b3JfbW9kZSAoKSkpOw0KKyAgICAgIGNhc2UgT1BfVFlQRV92czoNCisgICAg ICAgIC8qIENhbGN1bGF0ZSB0aGUgcmF0aW8gYmV0d2VlbiBhcmcwIGFuZCBh cmcxKi8NCisgICAgICAgIGdjY19hc3NlcnQgKG11bHRpcGxlX3AgKEdFVF9N T0RFX0JJVFNJWkUgKGUuYXJnX21vZGUgKDApKSwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdFVF9NT0RFX0JJVFNJWkUgKGUuYXJnX21v ZGUgKDEpKSwgJm51bml0cykpOw0KKyAgICAgICAgaWYgKG1heWJlX2VxIChu dW5pdHMsIDFVKSkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2lu c24gKGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2eDFfc2NhbGFyDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVU5TUEVDICsgMiwgVU5T UEVDICsgMiwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgICAgZWxzZSBp ZiAobWF5YmVfZXEgKG51bml0cywgMlUpKQ0KKyAgICAgICAgICByZXR1cm4g ZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF9jcnlwdG9fdnZ4Ml9z Y2FsYXINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChV TlNQRUMgKyAyLCBVTlNQRUMgKyAyLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQor ICAgICAgICBlbHNlIGlmIChtYXliZV9lcSAobnVuaXRzLCA0VSkpDQorICAg ICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVk X2NyeXB0b192dng0X3NjYWxhcg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUudmVjdG9y X21vZGUgKCkpKTsNCisgICAgICAgIGVsc2UgaWYgKG1heWJlX2VxIChudW5p dHMsIDhVKSkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24g KGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2eDhfc2NhbGFyDQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoVU5TUEVDICsgMiwgVU5TUEVD ICsgMiwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgICAgZWxzZQ0KKyAg ICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJl ZF9jcnlwdG9fdnZ4MTZfc2NhbGFyDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoVU5TUEVDICsgMiwgVU5TUEVDICsgMiwgZS52ZWN0 b3JfbW9kZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2Nf dW5yZWFjaGFibGUgKCk7DQorICAgIH0NCisgIH0NCit9Ow0KKw0KKy8qIElt cGxlbWVudHMgdmFlc2tmMS92c200ay4gKi8NCit0ZW1wbGF0ZTxpbnQgVU5T UEVDPg0KK2NsYXNzIGNyeXB0b192aSA6IHB1YmxpYyBmdW5jdGlvbl9iYXNl DQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAo KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCB1 c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0 dXJuIGZhbHNlOyB9DQorDQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBh bmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgcmV0dXJuIGUu dXNlX2V4YWN0X2luc24NCisgICAgICAgICAgICAgKGNvZGVfZm9yX3ByZWRf Y3J5cHRvX3ZpX3NjYWxhciAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7 DQorICB9DQorfTsNCisNCisvKiBJbXBsZW1lbnRzIHZhZXNrZjIvdnNtM2Mu ICovDQordGVtcGxhdGU8aW50IFVOU1BFQz4NCitjbGFzcyB2YWVza2YyX3Zz bTNjIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAg Ym9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsg cmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9u X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJv b2wgaGFzX21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJl dHVybiBmYWxzZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhw YW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHJldHVybiBl LnVzZV9leGFjdF9pbnNuDQorICAgICAgICAgICAgIChjb2RlX2Zvcl9wcmVk X3ZpX25vbWFza2Vkb2ZmX3NjYWxhciAoVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7DQorICB9DQorfTsNCisNCisvKiBJbXBsZW1lbnRzIHZzbTNtZS4g Ki8NCitjbGFzcyB2c20zbWUgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sN CitwdWJsaWM6DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29u c3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNlX21h c2tfcHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm YWxzZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIg JmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHJldHVybiBlLnVzZV9l eGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3ZzbTNtZSAoZS52ZWN0b3JfbW9k ZSAoKSkpOw0KKyAgfQ0KK307DQorDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHZzZXR2bDxmYWxzZT4gdnNldHZsX29iajsNCnN0YXRpYyBDT05TVEVYUFIg Y29uc3QgdnNldHZsPHRydWU+IHZzZXR2bG1heF9vYmo7DQpzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IGxvYWRzdG9yZTxmYWxzZSwgTFNUX1VOSVRfU1RSSURF LCBmYWxzZT4gdmxlX29iajsNCkBAIC0yMzg0LDYgKzI1OTAsMzUgQEAgc3Rh dGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNf VU5PUkRFUkVEPiB2c3V4c2VnX29iajsNCnN0YXRpYyBDT05TVEVYUFIgY29u c3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX09SREVSRUQ+IHZzb3hzZWdf b2JqOw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2bHNlZ2ZmIHZsc2VnZmZf b2JqOw0KKy8qIENyeXB0byBWZWN0b3IgKi8NCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHZhbmRuIHZhbmRuX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IGJpdG1hbmlwPFJPVEFURT4gICB2cm9sX29iajsNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IGJpdG1hbmlwPFJPVEFURVJUPiB2cm9yX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJfcmV2ZXJzZTxVTlNQRUNfVkJSRVY+ ICAgdmJyZXZfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgYl9yZXZl cnNlPFVOU1BFQ19WQlJFVjg+ICB2YnJldjhfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgYl9yZXZlcnNlPFVOU1BFQ19WUkVWOD4gICB2cmV2OF9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBiaXRtYW5pcDxDTFo+IHZj bHpfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgYml0bWFuaXA8Q1Ra PiB2Y3R6X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZ3c2xsIHZ3 c2xsX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNsbXVsPFVOU1BF Q19WQ0xNVUw+ICAgICAgdmNsbXVsX29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IGNsbXVsPFVOU1BFQ19WQ0xNVUxIPiAgICAgdmNsbXVsaF9vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2Z19uaGFiPFVOU1BFQ19WR0hT SD4gICAgIHZnaHNoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNy eXB0b192djxVTlNQRUNfVkdNVUw+ICAgdmdtdWxfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgY3J5cHRvX3Z2PFVOU1BFQ19WQUVTRUY+ICB2YWVz ZWZfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgY3J5cHRvX3Z2PFVO U1BFQ19WQUVTRU0+ICB2YWVzZW1fb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgY3J5cHRvX3Z2PFVOU1BFQ19WQUVTREY+ICB2YWVzZGZfb2JqOw0K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgY3J5cHRvX3Z2PFVOU1BFQ19WQUVT RE0+ICB2YWVzZG1fb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgY3J5 cHRvX3Z2PFVOU1BFQ19WQUVTWj4gICB2YWVzel9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCBjcnlwdG9fdmk8VU5TUEVDX1ZBRVNLRjE+IHZhZXNr ZjFfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdmFlc2tmMl92c20z YzxVTlNQRUNfVkFFU0tGMj4gdmFlc2tmMl9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB2Z19uaGFiPFVOU1BFQ19WU0hBMk1TPiAgIHZzaGEybXNf b2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdmdfbmhhYjxVTlNQRUNf VlNIQTJDSD4gICB2c2hhMmNoX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHZnX25oYWI8VU5TUEVDX1ZTSEEyQ0w+ICAgdnNoYTJjbF9vYmo7DQor c3RhdGljIENPTlNURVhQUiBjb25zdCBjcnlwdG9fdmk8VU5TUEVDX1ZTTTRL PiAgIHZzbTRrX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0 b192djxVTlNQRUNfVlNNNFI+ICAgdnNtNHJfb2JqOw0KK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdnNtM21lIHZzbTNtZV9vYmo7DQorc3RhdGljIENPTlNU RVhQUiBjb25zdCB2YWVza2YyX3ZzbTNjPFVOU1BFQ19WU00zQz4gICB2c20z Y19vYmo7DQorDQovKiBEZWNsYXJlIHRoZSBmdW5jdGlvbiBiYXNlIE5BTUUs IHBvaW50aW5nIGl0IHRvIGFuIGluc3RhbmNlDQogICAgb2YgY2xhc3MgPE5B TUU+X29iai4gICovDQojZGVmaW5lIEJBU0UoTkFNRSkgXA0KQEAgLTI2NDUs NSArMjg4MCwzMiBAQCBCQVNFICh2bG94c2VnKQ0KQkFTRSAodnN1eHNlZykN CkJBU0UgKHZzb3hzZWcpDQpCQVNFICh2bHNlZ2ZmKQ0KLQ0KKy8qIENyeXB0 byB2ZWN0b3IgKi8NCitCQVNFICh2YW5kbikNCitCQVNFICh2YnJldikNCitC QVNFICh2YnJldjgpDQorQkFTRSAodnJldjgpDQorQkFTRSAodmNseikNCitC QVNFICh2Y3R6KQ0KK0JBU0UgKHZyb2wpDQorQkFTRSAodnJvcikNCitCQVNF ICh2d3NsbCkNCitCQVNFICh2Y2xtdWwpDQorQkFTRSAodmNsbXVsaCkNCitC QVNFICh2Z2hzaCkNCitCQVNFICh2Z211bCkNCitCQVNFICh2YWVzZWYpDQor QkFTRSAodmFlc2VtKQ0KK0JBU0UgKHZhZXNkZikNCitCQVNFICh2YWVzZG0p DQorQkFTRSAodmFlc3opDQorQkFTRSAodmFlc2tmMSkNCitCQVNFICh2YWVz a2YyKQ0KK0JBU0UgKHZzaGEybXMpDQorQkFTRSAodnNoYTJjaCkNCitCQVNF ICh2c2hhMmNsKQ0KK0JBU0UgKHZzbTRrKQ0KK0JBU0UgKHZzbTRyKQ0KK0JB U0UgKHZzbTNtZSkNCitCQVNFICh2c20zYykNCn0gLy8gZW5kIG5hbWVzcGFj ZSByaXNjdl92ZWN0b3INCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oIGIvZ2NjL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaA0KaW5kZXggMmUx OGE2MmZlOGQuLjg3YzdmNDNhNDIzIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaA0KKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMu aA0KQEAgLTI4MCw2ICsyODAsMzQgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZsb3hzZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdnN1eHNlZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2c294c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZsc2VnZmY7DQorLyogQmVsb3cgZnVuY3Rpb25fYmFzZSBh cmUgVmVjdHJvIENyeXB0byovDQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZhbmRuOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2YnJldjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdmJyZXY4Ow0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2cmV2ODsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdmNsejsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmN0ejsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnJv bDsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnJvcjsN CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdndzbGw7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjbG11bDsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmNsbXVsaDsNCitl eHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qgdmdoc2g7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZnbXVsOw0KK2V4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YWVzZWY7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhZXNlbTsNCitleHRlcm4g Y29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdmFlc2RmOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YWVzZG07DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZhZXN6Ow0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YWVza2YxOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YWVza2YyOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2hhMm1zOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2hhMmNoOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c2hhMmNsOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2c200azsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdnNtNHI7DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZzbTNtZTsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdnNtM2M7DQp9DQp9IC8vIGVuZCBuYW1lc3Bh Y2UgcmlzY3ZfdmVjdG9yDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5k ZWYNCmluZGV4IGM0NGJjMzlkZTRkLi45NmRkMGQ5NWRlYyAxMDA2NDQNCi0t LSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1 bmN0aW9ucy5kZWYNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYNCkBAIC02NTMsNCArNjUzLDk4 IEBAIERFRl9SVlZfRlVOQ1RJT04gKHZzb3hzZWcsIHNlZ19pbmRleGVkX2xv YWRzdG9yZSwgbm9uZV9tX3ByZWRzLCB0dXBsZV92X3NjYWxhcl9wDQpERUZf UlZWX0ZVTkNUSU9OICh2bHNlZ2ZmLCBzZWdfZmF1bHRfbG9hZCwgZnVsbF9w cmVkcywgdHVwbGVfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfcHRyX29wcykN CiN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLyogRGVmaW5pYXRpb24g b2YgY3J5cHRvIHZlY3RvciBpbnRyaW5zaWMgZnVuY3Rpb25zICovDQorLy8g WlZCQiBhbmQgWlZLQg0KKyNkZWZpbmUgUkVRVUlSRURfRVhURU5TSU9OUyBa VkJCX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZicmV2LCAgYWx1LCBmdWxs X3ByZWRzLCB1X3Z2X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2Y2x6LCAg IGFsdSwgbm9uZV9tX3ByZWRzLCB1X3Z2X29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2Y3R6LCAgIGFsdSwgbm9uZV9tX3ByZWRzLCB1X3Z2X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2d3NsbCwgIGFsdSwgZnVsbF9wcmVkcywgdV93 dnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZ3c2xsLCAgYWx1LCBmdWxs X3ByZWRzLCB1X3NoaWZ0X3d2eF9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VY VEVOU0lPTlMNCisNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZC Ql9PUl9aVktCX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhbmRuLCAgYWx1 LCBmdWxsX3ByZWRzLCB1X3Z2dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmFuZG4sICBhbHUsIGZ1bGxfcHJlZHMsIHVfdnZ4X29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2YnJldjgsIGFsdSwgZnVsbF9wcmVkcywgdV92dl9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodnJldjgsICBhbHUsIGZ1bGxfcHJlZHMs IHVfdnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZyb2wsICAgYWx1LCBm dWxsX3ByZWRzLCB1X3Z2dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnJv ciwgICBhbHUsIGZ1bGxfcHJlZHMsIHVfdnZ2X29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2cm9yLCAgIGFsdSwgZnVsbF9wcmVkcywgdV9zaGlmdF92dnhf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZyb2wsICAgYWx1LCBmdWxsX3By ZWRzLCB1X3NoaWZ0X3Z2eF9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VYVEVO U0lPTlMNCisvL1pWQkMNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMg WlZCQ19FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2Y2xtdWwsICBhbHUsIGZ1 bGxfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXc2NF9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodmNsbXVsLCAgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2eF9jcnlw dG9fc2V3NjRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZjbG11bGgsIGFs dSwgZnVsbF9wcmVkcywgdV92dnZfY3J5cHRvX3NldzY0X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2Y2xtdWxoLCBhbHUsIGZ1bGxfcHJlZHMsIHVfdnZ4 X2NyeXB0b19zZXc2NF9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lP TlMNCisvL1pWS0cNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZL R19FWFQNCitERUZfUlZWX0ZVTkNUSU9OKHZnaHNoLCBub19tYXNrX3BvbGlj eSwgbm9uZV90dV9wcmVkcywgdV92dnZ2X2NyeXB0b19zZXczMl9vcHMpDQor REVGX1JWVl9GVU5DVElPTih2Z211bCwgbm9fbWFza19wb2xpY3ksIG5vbmVf dHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMpDQorI3VuZGVmIFJF UVVJUkVEX0VYVEVOU0lPTlMNCisvL1pWS05FRA0KKyNkZWZpbmUgUkVRVUlS RURfRVhURU5TSU9OUyBaVktORURfRVhUDQorREVGX1JWVl9GVU5DVElPTiAo dmFlc2VmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnZfY3J5 cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZWYsICAg Y3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJf b3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlZiwgICBjcnlwdG9fdnYs IG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gyX29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZWYsICAgY3J5cHRvX3Z2LCBu b25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94NF9vcHMp DQorREVGX1JWVl9GVU5DVElPTiAodmFlc2VmLCAgIGNyeXB0b192diwgbm9u ZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDhfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlZiwgICBjcnlwdG9fdnYsIG5vbmVf dHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gxNl9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodmFlc2VtLCAgIGNyeXB0b192diwgbm9uZV90 dV9wcmVkcywgdV92dnZfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2YWVzZW0sICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1 X3Z2c19jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZh ZXNlbSwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0 b19zZXczMl9sbXVsX3gyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVz ZW0sICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9f c2V3MzJfbG11bF94NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2Vt LCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3Nl dzMyX2xtdWxfeDhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlbSwg ICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXcz Ml9sbXVsX3gxNl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2RmLCAg IGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnZfY3J5cHRvX3NldzMy X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZGYsICAgY3J5cHRvX3Z2 LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZhZXNkZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVf cHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2YWVzZGYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3By ZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94NF9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmFlc2RmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVk cywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDhfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZhZXNkZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMs IHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gxNl9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodmFlc2RtLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywg dV92dnZfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 YWVzZG0sICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlw dG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNkbSwgICBj cnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9s bXVsX3gyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZG0sICAgY3J5 cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11 bF94NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2RtLCAgIGNyeXB0 b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxf eDhfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNkbSwgICBjcnlwdG9f dnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gx Nl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc3osICAgIGNyeXB0b192 dl9ub19vcF90eXBlLCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3 MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXN6LCAgICBjcnlwdG9f dnZfbm9fb3BfdHlwZSwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3Nl dzMyX2xtdWxfeDJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXN6LCAg ICBjcnlwdG9fdnZfbm9fb3BfdHlwZSwgbm9uZV90dV9wcmVkcywgdV92dnNf Y3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZhZXN6LCAgICBjcnlwdG9fdnZfbm9fb3BfdHlwZSwgbm9uZV90dV9wcmVk cywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDhfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZhZXN6LCAgICBjcnlwdG9fdnZfbm9fb3BfdHlwZSwgbm9u ZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDE2X29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2YWVza2YxLCAgY3J5cHRvX3ZpLCBub25l X3R1X3ByZWRzLCB1X3Z2X3NpemVfY3J5cHRvX3NldzMyX29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2YWVza2YyLCAgY3J5cHRvX3ZpLCBub25lX3R1X3By ZWRzLCB1X3Z2dl9zaXplX2NyeXB0b19zZXczMl9vcHMpDQorI3VuZGVmIFJF UVVJUkVEX0VYVEVOU0lPTlMNCisvL1pWS05IQQ0KKy8vWlZLTkhBIGFuZCBa VktOSEINCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZLTkhBX09S X1pWS05IQl9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2c2hhMm1zLCAgbm9f bWFza19wb2xpY3ksIG5vbmVfdHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3 MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzaGEyY2gsICBub19tYXNr X3BvbGljeSwgbm9uZV90dV9wcmVkcywgdV92dnZ2X2NyeXB0b19zZXczMl9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNoYTJjbCwgIG5vX21hc2tfcG9s aWN5LCBub25lX3R1X3ByZWRzLCB1X3Z2dnZfY3J5cHRvX3NldzMyX29wcykN CisjdW5kZWYgUkVRVUlSRURfRVhURU5TSU9OUw0KKw0KKyNkZWZpbmUgUkVR VUlSRURfRVhURU5TSU9OUyBaVktOSEJfRVhUDQorREVGX1JWVl9GVU5DVElP TiAodnNoYTJtcywgIG5vX21hc2tfcG9saWN5LCBub25lX3R1X3ByZWRzLCB1 X3Z2dnZfY3J5cHRvX3NldzY0X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2 c2hhMmNoLCAgbm9fbWFza19wb2xpY3ksIG5vbmVfdHVfcHJlZHMsIHVfdnZ2 dl9jcnlwdG9fc2V3NjRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzaGEy Y2wsICBub19tYXNrX3BvbGljeSwgbm9uZV90dV9wcmVkcywgdV92dnZ2X2Ny eXB0b19zZXc2NF9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lPTlMN CisvL1p2a3NlZA0KKyNkZWZpbmUgUkVRVUlSRURfRVhURU5TSU9OUyBaVktT RURfRVhUDQorREVGX1JWVl9GVU5DVElPTiAodnNtNGssIGNyeXB0b192aSwg bm9uZV90dV9wcmVkcywgdV92dl9zaXplX2NyeXB0b19zZXczMl9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodnNtNHIsIGNyeXB0b192diwgbm9uZV90dV9w cmVkcywgdV92dnZfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZVTkNU SU9OICh2c200ciwgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19j cnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzbTRyLCBj cnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9s bXVsX3gyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c200ciwgY3J5cHRv X3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94 NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNtNHIsIGNyeXB0b192diwg bm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDhfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzbTRyLCBjcnlwdG9fdnYsIG5vbmVf dHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gxNl9vcHMpDQor I3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lPTlMNCisvL1p2a3NoDQorI2RlZmlu ZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWS1NIX0VYVA0KK0RFRl9SVlZfRlVO Q1RJT04gKHZzbTNtZSwgbm9fbWFza19wb2xpY3ksICAgIG5vbmVfdHVfcHJl ZHMsIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodnNtM2MsICBjcnlwdG9fdmksICAgIG5vbmVfdHVfcHJlZHMsIHVfdnZ2 X3NpemVfY3J5cHRvX3NldzMyX29wcykNCisjdW5kZWYgUkVRVUlSRURfRVhU RU5TSU9OUw0KI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04NCmRpZmYgLS1naXQg YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuY2MNCmluZGV4IDBkNTAxMTEyMTZkLi5lZTgwNThkY2RiMSAx MDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1 aWx0aW5zLXNoYXBlcy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjDQpAQCAtOTg0LDYgKzk4NCw4 OSBAQCBzdHJ1Y3Qgc2VnX2ZhdWx0X2xvYWRfZGVmIDogcHVibGljIGJ1aWxk X2Jhc2UNCiAgIH0NCn07DQorLyogdnNtNHIvdmFlcyogY2xhc3MuICAqLw0K K3N0cnVjdCBjcnlwdG9fdnZfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCit7 DQorICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29u c3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICAgICAgICAg ICAgICAgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAg ew0KKyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92 ZXJsb2FkZWQuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0 YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVk KSkNCisgICAgICByZXR1cm4gbnVsbHB0cjsNCisgICAgYi5hcHBlbmRfYmFz ZV9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKyAgICBiLmFwcGVuZF9u YW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7 DQorDQorICAgIGlmICghb3ZlcmxvYWRlZF9wKQ0KKyAgICB7DQorICAgICAg aWYgKGluc3RhbmNlLm9wX2luZm8tPm9wID09IE9QX1RZUEVfdnYpDQorICAg ICAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5 cGUuaW5kZXhdLnZlY3Rvcik7DQorICAgICAgZWxzZQ0KKyAgICAgIHsNCisg ICAgICAgIHZlY3Rvcl90eXBlX2luZGV4IGFyZzBfdHlwZV9pZHgNCisgICAg ICAgICAgPSBpbnN0YW5jZS5vcF9pbmZvLT5hcmdzWzFdLmdldF9mdW5jdGlv bl90eXBlX2luZGV4DQorICAgICAgICAgICAgKGluc3RhbmNlLnR5cGUuaW5k ZXgpOw0KKyAgICAgICAgYi5hcHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1th cmcwX3R5cGVfaWR4XS52ZWN0b3IpOw0KKyAgICAgICAgdmVjdG9yX3R5cGVf aW5kZXggcmV0X3R5cGVfaWR4DQorICAgICAgICAgID0gaW5zdGFuY2Uub3Bf aW5mby0+cmV0LmdldF9mdW5jdGlvbl90eXBlX2luZGV4DQorICAgICAgICAg ICAgKGluc3RhbmNlLnR5cGUuaW5kZXgpOw0KKyAgICAgICAgYi5hcHBlbmRf bmFtZSAodHlwZV9zdWZmaXhlc1tyZXRfdHlwZV9pZHhdLnZlY3Rvcik7DQor ICAgICAgfQ0KKyAgICB9DQorDQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRp Y2F0aW9uX3N1ZmZpeGVzW2luc3RhbmNlLnByZWRdKTsNCisgICAgcmV0dXJu IGIuZmluaXNoX25hbWUgKCk7DQorICB9DQorfTsNCisNCisvKiB2YWVza2Yx L3ZhZXNrZjIvdnNtNGsvdnNtM2MgY2xhc3MuICAqLw0KK3N0cnVjdCBjcnlw dG9fdmlfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UNCit7DQorICBjaGFyICpn ZXRfbmFtZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25f aW5zdGFuY2UgJmluc3RhbmNlLA0KKyAgICAgICAgICAgICAgICAgIGJvb2wg b3ZlcmxvYWRlZF9wKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICAvKiBS ZXR1cm4gbnVsbHB0ciBpZiBpdCBjYW4gbm90IGJlIG92ZXJsb2FkZWQuICAq Lw0KKyAgICBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0YW5jZS5iYXNlLT5j YW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVkKSkNCisgICAgICBy ZXR1cm4gbnVsbHB0cjsNCisgICAgYi5hcHBlbmRfYmFzZV9uYW1lIChpbnN0 YW5jZS5iYXNlX25hbWUpOw0KKyAgICBpZiAoIW92ZXJsb2FkZWRfcCkNCisg ICAgew0KKyAgICAgIGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNb aW5zdGFuY2Uub3BfaW5mby0+b3BdKTsNCisgICAgICBiLmFwcGVuZF9uYW1l ICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7 DQorICAgIH0NCisgICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3Vm Zml4ZXNbaW5zdGFuY2UucHJlZF0pOw0KKyAgICByZXR1cm4gYi5maW5pc2hf bmFtZSAoKTsNCisgIH0NCit9Ow0KKw0KKy8qIHZhZXN6IGNsYXNzLiAgKi8N CitzdHJ1Y3QgY3J5cHRvX3Z2X25vX29wX3R5cGVfZGVmIDogcHVibGljIGJ1 aWxkX2Jhc2UNCit7DQorICBjaGFyICpnZXRfbmFtZSAoZnVuY3Rpb25fYnVp bGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNlLA0K KyAgICAgICAgICAgICAgICAgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBv dmVycmlkZQ0KKyAgew0KKyAgICAvKiBSZXR1cm4gbnVsbHB0ciBpZiBpdCBj YW4gbm90IGJlIG92ZXJsb2FkZWQuICAqLw0KKyAgICBpZiAob3ZlcmxvYWRl ZF9wICYmICFpbnN0YW5jZS5iYXNlLT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChp bnN0YW5jZS5wcmVkKSkNCisgICAgICByZXR1cm4gbnVsbHB0cjsNCisgICAg Yi5hcHBlbmRfYmFzZV9uYW1lIChpbnN0YW5jZS5iYXNlX25hbWUpOw0KKyAg ICAgIA0KKyAgICBpZiAoIW92ZXJsb2FkZWRfcCkNCisgICAgew0KKyAgICAg IGIuYXBwZW5kX25hbWUgKG9wZXJhbmRfc3VmZml4ZXNbaW5zdGFuY2Uub3Bf aW5mby0+b3BdKTsNCisgICAgICB2ZWN0b3JfdHlwZV9pbmRleCBhcmcwX3R5 cGVfaWR4DQorICAgICAgICA9IGluc3RhbmNlLm9wX2luZm8tPmFyZ3NbMV0u Z2V0X2Z1bmN0aW9uX3R5cGVfaW5kZXgNCisgICAgICAgICAgKGluc3RhbmNl LnR5cGUuaW5kZXgpOw0KKyAgICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3Vm Zml4ZXNbYXJnMF90eXBlX2lkeF0udmVjdG9yKTsNCisgICAgICB2ZWN0b3Jf dHlwZV9pbmRleCByZXRfdHlwZV9pZHgNCisgICAgICAgID0gaW5zdGFuY2Uu b3BfaW5mby0+cmV0LmdldF9mdW5jdGlvbl90eXBlX2luZGV4DQorICAgICAg ICAgIChpbnN0YW5jZS50eXBlLmluZGV4KTsNCisgICAgICBiLmFwcGVuZF9u YW1lICh0eXBlX3N1ZmZpeGVzW3JldF90eXBlX2lkeF0udmVjdG9yKTsNCisg ICAgfQ0KKw0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZm aXhlc1tpbnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlzaF9u YW1lICgpOw0KKyAgfQ0KK307DQorDQpTSEFQRSh2c2V0dmwsIHZzZXR2bCkN ClNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQ0KU0hBUEUobG9hZHN0b3JlLCBs b2Fkc3RvcmUpDQpAQCAtMTAxMiw1ICsxMDk1LDcgQEAgU0hBUEUodmxlbmIs IHZsZW5iKQ0KU0hBUEUoc2VnX2xvYWRzdG9yZSwgc2VnX2xvYWRzdG9yZSkN ClNIQVBFKHNlZ19pbmRleGVkX2xvYWRzdG9yZSwgc2VnX2luZGV4ZWRfbG9h ZHN0b3JlKQ0KU0hBUEUoc2VnX2ZhdWx0X2xvYWQsIHNlZ19mYXVsdF9sb2Fk KQ0KLQ0KK1NIQVBFKGNyeXB0b192diwgY3J5cHRvX3Z2KQ0KK1NIQVBFKGNy eXB0b192aSwgY3J5cHRvX3ZpKQ0KK1NIQVBFKGNyeXB0b192dl9ub19vcF90 eXBlLCBjcnlwdG9fdnZfbm9fb3BfdHlwZSkNCn0gLy8gZW5kIG5hbWVzcGFj ZSByaXNjdl92ZWN0b3INCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaCBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQppbmRleCBk M2I1Y2Y3ZDAyNi4uYWMyYTI4Y2UwMTcgMTAwNjQ0DQotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KKysr IGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hh cGVzLmgNCkBAIC01Miw2ICs1MiwxMCBAQCBleHRlcm4gY29uc3QgZnVuY3Rp b25fc2hhcGUgKmNvbnN0IHZsZW5iOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBzZWdfbG9hZHN0b3JlOw0KZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCBzZWdfaW5kZXhlZF9sb2Fkc3RvcmU7DQpl eHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHNlZ19mYXVsdF9s b2FkOw0KKy8qIEJlbG93IGZ1bmN0aW9uX3NoYXBlIGFyZSBWZWN0cm8gQ3J5 cHRvKi8NCitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGNy eXB0b192djsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0 IGNyeXB0b192aTsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNv bnN0IGNyeXB0b192dl9ub19vcF90eXBlOw0KfQ0KfSAvLyBlbmQgbmFtZXNw YWNlIHJpc2N2X3ZlY3Rvcg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZg0KaW5k ZXggMDZkYzcxMDk0NTguLjYxMDE5YTU2ODQ0IDEwMDY0NA0KLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVm DQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy10eXBlcy5kZWYNCkBAIC0zMzksNiArMzM5LDE4IEBAIGFsb25nIHdpdGgg R0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuIElmIG5vdCBzZWUNCiNkZWZp bmUgREVGX1JWVl9UVVBMRV9PUFMoVFlQRSwgUkVRVUlSRSkNCiNlbmRpZg0K Ky8qIFVzZSAiREVGX1JWVl9DUllQVE9fU0VXMzJfT1BTIiBtYWNybyBpbmNs dWRlIGFsbCBTRVc9MzIgdHlwZXMNCisgICB3aGljaCB3aWxsIGJlIGl0ZXJh dGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuICAq Lw0KKyNpZm5kZWYgREVGX1JWVl9DUllQVE9fU0VXMzJfT1BTDQorI2RlZmlu ZSBERUZfUlZWX0NSWVBUT19TRVczMl9PUFMoVFlQRSwgUkVRVUlSRSkNCisj ZW5kaWYNCisNCisvKiBVc2UgIkRFRl9SVlZfQ1JZUFRPX1NFVzY0X09QUyIg bWFjcm8gaW5jbHVkZSBhbGwgU0VXPTY0IHR5cGVzDQorICAgd2hpY2ggd2ls bCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVu Y3Rpb25zLiAgKi8NCisjaWZuZGVmIERFRl9SVlZfQ1JZUFRPX1NFVzY0X09Q Uw0KKyNkZWZpbmUgREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTKFRZUEUsIFJF UVVJUkUpDQorI2VuZGlmDQorDQpERUZfUlZWX0lfT1BTICh2aW50OG1mOF90 LCBSVlZfUkVRVUlSRV9NSU5fVkxFTl82NCkNCkRFRl9SVlZfSV9PUFMgKHZp bnQ4bWY0X3QsIDApDQpERUZfUlZWX0lfT1BTICh2aW50OG1mMl90LCAwKQ0K QEAgLTEzNTUsNiArMTM2NywxNyBAQCBERUZfUlZWX1RVUExFX09QUyAodmZs b2F0NjRtMngzX3QsIFJWVl9SRVFVSVJFX0VMRU5fRlBfNjQpDQpERUZfUlZW X1RVUExFX09QUyAodmZsb2F0NjRtMng0X3QsIFJWVl9SRVFVSVJFX0VMRU5f RlBfNjQpDQpERUZfUlZWX1RVUExFX09QUyAodmZsb2F0NjRtNHgyX3QsIFJW Vl9SRVFVSVJFX0VMRU5fRlBfNjQpDQorREVGX1JWVl9DUllQVE9fU0VXMzJf T1BTICh2dWludDMybWYyX3QsIFJWVl9SRVFVSVJFX01JTl9WTEVOXzY0KQ0K K0RFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUyAodnVpbnQzMm0xX3QsIDApDQor REVGX1JWVl9DUllQVE9fU0VXMzJfT1BTICh2dWludDMybTJfdCwgMCkNCitE RUZfUlZWX0NSWVBUT19TRVczMl9PUFMgKHZ1aW50MzJtNF90LCAwKQ0KK0RF Rl9SVlZfQ1JZUFRPX1NFVzMyX09QUyAodnVpbnQzMm04X3QsIDApDQorDQor REVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bTFfdCwgUlZWX1JF UVVJUkVfRUxFTl82NCkNCitERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMgKHZ1 aW50NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RFRl9SVlZfQ1JZ UFRPX1NFVzY0X09QUyAodnVpbnQ2NG00X3QsIFJWVl9SRVFVSVJFX0VMRU5f NjQpDQorREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bThfdCwg UlZWX1JFUVVJUkVfRUxFTl82NCkNCisNCiN1bmRlZiBERUZfUlZWX0lfT1BT DQojdW5kZWYgREVGX1JWVl9VX09QUw0KI3VuZGVmIERFRl9SVlZfRl9PUFMN CkBAIC0xNDA2LDMgKzE0MjksNSBAQCBERUZfUlZWX1RVUExFX09QUyAodmZs b2F0NjRtNHgyX3QsIFJWVl9SRVFVSVJFX0VMRU5fRlBfNjQpDQojdW5kZWYg REVGX1JWVl9MTVVMMl9PUFMNCiN1bmRlZiBERUZfUlZWX0xNVUw0X09QUw0K I3VuZGVmIERFRl9SVlZfVFVQTEVfT1BTDQorI3VuZGVmIERFRl9SVlZfQ1JZ UFRPX1NFVzMyX09QUw0KKyN1bmRlZiBERUZfUlZWX0NSWVBUT19TRVc2NF9P UFMNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmNjDQppbmRleCBkNTA5YmU1MWUzZC4uMjVlMGI2ZTU2ZGUg MTAwNjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5jYw0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuY2MNCkBAIC01MjEsNiArNTIxLDE5IEBAIHN0YXRpYyBj b25zdCBydnZfdHlwZV9pbmZvIHR1cGxlX29wc1tdID0gew0KI2luY2x1ZGUg InJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiDQogICB7TlVNX1ZF Q1RPUl9UWVBFUywgMH19Ow0KKy8qIEJlbG93IHR5cGVzIHdpbGwgYmUgcmVn aXN0ZXJlZCBmb3IgdmVjdG9yLWNyeXB0byBpbnRyaW5zaWMgZnVuY3Rpb25z Ki8NCisvKiBBIGxpc3Qgb2Ygc2V3MzIgd2lsbCBiZSByZWdpc3RlcmVkIGZv ciB2ZWN0b3ItY3J5cHRvIGludHJpbnNpYyBmdW5jdGlvbnMuICAqLw0KK3N0 YXRpYyBjb25zdCBydnZfdHlwZV9pbmZvIGNyeXB0b19zZXczMl9vcHNbXSA9 IHsNCisjZGVmaW5lIERFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUyhUWVBFLCBS RVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwNCisjaW5j bHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiINCisgIHtO VU1fVkVDVE9SX1RZUEVTLCAwfX07DQorDQorLyogQSBsaXN0IG9mIHNldzY0 IHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgdmVjdG9yLWNyeXB0byBpbnRyaW5z aWMgZnVuY3Rpb25zLiAgKi8NCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5m byBjcnlwdG9fc2V3NjRfb3BzW10gPSB7DQorI2RlZmluZSBERUZfUlZWX0NS WVBUT19TRVc2NF9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMj VFlQRSwgUkVRVUlSRX0sDQorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWls dGlucy10eXBlcy5kZWYiDQorICB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19Ow0K Kw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBy dnZfYXJnX3R5cGVfaW5mb19lbmQNCiAgID0gcnZ2X2FyZ190eXBlX2luZm8g KE5VTV9CQVNFX1RZUEVTKTsNCkBAIC03NTQsNiArNzY3LDExIEBAIHN0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gdl9zaXplX2Fy Z3NbXQ0KICAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zaXplKSwNCiAgICAg IHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07DQorLyogQSBsaXN0IG9mIGFyZ3Mg Zm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGRvdWJsZSBkZW1vdGVfdHlwZSwgc2l6 ZV90KSBmdW5jdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBy dnZfYXJnX3R5cGVfaW5mbyB3dl9zaXplX2FyZ3NbXQ0KKyAgPSB7cnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX2RvdWJsZV90cnVuY192ZWN0b3IpLA0K KyAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSkscnZ2X2Fy Z190eXBlX2luZm9fZW5kfTsNCisNCi8qIEEgbGlzdCBvZiBhcmdzIGZvciB2 ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSwgdmVjdG9yX3R5cGUsIHNp emUpDQogICogZnVuY3Rpb24uICAqLw0Kc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyB2dl9zaXplX2FyZ3NbXQ0KQEAgLTEwNDQs NiArMTA2MiwxNCBAQCBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIHVfdl9vcHMNCiAgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFT RV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KICAgICAgZW5kX2FyZ3Mg LyogQXJncyAqL307DQorLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlv biBmb3IgdmVjdG9yX3R5cGUgZnVuYyAodmVjdG9yX3R5cGUpDQorICogZnVu Y3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gdV92dl9vcHMNCisgID0ge3Vfb3BzLCAvKiBUeXBl cyAqLw0KKyAgICAgT1BfVFlQRV92LCAvKiBTdWZmaXggKi8NCisgICAgIHJ2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4g dHlwZSAqLw0KKyAgICAgdl9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdW5zaWduZWQgbG9uZyBm dW5jICh2ZWN0b3JfdHlwZSkNCiAgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24u ICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGJfdWxv bmdfbV9vcHMNCkBAIC0yMTc0LDYgKzIyMDAsMTQgQEAgc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3d2dl9vcHMNCiAgICAgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlw ZSAqLw0KICAgICAgd3Z2X2FyZ3MgLyogQXJncyAqL307DQorLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo ZG91YmxlIGRlbW90ZSB0eXBlLCBzaXplIHR5cGUpDQorICogZnVuY3Rpb24g cmVnaXN0cmF0aW9uLiAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2 X29wX2luZm8gdV9zaGlmdF93dnhfb3BzDQorICA9IHt3ZXh0dV9vcHMsICAg LyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdngsICAgLyogU3VmZml4ICov DQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwg LyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHd2X3NpemVfYXJncyAvKiBBcmdz ICovfTsNCisNCi8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9y IHZlY3Rvcl90eXBlIGZ1bmMgKGRvdWJsZSBkZW1vdGUgdHlwZSwgZG91Ymxl DQogICogZGVtb3RlIHNjYWxhcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRp b24uICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGlf d3Z4X29wcw0KQEAgLTI2MDQsNiArMjYzOCwxMDEgQEAgc3RhdGljIENPTlNU RVhQUiBjb25zdCBydnZfb3BfaW5mbyBhbGxfdl92Y3JlYXRlX2xtdWw0X3gy X29wcw0KICAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVs X2V4dF94MiksIC8qIFJldHVybiB0eXBlICovDQogICAgICBleHRfdmNyZWF0 ZV9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5m b3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKS4N CisgICBTb21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz0zMiwgc3VjaCBhcyBj cnlwdG8gdmVjdG9sIFp2a2cgZXh0ZW5zaW9uLg0KKyAqIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi4gICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZf YXJnX3R5cGVfaW5mbyB2c19sbXVsX3gyX2FyZ3NbXQ0KKyAgPSB7cnZ2X2Fy Z190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190 eXBlX2luZm9fZW5kfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9hcmdfdHlwZV9pbmZvIHZzX2xtdWxfeDRfYXJnc1tdDQorICA9IHtydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3g0KSwNCisgICAg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJn X3R5cGVfaW5mb19lbmR9Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3Qg cnZ2X2FyZ190eXBlX2luZm8gdnNfbG11bF94OF9hcmdzW10NCisgID0ge3J2 dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRfeDgpLA0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9h cmdfdHlwZV9pbmZvX2VuZH07DQorDQorc3RhdGljIENPTlNURVhQUiBjb25z dCBydnZfYXJnX3R5cGVfaW5mbyB2c19sbXVsX3gxNl9hcmdzW10NCisgID0g e3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRfeDE2KSwN CisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBy dnZfYXJnX3R5cGVfaW5mb19lbmR9Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gdV92dnZfY3J5cHRvX3NldzMyX29wcw0KKyAg PSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyogVHlwZXMgKi8NCisgICAgIE9Q X1RZUEVfdnYsICAgIC8qIFN1ZmZpeCAqLw0KKyAgICAgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlICovDQor ICAgICB2dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnZ2X2NyeXB0b19zZXczMl9vcHMN CisgID0ge2NyeXB0b19zZXczMl9vcHMsICAgIC8qIFR5cGVzICovDQorICAg ICBPUF9UWVBFX3Z2LCAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdf dHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAq Lw0KKyAgICAgdnZ2X2FyZ3MgLyogQXJncyAqL307DQorDQorc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2dl9zaXplX2NyeXB0b19z ZXczMl9vcHMNCisgID0ge2NyeXB0b19zZXczMl9vcHMsICAgIC8qIFR5cGVz ICovDQorICAgICBPUF9UWVBFX3ZpLCAgICAvKiBTdWZmaXggKi8NCisgICAg IHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1 cm4gdHlwZSAqLw0KKyAgICAgdnZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99Ow0K Kw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dl9z aXplX2NyeXB0b19zZXczMl9vcHMNCisgID0ge2NyeXB0b19zZXczMl9vcHMs ICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3ZpLCAgICAvKiBTdWZm aXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0 b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdl9zaXplX2FyZ3MgLyog QXJncyAqL307DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyB1X3Z2c19jcnlwdG9fc2V3MzJfb3BzDQorICA9IHtjcnlwdG9fc2V3 MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92cywgICAg LyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZ2X2FyZ3Mg LyogQXJncyAqL307DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZf b3BfaW5mbyB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMNCisgID0g e2NyeXB0b19zZXczMl9vcHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9U WVBFX3ZzLCAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92bG11bF9leHRfeDIpLCAvKiBSZXR1cm4gdHlwZSAq Lw0KKyAgICAgdnNfbG11bF94Ml9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnNfY3J5cHRv X3NldzMyX2xtdWxfeDRfb3BzDQorICA9IHtjcnlwdG9fc2V3MzJfb3BzLCAg ICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92cywgICAgLyogU3VmZml4 ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxf ZXh0X3g0KSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZzX2xtdWxfeDRf YXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcw0K KyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyogVHlwZXMgKi8NCisgICAg IE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAqLw0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94OCksIC8qIFJldHVybiB0 eXBlICovDQorICAgICB2c19sbXVsX3g4X2FyZ3MgLyogQXJncyAqL307DQor DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2c19j cnlwdG9fc2V3MzJfbG11bF94MTZfb3BzDQorICA9IHtjcnlwdG9fc2V3MzJf b3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92cywgICAgLyog U3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmxtdWxfZXh0X3gxNiksIC8qIFJldHVybiB0eXBlICovDQorICAgICB2c19s bXVsX3gxNl9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KKy8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKHZlY3Rv cl90eXBlKS4NCisgICBTb21lIGlucyBqdXN0IHN1cHBvcnRzIFNFVz02NCwg c3VjaCBhcyBjcnlwdG8gdmVjdG9sIFp2YmMgZXh0ZW5zaW9uDQorICAgdmNs bXVsLnZ2LCB2Y2xtdWwudnguDQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9u LiAgKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHVf dnZ2X2NyeXB0b19zZXc2NF9vcHMNCisgID0ge2NyeXB0b19zZXc2NF9vcHMs ICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3Z2LCAgICAvKiBTdWZm aXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0 b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnZfYXJncyAvKiBBcmdz ICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IHVfdnZ4X2NyeXB0b19zZXc2NF9vcHMNCisgID0ge2NyeXB0b19zZXc2NF9v cHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3Z4LCAgICAvKiBT dWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92 ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnhfYXJncyAvKiBB cmdzICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIHVfdnZ2dl9jcnlwdG9fc2V3NjRfb3BzDQorICA9IHtjcnlwdG9fc2V3 NjRfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92diwgICAg LyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JB U0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZ2dl9hcmdz IC8qIEFyZ3MgKi99Ow0KKw0KLyogQSBsaXN0IG9mIGFsbCBSVlYgYmFzZSBm dW5jdGlvbiB0eXBlcy4gICovDQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGZ1 bmN0aW9uX3R5cGVfaW5mbyBmdW5jdGlvbl90eXBlc1tdID0gew0KI2RlZmlu ZSBERUZfUlZWX1RZUEVfSU5ERVgoICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCkBAIC00MTc2LDcgKzQz MDUsOSBAQCByZWdpc3RlcmVkX2Z1bmN0aW9uOjpvdmVybG9hZGVkX2hhc2gg KGNvbnN0IHZlYzx0cmVlLCB2YV9nYz4gJmFyZ2xpc3QpDQogICAgICAgIF9f cmlzY3ZfdnNldCh2aW50OG0yX3QgZGVzdCwgc2l6ZV90IGluZGV4LCB2aW50 OG0xX3QgdmFsdWUpOyBUaGUgcmVhc29uDQogICAgICAgIGlzIHRoZSBzYW1l IGFzIGFib3ZlLiAqLw0KICAgICAgIGlmICgoaW5zdGFuY2UuYmFzZSA9PSBi YXNlczo6dmdldCAmJiAoaSA9PSAobGVuIC0gMSkpKQ0KLSAgIHx8IChpbnN0 YW5jZS5iYXNlID09IGJhc2VzOjp2c2V0ICYmIChpID09IChsZW4gLSAyKSkp KQ0KKyAgIHx8ICgoaW5zdGFuY2UuYmFzZSA9PSBiYXNlczo6dnNldA0KKyAg ICAgICAgICAgICAgIHx8IGluc3RhbmNlLnNoYXBlID09IHNoYXBlczo6Y3J5 cHRvX3ZpKQ0KKyAgICAgICAgICAgICAmJiAoaSA9PSAobGVuIC0gMikpKSkN CmFyZ3VtZW50X3R5cGVzLnNhZmVfcHVzaCAoc2l6ZV90eXBlX25vZGUpOw0K ICAgICAgIC8qIFZlY3RvciBmaXhlZC1wb2ludCBhcml0aG1ldGljIGluc3Ry dWN0aW9ucyByZXF1aXJpbmcgYXJndW1lbnQgdnhybS4NCiAgICAgRm9yIGV4 YW1wbGU6IHZ1aW50MzJtNF90IF9fcmlzY3ZfdmFhZGR1KHZ1aW50MzJtNF90 IHZzMiwNCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZl Y3Rvci1idWlsdGlucy5kZWYNCmluZGV4IDRiMmNhOTg4YjQzLi4wNTVlZThi MmNhNCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLmRlZg0KKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMuZGVmDQpAQCAtNTU4LDYgKzU1OCw3IEBAIERF Rl9SVlZfVFlQRSAodmZsb2F0NjRtOF90LCAxNywgX19ydnZfZmxvYXQ2NG04 X3QsIGRvdWJsZSwgUlZWTThERiwgX2Y2NG04LA0KREVGX1JWVl9PUF9UWVBF ICh2dikNCkRFRl9SVlZfT1BfVFlQRSAodngpDQorREVGX1JWVl9PUF9UWVBF ICh2aSkNCkRFRl9SVlZfT1BfVFlQRSAodikNCkRFRl9SVlZfT1BfVFlQRSAo d3YpDQpERUZfUlZWX09QX1RZUEUgKHd4KQ0KZGlmZiAtLWdpdCBhL2djYy9j b25maWcvcmlzY3YvdmVjdG9yLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi92ZWN0 b3IubWQNCmluZGV4IDNkMmMxYzNjZThmLi5lOTlhMzEyYjViNiAxMDA2NDQN Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kDQorKysgYi9nY2Mv Y29uZmlnL3Jpc2N2L3ZlY3Rvci5tZA0KQEAgLTg2NCw5ICs4NjQsOSBAQA0K ICB2bmNsaXAsdmljbXAsdmZhbHUsdmZtdWwsdmZtaW5tYXgsdmZkaXYsdmZ3 YWx1LHZmd211bCxcDQogIHZmc2duaix2ZmNtcCx2c2xpZGV1cCx2c2xpZGVk b3duLHZpc2xpZGUxdXAsXA0KICB2aXNsaWRlMWRvd24sdmZzbGlkZTF1cCx2 ZnNsaWRlMWRvd24sdmdhdGhlcix2aXdtdWxhZGQsdmZ3bXVsYWRkLFwNCi0g ICB2bHNlZ2RzLHZsc2VnZHV4LHZsc2VnZG94LHZhbmRuLHZyb2wsdnJvcix2 d3NsbCIpDQorICAgdmxzZWdkcyx2bHNlZ2R1eCx2bHNlZ2RveCx2YW5kbix2 cm9sLHZyb3IsdmNsbXVsLHZjbG11bGgsdndzbGwiKQ0KICAgKGNvbnN0X2lu dCA4KQ0KLSAoZXFfYXR0ciAidHlwZSIgInZzdHV4LHZzdG94LHZzc2VndHMs dnNzZWd0dXgsdnNzZWd0b3gsdmNsbXVsLHZjbG11bGgiKQ0KKyAoZXFfYXR0 ciAidHlwZSIgInZzdHV4LHZzdG94LHZzc2VndHMsdnNzZWd0dXgsdnNzZWd0 b3giKQ0KICAgKGNvbnN0X2ludCA1KQ0KKGVxX2F0dHIgInR5cGUiICJ2aW11 bGFkZCx2Zm11bGFkZCIpDQotLSANCjIuMTcuMQ0KIA0KIA0K ------=_001_NextPart636024105544_=------