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 8D1ED3858C62 for ; Mon, 8 Jan 2024 23:02:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8D1ED3858C62 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 8D1ED3858C62 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=1704754960; cv=none; b=TFP8H6zF9E9z+W8nVniY1olKcmECB8FJvQEcO/SpUxBziifdF9jp9KS1YBXwFvTOimT1K3P+Ki1D2c1M1JFD/S/Y6MSMcXVbb4XTyOvYBbJmrr+ZOHyXtWcHZFON2k+tf/V2U9d414uEtD9cXS+VT4k/KMPjCskjBTrkHD/+/8U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704754960; c=relaxed/simple; bh=e+03C2zJdJNDSVqa6DJdza+lM0pmChbtQD5Pf75dmiM=; h=Date:From:To:Subject:Mime-Version:Message-ID; b=LgfUNY0B0ii1F1VWguRbVTvlf3Q6ZkbWsNStwXMaAET4L3HTpPRkK/pHixcdnKLmM7l+oLUeecw+WBhTbR0G+7bLtzNeqVN9nd5FoctYG8eVDBENA/sw7o1jrAi2Z2ZRB8lEuIATsX52agHImPYKAMvulLYUW9n1Pkhcn/kje+8= ARC-Authentication-Results: i=1; server2.sourceware.org X-QQ-mid: bizesmtp77t1704754941t1gb1ubb Received: from TABLET-POE6JQHH ( [116.77.2.214]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 09 Jan 2024 07:02:20 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: Qw3m3VZqAJegOEmA6c0Og1puuly1BeQC3uqs1DvYc0C5csqpJzsvGAPhbfw8M Mk2ioBnipDUDBew2YHkzIUBR9W06oRNEXMFSo00ncjSSNsjO8lxekGTgRBv5jUSy+xcWdX/ QhYLDSnKJpWsLbLrYiXHkv10SdM/xNkIZ9tJaOl9wunyHo7kv0yL8vs679iRtNQx2tYN2dx V69spF1Zmz79jkAQaJXRCStEqDSgqwsmsYyvY2+uGmtoJH3tdgKAFjkR3O+ZcZUr7VLL5LJ baFOF2vs8nJas8lL5iiBSxCeLMXZQ6Lxr2K1wUI2Bq+VQdaxoBBNjn/phGnspYGRVmJ1Mnz /wi8D1OFfoQgclK69e6OukkfMZSjYzYYSaZVb4WD2WseBA5quF0A9VI6DHgLS+sYA9dQuxD TkE0+QaQOVw= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 289137757310011125 Date: Tue, 9 Jan 2024 07:02:21 +0800 From: =?GB2312?B?1tO+09Xc?= To: wangfeng , gcc-patches Cc: kito.cheng , "Jeff Law" , wangfeng Subject: Re: [PATCH v7 1/2] RISC-V: Add crypto vector builtin function. References: <20240108091201.8087-1-wangfeng@eswincomputing.com>, <20240108091201.8087-2-wangfeng@eswincomputing.com> X-Priority: 3 X-GUID: 55FF2F7C-7655-42DA-8377-EA9DFD91D8D5 X-Has-Attach: no X-Mailer: Foxmail 7.2.23.121[cn] Mime-Version: 1.0 Message-ID: Content-Type: multipart/alternative; boundary="----=_001_NextPart384752564044_=----" X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,CHARSET_FARAWAY_HEADER,GIT_PATCH_0,HTML_MESSAGE,KAM_DMARC_STATUS,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_NextPart384752564044_=---- Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 TEdUTS4NCg0KDQoNCmp1emhlLnpob25nQHJpdmFpLmFpDQogDQpGcm9tOiBG ZW5nIFdhbmcNCkRhdGU6IDIwMjQtMDEtMDggMTc6MTINClRvOiBnY2MtcGF0 Y2hlcw0KQ0M6IGtpdG8uY2hlbmc7IGplZmZyZXlhbGF3OyBqdXpoZS56aG9u ZzsgRmVuZyBXYW5nDQpTdWJqZWN0OiBbUEFUQ0ggdjcgMS8yXSBSSVNDLVY6 IEFkZCBjcnlwdG8gdmVjdG9yIGJ1aWx0aW4gZnVuY3Rpb24uDQpQYXRjaCB2 NzpSZXN1Ym1pdCBhZnRlciBmaXggdHJsLWNoZWNraW5nIGlzc3VlLiBQYXNz ZWQgYWxsIHRoZSByaXNjdiByZWdyZXNzaW9uIHRlc3QuDQpQYXRjaCB2NjpS ZW1vdmUgdW51c2VkIGNvZGUuDQpQYXRjaCB2NTpSZWJhc2UuDQpQYXRjaCB2 NDpNZXJnZSBjcnlwdG8gdmVjdG9yIGZ1bmN0aW9uLmRlZiBpbnRvIHZlY3Rv ci4NClBhdGNoIHYzOkRlZmluZSBhIHNoYXBlIGZvciB2YWVzeiBhbmQgbWVy Z2UgdmVjdG9yLWNyeXB0by10eXBlcy5kZWYNCiAgICAgICAgIGludG8gcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZi4NClBhdGNoIHYyOk9wdGlt aXplIGZ1bmN0aW9uX3NoYXBlIGNsYXNzIGZvciBjcnlwdG9fdmVjdG9yLg0K IA0KVGhpcyBwYXRjaCBhZGQgdGhlIGludHJpbnNpYyBmdW50aW9ucyBvZiBj cnlwdG8gdmVjdG9yIGJhc2VkIG9uIHRoZQ0KaW50cmluc2ljIGRvYyhodHRw czovL2dpdGh1Yi5jb20vcmlzY3Ytbm9uLWlzYS9ydnYtaW50cmluc2ljLWRv Yy9ibG9iDQovZW9wYy92ZWN0b3ItY3J5cHRvL2F1dG8tZ2VuZXJhdGVkL3Zl Y3Rvci1jcnlwdG8vaW50cmluc2ljX2Z1bmNzLm1kKS4NCiANCkNvLUF1dGhv cmVkIGJ5OiBTb25naGUgWmh1IDx6aHVzb25naGVAZXN3aW5jb21wdXRpbmcu Y29tPg0KQ28tQXV0aG9yZWQgYnk6IENpeWFuIFBhbiA8cGFuY2l5YW5AZXN3 aW5jb21wdXRpbmcuY29tPg0KZ2NjL0NoYW5nZUxvZzoNCiANCiogY29uZmln L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYyAoY2xhc3Mg dmFuZG4pOg0KQWRkIG5ldyBmdW5jdGlvbl9iYXNlIGZvciBjcnlwdG8gdmVj dG9yLg0KKGNsYXNzIGJpdG1hbmlwKTogRGl0dG8uIA0KKGNsYXNzIGJfcmV2 ZXJzZSk6RGl0dG8uIA0KKGNsYXNzIHZ3c2xsKTogICBEaXR0by4gDQooY2xh c3MgY2xtdWwpOiAgIERpdHRvLiANCihjbGFzcyB2Z19uaGFiKTogIERpdHRv LiANCihjbGFzcyBjcnlwdG9fdnYpOkRpdHRvLiANCihjbGFzcyBjcnlwdG9f dmkpOkRpdHRvLiANCihjbGFzcyB2YWVza2YyX3ZzbTNjKTpEaXR0by4NCihj bGFzcyB2c20zbWUpOiBEaXR0by4NCihCQVNFKTogQWRkIEJBU0UgZGVjbGFy YXRpb24gZm9yIGNyeXB0byB2ZWN0b3IuDQoqIGNvbmZpZy9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDogRGl0dG8uDQoqIGNvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtZnVuY3Rpb25zLmRlZiAoUkVR VUlSRURfRVhURU5TSU9OUyk6DQpBZGQgY3J5cHRvIHZlY3RvciBpbnRyaW5z aWMgZGVmaW5pdGlvbi4NCih2YnJldik6IERpdHRvLg0KKHZjbHopOiBEaXR0 by4NCih2Y3R6KTogRGl0dG8uDQoodndzbGwpOiBEaXR0by4NCih2YW5kbik6 IERpdHRvLg0KKHZicmV2OCk6IERpdHRvLg0KKHZyZXY4KTogRGl0dG8uDQoo dnJvbCk6IERpdHRvLg0KKHZyb3IpOiBEaXR0by4NCih2Y2xtdWwpOiBEaXR0 by4NCih2Y2xtdWxoKTogRGl0dG8uDQoodmdoc2gpOiBEaXR0by4NCih2Z211 bCk6IERpdHRvLg0KKHZhZXNlZik6IERpdHRvLg0KKHZhZXNlbSk6IERpdHRv Lg0KKHZhZXNkZik6IERpdHRvLg0KKHZhZXNkbSk6IERpdHRvLg0KKHZhZXN6 KTogRGl0dG8uDQoodmFlc2tmMSk6IERpdHRvLg0KKHZhZXNrZjIpOiBEaXR0 by4NCih2c2hhMm1zKTogRGl0dG8uDQoodnNoYTJjaCk6IERpdHRvLg0KKHZz aGEyY2wpOiBEaXR0by4NCih2c200ayk6IERpdHRvLg0KKHZzbTRyKTogRGl0 dG8uDQoodnNtM21lKTogRGl0dG8uDQoodnNtM2MpOiBEaXR0by4NCiogY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MgKHN0 cnVjdCBjcnlwdG9fdnZfZGVmKToNCkFkZCBuZXcgZnVuY3Rpb25fc2hhcGUg Zm9yIGNyeXB0byB2ZWN0b3IuDQooc3RydWN0IGNyeXB0b192aV9kZWYpOiBE aXR0by4NCihzdHJ1Y3QgY3J5cHRvX3Z2X25vX29wX3R5cGVfZGVmKTogRGl0 dG8uDQooU0hBUEUpOiBBZGQgU0hBUEUgZGVjbGFyYXRpb24gb2YgY3J5cHRv IHZlY3Rvci4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy1zaGFwZXMuaDogRGl0dG8uDQoqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMtdHlwZXMuZGVmIChERUZfUlZWX0NSWVBUT19TRVczMl9P UFMpOg0KQWRkIG5ldyBkYXRhIHR5cGUgZm9yIGNyeXB0byB2ZWN0b3IuDQoo REVGX1JWVl9DUllQVE9fU0VXNjRfT1BTKTogRGl0dG8uDQoodnVpbnQzMm1m Ml90KTogRGl0dG8uDQoodnVpbnQzMm0xX3QpOiBEaXR0by4NCih2dWludDMy bTJfdCk6IERpdHRvLg0KKHZ1aW50MzJtNF90KTogRGl0dG8uDQoodnVpbnQz Mm04X3QpOiBEaXR0by4NCih2dWludDY0bTFfdCk6IERpdHRvLg0KKHZ1aW50 NjRtMl90KTogRGl0dG8uDQoodnVpbnQ2NG00X3QpOiBEaXR0by4NCih2dWlu dDY0bThfdCk6IERpdHRvLg0KKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmNjIChERUZfUlZWX0NSWVBUT19TRVczMl9PUFMpOg0KQWRk IG5ldyBkYXRhIHN0cnVjdCBmb3IgY3J5cHRvIHZlY3Rvci4NCihERUZfUlZW X0NSWVBUT19TRVc2NF9PUFMpOiBEaXR0by4NCihyZWdpc3RlcmVkX2Z1bmN0 aW9uOjpvdmVybG9hZGVkX2hhc2gpOiBQcm9jZXNzaW5nIHNpemVfdCB1aW1t IGZvciBDIG92ZXJsb2FkZWQgZnVuYy4NCiogY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy5kZWYgKHZpKTogQWRkIHZpIE9QX1RZUEUuDQot LS0NCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2Mg ICAgICB8IDI2NCArKysrKysrKysrKysrKysrKy0NCi4uLi9yaXNjdi9yaXNj di12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCAgICAgICB8ICAyOCArKw0KLi4u L3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHwg IDk0ICsrKysrKysNCi4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMt c2hhcGVzLmNjICAgICB8ICA4NyArKysrKy0NCi4uLi9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggICAgICB8ICAgNCArDQouLi4vcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiAgICAgfCAgMjUg KysNCmdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNj ICAgICB8IDEzMyArKysrKysrKy0NCmdjYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLmRlZiAgICB8ICAgMSArDQo4IGZpbGVzIGNoYW5n ZWQsIDYzMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KIA0KZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLWJhc2VzLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMtYmFzZXMuY2MNCmluZGV4IGQ3MDQ2ODU0MmVlLi5kMTJiYjg5 ZjkxYyAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLWJhc2VzLmNjDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYw0KQEAgLTIxMjcsNiAr MjEyNywyMTIgQEAgcHVibGljOg0KICAgfQ0KfTsNCisvKiBCZWxvdyBpbXBs ZW1lbnRzIGFyZSB2ZWN0b3IgY3J5cHRvICovDQorLyogSW1wbGVtZW50cyB2 YW5kbi5bdnYsdnhdICovDQorY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rp b25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBydHggZXhwYW5kIChmdW5jdGlv bl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgc3dp dGNoIChlLm9wX2luZm8tPm9wKQ0KKyAgICAgIHsNCisgICAgICBjYXNlIE9Q X1RZUEVfdnY6DQorICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAo Y29kZV9mb3JfcHJlZF92YW5kbiAoZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAg ICAgIGNhc2UgT1BfVFlQRV92eDoNCisgICAgICAgIHJldHVybiBlLnVzZV9l eGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3ZhbmRuX3NjYWxhciAoZS52ZWN0 b3JfbW9kZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2Nf dW5yZWFjaGFibGUgKCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyog SW1wbGVtZW50cyB2cm9sL3Zyb3IvY2x6L2N0ei4gICovDQordGVtcGxhdGU8 cnR4X2NvZGUgQ09ERT4NCitjbGFzcyBiaXRtYW5pcCA6IHB1YmxpYyBmdW5j dGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBwbHlfdGFpbF9w b2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4g KENPREUgPT0gQ0xaIHx8IENPREUgPT0gQ1RaKSA/IGZhbHNlIDogdHJ1ZTsN CisgIH0NCisgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBv dmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gKENPREUgPT0gQ0xaIHx8IENP REUgPT0gQ1RaKSA/IGZhbHNlIDogdHJ1ZTsNCisgIH0NCisgIGJvb2wgaGFz X21lcmdlX29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAg ICByZXR1cm4gKENPREUgPT0gQ0xaIHx8IENPREUgPT0gQ1RaKSA/IGZhbHNl IDogdHJ1ZTsNCisgIH0NCisgIA0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25f ZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHN3aXRj aCAoZS5vcF9pbmZvLT5vcCkNCisgICAgew0KKyAgICAgIGNhc2UgT1BfVFlQ RV92Og0KKyAgICAgIGNhc2UgT1BfVFlQRV92djoNCisgICAgICAgIHJldHVy biBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3YgKENPREUsIGUu dmVjdG9yX21vZGUgKCkpKTsNCisgICAgICBjYXNlIE9QX1RZUEVfdng6DQor ICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJl ZF92X3NjYWxhciAoQ09ERSwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAg IGRlZmF1bHQ6DQorICAgICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQorICAg IH0NCisgIH0NCit9Ow0KKw0KKy8qIEltcGxlbWVudHMgdmJyZXYvdmJyZXY4 L3ZyZXY4LiAgKi8NCit0ZW1wbGF0ZTxpbnQgVU5TUEVDPg0KK2NsYXNzIGJf cmV2ZXJzZSA6IHB1YmxpYyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoN CisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25zdCBv dmVycmlkZQ0KKyAgew0KKyAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNu IChjb2RlX2Zvcl9wcmVkX3YgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkp Ow0KKyAgfQ0KK307DQorDQorY2xhc3MgdndzbGwgOiBwdWJsaWMgZnVuY3Rp b25fYmFzZQ0KK3sNCitwdWJsaWM6DQorICBydHggZXhwYW5kIChmdW5jdGlv bl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgc3dp dGNoIChlLm9wX2luZm8tPm9wKQ0KKyAgICAgIHsNCisgICAgICBjYXNlIE9Q X1RZUEVfdnY6DQorICAgICAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAo Y29kZV9mb3JfcHJlZF92d3NsbCAoZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAg ICAgIGNhc2UgT1BfVFlQRV92eDoNCisgICAgICAgIHJldHVybiBlLnVzZV9l eGFjdF9pbnNuIChjb2RlX2Zvcl9wcmVkX3Z3c2xsX3NjYWxhciAoZS52ZWN0 b3JfbW9kZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2Nf dW5yZWFjaGFibGUgKCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyog SW1wbGVtZW50cyBjbG11bCAqLw0KK3RlbXBsYXRlPGludCBVTlNQRUM+DQor Y2xhc3MgY2xtdWwgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitwdWJs aWM6DQorICBydHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29u c3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgc3dpdGNoIChlLm9wX2luZm8tPm9w KQ0KKyAgICAgIHsNCisgICAgICBjYXNlIE9QX1RZUEVfdnY6DQorICAgICAg ICByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoDQorICAgICAgICAgICAgICAg ICBjb2RlX2Zvcl9wcmVkX3ZjbG11bCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2Rl ICgpKSk7DQorICAgICAgY2FzZSBPUF9UWVBFX3Z4Og0KKyAgICAgICAgcmV0 dXJuIGUudXNlX2V4YWN0X2luc24NCisgICAgICAgICAgICAgICAgIChjb2Rl X2Zvcl9wcmVkX3ZjbG11bF9zY2FsYXIgKFVOU1BFQywgZS52ZWN0b3JfbW9k ZSAoKSkpOw0KKyAgICAgIGRlZmF1bHQ6DQorICAgICAgICBnY2NfdW5yZWFj aGFibGUgKCk7DQorICAgICAgfQ0KKyAgfQ0KK307DQorDQorLyogSW1wbGVt ZW50cyB2Z2hzaC92c2gybXMvdnNoYTJjW2hsXS4gKi8NCit0ZW1wbGF0ZTxp bnQgVU5TUEVDPg0KK2NsYXNzIHZnX25oYWIgOiBwdWJsaWMgZnVuY3Rpb25f YmFzZQ0KK3sNCitwdWJsaWM6DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5 X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJv b2wgdXNlX21hc2tfcHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7 IHJldHVybiBmYWxzZTsgfQ0KKyAgYm9vbCBoYXNfbWVyZ2Vfb3BlcmFuZF9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorDQorICBy dHggZXhwYW5kIChmdW5jdGlvbl9leHBhbmRlciAmZSkgY29uc3Qgb3ZlcnJp ZGUNCisgIHsNCisgICAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVf Zm9yX3ByZWRfdiAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7DQorICB9 DQorfTsNCisNCisvKiBJbXBsZW1lbnRzIHZnbXVsL3ZhZXMqLiAqLw0KK3Rl bXBsYXRlPGludCBVTlNQRUM+DQorY2xhc3MgY3J5cHRvX3Z2IDogcHVibGlj IGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGljOg0KKyAgYm9vbCBhcHBseV9t YXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl OyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRpY2F0aW9uX3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgaGFzX21lcmdl X29wZXJhbmRfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg fQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNv bnN0IG92ZXJyaWRlDQorICB7DQorICAgIHBvbHlfdWludDY0IG51bml0cyA9 IDBVOw0KKyAgICBzd2l0Y2ggKGUub3BfaW5mby0+b3ApDQorICAgIHsNCisg ICAgICBjYXNlIE9QX1RZUEVfdnY6DQorICAgICAgICBpZiAoVU5TUEVDID09 IFVOU1BFQ19WR01VTCkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4YWN0 X2luc24NCisgICAgICAgICAgICAgICAgICAgKGNvZGVfZm9yX3ByZWRfY3J5 cHRvX3Z2IChVTlNQRUMsIFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0K KyAgICAgICAgZWxzZQ0KKyAgICAgICAgICByZXR1cm4gZS51c2VfZXhhY3Rf aW5zbg0KKyAgICAgICAgICAgICAgICAgICAoY29kZV9mb3JfcHJlZF9jcnlw dG9fdnYgKFVOU1BFQyArIDEsIFVOU1BFQyArIDEsIGUudmVjdG9yX21vZGUg KCkpKTsNCisgICAgICBjYXNlIE9QX1RZUEVfdnM6DQorICAgICAgICAvKiBD YWxjdWxhdGUgdGhlIHJhdGlvIGJldHdlZW4gYXJnMCBhbmQgYXJnMSovDQor ICAgICAgICBnY2NfYXNzZXJ0IChtdWx0aXBsZV9wIChHRVRfTU9ERV9CSVRT SVpFIChlLmFyZ19tb2RlICgwKSksDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHRVRfTU9ERV9CSVRTSVpFIChlLmFyZ19tb2RlICgxKSks ICZudW5pdHMpKTsNCisgICAgICAgIGlmIChtYXliZV9lcSAobnVuaXRzLCAx VSkpDQorICAgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2Rl X2Zvcl9wcmVkX2NyeXB0b192dngxX3NjYWxhcg0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIs IGUudmVjdG9yX21vZGUgKCkpKTsNCisgICAgICAgIGVsc2UgaWYgKG1heWJl X2VxIChudW5pdHMsIDJVKSkNCisgICAgICAgICAgcmV0dXJuIGUudXNlX2V4 YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfY3J5cHRvX3Z2eDJfc2NhbGFyDQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoVU5TUEVDICsg MiwgVU5TUEVDICsgMiwgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgICAgICAg ZWxzZSBpZiAobWF5YmVfZXEgKG51bml0cywgNFUpKQ0KKyAgICAgICAgICBy ZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoY29kZV9mb3JfcHJlZF9jcnlwdG9f dnZ4NF9zY2FsYXINCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChVTlNQRUMgKyAyLCBVTlNQRUMgKyAyLCBlLnZlY3Rvcl9tb2RlICgp KSk7DQorICAgICAgICBlbHNlIGlmIChtYXliZV9lcSAobnVuaXRzLCA4VSkp DQorICAgICAgICAgIHJldHVybiBlLnVzZV9leGFjdF9pbnNuIChjb2RlX2Zv cl9wcmVkX2NyeXB0b192dng4X3NjYWxhcg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUu dmVjdG9yX21vZGUgKCkpKTsNCisgICAgICAgIGVsc2UNCisgICAgICAgICAg cmV0dXJuIGUudXNlX2V4YWN0X2luc24gKGNvZGVfZm9yX3ByZWRfY3J5cHRv X3Z2eDE2X3NjYWxhcg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKFVOU1BFQyArIDIsIFVOU1BFQyArIDIsIGUudmVjdG9yX21vZGUg KCkpKTsNCisgICAgICBkZWZhdWx0Og0KKyAgICAgICAgZ2NjX3VucmVhY2hh YmxlICgpOw0KKyAgICB9DQorICB9DQorfTsNCisNCisvKiBJbXBsZW1lbnRz IHZhZXNrZjEvdnNtNGsuICovDQordGVtcGxhdGU8aW50IFVOU1BFQz4NCitj bGFzcyBjcnlwdG9fdmkgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQ0KK3sNCitw dWJsaWM6DQorICBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qg b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0NCisgIGJvb2wgdXNlX21hc2tf cHJlZGljYXRpb25fcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz ZTsgfQ0KKw0KKyAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUp IGNvbnN0IG92ZXJyaWRlDQorICB7DQorICAgIHJldHVybiBlLnVzZV9leGFj dF9pbnNuDQorICAgICAgICAgICAgIChjb2RlX2Zvcl9wcmVkX2NyeXB0b192 aV9zY2FsYXIgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0KKyAgfQ0K K307DQorDQorLyogSW1wbGVtZW50cyB2YWVza2YyL3ZzbTNjLiAqLw0KK3Rl bXBsYXRlPGludCBVTlNQRUM+DQorY2xhc3MgdmFlc2tmMl92c20zYyA6IHB1 YmxpYyBmdW5jdGlvbl9iYXNlDQorew0KK3B1YmxpYzoNCisgIGJvb2wgYXBw bHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm YWxzZTsgfQ0KKyAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9wICgpIGNv bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIGhhc19t ZXJnZV9vcGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFs c2U7IH0NCisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZl KSBjb25zdCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gZS51c2VfZXhh Y3RfaW5zbg0KKyAgICAgICAgICAgICAoY29kZV9mb3JfcHJlZF92aV9ub21h c2tlZG9mZl9zY2FsYXIgKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOw0K KyAgfQ0KK307DQorDQorLyogSW1wbGVtZW50cyB2c20zbWUuICovDQorY2xh c3MgdnNtM21lIDogcHVibGljIGZ1bmN0aW9uX2Jhc2UNCit7DQorcHVibGlj Og0KKyAgYm9vbCBhcHBseV9tYXNrX3BvbGljeV9wICgpIGNvbnN0IG92ZXJy aWRlIHsgcmV0dXJuIGZhbHNlOyB9DQorICBib29sIHVzZV9tYXNrX3ByZWRp Y2F0aW9uX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0N CisNCisgIHJ0eCBleHBhbmQgKGZ1bmN0aW9uX2V4cGFuZGVyICZlKSBjb25z dCBvdmVycmlkZQ0KKyAgew0KKyAgICByZXR1cm4gZS51c2VfZXhhY3RfaW5z biAoY29kZV9mb3JfcHJlZF92c20zbWUgKGUudmVjdG9yX21vZGUgKCkpKTsN CisgIH0NCit9Ow0KKw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCB2c2V0dmw8 ZmFsc2U+IHZzZXR2bF9vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZz ZXR2bDx0cnVlPiB2c2V0dmxtYXhfb2JqOw0Kc3RhdGljIENPTlNURVhQUiBj b25zdCBsb2Fkc3RvcmU8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgZmFsc2U+ IHZsZV9vYmo7DQpAQCAtMjM4NCw2ICsyNTkwLDM1IEBAIHN0YXRpYyBDT05T VEVYUFIgY29uc3Qgc2VnX2luZGV4ZWRfc3RvcmU8VU5TUEVDX1VOT1JERVJF RD4gdnN1eHNlZ19vYmo7DQpzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHNlZ19p bmRleGVkX3N0b3JlPFVOU1BFQ19PUkRFUkVEPiB2c294c2VnX29iajsNCnN0 YXRpYyBDT05TVEVYUFIgY29uc3QgdmxzZWdmZiB2bHNlZ2ZmX29iajsNCisv KiBDcnlwdG8gVmVjdG9yICovDQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2 YW5kbiB2YW5kbl9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBiaXRt YW5pcDxST1RBVEU+ICAgdnJvbF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBj b25zdCBiaXRtYW5pcDxST1RBVEVSVD4gdnJvcl9vYmo7DQorc3RhdGljIENP TlNURVhQUiBjb25zdCBiX3JldmVyc2U8VU5TUEVDX1ZCUkVWPiAgIHZicmV2 X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJfcmV2ZXJzZTxVTlNQ RUNfVkJSRVY4PiAgdmJyZXY4X29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IGJfcmV2ZXJzZTxVTlNQRUNfVlJFVjg+ICAgdnJldjhfb2JqOw0KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgYml0bWFuaXA8Q0xaPiB2Y2x6X29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGJpdG1hbmlwPENUWj4gdmN0el9v Ymo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2d3NsbCB2d3NsbF9vYmo7 DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjbG11bDxVTlNQRUNfVkNMTVVM PiAgICAgIHZjbG11bF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBj bG11bDxVTlNQRUNfVkNMTVVMSD4gICAgIHZjbG11bGhfb2JqOw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdmdfbmhhYjxVTlNQRUNfVkdIU0g+ICAgICB2 Z2hzaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjcnlwdG9fdnY8 VU5TUEVDX1ZHTVVMPiAgIHZnbXVsX29iajsNCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IGNyeXB0b192djxVTlNQRUNfVkFFU0VGPiAgdmFlc2VmX29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0b192djxVTlNQRUNfVkFF U0VNPiAgdmFlc2VtX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNy eXB0b192djxVTlNQRUNfVkFFU0RGPiAgdmFlc2RmX29iajsNCitzdGF0aWMg Q09OU1RFWFBSIGNvbnN0IGNyeXB0b192djxVTlNQRUNfVkFFU0RNPiAgdmFl c2RtX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IGNyeXB0b192djxV TlNQRUNfVkFFU1o+ICAgdmFlc3pfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgY3J5cHRvX3ZpPFVOU1BFQ19WQUVTS0YxPiB2YWVza2YxX29iajsN CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhZXNrZjJfdnNtM2M8VU5TUEVD X1ZBRVNLRjI+IHZhZXNrZjJfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdmdfbmhhYjxVTlNQRUNfVlNIQTJNUz4gICB2c2hhMm1zX29iajsNCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZnX25oYWI8VU5TUEVDX1ZTSEEyQ0g+ ICAgdnNoYTJjaF9vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCB2Z19u aGFiPFVOU1BFQ19WU0hBMkNMPiAgIHZzaGEyY2xfb2JqOw0KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgY3J5cHRvX3ZpPFVOU1BFQ19WU000Sz4gICB2c200 a19vYmo7DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBjcnlwdG9fdnY8VU5T UEVDX1ZTTTRSPiAgIHZzbTRyX29iajsNCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHZzbTNtZSB2c20zbWVfb2JqOw0KK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdmFlc2tmMl92c20zYzxVTlNQRUNfVlNNM0M+ICAgdnNtM2Nfb2JqOw0K Kw0KLyogRGVjbGFyZSB0aGUgZnVuY3Rpb24gYmFzZSBOQU1FLCBwb2ludGlu ZyBpdCB0byBhbiBpbnN0YW5jZQ0KICAgIG9mIGNsYXNzIDxOQU1FPl9vYmou ICAqLw0KI2RlZmluZSBCQVNFKE5BTUUpIFwNCkBAIC0yNjQ1LDUgKzI4ODAs MzIgQEAgQkFTRSAodmxveHNlZykNCkJBU0UgKHZzdXhzZWcpDQpCQVNFICh2 c294c2VnKQ0KQkFTRSAodmxzZWdmZikNCi0NCisvKiBDcnlwdG8gdmVjdG9y ICovDQorQkFTRSAodmFuZG4pDQorQkFTRSAodmJyZXYpDQorQkFTRSAodmJy ZXY4KQ0KK0JBU0UgKHZyZXY4KQ0KK0JBU0UgKHZjbHopDQorQkFTRSAodmN0 eikNCitCQVNFICh2cm9sKQ0KK0JBU0UgKHZyb3IpDQorQkFTRSAodndzbGwp DQorQkFTRSAodmNsbXVsKQ0KK0JBU0UgKHZjbG11bGgpDQorQkFTRSAodmdo c2gpDQorQkFTRSAodmdtdWwpDQorQkFTRSAodmFlc2VmKQ0KK0JBU0UgKHZh ZXNlbSkNCitCQVNFICh2YWVzZGYpDQorQkFTRSAodmFlc2RtKQ0KK0JBU0Ug KHZhZXN6KQ0KK0JBU0UgKHZhZXNrZjEpDQorQkFTRSAodmFlc2tmMikNCitC QVNFICh2c2hhMm1zKQ0KK0JBU0UgKHZzaGEyY2gpDQorQkFTRSAodnNoYTJj bCkNCitCQVNFICh2c200aykNCitCQVNFICh2c200cikNCitCQVNFICh2c20z bWUpDQorQkFTRSAodnNtM2MpDQp9IC8vIGVuZCBuYW1lc3BhY2UgcmlzY3Zf dmVjdG9yDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCmluZGV4IDEzMTA0MWVhNjZm Li41MWI1M2EzZDRhOSAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCisrKyBiL2djYy9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgNCkBAIC0y ODAsNiArMjgwLDM0IEBAIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpj b25zdCB2bG94c2VnOw0KZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHZzdXhzZWc7DQpleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29u c3QgdnNveHNlZzsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2bHNlZ2ZmOw0KKy8qIEJlbG93IGZ1bmN0aW9uX2Jhc2UgYXJlIFZlY3Ry byBDcnlwdG8qLw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25z dCB2YW5kbjsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3Qg dmJyZXY7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZi cmV2ODsNCitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdnJl djg7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjbHo7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjdHo7DQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZyb2w7DQorZXh0 ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZyb3I7DQorZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZ3c2xsOw0KK2V4dGVybiBj b25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2Y2xtdWw7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZjbG11bGg7DQorZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZnaHNoOw0KK2V4dGVybiBjb25z dCBmdW5jdGlvbl9iYXNlICpjb25zdCB2Z211bDsNCitleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdmFlc2VmOw0KK2V4dGVybiBjb25zdCBm dW5jdGlvbl9iYXNlICpjb25zdCB2YWVzZW07DQorZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX2Jhc2UgKmNvbnN0IHZhZXNkZjsNCitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdmFlc2RtOw0KK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB2YWVzejsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmFlc2tmMTsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdmFlc2tmMjsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNoYTJtczsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNoYTJjaDsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNoYTJjbDsNCitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdnNtNGs7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X2Jhc2UgKmNvbnN0IHZzbTRyOw0KK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB2c20zbWU7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jh c2UgKmNvbnN0IHZzbTNjOw0KfQ0KfSAvLyBlbmQgbmFtZXNwYWNlIHJpc2N2 X3ZlY3Rvcg0KZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgYi9nY2MvY29uZmlnL3Jp c2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmDQppbmRl eCAwMzQyMWQ1YmMxMC4uMjI5NzY0MjUzYTAgMTAwNjQ0DQotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmDQorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy1mdW5jdGlvbnMuZGVmDQpAQCAtNjUzLDQgKzY1Myw5OCBAQCBERUZf UlZWX0ZVTkNUSU9OICh2c294c2VnLCBzZWdfaW5kZXhlZF9sb2Fkc3RvcmUs IG5vbmVfbV9wcmVkcywgdHVwbGVfdl9zY2FsYXJfcA0KREVGX1JWVl9GVU5D VElPTiAodmxzZWdmZiwgc2VnX2ZhdWx0X2xvYWQsIGZ1bGxfcHJlZHMsIHR1 cGxlX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX3B0cl9vcHMpDQojdW5kZWYg UkVRVUlSRURfRVhURU5TSU9OUw0KKy8qIERlZmluaWF0aW9uIG9mIGNyeXB0 byB2ZWN0b3IgaW50cmluc2ljIGZ1bmN0aW9ucyAqLw0KKy8vIFpWQkIgYW5k IFpWS0INCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZCQl9FWFQN CitERUZfUlZWX0ZVTkNUSU9OICh2YnJldiwgIGFsdSwgZnVsbF9wcmVkcywg dV92dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmNseiwgICBhbHUsIG5v bmVfbV9wcmVkcywgdV92dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmN0 eiwgICBhbHUsIG5vbmVfbV9wcmVkcywgdV92dl9vcHMpDQorREVGX1JWVl9G VU5DVElPTiAodndzbGwsICBhbHUsIGZ1bGxfcHJlZHMsIHVfd3Z2X29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2d3NsbCwgIGFsdSwgZnVsbF9wcmVkcywg dV9zaGlmdF93dnhfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05T DQorDQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWQkJfT1JfWlZL Ql9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2YW5kbiwgIGFsdSwgZnVsbF9w cmVkcywgdV92dnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhbmRuLCAg YWx1LCBmdWxsX3ByZWRzLCB1X3Z2eF9vcHMpDQorREVGX1JWVl9GVU5DVElP TiAodmJyZXY4LCBhbHUsIGZ1bGxfcHJlZHMsIHVfdnZfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZyZXY4LCAgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2X29w cykNCitERUZfUlZWX0ZVTkNUSU9OICh2cm9sLCAgIGFsdSwgZnVsbF9wcmVk cywgdV92dnZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZyb3IsICAgYWx1 LCBmdWxsX3ByZWRzLCB1X3Z2dl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dnJvciwgICBhbHUsIGZ1bGxfcHJlZHMsIHVfc2hpZnRfdnZ4X29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2cm9sLCAgIGFsdSwgZnVsbF9wcmVkcywgdV9z aGlmdF92dnhfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQor Ly9aVkJDDQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWQkNfRVhU DQorREVGX1JWVl9GVU5DVElPTiAodmNsbXVsLCAgYWx1LCBmdWxsX3ByZWRz LCB1X3Z2dl9jcnlwdG9fc2V3NjRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZjbG11bCwgIGFsdSwgZnVsbF9wcmVkcywgdV92dnhfY3J5cHRvX3NldzY0 X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2Y2xtdWxoLCBhbHUsIGZ1bGxf cHJlZHMsIHVfdnZ2X2NyeXB0b19zZXc2NF9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmNsbXVsaCwgYWx1LCBmdWxsX3ByZWRzLCB1X3Z2eF9jcnlwdG9f c2V3NjRfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLy9a VktHDQorI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWS0dfRVhUDQor REVGX1JWVl9GVU5DVElPTih2Z2hzaCwgbm9fbWFza19wb2xpY3ksIG5vbmVf dHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04odmdtdWwsIG5vX21hc2tfcG9saWN5LCBub25lX3R1X3ByZWRz LCB1X3Z2dl9jcnlwdG9fc2V3MzJfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9F WFRFTlNJT05TDQorLy9aVktORUQNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVO U0lPTlMgWlZLTkVEX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlZiwg ICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXcz Ml9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2VmLCAgIGNyeXB0b192 diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykNCitE RUZfUlZWX0ZVTkNUSU9OICh2YWVzZWYsICAgY3J5cHRvX3Z2LCBub25lX3R1 X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQorREVG X1JWVl9GVU5DVElPTiAodmFlc2VmLCAgIGNyeXB0b192diwgbm9uZV90dV9w cmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9S VlZfRlVOQ1RJT04gKHZhZXNlZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJl ZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZW X0ZVTkNUSU9OICh2YWVzZWYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRz LCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZhZXNlbSwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMs IHVfdnZ2X2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAo dmFlc2VtLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5 cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZW0sICAg Y3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJf bG11bF94Ml9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2VtLCAgIGNy eXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xt dWxfeDRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNlbSwgICBjcnlw dG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVs X3g4X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZW0sICAgY3J5cHRv X3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94 MTZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNkZiwgICBjcnlwdG9f dnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMpDQor REVGX1JWVl9GVU5DVElPTiAodmFlc2RmLCAgIGNyeXB0b192diwgbm9uZV90 dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykNCitERUZfUlZWX0ZV TkNUSU9OICh2YWVzZGYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1 X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmFlc2RmLCAgIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92 dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJ T04gKHZhZXNkZiwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZz X2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2YWVzZGYsICAgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRzLCB1X3Z2c19j cnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04g KHZhZXNkbSwgICBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVfdnZ2X2Ny eXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2RtLCAg IGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMy X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZG0sICAgY3J5cHRvX3Z2 LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodmFlc2RtLCAgIGNyeXB0b192diwg bm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3Bz KQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZhZXNkbSwgICBjcnlwdG9fdnYsIG5v bmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2YWVzZG0sICAgY3J5cHRvX3Z2LCBub25l X3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZhZXN6LCAgICBjcnlwdG9fdnZfbm9fb3Bf dHlwZSwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2YWVzeiwgICAgY3J5cHRvX3Z2X25vX29w X3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVs X3gyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzeiwgICAgY3J5cHRv X3Z2X25vX29wX3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVfdnZzX2NyeXB0b19z ZXczMl9sbXVsX3g0X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2YWVzeiwg ICAgY3J5cHRvX3Z2X25vX29wX3R5cGUsIG5vbmVfdHVfcHJlZHMsIHVfdnZz X2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZfUlZWX0ZVTkNUSU9O ICh2YWVzeiwgICAgY3J5cHRvX3Z2X25vX29wX3R5cGUsIG5vbmVfdHVfcHJl ZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3gxNl9vcHMpDQorREVGX1JW Vl9GVU5DVElPTiAodmFlc2tmMSwgIGNyeXB0b192aSwgbm9uZV90dV9wcmVk cywgdV92dl9zaXplX2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5D VElPTiAodmFlc2tmMiwgIGNyeXB0b192aSwgbm9uZV90dV9wcmVkcywgdV92 dnZfc2l6ZV9jcnlwdG9fc2V3MzJfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9F WFRFTlNJT05TDQorLy9aVktOSEENCisvL1pWS05IQSBhbmQgWlZLTkhCDQor I2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFpWS05IQV9PUl9aVktOSEJf RVhUDQorREVGX1JWVl9GVU5DVElPTiAodnNoYTJtcywgIG5vX21hc2tfcG9s aWN5LCBub25lX3R1X3ByZWRzLCB1X3Z2dnZfY3J5cHRvX3NldzMyX29wcykN CitERUZfUlZWX0ZVTkNUSU9OICh2c2hhMmNoLCAgbm9fbWFza19wb2xpY3ks IG5vbmVfdHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RF Rl9SVlZfRlVOQ1RJT04gKHZzaGEyY2wsICBub19tYXNrX3BvbGljeSwgbm9u ZV90dV9wcmVkcywgdV92dnZ2X2NyeXB0b19zZXczMl9vcHMpDQorI3VuZGVm IFJFUVVJUkVEX0VYVEVOU0lPTlMNCisNCisjZGVmaW5lIFJFUVVJUkVEX0VY VEVOU0lPTlMgWlZLTkhCX0VYVA0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzaGEy bXMsICBub19tYXNrX3BvbGljeSwgbm9uZV90dV9wcmVkcywgdV92dnZ2X2Ny eXB0b19zZXc2NF9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNoYTJjaCwg IG5vX21hc2tfcG9saWN5LCBub25lX3R1X3ByZWRzLCB1X3Z2dnZfY3J5cHRv X3NldzY0X29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c2hhMmNsLCAgbm9f bWFza19wb2xpY3ksIG5vbmVfdHVfcHJlZHMsIHVfdnZ2dl9jcnlwdG9fc2V3 NjRfb3BzKQ0KKyN1bmRlZiBSRVFVSVJFRF9FWFRFTlNJT05TDQorLy9admtz ZWQNCisjZGVmaW5lIFJFUVVJUkVEX0VYVEVOU0lPTlMgWlZLU0VEX0VYVA0K K0RFRl9SVlZfRlVOQ1RJT04gKHZzbTRrLCBjcnlwdG9fdmksIG5vbmVfdHVf cHJlZHMsIHVfdnZfc2l6ZV9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZf RlVOQ1RJT04gKHZzbTRyLCBjcnlwdG9fdnYsIG5vbmVfdHVfcHJlZHMsIHVf dnZ2X2NyeXB0b19zZXczMl9vcHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNt NHIsIGNyeXB0b192diwgbm9uZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3Nl dzMyX29wcykNCitERUZfUlZWX0ZVTkNUSU9OICh2c200ciwgY3J5cHRvX3Z2 LCBub25lX3R1X3ByZWRzLCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94Ml9v cHMpDQorREVGX1JWVl9GVU5DVElPTiAodnNtNHIsIGNyeXB0b192diwgbm9u ZV90dV9wcmVkcywgdV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDRfb3BzKQ0K K0RFRl9SVlZfRlVOQ1RJT04gKHZzbTRyLCBjcnlwdG9fdnYsIG5vbmVfdHVf cHJlZHMsIHVfdnZzX2NyeXB0b19zZXczMl9sbXVsX3g4X29wcykNCitERUZf UlZWX0ZVTkNUSU9OICh2c200ciwgY3J5cHRvX3Z2LCBub25lX3R1X3ByZWRz LCB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94MTZfb3BzKQ0KKyN1bmRlZiBS RVFVSVJFRF9FWFRFTlNJT05TDQorLy9admtzaA0KKyNkZWZpbmUgUkVRVUlS RURfRVhURU5TSU9OUyBaVktTSF9FWFQNCitERUZfUlZWX0ZVTkNUSU9OICh2 c20zbWUsIG5vX21hc2tfcG9saWN5LCAgICBub25lX3R1X3ByZWRzLCB1X3Z2 dl9jcnlwdG9fc2V3MzJfb3BzKQ0KK0RFRl9SVlZfRlVOQ1RJT04gKHZzbTNj LCAgY3J5cHRvX3ZpLCAgICBub25lX3R1X3ByZWRzLCB1X3Z2dl9zaXplX2Ny eXB0b19zZXczMl9vcHMpDQorI3VuZGVmIFJFUVVJUkVEX0VYVEVOU0lPTlMN CiN1bmRlZiBERUZfUlZWX0ZVTkNUSU9ODQpkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVz LmNjDQppbmRleCA0YTc1NGUwMjI4Zi4uNmJhNDJlOTg2YWQgMTAwNjQ0DQot LS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYw0KQEAgLTk4NCw2ICs5ODQsODkgQEAgc3Ry dWN0IHNlZ19mYXVsdF9sb2FkX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQog ICB9DQp9Ow0KKy8qIHZzbTRyL3ZhZXMqIGNsYXNzLiAgKi8NCitzdHJ1Y3Qg Y3J5cHRvX3Z2X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hh ciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICAgICAgICAgICAgICAgICBi b29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAg LyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVk LiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFz ZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAg ICAgcmV0dXJuIG51bGxwdHI7DQorICAgIGIuYXBwZW5kX2Jhc2VfbmFtZSAo aW5zdGFuY2UuYmFzZV9uYW1lKTsNCisgICAgYi5hcHBlbmRfbmFtZSAob3Bl cmFuZF9zdWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOw0KKw0KKyAg ICBpZiAoIW92ZXJsb2FkZWRfcCkNCisgICAgew0KKyAgICAgIGlmIChpbnN0 YW5jZS5vcF9pbmZvLT5vcCA9PSBPUF9UWVBFX3Z2KQ0KKyAgICAgICAgYi5h cHBlbmRfbmFtZSAodHlwZV9zdWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4 XS52ZWN0b3IpOw0KKyAgICAgIGVsc2UNCisgICAgICB7DQorICAgICAgICB2 ZWN0b3JfdHlwZV9pbmRleCBhcmcwX3R5cGVfaWR4DQorICAgICAgICAgID0g aW5zdGFuY2Uub3BfaW5mby0+YXJnc1sxXS5nZXRfZnVuY3Rpb25fdHlwZV9p bmRleA0KKyAgICAgICAgICAgIChpbnN0YW5jZS50eXBlLmluZGV4KTsNCisg ICAgICAgIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNbYXJnMF90eXBl X2lkeF0udmVjdG9yKTsNCisgICAgICAgIHZlY3Rvcl90eXBlX2luZGV4IHJl dF90eXBlX2lkeA0KKyAgICAgICAgICA9IGluc3RhbmNlLm9wX2luZm8tPnJl dC5nZXRfZnVuY3Rpb25fdHlwZV9pbmRleA0KKyAgICAgICAgICAgIChpbnN0 YW5jZS50eXBlLmluZGV4KTsNCisgICAgICAgIGIuYXBwZW5kX25hbWUgKHR5 cGVfc3VmZml4ZXNbcmV0X3R5cGVfaWR4XS52ZWN0b3IpOw0KKyAgICAgIH0N CisgICAgfQ0KKw0KKyAgICBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9z dWZmaXhlc1tpbnN0YW5jZS5wcmVkXSk7DQorICAgIHJldHVybiBiLmZpbmlz aF9uYW1lICgpOw0KKyAgfQ0KK307DQorDQorLyogdmFlc2tmMS92YWVza2Yy L3ZzbTRrL3ZzbTNjIGNsYXNzLiAgKi8NCitzdHJ1Y3QgY3J5cHRvX3ZpX2Rl ZiA6IHB1YmxpYyBidWlsZF9iYXNlDQorew0KKyAgY2hhciAqZ2V0X25hbWUg KGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNl ICZpbnN0YW5jZSwNCisgICAgICAgICAgICAgICAgICBib29sIG92ZXJsb2Fk ZWRfcCkgY29uc3Qgb3ZlcnJpZGUNCisgIHsNCisgICAgLyogUmV0dXJuIG51 bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLiAgKi8NCisgICAg aWYgKG92ZXJsb2FkZWRfcCAmJiAhaW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292 ZXJsb2FkZWRfcCAoaW5zdGFuY2UucHJlZCkpDQorICAgICAgcmV0dXJuIG51 bGxwdHI7DQorICAgIGIuYXBwZW5kX2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFz ZV9uYW1lKTsNCisgICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgIHsNCisg ICAgICBiLmFwcGVuZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNl Lm9wX2luZm8tPm9wXSk7DQorICAgICAgYi5hcHBlbmRfbmFtZSAodHlwZV9z dWZmaXhlc1tpbnN0YW5jZS50eXBlLmluZGV4XS52ZWN0b3IpOw0KKyAgICB9 DQorICAgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9uX3N1ZmZpeGVzW2lu c3RhbmNlLnByZWRdKTsNCisgICAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7 DQorICB9DQorfTsNCisNCisvKiB2YWVzeiBjbGFzcy4gICovDQorc3RydWN0 IGNyeXB0b192dl9ub19vcF90eXBlX2RlZiA6IHB1YmxpYyBidWlsZF9iYXNl DQorew0KKyAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIs IGNvbnN0IGZ1bmN0aW9uX2luc3RhbmNlICZpbnN0YW5jZSwNCisgICAgICAg ICAgICAgICAgICBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUN CisgIHsNCisgICAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBi ZSBvdmVybG9hZGVkLiAgKi8NCisgICAgaWYgKG92ZXJsb2FkZWRfcCAmJiAh aW5zdGFuY2UuYmFzZS0+Y2FuX2JlX292ZXJsb2FkZWRfcCAoaW5zdGFuY2Uu cHJlZCkpDQorICAgICAgcmV0dXJuIG51bGxwdHI7DQorICAgIGIuYXBwZW5k X2Jhc2VfbmFtZSAoaW5zdGFuY2UuYmFzZV9uYW1lKTsNCisgICAgICANCisg ICAgaWYgKCFvdmVybG9hZGVkX3ApDQorICAgIHsNCisgICAgICBiLmFwcGVu ZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9w XSk7DQorICAgICAgdmVjdG9yX3R5cGVfaW5kZXggYXJnMF90eXBlX2lkeA0K KyAgICAgICAgPSBpbnN0YW5jZS5vcF9pbmZvLT5hcmdzWzFdLmdldF9mdW5j dGlvbl90eXBlX2luZGV4DQorICAgICAgICAgIChpbnN0YW5jZS50eXBlLmlu ZGV4KTsNCisgICAgICBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2Fy ZzBfdHlwZV9pZHhdLnZlY3Rvcik7DQorICAgICAgdmVjdG9yX3R5cGVfaW5k ZXggcmV0X3R5cGVfaWR4DQorICAgICAgICA9IGluc3RhbmNlLm9wX2luZm8t PnJldC5nZXRfZnVuY3Rpb25fdHlwZV9pbmRleA0KKyAgICAgICAgICAoaW5z dGFuY2UudHlwZS5pbmRleCk7DQorICAgICAgYi5hcHBlbmRfbmFtZSAodHlw ZV9zdWZmaXhlc1tyZXRfdHlwZV9pZHhdLnZlY3Rvcik7DQorICAgIH0NCisN CisgICAgYi5hcHBlbmRfbmFtZSAocHJlZGljYXRpb25fc3VmZml4ZXNbaW5z dGFuY2UucHJlZF0pOw0KKyAgICByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsN CisgIH0NCit9Ow0KKw0KU0hBUEUodnNldHZsLCB2c2V0dmwpDQpTSEFQRSh2 c2V0dmwsIHZzZXR2bG1heCkNClNIQVBFKGxvYWRzdG9yZSwgbG9hZHN0b3Jl KQ0KQEAgLTEwMTIsNSArMTA5NSw3IEBAIFNIQVBFKHZsZW5iLCB2bGVuYikN ClNIQVBFKHNlZ19sb2Fkc3RvcmUsIHNlZ19sb2Fkc3RvcmUpDQpTSEFQRShz ZWdfaW5kZXhlZF9sb2Fkc3RvcmUsIHNlZ19pbmRleGVkX2xvYWRzdG9yZSkN ClNIQVBFKHNlZ19mYXVsdF9sb2FkLCBzZWdfZmF1bHRfbG9hZCkNCi0NCitT SEFQRShjcnlwdG9fdnYsIGNyeXB0b192dikNCitTSEFQRShjcnlwdG9fdmks IGNyeXB0b192aSkNCitTSEFQRShjcnlwdG9fdnZfbm9fb3BfdHlwZSwgY3J5 cHRvX3Z2X25vX29wX3R5cGUpDQp9IC8vIGVuZCBuYW1lc3BhY2UgcmlzY3Zf dmVjdG9yDQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmggYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaA0KaW5kZXggZGY5ODg0YmI1 NzIuLjE4OWJjYmRlZmYzIDEwMDY0NA0KLS0tIGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmgNCisrKyBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5oDQpA QCAtNTIsNiArNTIsMTAgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBl ICpjb25zdCB2bGVuYjsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3Qgc2VnX2xvYWRzdG9yZTsNCmV4dGVybiBjb25zdCBmdW5jdGlvbl9z aGFwZSAqY29uc3Qgc2VnX2luZGV4ZWRfbG9hZHN0b3JlOw0KZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzZWdfZmF1bHRfbG9hZDsNCisv KiBCZWxvdyBmdW5jdGlvbl9zaGFwZSBhcmUgVmVjdHJvIENyeXB0byovDQor ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlwdG9fdnY7 DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlwdG9f dmk7DQorZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBjcnlw dG9fdnZfbm9fb3BfdHlwZTsNCn0NCn0gLy8gZW5kIG5hbWVzcGFjZSByaXNj dl92ZWN0b3INCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2 L3Jpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYNCmluZGV4IDZhYTQ1 YWU5YTdlLi43OTZkODlkYmJmNCAxMDA2NDQNCi0tLSBhL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZg0KKysrIGIv Z2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMu ZGVmDQpAQCAtMzM5LDYgKzMzOSwxOCBAQCBhbG9uZyB3aXRoIEdDQzsgc2Vl IHRoZSBmaWxlIENPUFlJTkczLiBJZiBub3Qgc2VlDQojZGVmaW5lIERFRl9S VlZfVFVQTEVfT1BTKFRZUEUsIFJFUVVJUkUpDQojZW5kaWYNCisvKiBVc2Ug IkRFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUyIgbWFjcm8gaW5jbHVkZSBhbGwg U0VXPTMyIHR5cGVzDQorICAgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBhbmQg cmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCisjaWZu ZGVmIERFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUw0KKyNkZWZpbmUgREVGX1JW Vl9DUllQVE9fU0VXMzJfT1BTKFRZUEUsIFJFUVVJUkUpDQorI2VuZGlmDQor DQorLyogVXNlICJERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMiIG1hY3JvIGlu Y2x1ZGUgYWxsIFNFVz02NCB0eXBlcw0KKyAgIHdoaWNoIHdpbGwgYmUgaXRl cmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy4g ICovDQorI2lmbmRlZiBERUZfUlZWX0NSWVBUT19TRVc2NF9PUFMNCisjZGVm aW5lIERFRl9SVlZfQ1JZUFRPX1NFVzY0X09QUyhUWVBFLCBSRVFVSVJFKQ0K KyNlbmRpZg0KKw0KREVGX1JWVl9JX09QUyAodmludDhtZjhfdCwgUlZWX1JF UVVJUkVfTUlOX1ZMRU5fNjQpDQpERUZfUlZWX0lfT1BTICh2aW50OG1mNF90 LCAwKQ0KREVGX1JWVl9JX09QUyAodmludDhtZjJfdCwgMCkNCkBAIC0xMzU1 LDYgKzEzNjcsMTcgQEAgREVGX1JWVl9UVVBMRV9PUFMgKHZmbG9hdDY0bTJ4 M190LCBSVlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0KREVGX1JWVl9UVVBMRV9P UFMgKHZmbG9hdDY0bTJ4NF90LCBSVlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0K REVGX1JWVl9UVVBMRV9PUFMgKHZmbG9hdDY0bTR4Ml90LCBSVlZfUkVRVUlS RV9FTEVOX0ZQXzY0KQ0KK0RFRl9SVlZfQ1JZUFRPX1NFVzMyX09QUyAodnVp bnQzMm1mMl90LCBSVlZfUkVRVUlSRV9NSU5fVkxFTl82NCkNCitERUZfUlZW X0NSWVBUT19TRVczMl9PUFMgKHZ1aW50MzJtMV90LCAwKQ0KK0RFRl9SVlZf Q1JZUFRPX1NFVzMyX09QUyAodnVpbnQzMm0yX3QsIDApDQorREVGX1JWVl9D UllQVE9fU0VXMzJfT1BTICh2dWludDMybTRfdCwgMCkNCitERUZfUlZWX0NS WVBUT19TRVczMl9PUFMgKHZ1aW50MzJtOF90LCAwKQ0KKw0KK0RFRl9SVlZf Q1JZUFRPX1NFVzY0X09QUyAodnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VM RU5fNjQpDQorREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bTJf dCwgUlZWX1JFUVVJUkVfRUxFTl82NCkNCitERUZfUlZWX0NSWVBUT19TRVc2 NF9PUFMgKHZ1aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQ0KK0RF Rl9SVlZfQ1JZUFRPX1NFVzY0X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpDQorDQojdW5kZWYgREVGX1JWVl9JX09QUw0KI3VuZGVm IERFRl9SVlZfVV9PUFMNCiN1bmRlZiBERUZfUlZWX0ZfT1BTDQpAQCAtMTQw NiwzICsxNDI5LDUgQEAgREVGX1JWVl9UVVBMRV9PUFMgKHZmbG9hdDY0bTR4 Ml90LCBSVlZfUkVRVUlSRV9FTEVOX0ZQXzY0KQ0KI3VuZGVmIERFRl9SVlZf TE1VTDJfT1BTDQojdW5kZWYgREVGX1JWVl9MTVVMNF9PUFMNCiN1bmRlZiBE RUZfUlZWX1RVUExFX09QUw0KKyN1bmRlZiBERUZfUlZWX0NSWVBUT19TRVcz Ml9PUFMNCisjdW5kZWYgREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTDQpkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRp bnMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlu cy5jYw0KaW5kZXggNGUyYzY2YzJkZTcuLjgwODdjM2ZhZjdlIDEwMDY0NA0K LS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu Y2MNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0 aW5zLmNjDQpAQCAtNTIxLDYgKzUyMSwxOSBAQCBzdGF0aWMgY29uc3QgcnZ2 X3R5cGVfaW5mbyB0dXBsZV9vcHNbXSA9IHsNCiNpbmNsdWRlICJyaXNjdi12 ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIg0KICAge05VTV9WRUNUT1JfVFlQ RVMsIDB9fTsNCisvKiBCZWxvdyB0eXBlcyB3aWxsIGJlIHJlZ2lzdGVyZWQg Zm9yIHZlY3Rvci1jcnlwdG8gaW50cmluc2ljIGZ1bmN0aW9ucyovDQorLyog QSBsaXN0IG9mIHNldzMyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgdmVjdG9y LWNyeXB0byBpbnRyaW5zaWMgZnVuY3Rpb25zLiAgKi8NCitzdGF0aWMgY29u c3QgcnZ2X3R5cGVfaW5mbyBjcnlwdG9fc2V3MzJfb3BzW10gPSB7DQorI2Rl ZmluZSBERUZfUlZWX0NSWVBUT19TRVczMl9PUFMoVFlQRSwgUkVRVUlSRSkg e1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sDQorI2luY2x1ZGUgInJp c2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiDQorICB7TlVNX1ZFQ1RP Ul9UWVBFUywgMH19Ow0KKw0KKy8qIEEgbGlzdCBvZiBzZXc2NCB3aWxsIGJl IHJlZ2lzdGVyZWQgZm9yIHZlY3Rvci1jcnlwdG8gaW50cmluc2ljIGZ1bmN0 aW9ucy4gICovDQorc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gY3J5cHRv X3NldzY0X29wc1tdID0gew0KKyNkZWZpbmUgREVGX1JWVl9DUllQVE9fU0VX NjRfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJF UVVJUkV9LA0KKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlw ZXMuZGVmIg0KKyAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsNCisNCnN0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gcnZ2X2FyZ190 eXBlX2luZm9fZW5kDQogICA9IHJ2dl9hcmdfdHlwZV9pbmZvIChOVU1fQkFT RV9UWVBFUyk7DQpAQCAtNzU0LDYgKzc2NywxMSBAQCBzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHZfc2l6ZV9hcmdzW10NCiAg ID0ge3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZf YXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2l6ZSksDQogICAgICBydnZfYXJn X3R5cGVfaW5mb19lbmR9Ow0KKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2ZWN0 b3JfdHlwZSBmdW5jIChkb3VibGUgZGVtb3RlX3R5cGUsIHNpemVfdCkgZnVu Y3Rpb24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190 eXBlX2luZm8gd3Zfc2l6ZV9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV9kb3VibGVfdHJ1bmNfdmVjdG9yKSwNCisgICAgcnZ2 X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NpemUpLHJ2dl9hcmdfdHlwZV9p bmZvX2VuZH07DQorDQovKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5 cGUgZnVuYyAodmVjdG9yX3R5cGUsIHZlY3Rvcl90eXBlLCBzaXplKQ0KICAq IGZ1bmN0aW9uLiAgKi8NCnN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2Fy Z190eXBlX2luZm8gdnZfc2l6ZV9hcmdzW10NCkBAIC0xMDQ0LDYgKzEwNjIs MTQgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Zf b3BzDQogICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9y KSwgLyogUmV0dXJuIHR5cGUgKi8NCiAgICAgIGVuZF9hcmdzIC8qIEFyZ3Mg Ki99Ow0KKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZl Y3Rvcl90eXBlIGZ1bmMgKHZlY3Rvcl90eXBlKQ0KKyAqIGZ1bmN0aW9uIHJl Z2lzdHJhdGlvbi4gKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIHVfdnZfb3BzDQorICA9IHt1X29wcywgLyogVHlwZXMgKi8NCisg ICAgIE9QX1RZUEVfdiwgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8N CisgICAgIHZfYXJncyAvKiBBcmdzICovfTsNCisNCi8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHVuc2lnbmVkIGxvbmcgZnVuYyAodmVj dG9yX3R5cGUpDQogICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0Kc3Rh dGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBiX3Vsb25nX21fb3Bz DQpAQCAtMjE3NCw2ICsyMjAwLDE0IEBAIHN0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gdV93dnZfb3BzDQogICAgICBydnZfYXJnX3R5cGVf aW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCiAg ICAgIHd2dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKy8qIEEgc3RhdGljIG9wZXJh bmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGRvdWJsZSBk ZW1vdGUgdHlwZSwgc2l6ZSB0eXBlKQ0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJh dGlvbi4gKi8NCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IHVfc2hpZnRfd3Z4X29wcw0KKyAgPSB7d2V4dHVfb3BzLCAgIC8qIFR5cGVz ICovDQorICAgICBPUF9UWVBFX3Z4LCAgIC8qIFN1ZmZpeCAqLw0KKyAgICAg cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVy biB0eXBlICovDQorICAgICB3dl9zaXplX2FyZ3MgLyogQXJncyAqL307DQor DQovKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3Jf dHlwZSBmdW5jIChkb3VibGUgZGVtb3RlIHR5cGUsIGRvdWJsZQ0KICAqIGRl bW90ZSBzY2FsYXJfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLiAqLw0K c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpX3d2eF9vcHMN CkBAIC0yNjA0LDYgKzI2MzgsMTAxIEBAIHN0YXRpYyBDT05TVEVYUFIgY29u c3QgcnZ2X29wX2luZm8gYWxsX3ZfdmNyZWF0ZV9sbXVsNF94Ml9vcHMNCiAg ICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92bG11bF9leHRfeDIp LCAvKiBSZXR1cm4gdHlwZSAqLw0KICAgICAgZXh0X3ZjcmVhdGVfYXJncyAv KiBBcmdzICovfTsNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9u IGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSkuDQorICAgU29t ZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9MzIsIHN1Y2ggYXMgY3J5cHRvIHZl Y3RvbCBadmtnIGV4dGVuc2lvbi4NCisgKiBmdW5jdGlvbiByZWdpc3RyYXRp b24uICAqLw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBl X2luZm8gdnNfbG11bF94Ml9hcmdzW10NCisgID0ge3J2dl9hcmdfdHlwZV9p bmZvIChSVlZfQkFTRV92bG11bF9leHRfeDIpLA0KKyAgICAgcnZ2X2FyZ190 eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIHJ2dl9hcmdfdHlwZV9pbmZv X2VuZH07DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5 cGVfaW5mbyB2c19sbXVsX3g0X2FyZ3NbXQ0KKyAgPSB7cnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94NCksDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190eXBlX2lu Zm9fZW5kfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdf dHlwZV9pbmZvIHZzX2xtdWxfeDhfYXJnc1tdDQorICA9IHtydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3g4KSwNCisgICAgIHJ2dl9h cmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCBydnZfYXJnX3R5cGVf aW5mb19lbmR9Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2Fy Z190eXBlX2luZm8gdnNfbG11bF94MTZfYXJnc1tdDQorICA9IHtydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmxtdWxfZXh0X3gxNiksDQorICAgICBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgcnZ2X2FyZ190 eXBlX2luZm9fZW5kfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2 dl9vcF9pbmZvIHVfdnZ2X2NyeXB0b19zZXczMl9vcHMNCisgID0ge2NyeXB0 b19zZXczMl9vcHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBFX3Z2 LCAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnZf YXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIHVfdnZ2dl9jcnlwdG9fc2V3MzJfb3BzDQorICA9IHtj cnlwdG9fc2V3MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQ RV92diwgICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5m byAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAg IHZ2dl9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgcnZ2X29wX2luZm8gdV92dnZfc2l6ZV9jcnlwdG9fc2V3MzJfb3Bz DQorICA9IHtjcnlwdG9fc2V3MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAg ICAgT1BfVFlQRV92aSwgICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJn X3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGUg Ki8NCisgICAgIHZ2X3NpemVfYXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHVfdnZfc2l6ZV9jcnlw dG9fc2V3MzJfb3BzDQorICA9IHtjcnlwdG9fc2V3MzJfb3BzLCAgICAvKiBU eXBlcyAqLw0KKyAgICAgT1BfVFlQRV92aSwgICAgLyogU3VmZml4ICovDQor ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyog UmV0dXJuIHR5cGUgKi8NCisgICAgIHZfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99 Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92 dnNfY3J5cHRvX3NldzMyX29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywg ICAgLyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZp eCAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksIC8qIFJldHVybiB0eXBlICovDQorICAgICB2dl9hcmdzIC8qIEFyZ3Mg Ki99Ow0KKw0KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g dV92dnNfY3J5cHRvX3NldzMyX2xtdWxfeDJfb3BzDQorICA9IHtjcnlwdG9f c2V3MzJfb3BzLCAgICAvKiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92cywg ICAgLyogU3VmZml4ICovDQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZW X0JBU0VfdmxtdWxfZXh0X3gyKSwgLyogUmV0dXJuIHR5cGUgKi8NCisgICAg IHZzX2xtdWxfeDJfYXJncyAvKiBBcmdzICovfTsNCisNCitzdGF0aWMgQ09O U1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHVfdnZzX2NyeXB0b19zZXczMl9s bXVsX3g0X29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAgLyogVHlw ZXMgKi8NCisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAqLw0KKyAg ICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4dF94NCks IC8qIFJldHVybiB0eXBlICovDQorICAgICB2c19sbXVsX3g0X2FyZ3MgLyog QXJncyAqL307DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyB1X3Z2c19jcnlwdG9fc2V3MzJfbG11bF94OF9vcHMNCisgID0ge2Ny eXB0b19zZXczMl9vcHMsICAgIC8qIFR5cGVzICovDQorICAgICBPUF9UWVBF X3ZzLCAgICAvKiBTdWZmaXggKi8NCisgICAgIHJ2dl9hcmdfdHlwZV9pbmZv IChSVlZfQkFTRV92bG11bF9leHRfeDgpLCAvKiBSZXR1cm4gdHlwZSAqLw0K KyAgICAgdnNfbG11bF94OF9hcmdzIC8qIEFyZ3MgKi99Ow0KKw0KK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdV92dnNfY3J5cHRvX3Nl dzMyX2xtdWxfeDE2X29wcw0KKyAgPSB7Y3J5cHRvX3NldzMyX29wcywgICAg LyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdnMsICAgIC8qIFN1ZmZpeCAq Lw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZsbXVsX2V4 dF94MTYpLCAvKiBSZXR1cm4gdHlwZSAqLw0KKyAgICAgdnNfbG11bF94MTZf YXJncyAvKiBBcmdzICovfTsNCisNCisvKiBBIHN0YXRpYyBvcGVyYW5kIGlu Zm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSku DQorICAgU29tZSBpbnMganVzdCBzdXBwb3J0cyBTRVc9NjQsIHN1Y2ggYXMg Y3J5cHRvIHZlY3RvbCBadmJjIGV4dGVuc2lvbg0KKyAgIHZjbG11bC52diwg dmNsbXVsLnZ4Lg0KKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi4gICovDQor c3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2dl9jcnlw dG9fc2V3NjRfb3BzDQorICA9IHtjcnlwdG9fc2V3NjRfb3BzLCAgICAvKiBU eXBlcyAqLw0KKyAgICAgT1BfVFlQRV92diwgICAgLyogU3VmZml4ICovDQor ICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyog UmV0dXJuIHR5cGUgKi8NCisgICAgIHZ2X2FyZ3MgLyogQXJncyAqL307DQor DQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2eF9j cnlwdG9fc2V3NjRfb3BzDQorICA9IHtjcnlwdG9fc2V3NjRfb3BzLCAgICAv KiBUeXBlcyAqLw0KKyAgICAgT1BfVFlQRV92eCwgICAgLyogU3VmZml4ICov DQorICAgICBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwg LyogUmV0dXJuIHR5cGUgKi8NCisgICAgIHZ4X2FyZ3MgLyogQXJncyAqL307 DQorDQorc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyB1X3Z2 dnZfY3J5cHRvX3NldzY0X29wcw0KKyAgPSB7Y3J5cHRvX3NldzY0X29wcywg ICAgLyogVHlwZXMgKi8NCisgICAgIE9QX1RZUEVfdnYsICAgIC8qIFN1ZmZp eCAqLw0KKyAgICAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3Rv ciksIC8qIFJldHVybiB0eXBlICovDQorICAgICB2dnZfYXJncyAvKiBBcmdz ICovfTsNCisNCi8qIEEgbGlzdCBvZiBhbGwgUlZWIGJhc2UgZnVuY3Rpb24g dHlwZXMuICAqLw0Kc3RhdGljIENPTlNURVhQUiBjb25zdCBmdW5jdGlvbl90 eXBlX2luZm8gZnVuY3Rpb25fdHlwZXNbXSA9IHsNCiNkZWZpbmUgREVGX1JW Vl9UWVBFX0lOREVYKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQpAQCAtNDE3Niw3ICs0MzA1LDkgQEAg cmVnaXN0ZXJlZF9mdW5jdGlvbjo6b3ZlcmxvYWRlZF9oYXNoIChjb25zdCB2 ZWM8dHJlZSwgdmFfZ2M+ICZhcmdsaXN0KQ0KICAgICAgICBfX3Jpc2N2X3Zz ZXQodmludDhtMl90IGRlc3QsIHNpemVfdCBpbmRleCwgdmludDhtMV90IHZh bHVlKTsgVGhlIHJlYXNvbg0KICAgICAgICBpcyB0aGUgc2FtZSBhcyBhYm92 ZS4gKi8NCiAgICAgICBpZiAoKGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZn ZXQgJiYgKGkgPT0gKGxlbiAtIDEpKSkNCi0gICB8fCAoaW5zdGFuY2UuYmFz ZSA9PSBiYXNlczo6dnNldCAmJiAoaSA9PSAobGVuIC0gMikpKSkNCisgICB8 fCAoKGluc3RhbmNlLmJhc2UgPT0gYmFzZXM6OnZzZXQNCisgICAgICAgICAg ICAgICB8fCBpbnN0YW5jZS5zaGFwZSA9PSBzaGFwZXM6OmNyeXB0b192aSkN CisgICAgICAgICAgICAgJiYgKGkgPT0gKGxlbiAtIDIpKSkpDQphcmd1bWVu dF90eXBlcy5zYWZlX3B1c2ggKHNpemVfdHlwZV9ub2RlKTsNCiAgICAgICAv KiBWZWN0b3IgZml4ZWQtcG9pbnQgYXJpdGhtZXRpYyBpbnN0cnVjdGlvbnMg cmVxdWlyaW5nIGFyZ3VtZW50IHZ4cm0uDQogICAgIEZvciBleGFtcGxlOiB2 dWludDMybTRfdCBfX3Jpc2N2X3ZhYWRkdSh2dWludDMybTRfdCB2czIsDQpk aWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMuZGVmDQppbmRleCA2NjYxNjI5YWFkOC4uMGMzZWUzYjI5ODYgMTAw NjQ0DQotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWls dGlucy5kZWYNCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLmRlZg0KQEAgLTU1OCw2ICs1NTgsNyBAQCBERUZfUlZWX1RZ UEUgKHZmbG9hdDY0bThfdCwgMTcsIF9fcnZ2X2Zsb2F0NjRtOF90LCBkb3Vi bGUsIFJWVk04REYsIF9mNjRtOCwNCkRFRl9SVlZfT1BfVFlQRSAodnYpDQpE RUZfUlZWX09QX1RZUEUgKHZ4KQ0KK0RFRl9SVlZfT1BfVFlQRSAodmkpDQpE RUZfUlZWX09QX1RZUEUgKHYpDQpERUZfUlZWX09QX1RZUEUgKHd2KQ0KREVG X1JWVl9PUF9UWVBFICh3eCkNCi0tIA0KMi4xNy4xDQogDQogDQo= ------=_001_NextPart384752564044_=------