From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-131.freemail.mail.aliyun.com (out30-131.freemail.mail.aliyun.com [115.124.30.131]) by sourceware.org (Postfix) with ESMTPS id 6B8703858407 for ; Wed, 10 Jan 2024 07:28:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6B8703858407 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 6B8703858407 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=115.124.30.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704871712; cv=none; b=oCfbAi1ZLIwLC3Ek72uqFng8YIzZ/zRmc+eoh7ASmgeTvuNlRMqOfiEnf1r8YbIRypZQ55Yn2t4vxrzbRgW4+19nPVaSM+qO3qttrpPd4kmn1fvCK+H05SFSA3f/QgjVkzyHOanBaL2DKgY8/TFpZLNkyRuo5HWsqz7JeLxMyIs= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704871712; c=relaxed/simple; bh=wUCVqN8Y4IXFQ+qUN/O5CpOWFGe7og/E9M/eF1YhNXA=; h=Date:From:To:Message-ID:Subject:MIME-Version; b=c+Iol/1iiCVUKexM89n4ZnavBIKd3yI0OaGOYYBV23bWxrkXE2ivV4g+aTt33qn19/fubMp4GVVYBb3WV5dNxg3rqHCRHKx8qCrrTt6fmy+t6N1N1rYCU2XQ4QhGgo/wT1hfeXtQ2VtgCUORAoTgebY7b72L33ecm5VrDcXjLrE= ARC-Authentication-Results: i=1; server2.sourceware.org X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R661e4;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_21281DB5_1704871697565_o7001c725; Received: from WS-web (cooper.joshua@linux.alibaba.com[W4_0.2.3_v5ForWebDing_21281DB5_1704871697565_o7001c725]) at Wed, 10 Jan 2024 15:28:22 +0800 Date: Wed, 10 Jan 2024 15:28:22 +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: Subject: =?UTF-8?B?UmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBIYW5kbGUgZGlmZmVyZW5jZXMgYmV0d2Vl?= =?UTF-8?B?biBYVGhlYWR2ZWN0b3IgYW5kIFZlY3Rvcg==?= X-Mailer: [Alimail-Mailagent][W4_0.2.3][v5ForWebDing][Chrome] MIME-Version: 1.0 x-aliyun-im-through: {"mailThroughImNew":true} References: <58873117C424D0C4+202401101517532287060@rivai.ai> x-aliyun-mail-creator: W4_0.2.3_v5ForWebDing_SFRTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEyMC4wLjAuMCBTYWZhcmkvNTM3LjM2IEVkZy8xMjAuMC4wLjA=Ch In-Reply-To: <58873117C424D0C4+202401101517532287060@rivai.ai> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-17.9 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,URIBL_BLACK,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: SSdtIGNvbmZ1c2VkIHdoeSBJIGNhbm5vdCBhZGQgbmV3IHNoYXBlcy4gSSB0aGluayBhZGRpbmcK bmV3IHNoYXBlcyBpcyB0aGUgYmFzaWMgcGFydCBpbiBpbXBsZW1lbnRhdGlvbiBmb3IgbmV3Cmlu dHJpbnNpY3MuCgoKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K5Y+R5Lu25Lq677yaanV6aGUuemhvbmdAcml2YWku YWkgPGp1emhlLnpob25nQHJpdmFpLmFpPgrlj5HpgIHml7bpl7TvvJoyMDI05bm0MeaciDEw5pel KOaYn+acn+S4iSkgMTU6MTcK5pS25Lu25Lq677yaImNvb3Blci5qb3NodWEiPGNvb3Blci5qb3No dWFAbGludXguYWxpYmFiYS5jb20+OyAiZ2NjLXBhdGNoZXMiPGdjYy1wYXRjaGVzQGdjYy5nbnUu b3JnPgrmioTjgIDpgIHvvJpKaW0gV2lsc29uPGppbS53aWxzb24uZ2NjQGdtYWlsLmNvbT47IHBh bG1lcjxwYWxtZXJAZGFiYmVsdC5jb20+OyBhbmRyZXc8YW5kcmV3QHNpZml2ZS5jb20+OyAicGhp bGlwcC50b21zaWNoIjxwaGlsaXBwLnRvbXNpY2hAdnJ1bGwuZXU+OyBqZWZmcmV5YWxhdzxqZWZm cmV5YWxhd0BnbWFpbC5jb20+OyAiY2hyaXN0b3BoLm11ZWxsbmVyIjxjaHJpc3RvcGgubXVlbGxu ZXJAdnJ1bGwuZXU+OyBqaW5tYTxqaW5tYUBsaW51eC5hbGliYWJhLmNvbT47ICJjb29wZXIucXUi PGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4K5Li744CA6aKY77yaUmU6IFJl77yaW1BBVENI IHY1XSBSSVNDLVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQg VmVjdG9yCgoKV2h5IGRvIHlvdSBuZWVkIHRvIGludmFkZSBleGlzdGluZyBzaGFwZXMgPwoKCgoK anV6aGUuemhvbmdAcml2YWkuYWkKCsKgCuWPkeS7tuS6uu+8msKgam9zaHVhCuWPkemAgeaXtumX tO+8msKgMjAyNC0wMS0xMMKgMTU6MTYK5pS25Lu25Lq677yawqBqdXpoZS56aG9uZ0ByaXZhaS5h aTsgZ2NjLXBhdGNoZXMK5oqE6YCB77yawqBKaW0gV2lsc29uOyBwYWxtZXI7IGFuZHJldzsgcGhp bGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3BoLm11ZWxsbmVyOyBqaW5tYTsgY29v cGVyLnF1CuS4u+mimO+8msKgUmXvvJpSZe+8mltQQVRDSCB2NV0gUklTQy1WOiBIYW5kbGUgZGlm ZmVyZW5jZXMgYmV0d2VlbiBYVGhlYWR2ZWN0b3IgYW5kIFZlY3RvcgoKVGhlc2UgeHR0aGVhZHZl Y3RvciBzcGVpY2FsIGludHJpbnNpY3MgYXJlIGRpZmZlcmVudCBmcm9tIHJ2djEuMAppbiBkZXRl cm1pbmluZyBmdW5jdGlvbiBuYW1lIGZyb20gYmFzZSBuYW1lLiBXZSBjYW5ub3QgZGlyZWN0bHkK cmV1c2UgdGhlIGV4aXN0aW5nIHNoYXBlcy4KwqAKSW4gb3JkZXIgbm90IHRvIGludmFkZSBleGlz dGluZyBzaGFwZXMsIHdlIGFkZCBuZXcgc2hhcGVzIGZvciBuZXcKZnVuY3Rpb25zLiBBbHNvLCB3 ZSBjcmVhdGUgbmV3IHRoZWFkLXZlY3Rvci1idWlsdGlucy5jYyBmb3IgeHRoZWFkdmVjdG9yCmZ1 bmN0aW9uX2Jhc2UgaW1wbGVtZW50YXRpb24uCsKgCsKgCsKgCsKgCsKgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrlj5Hk u7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+CuWPkemA geaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAxNTowMQrmlLbku7bkurrvvJoi Y29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2MtcGF0 Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhOOAgOmAge+8mkppbSBXaWxzb248amlt LndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFuZHJl dzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2ljaEB2 cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3RvcGgu bXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47IGppbm1hPGppbm1hQGxpbnV4 LmFsaWJhYmEuY29tPjsgImNvb3Blci5xdSI8Y29vcGVyLnF1QGxpbnV4LmFsaWJhYmEuY29tPgrk uLvjgIDpopjvvJpSZTogUmXvvJpbUEFUQ0ggdjVdIFJJU0MtVjogSGFuZGxlIGRpZmZlcmVuY2Vz IGJldHdlZW4gWFRoZWFkdmVjdG9yIGFuZCBWZWN0b3IKwqAKwqAKV2h5IGRvIHlvdSBhZGQgdGhl YWR2ZWN0b3Igc2hhcGVzID8gSSB0aGluayB5b3UgY2FuIHJldXNlIHRoZSBjdXJyZW50IGV4aXN0 aW5nIHNoYXBlcy4KwqAKwqAKK3RoZWFkLXZlY3Rvci1idWlsdGlucy5vOiBcK8KgICQoc3JjZGly KS9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLWJ1aWx0aW5zLmNjIFwrwqAgJChDT05GSUdfSCkg JChTWVNURU1fSCkgY29yZXR5cGVzLmggJChUTV9IKSAkKFRSRUVfSCkgJChSVExfSCkgXCvCoCAk KFRNX1BfSCkgbWVtbW9kZWwuaCBpbnNuLWNvZGVzLmggJChPUFRBQlNfSCkgJChSRUNPR19IKSBc K8KgICQoRVhQUl9IKSAkKEJBU0lDX0JMT0NLX0gpICQoRlVOQ1RJT05fSCkgZm9sZC1jb25zdC5o ICQoR0lNUExFX0gpIFwrwqAgZ2ltcGxlLWl0ZXJhdG9yLmggZ2ltcGxpZnkuaCBleHBsb3cuaCAk KEVNSVRfUlRMX0gpIHRyZWUtdmVjdG9yLWJ1aWxkZXIuaCBcK8KgIHJ0eC12ZWN0b3ItYnVpbGRl ci5oIFwrwqAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtc2hh cGVzLmggXCvCoCAkKHNyY2RpcikvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1i YXNlcy5oIFwrwqAgJChzcmNkaXIpL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMu aCBcK8KgICQoUklTQ1ZfQlVJTFRJTlNfSCkrCSQoQ09NUElMRVIpIC1jICQoQUxMX0NPTVBJTEVS RkxBR1MpICQoQUxMX0NQUEZMQUdTKSAkKElOQ0xVREVTKSBcKwkJJChzcmNkaXIpL2NvbmZpZy9y aXNjdi90aGVhZC12ZWN0b3ItYnVpbHRpbnMuY2MrCldoeSBkbyB5b3UgcmVidWlsZCBhbm90aGVy IG5ldyBvYmplY3QgPwrCoArCoAorwqDCoCBDb3B5cmlnaHQgKEMpIDIwMjItMjAyMyBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KSW5jb3JyZWN0IGNvcHlyaWdodArCoArCoArCoArCoArC oArCoApqdXpoZS56aG9uZ0ByaXZhaS5haQrCoArCoArlj5Hku7bkurrvvJrCoGpvc2h1YQrlj5Hp gIHml7bpl7TvvJrCoDIwMjQtMDEtMTDCoDEwOjU3CuaUtuS7tuS6uu+8msKganV6aGUuemhvbmdA cml2YWkuYWk7IGdjYy1wYXRjaGVzCuaKhOmAge+8msKgSmltIFdpbHNvbjsgcGFsbWVyOyBhbmRy ZXc7IHBoaWxpcHAudG9tc2ljaDsgamVmZnJleWFsYXc7IGNocmlzdG9waC5tdWVsbG5lcjsgamlu bWE7IGNvb3Blci5xdQrkuLvpopjvvJrCoFJl77yaW1BBVENIIHY1XSBSSVNDLVY6IEhhbmRsZSBk aWZmZXJlbmNlcyBiZXR3ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yCsKgCkhpIEp1emhlLApU aGFuayB5b3UgZm9yIHNvIG1hbnkgdXNlZnVsIGNvbW1lbnRzIGZvciB0aGlzIHBhdGNoIQrCoApU aGVyZSBhcmUgc29tZSBtb3JlIHBhdGNoZXMgdG8gc3VwcG9ydCB4dGhlYWR2ZWN0b3IKc3BlY2lh bCBpbnN0cmluc2ljcyBhcyB3ZWxsIGFzIGhhbmRsZSByZWdpc3RlciBvdmVybGFwIGlzc3VlIGFu ZApyZXdyaXRlIGFzc2VtYmx5IG91dHB1dC4KwqAKaHR0cHM6Ly9nY2MuZ251Lm9yZy9waXBlcm1h aWwvZ2NjLXBhdGNoZXMvMjAyNC1KYW51YXJ5LzY0MTc3NC5odG1sCsKgCmh0dHBzOi8vZ2NjLmdu dS5vcmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIwMjQtSmFudWFyeS82NDE3MzIuaHRtbArCoApo dHRwczovL2djYy5nbnUub3JnL3BpcGVybWFpbC9nY2MtcGF0Y2hlcy8yMDI0LUphbnVhcnkvNjQx NzMzLmh0bWwKwqAKQWxzbywgdGhlcmUgaXMgYSBwcmVjZWRlbnQgcGF0Y2ggdG8gcmVmYWN0b3Ig cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNjCmh0dHBzOi8vZ2NjLmdudS5vcmcvcGlwZXJt YWlsL2djYy1wYXRjaGVzLzIwMjMtRGVjZW1iZXIvNjQxNTMwLmh0bWwKSmVmZiBoYXMgcmV2aWV3 ZWQgaXQsIGJ1dCBkaWRuJ3QgaGF2ZSBMR1RNIHlldC4KwqAKSm9zaHVhCsKgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrl j5Hku7bkurrvvJpqdXpoZS56aG9uZ0ByaXZhaS5haSA8anV6aGUuemhvbmdAcml2YWkuYWk+CuWP kemAgeaXtumXtO+8mjIwMjTlubQx5pyIMTDml6Uo5pif5pyf5LiJKSAxMDozNArmlLbku7bkurrv vJoiY29vcGVyLmpvc2h1YSI8Y29vcGVyLmpvc2h1YUBsaW51eC5hbGliYWJhLmNvbT47ICJnY2Mt cGF0Y2hlcyI8Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmc+CuaKhOOAgOmAge+8mkppbSBXaWxzb248 amltLndpbHNvbi5nY2NAZ21haWwuY29tPjsgcGFsbWVyPHBhbG1lckBkYWJiZWx0LmNvbT47IGFu ZHJldzxhbmRyZXdAc2lmaXZlLmNvbT47ICJwaGlsaXBwLnRvbXNpY2giPHBoaWxpcHAudG9tc2lj aEB2cnVsbC5ldT47IGplZmZyZXlhbGF3PGplZmZyZXlhbGF3QGdtYWlsLmNvbT47ICJjaHJpc3Rv cGgubXVlbGxuZXIiPGNocmlzdG9waC5tdWVsbG5lckB2cnVsbC5ldT47ICJjb29wZXIuam9zaHVh Ijxjb29wZXIuam9zaHVhQGxpbnV4LmFsaWJhYmEuY29tPjsgamlubWE8amlubWFAbGludXguYWxp YmFiYS5jb20+OyAiY29vcGVyLnF1Ijxjb29wZXIucXVAbGludXguYWxpYmFiYS5jb20+CuS4u+OA gOmimO+8mlJlOiBbUEFUQ0ggdjVdIFJJU0MtVjogSGFuZGxlIGRpZmZlcmVuY2VzIGJldHdlZW4g WFRoZWFkdmVjdG9yIGFuZCBWZWN0b3IKwqAKwqAKVGhhbmtzIGZvciB5b3VyIHBhdGllbmNlLgrC oArCoApMR1RNIGZyb20gbXlzaWRlLgrCoArCoApJIHRoaW5rIGl0J3MgcHJldHR5IGNsZWFuIG5v dy4gSSBjYW4gaW1hZ2UgaW4gdGhlIGZ1dHVyZSB3aGVuIHNvbWUgZGF5IHRoZSB0aGVhZHZlY3Rv ciBpcyBubyBsb25nZXIgdXNlZCwgd2UgY2FuIHJlbW92ZSBpdCB2ZXJ5IGVhc2lseS4KwqAKwqAK QW5kIGFsc28sIMKgdGhlIHRoZWFkdmVjdG9yIHdvbid0IGFmZmVjdCBvdXIgUlZWMS4wIG1haW50 YWluIHNpbmNlIGl0J3MgaXNvbGF0ZWQgY2xlYW5seS7CoArCoArCoApCdXQgSSdkIGxpa2UgdG8g d2FpdCBmb3IgYSBmZXcgbW9yZSBkYXlzIHNvbWUgYm9keSB3YW50IHRvIGNoaW1lIGluLgrCoArC oApBbmQgeW91IHNob3VsZCBkbyBtb3JlIHRoaW5ncyBiZWZvcmUgY29tbWl0IGl0OgoxLiBSZW1l bWJlciB5b3Ugc2hvdWxkIHJ1biB0aGUgZnVsbCBjb3ZlcmFnZSBSVlYxLjAgQVBJIHRlc3QsIHRo ZSB0ZXN0LWdlbmVyYXRvciBpcyBkb3dubG9hZGVkIGZyb20gb2ZmaWNpYWwgaW50cmluc2ljIGRv YzoKaHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2LW5vbi1pc2EvcnZ2LWludHJpbnNpYy1kb2PCoArC oArCoAoyLiBBbHNvIHRoZSByZWdyZXNzaW9uIG9mIFJWMzIgYW4gUlY2NCBvZiBHQ0MgdGVzdHN1 aXRlLgrCoArCoApEbyB5b3UgaGF2ZSBtb3JlIHBhdGNoZXMgb2YgdGhlYWR2ZWN0b3IgdGhhdCBJ IGRpZG4ndCByZXZpZXcgPyBwbHogcG9pbnQgdGhlbSB0byBtZSBhZ2Fpbi4KwqAKwqAKVGhhbmtz LgpqdXpoZS56aG9uZ0ByaXZhaS5haQrCoArCoApGcm9tOsKgSnVuIFNoYSAoSm9zaHVhKQpEYXRl OsKgMjAyNC0wMS0xMMKgMTA6MjIKVG86wqBnY2MtcGF0Y2hlcwpDQzrCoGppbS53aWxzb24uZ2Nj OyBwYWxtZXI7IGFuZHJldzsgcGhpbGlwcC50b21zaWNoOyBqZWZmcmV5YWxhdzsgY2hyaXN0b3Bo Lm11ZWxsbmVyOyBqdXpoZS56aG9uZzsgSnVuIFNoYSAoSm9zaHVhKTsgSmluIE1hOyBYaWFubWlh byBRdQpTdWJqZWN0OsKgW1BBVENIIHY1XSBSSVNDLVY6IEhhbmRsZSBkaWZmZXJlbmNlcyBiZXR3 ZWVuIFhUaGVhZHZlY3RvciBhbmQgVmVjdG9yCsKgClRoaXMgcGF0Y2ggaXMgdG8gaGFuZGxlIHRo ZSBkaWZmZXJlbmNlcyBpbiBpbnN0cnVjdGlvbiBnZW5lcmF0aW9uCmJldHdlZW4gVmVjdG9yIGFu ZCBYVGhlYWRWZWN0b3IuIEluIHRoaXMgdmVyc2lvbiwgd2Ugb25seSBzdXBwb3J0CnBhcnRpYWwg eHRoZWFkdmVjdG9yIGluc3RydWN0aW9ucyB0aGF0IGxldmVyYWdlIGRpcmVjdGx5IGZyb20gY3Vy cmVudApSVlYxLjAgd2l0aCBzaW1wbGUgYWRkaW5nICJ0aC4iIHByZWZpeC4gRm9yIGRpZmZlcmVu dCBuYW1lIHh0aGVhZHZlY3RvcgppbnN0cnVjdGlvbnMgYnV0IHNoYXJlIHNhbWUgcGF0dGVybnMg YXMgUlZWMS4wIGluc3RydWN0aW9ucywgd2Ugd2lsbAp1c2UgQVNNIHRhcmdldGhvb2sgdG8gcmV3 cml0ZSB0aGUgd2hvbGUgc3RyaW5nIG9mIHRoZSBpbnN0cnVjdGlvbnMgaW4KdGhlIGZvbGxvd2lu ZyBwYXRjaGVzLiAKwqAKRm9yIHNvbWUgdmVjdG9yIHBhdHRlcm5zIHRoYXQgY2Fubm90IGJlIGF2 b2lkZWQsIHdlIHVzZQoiIVRBUkdFVF9YVEhFQURWRUNUT1IiIHRvIGRpc2FibGUgdGhlbSBpbiB2 ZWN0b3IubWQgaW4gb3JkZXIKbm90IHRvIGdlbmVyYXRlIGluc3RydWN0aW9ucyB0aGF0IHh0aGVh ZHZlY3RvciBkb2VzIG5vdCBzdXBwb3J0LApsaWtlIHZtdjFyIGFuZCB2c2V4dC52ZjIuCsKgCmdj Yy9DaGFuZ2VMb2c6CsKgCgkqIGNvbmZpZy5nY2M6wqAgQWRkIGZpbGVzIGZvciBYVGhlYWRWZWN0 b3IgaW50cmluc2ljcy4KCSogY29uZmlnL3Jpc2N2L2F1dG92ZWMubWQ6IEd1YXJkIFhUaGVhZFZl Y3Rvci4KCSogY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2M6IEFkZCBwcmFnbWEgZm9yIFhUaGVhZFZl Y3Rvci4KCSogY29uZmlnL3Jpc2N2L3Jpc2N2LXN0cmluZy5jYyAoZXhwYW5kX2Jsb2NrX21vdmUp OgoJR3VhcmQgWFRoZWFkVmVjdG9yLgoJKiBjb25maWcvcmlzY3YvcmlzY3Ytc3RyaW5nLmNjICh2 bHNfbW9kZV92YWxpZF9wKTogCglBdm9pZCBhdXRvdmVjLgoJKiBjb25maWcvcmlzY3YvcmlzY3Yt dmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYyAoY2hlY2tfdHlwZSk6CgkoYnVpbGRfb25lKTogTmV3 IGZ1bmN0aW9uLgoJKiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmNjIChERUZf UlZWX0ZVTkNUSU9OKToKCShERUZfVEhFQURfUlZWX0ZVTkNUSU9OKTogQWRkIG5ldyBtYXJjb3Mu CgkoY2hlY2tfcmVxdWlyZWRfZXh0ZW5zaW9ucyk6CgkoaGFuZGxlX3ByYWdtYV92ZWN0b3IpOgoJ KiBjb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLmggKFJWVl9SRVFVSVJFX1ZFQ1RP Uik6CgkoUlZWX1JFUVVJUkVfWFRIRUFEVkVDVE9SKToKCUFkZCBSVlZfUkVRVUlSRV9WRUNUT1Ig YW5kIFJWVl9SRVFVSVJFX1hUSEVBRFZFQ1RPUi4KCShzdHJ1Y3QgZnVuY3Rpb25fZ3JvdXBfaW5m byk6CgkqIGNvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3Itc3dpdGNoLmRlZiAoRU5UUlkpOgoJRGlz YWJsZSBmcmFjdGlvbmFsIG1vZGUgZm9yIHRoZSBYVGhlYWRWZWN0b3IgZXh0ZW5zaW9uLgoJKFRV UExFX0VOVFJZKTogTGlrZXdpc2UuCgkqIGNvbmZpZy9yaXNjdi9yaXNjdi12c2V0dmwuY2M6IEFk ZCBmdW5jdGlvbnMgZm9yIHh0aGVhZHZlY3Rvci4KCSogY29uZmlnL3Jpc2N2L3Jpc2N2LmNjIChy aXNjdl92X2V4dF92bHNfbW9kZV9wKToKCUd1YXJkIFhUaGVhZFZlY3Rvci4KCShyaXNjdl92X2Fk anVzdF9ieXRlc2l6ZSk6IExpa2V3aXNlLgoJKHJpc2N2X3ByZWZlcnJlZF9zaW1kX21vZGUpOiBM aWtld3NpZS4KCShyaXNjdl9hdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2Rlcyk6IExpa2V3aXNlLgoJ KHJpc2N2X3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9hbnlfdGFyZ2V0X3ApOiBMaWtld2lzZS4KCShU QVJHRVRfVkVDVE9SX01PREVfU1VQUE9SVEVEX0FOWV9UQVJHRVRfUCk6IExpa2V3aXNlLgoJKiBj b25maWcvcmlzY3YvdmVjdG9yLm1kOiBJbmNsdWRlIHRoZWFkLXZlY3Rvci5tZC4KCSogY29uZmln L3Jpc2N2L3Jpc2N2X3RoX3ZlY3Rvci5oOiBOZXcgZmlsZS4KCSogY29uZmlnL3Jpc2N2L3RoZWFk LXZlY3Rvci5tZDogTmV3IGZpbGUuCsKgCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgrCoAoJKiBn Y2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL3ByYWdtYS0xLmM6IEFkZCBYVGhlYWRWZWN0b3IuCgkq IGdjYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYWJpLTEuYzogRXhjbHVkZSBYVGhlYWRWZWN0b3Iu CgkqIGxpYi90YXJnZXQtc3VwcG9ydHMuZXhwOiBBZGQgdGFyZ2V0IGZvciBYVGhlYWRWZWN0b3Iu CsKgCkNvLWF1dGhvcmVkLWJ5OiBKaW4gTWEgPGppbm1hQGxpbnV4LmFsaWJhYmEuY29tPgpDby1h dXRob3JlZC1ieTogWGlhbm1pYW8gUXUgPGNvb3Blci5xdUBsaW51eC5hbGliYWJhLmNvbT4KQ28t YXV0aG9yZWQtYnk6IENocmlzdG9waCBNw7xsbG5lciA8Y2hyaXN0b3BoLm11ZWxsbmVyQHZydWxs LmV1PgotLS0KIGdjYy9jb25maWcuZ2NjwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQogZ2NjL2NvbmZpZy9yaXNj di9hdXRvdmVjLm1kwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIg Ky0KIGdjYy9jb25maWcvcmlzY3YvcHJlZGljYXRlcy5tZMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8wqDCoCA0ICstCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LWMuY2PCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMyArLQogZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi1zdHJpbmcuY2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAzICstCiBnY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgwqAgMiArLQogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jY8Kg wqDCoMKgwqAgfMKgIDQ4ICsrKystLQogLi4uL3Jpc2N2L3Jpc2N2LXZlY3Rvci1idWlsdGlucy1z aGFwZXMuY2PCoMKgwqDCoCB8wqAgMjMgKysrCiBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1zd2l0Y2guZGVmwqDCoMKgwqDCoCB8IDE1MCArKysrKysrKystLS0tLS0tLS0KIGdjYy9jb25m aWcvcmlzY3YvcmlzY3YuY2PCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAyMCArKy0KIGdjYy9jb25maWcvcmlzY3YvcmlzY3ZfdGhfdmVjdG9yLmjCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoCA0OSArKysrKysKIGdjYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9y Lm1kwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxMDIgKysrKysrKysrKysrCiBnY2MvY29u ZmlnL3Jpc2N2L3RoZWFkLmNjwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB8wqAgMjMgKystCiBnY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA0OSArKysrLS0KIC4uLi9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL2FiaS0xLmPCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKy0KIC4uLi9nY2MudGFy Z2V0L3Jpc2N2L3J2di9iYXNlL3ByYWdtYS0xLmPCoMKgwqDCoMKgIHzCoMKgIDIgKy0KIGdjYy90 ZXN0c3VpdGUvbGliL3RhcmdldC1zdXBwb3J0cy5leHDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMiAr KwogMTcgZmlsZXMgY2hhbmdlZCwgMzgzIGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvY29uZmlnL3Jpc2N2L3Jpc2N2X3RoX3ZlY3Rvci5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC12ZWN0b3IubWQKwqAKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcuZ2NjIGIvZ2NjL2NvbmZpZy5nY2MKaW5kZXggN2U1ODMzOTAw MjQuLjA0N2U0YzAyY2Y0IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnLmdjYworKysgYi9nY2MvY29u ZmlnLmdjYwpAQCAtNTQ5LDcgKzU0OSw3IEBAIHJpc2N2KikKIAlleHRyYV9vYmpzPSIke2V4dHJh X29ianN9IHJpc2N2LXZlY3Rvci1idWlsdGlucy5vIHJpc2N2LXZlY3Rvci1idWlsdGlucy1zaGFw ZXMubyByaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMubyIKIAlleHRyYV9vYmpzPSIke2V4dHJh X29ianN9IHRoZWFkLm8gcmlzY3YtdGFyZ2V0LWF0dHIubyIKIAlkX3RhcmdldF9vYmpzPSJyaXNj di1kLm8iCi0JZXh0cmFfaGVhZGVycz0icmlzY3ZfdmVjdG9yLmgiCisJZXh0cmFfaGVhZGVycz0i cmlzY3ZfdmVjdG9yLmggcmlzY3ZfdGhfdmVjdG9yLmgiCiAJdGFyZ2V0X2d0ZmlsZXM9IiR0YXJn ZXRfZ3RmaWxlcyBcJChzcmNkaXIpL2NvbmZpZy9yaXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMu Y2MiCiAJdGFyZ2V0X2d0ZmlsZXM9IiR0YXJnZXRfZ3RmaWxlcyBcJChzcmNkaXIpL2NvbmZpZy9y aXNjdi9yaXNjdi12ZWN0b3ItYnVpbHRpbnMuaCIKIAk7OwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9yaXNjdi9hdXRvdmVjLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi9hdXRvdmVjLm1kCmluZGV4IDc3 NWVhYTgyNWIwLi4wNDc3NzgxY2FiZSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9hdXRv dmVjLm1kCisrKyBiL2djYy9jb25maWcvcmlzY3YvYXV0b3ZlYy5tZApAQCAtMjU3OSw3ICsyNTc5 LDcgQEAKwqDCoCBbKG1hdGNoX29wZXJhbmTCoMKgwqDCoMKgIDAgInJlZ2lzdGVyX29wZXJhbmQi KQrCoMKgwqAgKG1hdGNoX29wZXJhbmTCoMKgwqDCoMKgIDEgIm1lbW9yeV9vcGVyYW5kIikKwqDC oMKgIChtYXRjaF9vcGVyYW5kOkFOWUkgMiAiY29uc3RfaW50X29wZXJhbmQiKV0KLcKgICJUQVJH RVRfVkVDVE9SIgorwqAgIlRBUkdFVF9WRUNUT1IgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IiCsKg wqAgewrCoMKgwqDCoCByaXNjdl92ZWN0b3I6OmV4cGFuZF9yYXdtZW1jaHIoPE1PREU+bW9kZSwg b3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdLAogCQkJCcKgwqAgb3BlcmFuZHNbMl0pOwpkaWZmIC0t Z2l0IGEvZ2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kIGIvZ2NjL2NvbmZpZy9yaXNjdi9w cmVkaWNhdGVzLm1kCmluZGV4IGIxYTc5Y2FlNTBhLi4wMzM3ZGE4ODI4NCAxMDA2NDQKLS0tIGEv Z2NjL2NvbmZpZy9yaXNjdi9wcmVkaWNhdGVzLm1kCisrKyBiL2djYy9jb25maWcvcmlzY3YvcHJl ZGljYXRlcy5tZApAQCAtNDI4LDcgKzQyOCw5IEBACiA7OyBQcmVkaWNhdGVzIGZvciB0aGUgViBl eHRlbnNpb24uCiAoZGVmaW5lX3NwZWNpYWxfcHJlZGljYXRlICJ2ZWN0b3JfbGVuZ3RoX29wZXJh bmQiCsKgwqAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJwbW9kZV9yZWdpc3Rlcl9vcGVyYW5kIikK LcKgwqDCoMKgwqDCoCAobWF0Y2hfb3BlcmFuZCAwICJjb25zdF9jc3Jfb3BlcmFuZCIpKSkKK8Kg wqDCoMKgwqDCoCAoYW5kIChpb3IgKG1hdGNoX3Rlc3QgIlRBUkdFVF9YVEhFQURWRUNUT1IgJiYg cnR4X2VxdWFsX3AgKG9wLCBjb25zdDBfcnR4KSIpCisJCSAobWF0Y2hfdGVzdCAiIVRBUkdFVF9Y VEhFQURWRUNUT1IiKSkKK8KgwqDCoCAobWF0Y2hfb3BlcmFuZCAwICJjb25zdF9jc3Jfb3BlcmFu ZCIpKSkpCiAKIChkZWZpbmVfc3BlY2lhbF9wcmVkaWNhdGUgImF1dG92ZWNfbGVuZ3RoX29wZXJh bmQiCsKgwqAgKGlvciAobWF0Y2hfb3BlcmFuZCAwICJwbW9kZV9yZWdpc3Rlcl9vcGVyYW5kIikK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3YtYy5jYwppbmRleCA0MjJkZGMyYzMwOC4uMmUzMDYwNTczNDcgMTAwNjQ0Ci0tLSBh L2djYy9jb25maWcvcmlzY3YvcmlzY3YtYy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LWMuY2MKQEAgLTE5NSw3ICsxOTUsOCBAQCByaXNjdl9wcmFnbWFfaW50cmluc2ljIChjcHBfcmVh ZGVyICopCiAKwqDCoCBjb25zdCBjaGFyICpuYW1lID0gVFJFRV9TVFJJTkdfUE9JTlRFUiAoeCk7 CiAKLcKgIGlmIChzdHJjbXAgKG5hbWUsICJ2ZWN0b3IiKSA9PSAwKQorwqAgaWYgKHN0cmNtcCAo bmFtZSwgInZlY3RvciIpID09IDAKK8KgwqDCoMKgwqAgfHwgc3RyY21wIChuYW1lLCAieHRoZWFk dmVjdG9yIikgPT0gMCkKwqDCoMKgwqAgewrCoMKgwqDCoMKgwqAgaWYgKCFUQVJHRVRfVkVDVE9S KQogCXsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3Ytc3RyaW5nLmNjIGIvZ2Nj L2NvbmZpZy9yaXNjdi9yaXNjdi1zdHJpbmcuY2MKaW5kZXggZjIyN2I4NjY3Y2UuLmIwOWI1MWQ3 NTI2IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXN0cmluZy5jYworKysgYi9n Y2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXN0cmluZy5jYwpAQCAtNzczLDcgKzc3Myw4IEBAIHJpc2N2 X2V4cGFuZF9ibG9ja19tb3ZlX3NjYWxhciAocnR4IGRlc3QsIHJ0eCBzcmMsIHJ0eCBsZW5ndGgp CiBib29sCiByaXNjdl9leHBhbmRfYmxvY2tfbW92ZSAocnR4IGRlc3QsIHJ0eCBzcmMsIHJ0eCBs ZW5ndGgpCiB7Ci3CoCBpZiAoVEFSR0VUX1ZFQ1RPUiAmJiBzdHJpbmdvcF9zdHJhdGVneSAmIFNU UkFURUdZX1ZFQ1RPUikKK8KgIGlmICgoVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZF Q1RPUikKK8KgwqDCoMKgwqAgJiYgc3RyaW5nb3Bfc3RyYXRlZ3kgJiBTVFJBVEVHWV9WRUNUT1Ip CsKgwqDCoMKgIHsKwqDCoMKgwqDCoMKgIGJvb2wgb2sgPSByaXNjdl92ZWN0b3I6OmV4cGFuZF9i bG9ja19tb3ZlIChkZXN0LCBzcmMsIGxlbmd0aCk7CsKgwqDCoMKgwqDCoCBpZiAob2spCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXYuY2MKaW5kZXggMjQ5MTUyMjE5MWEuLjdlMjVkZWI5NjZkIDEwMDY0NAotLS0gYS9nY2Mv Y29uZmlnL3Jpc2N2L3Jpc2N2LXYuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi12LmNj CkBAIC00MzkyLDcgKzQzOTIsNyBAQCBjbXBfbG11bF9ndF9vbmUgKG1hY2hpbmVfbW9kZSBtb2Rl KQogYm9vbAogdmxzX21vZGVfdmFsaWRfcCAobWFjaGluZV9tb2RlIHZsc19tb2RlKQogewotwqAg aWYgKCFUQVJHRVRfVkVDVE9SKQorwqAgaWYgKCFUQVJHRVRfVkVDVE9SIHx8IFRBUkdFVF9YVEhF QURWRUNUT1IpCsKgwqDCoMKgIHJldHVybiBmYWxzZTsKIArCoMKgIGlmIChyaXNjdl9hdXRvdmVj X3ByZWZlcmVuY2UgPT0gUlZWX1NDQUxBQkxFKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9yaXNj di9yaXNjdi12ZWN0b3ItYnVpbHRpbnMtYmFzZXMuY2MgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2 LXZlY3Rvci1idWlsdGlucy1iYXNlcy5jYwppbmRleCA5MWFmMmMwMDY3NC4uNDZmMWExZGEzM2Ug MTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2Vz LmNjCisrKyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLWJhc2VzLmNj CkBAIC0xMTUsMjMgKzExNSwzNyBAQCBwdWJsaWM6CiAKwqDCoMKgwqAgdHJlZSB0eXBlID0gYnVp bHRpbl90eXBlc1tlLnR5cGUuaW5kZXhdLnZlY3RvcjsKwqDCoMKgwqAgbWFjaGluZV9tb2RlIG1v ZGUgPSBUWVBFX01PREUgKHR5cGUpOwotwqDCoMKgIC8qIE5vcm1hbGl6ZSBzYW1lIFJBVE8gKFNF Vy9MTVVMKSBpbnRvIHNhbWUgdnNldHZsIGluc3RydWN0aW9uLgotCi0JIC0gZTgsbWY4L2UxNixt ZjQvZTMyLG1mMi9lNjQsbTEgLS0+IGU4bWY4Ci0JIC0gZTgsbWY0L2UxNixtZjIvZTMyLG0xL2U2 NCxtMsKgIC0tPiBlOG1mNAotCSAtIGU4LG1mMi9lMTYsbTEvZTMyLG0yL2U2NCxtNMKgwqAgLS0+ IGU4bWYyCi0JIC0gZTgsbTEvZTE2LG0yL2UzMixtNC9lNjQsbTjCoMKgwqAgLS0+IGU4bTEKLQkg LSBlOCxtMi9lMTYsbTQvZTMyLG04wqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0+IGU4bTIKLQkgLSBl OCxtNC9lMTYsbTjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC0tPiBlOG00Ci0J IC0gZTgsbTjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg LS0+IGU4bTgKLcKgwqDCoCAqLwotwqDCoMKgIC8qIFNFVy7CoCAqLwotwqDCoMKgIGUuYWRkX2lu cHV0X29wZXJhbmQgKFBtb2RlLCBnZW5faW50X21vZGUgKDgsIFBtb2RlKSk7Ci0KLcKgwqDCoCAv KiBMTVVMLsKgICovCi3CoMKgwqAgbWFjaGluZV9tb2RlIGU4X21vZGUKLcKgwqDCoMKgwqAgPSBn ZXRfdmVjdG9yX21vZGUgKFFJbW9kZSwgR0VUX01PREVfTlVOSVRTIChtb2RlKSkucmVxdWlyZSAo KTsKLcKgwqDCoCBlLmFkZF9pbnB1dF9vcGVyYW5kIChQbW9kZSwgZ2VuX2ludF9tb2RlIChnZXRf dmxtdWwgKGU4X21vZGUpLCBQbW9kZSkpOworCivCoMKgwqAgaWYgKFRBUkdFVF9YVEhFQURWRUNU T1IpCivCoMKgwqDCoMKgIHsKKwltYWNoaW5lX21vZGUgaW5uZXJfbW9kZSA9IEdFVF9NT0RFX0lO TkVSIChtb2RlKTsKKwkvKiBTRVcuwqAgKi8KKwllLmFkZF9pbnB1dF9vcGVyYW5kIChQbW9kZSwK KwnCoCBnZW5faW50X21vZGUgKEdFVF9NT0RFX0JJVFNJWkUgKGlubmVyX21vZGUpLCBQbW9kZSkp OworCS8qIExNVUwuwqAgKi8KKwllLmFkZF9pbnB1dF9vcGVyYW5kIChQbW9kZSwKKwnCoCBnZW5f aW50X21vZGUgKGdldF92bG11bCAobW9kZSksIFBtb2RlKSk7CivCoMKgwqDCoMKgIH0KK8KgwqDC oCBlbHNlCivCoMKgwqDCoMKgIHsKKwkvKiBOb3JtYWxpemUgc2FtZSBSQVRPIChTRVcvTE1VTCkg aW50byBzYW1lIHZzZXR2bCBpbnN0cnVjdGlvbi4KKworCcKgwqDCoMKgIC0gZTgsbWY4L2UxNixt ZjQvZTMyLG1mMi9lNjQsbTEgLS0+IGU4bWY4CisJwqDCoMKgwqAgLSBlOCxtZjQvZTE2LG1mMi9l MzIsbTEvZTY0LG0ywqAgLS0+IGU4bWY0CisJwqDCoMKgwqAgLSBlOCxtZjIvZTE2LG0xL2UzMixt Mi9lNjQsbTTCoMKgIC0tPiBlOG1mMgorCcKgwqDCoMKgIC0gZTgsbTEvZTE2LG0yL2UzMixtNC9l NjQsbTjCoMKgwqAgLS0+IGU4bTEKKwnCoMKgwqDCoCAtIGU4LG0yL2UxNixtNC9lMzIsbTjCoMKg wqDCoMKgwqDCoMKgwqDCoCAtLT4gZThtMgorCcKgwqDCoMKgIC0gZTgsbTQvZTE2LG04wqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtLT4gZThtNAorCcKgwqDCoMKgIC0gZTgsbTjC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLS0+IGU4bTgK KwkqLworCS8qIFNFVy7CoCAqLworCWUuYWRkX2lucHV0X29wZXJhbmQgKFBtb2RlLCBnZW5faW50 X21vZGUgKDgsIFBtb2RlKSk7CisKKwkvKiBMTVVMLsKgICovCisJbWFjaGluZV9tb2RlIGU4X21v ZGUKKwnCoCA9IGdldF92ZWN0b3JfbW9kZSAoUUltb2RlLCBHRVRfTU9ERV9OVU5JVFMgKG1vZGUp KS5yZXF1aXJlICgpOworCWUuYWRkX2lucHV0X29wZXJhbmQgKFBtb2RlLCBnZW5faW50X21vZGUg KGdldF92bG11bCAoZThfbW9kZSksIFBtb2RlKSk7CivCoMKgwqDCoMKgIH0KIArCoMKgwqDCoCAv KiBUQUlMX0FOWS7CoCAqLwrCoMKgwqDCoCBlLmFkZF9pbnB1dF9vcGVyYW5kIChQbW9kZSwKZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5j YyBiL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYwppbmRl eCBlZTgwNThkY2RiMS4uMWU0ZjRkNTNkZTYgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvcmlzY3Yv cmlzY3YtdmVjdG9yLWJ1aWx0aW5zLXNoYXBlcy5jYworKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jp c2N2LXZlY3Rvci1idWlsdGlucy1zaGFwZXMuY2MKQEAgLTMzLDYgKzMzLDI1IEBACiAKIG5hbWVz cGFjZSByaXNjdl92ZWN0b3IgewogCisvKiBDaGVjayB3aGV0aGVyIHRoZSBSRVRVUk5fVFlQRSBh bmQgQVJHVU1FTlRfVFlQRVMgYXJlCivCoMKgIHZhbGlkIGZvciB0aGUgZnVuY3Rpb24uwqAgKi8K Kworc3RhdGljIGJvb2wKK2NoZWNrX3R5cGUgKHRyZWUgcmV0dXJuX3R5cGUsIHZlYzx0cmVlPiAm YXJndW1lbnRfdHlwZXMpCit7CivCoCB0cmVlIGFyZzsKK8KgIHVuc2lnbmVkIGk7CisKK8KgIGlm ICghcmV0dXJuX3R5cGUpCivCoMKgwqAgcmV0dXJuIGZhbHNlOworCivCoCBGT1JfRUFDSF9WRUNf RUxUIChhcmd1bWVudF90eXBlcywgaSwgYXJnKQorwqDCoMKgIGlmICghYXJnKQorwqDCoMKgwqDC oCByZXR1cm4gZmFsc2U7CisKK8KgIHJldHVybiB0cnVlOworfQorCiAvKiBBZGQgb25lIGZ1bmN0 aW9uIGluc3RhbmNlIGZvciBHUk9VUCwgdXNpbmcgb3BlcmFuZCBzdWZmaXggYXQgaW5kZXggT0ks CsKgwqDCoCBtb2RlIHN1ZmZpeCBhdCBpbmRleCBQQUlSICYmIGJpIGFuZCBwcmVkaWNhdGlvbiBz dWZmaXggYXQgaW5kZXggcHJlZF9pZHguwqAgKi8KIHN0YXRpYyB2b2lkCkBAIC00OSw2ICs2OCwx MCBAQCBidWlsZF9vbmUgKGZ1bmN0aW9uX2J1aWxkZXIgJmIsIGNvbnN0IGZ1bmN0aW9uX2dyb3Vw X2luZm8gJmdyb3VwLArCoMKgwqDCoCBncm91cC5vcHNfaW5mb3MudHlwZXNbdmVjX3R5cGVfaWR4 XS5pbmRleCk7CsKgwqAgYi5hbGxvY2F0ZV9hcmd1bWVudF90eXBlcyAoZnVuY3Rpb25faW5zdGFu Y2UsIGFyZ3VtZW50X3R5cGVzKTsKwqDCoCBiLmFwcGx5X3ByZWRpY2F0aW9uIChmdW5jdGlvbl9p bnN0YW5jZSwgcmV0dXJuX3R5cGUsIGFyZ3VtZW50X3R5cGVzKTsKKworwqAgaWYgKFRBUkdFVF9Y VEhFQURWRUNUT1IgJiYgIWNoZWNrX3R5cGUgKHJldHVybl90eXBlLCBhcmd1bWVudF90eXBlcykp CivCoMKgwqAgcmV0dXJuOworCsKgwqAgYi5hZGRfb3ZlcmxvYWRlZF9mdW5jdGlvbiAoZnVuY3Rp b25faW5zdGFuY2UsICpncm91cC5zaGFwZSk7CsKgwqAgYi5hZGRfdW5pcXVlX2Z1bmN0aW9uIChm dW5jdGlvbl9pbnN0YW5jZSwgKCpncm91cC5zaGFwZSksIHJldHVybl90eXBlLAogCQkJIGFyZ3Vt ZW50X3R5cGVzKTsKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YtdmVjdG9yLXN3 aXRjaC5kZWYgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rvci1zd2l0Y2guZGVmCmluZGV4 IDFhZDI2YzJhM2IyLi40NTIyODNiNzQxNiAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9y aXNjdi12ZWN0b3Itc3dpdGNoLmRlZgorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LXZlY3Rv ci1zd2l0Y2guZGVmCkBAIC02OCw5ICs2OCw5IEBAIEVuY29kZSB0aGUgcmF0aW8gb2YgU0VXL0xN VUwgaW50byB0aGUgbWFzayB0eXBlcy4KICNlbmRpZgogCiAvKiBEaXNhYmxlIG1vZGVzIGlmIFRB UkdFVF9NSU5fVkxFTiA9PSAzMi7CoCAqLwotRU5UUlkgKFJWVk1GNjRCSSwgVEFSR0VUX01JTl9W TEVOID4gMzIsIExNVUxfRjgsIDY0KQotRU5UUlkgKFJWVk1GMzJCSSwgdHJ1ZSwgTE1VTF9GNCwg MzIpCi1FTlRSWSAoUlZWTUYxNkJJLCB0cnVlLCBMTVVMX0YyLCAxNikKK0VOVFJZIChSVlZNRjY0 QkksIFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBUQVJHRVRfWFRIRUFEVkVDVE9SID8gTE1VTF8xIDpM TVVMX0Y4LCA2NCkKK0VOVFJZIChSVlZNRjMyQkksIHRydWUsIFRBUkdFVF9YVEhFQURWRUNUT1Ig PyBMTVVMXzEgOkxNVUxfRjQsIDMyKQorRU5UUlkgKFJWVk1GMTZCSSwgdHJ1ZSwgVEFSR0VUX1hU SEVBRFZFQ1RPUiA/IExNVUxfMSA6IExNVUxfRjIgLCAxNikKIEVOVFJZIChSVlZNRjhCSSwgdHJ1 ZSwgTE1VTF8xLCA4KQogRU5UUlkgKFJWVk1GNEJJLCB0cnVlLCBMTVVMXzIsIDQpCiBFTlRSWSAo UlZWTUYyQkksIHRydWUsIExNVUxfNCwgMikKQEAgLTgxLDM5ICs4MSwzOSBAQCBFTlRSWSAoUlZW TThRSSwgdHJ1ZSwgTE1VTF84LCAxKQogRU5UUlkgKFJWVk00UUksIHRydWUsIExNVUxfNCwgMikK IEVOVFJZIChSVlZNMlFJLCB0cnVlLCBMTVVMXzIsIDQpCiBFTlRSWSAoUlZWTTFRSSwgdHJ1ZSwg TE1VTF8xLCA4KQotRU5UUlkgKFJWVk1GMlFJLCB0cnVlLCBMTVVMX0YyLCAxNikKLUVOVFJZIChS VlZNRjRRSSwgdHJ1ZSwgTE1VTF9GNCwgMzIpCi1FTlRSWSAoUlZWTUY4UUksIFRBUkdFVF9NSU5f VkxFTiA+IDMyLCBMTVVMX0Y4LCA2NCkKK0VOVFJZIChSVlZNRjJRSSwgIVRBUkdFVF9YVEhFQURW RUNUT1IsIExNVUxfRjIsIDE2KQorRU5UUlkgKFJWVk1GNFFJLCAhVEFSR0VUX1hUSEVBRFZFQ1RP UiwgTE1VTF9GNCwgMzIpCitFTlRSWSAoUlZWTUY4UUksIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYm ICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBMTVVMX0Y4LCA2NCkKIAogLyogRGlzYWJsZSBtb2RlcyBp ZiBUQVJHRVRfTUlOX1ZMRU4gPT0gMzIuwqAgKi8KIEVOVFJZIChSVlZNOEhJLCB0cnVlLCBMTVVM XzgsIDIpCiBFTlRSWSAoUlZWTTRISSwgdHJ1ZSwgTE1VTF80LCA0KQogRU5UUlkgKFJWVk0ySEks IHRydWUsIExNVUxfMiwgOCkKIEVOVFJZIChSVlZNMUhJLCB0cnVlLCBMTVVMXzEsIDE2KQotRU5U UlkgKFJWVk1GMkhJLCB0cnVlLCBMTVVMX0YyLCAzMikKLUVOVFJZIChSVlZNRjRISSwgVEFSR0VU X01JTl9WTEVOID4gMzIsIExNVUxfRjQsIDY0KQorRU5UUlkgKFJWVk1GMkhJLCAhVEFSR0VUX1hU SEVBRFZFQ1RPUiwgTE1VTF9GMiwgMzIpCitFTlRSWSAoUlZWTUY0SEksIFRBUkdFVF9NSU5fVkxF TiA+IDMyICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBMTVVMX0Y0LCA2NCkKIAogLyogRGlzYWJs ZSBtb2RlcyBpZiBUQVJHRVRfTUlOX1ZMRU4gPT0gMzIgb3IgIVRBUkdFVF9WRUNUT1JfRUxFTl9G UF8xNi7CoCAqLwogRU5UUlkgKFJWVk04SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgTE1V TF84LCAyKQogRU5UUlkgKFJWVk00SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgTE1VTF80 LCA0KQogRU5UUlkgKFJWVk0ySEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgTE1VTF8yLCA4 KQogRU5UUlkgKFJWVk0xSEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgTE1VTF8xLCAxNikK LUVOVFJZIChSVlZNRjJIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBMTVVMX0YyLCAzMikK LUVOVFJZIChSVlZNRjRIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9NSU5f VkxFTiA+IDMyLCBMTVVMX0Y0LCA2NCkKK0VOVFJZIChSVlZNRjJIRiwgVEFSR0VUX1ZFQ1RPUl9F TEVOX0ZQXzE2ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBMTVVMX0YyLCAzMikKK0VOVFJZIChS VlZNRjRIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9NSU5fVkxFTiA+IDMy ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBMTVVMX0Y0LCA2NCkKIAogLyogRGlzYWJsZSBtb2Rl cyBpZiBUQVJHRVRfTUlOX1ZMRU4gPT0gMzIuwqAgKi8KIEVOVFJZIChSVlZNOFNJLCB0cnVlLCBM TVVMXzgsIDQpCiBFTlRSWSAoUlZWTTRTSSwgdHJ1ZSwgTE1VTF80LCA4KQogRU5UUlkgKFJWVk0y U0ksIHRydWUsIExNVUxfMiwgMTYpCiBFTlRSWSAoUlZWTTFTSSwgdHJ1ZSwgTE1VTF8xLCAzMikK LUVOVFJZIChSVlZNRjJTSSwgVEFSR0VUX01JTl9WTEVOID4gMzIsIExNVUxfRjIsIDY0KQorRU5U UlkgKFJWVk1GMlNJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RP UiwgTE1VTF9GMiwgNjQpCiAKIC8qIERpc2FibGUgbW9kZXMgaWYgVEFSR0VUX01JTl9WTEVOID09 IDMyIG9yICFUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIuwqAgKi8KIEVOVFJZIChSVlZNOFNGLCBU QVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIsIExNVUxfOCwgNCkKIEVOVFJZIChSVlZNNFNGLCBUQVJH RVRfVkVDVE9SX0VMRU5fRlBfMzIsIExNVUxfNCwgOCkKIEVOVFJZIChSVlZNMlNGLCBUQVJHRVRf VkVDVE9SX0VMRU5fRlBfMzIsIExNVUxfMiwgMTYpCiBFTlRSWSAoUlZWTTFTRiwgVEFSR0VUX1ZF Q1RPUl9FTEVOX0ZQXzMyLCBMTVVMXzEsIDMyKQotRU5UUlkgKFJWVk1GMlNGLCBUQVJHRVRfVkVD VE9SX0VMRU5fRlBfMzIgJiYgVEFSR0VUX01JTl9WTEVOID4gMzIsIExNVUxfRjIsIDY0KQorRU5U UlkgKFJWVk1GMlNGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIgJiYgVEFSR0VUX01JTl9WTEVO ID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIExNVUxfRjIsIDY0KQogCiAvKiBEaXNhYmxl IG1vZGVzIGlmICFUQVJHRVRfVkVDVE9SX0VMRU5fNjQuwqAgKi8KIEVOVFJZIChSVlZNOERJLCBU QVJHRVRfVkVDVE9SX0VMRU5fNjQsIExNVUxfOCwgOCkKQEAgLTE0MCwxMjcgKzE0MCwxMjcgQEAg RU5UUlkgKFJWVk0xREYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF82NCwgTE1VTF8xLCA2NCkKICNl bmRpZgogCiBUVVBMRV9FTlRSWSAoUlZWTTF4OFFJLCB0cnVlLCBSVlZNMVFJLCA4LCBMTVVMXzEs IDgpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDhRSSwgdHJ1ZSwgUlZWTUYyUUksIDgsIExNVUxfRjIs IDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GNHg4UUksIHRydWUsIFJWVk1GNFFJLCA4LCBMTVVMX0Y0 LCAzMikKLVRVUExFX0VOVFJZIChSVlZNRjh4OFFJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZW TUY4UUksIDgsIExNVUxfRjgsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng4UUksICFUQVJHRVRf WFRIRUFEVkVDVE9SLCBSVlZNRjJRSSwgOCwgTE1VTF9GMiwgMTYpCitUVVBMRV9FTlRSWSAoUlZW TUY0eDhRSSwgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GNFFJLCA4LCBMTVVMX0Y0LCAzMikK K1RVUExFX0VOVFJZIChSVlZNRjh4OFFJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VU X1hUSEVBRFZFQ1RPUiwgUlZWTUY4UUksIDgsIExNVUxfRjgsIDY0KQogVFVQTEVfRU5UUlkgKFJW Vk0xeDdRSSwgdHJ1ZSwgUlZWTTFRSSwgNywgTE1VTF8xLCA4KQotVFVQTEVfRU5UUlkgKFJWVk1G Mng3UUksIHRydWUsIFJWVk1GMlFJLCA3LCBMTVVMX0YyLCAxNikKLVRVUExFX0VOVFJZIChSVlZN RjR4N1FJLCB0cnVlLCBSVlZNRjRRSSwgNywgTE1VTF9GNCwgMzIpCi1UVVBMRV9FTlRSWSAoUlZW TUY4eDdRSSwgVEFSR0VUX01JTl9WTEVOID4gMzIsIFJWVk1GOFFJLCA3LCBMTVVMX0Y4LCA2NCkK K1RVUExFX0VOVFJZIChSVlZNRjJ4N1FJLCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYyUUks IDcsIExNVUxfRjIsIDE2KQorVFVQTEVfRU5UUlkgKFJWVk1GNHg3UUksICFUQVJHRVRfWFRIRUFE VkVDVE9SLCBSVlZNRjRRSSwgNywgTE1VTF9GNCwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY4eDdR SSwgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GOFFJ LCA3LCBMTVVMX0Y4LCA2NCkKIFRVUExFX0VOVFJZIChSVlZNMXg2UUksIHRydWUsIFJWVk0xUUks IDYsIExNVUxfMSwgOCkKLVRVUExFX0VOVFJZIChSVlZNRjJ4NlFJLCB0cnVlLCBSVlZNRjJRSSwg NiwgTE1VTF9GMiwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUY0eDZRSSwgdHJ1ZSwgUlZWTUY0UUks IDYsIExNVUxfRjQsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1GOHg2UUksIFRBUkdFVF9NSU5fVkxF TiA+IDMyLCBSVlZNRjhRSSwgNiwgTE1VTF9GOCwgNjQpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDZR SSwgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMlFJLCA2LCBMTVVMX0YyLCAxNikKK1RVUExF X0VOVFJZIChSVlZNRjR4NlFJLCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUY0UUksIDYsIExN VUxfRjQsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GOHg2UUksIFRBUkdFVF9NSU5fVkxFTiA+IDMy ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjhRSSwgNiwgTE1VTF9GOCwgNjQpCiBUVVBM RV9FTlRSWSAoUlZWTTF4NVFJLCB0cnVlLCBSVlZNMVFJLCA1LCBMTVVMXzEsIDgpCi1UVVBMRV9F TlRSWSAoUlZWTUYyeDVRSSwgdHJ1ZSwgUlZWTUYyUUksIDUsIExNVUxfRjIsIDE2KQotVFVQTEVf RU5UUlkgKFJWVk1GNHg1UUksIHRydWUsIFJWVk1GNFFJLCA1LCBMTVVMX0Y0LCAzMikKLVRVUExF X0VOVFJZIChSVlZNRjh4NVFJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY4UUksIDUsIExN VUxfRjgsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng1UUksICFUQVJHRVRfWFRIRUFEVkVDVE9S LCBSVlZNRjJRSSwgNSwgTE1VTF9GMiwgMTYpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDVRSSwgIVRB UkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GNFFJLCA1LCBMTVVMX0Y0LCAzMikKK1RVUExFX0VOVFJZ IChSVlZNRjh4NVFJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RP UiwgUlZWTUY4UUksIDUsIExNVUxfRjgsIDY0KQogVFVQTEVfRU5UUlkgKFJWVk0yeDRRSSwgdHJ1 ZSwgUlZWTTJRSSwgNCwgTE1VTF8yLCA0KQogVFVQTEVfRU5UUlkgKFJWVk0xeDRRSSwgdHJ1ZSwg UlZWTTFRSSwgNCwgTE1VTF8xLCA4KQotVFVQTEVfRU5UUlkgKFJWVk1GMng0UUksIHRydWUsIFJW Vk1GMlFJLCA0LCBMTVVMX0YyLCAxNikKLVRVUExFX0VOVFJZIChSVlZNRjR4NFFJLCB0cnVlLCBS VlZNRjRRSSwgNCwgTE1VTF9GNCwgMzIpCi1UVVBMRV9FTlRSWSAoUlZWTUY4eDRRSSwgVEFSR0VU X01JTl9WTEVOID4gMzIsIFJWVk1GOFFJLCA0LCBMTVVMX0Y4LCA2NCkKK1RVUExFX0VOVFJZIChS VlZNRjJ4NFFJLCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYyUUksIDQsIExNVUxfRjIsIDE2 KQorVFVQTEVfRU5UUlkgKFJWVk1GNHg0UUksICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjRR SSwgNCwgTE1VTF9GNCwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY4eDRRSSwgVEFSR0VUX01JTl9W TEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GOFFJLCA0LCBMTVVMX0Y4LCA2 NCkKIFRVUExFX0VOVFJZIChSVlZNMngzUUksIHRydWUsIFJWVk0yUUksIDMsIExNVUxfMiwgNCkK IFRVUExFX0VOVFJZIChSVlZNMXgzUUksIHRydWUsIFJWVk0xUUksIDMsIExNVUxfMSwgOCkKLVRV UExFX0VOVFJZIChSVlZNRjJ4M1FJLCB0cnVlLCBSVlZNRjJRSSwgMywgTE1VTF9GMiwgMTYpCi1U VVBMRV9FTlRSWSAoUlZWTUY0eDNRSSwgdHJ1ZSwgUlZWTUY0UUksIDMsIExNVUxfRjQsIDMyKQot VFVQTEVfRU5UUlkgKFJWVk1GOHgzUUksIFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBSVlZNRjhRSSwg MywgTE1VTF9GOCwgNjQpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDNRSSwgIVRBUkdFVF9YVEhFQURW RUNUT1IsIFJWVk1GMlFJLCAzLCBMTVVMX0YyLCAxNikKK1RVUExFX0VOVFJZIChSVlZNRjR4M1FJ LCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUY0UUksIDMsIExNVUxfRjQsIDMyKQorVFVQTEVf RU5UUlkgKFJWVk1GOHgzUUksIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRfWFRIRUFE VkVDVE9SLCBSVlZNRjhRSSwgMywgTE1VTF9GOCwgNjQpCiBUVVBMRV9FTlRSWSAoUlZWTTR4MlFJ LCB0cnVlLCBSVlZNNFFJLCAyLCBMTVVMXzQsIDIpCiBUVVBMRV9FTlRSWSAoUlZWTTJ4MlFJLCB0 cnVlLCBSVlZNMlFJLCAyLCBMTVVMXzIsIDQpCiBUVVBMRV9FTlRSWSAoUlZWTTF4MlFJLCB0cnVl LCBSVlZNMVFJLCAyLCBMTVVMXzEsIDgpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDJRSSwgdHJ1ZSwg UlZWTUYyUUksIDIsIExNVUxfRjIsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GNHgyUUksIHRydWUs IFJWVk1GNFFJLCAyLCBMTVVMX0Y0LCAzMikKLVRVUExFX0VOVFJZIChSVlZNRjh4MlFJLCBUQVJH RVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY4UUksIDIsIExNVUxfRjgsIDY0KQorVFVQTEVfRU5UUlkg KFJWVk1GMngyUUksICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjJRSSwgMiwgTE1VTF9GMiwg MTYpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDJRSSwgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1G NFFJLCAyLCBMTVVMX0Y0LCAzMikKK1RVUExFX0VOVFJZIChSVlZNRjh4MlFJLCBUQVJHRVRfTUlO X1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUY4UUksIDIsIExNVUxfRjgs IDY0KQogCiBUVVBMRV9FTlRSWSAoUlZWTTF4OEhJLCB0cnVlLCBSVlZNMUhJLCA4LCBMTVVMXzEs IDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng4SEksIHRydWUsIFJWVk1GMkhJLCA4LCBMTVVMX0Yy LCAzMikKLVRVUExFX0VOVFJZIChSVlZNRjR4OEhJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZW TUY0SEksIDgsIExNVUxfRjQsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng4SEksICFUQVJHRVRf WFRIRUFEVkVDVE9SLCBSVlZNRjJISSwgOCwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZW TUY0eDhISSwgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJW Vk1GNEhJLCA4LCBMTVVMX0Y0LCA2NCkKIFRVUExFX0VOVFJZIChSVlZNMXg3SEksIHRydWUsIFJW Vk0xSEksIDcsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDdISSwgdHJ1ZSwgUlZW TUYySEksIDcsIExNVUxfRjIsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1GNHg3SEksIFRBUkdFVF9N SU5fVkxFTiA+IDMyLCBSVlZNRjRISSwgNywgTE1VTF9GNCwgNjQpCitUVVBMRV9FTlRSWSAoUlZW TUYyeDdISSwgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMkhJLCA3LCBMTVVMX0YyLCAzMikK K1RVUExFX0VOVFJZIChSVlZNRjR4N0hJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VU X1hUSEVBRFZFQ1RPUiwgUlZWTUY0SEksIDcsIExNVUxfRjQsIDY0KQogVFVQTEVfRU5UUlkgKFJW Vk0xeDZISSwgdHJ1ZSwgUlZWTTFISSwgNiwgTE1VTF8xLCAxNikKLVRVUExFX0VOVFJZIChSVlZN RjJ4NkhJLCB0cnVlLCBSVlZNRjJISSwgNiwgTE1VTF9GMiwgMzIpCi1UVVBMRV9FTlRSWSAoUlZW TUY0eDZISSwgVEFSR0VUX01JTl9WTEVOID4gMzIsIFJWVk1GNEhJLCA2LCBMTVVMX0Y0LCA2NCkK K1RVUExFX0VOVFJZIChSVlZNRjJ4NkhJLCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYySEks IDYsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GNHg2SEksIFRBUkdFVF9NSU5fVkxF TiA+IDMyICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjRISSwgNiwgTE1VTF9GNCwgNjQp CiBUVVBMRV9FTlRSWSAoUlZWTTF4NUhJLCB0cnVlLCBSVlZNMUhJLCA1LCBMTVVMXzEsIDE2KQot VFVQTEVfRU5UUlkgKFJWVk1GMng1SEksIHRydWUsIFJWVk1GMkhJLCA1LCBMTVVMX0YyLCAzMikK LVRVUExFX0VOVFJZIChSVlZNRjR4NUhJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY0SEks IDUsIExNVUxfRjQsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng1SEksICFUQVJHRVRfWFRIRUFE VkVDVE9SLCBSVlZNRjJISSwgNSwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDVI SSwgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GNEhJ LCA1LCBMTVVMX0Y0LCA2NCkKIFRVUExFX0VOVFJZIChSVlZNMng0SEksIHRydWUsIFJWVk0ySEks IDQsIExNVUxfMiwgOCkKIFRVUExFX0VOVFJZIChSVlZNMXg0SEksIHRydWUsIFJWVk0xSEksIDQs IExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDRISSwgdHJ1ZSwgUlZWTUYySEksIDQs IExNVUxfRjIsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1GNHg0SEksIFRBUkdFVF9NSU5fVkxFTiA+ IDMyLCBSVlZNRjRISSwgNCwgTE1VTF9GNCwgNjQpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDRISSwg IVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMkhJLCA0LCBMTVVMX0YyLCAzMikKK1RVUExFX0VO VFJZIChSVlZNRjR4NEhJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZF Q1RPUiwgUlZWTUY0SEksIDQsIExNVUxfRjQsIDY0KQogVFVQTEVfRU5UUlkgKFJWVk0yeDNISSwg dHJ1ZSwgUlZWTTJISSwgMywgTE1VTF8yLCA4KQogVFVQTEVfRU5UUlkgKFJWVk0xeDNISSwgdHJ1 ZSwgUlZWTTFISSwgMywgTE1VTF8xLCAxNikKLVRVUExFX0VOVFJZIChSVlZNRjJ4M0hJLCB0cnVl LCBSVlZNRjJISSwgMywgTE1VTF9GMiwgMzIpCi1UVVBMRV9FTlRSWSAoUlZWTUY0eDNISSwgVEFS R0VUX01JTl9WTEVOID4gMzIsIFJWVk1GNEhJLCAzLCBMTVVMX0Y0LCA2NCkKK1RVUExFX0VOVFJZ IChSVlZNRjJ4M0hJLCAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYySEksIDMsIExNVUxfRjIs IDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GNHgzSEksIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFU QVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjRISSwgMywgTE1VTF9GNCwgNjQpCiBUVVBMRV9FTlRS WSAoUlZWTTR4MkhJLCB0cnVlLCBSVlZNNEhJLCAyLCBMTVVMXzQsIDQpCiBUVVBMRV9FTlRSWSAo UlZWTTJ4MkhJLCB0cnVlLCBSVlZNMkhJLCAyLCBMTVVMXzIsIDgpCiBUVVBMRV9FTlRSWSAoUlZW TTF4MkhJLCB0cnVlLCBSVlZNMUhJLCAyLCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1G MngySEksIHRydWUsIFJWVk1GMkhJLCAyLCBMTVVMX0YyLCAzMikKLVRVUExFX0VOVFJZIChSVlZN RjR4MkhJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY0SEksIDIsIExNVUxfRjQsIDY0KQor VFVQTEVfRU5UUlkgKFJWVk1GMngySEksICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjJISSwg MiwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDJISSwgVEFSR0VUX01JTl9WTEVO ID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GNEhJLCAyLCBMTVVMX0Y0LCA2NCkK IAogVFVQTEVfRU5UUlkgKFJWVk0xeDhIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZN MUhGLCA4LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng4SEYsIFRBUkdFVF9WRUNU T1JfRUxFTl9GUF8xNiwgUlZWTUYySEYsIDgsIExNVUxfRjIsIDMyKQotVFVQTEVfRU5UUlkgKFJW Vk1GNHg4SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAz MiwgUlZWTUY0SEYsIDgsIExNVUxfRjQsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng4SEYsIFRB UkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYySEYs IDgsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GNHg4SEYsIFRBUkdFVF9WRUNUT1Jf RUxFTl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RP UiwgUlZWTUY0SEYsIDgsIExNVUxfRjQsIDY0KQogVFVQTEVfRU5UUlkgKFJWVk0xeDdIRiwgVEFS R0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNMUhGLCA3LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5U UlkgKFJWVk1GMng3SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgUlZWTUYySEYsIDcsIExN VUxfRjIsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1GNHg3SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9G UF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY0SEYsIDcsIExNVUxfRjQsIDY0KQor VFVQTEVfRU5UUlkgKFJWVk1GMng3SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiAhVEFS R0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYySEYsIDcsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkg KFJWVk1GNHg3SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4g PiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUY0SEYsIDcsIExNVUxfRjQsIDY0KQog VFVQTEVfRU5UUlkgKFJWVk0xeDZIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNMUhG LCA2LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng2SEYsIFRBUkdFVF9WRUNUT1Jf RUxFTl9GUF8xNiwgUlZWTUYySEYsIDYsIExNVUxfRjIsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1G NHg2SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwg UlZWTUY0SEYsIDYsIExNVUxfRjQsIDY0KQorVFVQTEVfRU5UUlkgKFJWVk1GMng2SEYsIFRBUkdF VF9WRUNUT1JfRUxFTl9GUF8xNiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYySEYsIDYs IExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GNHg2SEYsIFRBUkdFVF9WRUNUT1JfRUxF Tl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwg UlZWTUY0SEYsIDYsIExNVUxfRjQsIDY0KQogVFVQTEVfRU5UUlkgKFJWVk0xeDVIRiwgVEFSR0VU X1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNMUhGLCA1LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkg KFJWVk1GMng1SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgUlZWTUYySEYsIDUsIExNVUxf RjIsIDMyKQotVFVQTEVfRU5UUlkgKFJWVk1GNHg1SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8x NiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUY0SEYsIDUsIExNVUxfRjQsIDY0KQorVFVQ TEVfRU5UUlkgKFJWVk1GMng1SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiAhVEFSR0VU X1hUSEVBRFZFQ1RPUiwgUlZWTUYySEYsIDUsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJW Vk1GNHg1SEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAz MiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUY0SEYsIDUsIExNVUxfRjQsIDY0KQogVFVQ TEVfRU5UUlkgKFJWVk0yeDRIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNMkhGLCA0 LCBMTVVMXzIsIDgpCiBUVVBMRV9FTlRSWSAoUlZWTTF4NEhGLCBUQVJHRVRfVkVDVE9SX0VMRU5f RlBfMTYsIFJWVk0xSEYsIDQsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDRIRiwg VEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNRjJIRiwgNCwgTE1VTF9GMiwgMzIpCi1UVVBM RV9FTlRSWSAoUlZWTUY0eDRIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9N SU5fVkxFTiA+IDMyLCBSVlZNRjRIRiwgNCwgTE1VTF9GNCwgNjQpCitUVVBMRV9FTlRSWSAoUlZW TUYyeDRIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9S LCBSVlZNRjJIRiwgNCwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDRIRiwgVEFS R0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRf WFRIRUFEVkVDVE9SLCBSVlZNRjRIRiwgNCwgTE1VTF9GNCwgNjQpCiBUVVBMRV9FTlRSWSAoUlZW TTJ4M0hGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMTYsIFJWVk0ySEYsIDMsIExNVUxfMiwgOCkK IFRVUExFX0VOVFJZIChSVlZNMXgzSEYsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8xNiwgUlZWTTFI RiwgMywgTE1VTF8xLCAxNikKLVRVUExFX0VOVFJZIChSVlZNRjJ4M0hGLCBUQVJHRVRfVkVDVE9S X0VMRU5fRlBfMTYsIFJWVk1GMkhGLCAzLCBMTVVMX0YyLCAzMikKLVRVUExFX0VOVFJZIChSVlZN RjR4M0hGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMTYgJiYgVEFSR0VUX01JTl9WTEVOID4gMzIs IFJWVk1GNEhGLCAzLCBMTVVMX0Y0LCA2NCkKK1RVUExFX0VOVFJZIChSVlZNRjJ4M0hGLCBUQVJH RVRfVkVDVE9SX0VMRU5fRlBfMTYgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMkhGLCAz LCBMTVVMX0YyLCAzMikKK1RVUExFX0VOVFJZIChSVlZNRjR4M0hGLCBUQVJHRVRfVkVDVE9SX0VM RU5fRlBfMTYgJiYgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1Is IFJWVk1GNEhGLCAzLCBMTVVMX0Y0LCA2NCkKIFRVUExFX0VOVFJZIChSVlZNNHgySEYsIFRBUkdF VF9WRUNUT1JfRUxFTl9GUF8xNiwgUlZWTTRIRiwgMiwgTE1VTF80LCA0KQogVFVQTEVfRU5UUlkg KFJWVk0yeDJIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2LCBSVlZNMkhGLCAyLCBMTVVMXzIs IDgpCiBUVVBMRV9FTlRSWSAoUlZWTTF4MkhGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMTYsIFJW Vk0xSEYsIDIsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDJIRiwgVEFSR0VUX1ZF Q1RPUl9FTEVOX0ZQXzE2LCBSVlZNRjJIRiwgMiwgTE1VTF9GMiwgMzIpCi1UVVBMRV9FTlRSWSAo UlZWTUY0eDJIRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9NSU5fVkxFTiA+ IDMyLCBSVlZNRjRIRiwgMiwgTE1VTF9GNCwgNjQpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDJIRiwg VEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzE2ICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjJI RiwgMiwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUY0eDJIRiwgVEFSR0VUX1ZFQ1RP Ul9FTEVOX0ZQXzE2ICYmIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRfWFRIRUFEVkVD VE9SLCBSVlZNRjRIRiwgMiwgTE1VTF9GNCwgNjQpCiAKIFRVUExFX0VOVFJZIChSVlZNMXg4U0ks IHRydWUsIFJWVk0xU0ksIDgsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDhTSSwg VEFSR0VUX01JTl9WTEVOID4gMzIsIFJWVk1GMlNJLCA4LCBMTVVMX0YyLCAzMikKK1RVUExFX0VO VFJZIChSVlZNRjJ4OFNJLCAoVEFSR0VUX01JTl9WTEVOID4gMzIpICYmICFUQVJHRVRfWFRIRUFE VkVDVE9SLCBSVlZNRjJTSSwgOCwgTE1VTF9GMiwgMzIpCiBUVVBMRV9FTlRSWSAoUlZWTTF4N1NJ LCB0cnVlLCBSVlZNMVNJLCA3LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng3U0ks IFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBSVlZNRjJTSSwgNywgTE1VTF9GMiwgMzIpCitUVVBMRV9F TlRSWSAoUlZWTUYyeDdTSSwgKFRBUkdFVF9NSU5fVkxFTiA+IDMyKSAmJiAhVEFSR0VUX1hUSEVB RFZFQ1RPUiwgUlZWTUYyU0ksIDcsIExNVUxfRjIsIDMyKQogVFVQTEVfRU5UUlkgKFJWVk0xeDZT SSwgdHJ1ZSwgUlZWTTFTSSwgNiwgTE1VTF8xLCAxNikKLVRVUExFX0VOVFJZIChSVlZNRjJ4NlNJ LCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUYyU0ksIDYsIExNVUxfRjIsIDMyKQorVFVQTEVf RU5UUlkgKFJWVk1GMng2U0ksIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRfWFRIRUFE VkVDVE9SLCBSVlZNRjJTSSwgNiwgTE1VTF9GMiwgMzIpCiBUVVBMRV9FTlRSWSAoUlZWTTF4NVNJ LCB0cnVlLCBSVlZNMVNJLCA1LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng1U0ks IFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBSVlZNRjJTSSwgNSwgTE1VTF9GMiwgMzIpCitUVVBMRV9F TlRSWSAoUlZWTUYyeDVTSSwgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURW RUNUT1IsIFJWVk1GMlNJLCA1LCBMTVVMX0YyLCAzMikKIFRVUExFX0VOVFJZIChSVlZNMng0U0ks IHRydWUsIFJWVk0yU0ksIDQsIExNVUxfMiwgOCkKIFRVUExFX0VOVFJZIChSVlZNMXg0U0ksIHRy dWUsIFJWVk0xU0ksIDQsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDRTSSwgVEFS R0VUX01JTl9WTEVOID4gMzIsIFJWVk1GMlNJLCA0LCBMTVVMX0YyLCAzMikKK1RVUExFX0VOVFJZ IChSVlZNRjJ4NFNJLCBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RP UiwgUlZWTUYyU0ksIDQsIExNVUxfRjIsIDMyKQogVFVQTEVfRU5UUlkgKFJWVk0yeDNTSSwgdHJ1 ZSwgUlZWTTJTSSwgMywgTE1VTF8yLCA4KQogVFVQTEVfRU5UUlkgKFJWVk0xeDNTSSwgdHJ1ZSwg UlZWTTFTSSwgMywgTE1VTF8xLCAxNikKLVRVUExFX0VOVFJZIChSVlZNRjJ4M1NJLCBUQVJHRVRf TUlOX1ZMRU4gPiAzMiwgUlZWTUYyU0ksIDMsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJW Vk1GMngzU0ksIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBS VlZNRjJTSSwgMywgTE1VTF9GMiwgMzIpCiBUVVBMRV9FTlRSWSAoUlZWTTR4MlNJLCB0cnVlLCBS VlZNNFNJLCAyLCBMTVVMXzQsIDQpCiBUVVBMRV9FTlRSWSAoUlZWTTJ4MlNJLCB0cnVlLCBSVlZN MlNJLCAyLCBMTVVMXzIsIDgpCiBUVVBMRV9FTlRSWSAoUlZWTTF4MlNJLCB0cnVlLCBSVlZNMVNJ LCAyLCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMngyU0ksIFRBUkdFVF9NSU5fVkxF TiA+IDMyLCBSVlZNRjJTSSwgMiwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDJT SSwgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYgIVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMlNJ LCAyLCBMTVVMX0YyLCAzMikKIAogVFVQTEVfRU5UUlkgKFJWVk0xeDhTRiwgVEFSR0VUX1ZFQ1RP Ul9FTEVOX0ZQXzMyLCBSVlZNMVNGLCA4LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1G Mng4U0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwg UlZWTUYyU0YsIDgsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GMng4U0YsIFRBUkdF VF9WRUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hU SEVBRFZFQ1RPUiwgUlZWTUYyU0YsIDgsIExNVUxfRjIsIDMyKQogVFVQTEVfRU5UUlkgKFJWVk0x eDdTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyLCBSVlZNMVNGLCA3LCBMTVVMXzEsIDE2KQot VFVQTEVfRU5UUlkgKFJWVk1GMng3U0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJH RVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUYyU0YsIDcsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkg KFJWVk1GMng3U0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4g PiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYyU0YsIDcsIExNVUxfRjIsIDMyKQog VFVQTEVfRU5UUlkgKFJWVk0xeDZTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyLCBSVlZNMVNG LCA2LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng2U0YsIFRBUkdFVF9WRUNUT1Jf RUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZWTUYyU0YsIDYsIExNVUxfRjIs IDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GMng2U0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiAm JiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiwgUlZWTUYyU0Ys IDYsIExNVUxfRjIsIDMyKQogVFVQTEVfRU5UUlkgKFJWVk0xeDVTRiwgVEFSR0VUX1ZFQ1RPUl9F TEVOX0ZQXzMyLCBSVlZNMVNGLCA1LCBMTVVMXzEsIDE2KQotVFVQTEVfRU5UUlkgKFJWVk1GMng1 U0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiwgUlZW TUYyU0YsIDUsIExNVUxfRjIsIDMyKQorVFVQTEVfRU5UUlkgKFJWVk1GMng1U0YsIFRBUkdFVF9W RUNUT1JfRUxFTl9GUF8zMiAmJiBUQVJHRVRfTUlOX1ZMRU4gPiAzMiAmJiAhVEFSR0VUX1hUSEVB RFZFQ1RPUiwgUlZWTUYyU0YsIDUsIExNVUxfRjIsIDMyKQogVFVQTEVfRU5UUlkgKFJWVk0yeDRT RiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyLCBSVlZNMlNGLCA0LCBMTVVMXzIsIDgpCiBUVVBM RV9FTlRSWSAoUlZWTTF4NFNGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIsIFJWVk0xU0YsIDQs IExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAoUlZWTUYyeDRTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVO X0ZQXzMyICYmIFRBUkdFVF9NSU5fVkxFTiA+IDMyLCBSVlZNRjJTRiwgNCwgTE1VTF9GMiwgMzIp CitUVVBMRV9FTlRSWSAoUlZWTUYyeDRTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyICYmIFRB UkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SLCBSVlZNRjJTRiwgNCwg TE1VTF9GMiwgMzIpCiBUVVBMRV9FTlRSWSAoUlZWTTJ4M1NGLCBUQVJHRVRfVkVDVE9SX0VMRU5f RlBfMzIsIFJWVk0yU0YsIDMsIExNVUxfMiwgOCkKIFRVUExFX0VOVFJZIChSVlZNMXgzU0YsIFRB UkdFVF9WRUNUT1JfRUxFTl9GUF8zMiwgUlZWTTFTRiwgMywgTE1VTF8xLCAxNikKLVRVUExFX0VO VFJZIChSVlZNRjJ4M1NGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIgJiYgVEFSR0VUX01JTl9W TEVOID4gMzIsIFJWVk1GMlNGLCAzLCBMTVVMX0YyLCAzMikKK1RVUExFX0VOVFJZIChSVlZNRjJ4 M1NGLCBUQVJHRVRfVkVDVE9SX0VMRU5fRlBfMzIgJiYgVEFSR0VUX01JTl9WTEVOID4gMzIgJiYg IVRBUkdFVF9YVEhFQURWRUNUT1IsIFJWVk1GMlNGLCAzLCBMTVVMX0YyLCAzMikKIFRVUExFX0VO VFJZIChSVlZNNHgyU0YsIFRBUkdFVF9WRUNUT1JfRUxFTl9GUF8zMiwgUlZWTTRTRiwgMiwgTE1V TF80LCA0KQogVFVQTEVfRU5UUlkgKFJWVk0yeDJTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMy LCBSVlZNMlNGLCAyLCBMTVVMXzIsIDgpCiBUVVBMRV9FTlRSWSAoUlZWTTF4MlNGLCBUQVJHRVRf VkVDVE9SX0VMRU5fRlBfMzIsIFJWVk0xU0YsIDIsIExNVUxfMSwgMTYpCi1UVVBMRV9FTlRSWSAo UlZWTUYyeDJTRiwgVEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyICYmIFRBUkdFVF9NSU5fVkxFTiA+ IDMyLCBSVlZNRjJTRiwgMiwgTE1VTF9GMiwgMzIpCitUVVBMRV9FTlRSWSAoUlZWTUYyeDJTRiwg VEFSR0VUX1ZFQ1RPUl9FTEVOX0ZQXzMyICYmIFRBUkdFVF9NSU5fVkxFTiA+IDMyICYmICFUQVJH RVRfWFRIRUFEVkVDVE9SLCBSVlZNRjJTRiwgMiwgTE1VTF9GMiwgMzIpCiAKIFRVUExFX0VOVFJZ IChSVlZNMXg4REksIFRBUkdFVF9WRUNUT1JfRUxFTl82NCwgUlZWTTFESSwgOCwgTE1VTF8xLCAx NikKIFRVUExFX0VOVFJZIChSVlZNMXg3REksIFRBUkdFVF9WRUNUT1JfRUxFTl82NCwgUlZWTTFE SSwgNywgTE1VTF8xLCAxNikKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3YuY2Mg Yi9nY2MvY29uZmlnL3Jpc2N2L3Jpc2N2LmNjCmluZGV4IDhmNzRjZDJlNTAyLi4yOGNmMWY0MTRl OSAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9yaXNjdi9yaXNjdi5jYworKysgYi9nY2MvY29uZmln L3Jpc2N2L3Jpc2N2LmNjCkBAIC0xNDA2LDYgKzE0MDYsOSBAQCByaXNjdl92X2FkanVzdF9ieXRl c2l6ZSAobWFjaGluZV9tb2RlIG1vZGUsIGludCBzY2FsZSkKIHsKwqDCoCBpZiAocmlzY3Zfdl9l eHRfdmVjdG9yX21vZGVfcCAobW9kZSkpCsKgwqDCoMKgIHsKK8KgwqDCoMKgwqAgaWYgKFRBUkdF VF9YVEhFQURWRUNUT1IpCisJcmV0dXJuIEJZVEVTX1BFUl9SSVNDVl9WRUNUT1I7CisKwqDCoMKg wqDCoMKgIHBvbHlfaW50NjQgbnVuaXRzID0gR0VUX01PREVfTlVOSVRTIChtb2RlKTsKwqDCoMKg wqDCoMKgIHBvbHlfaW50NjQgbW9kZV9zaXplID0gR0VUX01PREVfU0laRSAobW9kZSk7CiAKQEAg LTk5OTUsNyArOTk5OCw3IEBAIHJpc2N2X3VzZV9kaXZtb2RfZXhwYW5kZXIgKHZvaWQpCiBzdGF0 aWMgbWFjaGluZV9tb2RlCiByaXNjdl9wcmVmZXJyZWRfc2ltZF9tb2RlIChzY2FsYXJfbW9kZSBt b2RlKQogewotwqAgaWYgKFRBUkdFVF9WRUNUT1IpCivCoCBpZiAoVEFSR0VUX1ZFQ1RPUiAmJiAh VEFSR0VUX1hUSEVBRFZFQ1RPUikKwqDCoMKgwqAgcmV0dXJuIHJpc2N2X3ZlY3Rvcjo6cHJlZmVy cmVkX3NpbWRfbW9kZSAobW9kZSk7CiAKwqDCoCByZXR1cm4gd29yZF9tb2RlOwpAQCAtMTAzNDYs NyArMTAzNDksNyBAQCByaXNjdl9tb2RlX3ByaW9yaXR5IChpbnQsIGludCBuKQogdW5zaWduZWQg aW50CiByaXNjdl9hdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2RlcyAodmVjdG9yX21vZGVzICptb2Rl cywgYm9vbCBhbGwpCiB7Ci3CoCBpZiAoVEFSR0VUX1ZFQ1RPUikKK8KgIGlmIChUQVJHRVRfVkVD VE9SICYmICFUQVJHRVRfWFRIRUFEVkVDVE9SKQrCoMKgwqDCoCByZXR1cm4gcmlzY3ZfdmVjdG9y OjphdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2RlcyAobW9kZXMsIGFsbCk7CiAKwqDCoCByZXR1cm4g ZGVmYXVsdF9hdXRvdmVjdG9yaXplX3ZlY3Rvcl9tb2RlcyAobW9kZXMsIGFsbCk7CkBAIC0xMDUy OSw2ICsxMDUzMiwxNiBAQCBleHRyYWN0X2Jhc2Vfb2Zmc2V0X2luX2FkZHIgKHJ0eCBtZW0sIHJ0 eCAqYmFzZSwgcnR4ICpvZmZzZXQpCsKgwqAgcmV0dXJuIGZhbHNlOwogfQogCisvKiBJbXBsZW1l bnRzIHRhcmdldCBob29rIHZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9hbnlfdGFyZ2V0X3AuwqAgKi8K Kworc3RhdGljIGJvb2wKK3Jpc2N2X3ZlY3Rvcl9tb2RlX3N1cHBvcnRlZF9hbnlfdGFyZ2V0X3Ag KG1hY2hpbmVfbW9kZSBtb2RlKQoreworwqAgaWYgKFRBUkdFVF9YVEhFQURWRUNUT1IpCivCoMKg wqAgcmV0dXJuIGZhbHNlOworwqAgcmV0dXJuIHRydWU7Cit9CisKIC8qIEluaXRpYWxpemUgdGhl IEdDQyB0YXJnZXQgc3RydWN0dXJlLsKgICovCiAjdW5kZWYgVEFSR0VUX0FTTV9BTElHTkVEX0hJ X09QCiAjZGVmaW5lIFRBUkdFVF9BU01fQUxJR05FRF9ISV9PUCAiXHQuaGFsZlx0IgpAQCAtMTA4 NzIsNiArMTA4ODUsOSBAQCBleHRyYWN0X2Jhc2Vfb2Zmc2V0X2luX2FkZHIgKHJ0eCBtZW0sIHJ0 eCAqYmFzZSwgcnR4ICpvZmZzZXQpCiAjdW5kZWYgVEFSR0VUX1BSRUZFUlJFRF9FTFNFX1ZBTFVF CiAjZGVmaW5lIFRBUkdFVF9QUkVGRVJSRURfRUxTRV9WQUxVRSByaXNjdl9wcmVmZXJyZWRfZWxz ZV92YWx1ZQogCisjdW5kZWYgVEFSR0VUX1ZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9BTllfVEFSR0VU X1AKKyNkZWZpbmUgVEFSR0VUX1ZFQ1RPUl9NT0RFX1NVUFBPUlRFRF9BTllfVEFSR0VUX1Agcmlz Y3ZfdmVjdG9yX21vZGVfc3VwcG9ydGVkX2FueV90YXJnZXRfcAorCiBzdHJ1Y3QgZ2NjX3Rhcmdl dCB0YXJnZXRtID0gVEFSR0VUX0lOSVRJQUxJWkVSOwogCiAjaW5jbHVkZSAiZ3QtcmlzY3YuaCIK ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvcmlzY3ZfdGhfdmVjdG9yLmggYi9nY2MvY29u ZmlnL3Jpc2N2L3Jpc2N2X3RoX3ZlY3Rvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iNmI2NzM4YmRkYQotLS0gL2Rldi9udWxsCisrKyBiL2djYy9jb25maWcvcmlz Y3YvcmlzY3ZfdGhfdmVjdG9yLmgKQEAgLTAsMCArMSw0OSBAQAorLyogUklTQy1WICdYVGhlYWRW ZWN0b3InIEV4dGVuc2lvbiBpbnRyaW5zaWNzIGluY2x1ZGUgZmlsZS4KK8KgwqAgQ29weXJpZ2h0 IChDKSAyMDI0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCivCoMKgIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEdDQy4KKworwqDCoCBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorwqDCoCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAorwqDCoCBieSB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91cgor wqDCoCBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCivCoMKgIEdDQyBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAorwqDCoCBB TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFO VEFCSUxJVFkKK8KgwqAgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuwqAgU2Vl IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKK8KgwqAgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor CivCoMKgIFVuZGVyIFNlY3Rpb24gNyBvZiBHUEwgdmVyc2lvbiAzLCB5b3UgYXJlIGdyYW50ZWQg YWRkaXRpb25hbAorwqDCoCBwZXJtaXNzaW9ucyBkZXNjcmliZWQgaW4gdGhlIEdDQyBSdW50aW1l IExpYnJhcnkgRXhjZXB0aW9uLCB2ZXJzaW9uCivCoMKgIDMuMSwgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKK8KgwqAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYW5kCivCoMKgIGEg Y29weSBvZiB0aGUgR0NDIFJ1bnRpbWUgTGlicmFyeSBFeGNlcHRpb24gYWxvbmcgd2l0aCB0aGlz IHByb2dyYW07CivCoMKgIHNlZSB0aGUgZmlsZXMgQ09QWUlORzMgYW5kIENPUFlJTkcuUlVOVElN RSByZXNwZWN0aXZlbHkuwqAgSWYgbm90LCBzZWUKK8KgwqAgPCIgdGFyZ2V0PSJfYmxhbmsiPiIg dGFyZ2V0PSJfYmxhbmsiPiIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LsKgICovCisKKyNpZm5kZWYgX19SSVNDVl9USF9WRUNUT1JfSAorI2RlZmluZSBfX1JJ U0NWX1RIX1ZFQ1RPUl9ICisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRkZWYu aD4KKworI2lmbmRlZiBfX3Jpc2N2X3h0aGVhZHZlY3RvcgorI2Vycm9yICJYVGhlYWRWZWN0b3Ig aW50cmluc2ljcyByZXF1aXJlIHRoZSB4dGhlYWR2ZWN0b3IgZXh0ZW5zaW9uLiIKKyNlbHNlCisj aWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qIE5PVEU6IFRoaXMg aW1wbGVtZW50YXRpb24gb2YgcmlzY3ZfdGhfdmVjdG9yLmggaXMgaW50ZW50aW9uYWxseSBzaG9y dC7CoCBJdCBkb2VzCivCoMKgIG5vdCBkZWZpbmUgdGhlIFJWViB0eXBlcyBhbmQgaW50cmluc2lj IGZ1bmN0aW9ucyBkaXJlY3RseSBpbiBDIGFuZCBDKysKK8KgwqAgY29kZSwgYnV0IGluc3RlYWQg dXNlcyB0aGUgZm9sbG93aW5nIHByYWdtYSB0byB0ZWxsIEdDQyB0byBpbnNlcnQgdGhlCivCoMKg IG5lY2Vzc2FyeSB0eXBlIGFuZCBmdW5jdGlvbiBkZWZpbml0aW9ucyBpdHNlbGYuwqAgVGhlIG5l dCBlZmZlY3QgaXMgdGhlCivCoMKgIHNhbWUsIGFuZCB0aGUgZmlsZSBpcyBhIGNvbXBsZXRlIGlt cGxlbWVudGF0aW9uIG9mIHJpc2N2X3RoX3ZlY3Rvci5oLsKgICovCisjcHJhZ21hIHJpc2N2IGlu dHJpbnNpYyAieHRoZWFkdmVjdG9yIgorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZiAv LyBfX2NwbHVzcGx1cworI2VuZGlmIC8vIF9fcmlzY3ZfeHRoZWFkdmVjdG9yCisjZW5kaWYgLy8g X19SSVNDVl9USF9FQ1RPUl9ICmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLXZl Y3Rvci5tZCBiL2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42OTZiODE1MjUyZAotLS0gL2Rldi9udWxsCisrKyBi L2djYy9jb25maWcvcmlzY3YvdGhlYWQtdmVjdG9yLm1kCkBAIC0wLDAgKzEsMTAyIEBACisoZGVm aW5lX2NfZW51bSAidW5zcGVjIiBbCivCoCBVTlNQRUNfVEhfVldMRFNUCitdKQorCisoZGVmaW5l X21vZGVfaXRlcmF0b3IgVl9WTFNfVlQgW1YgVkxTIFZUXSkKKyhkZWZpbmVfbW9kZV9pdGVyYXRv ciBWX1ZCX1ZMU19WVCBbViBWQiBWTFMgVlRdKQorCisoZGVmaW5lX3NwbGl0CivCoCBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWX1ZCX1ZMU19WVCAwICJyZWdfb3JfbWVtX29wZXJhbmQiKQorCShtYXRj aF9vcGVyYW5kOlZfVkJfVkxTX1ZUIDEgInJlZ19vcl9tZW1fb3BlcmFuZCIpKV0KK8KgICJUQVJH RVRfWFRIRUFEVkVDVE9SIgorwqAgWyhjb25zdF9pbnQgMCldCivCoCB7CivCoMKgwqAgZW1pdF9p bnNuIChnZW5fcHJlZF90aF93aG9sZV9tb3YgKDxNT0RFPm1vZGUsIG9wZXJhbmRzWzBdLCBvcGVy YW5kc1sxXSwKKwkJCQnCoMKgwqDCoMKgIFJWVl9WTE1BWCwgR0VOX0lOVChyaXNjdl92ZWN0b3I6 OlZMTUFYKSkpOworwqDCoMKgIERPTkU7CivCoCB9KQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICJAcHJlZF90aF93aG9sZV9tb3Y8bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWX1ZM U19WVCAwICJyZWdfb3JfbWVtX29wZXJhbmQiwqAgIj12cix2ciwgbSIpCisJKHVuc3BlYzpWX1ZM U19WVAorCcKgIFsobWF0Y2hfb3BlcmFuZDpWX1ZMU19WVCAxICJyZWdfb3JfbWVtX29wZXJhbmQi ICIgdnIsIG0sdnIiKQorCcKgwqAgKG1hdGNoX29wZXJhbmQgMiAidmVjdG9yX2xlbmd0aF9vcGVy YW5kIsKgwqAgIiBySywgckssIHJLIikKKwnCoMKgIChtYXRjaF9vcGVyYW5kIDMgImNvbnN0XzFf b3BlcmFuZCLCoMKgwqDCoMKgwqDCoMKgICLCoCBpLCBpLCBpIikKKwnCoMKgIChyZWc6U0kgVkxf UkVHTlVNKQorCcKgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXQorCVVOU1BFQ19USF9WV0xEU1Qp KV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgIkAKK8KgwqAgdm12LnYudlx0JTAsJTEK K8KgwqAgdmxlLnZcdCUwLCUxCivCoMKgIHZzZS52XHQlMSwlMCIKK8KgICImJiBSRUdfUCAob3Bl cmFuZHNbMF0pICYmIFJFR19QIChvcGVyYW5kc1sxXSkKK8KgwqAgJiYgUkVHTk8gKG9wZXJhbmRz WzBdKSA9PSBSRUdOTyAob3BlcmFuZHNbMV0pIgorwqAgWyhjb25zdF9pbnQgMCldCivCoCAiIgor wqAgWyhzZXRfYXR0ciAidHlwZSIgInZpbW92LHZsZHMsdmxkcyIpCivCoMKgIChzZXRfYXR0ciAi bW9kZSIgIjxNT0RFPiIpCivCoMKgIChzZXQgKGF0dHIgInRhIikgKHN5bWJvbF9yZWYgInJpc2N2 X3ZlY3Rvcjo6VEFJTF9VTkRJU1RVUkJFRCIpKQorwqDCoCAoc2V0IChhdHRyICJtYSIpIChzeW1i b2xfcmVmICJyaXNjdl92ZWN0b3I6Ok1BU0tfVU5ESVNUVVJCRUQiKSkKK8KgwqAgKHNldCAoYXR0 ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCAzKSkKK8KgwqAgKHNldF9hdHRyICJ2bF9vcF9p ZHgiICIyIildKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJAcHJlZF90aF93aG9sZV9tb3Y8 bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWQiAwICJyZWdfb3JfbWVtX29wZXJhbmQi wqAgIj12cix2ciwgbSIpCisJKHVuc3BlYzpWQgorCcKgIFsobWF0Y2hfb3BlcmFuZDpWQiAxICJy ZWdfb3JfbWVtX29wZXJhbmQiICIgdnIsIG0sdnIiKQorCcKgwqAgKG1hdGNoX29wZXJhbmQgMiAi dmVjdG9yX2xlbmd0aF9vcGVyYW5kIsKgwqAgIiBySywgckssIHJLIikKKwnCoMKgIChtYXRjaF9v cGVyYW5kIDMgImNvbnN0XzFfb3BlcmFuZCLCoMKgwqDCoMKgwqDCoMKgICLCoCBpLCBpLCBpIikK KwnCoMKgIChyZWc6U0kgVkxfUkVHTlVNKQorCcKgwqAgKHJlZzpTSSBWVFlQRV9SRUdOVU0pXQor CVVOU1BFQ19USF9WV0xEU1QpKV0KK8KgICJUQVJHRVRfWFRIRUFEVkVDVE9SIgorwqAgIkAKK8Kg wqAgdm12LnYudlx0JTAsJTEKK8KgwqAgdmxlLnZcdCUwLCUxCivCoMKgIHZzZS52XHQlMSwlMCIK K8KgICImJiBSRUdfUCAob3BlcmFuZHNbMF0pICYmIFJFR19QIChvcGVyYW5kc1sxXSkKK8KgwqAg JiYgUkVHTk8gKG9wZXJhbmRzWzBdKSA9PSBSRUdOTyAob3BlcmFuZHNbMV0pIgorwqAgWyhjb25z dF9pbnQgMCldCivCoCAiIgorwqAgWyhzZXRfYXR0ciAidHlwZSIgInZpbW92LHZsZHMsdmxkcyIp CivCoMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCivCoMKgIChzZXQgKGF0dHIgInRhIikg KHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6VEFJTF9VTkRJU1RVUkJFRCIpKQorwqDCoCAoc2V0 IChhdHRyICJtYSIpIChzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6Ok1BU0tfVU5ESVNUVVJCRUQi KSkKK8KgwqAgKHNldCAoYXR0ciAiYXZsX3R5cGVfaWR4IikgKGNvbnN0X2ludCAzKSkKK8KgwqAg KHNldF9hdHRyICJ2bF9vcF9pZHgiICIyIikKK8KgwqAgKHNldCAoYXR0ciAic2V3IikgKGNvbnN0 X2ludCA4KSkKK8KgwqAgKHNldCAoYXR0ciAidmxtdWwiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVj dG9yOjpMTVVMXzEiKSldKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcHJlZF90aF9tb3Y8 bW9kZT4iCivCoCBbKHNldCAobWF0Y2hfb3BlcmFuZDpWQl9WTFMgMCAibm9uaW1tZWRpYXRlX29w ZXJhbmQiwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiPXZyLMKgwqAgbSzCoCB2cizCoCB2 cizCoCB2ciIpCisJKGlmX3RoZW5fZWxzZTpWQl9WTFMKKwnCoCAodW5zcGVjOlZCX1ZMUworCcKg wqDCoCBbKG1hdGNoX29wZXJhbmQ6VkJfVkxTIDEgInZlY3Rvcl9hbGxfdHJ1ZXNfbWFza19vcGVy YW5kIiAiV2MxLCBXYzEsIFdjMSwgV2MxLCBXYzEiKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5k IDQgInZlY3Rvcl9sZW5ndGhfb3BlcmFuZCLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICIgcksswqAg cksswqAgcksswqAgcksswqAgcksiKQorCcKgwqDCoMKgIChtYXRjaF9vcGVyYW5kIDUgImNvbnN0 X2ludF9vcGVyYW5kIsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiwqAgaSzCoMKgIGks wqDCoCBpLMKgwqAgaSzCoMKgIGkiKQorCcKgwqDCoMKgIChyZWc6U0kgVkxfUkVHTlVNKQorCcKg wqDCoMKgIChyZWc6U0kgVlRZUEVfUkVHTlVNKV0gVU5TUEVDX1ZQUkVESUNBVEUpCisJwqAgKG1h dGNoX29wZXJhbmQ6VkJfVkxTIDMgInZlY3Rvcl9tb3ZlX29wZXJhbmQiwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgIsKgIG0swqAgdnIswqAgdnIsIFdjMCwgV2MxIikKKwnCoCAobWF0Y2hfb3Bl cmFuZDpWQl9WTFMgMiAidmVjdG9yX3VuZGVmX29wZXJhbmQiwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICIgdnUswqAgdnUswqAgdnUswqAgdnUswqAgdnUiKSkpXQorwqAgIlRBUkdFVF9YVEhFQURW RUNUT1IiCivCoCAiQAorwqDCoCAjCivCoMKgICMKK8KgwqAgdm1jcHkubVx0JTAsJTMKK8KgwqAg dm1jbHIubVx0JTAKK8KgwqAgdm1zZXQubVx0JTAiCivCoCAiJiYgIXJlbG9hZF9jb21wbGV0ZWQi CivCoCBbKGNvbnN0X2ludCAwKV0KK8KgIHsKK8KgwqDCoCBpZiAoKE1FTV9QIChvcGVyYW5kc1sw XSkgfHwgTUVNX1AgKG9wZXJhbmRzWzNdKSkKK8KgwqDCoMKgwqDCoMKgIHx8IChSRUdfUCAob3Bl cmFuZHNbMF0pICYmIFJFR19QIChvcGVyYW5kc1szXSkKKwnCoMKgwqAgJiYgSU5UVkFMIChvcGVy YW5kc1s1XSkgPT0gcmlzY3ZfdmVjdG9yOjpWTE1BWCkpCivCoMKgwqDCoMKgIHsKKwllbWl0X21v dmVfaW5zbiAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzNdKTsKKwlET05FOworwqDCoMKgwqDCoCB9 CivCoMKgwqAgRkFJTDsKK8KgIH0KK8KgIFsoc2V0X2F0dHIgInR5cGUiICJ2bGRtLHZzdG0sdm1h bHUsdm1hbHUsdm1hbHUiKQorwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKV0pCmRpZmYg LS1naXQgYS9nY2MvY29uZmlnL3Jpc2N2L3RoZWFkLmNjIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVh ZC5jYwppbmRleCAwMGIyZTE0YzZjMC4uY2MwNDEwMWIyNTYgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvcmlzY3YvdGhlYWQuY2MKKysrIGIvZ2NjL2NvbmZpZy9yaXNjdi90aGVhZC5jYwpAQCAtMjcs NiArMjcsNyBAQAogI2luY2x1ZGUgImJhY2tlbmQuaCIKICNpbmNsdWRlICJ0cmVlLmgiCiAjaW5j bHVkZSAicnRsLmgiCisjaW5jbHVkZSAiaW5zbi1hdHRyLmgiCiAjaW5jbHVkZSAiZXhwbG93Lmgi CiAjaW5jbHVkZSAibWVtbW9kZWwuaCIKICNpbmNsdWRlICJlbWl0LXJ0bC5oIgpAQCAtODkwLDgg Kzg5MSwyNiBAQCB0aF9hc21fb3V0cHV0X29wY29kZSAoRklMRSAqYXNtX291dF9maWxlLCBjb25z dCBjaGFyICpwKQogewrCoMKgIC8qIFdlIG5lZWQgdG8gYWRkIHRoLiBwcmVmaXggdG8gYWxsIHRo ZSB4dGhlYWR2ZWN0b3IKwqDCoMKgwqDCoCBpbnN0cnVjdGlvbnMgaGVyZS4qLwotwqAgaWYgKGN1 cnJlbnRfb3V0cHV0X2luc24gIT0gTlVMTCAmJiBwWzBdID09ICd2JykKLcKgwqDCoCBmcHV0cyAo InRoLiIsIGFzbV9vdXRfZmlsZSk7CivCoCBpZiAoY3VycmVudF9vdXRwdXRfaW5zbiAhPSBOVUxM KQorwqDCoMKgIHsKK8KgwqDCoMKgwqAgaWYgKGdldF9hdHRyX3R5cGUgKGN1cnJlbnRfb3V0cHV0 X2luc24pID09IFRZUEVfVlNFVFZMKQorCXsKKwnCoCBpZiAoc3Ryc3RyIChwLCAiemVybyIpKQor CcKgwqDCoCB7CisJwqDCoMKgwqDCoCBpZiAoc3Ryc3RyIChwLCAiemVybyx6ZXJvIikpCisJCXJl dHVybiAidGgudnNldHZsaVx0emVybyx6ZXJvLGUlMCwlbTEiOworCcKgwqDCoMKgwqAgZWxzZQor CQlyZXR1cm4gInRoLnZzZXR2bGlcdHplcm8sJTAsZSUxLCVtMiI7CisJwqDCoMKgIH0KKwnCoCBl bHNlCisJwqDCoMKgIHsKKwnCoMKgwqDCoMKgIHJldHVybiAidGgudnNldHZsaVx0JTAsJTEsZSUy LCVtMyI7CisJwqDCoMKgIH0KKwl9CisKK8KgwqDCoMKgwqAgaWYgKHBbMF0gPT0gJ3YnKQorCWZw dXRzICgidGguIiwgYXNtX291dF9maWxlKTsKK8KgwqDCoCB9CiAKwqDCoCByZXR1cm4gcDsKIH0K ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvcmlzY3YvdmVjdG9yLm1kIGIvZ2NjL2NvbmZpZy9yaXNj di92ZWN0b3IubWQKaW5kZXggMjRiN2I0Mzk0YmUuLjNlYjZkYWFmYmMyIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5tZAorKysgYi9nY2MvY29uZmlnL3Jpc2N2L3ZlY3Rvci5t ZApAQCAtODcsNyArODcsNyBAQAogOzsgY2hlY2suIEhvd2V2ZXIsIHdlIG5lZWQgZGVmYXVsdCB2 YWx1ZSBvZiBTRVcgZm9yIHZzZXR2bCBpbnN0cnVjdGlvbiBzaW5jZSB0aGVyZQogOzsgaXMgbm8g ZmllbGQgZm9yIHJhdGlvIGluIHRoZSB2c2V0dmwgaW5zdHJ1Y3Rpb24gZW5jb2RpbmcuCiAoZGVm aW5lX2F0dHIgInNldyIgIiIKLcKgIChjb25kIFsoZXFfYXR0ciAibW9kZSIgIlJWVk1GNjRCSSxS VlZNRjMyQkksUlZWTUYxNkJJLFJWVk1GOEJJLFJWVk1GNEJJLFJWVk1GMkJJLFJWVk0xQkksXAor wqAgKGNvbmQgWyhlcV9hdHRyICJtb2RlIiAiUlZWTUY4QkksUlZWTUY0QkksUlZWTUYyQkksUlZW TTFCSSxcCiAJCQnCoCBSVlZNOFFJLFJWVk00UUksUlZWTTJRSSxSVlZNMVFJLFJWVk1GMlFJLFJW Vk1GNFFJLFJWVk1GOFFJLFwKIAkJCcKgIFJWVk0xeDhRSSxSVlZNRjJ4OFFJLFJWVk1GNHg4UUks UlZWTUY4eDhRSSxcCiAJCQnCoCBSVlZNMXg3UUksUlZWTUYyeDdRSSxSVlZNRjR4N1FJLFJWVk1G OHg3UUksXApAQCAtOTksNiArOTksMTggQEAKIAkJCcKgIFYxUUksVjJRSSxWNFFJLFY4UUksVjE2 UUksVjMyUUksVjY0UUksVjEyOFFJLFYyNTZRSSxWNTEyUUksVjEwMjRRSSxWMjA0OFFJLFY0MDk2 UUksXAogCQkJwqAgVjFCSSxWMkJJLFY0QkksVjhCSSxWMTZCSSxWMzJCSSxWNjRCSSxWMTI4Qkks VjI1NkJJLFY1MTJCSSxWMTAyNEJJLFYyMDQ4QkksVjQwOTZCSSIpCiAJIChjb25zdF9pbnQgOCkK KwkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjE2QkkiKQorCcKgwqAgKGlmX3RoZW5fZWxzZSAobWF0 Y2hfdGVzdCAiVEFSR0VUX1hUSEVBRFZFQ1RPUiIpCisJwqDCoMKgwqAgKGNvbnN0X2ludCAxNikK KwnCoMKgwqDCoCAoY29uc3RfaW50IDgpKQorCSAoZXFfYXR0ciAibW9kZSIgIlJWVk1GMzJCSSIp CisJwqDCoCAoaWZfdGhlbl9lbHNlIChtYXRjaF90ZXN0ICJUQVJHRVRfWFRIRUFEVkVDVE9SIikK KwnCoMKgwqDCoCAoY29uc3RfaW50IDMyKQorCcKgwqDCoMKgIChjb25zdF9pbnQgOCkpCisJIChl cV9hdHRyICJtb2RlIiAiUlZWTUY2NEJJIikKKwnCoMKgIChpZl90aGVuX2Vsc2UgKG1hdGNoX3Rl c3QgIlRBUkdFVF9YVEhFQURWRUNUT1IiKQorCcKgwqDCoMKgIChjb25zdF9pbnQgNjQpCisJwqDC oMKgwqAgKGNvbnN0X2ludCA4KSkKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNOEhJLFJWVk00SEks UlZWTTJISSxSVlZNMUhJLFJWVk1GMkhJLFJWVk1GNEhJLFwKIAkJCcKgIFJWVk0xeDhISSxSVlZN RjJ4OEhJLFJWVk1GNHg4SEksXAogCQkJwqAgUlZWTTF4N0hJLFJWVk1GMng3SEksUlZWTUY0eDdI SSxcCkBAIC0xNTksOSArMTcxLDkgQEAKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNNFFJLFJWVk1G MkJJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF80IikKIAkgKGVxX2F0dHIgIm1v ZGUiICJSVlZNMlFJLFJWVk1GNEJJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1VTF8y IikKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNMVFJLFJWVk1GOEJJIikgKHN5bWJvbF9yZWYgInJp c2N2X3ZlY3Rvcjo6TE1VTF8xIikKLQkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjJRSSxSVlZNRjE2 QkkiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVjdG9yOjpMTVVMX0YyIikKLQkgKGVxX2F0dHIgIm1v ZGUiICJSVlZNRjRRSSxSVlZNRjMyQkkiKSAoc3ltYm9sX3JlZiAicmlzY3ZfdmVjdG9yOjpMTVVM X0Y0IikKLQkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjhRSSxSVlZNRjY0QkkiKSAoc3ltYm9sX3Jl ZiAicmlzY3ZfdmVjdG9yOjpMTVVMX0Y4IikKKwkgKGVxX2F0dHIgIm1vZGUiICJSVlZNRjJRSSxS VlZNRjE2QkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IHJpc2N2X3ZlY3Rv cjo6TE1VTF8xIDogcmlzY3ZfdmVjdG9yOjpMTVVMX0YyIikKKwkgKGVxX2F0dHIgIm1vZGUiICJS VlZNRjRRSSxSVlZNRjMyQkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hUSEVBRFZFQ1RPUiA/IHJp c2N2X3ZlY3Rvcjo6TE1VTF8xIDogcmlzY3ZfdmVjdG9yOjpMTVVMX0Y0IikKKwkgKGVxX2F0dHIg Im1vZGUiICJSVlZNRjhRSSxSVlZNRjY0QkkiKSAoc3ltYm9sX3JlZiAiVEFSR0VUX1hUSEVBRFZF Q1RPUiA/IHJpc2N2X3ZlY3Rvcjo6TE1VTF8xIDogcmlzY3ZfdmVjdG9yOjpMTVVMX0Y4IikKIAkg KGVxX2F0dHIgIm1vZGUiICJSVlZNOEhJIikgKHN5bWJvbF9yZWYgInJpc2N2X3ZlY3Rvcjo6TE1V TF84IikKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNNEhJIikgKHN5bWJvbF9yZWYgInJpc2N2X3Zl Y3Rvcjo6TE1VTF80IikKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZNMkhJIikgKHN5bWJvbF9yZWYg InJpc2N2X3ZlY3Rvcjo6TE1VTF8yIikKQEAgLTQzNiw2ICs0NDgsMTAgQEAKIAkJCcKgIHZhZXNr ZjEsdmFlc2tmMix2YWVzeix2c2hhMm1zLHZzaGEyY2gsdnNoYTJjbCx2c200ayx2c200cixcCiAJ CQnCoCB2c20zbWUsdnNtM2MiKQogCcKgwqAgKGNvbnN0X2ludCBJTlZBTElEX0FUVFJJQlVURSkK KwkoYW5kIChlcV9hdHRyICJ0eXBlIiAidmxkZSx2c3RlLHZsc2VnZGUsdnNzZWd0ZSx2bHNlZ2Rz LHZzc2VndHMsXAorCQkJwqDCoMKgwqDCoMKgIHZsc2VnZGZmLHZzc2VndHV4LHZsc2VnZG94LHZs c2VnZHV4IikKKwnCoMKgwqDCoMKgIChtYXRjaF90ZXN0ICJUQVJHRVRfWFRIRUFEVkVDVE9SIikp CisJwqDCoCAoY29uc3RfaW50IElOVkFMSURfQVRUUklCVVRFKQogCSAoZXFfYXR0ciAibW9kZSIg IlJWVk04UUksUlZWTTFCSSIpIChjb25zdF9pbnQgMSkKIAkgKGVxX2F0dHIgIm1vZGUiICJSVlZN NFFJLFJWVk1GMkJJIikgKGNvbnN0X2ludCAyKQogCSAoZXFfYXR0ciAibW9kZSIgIlJWVk0yUUks UlZWTUY0QkkiKSAoY29uc3RfaW50IDQpCkBAIC05MDUsNiArOTIxLDggQEAKIAkgKHN5bWJvbF9y ZWYgInJpc2N2X3ZlY3Rvcjo6RlJNX0RZTiIpXQogCShzeW1ib2xfcmVmICJyaXNjdl92ZWN0b3I6 OkZSTV9OT05FIikpKQogCisoaW5jbHVkZSAidGhlYWQtdmVjdG9yLm1kIikKKwogOzsgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIDs7IC0tLS0gTWlzY2VsbGFuZW91cyBPcGVyYXRpb25zCiA7OyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA3 OCw2ICsxMDk2LDEyIEBACsKgwqDCoMKgwqDCoMKgIC0gV2UgY2FuIG5vdCBsZWF2ZSBpdCB0byBU QVJHRVRfU0VDT05EQVJZX1JFTE9BRCBzaW5jZSBpdCBoYXBwZW5zCiAJIGJlZm9yZSBzcGlsbGlu Zy4gVGhlIGNsb2JiZXIgc2NyYXRjaCBpcyB1c2VkIGJ5IHNwaWxsaW5nIGZyYWN0aW9uYWwKIAkg cmVnaXN0ZXJzIGluIElSQS9MUkEgc28gaXQncyB0b28gZWFybHkuwqAgKi8KK8KgIGlmIChUQVJH RVRfWFRIRUFEVkVDVE9SKQorwqDCoMKgIHsKK8KgwqDCoMKgwqAgZW1pdF9pbnNuIChnZW5fcHJl ZF90aF93aG9sZV9tb3YgKDxNT0RFPm1vZGUsIG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwKKwkJ CQkJUlZWX1ZMTUFYLCBHRU5fSU5UKHJpc2N2X3ZlY3Rvcjo6VkxNQVgpKSk7CivCoMKgwqDCoMKg IERPTkU7CivCoMKgwqAgfQogCsKgwqAgaWYgKHJpc2N2X3ZlY3Rvcjo6bGVnaXRpbWl6ZV9tb3Zl IChvcGVyYW5kc1swXSwgJm9wZXJhbmRzWzFdKSkKwqDCoMKgwqAgRE9ORTsKQEAgLTExMTQsNyAr MTEzOCw3IEBACiAoZGVmaW5lX2luc24gIiptb3Y8bW9kZT5fd2hvbGUiCsKgwqAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6Vl9XSE9MRSAwICJyZWdfb3JfbWVtX29wZXJhbmQiICI9dnIsIG0sdnIiKQog CShtYXRjaF9vcGVyYW5kOlZfV0hPTEUgMSAicmVnX29yX21lbV9vcGVyYW5kIiAiwqAgbSx2cix2 ciIpKV0KLcKgICJUQVJHRVRfVkVDVE9SIgorwqAgIlRBUkdFVF9WRUNUT1IgJiYgIVRBUkdFVF9Y VEhFQURWRUNUT1IiCsKgwqAgIkAKwqDCoMKgIHZsJW0xcmU8c2V3Pi52XHQlMCwlMQrCoMKgwqAg dnMlbTFyLnZcdCUxLCUwCkBAIC0xMTM1LDYgKzExNTksMTMgQEAKIAkobWF0Y2hfb3BlcmFuZDpW QiAxICJnZW5lcmFsX29wZXJhbmQiKSldCsKgwqAgIlRBUkdFVF9WRUNUT1IiCiB7CivCoCBpZiAo VEFSR0VUX1hUSEVBRFZFQ1RPUikKK8KgwqDCoCB7CivCoMKgwqDCoMKgIGVtaXRfaW5zbiAoZ2Vu X3ByZWRfdGhfd2hvbGVfbW92ICg8TU9ERT5tb2RlLCBvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0s CisJCQkJCVJWVl9WTE1BWCwgR0VOX0lOVChyaXNjdl92ZWN0b3I6OlZMTUFYKSkpOworwqDCoMKg wqDCoCBET05FOworwqDCoMKgIH0KKwrCoMKgIGlmIChyaXNjdl92ZWN0b3I6OmxlZ2l0aW1pemVf bW92ZSAob3BlcmFuZHNbMF0sICZvcGVyYW5kc1sxXSkpCsKgwqDCoMKgIERPTkU7CiB9KQpAQCAt MTE0Miw3ICsxMTczLDcgQEAKIChkZWZpbmVfaW5zbiAiKm1vdjxtb2RlPiIKwqDCoCBbKHNldCAo bWF0Y2hfb3BlcmFuZDpWQiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXZyIikKIAkobWF0Y2hfb3Bl cmFuZDpWQiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIHZyIikpXQotwqAgIlRBUkdFVF9WRUNUT1Ii CivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZFQ1RPUiIKwqDCoCAidm12MXIu dlx0JTAsJTEiCsKgwqAgWyhzZXRfYXR0ciAidHlwZSIgInZtb3YiKQrCoMKgwqAgKHNldF9hdHRy ICJtb2RlIiAiPE1PREU+IildKQpAQCAtMzY5Miw3ICszNzIzLDcgQEAKIAnCoCAoYW55X2V4dGVu ZDpWV0VYVEkKIAnCoMKgwqAgKG1hdGNoX29wZXJhbmQ6PFZfRE9VQkxFX1RSVU5DPiAzICJyZWdp c3Rlcl9vcGVyYW5kIsKgwqAgIlcyMSxXMjEsVzIxLFcyMSxXNDIsVzQyLFc0MixXNDIsVzg0LFc4 NCxXODQsVzg0LMKgwqAgdnIswqDCoCB2ciIpKQogCcKgIChtYXRjaF9vcGVyYW5kOlZXRVhUSSAy ICJ2ZWN0b3JfbWVyZ2Vfb3BlcmFuZCLCoMKgwqDCoMKgwqDCoMKgwqDCoCAiIHZ1LCB2dSzCoCAw LMKgIDAsIHZ1LCB2dSzCoCAwLMKgIDAsIHZ1LCB2dSzCoCAwLMKgIDAswqDCoCB2dSzCoMKgwqAg MCIpKSldCi3CoCAiVEFSR0VUX1ZFQ1RPUiIKK8KgICJUQVJHRVRfVkVDVE9SICYmICFUQVJHRVRf WFRIRUFEVkVDVE9SIgrCoMKgICJ2PHN6PmV4dC52ZjJcdCUwLCUzJXAxIgrCoMKgIFsoc2V0X2F0 dHIgInR5cGUiICJ2ZXh0IikKwqDCoMKgIChzZXRfYXR0ciAibW9kZSIgIjxNT0RFPiIpCkBAIC0z NzEzLDcgKzM3NDQsNyBAQAogCcKgIChhbnlfZXh0ZW5kOlZRRVhUSQogCcKgwqDCoCAobWF0Y2hf b3BlcmFuZDo8Vl9RVUFEX1RSVU5DPiAzICJyZWdpc3Rlcl9vcGVyYW5kIsKgwqAgIlc0MyxXNDMs VzQzLFc0MyxXODYsVzg2LFc4NixXODYswqDCoCB2cizCoMKgIHZyIikpCiAJwqAgKG1hdGNoX29w ZXJhbmQ6VlFFWFRJIDIgInZlY3Rvcl9tZXJnZV9vcGVyYW5kIsKgwqDCoMKgwqDCoMKgwqAgIiB2 dSwgdnUswqAgMCzCoCAwLCB2dSwgdnUswqAgMCzCoCAwLMKgwqAgdnUswqDCoMKgIDAiKSkpXQot wqAgIlRBUkdFVF9WRUNUT1IiCivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFSR0VUX1hUSEVBRFZF Q1RPUiIKwqDCoCAidjxzej5leHQudmY0XHQlMCwlMyVwMSIKwqDCoCBbKHNldF9hdHRyICJ0eXBl IiAidmV4dCIpCsKgwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQpAQCAtMzczNCw3ICsz NzY1LDcgQEAKIAnCoCAoYW55X2V4dGVuZDpWT0VYVEkKIAnCoMKgwqAgKG1hdGNoX29wZXJhbmQ6 PFZfT0NUX1RSVU5DPiAzICJyZWdpc3Rlcl9vcGVyYW5kIsKgwqAgIlc4NyxXODcsVzg3LFc4NyzC oMKgIHZyLMKgwqAgdnIiKSkKIAnCoCAobWF0Y2hfb3BlcmFuZDpWT0VYVEkgMiAidmVjdG9yX21l cmdlX29wZXJhbmQiwqDCoMKgwqDCoMKgwqAgIiB2dSwgdnUswqAgMCzCoCAwLMKgwqAgdnUswqDC oMKgIDAiKSkpXQotwqAgIlRBUkdFVF9WRUNUT1IiCivCoCAiVEFSR0VUX1ZFQ1RPUiAmJiAhVEFS R0VUX1hUSEVBRFZFQ1RPUiIKwqDCoCAidjxzej5leHQudmY4XHQlMCwlMyVwMSIKwqDCoCBbKHNl dF9hdHRyICJ0eXBlIiAidmV4dCIpCsKgwqDCoCAoc2V0X2F0dHIgIm1vZGUiICI8TU9ERT4iKQpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2L3J2di9iYXNlL2FiaS0x LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvYWJpLTEuYwppbmRl eCAyZTBlMTJhYTA0NS4uMmVlZjllMWUxYTggMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9yaXNjdi9ydnYvYmFzZS9hYmktMS5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9yaXNjdi9ydnYvYmFzZS9hYmktMS5jCkBAIC0xLDQgKzEsNCBAQAotLyogeyBkZy1kbyBj b21waWxlIH0gKi8KKy8qIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCB7ICEgcmlzY3ZfeHRoZWFk dmVjdG9yIH0gfSB9ICovCiAvKiB7IGRnLXNraXAtaWYgInRlc3QgcnZ2IGludHJpbnNpYyIgeyAq LSotKiB9IHsgIioiIH0geyAiLW1hcmNoPXJ2KnYqIiB9IH0gKi8KIAogdm9pZCBmb28wICgpIHtf X3J2dl9ib29sNjRfdCB0O30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9y aXNjdi9ydnYvYmFzZS9wcmFnbWEtMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L3Jpc2N2 L3J2di9iYXNlL3ByYWdtYS0xLmMKaW5kZXggM2Q4MWIxNzkyMzUuLmVmMzI5ZTMwNzg1IDEwMDY0 NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvcHJhZ21hLTEu YworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcmlzY3YvcnZ2L2Jhc2UvcHJhZ21hLTEu YwpAQCAtMSw0ICsxLDQgQEAKIC8qIHsgZGctZG8gY29tcGlsZSB9ICovCiAvKiB7IGRnLW9wdGlv bnMgIi1PMyAtbWFyY2g9cnYzMmdjIC1tYWJpPWlscDMyZCIgfSAqLwogCi0jcHJhZ21hIHJpc2N2 IGludHJpbnNpYyAidmVjdG9yIiAvKiB7IGRnLWVycm9yIHsjcHJhZ21hIHJpc2N2IGludHJpbnNp Yycgb3B0aW9uICd2ZWN0b3InIG5lZWRzICdWJyBleHRlbnNpb24gZW5hYmxlZH0gfSAqLworI3By YWdtYSByaXNjdiBpbnRyaW5zaWMgInZlY3RvciIgLyogeyBkZy1lcnJvciB7I3ByYWdtYSByaXNj diBpbnRyaW5zaWMnIG9wdGlvbiAndmVjdG9yJyBuZWVkcyAnVicgb3IgJ1hUSEVBRFZFQ1RPUicg ZXh0ZW5zaW9uIGVuYWJsZWR9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvbGliL3Rh cmdldC1zdXBwb3J0cy5leHAgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQtc3VwcG9ydHMuZXhw CmluZGV4IGIyN2MzMGI4YzUxLi5iZjBhZDUzNDJkNiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0 ZS9saWIvdGFyZ2V0LXN1cHBvcnRzLmV4cAorKysgYi9nY2MvdGVzdHN1aXRlL2xpYi90YXJnZXQt c3VwcG9ydHMuZXhwCkBAIC0xOTU2LDYgKzE5NTYsMTggQEAgcHJvYyBjaGVja19lZmZlY3RpdmVf dGFyZ2V0X3Jpc2N2X3piYiB7IH0gewrCoMKgwqDCoCB9XQogfQogCisjIFJldHVybiAxIGlmIHRo ZSB0YXJnZXQgYXJjaCBzdXBwb3J0cyB0aGUgWFRoZWFkVmVjdG9yIGV4dGVuc2lvbiwgMCBvdGhl cndpc2UuCisjIENhY2hlIHRoZSByZXN1bHQuCisKK3Byb2MgY2hlY2tfZWZmZWN0aXZlX3Rhcmdl dF9yaXNjdl94dGhlYWR2ZWN0b3IgeyB9IHsKK8KgwqDCoCByZXR1cm4gW2NoZWNrX25vX2NvbXBp bGVyX21lc3NhZ2VzIHJpc2N2X2V4dF94dGhlYWR2ZWN0b3IgYXNzZW1ibHkgeworwqDCoMKgwqDC oMKgICNpZm5kZWYgX19yaXNjdl94dGhlYWR2ZWN0b3IKK8KgwqDCoMKgwqDCoCAjZXJyb3IgIk5v dCBfX3Jpc2N2X3h0aGVhZHZlY3RvciIKK8KgwqDCoMKgwqDCoCAjZW5kaWYKK8KgwqDCoCB9XQor fQorCisKICMgUmV0dXJuIDEgaWYgd2UgY2FuIGV4ZWN1dGUgY29kZSB3aGVuIHVzaW5nIGRnLWFk ZC1vcHRpb25zIHJpc2N2X3YKIAogcHJvYyBjaGVja19lZmZlY3RpdmVfdGFyZ2V0X3Jpc2N2X3Zf b2sgeyB9IHsKLS0gCjIuMTcuMQrCoArCoArCoArCoArCoArCoAoKCg==