From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-97.freemail.mail.aliyun.com (out30-97.freemail.mail.aliyun.com [115.124.30.97]) by sourceware.org (Postfix) with ESMTPS id 683783858C66 for ; Wed, 10 Jan 2024 11:06:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 683783858C66 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.alibaba.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 683783858C66 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.97 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704884786; cv=none; b=aiGh3lWpIbiB/zqhhyXR81C7jOzwuqs3kVZ68+fFRyTdCfRZzPUJ50let/+qD8Vu/I/gZkEqzLO1tG5dqembByY5GoFoNJnc4Gk1CJlbCo42VFI55OXaMOOnG6gdMRX0sNNqbsAErGk1BqdxJcnf/2H9LthdCgD2GFFWuAPTx44= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704884786; c=relaxed/simple; bh=5LRxepkMlzoafNE190NBbjIfGnmXCCD8kbVDyG88it4=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=izi+k6vJn1R9/M/jiSaS2rmDP1ijeJlO4iI06e9yw7wplXGvo1fCok5QINdoIJoHhu6Iv2ZEzgxkFsLCehGOMPFWS/KkfM7skcfoS/p4PhI8rvl96w34fWY1Y1kUnL0duozawQYH20aQJN91mXbj+Il4+/2NKBSUVS8vmDlCxSM= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R141e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045168;MF=cooper.joshua@linux.alibaba.com;NM=1;PH=DW;RN=10;SR=0;TI=W4_0.2.3_v5ForWebDing_212D6C78_1704884638820_o7001c52f; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_212D6C78_1704884638820_o7001c52f]) at Wed, 10 Jan 2024 19:06:06 +0800 Date: Wed, 10 Jan 2024 19:06:06 +0800 From: "joshua" To: "juzhe.zhong@rivai.ai" , "gcc-patches" Cc: "Jim Wilson" , "palmer" , "andrew" , "philipp.tomsich" , "jeffreyalaw" , "christoph.muellner" , "jinma" , "cooper.qu" Reply-To: "joshua" Message-ID: <09711c53-1709-4ffd-93c1-9a7bd344c0e1.cooper.joshua@linux.alibaba.com> Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVj?= =?UTF-8?B?dG9yLXNwZWNpZmljIGludHJpbnNpY3Mu?= X-Mailer: [Alimail-Mailagent revision 79][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <84F7577214BA46AD+202401101900269053910@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <84F7577214BA46AD+202401101900269053910@rivai.ai> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-18.8 required=5.0 tests=BAYES_00,BODY_8BITS,ENV_AND_HDR_SPF_MATCH,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_STATUS,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,USER_IN_DEF_SPF_WL 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: VGhlIGtleSBkaWZmZXJlbmNlIGJldHdlZW4gdmxiL3ZsaC92bHcgaXMgbm90IG91dHB1dCB0eXBl IHRvby4KVGhlaXIgZGlmZmVyZW5jZSBpcyB0aGUgcmFuZ2Ugb2YgZGF0YXR5cGUsIG5vdCBvbmUg c3BlY2lmaWMgdHlwZS4gCldlIGhhdmUgZGl2ZWQgaW50byB0aGUgeHRoZWFkdmVjdG9yIHNwZWNp YWwgaW50cmluc2ljcyBhbmQgYXJlCnN1cmUgYWJvdXQgdGhhdC4KCgoKCgoKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCuWP keS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFpLmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4K5Y+R 6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMOaXpSjmmJ/mnJ/kuIkpIDE5OjAwCuaUtuS7tuS6uu+8 miJjb29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1w YXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4K5oqE44CA6YCB77yaSmltIFdpbHNvbjxq aW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVyQGRhYmJlbHQuY29tPjsgYW5k cmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9tc2ljaCI8cGhpbGlwcC50b21zaWNo QHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21haWwuY29tPjsgImNocmlzdG9w aC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1PjsgamlubWE8amlubWFAbGlu dXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+ CuS4u+OAgOmimO+8mlJlOiBSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3Ig eHRoZWFkdmVjdG9yLXNwZWNpZmljIGludHJpbnNpY3MuCgoKaW5zdGFuY2Uub3BfaW5mby0+YXJn c1tpXS5nZXRfdHJlZV90eXBlIChpbnN0YW5jZS50eXBlLmluZGV4KSDCoGlzIG91dHB1dCB0eXBl LgoKCllvdSBjYW4gdXNlIEdEQiBkZWJ1ZyBpdCAuCgoKanV6aGUuemhvbmdAcml2YWkuYWkKCsKg CuWPkeS7tuS6uu+8msKgam9zaHVhCuWPkemAgeaXtumXtO+8msKgMjAyNC0wMS0xMMKgMTg6NTcK 5pS25Lu25Lq677yawqBqdXpoZS56aG9uZ0ByaXZhaS5haTsgZ2NjLXBhdGNoZXMK5oqE6YCB77ya wqBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxh dzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29vcGVyLnF1CuS4u+mimO+8msKgUmXvvJpS Ze+8mltQQVRDSCB2NV0gUklTQy1WOiBBZGQgc3VwcG9ydCBmb3IgeHRoZWFkdmVjdG9yLXNwZWNp ZmljIGludHJpbnNpY3MuCgpIaSBKdXpoZSwKClBlcmhhcHMgdGhpbmdzIGFyZSBub3QgYXMgc2lt cGxlIGFzIGltYWdpbmVkLiAKVGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdmxiL3ZsaC92bHcgaXMg bm90IHRoZSBzYW1lCmFzIHZsZTgvdmxlMTYvdmxlMzIuICI4IiwgIjE2IiBvciAiMzIiIGluIHZs ZTgvdmxlMTYvdmxlMzIKY2FuIGJlIGFwcGVuZGVkIGZyb20gInZsZSIgYWNjb3JkaW5nIHRvIGlu cHV0IHR5cGUuCkJ1dCB2bGIvdmxoL3ZsdyBpcyBkaWZmZXJlbnQgbm90IGluIGlucHV0IHR5cGUu CgoKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWkuYWkgPGp1emhl Lnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEw5pelKOaYn+acn+S4 iSkgMTg6MDMK5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3NodWFAbGludXgu YWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPgrmioQg 6YCB77yaSmltIFdpbHNvbjxqaW0ud2lsc29uLmdjY0BnbWFpbC5jb20+OyBwYWxtZXI8cGFsbWVy QGRhYmJlbHQuY29tPjsgYW5kcmV3PGFuZHJld0BzaWZpdmUuY29tPjsgInBoaWxpcHAudG9tc2lj aCI8cGhpbGlwcC50b21zaWNoQHZydWxsLmV1PjsgamVmZnJleWFsYXc8amVmZnJleWFsYXdAZ21h aWwuY29tPjsgImNocmlzdG9waC5tdWVsbG5lciI8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxsLmV1 PjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVA bGludXguYWxpYmFiYS5jb20+CuS4uyDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjog QWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgoKCkkgbWVh biBjaGFuZ2UgdGhlc2U6CitERUZfUlZWX0ZVTkNUSU9OICh0aF92bGIsIHRoX2xvYWRzdG9yZV93 aWR0aCwgZnVsbF9wcmVkcywgaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHRoX3ZsaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMTZfdl9zY2Fs YXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsdywgdGhfbG9hZHN0b3Jl X3dpZHRoLCBmdWxsX3ByZWRzLCBpMzJfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKCgoKaW50byBh IHNpbmdsZToKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1 bGxfcHJlZHMsIGFsbF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQoKCmFuZCBhcHBlbmQgImgiLCAi dyIsIG9yImIiIGFjY29yZGluZyB0byAKVFlQRV9VTlNJR05FRCBhbmQKR0VUX01PREVfQklUU0la RSAoR0VUX01PREVfSU5ORVIgKFRZUEVfTU9ERSAoaW5zdGFuY2Uub3BfaW5mby0+YXJnc1tpXS5n ZXRfdHJlZV90eXBlIChpbnN0YW5jZS50eXBlLmluZGV4KSkpKQoKCgppbiB0aF9sb2Fkc3RvcmVf d2lkdGguCgoKSXQgc2hvdWxkIGRlZmluaXRlbHkgd29ya3MsIEkgYWxsb3cgdGhpcyBmbGV4aWJp bGl0eSBpbiBkZXNpZ24gb2YgdGhlIGZyYW1ld29yay4KCgoKCmp1emhlLnpob25nQHJpdmFpLmFp CgogCuWPkeS7tuS6uu+8miBqb3NodWEK5Y+R6YCB5pe26Ze077yaIDIwMjQtMDEtMTAgMTc6NTUK 5pS25Lu25Lq677yaIGp1emhlLnpob25nQHJpdmFpLmFpOyBnY2MtcGF0Y2hlcwrmioTpgIHvvJog SmltIFdpbHNvbjsgcGFsbWVyOyBhbmRyZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7 IGNocmlzdG9waC5tdWVsbG5lcjsgamlubWE7IGNvb3Blci5xdQrkuLvpopjvvJogUmXvvJpbUEFU Q0ggdjVdIFJJU0MtVjogQWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRy aW5zaWNzLgoKQW5kIHJldmlzZSB0aF9sb2Fkc3RvcmVfd2lkdGgsIGFwcGVuZCB0aGUgbmFtZSBh Y2NvcmRpbmcgVFlQRV9VTlNJR05FRCBhbmQgCkdFVF9NT0RFX0JJVFNJWkUgKEdFVF9NT0RFX0lO TkVSIChUWVBFX01PREUgKGluc3RhbmNlLm9wX2luZm8tPmFyZ3NbaV0uZ2V0X3RyZWVfdHlwZSAo aW5zdGFuY2UudHlwZS5pbmRleCkpKSkKIApXaGF0IGRvIHlvdSBtZWFuIGJ5IGl0PyBJJ20gYSBi aXQgY29uZnVzZWQuCiAKQ2hhbmdpbmcgaThfdl9zY2FsYXJfY29uc3RfcHRyX29wcyBpbnRvIGFs bF92X3NjYWxhcl9jb25zdF9wdHJfb3BzCndpbGwgZXhwYW5kIHRoZSBkYXRhdHlwZXMgdGhhdCBj YW4gYmUgdXNlZCBpbiB0aF92bGIuIENhbiB3ZSByZXN0cmljdAphZ2FpbiBpbiB0aF9sb2Fkc3Rv cmVfd2lkdGg/CiAKIAogCiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCuWPkeS7tuS6uu+8mmp1emhlLnpob25nQHJpdmFp LmFpIDxqdXpoZS56aG9uZ0ByaXZhaS5haT4K5Y+R6YCB5pe26Ze077yaMjAyNOW5tDHmnIgxMOaX pSjmmJ/mnJ/kuIkpIDE3OjM1CuaUtuS7tuS6uu+8miJjb29wZXIuam9zaHVhIjxjb29wZXIuam9z aHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgImdjYy1wYXRjaGVzIjxnY2MtcGF0Y2hlc0BnY2MuZ251 Lm9yZz4K5oqEIOmAge+8mkppbSBXaWxzb248amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFs bWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFuZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGls aXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZy ZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3RvcGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5l ckB2cnVsbC5ldT47ICJjb29wZXIuam9zaHVhIjxjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEu Y29tPjsgamlubWE8amlubWFAbGludXguYWxpYmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIu cXVAbGludXguYWxpYmFiYS5jb20+CuS4uyDpopjvvJpSZTogW1BBVENIIHY1XSBSSVNDLVY6IEFk ZCBzdXBwb3J0IGZvciB4dGhlYWR2ZWN0b3Itc3BlY2lmaWMgaW50cmluc2ljcy4KIAogCitERUZf UlZWX0ZVTkNUSU9OICh0aF92bGIsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThf dl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsaCwgdGhfbG9h ZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RF Rl9SVlZfRlVOQ1RJT04gKHRoX3ZsdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBp MzJfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKIAogCiAKSSB0aGluayB3ZSBzaG91bGQgcmVtb3Zl IHRob3NlIG1hbnkgZGF0YSBzdHJ1Y3R1cmUgeW91IGFkZGVkIGxpa2U6IGk4X3Zfc2NhbGFyX2Nv bnN0X3B0cl9vcHMKSW5zdGVhZCwgeW91IHNob3VsZCB1c2UgYWxsX3Zfc2NhbGFyX2NvbnN0X3B0 cl9vcHMKIAogCkFuZCByZXZpc2UgdGhfbG9hZHN0b3JlX3dpZHRoLCBhcHBlbmQgdGhlIG5hbWUg YWNjb3JkaW5nIFRZUEVfVU5TSUdORUQgYW5kIApHRVRfTU9ERV9CSVRTSVpFIChHRVRfTU9ERV9J Tk5FUiAoVFlQRV9NT0RFIChpbnN0YW5jZS5vcF9pbmZvLT5hcmdzW2ldLmdldF90cmVlX3R5cGUg KGluc3RhbmNlLnR5cGUuaW5kZXgpKSkpCiAKIAogCiAKanV6aGUuemhvbmdAcml2YWkuYWkKIAog CkZyb206IEp1biBTaGEgKEpvc2h1YSkKRGF0ZTogMjAyNC0wMS0xMCAxNzoyNwpUbzogZ2NjLXBh dGNoZXMKQ0M6IGppbS53aWxzb24uZ2NjOyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNo OyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAo Sm9zaHVhKTsgSmluIE1hOyBYaWFubWlhbyBRdQpTdWJqZWN0OiBbUEFUQ0ggdjVdIFJJU0MtVjog QWRkIHN1cHBvcnQgZm9yIHh0aGVhZHZlY3Rvci1zcGVjaWZpYyBpbnRyaW5zaWNzLgogClRoaXMg cGF0Y2ggb25seSBpbnZvbHZlcyB0aGUgZ2VuZXJhdGlvbiBvZiB4dGhlYWR2ZWN0b3IKc3BlY2lh bCBsb2FkL3N0b3JlIGluc3RydWN0aW9ucyBhbmQgdmV4dCBpbnN0cnVjdGlvbnMuCiAKZ2NjL0No YW5nZUxvZzoKIAogKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj CiAoY2xhc3MgdGhfbG9hZHN0b3JlX3dpZHRoKTogRGVmaW5lIG5ldyBidWlsdGluIGJhc2VzLgog KEJBU0UpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gYmFzZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtYmFzZXMuaDoKIERlZmluZSBuZXcgYnVpbHRpbiBjbGFzcy4KICogY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmICh2bHNlZ2ZmKToK IEluY2x1ZGUgdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYuCiAqIGNvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmNjCiAoc3RydWN0IHRoX2xvYWRzdG9y ZV93aWR0aF9kZWYpOiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKHN0cnVjdCB0aF9pbmRl eGVkX2xvYWRzdG9yZV93aWR0aF9kZWYpOgogRGVmaW5lIG5ldyBidWlsdGluIHNoYXBlcy4KIChT SEFQRSk6IERlZmluZSBuZXcgYnVpbHRpbiBzaGFwZXMuCiAqIGNvbmZpZy9yaXNjdi9yaXNjdi12 ZWN0b3ItYnVpbHRpbnMtc2hhcGVzLmg6CiBEZWZpbmUgbmV3IGJ1aWx0aW4gc2hhcGVzLgogKiBj b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZgogKERFRl9SVlZfSThf T1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLgogKERFRl9SVlZfSTE2X09QUyk6 IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZlY3Rvci4KIChERUZfUlZWX0kzMl9PUFMpOiBBZGQg ZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3IuCiAoREVGX1JWVl9VOF9PUFMpOiBBZGQgZGF0YXR5 cGVzIGZvciBYVGhlYWRWZWN0b3IuCiAoREVGX1JWVl9VMTZfT1BTKTogQWRkIGRhdGF0eXBlcyBm b3IgWFRoZWFkVmVjdG9yLgogKERFRl9SVlZfVTMyX09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhU aGVhZFZlY3Rvci4KICh2aW50OG0xX3QpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3Iu CiAodmludDhtMl90KTogTGlrZXdpc2UuCiAodmludDhtNF90KTogTGlrZXdpc2UuCiAodmludDht OF90KTogTGlrZXdpc2UuCiAodmludDE2bTFfdCk6IExpa2V3aXNlLgogKHZpbnQxNm0yX3QpOiBM aWtld2lzZS4KICh2aW50MTZtNF90KTogTGlrZXdpc2UuCiAodmludDE2bThfdCk6IExpa2V3aXNl LgogKHZpbnQzMm0xX3QpOiBMaWtld2lzZS4KICh2aW50MzJtMl90KTogTGlrZXdpc2UuCiAodmlu dDMybTRfdCk6IExpa2V3aXNlLgogKHZpbnQzMm04X3QpOiBMaWtld2lzZS4KICh2aW50NjRtMV90 KTogTGlrZXdpc2UuCiAodmludDY0bTJfdCk6IExpa2V3aXNlLgogKHZpbnQ2NG00X3QpOiBMaWtl d2lzZS4KICh2aW50NjRtOF90KTogTGlrZXdpc2UuCiAodnVpbnQ4bTFfdCk6IExpa2V3aXNlLgog KHZ1aW50OG0yX3QpOiBMaWtld2lzZS4KICh2dWludDhtNF90KTogTGlrZXdpc2UuCiAodnVpbnQ4 bThfdCk6IExpa2V3aXNlLgogKHZ1aW50MTZtMV90KTogTGlrZXdpc2UuCiAodnVpbnQxNm0yX3Qp OiBMaWtld2lzZS4KICh2dWludDE2bTRfdCk6IExpa2V3aXNlLgogKHZ1aW50MTZtOF90KTogTGlr ZXdpc2UuCiAodnVpbnQzMm0xX3QpOiBMaWtld2lzZS4KICh2dWludDMybTJfdCk6IExpa2V3aXNl LgogKHZ1aW50MzJtNF90KTogTGlrZXdpc2UuCiAodnVpbnQzMm04X3QpOiBMaWtld2lzZS4KICh2 dWludDY0bTFfdCk6IExpa2V3aXNlLgogKHZ1aW50NjRtMl90KTogTGlrZXdpc2UuCiAodnVpbnQ2 NG00X3QpOiBMaWtld2lzZS4KICh2dWludDY0bThfdCk6IExpa2V3aXNlLgogKiBjb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjCiAoREVGX1JWVl9JOF9PUFMpOiBBZGQgZGF0YXR5 cGVzIGZvciBYVGhlYWRWZWN0b3IuCiAoREVGX1JWVl9JMTZfT1BTKTogQWRkIGRhdGF0eXBlcyBm b3IgWFRoZWFkVmVjdG9yLgogKERFRl9SVlZfSTMyX09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhU aGVhZFZlY3Rvci4KIChERUZfUlZWX1U4X09QUyk6IEFkZCBkYXRhdHlwZXMgZm9yIFhUaGVhZFZl Y3Rvci4KIChERUZfUlZWX1UxNl9PUFMpOiBBZGQgZGF0YXR5cGVzIGZvciBYVGhlYWRWZWN0b3Iu CiAoREVGX1JWVl9VMzJfT1BTKTogQWRkIGRhdGF0eXBlcyBmb3IgWFRoZWFkVmVjdG9yLgogKiBj b25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWY6IE5ldyBmaWxl LgogKiBjb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kOiBBZGQgbmV3IHBhdHRlcm5zLgogCmdj Yy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgogCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZl Y3Rvci92bGItdnNiLmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2 ZWN0b3IvdmxidS12c2IuYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVh ZHZlY3Rvci92bGgtdnNoLmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhl YWR2ZWN0b3IvdmxodS12c2guYzogTmV3IHRlc3QuCiAqIGdjYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bHctdnN3LmM6IE5ldyB0ZXN0LgogKiBnY2MudGFyZ2V0L3Jpc2N2L3J2di94 dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYzogTmV3IHRlc3QuCiAKQ28tYXV0aG9yZWQtYnk6IEppbiBN YSA8amlubWFAbGludXguYWxpYmFiYS5jb20+CkNvLWF1dGhvcmVkLWJ5OiBYaWFubWlhbyBRdSA8 Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgpDby1hdXRob3JlZC1ieTogQ2hyaXN0b3BoIE3D vGxsbmVyIDxjaHJpc3RvcGgubXVlbGxuZXJAdnJ1bGwuZXU+Ci0tLQogLi4uL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jY8KgIMKgIMKgIHwgMTM5ICsrKysrKysrCiAuLi4vcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmggwqAgwqAgwqAgfMKgIDMxICsrCiAuLi4v cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyDCoCDCoCB8wqAgOTggKysrKysr CiAuLi4vcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5owqAgwqAgwqAgfCDCoCAz ICsKIC4uLi9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIMKgIMKgIHwgMTIw ICsrKysrKysKIGdjYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIMKgIMKg IHwgMzExICsrKysrKysrKysrKysrKysrKwogZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3It YnVpbHRpbnMuaMKgIMKgIMKgIHwgwqAgMyArCiBnY2MvY29uZmlnL3Jpc2N2L3QtcmlzY3bCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IMKgIDEgKwogLi4uL3Jpc2N2L3RoZWFkLXZl Y3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmIHzCoCAzOSArKysKIGdjYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLm1kwqAgwqAgwqAgwqAgwqAgwqAgwqAgfCAyNTMgKysrKysrKysrKysrKysK IC4uLi9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuY8KgIMKgIMKgIMKgIMKgIHzCoCA2 OCArKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jIMKgIMKgIMKgIMKg IHzCoCA2OCArKysrCiAuLi4vcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmPCoCDCoCDC oCDCoCDCoCB8wqAgNjggKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxodS12c2gu YyDCoCDCoCDCoCDCoCB8wqAgNjggKysrKwogLi4uL3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 LXZzdy5jwqAgwqAgwqAgwqAgwqAgfMKgIDY4ICsrKysKIC4uLi9yaXNjdi9ydnYveHRoZWFkdmVj dG9yL3Zsd3UtdnN3LmMgwqAgwqAgwqAgwqAgfMKgIDY4ICsrKysKIDE2IGZpbGVzIGNoYW5nZWQs IDE0MDYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy9jb25maWcvcmlzY3Yv dGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCBn Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGItdnNiLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGJ1LXZzYi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxoLXZzaC5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmxo dS12c2guYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3Zsd3UtdnN3LmMKIApkaWZm IC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2Mg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYwppbmRleCA0 NmYxYTFkYTMzZS4uNWY0NGYzMWExMmIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3Yvcmlz Y3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCkBAIC0yMTI1LDYgKzIxMjUsODMgQEAgcHVibGljOgog wqAgfQogfTsKIAorLyogSW1wbGVtZW50cworICogdGgudmwoYi9oL3cpW3VdLnYvdGgudnMoYi9o L3cpW3VdLnYvdGgudmxzKGIvaC93KVt1XS52L3RoLnZzcyhiL2gvdylbdV0udi8KKyAqIHRoLnZs eChiL2gvdylbdV0udi90aC52c1t1XXgoYi9oL3cpLnYKKyAqIGNvZGVnZW4uwqAgKi8KK3RlbXBs YXRlPGJvb2wgU1RPUkVfUCwgbHN0X3R5cGUgTFNUX1RZUEUsIGludCBVTlNQRUM+CitjbGFzcyB0 aF9sb2Fkc3RvcmVfd2lkdGggOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQoreworcHVibGljOgorwqAg Ym9vbCBhcHBseV90YWlsX3BvbGljeV9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICFTVE9S RV9QOyB9CivCoCBib29sIGFwcGx5X21hc2tfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyBy ZXR1cm4gIVNUT1JFX1A7IH0KKworwqAgdW5zaWduZWQgaW50IGNhbGxfcHJvcGVydGllcyAoY29u c3QgZnVuY3Rpb25faW5zdGFuY2UgJikgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKK8KgIMKgIGlmIChT VE9SRV9QKQorwqAgwqAgwqAgcmV0dXJuIENQX1dSSVRFX01FTU9SWTsKK8KgIMKgIGVsc2UKK8Kg IMKgIMKgIHJldHVybiBDUF9SRUFEX01FTU9SWTsKK8KgIH0KKworwqAgYm9vbCBjYW5fYmVfb3Zl cmxvYWRlZF9wIChlbnVtIHByZWRpY2F0aW9uX3R5cGVfaW5kZXggcHJlZCkgY29uc3Qgb3ZlcnJp ZGUKK8KgIHsKK8KgIMKgIGlmIChTVE9SRV9QIHx8IExTVF9UWVBFID09IExTVF9JTkRFWEVEKQor wqAgwqAgwqAgcmV0dXJuIHRydWU7CivCoCDCoCByZXR1cm4gcHJlZCAhPSBQUkVEX1RZUEVfbm9u ZTsKK8KgIH0KKworwqAgcnR4IGV4cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92 ZXJyaWRlCivCoCB7CivCoCDCoCBnY2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKK8Kg IMKgIGlmIChMU1RfVFlQRSA9PSBMU1RfSU5ERVhFRCkKK8KgIMKgIMKgIHsKKyBpZiAoU1RPUkVf UCkKKyDCoCByZXR1cm4gZS51c2VfZXhhY3RfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9p bmRleGVkX3N0b3JlX3dpZHRoIChVTlNQRUMsIFVOU1BFQywKK8KgIMKgIMKgIMKgIMKgIMKgIGUu dmVjdG9yX21vZGUgKCkpKTsKKyBlbHNlCisgwqAgcmV0dXJuIGUudXNlX2V4YWN0X2luc24gKAor IMKgIMKgIGNvZGVfZm9yX3ByZWRfaW5kZXhlZF9sb2FkX3dpZHRoIChVTlNQRUMsIGUudmVjdG9y X21vZGUgKCkpKTsKK8KgIMKgIMKgIH0KK8KgIMKgIGVsc2UgaWYgKExTVF9UWVBFID09IExTVF9T VFJJREVEKQorwqAgwqAgwqAgeworIGlmIChTVE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250 aWd1b3VzX3N0b3JlX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfc3RyaWRlZF9zdG9yZV93 aWR0aCAoVU5TUEVDLCBlLnZlY3Rvcl9tb2RlICgpKSk7CisgZWxzZQorIMKgIHJldHVybiBlLnVz ZV9jb250aWd1b3VzX2xvYWRfaW5zbiAoCisgwqAgwqAgY29kZV9mb3JfcHJlZF9zdHJpZGVkX2xv YWRfd2lkdGggKFVOU1BFQywgZS52ZWN0b3JfbW9kZSAoKSkpOworwqAgwqAgwqAgfQorwqAgwqAg ZWxzZQorwqAgwqAgwqAgeworIGlmIChTVE9SRV9QKQorIMKgIHJldHVybiBlLnVzZV9jb250aWd1 b3VzX3N0b3JlX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfc3RvcmVfd2lkdGggKFVOU1BF QywgZS52ZWN0b3JfbW9kZSAoKSkpOworIGVsc2UKKyDCoCByZXR1cm4gZS51c2VfY29udGlndW91 c19sb2FkX2luc24gKAorIMKgIMKgIGNvZGVfZm9yX3ByZWRfbW92X3dpZHRoIChVTlNQRUMsIGUu dmVjdG9yX21vZGUgKCkpKTsKK8KgIMKgIMKgIH0KK8KgIH0KK307CisKKy8qIEltcGxlbWVudHMg dmV4dC54LnYuwqAgKi8KK2NsYXNzIHRoX2V4dHJhY3QgOiBwdWJsaWMgZnVuY3Rpb25fYmFzZQor eworcHVibGljOgorwqAgYm9vbCBhcHBseV92bF9wICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu IGZhbHNlOyB9CivCoCBib29sIGFwcGx5X3RhaWxfcG9saWN5X3AgKCkgY29uc3Qgb3ZlcnJpZGUg eyByZXR1cm4gZmFsc2U7IH0KK8KgIGJvb2wgYXBwbHlfbWFza19wb2xpY3lfcCAoKSBjb25zdCBv dmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQorwqAgYm9vbCB1c2VfbWFza19wcmVkaWNhdGlvbl9w ICgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CivCoCBib29sIGhhc19tZXJnZV9v cGVyYW5kX3AgKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKworwqAgcnR4IGV4 cGFuZCAoZnVuY3Rpb25fZXhwYW5kZXIgJmUpIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDCoCBn Y2NfYXNzZXJ0IChUQVJHRVRfWFRIRUFEVkVDVE9SKTsKK8KgIMKgIHJldHVybiBlLnVzZV9leGFj dF9pbnNuIChjb2RlX2Zvcl9wcmVkX3RoX2V4dHJhY3QgKGUudmVjdG9yX21vZGUgKCkpKTsKK8Kg IH0KK307CisKIC8qIEJlbG93IGltcGxlbWVudHMgYXJlIHZlY3RvciBjcnlwdG8gKi8KIC8qIElt cGxlbWVudHMgdmFuZG4uW3Z2LHZ4XSAqLwogY2xhc3MgdmFuZG4gOiBwdWJsaWMgZnVuY3Rpb25f YmFzZQpAQCAtMjU4Nyw2ICsyNjY0LDM3IEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3Qgc2VnX2lu ZGV4ZWRfbG9hZDxVTlNQRUNfT1JERVJFRD4gdmxveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHNlZ19pbmRleGVkX3N0b3JlPFVOU1BFQ19VTk9SREVSRUQ+IHZzdXhzZWdfb2JqOwog c3RhdGljIENPTlNURVhQUiBjb25zdCBzZWdfaW5kZXhlZF9zdG9yZTxVTlNQRUNfT1JERVJFRD4g dnNveHNlZ19vYmo7CiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZsc2VnZmYgdmxzZWdmZl9vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1VO SVRfU1RSSURFLCBVTlNQRUNfVEhfVkxCPiB0aF92bGJfb2JqOworc3RhdGljIENPTlNURVhQUiBj b25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RI X1ZMQlU+IHRoX3ZsYnVfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVf d2lkdGg8ZmFsc2UsIExTVF9VTklUX1NUUklERSwgVU5TUEVDX1RIX1ZMSD4gdGhfdmxoX29iajsK K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTEhVPiB0aF92bGh1X29iajsKK3N0YXRpYyBDT05TVEVYUFIg Y29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19U SF9WTFc+IHRoX3Zsd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDxmYWxzZSwgTFNUX1VOSVRfU1RSSURFLCBVTlNQRUNfVEhfVkxXVT4gdGhfdmx3dV9vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5J VF9TVFJJREUsIFVOU1BFQ19USF9WTEI+IHRoX3ZzYl9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9W TEg+IHRoX3ZzaF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDx0cnVlLCBMU1RfVU5JVF9TVFJJREUsIFVOU1BFQ19USF9WTFc+IHRoX3Zzd19vYmo7CitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQs IFVOU1BFQ19USF9WTFNCPiB0aF92bHNiX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhf bG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZMU0JVPiB0aF92 bHNidV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxz ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB0aF92bHNoX29iajsKK3N0YXRpYyBDT05T VEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfU1RSSURFRCwgVU5TUEVD X1RIX1ZMU0hVPiB0aF92bHNodV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRz dG9yZV93aWR0aDxmYWxzZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNXPiB0aF92bHN3X29i ajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1Rf U1RSSURFRCwgVU5TUEVDX1RIX1ZMU1dVPiB0aF92bHN3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfU1RSSURFRCwgVU5TUEVDX1RIX1ZM U0I+IHRoX3Zzc2Jfb2JqOworc3RhdGljIENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lk dGg8dHJ1ZSwgTFNUX1NUUklERUQsIFVOU1BFQ19USF9WTFNIPiB0aF92c3NoX29iajsKK3N0YXRp YyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPHRydWUsIExTVF9TVFJJREVELCBV TlNQRUNfVEhfVkxTVz4gdGhfdnNzd19vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xv YWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19USF9WTFhCPiB0aF92bHhi X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBM U1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEJVPiB0aF92bHhidV9vYmo7CitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lOREVYRUQsIFVOU1BFQ19U SF9WTFhIPiB0aF92bHhoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9hZHN0b3Jl X3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEhVPiB0aF92bHhodV9vYmo7 CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDxmYWxzZSwgTFNUX0lO REVYRUQsIFVOU1BFQ19USF9WTFhXPiB0aF92bHh3X29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29u c3QgdGhfbG9hZHN0b3JlX3dpZHRoPGZhbHNlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWFdV PiB0aF92bHh3dV9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0 aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZMWEI+IHRoX3ZzeGJfb2JqOworc3RhdGlj IENPTlNURVhQUiBjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg8dHJ1ZSwgTFNUX0lOREVYRUQsIFVO U1BFQ19USF9WTFhIPiB0aF92c3hoX29iajsKK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgdGhfbG9h ZHN0b3JlX3dpZHRoPHRydWUsIExTVF9JTkRFWEVELCBVTlNQRUNfVEhfVkxYVz4gdGhfdnN4d19v Ymo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1Rf SU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhCPiB0aF92c3V4Yl9vYmo7CitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHRoX2xvYWRzdG9yZV93aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZT VVhIPiB0aF92c3V4aF9vYmo7CitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2xvYWRzdG9yZV93 aWR0aDx0cnVlLCBMU1RfSU5ERVhFRCwgVU5TUEVDX1RIX1ZTVVhXPiB0aF92c3V4d19vYmo7Citz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHRoX2V4dHJhY3QgdGhfdmV4dF94X3Zfb2JqOwogCiAvKiBD cnlwdG8gVmVjdG9yICovCiBzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHZhbmRuIHZhbmRuX29iajsK QEAgLTI4NzgsNiArMjk4NiwzNyBAQCBCQVNFICh2bG94c2VnKQogQkFTRSAodnN1eHNlZykKIEJB U0UgKHZzb3hzZWcpCiBCQVNFICh2bHNlZ2ZmKQorQkFTRSAodGhfdmxiKQorQkFTRSAodGhfdmxo KQorQkFTRSAodGhfdmx3KQorQkFTRSAodGhfdmxidSkKK0JBU0UgKHRoX3ZsaHUpCitCQVNFICh0 aF92bHd1KQorQkFTRSAodGhfdnNiKQorQkFTRSAodGhfdnNoKQorQkFTRSAodGhfdnN3KQorQkFT RSAodGhfdmxzYikKK0JBU0UgKHRoX3Zsc2gpCitCQVNFICh0aF92bHN3KQorQkFTRSAodGhfdmxz YnUpCitCQVNFICh0aF92bHNodSkKK0JBU0UgKHRoX3Zsc3d1KQorQkFTRSAodGhfdnNzYikKK0JB U0UgKHRoX3Zzc2gpCitCQVNFICh0aF92c3N3KQorQkFTRSAodGhfdmx4YikKK0JBU0UgKHRoX3Zs eGgpCitCQVNFICh0aF92bHh3KQorQkFTRSAodGhfdmx4YnUpCitCQVNFICh0aF92bHhodSkKK0JB U0UgKHRoX3ZseHd1KQorQkFTRSAodGhfdnN4YikKK0JBU0UgKHRoX3ZzeGgpCitCQVNFICh0aF92 c3h3KQorQkFTRSAodGhfdnN1eGIpCitCQVNFICh0aF92c3V4aCkKK0JBU0UgKHRoX3ZzdXh3KQor QkFTRSAodGhfdmV4dF94X3YpCiAvKiBDcnlwdG8gdmVjdG9yICovCiBCQVNFICh2YW5kbikKIEJB U0UgKHZicmV2KQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtYmFzZXMuaCBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJh c2VzLmgKaW5kZXggMTEyMmUzODAxYTcuLmRmNDNhZGY5YTE3IDEwMDY0NAotLS0gYS9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5oCisrKyBiL2djYy9jb25maWcv cmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmgKQEAgLTI5OSw2ICsyOTksMzcgQEAg ZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsb3hzZWc7CiBleHRlcm4gY29uc3Qg ZnVuY3Rpb25fYmFzZSAqY29uc3QgdnN1eHNlZzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNl ICpjb25zdCB2c294c2VnOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHZsc2Vn ZmY7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxiOworZXh0ZXJuIGNv bnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZsaDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9i YXNlICpjb25zdCB0aF92bHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhf dmxidTsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92bGh1OworZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zsd3U7CitleHRlcm4gY29uc3QgZnVuY3Rp b25fYmFzZSAqY29uc3QgdGhfdnNiOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0 IHRoX3ZzaDsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0aF92c3c7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxzYjsKK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHNoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHRoX3Zsc3c7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxzYnU7 CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxzaHU7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmxzd3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdGhfdnNzYjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0 aF92c3NoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3Zzc3c7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx4YjsKK2V4dGVybiBjb25zdCBmdW5j dGlvbl9iYXNlICpjb25zdCB0aF92bHhoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNv bnN0IHRoX3ZseHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx4YnU7 CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx4aHU7CitleHRlcm4gY29u c3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmx4d3U7CitleHRlcm4gY29uc3QgZnVuY3Rpb25f YmFzZSAqY29uc3QgdGhfdnN4YjsKK2V4dGVybiBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB0 aF92c3hoOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX2Jhc2UgKmNvbnN0IHRoX3ZzeHc7CitleHRl cm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdnN1eGI7CitleHRlcm4gY29uc3QgZnVu Y3Rpb25fYmFzZSAqY29uc3QgdGhfdnN1eGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAq Y29uc3QgdGhfdnN1eHc7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fYmFzZSAqY29uc3QgdGhfdmV4 dF94X3Y7CiAvKiBCZWxvdyBmdW5jdGlvbl9iYXNlIGFyZSBWZWN0cm8gQ3J5cHRvKi8KIGV4dGVy biBjb25zdCBmdW5jdGlvbl9iYXNlICpjb25zdCB2YW5kbjsKIGV4dGVybiBjb25zdCBmdW5jdGlv bl9iYXNlICpjb25zdCB2YnJldjsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9y LWJ1aWx0aW5zLXNoYXBlcy5jYwppbmRleCAxZTRmNGQ1M2RlNi4uNDg5YTk1Y2Y2ODQgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwor KysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKQEAg LTIxMSw2ICsyMTEsODYgQEAgc3RydWN0IGluZGV4ZWRfbG9hZHN0b3JlX2RlZiA6IHB1YmxpYyBm dW5jdGlvbl9zaGFwZQogwqAgfQogfTsKIAorLyogdGhfbG9hZHN0b3JlX3dpZHRoX2RlZiBjbGFz cy7CoCAqLworc3RydWN0IHRoX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgYnVpbGRfYmFz ZQoreworwqAgY2hhciAqZ2V0X25hbWUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0 aW9uX2luc3RhbmNlICZpbnN0YW5jZSwKK8KgIMKgIGJvb2wgb3ZlcmxvYWRlZF9wKSBjb25zdCBv dmVycmlkZQorwqAgeworwqAgwqAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBv dmVybG9hZGVkLsKgICovCivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0YW5jZS5iYXNl LT5jYW5fYmVfb3ZlcmxvYWRlZF9wIChpbnN0YW5jZS5wcmVkKSkKK8KgIMKgIMKgIHJldHVybiBu dWxscHRyOworCivCoCDCoCBiLmFwcGVuZF9iYXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7 CisKK8KgIMKgIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlwZT4uwqAgKi8KK8KgIMKgIGlmICghb3Zl cmxvYWRlZF9wKQorwqAgwqAgwqAgeworIC8qIHZvcCAtLT4gdm9wX3YuwqAgKi8KKyBiLmFwcGVu ZF9uYW1lIChvcGVyYW5kX3N1ZmZpeGVzW2luc3RhbmNlLm9wX2luZm8tPm9wXSk7CisgLyogdm9w X3YgLS0+IHZvcF92Xzx0eXBlPi7CoCAqLworIGIuYXBwZW5kX25hbWUgKHR5cGVfc3VmZml4ZXNb aW5zdGFuY2UudHlwZS5pbmRleF0udmVjdG9yKTsKK8KgIMKgIMKgIH0KKworwqAgwqAgLyogQWNj b3JkaW5nIHRvIHJ2di1pbnRyaW5zaWMtZG9jLCBpdCBkb2VzIG5vdCBhZGQgIl9tIiBzdWZmaXgK KyDCoCDCoCDCoCBmb3Igdm9wX20gQysrIG92ZXJsb2FkZWQgQVBJLsKgICovCivCoCDCoCBpZiAo b3ZlcmxvYWRlZF9wICYmIGluc3RhbmNlLnByZWQgPT0gUFJFRF9UWVBFX20pCivCoCDCoCDCoCBy ZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIMKgIGIuYXBwZW5kX25hbWUgKHByZWRpY2F0aW9u X3N1ZmZpeGVzW2luc3RhbmNlLnByZWRdKTsKK8KgIMKgIHJldHVybiBiLmZpbmlzaF9uYW1lICgp OworwqAgfQorfTsKKworCisvKiB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgY2xhc3Mu wqAgKi8KK3N0cnVjdCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aF9kZWYgOiBwdWJsaWMgZnVu Y3Rpb25fc2hhcGUKK3sKK8KgIHZvaWQgYnVpbGQgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsCisgwqAg wqAgwqAgY29uc3QgZnVuY3Rpb25fZ3JvdXBfaW5mbyAmZ3JvdXApIGNvbnN0IG92ZXJyaWRlCivC oCB7CivCoCDCoCBmb3IgKHVuc2lnbmVkIGludCBwcmVkX2lkeCA9IDA7IGdyb3VwLnByZWRzW3By ZWRfaWR4XSAhPSBOVU1fUFJFRF9UWVBFUzsKK8KgICsrcHJlZF9pZHgpCivCoCDCoCDCoCB7Cisg Zm9yICh1bnNpZ25lZCBpbnQgdmVjX3R5cGVfaWR4ID0gMDsKK8KgIMKgIMKgIGdyb3VwLm9wc19p bmZvcy50eXBlc1t2ZWNfdHlwZV9pZHhdLmluZGV4ICE9IE5VTV9WRUNUT1JfVFlQRVM7CivCoCDC oCDCoCArK3ZlY190eXBlX2lkeCkKKyDCoCB7CivCoCDCoCB0cmVlIGluZGV4X3R5cGUgPSBncm91 cC5vcHNfaW5mb3MuYXJnc1sxXS5nZXRfdHJlZV90eXBlICgKKyDCoCDCoCDCoCBncm91cC5vcHNf aW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4XS5pbmRleCk7CivCoCDCoCBpZiAoIWluZGV4X3R5cGUp CisgwqAgwqAgwqAgY29udGludWU7CivCoCDCoCBidWlsZF9vbmUgKGIsIGdyb3VwLCBwcmVkX2lk eCwgdmVjX3R5cGVfaWR4KTsKKyDCoCB9CivCoCDCoCDCoCB9CivCoCB9CisKK8KgIGNoYXIgKmdl dF9uYW1lIChmdW5jdGlvbl9idWlsZGVyICZiLCBjb25zdCBmdW5jdGlvbl9pbnN0YW5jZSAmaW5z dGFuY2UsCivCoCDCoCBib29sIG92ZXJsb2FkZWRfcCkgY29uc3Qgb3ZlcnJpZGUKK8KgIHsKKwor wqAgwqAgLyogUmV0dXJuIG51bGxwdHIgaWYgaXQgY2FuIG5vdCBiZSBvdmVybG9hZGVkLsKgICov CivCoCDCoCBpZiAob3ZlcmxvYWRlZF9wICYmICFpbnN0YW5jZS5iYXNlLT5jYW5fYmVfb3Zlcmxv YWRlZF9wIChpbnN0YW5jZS5wcmVkKSkKK8KgIMKgIMKgIHJldHVybiBudWxscHRyOworCivCoCDC oCBiLmFwcGVuZF9iYXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7CivCoCDCoCAvKiB2b3Bf diAtLT4gdm9wX3ZfPHR5cGU+LsKgICovCivCoCDCoCBpZiAoIW92ZXJsb2FkZWRfcCkKK8KgIMKg IMKgIHsKKyAvKiB2b3AgLS0+IHZvcF92LsKgICovCisgYi5hcHBlbmRfbmFtZSAob3BlcmFuZF9z dWZmaXhlc1tpbnN0YW5jZS5vcF9pbmZvLT5vcF0pOworIC8qIHZvcF92IC0tPiB2b3Bfdl88dHlw ZT4uwqAgKi8KKyBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5k ZXhdLnZlY3Rvcik7CivCoCDCoCDCoCB9CisKK8KgIMKgIC8qIEFjY29yZGluZyB0byBydnYtaW50 cmluc2ljLWRvYywgaXQgZG9lcyBub3QgYWRkICJfbSIgc3VmZml4CisgwqAgwqAgwqAgZm9yIHZv cF9tIEMrKyBvdmVybG9hZGVkIEFQSS7CoCAqLworwqAgwqAgaWYgKG92ZXJsb2FkZWRfcCAmJiBp bnN0YW5jZS5wcmVkID09IFBSRURfVFlQRV9tKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25h bWUgKCk7CivCoCDCoCBiLmFwcGVuZF9uYW1lIChwcmVkaWNhdGlvbl9zdWZmaXhlc1tpbnN0YW5j ZS5wcmVkXSk7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIH0KK307CisKIC8q IGFsdV9kZWYgY2xhc3MuwqAgKi8KIHN0cnVjdCBhbHVfZGVmIDogcHVibGljIGJ1aWxkX2Jhc2UK IHsKQEAgLTYzMiw2ICs3MTIsMjEgQEAgc3RydWN0IHJlZHVjX2FsdV9kZWYgOiBwdWJsaWMgYnVp bGRfYmFzZQogwqAgfQogfTsKIAorLyogdGhfZXh0cmFjdF9kZWYgY2xhc3MuwqAgKi8KK3N0cnVj dCB0aF9leHRyYWN0X2RlZiA6IHB1YmxpYyBidWlsZF9iYXNlCit7CivCoCBjaGFyICpnZXRfbmFt ZSAoZnVuY3Rpb25fYnVpbGRlciAmYiwgY29uc3QgZnVuY3Rpb25faW5zdGFuY2UgJmluc3RhbmNl LAorwqAgwqAgwqAgYm9vbCBvdmVybG9hZGVkX3ApIGNvbnN0IG92ZXJyaWRlCivCoCB7CivCoCDC oCBiLmFwcGVuZF9iYXNlX25hbWUgKGluc3RhbmNlLmJhc2VfbmFtZSk7CivCoCDCoCBpZiAob3Zl cmxvYWRlZF9wKQorwqAgwqAgwqAgcmV0dXJuIGIuZmluaXNoX25hbWUgKCk7CivCoCDCoCBiLmFw cGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnZlY3Rvcik7CivC oCDCoCBiLmFwcGVuZF9uYW1lICh0eXBlX3N1ZmZpeGVzW2luc3RhbmNlLnR5cGUuaW5kZXhdLnNj YWxhcik7CivCoCDCoCByZXR1cm4gYi5maW5pc2hfbmFtZSAoKTsKK8KgIH0KK307CisKIC8qIHNj YWxhcl9tb3ZlX2RlZiBjbGFzcy7CoCAqLwogc3RydWN0IHNjYWxhcl9tb3ZlX2RlZiA6IHB1Ymxp YyBidWlsZF9iYXNlCiB7CkBAIC0xMDk0LDYgKzExODksOCBAQCBTSEFQRSh2c2V0dmwsIHZzZXR2 bCkKIFNIQVBFKHZzZXR2bCwgdnNldHZsbWF4KQogU0hBUEUobG9hZHN0b3JlLCBsb2Fkc3RvcmUp CiBTSEFQRShpbmRleGVkX2xvYWRzdG9yZSwgaW5kZXhlZF9sb2Fkc3RvcmUpCitTSEFQRSh0aF9s b2Fkc3RvcmVfd2lkdGgsIHRoX2xvYWRzdG9yZV93aWR0aCkKK1NIQVBFKHRoX2luZGV4ZWRfbG9h ZHN0b3JlX3dpZHRoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0aCkKIFNIQVBFKGFsdSwgYWx1 KQogU0hBUEUoYWx1X2ZybSwgYWx1X2ZybSkKIFNIQVBFKHdpZGVuX2FsdSwgd2lkZW5fYWx1KQpA QCAtMTEwNiw2ICsxMjAzLDcgQEAgU0hBUEUobW92ZSwgbW92ZSkKIFNIQVBFKG1hc2tfYWx1LCBt YXNrX2FsdSkKIFNIQVBFKHJlZHVjX2FsdSwgcmVkdWNfYWx1KQogU0hBUEUocmVkdWNfYWx1X2Zy bSwgcmVkdWNfYWx1X2ZybSkKK1NIQVBFKHRoX2V4dHJhY3QsIHRoX2V4dHJhY3QpCiBTSEFQRShz Y2FsYXJfbW92ZSwgc2NhbGFyX21vdmUpCiBTSEFQRSh2dW5kZWZpbmVkLCB2dW5kZWZpbmVkKQog U0hBUEUobWlzYywgbWlzYykKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXNoYXBlcy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVp bHRpbnMtc2hhcGVzLmgKaW5kZXggYWMyYTI4Y2UwMTcuLmE3NjI0ZDBmYWJkIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaAorKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuaApAQCAtMjgsNiAr MjgsOCBAQCBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHZzZXR2bDsKIGV4dGVy biBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldHZsbWF4OwogZXh0ZXJuIGNvbnN0IGZ1 bmN0aW9uX3NoYXBlICpjb25zdCBsb2Fkc3RvcmU7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hh cGUgKmNvbnN0IGluZGV4ZWRfbG9hZHN0b3JlOworZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBl ICpjb25zdCB0aF9sb2Fkc3RvcmVfd2lkdGg7CitleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUg KmNvbnN0IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoOwogZXh0ZXJuIGNvbnN0IGZ1bmN0aW9u X3NoYXBlICpjb25zdCBhbHU7CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IGFs dV9mcm07CiBleHRlcm4gY29uc3QgZnVuY3Rpb25fc2hhcGUgKmNvbnN0IHdpZGVuX2FsdTsKQEAg LTQxLDYgKzQzLDcgQEAgZXh0ZXJuIGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBtYXNrX2Fs dTsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgcmVkdWNfYWx1OwogZXh0ZXJu IGNvbnN0IGZ1bmN0aW9uX3NoYXBlICpjb25zdCByZWR1Y19hbHVfZnJtOwogZXh0ZXJuIGNvbnN0 IGZ1bmN0aW9uX3NoYXBlICpjb25zdCBzY2FsYXJfbW92ZTsKK2V4dGVybiBjb25zdCBmdW5jdGlv bl9zaGFwZSAqY29uc3QgdGhfZXh0cmFjdDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAq Y29uc3QgdnVuZGVmaW5lZDsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgbWlz YzsKIGV4dGVybiBjb25zdCBmdW5jdGlvbl9zaGFwZSAqY29uc3QgdnNldDsKZGlmZiAtLWdpdCBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiBiL2djYy9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZgppbmRleCA2MTAxOWE1 Njg0NC4uYWJmZWI0ZmNkOWIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVj dG9yLWJ1aWx0aW5zLXR5cGVzLmRlZgorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1idWlsdGlucy10eXBlcy5kZWYKQEAgLTI0LDEyICsyNCw0OCBAQCBhbG9uZyB3aXRoIEdDQzsg c2VlIHRoZSBmaWxlIENPUFlJTkczLiBJZiBub3Qgc2VlCiAjZGVmaW5lIERFRl9SVlZfSV9PUFMo VFlQRSwgUkVRVUlSRSkKICNlbmRpZgogCisvKiBVc2UgIkRFRl9SVlZfSThfT1BTIiBtYWNybyBp bmNsdWRlIHNvbWUgc2lnbmVkIGludGVnZXIgKGk4L2kxNi9pMzIvaTY0KQorIMKgIHdoaWNoIHdp bGwgYmUgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAq LworI2lmbmRlZiBERUZfUlZWX0k4X09QUworI2RlZmluZSBERUZfUlZWX0k4X09QUyhUWVBFLCBS RVFVSVJFKQorI2VuZGlmCisKKy8qIFVzZSAiREVGX1JWVl9JMTZfT1BTIiBtYWNybyBpbmNsdWRl IHNvbWUgc2lnbmVkIGludGVnZXIgKGkxNi9pMzIvaTY0KQorIMKgIHdoaWNoIHdpbGwgYmUgaXRl cmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLworI2lmbmRl ZiBERUZfUlZWX0kxNl9PUFMKKyNkZWZpbmUgREVGX1JWVl9JMTZfT1BTKFRZUEUsIFJFUVVJUkUp CisjZW5kaWYKKworLyogVXNlICJERUZfUlZWX0kzMl9PUFMiIG1hY3JvIGluY2x1ZGUgc29tZSBz aWduZWQgaW50ZWdlciAoaTMyL2k2NCkKKyDCoCB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIGFuZCBy ZWdpc3RlcmVkIGFzIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KKyNpZm5kZWYgREVGX1JWVl9J MzJfT1BTCisjZGVmaW5lIERFRl9SVlZfSTMyX09QUyhUWVBFLCBSRVFVSVJFKQorI2VuZGlmCisK IC8qIFVzZSAiREVGX1JWVl9VX09QUyIgbWFjcm8gaW5jbHVkZSBhbGwgdW5zaWduZWQgaW50ZWdl ciB3aGljaCB3aWxsIGJlCsKgIMKgIGl0ZXJhdGVkIGFuZCByZWdpc3RlcmVkIGFzIGludHJpbnNp YyBmdW5jdGlvbnMuwqAgKi8KICNpZm5kZWYgREVGX1JWVl9VX09QUwogI2RlZmluZSBERUZfUlZW X1VfT1BTKFRZUEUsIFJFUVVJUkUpCiAjZW5kaWYKIAorLyogVXNlICJERUZfUlZWX1U4X09QUyIg bWFjcm8gaW5jbHVkZSBzb21lIHVuc2lnbmVkIGludGVnZXIgKGk4L2kxNi9pMzIvaTY0KQorIMKg IHdoaWNoIHdpbGwgYmUgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgaW50cmluc2ljIGZ1bmN0 aW9ucy7CoCAqLworI2lmbmRlZiBERUZfUlZWX1U4X09QUworI2RlZmluZSBERUZfUlZWX1U4X09Q UyhUWVBFLCBSRVFVSVJFKQorI2VuZGlmCisKKy8qIFVzZSAiREVGX1JWVl9VMTZfT1BTIiBtYWNy byBpbmNsdWRlIHNvbWUgdW5zaWduZWQgaW50ZWdlciAoaTE2L2kzMi9pNjQpCisgwqAgd2hpY2gg d2lsbCBiZSBpdGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLsKg ICovCisjaWZuZGVmIERFRl9SVlZfVTE2X09QUworI2RlZmluZSBERUZfUlZWX1UxNl9PUFMoVFlQ RSwgUkVRVUlSRSkKKyNlbmRpZgorCisvKiBVc2UgIkRFRl9SVlZfVTMyX09QUyIgbWFjcm8gaW5j bHVkZSBzb21lIHVuc2lnbmVkIGludGVnZXIgKGkzMi9pNjQpCisgwqAgd2hpY2ggd2lsbCBiZSBp dGVyYXRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCisjaWZu ZGVmIERFRl9SVlZfVTMyX09QUworI2RlZmluZSBERUZfUlZWX1UzMl9PUFMoVFlQRSwgUkVRVUlS RSkKKyNlbmRpZgorCiAvKiBVc2UgIkRFRl9SVlZfRl9PUFMiIG1hY3JvIGluY2x1ZGUgYWxsIGZs b2F0aW5nLXBvaW50IHdoaWNoIHdpbGwgYmUKwqAgwqAgaXRlcmF0ZWQgYW5kIHJlZ2lzdGVyZWQg YXMgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAqLwogI2lmbmRlZiBERUZfUlZWX0ZfT1BTCkBAIC0z NzQsNiArNDEwLDQ1IEBAIERFRl9SVlZfSV9PUFMgKHZpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VM RU5fNjQpCiBERUZfUlZWX0lfT1BTICh2aW50NjRtNF90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQog REVGX1JWVl9JX09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKIAorREVGX1JW Vl9JOF9PUFMgKHZpbnQ4bTFfdCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50OG0yX3QsIDApCitE RUZfUlZWX0k4X09QUyAodmludDhtNF90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQ4bThfdCwg MCkKK0RFRl9SVlZfSThfT1BTICh2aW50MTZtMV90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQx Nm0yX3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDE2bTRfdCwgMCkKK0RFRl9SVlZfSThfT1BT ICh2aW50MTZtOF90LCAwKQorREVGX1JWVl9JOF9PUFMgKHZpbnQzMm0xX3QsIDApCitERUZfUlZW X0k4X09QUyAodmludDMybTJfdCwgMCkKK0RFRl9SVlZfSThfT1BTICh2aW50MzJtNF90LCAwKQor REVGX1JWVl9JOF9PUFMgKHZpbnQzMm04X3QsIDApCitERUZfUlZWX0k4X09QUyAodmludDY0bTFf dCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfSThfT1BTICh2aW50NjRtMl90LCBSVlZf UkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JOF9PUFMgKHZpbnQ2NG00X3QsIFJWVl9SRVFVSVJF X0VMRU5fNjQpCitERUZfUlZWX0k4X09QUyAodmludDY0bThfdCwgUlZWX1JFUVVJUkVfRUxFTl82 NCkKKworREVGX1JWVl9JMTZfT1BTICh2aW50MTZtMV90LCAwKQorREVGX1JWVl9JMTZfT1BTICh2 aW50MTZtMl90LCAwKQorREVGX1JWVl9JMTZfT1BTICh2aW50MTZtNF90LCAwKQorREVGX1JWVl9J MTZfT1BTICh2aW50MTZtOF90LCAwKQorREVGX1JWVl9JMTZfT1BTICh2aW50MzJtMV90LCAwKQor REVGX1JWVl9JMTZfT1BTICh2aW50MzJtMl90LCAwKQorREVGX1JWVl9JMTZfT1BTICh2aW50MzJt NF90LCAwKQorREVGX1JWVl9JMTZfT1BTICh2aW50MzJtOF90LCAwKQorREVGX1JWVl9JMTZfT1BT ICh2aW50NjRtMV90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JMTZfT1BTICh2aW50 NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JMTZfT1BTICh2aW50NjRtNF90 LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9JMTZfT1BTICh2aW50NjRtOF90LCBSVlZf UkVRVUlSRV9FTEVOXzY0KQorCitERUZfUlZWX0kzMl9PUFMgKHZpbnQzMm0xX3QsIDApCitERUZf UlZWX0kzMl9PUFMgKHZpbnQzMm0yX3QsIDApCitERUZfUlZWX0kzMl9PUFMgKHZpbnQzMm00X3Qs IDApCitERUZfUlZWX0kzMl9PUFMgKHZpbnQzMm04X3QsIDApCitERUZfUlZWX0kzMl9PUFMgKHZp bnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kzMl9PUFMgKHZpbnQ2NG0y X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kzMl9PUFMgKHZpbnQ2NG00X3QsIFJW Vl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX0kzMl9PUFMgKHZpbnQ2NG04X3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpCisKIERFRl9SVlZfVV9PUFMgKHZ1aW50OG1mOF90LCBSVlZfUkVRVUlSRV9N SU5fVkxFTl82NCkKIERFRl9SVlZfVV9PUFMgKHZ1aW50OG1mNF90LCAwKQogREVGX1JWVl9VX09Q UyAodnVpbnQ4bWYyX3QsIDApCkBAIC0zOTcsNiArNDcyLDQ1IEBAIERFRl9SVlZfVV9PUFMgKHZ1 aW50NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQogREVGX1JWVl9VX09QUyAodnVpbnQ2NG00 X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCiBERUZfUlZWX1VfT1BTICh2dWludDY0bThfdCwgUlZW X1JFUVVJUkVfRUxFTl82NCkKIAorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG0xX3QsIDApCitERUZf UlZWX1U4X09QUyAodnVpbnQ4bTJfdCwgMCkKK0RFRl9SVlZfVThfT1BTICh2dWludDhtNF90LCAw KQorREVGX1JWVl9VOF9PUFMgKHZ1aW50OG04X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQx Nm0xX3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQxNm0yX3QsIDApCitERUZfUlZWX1U4X09Q UyAodnVpbnQxNm00X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQxNm04X3QsIDApCitERUZf UlZWX1U4X09QUyAodnVpbnQzMm0xX3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQzMm0yX3Qs IDApCitERUZfUlZWX1U4X09QUyAodnVpbnQzMm00X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVp bnQzMm04X3QsIDApCitERUZfUlZWX1U4X09QUyAodnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VM RU5fNjQpCitERUZfUlZWX1U4X09QUyAodnVpbnQ2NG0yX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQp CitERUZfUlZWX1U4X09QUyAodnVpbnQ2NG00X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZf UlZWX1U4X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCisKK0RFRl9SVlZf VTE2X09QUyAodnVpbnQxNm0xX3QsIDApCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MTZtMl90LCAw KQorREVGX1JWVl9VMTZfT1BTICh2dWludDE2bTRfdCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVp bnQxNm04X3QsIDApCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MzJtMV90LCAwKQorREVGX1JWVl9V MTZfT1BTICh2dWludDMybTJfdCwgMCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQzMm00X3QsIDAp CitERUZfUlZWX1UxNl9PUFMgKHZ1aW50MzJtOF90LCAwKQorREVGX1JWVl9VMTZfT1BTICh2dWlu dDY0bTFfdCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfVTE2X09QUyAodnVpbnQ2NG0y X3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1UxNl9PUFMgKHZ1aW50NjRtNF90LCBS VlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9VMTZfT1BTICh2dWludDY0bThfdCwgUlZWX1JF UVVJUkVfRUxFTl82NCkKKworREVGX1JWVl9VMzJfT1BTICh2dWludDMybTFfdCwgMCkKK0RFRl9S VlZfVTMyX09QUyAodnVpbnQzMm0yX3QsIDApCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50MzJtNF90 LCAwKQorREVGX1JWVl9VMzJfT1BTICh2dWludDMybThfdCwgMCkKK0RFRl9SVlZfVTMyX09QUyAo dnVpbnQ2NG0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fNjQpCitERUZfUlZWX1UzMl9PUFMgKHZ1aW50 NjRtMl90LCBSVlZfUkVRVUlSRV9FTEVOXzY0KQorREVGX1JWVl9VMzJfT1BTICh2dWludDY0bTRf dCwgUlZWX1JFUVVJUkVfRUxFTl82NCkKK0RFRl9SVlZfVTMyX09QUyAodnVpbnQ2NG04X3QsIFJW Vl9SRVFVSVJFX0VMRU5fNjQpCisKIERFRl9SVlZfRl9PUFMgKHZmbG9hdDE2bWY0X3QsIFJWVl9S RVFVSVJFX0VMRU5fRlBfMTYgfCBSVlZfUkVRVUlSRV9NSU5fVkxFTl82NCkKIERFRl9SVlZfRl9P UFMgKHZmbG9hdDE2bWYyX3QsIFJWVl9SRVFVSVJFX0VMRU5fRlBfMTYpCiBERUZfUlZWX0ZfT1BT ICh2ZmxvYXQxNm0xX3QsIFJWVl9SRVFVSVJFX0VMRU5fRlBfMTYpCkBAIC0xMzc5LDcgKzE0OTMs MTMgQEAgREVGX1JWVl9DUllQVE9fU0VXNjRfT1BTICh2dWludDY0bTRfdCwgUlZWX1JFUVVJUkVf RUxFTl82NCkKIERFRl9SVlZfQ1JZUFRPX1NFVzY0X09QUyAodnVpbnQ2NG04X3QsIFJWVl9SRVFV SVJFX0VMRU5fNjQpCiAKICN1bmRlZiBERUZfUlZWX0lfT1BTCisjdW5kZWYgREVGX1JWVl9JOF9P UFMKKyN1bmRlZiBERUZfUlZWX0kxNl9PUFMKKyN1bmRlZiBERUZfUlZWX0kzMl9PUFMKICN1bmRl ZiBERUZfUlZWX1VfT1BTCisjdW5kZWYgREVGX1JWVl9VOF9PUFMKKyN1bmRlZiBERUZfUlZWX1Ux Nl9PUFMKKyN1bmRlZiBERUZfUlZWX1UzMl9PUFMKICN1bmRlZiBERUZfUlZWX0ZfT1BTCiAjdW5k ZWYgREVGX1JWVl9CX09QUwogI3VuZGVmIERFRl9SVlZfV0VYVElfT1BTCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy5jYyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjCmluZGV4IDI1ZTBiNmU1NmRlLi5mNDI5ZjEyZGMx OCAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MK KysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuY2MKQEAgLTI0Niw2 ICsyNDYsNjMgQEAgc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaXVfb3BzW10gPSB7CiAjaW5j bHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKIMKgIHtOVU1fVkVDVE9SX1RZ UEVTLCAwfX07CiAKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJlZ2lzdGVyZWQg Zm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZv IGk4X29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0k4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVD VE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRp bnMtdHlwZXMuZGVmIgorwqAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKworLyogQSBsaXN0IG9m IGFsbCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7C oCAqLworc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaTE2X29wc1tdID0geworI2RlZmluZSBE RUZfUlZWX0kxNl9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlS RX0sCisjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIKK8KgIHtOVU1f VkVDVE9SX1RZUEVTLCAwfX07CisKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3aWxsIGJlIHJl Z2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBjb25zdCBydnZf dHlwZV9pbmZvIGkzMl9vcHNbXSA9IHsKKyNkZWZpbmUgREVGX1JWVl9JMzJfT1BTKFRZUEUsIFJF UVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1ZGUgInJpc2N2LXZl Y3Rvci1idWlsdGlucy10eXBlcy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywgMH19OworCisv KiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMg ZnVuY3Rpb25zLsKgICovCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyB1OF9vcHNbXSA9IHsK KyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQ RSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIK K8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3 aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBj b25zdCBydnZfdHlwZV9pbmZvIHUxNl9vcHNbXSA9IHsKKyNkZWZpbmUgREVGX1JWVl9VMTZfT1BT KFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJUkV9LAorI2luY2x1ZGUg InJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiCivCoCB7TlVNX1ZFQ1RPUl9UWVBFUywg MH19OworCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSByZWdpc3RlcmVkIGZvciBp bnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCitzdGF0aWMgY29uc3QgcnZ2X3R5cGVfaW5mbyB1MzJf b3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZfVTMyX09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9S X1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNpbmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMt dHlwZXMuZGVmIgorwqAge05VTV9WRUNUT1JfVFlQRVMsIDB9fTsKKworLyogQSBsaXN0IG9mIGFs bCBpbnRlZ2VyIHdpbGwgYmUgcmVnaXN0ZXJlZCBmb3IgaW50cmluc2ljIGZ1bmN0aW9ucy7CoCAq Lworc3RhdGljIGNvbnN0IHJ2dl90eXBlX2luZm8gaXU4X29wc1tdID0geworI2RlZmluZSBERUZf UlZWX0k4X09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwK KyNkZWZpbmUgREVGX1JWVl9VOF9PUFMoVFlQRSwgUkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQ RSwgUkVRVUlSRX0sCisjaW5jbHVkZSAicmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXR5cGVzLmRlZiIK K8KgIHtOVU1fVkVDVE9SX1RZUEVTLCAwfX07CisKKy8qIEEgbGlzdCBvZiBhbGwgaW50ZWdlciB3 aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KK3N0YXRpYyBj b25zdCBydnZfdHlwZV9pbmZvIGl1MTZfb3BzW10gPSB7CisjZGVmaW5lIERFRl9SVlZfSTE2X09Q UyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNkZWZpbmUg REVGX1JWVl9VMTZfT1BTKFRZUEUsIFJFUVVJUkUpIHtWRUNUT1JfVFlQRV8jI1RZUEUsIFJFUVVJ UkV9LAorI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy10eXBlcy5kZWYiCivCoCB7TlVN X1ZFQ1RPUl9UWVBFUywgMH19OworCisvKiBBIGxpc3Qgb2YgYWxsIGludGVnZXIgd2lsbCBiZSBy ZWdpc3RlcmVkIGZvciBpbnRyaW5zaWMgZnVuY3Rpb25zLsKgICovCitzdGF0aWMgY29uc3QgcnZ2 X3R5cGVfaW5mbyBpdTMyX29wc1tdID0geworI2RlZmluZSBERUZfUlZWX0kzMl9PUFMoVFlQRSwg UkVRVUlSRSkge1ZFQ1RPUl9UWVBFXyMjVFlQRSwgUkVRVUlSRX0sCisjZGVmaW5lIERFRl9SVlZf VTMyX09QUyhUWVBFLCBSRVFVSVJFKSB7VkVDVE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKKyNp bmNsdWRlICJyaXNjdi12ZWN0b3ItYnVpbHRpbnMtdHlwZXMuZGVmIgorwqAge05VTV9WRUNUT1Jf VFlQRVMsIDB9fTsKKwogLyogQSBsaXN0IG9mIGFsbCB0eXBlcyB3aWxsIGJlIHJlZ2lzdGVyZWQg Zm9yIGludHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KIHN0YXRpYyBjb25zdCBydnZfdHlwZV9pbmZv IGFsbF9vcHNbXSA9IHsKICNkZWZpbmUgREVGX1JWVl9JX09QUyhUWVBFLCBSRVFVSVJFKSB7VkVD VE9SX1RZUEVfIyNUWVBFLCBSRVFVSVJFfSwKQEAgLTkzNCw2ICs5OTEsMzIgQEAgc3RhdGljIENP TlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5mbyBleHRfdmNyZWF0ZV9hcmdzW10KIMKgID0g e3J2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLArCoCDCoCDCoCBydnZfYXJnX3R5 cGVfaW5mb19lbmR9OwogCisvKiBBIGxpc3Qgb2YgYXJncyBmb3IgdmVjdG9yX3R5cGUgZnVuYyAo Y29uc3Qgc2NhbGFyX3R5cGUgKiwgc2l6ZV90KQorICogZnVuY3Rpb24uwqAgKi8KK3N0YXRpYyBD T05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX2NvbnN0X3B0cl9zaXplX2Fy Z3NbXQorwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9jb25zdF9wdHIp LAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zaXplKSwgcnZ2X2FyZ190eXBl X2luZm9fZW5kfTsKKworLyogQSBsaXN0IG9mIGFyZ3MgZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNv bnN0IHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSkKKyAqIGZ1bmN0aW9uLsKgICovCitz dGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9hcmdfdHlwZV9pbmZvIHNjYWxhcl9jb25zdF9wdHJf aW5kZXhfYXJnc1tdCivCoCA9IHtydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfc2NhbGFyX2Nv bnN0X3B0ciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Vuc2lnbmVkX3Zl Y3RvciksIHJ2dl9hcmdfdHlwZV9pbmZvX2VuZH07CisKKy8qIEEgbGlzdCBvZiBhcmdzIGZvciB2 b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzhfaW5kZXhfdHlwZSwgdmVjdG9yX3R5cGUpCisg KiBmdW5jdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfYXJnX3R5cGVfaW5m byBzY2FsYXJfcHRyX2luZGV4X2FyZ3NbXQorwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9C QVNFX3NjYWxhcl9wdHIpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV91bnNp Z25lZF92ZWN0b3IpLAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3Ip LCBydnZfYXJnX3R5cGVfaW5mb19lbmR9OworCisvKiBBIGxpc3Qgb2YgYXJncyBmb3Igdm9pZCBm dW5jIChzY2FsYXJfdHlwZSAqLCBzaXplX3QsIHZlY3Rvcl90eXBlKQorICogZnVuY3Rpb24uwqAg Ki8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X2FyZ190eXBlX2luZm8gc2NhbGFyX3B0cl9z aXplX2FyZ3NbXQorwqAgPSB7cnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3NjYWxhcl9wdHIp LAorIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV9zaXplKSwgcnZ2X2FyZ190eXBl X2luZm8gKFJWVl9CQVNFX3ZlY3RvciksCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm9fZW5kfTsK KwogLyogQSBsaXN0IG9mIG5vbmUgcHJlZHMgdGhhdCB3aWxsIGJlIHJlZ2lzdGVyZWQgZm9yIGlu dHJpbnNpYyBmdW5jdGlvbnMuwqAgKi8KIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcHJlZGljYXRp b25fdHlwZV9pbmRleCBub25lX3ByZWRzW10KIMKgID0ge1BSRURfVFlQRV9ub25lLCBOVU1fUFJF RF9UWVBFU307CkBAIC0xNDU1LDYgKzE1MzgsMTQgQEAgc3RhdGljIENPTlNURVhQUiBjb25zdCBy dnZfb3BfaW5mbyBpdV9zaGlmdF92dnZfb3BzCsKgIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZSAqLwrCoCDCoCDCoCBzaGlmdF92dl9hcmdz IC8qIEFyZ3MgKi99OwogCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciBzY2Fs YXJfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSwgc2l6ZV90KQorICogZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLiAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV94X3NfdV9vcHMK K8KgID0ge2l1X29wcyzCoCDCoCDCoCDCoCDCoCAvKiBUeXBlcyAqLworIMKgIMKgIE9QX1RZUEVf dngswqAgwqAgwqAgwqAgLyogU3VmZml4ICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJW Vl9CQVNFX3NjYWxhciksIC8qIFJldHVybiB0eXBlICovCisgwqAgwqAgdl9zaXplX2FyZ3MgLyog QXJncyAqL307CisKIC8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90 eXBlIGZ1bmMgKHZlY3Rvcl90eXBlLCBzaXplX3QpCsKgICogZnVuY3Rpb24gcmVnaXN0cmF0aW9u LiAqLwogc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdV9zaGlmdF92dnhfb3Bz CkBAIC0yNjM4LDYgKzI3MjksMjIyIEBAIHN0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2lu Zm8gYWxsX3ZfdmNyZWF0ZV9sbXVsNF94Ml9vcHMKwqAgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZsbXVsX2V4dF94MiksIC8qIFJldHVybiB0eXBlICovCsKgIMKgIMKgIGV4dF92 Y3JlYXRlX2FyZ3MgLyogQXJncyAqL307CiAKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisgKiBmdW5jdGlv biByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g aThfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAgPSB7aThfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzwqAgKi99OworCisvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJf dHlwZSAqKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfb3BzCivCoCA9IHtpMTZf b3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyog U3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwg LyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdz ICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUg ZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKikKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAq Lworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpMzJfdl9zY2FsYXJfY29uc3Rf cHRyX29wcworwqAgPSB7aTMyX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1Bf VFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8g KFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29u c3RfcHRyX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisgKiBmdW5jdGlv biByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8g dThfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAgPSB7dThfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMg b3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5 cGUgKikKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBj b25zdCBydnZfb3BfaW5mbyB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcworwqAgPSB7dTE2X29w cyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1 ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZlY3RvciksIC8q IFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX2FyZ3MgLyogQXJncyAq L307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1 bmMgKGNvbnN0IHNjYWxhcl90eXBlICopCisgKiBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTMyX3Zfc2NhbGFyX2NvbnN0X3B0 cl9vcHMKK8KgID0ge3UzMl9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZ UEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChS VlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0 X3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9u IGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBm dW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29w X2luZm8gaThfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzCivCoCA9IHtpOF9vcHMswqAgwqAg wqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAq LworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4g dHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3MgLyogQXJncyAqL307 CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rvcl90eXBlIGZ1bmMg KGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBzaXplX3QpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7C oCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpMTZfdl9zY2FsYXJfY29u c3RfcHRyX3NpemVfb3BzCivCoCA9IHtpMTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDC oCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNj YWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVy YW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25zdCBzY2FsYXJfdHlwZSAq LAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVY UFIgY29uc3QgcnZ2X29wX2luZm8gaTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAg PSB7aTMyX29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKg IMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3Zl Y3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfY29uc3RfcHRyX3NpemVf YXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Ig dmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIHNpemVfdCkgZnVuY3Rp b24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZv IHU4X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcworwqAgPSB7dThfb3BzLMKgIMKgIMKgIC8q IFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDC oCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXC oCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCisv KiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jIChjb25z dCBzY2FsYXJfdHlwZSAqLAorICogc2l6ZV90KSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8K K3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdTE2X3Zfc2NhbGFyX2NvbnN0X3B0 cl9zaXplX29wcworwqAgPSB7dTE2X29wcyzCoCDCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAg T1BfVFlQRV92LMKgIMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3ZlY3RvciksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJf Y29uc3RfcHRyX3NpemVfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBp bmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAq IHNpemVfdCkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNv bnN0IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMKK8KgID0ge3Uz Ml9vcHMswqAgwqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAv KiBTdWZmaXjCoCAqLworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3Ip LCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9zaXplX2FyZ3Mg LyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZlY3Rv cl90eXBlIGZ1bmMgKGNvbnN0IHNjYWxhcl90eXBlICosCisgKiBlZXc4X2luZGV4X3R5cGUpIGZ1 bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZfb3Bf aW5mbyBpOF92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHtpOF9vcHMswqAgwqAg wqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCDCoCAvKiBTdWZmaXjCoCAq LworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92ZWN0b3IpLCAvKiBSZXR1cm4g dHlwZcKgICovCisgwqAgwqAgc2NhbGFyX2NvbnN0X3B0cl9pbmRleF9hcmdzIC8qIEFyZ3MgKi99 OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5j IChjb25zdCBzY2FsYXJfdHlwZSAqLAorICogZWV3OF9pbmRleF90eXBlKSBmdW5jdGlvbiByZWdp c3RyYXRpb24uwqAgKi8KK3N0YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gdThfdl9z Y2FsYXJfY29uc3RfcHRyX2luZGV4X29wcworwqAgPSB7dThfb3BzLMKgIMKgIMKgIC8qIFR5cGVz wqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLwor IMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBz dGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2Nh bGFyX3R5cGUgKiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKg ICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkxNl92X3NjYWxhcl9jb25z dF9wdHJfaW5kZXhfb3BzCivCoCA9IHtpMTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDC oCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5 cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNj YWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3Bl cmFuZCBpbmZvcm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUg KiwKKyAqIGVldzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0 aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIHUxNl92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzCivCoCA9IHt1MTZfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9U WVBFX3YswqAgwqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAo UlZWX0JBU0VfdmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25z dF9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZv cm1hdGlvbiBmb3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGVl dzhfaW5kZXhfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RF WFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivC oCA9IHtpMzJfb3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAg wqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vf dmVjdG9yKSwgLyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5k ZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBm b3IgdmVjdG9yX3R5cGUgZnVuYyAoY29uc3Qgc2NhbGFyX3R5cGUgKiwKKyAqIGVldzhfaW5kZXhf dHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0 IHJ2dl9vcF9pbmZvIHUzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzCivCoCA9IHt1MzJf b3BzLMKgIMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgwqAgLyog U3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0VfdmVjdG9yKSwg LyogUmV0dXJuIHR5cGXCoCAqLworIMKgIMKgIHNjYWxhcl9jb25zdF9wdHJfaW5kZXhfYXJncyAv KiBBcmdzICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBm dW5jIChzY2FsYXJfdHlwZSAqLCBlZXc4X2luZGV4X3R5cGUsCisgKiB2ZWN0b3JfdHlwZSkgZnVu Y3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9p bmZvIGl1OF92X3NjYWxhcl9wdHJfaW5kZXhfb3BzCivCoCA9IHtpdThfb3BzLMKgIMKgIC8qIFR5 cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgLyogU3VmZml4wqAgKi8KKyDCoCDCoCBy dnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0eXBlwqAgKi8KKyDC oCDCoCBzY2FsYXJfcHRyX2luZGV4X2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9w ZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgZWV3MTZfaW5k ZXhfdHlwZSwKKyAqIHZlY3Rvcl90eXBlKSBmdW5jdGlvbiByZWdpc3RyYXRpb24uwqAgKi8KK3N0 YXRpYyBDT05TVEVYUFIgY29uc3QgcnZ2X29wX2luZm8gaXUxNl92X3NjYWxhcl9wdHJfaW5kZXhf b3BzCivCoCA9IHtpdTE2X29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92 LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNF X3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9pbmRleF9hcmdz IC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRpYyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lk IGZ1bmMgKHNjYWxhcl90eXBlICosIGVldzMyX2luZGV4X3R5cGUsCisgKiB2ZWN0b3JfdHlwZSkg ZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9v cF9pbmZvIGl1MzJfdl9zY2FsYXJfcHRyX2luZGV4X29wcworwqAgPSB7aXUzMl9vcHMswqAgwqAg LyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKg IMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGXCoCAq LworIMKgIMKgIHNjYWxhcl9wdHJfaW5kZXhfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCB2ZWN0 b3JfdHlwZSwKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQ UiBjb25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX29wcworwqAgPSB7aXU4X29wcyzC oCDCoCAvKiBUeXBlc8KgICovCisgwqAgwqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICov CisgwqAgwqAgcnZ2X2FyZ190eXBlX2luZm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlw ZcKgICovCisgwqAgwqAgc2NhbGFyX3B0cl9hcmdzIC8qIEFyZ3MgKi99OworCisvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2b2lkIGZ1bmMgKHNjYWxhcl90eXBlICosIHZlY3Rv cl90eXBlKQorICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBS IGNvbnN0IHJ2dl9vcF9pbmZvIGl1MTZfdl9zY2FsYXJfcHRyX29wcworwqAgPSB7aXUxNl9vcHMs wqAgwqAgLyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAq LworIMKgIMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5 cGXCoCAqLworIMKgIMKgIHNjYWxhcl9wdHJfYXJncyAvKiBBcmdzICovfTsKKworLyogQSBzdGF0 aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChzY2FsYXJfdHlwZSAqLCB2ZWN0 b3JfdHlwZSkKKyAqIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQ UiBjb25zdCBydnZfb3BfaW5mbyBpdTMyX3Zfc2NhbGFyX3B0cl9vcHMKK8KgID0ge2l1MzJfb3Bz LMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAgLyogU3VmZml4wqAg Ki8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCksIC8qIFJldHVybiB0 eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3Rh dGljIG9wZXJhbmQgaW5mb3JtYXRpb24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6 ZV90LAorICogdmVjdG9yX3R5cGUpIGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGlj IENPTlNURVhQUiBjb25zdCBydnZfb3BfaW5mbyBpdThfdl9zY2FsYXJfcHRyX3NpemVfb3BzCivC oCA9IHtpdThfb3BzLMKgIMKgIC8qIFR5cGVzwqAgKi8KKyDCoCDCoCBPUF9UWVBFX3YswqAgwqAg LyogU3VmZml4wqAgKi8KKyDCoCDCoCBydnZfYXJnX3R5cGVfaW5mbyAoUlZWX0JBU0Vfdm9pZCks IC8qIFJldHVybiB0eXBlwqAgKi8KKyDCoCDCoCBzY2FsYXJfcHRyX3NpemVfYXJncyAvKiBBcmdz ICovfTsKKworLyogQSBzdGF0aWMgb3BlcmFuZCBpbmZvcm1hdGlvbiBmb3Igdm9pZCBmdW5jIChz Y2FsYXJfdHlwZSAqLCBzaXplX3QsCisgKiB2ZWN0b3JfdHlwZSkgZnVuY3Rpb24gcmVnaXN0cmF0 aW9uLsKgICovCitzdGF0aWMgQ09OU1RFWFBSIGNvbnN0IHJ2dl9vcF9pbmZvIGl1MTZfdl9zY2Fs YXJfcHRyX3NpemVfb3BzCivCoCA9IHtpdTE2X29wcyzCoCDCoCAvKiBUeXBlc8KgICovCisgwqAg wqAgT1BfVFlQRV92LMKgIMKgIC8qIFN1ZmZpeMKgICovCisgwqAgwqAgcnZ2X2FyZ190eXBlX2lu Zm8gKFJWVl9CQVNFX3ZvaWQpLCAvKiBSZXR1cm4gdHlwZcKgICovCisgwqAgwqAgc2NhbGFyX3B0 cl9zaXplX2FyZ3MgLyogQXJncyAqL307CisKKy8qIEEgc3RhdGljIG9wZXJhbmQgaW5mb3JtYXRp b24gZm9yIHZvaWQgZnVuYyAoc2NhbGFyX3R5cGUgKiwgc2l6ZV90LAorICogdmVjdG9yX3R5cGUp IGZ1bmN0aW9uIHJlZ2lzdHJhdGlvbi7CoCAqLworc3RhdGljIENPTlNURVhQUiBjb25zdCBydnZf b3BfaW5mbyBpdTMyX3Zfc2NhbGFyX3B0cl9zaXplX29wcworwqAgPSB7aXUzMl9vcHMswqAgwqAg LyogVHlwZXPCoCAqLworIMKgIMKgIE9QX1RZUEVfdizCoCDCoCAvKiBTdWZmaXjCoCAqLworIMKg IMKgIHJ2dl9hcmdfdHlwZV9pbmZvIChSVlZfQkFTRV92b2lkKSwgLyogUmV0dXJuIHR5cGXCoCAq LworIMKgIMKgIHNjYWxhcl9wdHJfc2l6ZV9hcmdzIC8qIEFyZ3MgKi99OworCiAvKiBBIHN0YXRp YyBvcGVyYW5kIGluZm9ybWF0aW9uIGZvciB2ZWN0b3JfdHlwZSBmdW5jICh2ZWN0b3JfdHlwZSku CsKgIMKgIFNvbWUgaW5zIGp1c3Qgc3VwcG9ydHMgU0VXPTMyLCBzdWNoIGFzIGNyeXB0byB2ZWN0 b2wgWnZrZyBleHRlbnNpb24uCsKgICogZnVuY3Rpb24gcmVnaXN0cmF0aW9uLsKgICovCkBAIC0y ODE2LDYgKzMxMjMsMTAgQEAgc3RhdGljIGZ1bmN0aW9uX2dyb3VwX2luZm8gZnVuY3Rpb25fZ3Jv dXBzW10gPSB7CiAjZGVmaW5lIERFRl9SVlZfRlVOQ1RJT04oTkFNRSwgU0hBUEUsIFBSRURTLCBP UFNfSU5GTykgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgXAogwqAgeyNOQU1F LCAmYmFzZXM6Ok5BTUUsICZzaGFwZXM6OlNIQVBFLCBQUkVEUywgT1BTX0lORk8sIFJFUVVJUkVE X0VYVEVOU0lPTlN9LAogI2luY2x1ZGUgInJpc2N2LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMu ZGVmIgorI3VuZGVmIERFRl9SVlZfRlVOQ1RJT04KKyNkZWZpbmUgREVGX1JWVl9GVU5DVElPTihO QU1FLCBTSEFQRSwgUFJFRFMsIE9QU19JTkZPKSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCBcCivCoCB7I05BTUUsICZiYXNlczo6TkFNRSwgJnNoYXBlczo6U0hBUEUsIFBSRURT LCBPUFNfSU5GTywgUkVRVUlSRURfRVhURU5TSU9OU30sCisjaW5jbHVkZSAidGhlYWQtdmVjdG9y LWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYiCiB9OwogCiAvKiBUaGUgUlZWIHR5cGVzLCB3aXRoIHRo ZWlyIGJ1aWx0LWluCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1i dWlsdGlucy5oIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaAppbmRl eCA1NGM4ODI0ZmY5Mi4uYThlZTM5YTNjYjIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmgKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0 b3ItYnVpbHRpbnMuaApAQCAtMTE0LDYgKzExNCw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBp bnQgQ1BfV1JJVEVfQ1NSID0gMVUgPDwgNTsKIGVudW0gcmVxdWlyZWRfZXh0CiB7CiDCoCBWRUNU T1JfRVhULCDCoCAvKiBWZWN0b3IgZXh0ZW5zaW9uICovCivCoCBYVEhFQURWRUNUT1JfRVhULCDC oCAvKiBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9uICovCiDCoCBaVkJCX0VYVCzCoCDCoCAvKiBDcnl0 byB2ZWN0b3IgWnZiYiBzdWItZXh0ICovCiDCoCBaVkJCX09SX1pWS0JfRVhULCAvKiBDcnl0byB2 ZWN0b3IgWnZiYiBvciB6dmtiIHN1Yi1leHQgKi8KIMKgIFpWQkNfRVhULMKgIMKgIC8qIENyeXB0 byB2ZWN0b3IgWnZiYyBzdWItZXh0ICovCkBAIC0yMzQsNiArMjM1LDggQEAgc3RydWN0IGZ1bmN0 aW9uX2dyb3VwX2luZm8KIMKgIMKgIHsKIMKgIMKgIMKgIGNhc2UgVkVDVE9SX0VYVDoKIMKgIMKg IMKgIMKgIHJldHVybiBUQVJHRVRfVkVDVE9SOworwqAgwqAgwqAgY2FzZSBYVEhFQURWRUNUT1Jf RVhUOgorIHJldHVybiBUQVJHRVRfWFRIRUFEVkVDVE9SOwogwqAgwqAgwqAgY2FzZSBaVkJCX0VY VDoKIMKgIMKgIMKgIMKgIHJldHVybiBUQVJHRVRfWlZCQjsKIMKgIMKgIMKgIGNhc2UgWlZCQl9P Ul9aVktCX0VYVDoKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdiBiL2djYy9j b25maWcvcmlzY3YvdC1yaXNjdgppbmRleCAzMmRlNmI4NTFjMS4uMzg0OTQzMjBkOGIgMTAwNjQ0 Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvdC1yaXNjdgorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Qt cmlzY3YKQEAgLTEsNiArMSw3IEBACiBSSVNDVl9CVUlMVElOU19IID0gJChzcmNkaXIpL2NvbmZp Zy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCBcCsKgIMKgIMKgICQoc3JjZGlyKS9jb25m aWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmRlZiBcCsKgIMKgIMKgICQoc3JjZGlyKS9j b25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9ucy5kZWYgXAorIMKgIMKg IMKgICQoc3JjZGlyKS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLWZ1bmN0aW9u cy5kZWYgXArCoCDCoCDCoCByaXNjdi12ZWN0b3ItdHlwZS1pbmRleGVyLmdlbi5kZWYKIAogcmlz Y3YtYnVpbHRpbnMubzogJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi1idWlsdGlucy5jYyAk KENPTkZJR19IKSBcCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci1i dWlsdGlucy1mdW5jdGlvbnMuZGVmIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVp bHRpbnMtZnVuY3Rpb25zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uNjY3ODIwZDRjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3RoZWFk LXZlY3Rvci1idWlsdGlucy1mdW5jdGlvbnMuZGVmCkBAIC0wLDAgKzEsMzkgQEAKKyNpZm5kZWYg REVGX1JWVl9GVU5DVElPTgorI2RlZmluZSBERUZfUlZWX0ZVTkNUSU9OKE5BTUUsIFNIQVBFLCBQ UkVEUywgT1BTX0lORk8pCisjZW5kaWYKKworI2RlZmluZSBSRVFVSVJFRF9FWFRFTlNJT05TIFhU SEVBRFZFQ1RPUl9FWFQKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZsYiwgdGhfbG9hZHN0b3JlX3dp ZHRoLCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5D VElPTiAodGhfdmxoLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxh cl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx3LCB0aF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9G VU5DVElPTiAodGhfdmxidSwgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1OF92X3Nj YWxhcl9jb25zdF9wdHJfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxodSwgdGhfbG9hZHN0 b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MTZfdl9zY2FsYXJfY29uc3RfcHRyX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHRoX3Zsd3UsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdTMy X3Zfc2NhbGFyX2NvbnN0X3B0cl9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92c2IsIHRoX2xv YWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9S VlZfRlVOQ1RJT04gKHRoX3ZzaCwgdGhfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1 MTZfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdywgdGhfbG9hZHN0 b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MzJfdl9zY2FsYXJfcHRyX29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHRoX3Zsc2IsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgaThfdl9z Y2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzaCwgdGhf bG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpMTZfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVf b3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzdywgdGhfbG9hZHN0b3JlX3dpZHRoLCBmdWxs X3ByZWRzLCBpMzJfdl9zY2FsYXJfY29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodGhfdmxzYnUsIHRoX2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdThfdl9zY2FsYXJf Y29uc3RfcHRyX3NpemVfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmxzaHUsIHRoX2xvYWRz dG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdTE2X3Zfc2NhbGFyX2NvbnN0X3B0cl9zaXplX29wcykK K0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zsc3d1LCB0aF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxfcHJl ZHMsIHUzMl92X3NjYWxhcl9jb25zdF9wdHJfc2l6ZV9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0 aF92c3NiLCB0aF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVkcywgaXU4X3Zfc2NhbGFyX3B0 cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zzc2gsIHRoX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBpdTE2X3Zfc2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVO Q1RJT04gKHRoX3Zzc3csIHRoX2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdTMyX3Zf c2NhbGFyX3B0cl9zaXplX29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseGIsIHRoX2luZGV4 ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCBpOF92X3NjYWxhcl9jb25zdF9wdHJfaW5k ZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4aCwgdGhfaW5kZXhlZF9sb2Fkc3RvcmVf d2lkdGgsIGZ1bGxfcHJlZHMsIGkxNl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVG X1JWVl9GVU5DVElPTiAodGhfdmx4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIGZ1bGxf cHJlZHMsIGkzMl92X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElP TiAodGhfdmx4YnUsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1OF92 X3NjYWxhcl9jb25zdF9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmx4aHUs IHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBmdWxsX3ByZWRzLCB1MTZfdl9zY2FsYXJfY29u c3RfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZseHd1LCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgZnVsbF9wcmVkcywgdTMyX3Zfc2NhbGFyX2NvbnN0X3B0cl9pbmRl eF9vcHMpCitERUZfUlZWX0ZVTkNUSU9OICh0aF92c3hiLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93 aWR0aCwgbm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZf RlVOQ1RJT04gKHRoX3ZzeGgsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJl ZHMsIGl1MTZfdl9zY2FsYXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3Zz eHcsIHRoX2luZGV4ZWRfbG9hZHN0b3JlX3dpZHRoLCBub25lX21fcHJlZHMsIGl1MzJfdl9zY2Fs YXJfcHRyX2luZGV4X29wcykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdXhiLCB0aF9pbmRleGVk X2xvYWRzdG9yZV93aWR0aCwgbm9uZV9tX3ByZWRzLCBpdThfdl9zY2FsYXJfcHRyX2luZGV4X29w cykKK0RFRl9SVlZfRlVOQ1RJT04gKHRoX3ZzdXhoLCB0aF9pbmRleGVkX2xvYWRzdG9yZV93aWR0 aCwgbm9uZV9tX3ByZWRzLCBpdTE2X3Zfc2NhbGFyX3B0cl9pbmRleF9vcHMpCitERUZfUlZWX0ZV TkNUSU9OICh0aF92c3V4dywgdGhfaW5kZXhlZF9sb2Fkc3RvcmVfd2lkdGgsIG5vbmVfbV9wcmVk cywgaXUzMl92X3NjYWxhcl9wdHJfaW5kZXhfb3BzKQorREVGX1JWVl9GVU5DVElPTiAodGhfdmV4 dF94X3YsIHRoX2V4dHJhY3QsIG5vbmVfcHJlZHMsIGl1X3hfc191X29wcykKKyN1bmRlZiBSRVFV SVJFRF9FWFRFTlNJT05TCisKKyN1bmRlZiBERUZfUlZWX0ZVTkNUSU9OCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZlY3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQt dmVjdG9yLm1kCmluZGV4IDY5NmI4MTUyNTJkLi4wZjM3MDBkOTI2OSAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVh ZC12ZWN0b3IubWQKQEAgLTEsNyArMSw5NSBAQAogKGRlZmluZV9jX2VudW0gInVuc3BlYyIgWwor wqAgVU5TUEVDX1RIX1ZMQgorwqAgVU5TUEVDX1RIX1ZMQlUKK8KgIFVOU1BFQ19USF9WTEgKK8Kg IFVOU1BFQ19USF9WTEhVCivCoCBVTlNQRUNfVEhfVkxXCivCoCBVTlNQRUNfVEhfVkxXVQorCivC oCBVTlNQRUNfVEhfVkxTQgorwqAgVU5TUEVDX1RIX1ZMU0JVCivCoCBVTlNQRUNfVEhfVkxTSAor wqAgVU5TUEVDX1RIX1ZMU0hVCivCoCBVTlNQRUNfVEhfVkxTVworwqAgVU5TUEVDX1RIX1ZMU1dV CisKK8KgIFVOU1BFQ19USF9WTFhCCivCoCBVTlNQRUNfVEhfVkxYQlUKK8KgIFVOU1BFQ19USF9W TFhICivCoCBVTlNQRUNfVEhfVkxYSFUKK8KgIFVOU1BFQ19USF9WTFhXCivCoCBVTlNQRUNfVEhf VkxYV1UKKworwqAgVU5TUEVDX1RIX1ZTVVhCCivCoCBVTlNQRUNfVEhfVlNVWEgKK8KgIFVOU1BF Q19USF9WU1VYVworCiDCoCBVTlNQRUNfVEhfVldMRFNUCiBdKQogCisoZGVmaW5lX2ludF9pdGVy YXRvciBVTlNQRUNfVEhfVkxNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZMQiBVTlNQRUNfVEhfVkxC VQorwqAgVU5TUEVDX1RIX1ZMSCBVTlNQRUNfVEhfVkxIVQorwqAgVU5TUEVDX1RIX1ZMVyBVTlNQ RUNfVEhfVkxXVQorXSkKKworKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZMU01FTV9P UCBbCivCoCBVTlNQRUNfVEhfVkxTQiBVTlNQRUNfVEhfVkxTQlUKK8KgIFVOU1BFQ19USF9WTFNI IFVOU1BFQ19USF9WTFNIVQorwqAgVU5TUEVDX1RIX1ZMU1cgVU5TUEVDX1RIX1ZMU1dVCitdKQor CisoZGVmaW5lX2ludF9pdGVyYXRvciBVTlNQRUNfVEhfVkxYTUVNX09QIFsKK8KgIFVOU1BFQ19U SF9WTFhCIFVOU1BFQ19USF9WTFhCVQorwqAgVU5TUEVDX1RIX1ZMWEggVU5TUEVDX1RIX1ZMWEhV CivCoCBVTlNQRUNfVEhfVkxYVyBVTlNQRUNfVEhfVkxYV1UKK10pCisKKyhkZWZpbmVfaW50X2F0 dHIgdmxtZW1fb3BfYXR0ciBbCivCoCAoVU5TUEVDX1RIX1ZMQiAiYiIpIChVTlNQRUNfVEhfVkxC VSAiYnUiKQorwqAgKFVOU1BFQ19USF9WTEggImgiKSAoVU5TUEVDX1RIX1ZMSFUgImh1IikKK8Kg IChVTlNQRUNfVEhfVkxXICJ3IikgKFVOU1BFQ19USF9WTFdVICJ3dSIpCivCoCAoVU5TUEVDX1RI X1ZMU0IgImIiKSAoVU5TUEVDX1RIX1ZMU0JVICJidSIpCivCoCAoVU5TUEVDX1RIX1ZMU0ggImgi KSAoVU5TUEVDX1RIX1ZMU0hVICJodSIpCivCoCAoVU5TUEVDX1RIX1ZMU1cgInciKSAoVU5TUEVD X1RIX1ZMU1dVICJ3dSIpCivCoCAoVU5TUEVDX1RIX1ZMWEIgImIiKSAoVU5TUEVDX1RIX1ZMWEJV ICJidSIpCivCoCAoVU5TUEVDX1RIX1ZMWEggImgiKSAoVU5TUEVDX1RIX1ZMWEhVICJodSIpCivC oCAoVU5TUEVDX1RIX1ZMWFcgInciKSAoVU5TUEVDX1RIX1ZMWFdVICJ3dSIpCivCoCAoVU5TUEVD X1RIX1ZTVVhCICJiIikKK8KgIChVTlNQRUNfVEhfVlNVWEggImgiKQorwqAgKFVOU1BFQ19USF9W U1VYVyAidyIpCitdKQorCisoZGVmaW5lX2ludF9hdHRyIHZsbWVtX29yZGVyX2F0dHIgWworwqAg KFVOU1BFQ19USF9WTFhCICIiKQorwqAgKFVOU1BFQ19USF9WTFhIICIiKQorwqAgKFVOU1BFQ19U SF9WTFhXICIiKQorwqAgKFVOU1BFQ19USF9WU1VYQiAidSIpCivCoCAoVU5TUEVDX1RIX1ZTVVhI ICJ1IikKK8KgIChVTlNQRUNfVEhfVlNVWFcgInUiKQorXSkKKworKGRlZmluZV9pbnRfaXRlcmF0 b3IgVU5TUEVDX1RIX1ZTTUVNX09QIFsKK8KgIFVOU1BFQ19USF9WTEIKK8KgIFVOU1BFQ19USF9W TEgKK8KgIFVOU1BFQ19USF9WTFcKK10pCisKKyhkZWZpbmVfaW50X2l0ZXJhdG9yIFVOU1BFQ19U SF9WU1NNRU1fT1AgWworwqAgVU5TUEVDX1RIX1ZMU0IKK8KgIFVOU1BFQ19USF9WTFNICivCoCBV TlNQRUNfVEhfVkxTVworXSkKKworKGRlZmluZV9pbnRfaXRlcmF0b3IgVU5TUEVDX1RIX1ZTWE1F TV9PUCBbCivCoCBVTlNQRUNfVEhfVkxYQgorwqAgVU5TUEVDX1RIX1ZMWEgKK8KgIFVOU1BFQ19U SF9WTFhXCivCoCBVTlNQRUNfVEhfVlNVWEIKK8KgIFVOU1BFQ19USF9WU1VYSAorwqAgVU5TUEVD X1RIX1ZTVVhXCitdKQorCiAoZGVmaW5lX21vZGVfaXRlcmF0b3IgVl9WTFNfVlQgW1YgVkxTIFZU XSkKIChkZWZpbmVfbW9kZV9pdGVyYXRvciBWX1ZCX1ZMU19WVCBbViBWQiBWTFMgVlRdKQogCkBA IC0xMDAsMyArMTg4LDE2OCBAQAogwqAgfQogwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZG0sdnN0 bSx2bWFsdSx2bWFsdSx2bWFsdSIpCsKgIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkK KworKGRlZmluZV9leHBhbmQgIkBwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIK K8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikK K8KgIMKgIChpZl90aGVuX2Vsc2U6Vl9WTFMKK8KgIMKgIMKgICh1bnNwZWM6PFZNPgorIFsobWF0 Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiKQorwqAgKG1hdGNoX29wZXJh bmQgNCAidmVjdG9yX2xlbmd0aF9vcGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0 X2ludF9vcGVyYW5kIikKK8KgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIikK K8KgIChtYXRjaF9vcGVyYW5kIDcgImNvbnN0X2ludF9vcGVyYW5kIikKK8KgIChyZWc6U0kgVkxf UkVHTlVNKQorwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVkxNRU1fT1ApCivC oCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMUyAzICJ2ZWN0b3JfbW92ZV9vcGVyYW5kIikKK8Kg IMKgIMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIikpKV0K K8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAge30pCisKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgIipwcmVkX21vdl93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlZfVkxTIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiDCoCDCoCAiPXZyLMKgIMKg IHZyLMKgIMKgIHZkLCDCoCDCoCBtLMKgIMKgIHZyLMKgIMKgIHZyIikKK8KgIMKgIChpZl90aGVu X2Vsc2U6Vl9WTFMKK8KgIMKgIMKgICh1bnNwZWM6PFZNPgorIFsobWF0Y2hfb3BlcmFuZDo8Vk0+ IDEgInZlY3Rvcl9tYXNrX29wZXJhbmQiwqAgwqAgInZtV2MxLCDCoCBXYzEswqAgwqAgdm0sIHZt V2MxLCDCoCBXYzEsIMKgIFdjMSIpCivCoCAobWF0Y2hfb3BlcmFuZCA0ICJ2ZWN0b3JfbGVuZ3Ro X29wZXJhbmQiIMKgIMKgIMKgICIgwqAgcksswqAgwqAgcksswqAgwqAgcksswqAgwqAgcksswqAg wqAgcksswqAgwqAgcksiKQorwqAgKG1hdGNoX29wZXJhbmQgNSAiY29uc3RfaW50X29wZXJhbmQi wqAgwqAgIsKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKg IGkiKQorwqAgKG1hdGNoX29wZXJhbmQgNiAiY29uc3RfaW50X29wZXJhbmQiwqAgwqAgIsKgIMKg IGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQorwqAgKG1h dGNoX29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiwqAgwqAgIsKgIMKgIGksIMKgIMKgIGks IMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQorwqAgKHJlZzpTSSBWTF9SRUdO VU0pCivCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19USF9WTE1FTV9PUCkKK8KgIMKg IMKgIChtYXRjaF9vcGVyYW5kOlZfVkxTIDMgInJlZ19vcl9tZW1fb3BlcmFuZCIgwqAgwqAgwqAg IsKgIMKgIG0sIMKgIMKgIG0sIMKgIMKgIG0swqAgwqAgdnIswqAgwqAgdnIswqAgwqAgdnIiKQor wqAgwqAgwqAgKG1hdGNoX29wZXJhbmQ6Vl9WTFMgMiAidmVjdG9yX21lcmdlX29wZXJhbmQiIMKg IMKgICLCoCDCoCAwLMKgIMKgIHZ1LMKgIMKgIHZ1LMKgIMKgIHZ1LMKgIMKgIHZ1LCDCoCDCoCAw IikpKV0KK8KgICIoVEFSR0VUX1hUSEVBRFZFQ1RPUgorwqAgwqAgJiYgKHJlZ2lzdGVyX29wZXJh bmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorIHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJh bmRzWzNdLCA8TU9ERT5tb2RlKSkpIgorwqAgIkAKKyDCoCB2bDx2bG1lbV9vcF9hdHRyPi52XHQl MCwlMyVwMQorIMKgIHZsPHZsbWVtX29wX2F0dHI+LnZcdCUwLCUzCisgwqAgdmw8dmxtZW1fb3Bf YXR0cj4udlx0JTAsJTMsJTEudAorIMKgIHZzPHZsbWVtX29wX2F0dHI+LnZcdCUzLCUwJXAxCisg wqAgdm12LnYudlx0JTAsJTMKKyDCoCB2bXYudi52XHQlMCwlMyIKK8KgICImJiByZWdpc3Rlcl9v cGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkKKyDCoCAmJiByZWdpc3Rlcl9vcGVyYW5k IChvcGVyYW5kc1szXSwgPE1PREU+bW9kZSkKKyDCoCAmJiBzYXRpc2ZpZXNfY29uc3RyYWludF92 dSAob3BlcmFuZHNbMl0pCisgwqAgJiYgSU5UVkFMIChvcGVyYW5kc1s3XSkgPT0gcmlzY3ZfdmVj dG9yOjpWTE1BWCIKK8KgIFsoc2V0IChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAzKSldCivCoCAi IgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZsZGUsdmxkZSx2bGRlLHZzdGUsdmltb3Ysdmltb3Yi KQorIMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9pbnNuICJAcHJl ZF9zdG9yZV93aWR0aDx2bG1lbV9vcF9hdHRyPjxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlZJIDAgIm1lbW9yeV9vcGVyYW5kIiDCoCAiK20iKQorIChpZl90aGVuX2Vsc2U6VkkKKyDC oCAodW5zcGVjOjxWTT4KKyDCoCDCoCBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFz a19vcGVyYW5kIiAidm1XYzEiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgMyAidmVjdG9yX2xl bmd0aF9vcGVyYW5kIsKgIMKgICIgwqAgcksiKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNCAi Y29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpIikKK8KgIMKgIMKgIChyZWc6U0kgVkxfUkVHTlVN KQorwqAgwqAgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXSBVTlNQRUNfVEhfVlNNRU1fT1ApCisg wqAgKG1hdGNoX29wZXJhbmQ6VkkgMiAicmVnaXN0ZXJfb3BlcmFuZCLCoCAiwqAgwqAgdnIiKQor IMKgIChtYXRjaF9kdXAgMCkpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgInZzPHZs bWVtX29wX2F0dHI+LnZcdCUyLCUwJXAxIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZzdGUiKQor IMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCisgwqAgKHNldCAoYXR0ciAiYXZsX3R5cGVf aWR4IikgKGNvbnN0X2ludCA0KSkKKyDCoCAoc2V0X2F0dHIgInZsX29wX2lkeCIgIjMiKV0pCisK KyhkZWZpbmVfaW5zbiAiQHByZWRfc3RyaWRlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1v ZGU+IgorwqAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgwqAg wqAgwqAgIj12cizCoCDCoCB2cizCoCDCoCB2ZCIpCisgKGlmX3RoZW5fZWxzZTpWSQorIMKgICh1 bnNwZWM6PFZNPgorIMKgIMKgIFsobWF0Y2hfb3BlcmFuZDo8Vk0+IDEgInZlY3Rvcl9tYXNrX29w ZXJhbmQiICJ2bVdjMSwgwqAgV2MxLMKgIMKgIHZtIikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5k IDUgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoCDCoCAiIMKgIHJLLMKgIMKgIHJLLMKgIMKgIHJL IikKK8KgIMKgIMKgIChtYXRjaF9vcGVyYW5kIDYgImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAg aSwgwqAgwqAgaSwgwqAgwqAgaSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA3ICJjb25zdF9p bnRfb3BlcmFuZCIgIsKgIMKgIGksIMKgIMKgIGksIMKgIMKgIGkiKQorwqAgwqAgwqAgKG1hdGNo X29wZXJhbmQgOCAiY29uc3RfaW50X29wZXJhbmQiICLCoCDCoCBpLCDCoCDCoCBpLCDCoCDCoCBp IikKK8KgIMKgIMKgIChyZWc6U0kgVkxfUkVHTlVNKQorwqAgwqAgwqAgKHJlZzpTSSBWVFlQRV9S RUdOVU0pXSBVTlNQRUNfVEhfVkxTTUVNX09QKQorIMKgICh1bnNwZWM6VkkKKyDCoCDCoCBbKG1h dGNoX29wZXJhbmQ6VkkgMyAibWVtb3J5X29wZXJhbmQiwqAgIsKgIMKgIG0sIMKgIMKgIG0sIMKg IMKgIG0iKQorwqAgwqAgwqAgKG1hdGNoX29wZXJhbmQgNCAicG1vZGVfcmVnX29yXzBfb3BlcmFu ZCIgwqAgIiDCoCBySizCoCDCoCBySizCoCDCoCBySiIpXSBVTlNQRUNfVEhfVkxTTUVNX09QKQor IMKgIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIsKgIMKgIMKgICLC oCDCoCAwLMKgIMKgIHZ1LMKgIMKgIHZ1IikpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgor wqAgInZsczx2bG1lbV9vcF9hdHRyPi52XHQlMCwlMywlejQlcDEiCivCoCBbKHNldF9hdHRyICJ0 eXBlIiAidmxkcyIpCisgwqAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IildKQorCisoZGVmaW5l X2luc24gIkBwcmVkX3N0cmlkZWRfc3RvcmVfd2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivC oCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWSSAwICJtZW1vcnlfb3BlcmFuZCIgwqAgIittIikKKyAo aWZfdGhlbl9lbHNlOlZJCisgwqAgKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5k OjxWTT4gMSAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKK8KgIMKgIMKgIChtYXRjaF9v cGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoCDCoCAiIMKgIHJLIikKK8KgIMKgIMKg IChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAgaSIpCivCoCDCoCDC oCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZTU01FTV9PUCkKKyDCoCAodW5zcGVjOlZJCisgwqAgwqAgWyhtYXRjaF9vcGVyYW5k IDIgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiIMKgICIgwqAgckoiKQorwqAgwqAgwqAgKG1hdGNo X29wZXJhbmQ6VkkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgwqAgwqAgwqAgIiDCoCB2ciIpXSBVTlNQ RUNfVEhfVlNTTUVNX09QKQorIMKgIChtYXRjaF9kdXAgMCkpKV0KK8KgICJUQVJHRVRfWFRIRUFE VkVDVE9SIgorwqAgInZzczx2bG1lbV9vcF9hdHRyPi52XHQlMywlMCwlejIlcDEiCivCoCBbKHNl dF9hdHRyICJ0eXBlIiAidnN0cyIpCisgwqAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+IikKKyDC oCAoc2V0IChhdHRyICJhdmxfdHlwZV9pZHgiKSAoY29uc3RfaW50IDUpKV0pCisKKyhkZWZpbmVf aW5zbiAiQHByZWRfaW5kZXhlZF9sb2FkX3dpZHRoPHZsbWVtX29wX2F0dHI+PG1vZGU+IgorwqAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VkkgMCAicmVnaXN0ZXJfb3BlcmFuZCLCoCDCoCDCoCAiPXZk LCB2cix2ZCwgdnIiKQorIChpZl90aGVuX2Vsc2U6VkkKKyDCoCAodW5zcGVjOjxWTT4KKyDCoCDC oCBbKG1hdGNoX29wZXJhbmQ6PFZNPiAxICJ2ZWN0b3JfbWFza19vcGVyYW5kIsKgICIgdm0sV2Mx LHZtLFdjMSIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA1ICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiIMKgIMKgICIgckssIHJLLHJLLCBySyIpCivCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZCA2ICJj b25zdF9pbnRfb3BlcmFuZCLCoCAiwqAgaSzCoCBpLCBpLMKgIGkiKQorwqAgwqAgwqAgKG1hdGNo X29wZXJhbmQgNyAiY29uc3RfaW50X29wZXJhbmQiwqAgIsKgIGkswqAgaSwgaSzCoCBpIikKK8Kg IMKgIMKgIChtYXRjaF9vcGVyYW5kIDggImNvbnN0X2ludF9vcGVyYW5kIsKgICLCoCBpLMKgIGks IGkswqAgaSIpCivCoCDCoCDCoCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kg VlRZUEVfUkVHTlVNKV0gVU5TUEVDX1RIX1ZMWE1FTV9PUCkKKyDCoCAodW5zcGVjOlZJCisgwqAg wqAgWyhtYXRjaF9vcGVyYW5kIDMgInBtb2RlX3JlZ19vcl8wX29wZXJhbmQiwqAgwqAgIiBySiwg ckosckosIHJKIikKK8KgIMKgIMKgIChtZW06QkxLIChzY3JhdGNoKSkKK8KgIMKgIMKgIChtYXRj aF9vcGVyYW5kOlZJIDQgInJlZ2lzdGVyX29wZXJhbmQiICIgdnIsIHZyLHZyLCB2ciIpXSBVTlNQ RUNfVEhfVkxYTUVNX09QKQorIMKgIChtYXRjaF9vcGVyYW5kOlZJIDIgInZlY3Rvcl9tZXJnZV9v cGVyYW5kIiDCoCDCoCDCoCAiIHZ1LCB2dSwgMCzCoCAwIikpKV0KK8KgICJUQVJHRVRfWFRIRUFE VkVDVE9SIgorwqAgInZseDx2bG1lbV9vcF9hdHRyPi52XHQlMCwoJXozKSwlNCVwMSIKK8KgIFso c2V0X2F0dHIgInR5cGUiICJ2bGR1eCIpCisgwqAgKHNldF9hdHRyICJtb2RlIiAiPE1PREU+Iild KQorCisoZGVmaW5lX2luc24gIkBwcmVkX2luZGV4ZWRfPHZsbWVtX29yZGVyX2F0dHI+c3RvcmVf d2lkdGg8dmxtZW1fb3BfYXR0cj48bW9kZT4iCivCoCBbKHNldCAobWVtOkJMSyAoc2NyYXRjaCkp CisgKHVuc3BlYzpCTEsKKyDCoCBbKHVuc3BlYzo8Vk0+CisgwqAgwqAgWyhtYXRjaF9vcGVyYW5k OjxWTT4gMCAidmVjdG9yX21hc2tfb3BlcmFuZCIgInZtV2MxIikKK8KgIMKgIMKgIChtYXRjaF9v cGVyYW5kIDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoCDCoCAiIMKgIHJLIikKK8KgIMKgIMKg IChtYXRjaF9vcGVyYW5kIDUgImNvbnN0X2ludF9vcGVyYW5kIiAiwqAgwqAgaSIpCivCoCDCoCDC oCAocmVnOlNJIFZMX1JFR05VTSkKK8KgIMKgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5T UEVDX1RIX1ZTWE1FTV9PUCkKK8KgIMKgIChtYXRjaF9vcGVyYW5kIDEgInBtb2RlX3JlZ19vcl8w X29wZXJhbmQiwqAgwqAgwqAgIsKgIHJKIikKK8KgIMKgIChtYXRjaF9vcGVyYW5kOlZJIDIgInJl Z2lzdGVyX29wZXJhbmQiICLCoCB2ciIpCivCoCDCoCAobWF0Y2hfb3BlcmFuZDpWSSAzICJyZWdp c3Rlcl9vcGVyYW5kIsKgICLCoCB2ciIpXSBVTlNQRUNfVEhfVlNYTUVNX09QKSldCivCoCAiVEFS R0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2czx2bG1lbV9vcmRlcl9hdHRyPng8dmxtZW1fb3BfYXR0 cj4udlx0JTMsKCV6MSksJTIlcDAiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidnN0dXgiKQorIMKg IChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpXSkKKworKGRlZmluZV9leHBhbmQgIkBwcmVkX3Ro X2V4dHJhY3Q8bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDo8VkVMPiAwICJyZWdpc3Rl cl9vcGVyYW5kIikKKyAodW5zcGVjOjxWRUw+CisgwqAgWyh2ZWNfc2VsZWN0OjxWRUw+CivCoCDC oCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIpCivCoCDCoCDC oCAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIild KSkKK8KgIMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpKV0KK8Kg ICJUQVJHRVRfWFRIRUFEVkVDVE9SIgore30pCisKKyhkZWZpbmVfaW5zbiAiKnByZWRfdGhfZXh0 cmFjdDxtb2RlPiIKK8KgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWRUw+IDAgInJlZ2lzdGVyX29w ZXJhbmQiIMKgICI9ciIpCivCoCAodW5zcGVjOjxWRUw+CivCoCDCoCBbKHZlY19zZWxlY3Q6PFZF TD4KKyDCoCDCoCDCoCAobWF0Y2hfb3BlcmFuZDpWX1ZMU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InZyIikKKyDCoCDCoCDCoCAocGFyYWxsZWwgWyhtYXRjaF9vcGVyYW5kOkRJIDIgInJlZ2lzdGVy X29wZXJhbmQiICJyIildKSkKKyDCoCDCoCAocmVnOlNJIFZUWVBFX1JFR05VTSldIFVOU1BFQ19W UFJFRElDQVRFKSldCivCoCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIKK8KgICJ2ZXh0Lngudlx0JTAs JTEsJTIiCivCoCBbKHNldF9hdHRyICJ0eXBlIiAidmltb3Z2eCIpCisgwqAgKHNldF9hdHRyICJt b2RlIiAiPE1PREU+IildKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jp c2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3IvdmxiLXZzYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40ZTE5MmJiZjAyNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsYi12c2IuYwpAQCAtMCww ICsxLDY4IEBACisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFy Y2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmlu YWwgeyBjaGVjay1mdW5jdGlvbi1ib2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNj dl92ZWN0b3IuaCIKKworLyoKKyoqIGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEs dHUsbWEKKyoqIHRoLnZsYlwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxiXC52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAt OV0rLFxzKnZbMC05XSsKKyoqIHRoLnZhZGRcLnZ2XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqdlsw LTldKworKiogdGgudnNiXC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2 b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9f cmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jp c2N2X3RoX3ZsYl92X2kzMm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0g X19yaXNjdl92YWRkX3Z2X2kzMm0xICh2MiwgdjIsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9 IF9fcmlzY3ZfdmFkZF92dl9pMzJtMV90dSAodjMsIHYyLCB2MiwgNCk7CivCoCDCoCBfX3Jpc2N2 X3RoX3ZzYl92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNl dHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRo LnZsYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZ2XHR2WzAt OV0rLFxzKnZbMC05XSssXHMqdlswLTldKworKiogdGgudmFkZFwudnZcdHZbMS05XVswLTldPyxc cyp2WzAtOV0rLFxzKnZbMC05XSssXHMqdjAudAorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0KQorewor wqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRp bGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGJf dl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxiX3Zf aTMybTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFk ZF92dl9pMzJtMSAodjIsIHYyLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnZfaTMybTFfbSAobWFzaywgdjMsIHYzLCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNiX3Zf aTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxpXHRbYS14 MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmxiXC52XHR2 WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGIudlx0dlswLTldKywwXChbYS14MC05XStc KSx2MC50CisqKiB0aC52YWRkXC52dlx0dlswLTldKyxccyp2WzAtOV0rLFxzKnZbMC05XSsKKyoq IHRoLnZhZGRcLnZ2XHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxccyp2WzAtOV0rLFxzKnYwLnQK KyoqIHRoLnZzYi52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYz ICh2b2lkICogaW4sIHZvaWQgKm91dCkKK3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9v bDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZp bnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxiX3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQz Mm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3ZsYl92X2kzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsK K8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnZfaTMybTEgKHYyLCB2MiwgNCk7 CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z2X2kzMm0xX3R1bXUgKG1hc2ss IHYzLCB2MiwgdjIsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2Jfdl9pMzJtMSAob3V0LCB2NCwg NCk7Cit9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0 aGVhZHZlY3Rvci92bGJ1LXZzYi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2 di94dGhlYWR2ZWN0b3IvdmxidS12c2IuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uMTUzOGFmZWM2OGUKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGJ1LXZzYi5jCkBAIC0wLDAgKzEsNjgg QEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1tYXJjaD1ydjMy Z2N4dGhlYWR2ZWN0b3IgLW1hYmk9aWxwMzJkIC1PMyIgfSAqLworLyogeyBkZy1maW5hbCB7IGNo ZWNrLWZ1bmN0aW9uLWJvZGllcyAiKioiICIiIH0gfSAqLworI2luY2x1ZGUgInJpc2N2X3ZlY3Rv ci5oIgorCisvKgorKiogZjE6CisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtYQor KiogdGgudmxidVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmxidVwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 c2JcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9f cmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9f cmlzY3ZfdGhfdmxidV92X3UzMm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2 MyA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFf dCB2NCA9IF9fcmlzY3ZfdmFkZF92eF91MzJtMV90dSAodjMsIHYyLCAtMTYsIDQpOworwqAgwqAg X19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoq IHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZb MC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1h CisqKiB0aC52bGJ1LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05 XT8sXHMqdlswLTldKyxccyotMTYsXHMqdjAudAorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjIgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50 MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDC oCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9f cmlzY3ZfdGhfdmxidV92X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9f cmlzY3ZfdGhfdmxidV92X3UzMm0xX20gKG1hc2ssIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90 IHYzID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJt MV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X3UzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOworwqAg wqAgX19yaXNjdl90aF92c2Jfdl91MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoK KyoqIHRoLnZzZXR2bGlcdFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1 LG11CisqKiB0aC52bGJ1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGJ1LnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCksdjAudAorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMq dlswLTldKyxccyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzEtOV1bMC05XT8sXHMqdlswLTldKyxc cyotMTYsXHMqdjAudAorKiogdGgudnNiLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJl dAorKi8KK3ZvaWQgZjMgKHZvaWQgKiBpbiwgdm9pZCAqb3V0LCB1aW50MzJfdCB4KQoreworwqAg wqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUg KCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdnVpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhfdmxidV92 X3UzMm0xIChpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxidV92 X3UzMm0xX3R1bXUgKG1hc2ssIHYsIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYzID0gX19y aXNjdl92YWRkX3Z4X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X3UzMm0xX3R1bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKg IF9fcmlzY3ZfdGhfdnNiX3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNj di9ydnYveHRoZWFkdmVjdG9yL3ZsaC12c2guYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYmY0OTI0YTFkNzYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGgtdnNoLmMKQEAgLTAsMCArMSw2 OCBAQAorLyogeyBkZy1kbyBjb21waWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2 MzJnY3h0aGVhZHZlY3RvciAtbWFiaT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsg Y2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdmVj dG9yLmgiCisKKy8qCisqKiBmMToKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1h CisqKiB0aC52bGhcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaFwudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmFkZFwudmlcdHZbMC05XSssXHMqdlswLTldKyxc cyotMTYKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 c2hcLnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHJldAorKi8KK3ZvaWQgZjEgKHZvaWQg KiBpbiwgdm9pZCAqb3V0LCBpbnQzMl90IHgpCit7CivCoCDCoCB2aW50MzJtMV90IHYgPSBfX3Jp c2N2X3RoX3ZsaF92X2kzMm0xIChpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYyID0gX19yaXNj dl90aF92bGhfdl9pMzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9f cmlzY3ZfdmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0g X19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2 X3RoX3ZzaF92X2kzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNl dHZsaVx0W2EteDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKyww XChbYS14MC05XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRo LnZsaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAt OV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZb MC05XSssXHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiByZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQor eworwqAgwqAgdmJvb2wzMl90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9s YXRpbGUgKCIiOjo6Im1lbW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92 bGhfdl9pMzJtMSAoaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxo X3ZfaTMybTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF9pMzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNj dl92YWRkX3Z4X2kzMm0xX20gKG1hc2ssIHYzLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92 c2hfdl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlc dFthLXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2Et eDAtOV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bGhc LnZcdHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaC52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2Cisq KiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQKKyoq IHRoLnZzaC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYzICh2 b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wzMl90IG1hc2sg PSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1lbW9yeSIpOwor wqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGhfdl9pMzJtMSAoaW4sIDQpOworwqAg wqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmxoX3ZfaTMybTFfdHVtdSAobWFzaywgdiwg aW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9pMzJtMSAodjIs IC0xNiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRkX3Z4X2kzMm0xX3R1 bXUgKG1hc2ssIHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnNoX3ZfaTMybTEg KG91dCwgdjQsIDQpOworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9yL3ZsaHUtdnNo LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L3h0aGVhZHZlY3Rvci92bGh1 LXZzaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44YzQ1MTg0NTE3 NQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYv eHRoZWFkdmVjdG9yL3ZsaHUtdnNoLmMKQEAgLTAsMCArMSw2OCBAQAorLyogeyBkZy1kbyBjb21w aWxlIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLW1hcmNoPXJ2MzJnY3h0aGVhZHZlY3RvciAtbWFi aT1pbHAzMmQgLU8zIiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVz ICIqKiIgIiIgfSB9ICovCisjaW5jbHVkZSAicmlzY3ZfdmVjdG9yLmgiCisKKy8qCisqKiBmMToK KyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG1hCisqKiB0aC52bGh1XC52XHR2WzAt OV0rLDBcKFthLXgwLTldK1wpCisqKiB0aC52bGh1XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudmFkZFwu dmlcdHZbMC05XSssXHMqdlswLTldKyxccyotMTYKKyoqIHRoLnZzaFwudlx0dlswLTldKywwXChb YS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVp bnQzMl90IHgpCit7CivCoCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMy bTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMy bTFfdHUgKHYsIGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYzID0gX19yaXNjdl92YWRkX3Z4 X3UzMm0xICh2MiwgLTE2LCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHY0ID0gX19yaXNjdl92YWRk X3Z4X3UzMm0xX3R1ICh2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92X3Uz Mm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYyOgorKiogdGgudnNldHZsaVx0W2EteDAt OV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdGEsbWEKKyoqIHRoLnZsaHUudlx0dlsw LTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAt OV0rLFxzKi0xNgorKiogdGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0x Nixccyp2MC50CisqKiB0aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0Cisq Lwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2 Ym9vbDMyX3QgbWFzayA9ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6 OjoibWVtb3J5Iik7CivCoCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMy bTEgKGluLCA0KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMy bTFfbSAobWFzaywgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRf dnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTFfbSAobWFzaywgdjMsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3ZzaF92 X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KKworLyoKKyoqIGYzOgorKiogdGgudnNldHZsaVx0W2Et eDAtOV0rLHplcm8sZTgsbWY0LHRhLG1hCisqKiB0aC52bG0udlx0dlswLTldKywwXChbYS14MC05 XStcKQorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbXUKKyoqIHRoLnZsaHVcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsaHUudlx0dlswLTldKywwXChbYS14MC05 XStcKSx2MC50CisqKiB0aC52YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiog dGgudmFkZFwudmlcdHZbMS05XVswLTldPyxccyp2WzAtOV0rLFxzKi0xNixccyp2MC50CisqKiB0 aC52c2gudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMyAodm9p ZCAqIGluLCB2b2lkICpvdXQsIHVpbnQzMl90IHgpCit7CivCoCDCoCB2Ym9vbDMyX3QgbWFzayA9 ICoodmJvb2wzMl90KilpbjsKK8KgIMKgIGFzbSB2b2xhdGlsZSAoIiI6OjoibWVtb3J5Iik7CivC oCDCoCB2dWludDMybTFfdCB2ID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTEgKGluLCA0KTsKK8Kg IMKgIHZ1aW50MzJtMV90IHYyID0gX19yaXNjdl90aF92bGh1X3ZfdTMybTFfdHVtdSAobWFzaywg diwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMybTEg KHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2X3ZhZGRfdnhfdTMy bTFfdHVtdSAobWFzaywgdjMsIHYyLCAtMTYsIDQpOworwqAgwqAgX19yaXNjdl90aF92c2hfdl91 MzJtMSAob3V0LCB2NCwgNCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 LXZzdy5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Iv dmx3LXZzdy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjViMDk2 ODRhNQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9y dnYveHRoZWFkdmVjdG9yL3Zsdy12c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9yIC1t YWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1ib2Rp ZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIKKworLyoKKyoqIGYx OgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsd1wudlx0dlsw LTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3XC52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wp CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAtOV0rLFxzKlthLXgwLTldKworKiogdGgu dmFkZFwudnhcdHZbMC05XSssXHMqdlswLTldKyxccypbYS14MC05XSsKKyoqIHRoLnZzd1wudlx0 dlswLTldKywwXChbYS14MC05XStcKQorKiogcmV0CisqLwordm9pZCBmMSAodm9pZCAqIGluLCB2 b2lkICpvdXQsIGludDMyX3QgeCkKK3sKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmx3X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zs d192X2kzMm0xX3R1ICh2LCBpbiwgNCk7CivCoCDCoCB2aW50MzJtMV90IHYzID0gX19yaXNjdl92 YWRkX3Z4X2kzMm0xICh2MiwgeCwgNCk7CivCoCDCoCB2aW50MzJtMV90IHY0ID0gX19yaXNjdl92 YWRkX3Z4X2kzMm0xX3R1ICh2MywgdjIsIHgsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3dfdl9p MzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMjoKKyoqIHRoLnZzZXR2bGlcdFthLXgw LTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAtOV0r XCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHRhLG1hCisqKiB0aC52bHcudlx0dlsw LTldKywwXChbYS14MC05XStcKSx2MC50CisqKiB0aC52YWRkXC52eFx0dlswLTldKyxccyp2WzAt OV0rLFxzKlthLXgwLTldKworKiogdGgudmFkZFwudnhcdHZbMS05XVswLTldPyxccyp2WzAtOV0r LFxzKlthLXgwLTldKyxccyp2MC50CisqKiB0aC52c3cudlx0dlswLTldKywwXChbYS14MC05XStc KQorKiogcmV0CisqLwordm9pZCBmMiAodm9pZCAqIGluLCB2b2lkICpvdXQsIGludDMyX3QgeCkK K3sKK8KgIMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZv bGF0aWxlICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZpbnQzMm0xX3QgdiA9IF9fcmlzY3ZfdGhf dmx3X3ZfaTMybTEgKGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zs d192X2kzMm0xX20gKG1hc2ssIGluLCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2 X3ZhZGRfdnhfaTMybTEgKHYyLCB4LCA0KTsKK8KgIMKgIHZpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnhfaTMybTFfbSAobWFzaywgdjMsIHgsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3df dl9pMzJtMSAob3V0LCB2NCwgNCk7Cit9CisKKy8qCisqKiBmMzoKKyoqIHRoLnZzZXR2bGlcdFth LXgwLTldKyx6ZXJvLGU4LG1mNCx0YSxtYQorKiogdGgudmxtLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZzZXRpdmxpXHR6ZXJvLDQsZTMyLG0xLHR1LG11CisqKiB0aC52bHdcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsdy52XHR2WzAtOV0rLDBcKFthLXgwLTld K1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZ4XHR2WzAtOV0rLFxzKnZbMC05XSssXHMqW2EteDAtOV0r CisqKiB0aC52YWRkXC52eFx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqW2EteDAtOV0rLFxz KnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2 b2lkIGYzICh2b2lkICogaW4sIHZvaWQgKm91dCwgaW50MzJfdCB4KQoreworwqAgwqAgdmJvb2wz Ml90IG1hc2sgPSAqKHZib29sMzJfdCopaW47CivCoCDCoCBhc20gdm9sYXRpbGUgKCIiOjo6Im1l bW9yeSIpOworwqAgwqAgdmludDMybTFfdCB2ID0gX19yaXNjdl90aF92bHdfdl9pMzJtMSAoaW4s IDQpOworwqAgwqAgdmludDMybTFfdCB2MiA9IF9fcmlzY3ZfdGhfdmx3X3ZfaTMybTFfdHVtdSAo bWFzaywgdiwgaW4sIDQpOworwqAgwqAgdmludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMSAodjIsIHgsIDQpOworwqAgwqAgdmludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92eF9p MzJtMV90dW11IChtYXNrLCB2MywgdjIsIHgsIDQpOworwqAgwqAgX19yaXNjdl90aF92c3dfdl9p MzJtMSAob3V0LCB2NCwgNCk7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di94dGhlYWR2ZWN0b3Ivdmx3 dS12c3cuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9yaXNjdi9ydnYveHRoZWFkdmVjdG9y L3Zsd3UtdnN3LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFhYTc1 YmUwMjNkCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di94dGhlYWR2ZWN0b3Ivdmx3dS12c3cuYwpAQCAtMCwwICsxLDY4IEBACisvKiB7IGRnLWRv IGNvbXBpbGUgfSAqLworLyogeyBkZy1vcHRpb25zICItbWFyY2g9cnYzMmdjeHRoZWFkdmVjdG9y IC1tYWJpPWlscDMyZCAtTzMiIH0gKi8KKy8qIHsgZGctZmluYWwgeyBjaGVjay1mdW5jdGlvbi1i b2RpZXMgIioqIiAiIiB9IH0gKi8KKyNpbmNsdWRlICJyaXNjdl92ZWN0b3IuaCIKKworLyoKKyoq IGYxOgorKiogdGgudnNldGl2bGlcdHplcm8sNCxlMzIsbTEsdHUsbWEKKyoqIHRoLnZsd3VcLnZc dHZbMC05XSssMFwoW2EteDAtOV0rXCkKKyoqIHRoLnZsd3VcLnZcdHZbMC05XSssMFwoW2EteDAt OV0rXCkKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2CisqKiB0aC52 YWRkXC52aVx0dlswLTldKyxccyp2WzAtOV0rLFxzKi0xNgorKiogdGgudnN3XC52XHR2WzAtOV0r LDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYxICh2b2lkICogaW4sIHZvaWQgKm91 dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMV90dSAodiwgaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjMgPSBfX3Jpc2N2X3Zh ZGRfdnhfdTMybTEgKHYyLCAtMTYsIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjQgPSBfX3Jpc2N2 X3ZhZGRfdnhfdTMybTFfdHUgKHYzLCB2MiwgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhfdnN3 X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjI6CisqKiB0aC52c2V0dmxpXHRb YS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFthLXgw LTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0YSxtYQorKiogdGgudmx3dS52 XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxz KnZbMC05XSssXHMqLTE2CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSss XHMqLTE2LFxzKnYwLnQKKyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiBy ZXQKKyovCit2b2lkIGYyICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8Kg IMKgIHZib29sMzJfdCBtYXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxl ICgiIjo6OiJtZW1vcnkiKTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMSAoaW4sIDQpOworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vf dl91MzJtMV9tIChtYXNrLCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3Zf dmFkZF92eF91MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlz Y3ZfdmFkZF92eF91MzJtMV9tIChtYXNrLCB2MywgLTE2LCA0KTsKK8KgIMKgIF9fcmlzY3ZfdGhf dnN3X3ZfdTMybTEgKG91dCwgdjQsIDQpOworfQorCisvKgorKiogZjM6CisqKiB0aC52c2V0dmxp XHRbYS14MC05XSssemVybyxlOCxtZjQsdGEsbWEKKyoqIHRoLnZsbS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpCisqKiB0aC52c2V0aXZsaVx0emVybyw0LGUzMixtMSx0dSxtdQorKiogdGgudmx3 dVwudlx0dlswLTldKywwXChbYS14MC05XStcKQorKiogdGgudmx3dS52XHR2WzAtOV0rLDBcKFth LXgwLTldK1wpLHYwLnQKKyoqIHRoLnZhZGRcLnZpXHR2WzAtOV0rLFxzKnZbMC05XSssXHMqLTE2 CisqKiB0aC52YWRkXC52aVx0dlsxLTldWzAtOV0/LFxzKnZbMC05XSssXHMqLTE2LFxzKnYwLnQK KyoqIHRoLnZzdy52XHR2WzAtOV0rLDBcKFthLXgwLTldK1wpCisqKiByZXQKKyovCit2b2lkIGYz ICh2b2lkICogaW4sIHZvaWQgKm91dCwgdWludDMyX3QgeCkKK3sKK8KgIMKgIHZib29sMzJfdCBt YXNrID0gKih2Ym9vbDMyX3QqKWluOworwqAgwqAgYXNtIHZvbGF0aWxlICgiIjo6OiJtZW1vcnki KTsKK8KgIMKgIHZ1aW50MzJtMV90IHYgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMSAoaW4sIDQp OworwqAgwqAgdnVpbnQzMm0xX3QgdjIgPSBfX3Jpc2N2X3RoX3Zsd3Vfdl91MzJtMV90dW11ICht YXNrLCB2LCBpbiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2MyA9IF9fcmlzY3ZfdmFkZF92eF91 MzJtMSAodjIsIC0xNiwgNCk7CivCoCDCoCB2dWludDMybTFfdCB2NCA9IF9fcmlzY3ZfdmFkZF92 eF91MzJtMV90dW11IChtYXNrLCB2MywgdjIsIC0xNiwgNCk7CivCoCDCoCBfX3Jpc2N2X3RoX3Zz d192X3UzMm0xIChvdXQsIHY0LCA0KTsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0t IAoyLjE3LjEKIAogCiAKIAoKCgoKCgo=