Received: (at 48116) by debbugs.gnu.org; 2 May 2021 07:31:21 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun May 02 03:31:21 2021 Received: from localhost ([127.0.0.1]:41161 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1ld6ZV-0000IS-9j for submit <at> debbugs.gnu.org; Sun, 02 May 2021 03:31:21 -0400 Received: from quimby.gnus.org ([95.216.78.240]:55124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <larsi@HIDDEN>) id 1ld6ZT-0000CP-BW for 48116 <at> debbugs.gnu.org; Sun, 02 May 2021 03:31:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-ID :In-Reply-To:Date:References:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=sTeF+PhAv8Yra/bceFeNNGgDZ3tMoS0dw9oU8kVBDmQ=; b=YB2fCEe5zSFz7z6khPfw+rX6h0 SlCLWcGYPiCJzlbMOselStgX09T6BG/6qpOKrdWECbjCnnUTwSfWaWQC1Yc8vGFROe7ay5/pGBHXV zjEKKdPM6MxecJZAZ3flQ1l5+sjmNyCupwk7ZouuQxiEdaIyqDF8DqlvHBNwCpYLCxx8=; Received: from cm-84.212.220.105.getinternet.no ([84.212.220.105] helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <larsi@HIDDEN>) id 1ld6ZI-0003r7-Ut; Sun, 02 May 2021 09:31:11 +0200 From: Lars Ingebrigtsen <larsi@HIDDEN> To: Anatole Dahan <dahan@HIDDEN> Subject: Re: bug#48116: Headers presents but unusable References: <D1AD514B-DF26-4D4B-9D68-1B5E2BED71C4@HIDDEN> X-Now-Playing: Zola Jesus's _New Amsterdam_: "Orthodox" Date: Sun, 02 May 2021 09:31:08 +0200 In-Reply-To: <D1AD514B-DF26-4D4B-9D68-1B5E2BED71C4@HIDDEN> (Anatole Dahan's message of "Fri, 30 Apr 2021 12:30:41 +0200") Message-ID: <87im41k2wz.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see @@CONTACT_ADDRESS@@ for details. Content preview: Anatole Dahan <dahan@HIDDEN> writes: > For context, I am trying to cross-compile native-compilation. I guess > this might not be supported, as libgccjit makes it quite complicated > (I didn’t yet find a way to bypass the smoke test). Content analysis details: (-2.9 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 48116 Cc: 48116 <at> debbugs.gnu.org, Andrea Corallo <akrl@HIDDEN> X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Anatole Dahan <dahan@HIDDEN> writes: > For context, I am trying to cross-compile native-compilation. I guess > this might not be supported, as libgccjit makes it quite complicated > (I didn=E2=80=99t yet find a way to bypass the smoke test). I'm not sure whether this is supposed to be supported yet or not -- I've added Andrea to the CCs. --=20 (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs@HIDDEN
:bug#48116
; Package emacs
.
Full text available.Lars Ingebrigtsen <larsi@HIDDEN>
to control <at> debbugs.gnu.org
.
Full text available.Received: (at submit) by debbugs.gnu.org; 30 Apr 2021 11:34:17 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Fri Apr 30 07:34:16 2021 Received: from localhost ([127.0.0.1]:57612 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1lcRPU-00069c-T8 for submit <at> debbugs.gnu.org; Fri, 30 Apr 2021 07:34:16 -0400 Received: from lists.gnu.org ([209.51.188.17]:48814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <dahan@HIDDEN>) id 1lcQQH-00009J-60 for submit <at> debbugs.gnu.org; Fri, 30 Apr 2021 06:31:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:32778) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <dahan@HIDDEN>) id 1lcQQF-0004vf-O3 for bug-gnu-emacs@HIDDEN; Fri, 30 Apr 2021 06:31:00 -0400 Received: from korolev.univ-paris7.fr ([2001:660:3301:8000::1:2]:46498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <dahan@HIDDEN>) id 1lcQQA-0007AN-Kf for bug-gnu-emacs@HIDDEN; Fri, 30 Apr 2021 06:30:59 -0400 Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 13UAUoSa002553 for <bug-gnu-emacs@HIDDEN>; Fri, 30 Apr 2021 12:30:51 +0200 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id DD2631164DC for <bug-gnu-emacs@HIDDEN>; Fri, 30 Apr 2021 12:30:50 +0200 (CEST) X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id z-ljjZyd3keY for <bug-gnu-emacs@HIDDEN>; Fri, 30 Apr 2021 12:30:44 +0200 (CEST) Received: from [172.20.10.13] (unknown [37.164.16.213]) (Authenticated sender: dahan) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 914591164D3 for <bug-gnu-emacs@HIDDEN>; Fri, 30 Apr 2021 12:30:42 +0200 (CEST) Content-Type: multipart/mixed; boundary=Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Transfer-Encoding: 7bit From: Anatole Dahan <dahan@HIDDEN> Mime-Version: 1.0 (1.0) Date: Fri, 30 Apr 2021 12:30:41 +0200 Subject: Headers presents but unusable Message-Id: <D1AD514B-DF26-4D4B-9D68-1B5E2BED71C4@HIDDEN> To: bug-gnu-emacs@HIDDEN X-Mailer: iPad Mail (18D52) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Fri, 30 Apr 2021 12:30:51 +0200 (CEST) X-Miltered: at korolev with ID 608BDC5A.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 608BDC5A.002 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/<dahan@HIDDEN> Received-SPF: pass client-ip=2001:660:3301:8000::1:2; envelope-from=dahan@HIDDEN; helo=korolev.univ-paris7.fr X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 30 Apr 2021 07:34:15 -0400 X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I have encountered errors while configuring emacs, and I was told to send a b= ug report here. You will find my config.log attached, together with my envir= onment variables. For context, I am trying to cross-compile native-compilation. I guess this m= ight not be supported, as libgccjit makes it quite complicated (I didn=E2=80= =99t yet find a way to bypass the smoke test). I have built the NATIVE libgc= cjit for i586-linux-musl (maybe I am wrong about that ?) Anyway, both sys/inotify.h and libgccjit.h are present, but they are marked a= s missing because they can=E2=80=99t be used (which seems legit, at least fo= r libgccjit, since it is built for native i586-linux-musl). =46rom what I un= derstood, this is considered a bug.=20 Best, =E2=80=94Anatole Dahan --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: application/octet-stream; name=bug_report.tar; x-apple-part-url=D959FF3A-6AF3-473C-A777-0E64B25612D1 Content-Disposition: attachment; filename=bug_report.tar Content-Transfer-Encoding: base64 YnVnX3JlcG9ydC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA3NTUAMDAwMDc2 NQAwMDAwNzY1ADAwMDAwMDAwMDAwADE0MDQyNzU1NjcxADAxMDY0NwAgNQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgADUwMQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAANTAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABi dWdfcmVwb3J0L2NvbmZpZy5sb2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDY0NAAwMDAwNzY1 ADAwMDA3NjUAMDAwMDEwMDExMjQAMTQwNDI3NTQ2NjEAMDEyNjE0ACAwAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHVzdGFyICAANTAxAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAA1MDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRo aXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxl CnJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBh IG1pc3Rha2UuCgpJdCB3YXMgY3JlYXRlZCBieSBHTlUgRW1hY3MgY29uZmlndXJlIDI4LjAuNTAs IHdoaWNoIHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjkuICBJbnZvY2F0aW9uIGNv bW1hbmQgbGluZSB3YXMKCiAgJCAuLi9lbWFjcy9jb25maWd1cmUgLS13aXRoLW5hdGl2ZS1jb21w aWxhdGlvbiAtLXdpdGhvdXQteCAtLWJ1aWxkPWk1ODYtbGludXgtbXVzbCAtLWhvc3Q9eDg2LWdu dS1saW51eAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAjIwojIyAtLS0tLS0tLS0gIyMK Cmhvc3RuYW1lID0gemV0YQp1bmFtZSAtbSA9IHg4Nl82NAp1bmFtZSAtciA9IDQuOS4wLTEyLWFt ZDY0CnVuYW1lIC1zID0gTGludXgKdW5hbWUgLXYgPSAjMSBTTVAgRGViaWFuIDQuOS4yMTAtMSAo MjAyMC0wMS0yMCkKCi91c3IvYmluL3VuYW1lIC1wID0gdW5rbm93bgovYmluL3VuYW1lIC1YICAg ICA9IHVua25vd24KCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSB1bmtub3duCi91c3IvYmluL2Fy Y2ggLWsgICAgICAgPSB1bmtub3duCi91c3IvY29udmV4L2dldHN5c2luZm8gPSB1bmtub3duCi91 c3IvYmluL2hvc3RpbmZvICAgICAgPSB1bmtub3duCi9iaW4vbWFjaGluZSAgICAgICAgICAgPSB1 bmtub3duCi91c3IvYmluL29zbGV2ZWwgICAgICAgPSB1bmtub3duCi9iaW4vdW5pdmVyc2UgICAg ICAgICAgPSB1bmtub3duCgpQQVRIOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2JpbgpQQVRIOiAv aG9tZS9kYWhhbi8ubG9jYWwvYmluClBBVEg6IC9ob21lL2RhaGFuL2xvY2FsL2JpbgpQQVRIOiAv aG9tZS9kYWhhbi8ubG9jYWwvYmluClBBVEg6IC91c3IvbG9jYWwvYmluClBBVEg6IC91c3IvYmlu ClBBVEg6IC9iaW4KUEFUSDogL3Vzci9sb2NhbC9nYW1lcwpQQVRIOiAvdXNyL2dhbWVzCgoKIyMg LS0tLS0tLS0tLS0gIyMKIyMgQ29yZSB0ZXN0cy4gIyMKIyMgLS0tLS0tLS0tLS0gIyMKCmNvbmZp Z3VyZTo0MDI4OiBjaGVja2luZyBmb3IgeGNydW4KY29uZmlndXJlOjQwNTg6IHJlc3VsdDogbm8K Y29uZmlndXJlOjQxMjI6IGNoZWNraW5nIGZvciBHTlUgTWFrZQpjb25maWd1cmU6NDE3MjogcmVz dWx0OiBtYWtlCmNvbmZpZ3VyZTo0MTg2OiBjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZQpjb25m aWd1cmU6NDIwMDogcmVzdWx0OiBpNTg2LXBjLWxpbnV4LW11c2wKY29uZmlndXJlOjQyMjA6IGNo ZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUKY29uZmlndXJlOjQyMzM6IHJlc3VsdDogeDg2LWdudS1s aW51eC1nbnUKY29uZmlndXJlOjUyMzQ6IGNoZWNraW5nIGZvciB4ODYtZ251LWxpbnV4LWdjYwpj b25maWd1cmU6NTI2MTogcmVzdWx0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MKY29uZmlndXJlOjUzMzY6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNp b24KY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtLXZlcnNpb24gPiY1Cmk1ODYtbGludXgtbXVzbC1jYyAoR0NDKSA5LjIuMApDb3B5 cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuClRoaXMgaXMgZnJl ZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJl IGlzIE5PCndhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgoKY29uZmlndXJlOjUzNTY6ICQ/ID0gMApjb25maWd1 cmU6NTM0NTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC12 ID4mNQpVc2luZyBidWlsdC1pbiBzcGVjcy4KQ09MTEVDVF9HQ0M9L2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjCkNPTExFQ1RfTFRPX1dSQVBQRVI9L2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vLi4vbGliZXhlYy9nY2MvaTU4Ni1saW51eC1tdXNsLzkuMi4wL2x0 by13cmFwcGVyClRhcmdldDogaTU4Ni1saW51eC1tdXNsCkNvbmZpZ3VyZWQgd2l0aDogLi4vc3Jj X2djYy9jb25maWd1cmUgLS1lbmFibGUtbGFuZ3VhZ2VzPWMsYysrIC0tZGlzYWJsZS1ib290c3Ry YXAgLS1kaXNhYmxlLWFzc2VtYmx5IC0tZGlzYWJsZS13ZXJyb3IgLS10YXJnZXQ9aTU4Ni1saW51 eC1tdXNsIC0tcHJlZml4PSAtLWxpYmRpcj0vbGliIC0tZGlzYWJsZS1tdWx0aWxpYiAtLXdpdGgt c3lzcm9vdD0vaTU4Ni1saW51eC1tdXNsIC0tZW5hYmxlLXRscyAtLWRpc2FibGUtbGlibXVkZmxh cCAtLWRpc2FibGUtbGlic2FuaXRpemVyIC0tZGlzYWJsZS1nbnUtaW5kaXJlY3QtZnVuY3Rpb24g LS1kaXNhYmxlLWxpYm1weCAtLWVuYWJsZS1saWJzdGRjeHgtdGltZT1ydCAtLXdpdGgtYnVpbGQt c3lzcm9vdD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4Ni1saW51 eC1tdXNsL29ial9zeXNyb290IEFSX0ZPUl9UQVJHRVQ9L2hvbWUvZGFoYW4vbXVzbC1jcm9zcy1t YWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRpbHMvYmludXRpbHMvYXIg QVNfRk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4 Ni1saW51eC1tdXNsL29ial9iaW51dGlscy9nYXMvYXMtbmV3IExEX0ZPUl9UQVJHRVQ9L2hvbWUv ZGFoYW4vbXVzbC1jcm9zcy1tYWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmlu dXRpbHMvbGQvbGQtbmV3IE5NX0ZPUl9UQVJHRVQ9L2hvbWUvZGFoYW4vbXVzbC1jcm9zcy1tYWtl L2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRpbHMvYmludXRpbHMvbm0tbmV3 IE9CSkNPUFlfRk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9j YWwvaTU4Ni1saW51eC1tdXNsL29ial9iaW51dGlscy9iaW51dGlscy9vYmpjb3B5IE9CSkRVTVBf Rk9SX1RBUkdFVD0vaG9tZS9kYWhhbi9tdXNsLWNyb3NzLW1ha2UvYnVpbGQvbG9jYWwvaTU4Ni1s aW51eC1tdXNsL29ial9iaW51dGlscy9iaW51dGlscy9vYmpkdW1wIFJBTkxJQl9GT1JfVEFSR0VU PS9ob21lL2RhaGFuL211c2wtY3Jvc3MtbWFrZS9idWlsZC9sb2NhbC9pNTg2LWxpbnV4LW11c2wv b2JqX2JpbnV0aWxzL2JpbnV0aWxzL3JhbmxpYiBSRUFERUxGX0ZPUl9UQVJHRVQ9L2hvbWUvZGFo YW4vbXVzbC1jcm9zcy1tYWtlL2J1aWxkL2xvY2FsL2k1ODYtbGludXgtbXVzbC9vYmpfYmludXRp bHMvYmludXRpbHMvcmVhZGVsZiBTVFJJUF9GT1JfVEFSR0VUPS9ob21lL2RhaGFuL211c2wtY3Jv c3MtbWFrZS9idWlsZC9sb2NhbC9pNTg2LWxpbnV4LW11c2wvb2JqX2JpbnV0aWxzL2JpbnV0aWxz L3N0cmlwLW5ldyAtLWJ1aWxkPXg4Nl82NC1wYy1saW51eC1nbnUgLS1ob3N0PXg4Nl82NC1wYy1s aW51eC1nbnUKVGhyZWFkIG1vZGVsOiBwb3NpeApnY2MgdmVyc2lvbiA5LjIuMCAoR0NDKSAKY29u ZmlndXJlOjUzNTY6ICQ/ID0gMApjb25maWd1cmU6NTM0NTogL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1WID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9y OiB1bnJlY29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVYnCmk1ODYtbGludXgtbXVzbC1j YzogZmF0YWwgZXJyb3I6IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNv bmZpZ3VyZTo1MzU2OiAkPyA9IDEKY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtcXZlcnNpb24gPiY1Cmk1ODYtbGludXgtbXVzbC1j YzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctcXZlcnNpb24nOyBk aWQgeW91IG1lYW4gJy0tdmVyc2lvbic/Cmk1ODYtbGludXgtbXVzbC1jYzogZmF0YWwgZXJyb3I6 IG5vIGlucHV0IGZpbGVzCmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo1MzU2OiAk PyA9IDEKY29uZmlndXJlOjUzNDU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtdmVyc2lvbiA+JjUKaTU4Ni1saW51eC1tdXNsLWNjOiBlcnJvcjogdW5yZWNv Z25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy12ZXJzaW9uJwppNTg2LWxpbnV4LW11c2wtY2M6 IGZhdGFsIGVycm9yOiBubyBpbnB1dCBmaWxlcwpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25m aWd1cmU6NTM1NjogJD8gPSAxCmNvbmZpZ3VyZTo1Mzc2OiBjaGVja2luZyB3aGV0aGVyIHRoZSBD IGNvbXBpbGVyIHdvcmtzCmNvbmZpZ3VyZTo1Mzk4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jp bi9pNTg2LWxpbnV4LW11c2wtY2MgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vz ci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NTQwMjogJD8gPSAwCmNvbmZp Z3VyZTo1NDUwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTQ1MzogY2hlY2tpbmcgZm9yIEMgY29t cGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTo1NDU1OiByZXN1bHQ6IGEu b3V0CmNvbmZpZ3VyZTo1NDYxOiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNv bmZpZ3VyZTo1NDY4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLW8gY29uZnRlc3QgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6NTQ3MjogJD8gPSAwCmNvbmZpZ3VyZTo1 NDk0OiByZXN1bHQ6IApjb25maWd1cmU6NTUxNjogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jv c3MgY29tcGlsaW5nCmNvbmZpZ3VyZTo1NTU0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTU1OTog Y2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjU1ODE6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAgIGNvbmZ0ZXN0LmMg PiY1CmNvbmZpZ3VyZTo1NTg1OiAkPyA9IDAKY29uZmlndXJlOjU2MDY6IHJlc3VsdDogbwpjb25m aWd1cmU6NTYxMDogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBp bGVyCmNvbmZpZ3VyZTo1NjI5OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWMgICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTYyOTogJD8gPSAwCmNvbmZp Z3VyZTo1NjM4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTY0NzogY2hlY2tpbmcgd2hldGhlciAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgYWNjZXB0cyAtZwpj b25maWd1cmU6NTY2NzogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NTY2NzogJD8gPSAwCmNvbmZpZ3Vy ZTo1NzA4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTcyNTogY2hlY2tpbmcgZm9yIC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyBvcHRpb24gdG8gZW5hYmxlIEMx MSBmZWF0dXJlcwpjb25maWd1cmU6NTkyODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjICAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVk ZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo1OTI4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAj aW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFr ZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVy ciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1Nf XykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHBy aW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAo dm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAo IkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmly c3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQg YnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8 ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQy OTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1 bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nl c3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHBy ZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmln bnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25n IGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkKfCB7Cnwg ICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVk X2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3Vi bGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRp YyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAg Ly8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdo IGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3Ig ZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAq KHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0K fCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92 YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFyZ3M7Cnwg ICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFf Y29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAg aW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9y bWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6 IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8 IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdz X2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1i ZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoK fCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9l bmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8 IC8vIENoZWNrIF9BbGlnbmFzLgp8IGNoYXIgX0FsaWduYXMgKGRvdWJsZSkgYWxpZ25lZF9hc19k b3VibGU7CnwgY2hhciBfQWxpZ25hcyAoMCkgbm9fc3BlY2lhbF9hbGlnbm1lbnQ7CnwgZXh0ZXJu IGNoYXIgYWxpZ25lZF9hc19pbnQ7CnwgY2hhciBfQWxpZ25hcyAoMCkgX0FsaWduYXMgKGludCkg YWxpZ25lZF9hc19pbnQ7CnwgCnwgLy8gQ2hlY2sgX0FsaWdub2YuCnwgZW51bQp8IHsKfCAgIGlu dF9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50KSwKfCAgIGludF9hcnJheV9hbGlnbm1lbnQgPSBf QWxpZ25vZiAoaW50WzEwMF0pLAp8ICAgY2hhcl9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoY2hhcikK fCB9Owp8IF9TdGF0aWNfYXNzZXJ0ICgwIDwgLV9BbGlnbm9mIChpbnQpLCAiX0FsaWdub2YgaXMg c2lnbmVkIik7CnwgCnwgLy8gQ2hlY2sgX05vcmV0dXJuLgp8IGludCBfTm9yZXR1cm4gZG9lc19u b3RfcmV0dXJuICh2b2lkKSB7IGZvciAoOzspIGNvbnRpbnVlOyB9CnwgCnwgLy8gQ2hlY2sgX1N0 YXRpY19hc3NlcnQuCnwgc3RydWN0IHRlc3Rfc3RhdGljX2Fzc2VydAp8IHsKfCAgIGludCB4Owp8 ICAgX1N0YXRpY19hc3NlcnQgKHNpemVvZiAoaW50KSA8PSBzaXplb2YgKGxvbmcgaW50KSwKfCAg ICAgICAgICAgICAgICAgICAiX1N0YXRpY19hc3NlcnQgZG9lcyBub3Qgd29yayBpbiBzdHJ1Y3Qi KTsKfCAgIGxvbmcgaW50IHk7CnwgfTsKfCAKfCAvLyBDaGVjayBVVEYtOCBsaXRlcmFscy4KfCAj ZGVmaW5lIHU4IHN5bnRheCBlcnJvciEKfCBjaGFyIGNvbnN0IHV0ZjhfbGl0ZXJhbFtdID0gdTgi aGFwcGVucyB0byBiZSBBU0NJSSIgImFub3RoZXIgc3RyaW5nIjsKfCAKfCAvLyBDaGVjayBkdXBs aWNhdGUgdHlwZWRlZnMuCnwgdHlwZWRlZiBsb25nICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmcg aW50ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmdfcHRyIGxvbmdfcHRyOwp8IAp8IC8vIEFub255 bW91cyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMgLS0gdGFrZW4gZnJvbSBDMTEgNi43LjIuMSBFeGFt cGxlIDEuCnwgc3RydWN0IGFub255bW91cwp8IHsKfCAgIHVuaW9uIHsKfCAgICAgc3RydWN0IHsg aW50IGk7IGludCBqOyB9Owp8ICAgICBzdHJ1Y3QgeyBpbnQgazsgbG9uZyBpbnQgbDsgfSB3Owp8 ICAgfTsKfCAgIGludCBtOwp8IH0gdjE7CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8v IENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayBy ZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8 ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVy IHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3Zh cmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFy Z3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAg IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1 Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5k YXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkK fCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0 aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0 LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQz LjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNf YXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7 CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVy biAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFy WzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsK fCAKfCAgIHYxLmkgPSAyOwp8ICAgdjEudy5rID0gNTsKfCAgIF9TdGF0aWNfYXNzZXJ0ICgob2Zm c2V0b2YgKHN0cnVjdCBhbm9ueW1vdXMsIGkpCnwgCQkgICA9PSBvZmZzZXRvZiAoc3RydWN0IGFu b255bW91cywgdy5rKSksCnwgCQkgICJBbm9ueW1vdXMgdW5pb24gYWxpZ25tZW50IGJvdGNoIik7 CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo1OTI4OiAvaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLXN0ZD1nbnUxMSAtYyAtZyAtTzIgIGNv bmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2lu Y2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo1OTI4OiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5o Pgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUg PHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNy b3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFrZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmlu ZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVyciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93 bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikg KCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHByaW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2 b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAodm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7Cnwg ICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAoIkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4i LCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmlyc3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7 CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQgYnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwg Ly8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1 NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQyOTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChC SUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNp ZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lm IEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlm Cnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmlnbnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsK fCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3Ry dWN0IGluY29tcGxldGVfYXJyYXkKfCB7CnwgICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0 YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVkX2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNv bnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3VibGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYg Y29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRpYyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAo Y2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAgLy8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3 b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2lu dGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3IgZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAg IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAqKHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBj b250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0KfCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9j b3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4u LikKfCB7CnwgICB2YV9saXN0IGFyZ3M7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAg IHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFfY29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAg IGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAgaW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVt YmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9ybWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgq Zm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAo YXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50 CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdzX2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNh c2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91Ymxl KTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoKfCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2 YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9lbmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIg JiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8IC8vIENoZWNrIF9BbGlnbmFzLgp8IGNoYXIgX0Fs aWduYXMgKGRvdWJsZSkgYWxpZ25lZF9hc19kb3VibGU7CnwgY2hhciBfQWxpZ25hcyAoMCkgbm9f c3BlY2lhbF9hbGlnbm1lbnQ7CnwgZXh0ZXJuIGNoYXIgYWxpZ25lZF9hc19pbnQ7CnwgY2hhciBf QWxpZ25hcyAoMCkgX0FsaWduYXMgKGludCkgYWxpZ25lZF9hc19pbnQ7CnwgCnwgLy8gQ2hlY2sg X0FsaWdub2YuCnwgZW51bQp8IHsKfCAgIGludF9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50KSwK fCAgIGludF9hcnJheV9hbGlnbm1lbnQgPSBfQWxpZ25vZiAoaW50WzEwMF0pLAp8ICAgY2hhcl9h bGlnbm1lbnQgPSBfQWxpZ25vZiAoY2hhcikKfCB9Owp8IF9TdGF0aWNfYXNzZXJ0ICgwIDwgLV9B bGlnbm9mIChpbnQpLCAiX0FsaWdub2YgaXMgc2lnbmVkIik7CnwgCnwgLy8gQ2hlY2sgX05vcmV0 dXJuLgp8IGludCBfTm9yZXR1cm4gZG9lc19ub3RfcmV0dXJuICh2b2lkKSB7IGZvciAoOzspIGNv bnRpbnVlOyB9CnwgCnwgLy8gQ2hlY2sgX1N0YXRpY19hc3NlcnQuCnwgc3RydWN0IHRlc3Rfc3Rh dGljX2Fzc2VydAp8IHsKfCAgIGludCB4Owp8ICAgX1N0YXRpY19hc3NlcnQgKHNpemVvZiAoaW50 KSA8PSBzaXplb2YgKGxvbmcgaW50KSwKfCAgICAgICAgICAgICAgICAgICAiX1N0YXRpY19hc3Nl cnQgZG9lcyBub3Qgd29yayBpbiBzdHJ1Y3QiKTsKfCAgIGxvbmcgaW50IHk7CnwgfTsKfCAKfCAv LyBDaGVjayBVVEYtOCBsaXRlcmFscy4KfCAjZGVmaW5lIHU4IHN5bnRheCBlcnJvciEKfCBjaGFy IGNvbnN0IHV0ZjhfbGl0ZXJhbFtdID0gdTgiaGFwcGVucyB0byBiZSBBU0NJSSIgImFub3RoZXIg c3RyaW5nIjsKfCAKfCAvLyBDaGVjayBkdXBsaWNhdGUgdHlwZWRlZnMuCnwgdHlwZWRlZiBsb25n ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmcgaW50ICpsb25nX3B0cjsKfCB0eXBlZGVmIGxvbmdf cHRyIGxvbmdfcHRyOwp8IAp8IC8vIEFub255bW91cyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMgLS0g dGFrZW4gZnJvbSBDMTEgNi43LjIuMSBFeGFtcGxlIDEuCnwgc3RydWN0IGFub255bW91cwp8IHsK fCAgIHVuaW9uIHsKfCAgICAgc3RydWN0IHsgaW50IGk7IGludCBqOyB9Owp8ICAgICBzdHJ1Y3Qg eyBpbnQgazsgbG9uZyBpbnQgbDsgfSB3Owp8ICAgfTsKfCAgIGludCBtOwp8IH0gdjE7CnwgCnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNz ID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0 ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIg KnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJh cmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwg NjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sg ZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9 CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9m IChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7 CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5p dCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0 cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJl ciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNf YXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQg dmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8 fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJy YXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIHYxLmkgPSAyOwp8ICAgdjEudy5rID0g NTsKfCAgIF9TdGF0aWNfYXNzZXJ0ICgob2Zmc2V0b2YgKHN0cnVjdCBhbm9ueW1vdXMsIGkpCnwg CQkgICA9PSBvZmZzZXRvZiAoc3RydWN0IGFub255bW91cywgdy5rKSksCnwgCQkgICJBbm9ueW1v dXMgdW5pb24gYWxpZ25tZW50IGJvdGNoIik7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTo1OTQ1OiByZXN1bHQ6IHVuc3VwcG9ydGVkCmNvbmZpZ3VyZTo1OTU3OiBjaGVja2lu ZyBmb3IgL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIG9wdGlv biB0byBlbmFibGUgQzk5IGZlYXR1cmVzCmNvbmZpZ3VyZTo2MTA4OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUK SW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6Ci91c3IvaW5jbHVkZS9zdGRsaWIu aDoyNToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBm aWxlIG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUg PHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAj aW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4 YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikg ZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0 cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0 cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3Zh cmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3 ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hv d2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAo eD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25n IGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNk ZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIg PT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAg IHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vs c2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9u ZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNp Z25lZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0 ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAK fCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAq bmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpj Y3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3Qg dGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJ dGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBB bHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25l ZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAg cmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGlj IGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZh X2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdz X2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAq c3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8 ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJ ewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNv bnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIg PSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZs b2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFr Owp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19j b3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYg Zm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwg ICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlm ICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0g dHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwg ICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBm IC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8 IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBs ZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9h cnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8 ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFb aV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBz dHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9 IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsK fCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVy XTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3Jr IGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwg YmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkg IHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJl dHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtc3RkPWdudTk5IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6Ci91c3IvaW5jbHVkZS9zdGRsaWIuaDoy NToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5j bHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1w bGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikgZnBy aW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0cyAo I19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0cyAo I3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFy Z3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3ODsK fCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xp c3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55 LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25nIGxv bmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZp bmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIgPT0g NDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAgIHlv dXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vsc2UK fCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBs b25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25l ZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9h cnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAKfCBz dHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAqbmFt ZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpjY3A7 CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4 dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJdGVy YXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBBbHNv IGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25lZCBp bnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0 dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGljIGJv b2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xp c3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdzX2Nv cHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAqc3Ry ID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8ICAg d2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8 IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNvbnN0 IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIgPSB2 YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZsb2F0 CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8 IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5 KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51 bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBf Qm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0 ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1 ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAv LyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4i LCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8 ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRl X2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJh eSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAg Zm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0g PSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1 Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwi VGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAK fCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsK fCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFy b3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmln bnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8 IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJldHVy biAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtc3RkPWM5OSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEzOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjUgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo2MTA4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRhcmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYu aD4KfCAjaW5jbHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUg PHN0ZGlvLmg+CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBh cmUgdGFrZW4gZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYg KHN0ZGVyciwgX19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZB X0FSR1NfXykKfCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0 KSA6IHByaW50ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21h Y3JvcyAodm9pZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBk ZWJ1ZyAoIkZsYWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChU aGUgZmlyc3QsIHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgIngg aXMgJWQgYnV0IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5 cGVzLgp8ICNkZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJ RzMyIDQyOTQ5NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5 NjcyOTd1bGwgJiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHBy ZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5 b3VyIHByZXByb2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBp bnQgYmlnbnVtID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9u ZyBsb25nIGludCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkK fCB7CnwgICBpbnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0 IG5hbWVkX2luaXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7Cnwg ICBkb3VibGUgYXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8 IHN0YXRpYyBpbmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwg ewp8ICAgLy8gU2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0 aHJvdWdoIGl0ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVj ayBmb3IgZGVjbGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkg PSAwOyAqKHRleHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAw Owp8IH0KfCAKfCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwg dGVzdF92YXJhcmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFy Z3M7CnwgICB2YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8 ICAgdmFfY29weSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIi Owp8ICAgaW50IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxl ICgqZm9ybWF0KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2Fz ZSAncyc6IC8vIHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFy ICopOwp8IAkgIGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJn IChhcmdzX2NvcHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkg IGZudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVm YXVsdDoKfCAJICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7Cnwg ICB2YV9lbmQgKGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7 CnwgfQp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICAvLyBDaGVjayBib29sLgp8ICAgX0Jvb2wg c3VjY2VzcyA9IGZhbHNlOwp8IAp8ICAgLy8gQ2hlY2sgcmVzdHJpY3QuCnwgICBpZiAodGVzdF9y ZXN0cmljdCAoIlN0cmluZyBsaXRlcmFsIikgPT0gMCkKfCAgICAgc3VjY2VzcyA9IHRydWU7Cnwg ICBjaGFyICpyZXN0cmljdCBuZXd2YXIgPSAiQW5vdGhlciBzdHJpbmciOwp8IAp8ICAgLy8gQ2hl Y2sgdmFyYXJncy4KfCAgIHN1Y2Nlc3MgJj0gdGVzdF92YXJhcmdzICgicywgZCcgZiAuIiwgInN0 cmluZyIsIDY1LCAzNC4yMzQpOwp8ICAgdGVzdF92YXJhcmdzX21hY3JvcyAoKTsKfCAKfCAgIC8v IENoZWNrIGZsZXhpYmxlIGFycmF5IG1lbWJlcnMuCnwgICBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJh eSAqaWEgPQp8ICAgICBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGluY29tcGxldGVfYXJyYXkpICsg KHNpemVvZiAoZG91YmxlKSAqIDEwKSk7CnwgICBpYS0+ZGF0YXNpemUgPSAxMDsKfCAgIGZvciAo aW50IGkgPSAwOyBpIDwgaWEtPmRhdGFzaXplOyArK2kpCnwgICAgIGlhLT5kYXRhW2ldID0gaSAq IDEuMjM0Owp8IAp8ICAgLy8gQ2hlY2sgbmFtZWQgaW5pdGlhbGl6ZXJzLgp8ICAgc3RydWN0IG5h bWVkX2luaXQgbmkgPSB7CnwgICAgIC5udW1iZXIgPSAzNCwKfCAgICAgLm5hbWUgPSBMIlRlc3Qg d2lkZSBzdHJpbmciLAp8ICAgICAuYXZlcmFnZSA9IDU0My4zNDM0MywKfCAgIH07CnwgCnwgICBu aS5udW1iZXIgPSA1ODsKfCAKfCAgIGludCBkeW5hbWljX2FycmF5W25pLm51bWJlcl07CnwgICBk eW5hbWljX2FycmF5W25pLm51bWJlciAtIDFdID0gNTQzOwp8IAp8ICAgLy8gd29yayBhcm91bmQg dW51c2VkIHZhcmlhYmxlIHdhcm5pbmdzCnwgICByZXR1cm4gKCFzdWNjZXNzIHx8IGJpZ251bSA9 PSAwTEwgfHwgdWJpZ251bSA9PSAwdUxMIHx8IG5ld3ZhclswXSA9PSAneCcKfCAJICB8fCBkeW5h bWljX2FycmF5W25pLm51bWJlciAtIDFdICE9IDU0Myk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsK fCB9CmNvbmZpZ3VyZTo2MTA4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWM5OSAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cmk1ODYtbGludXgtbXVzbC1j YzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxpbmUgb3B0aW9uICctYzk5Jwpjb25maWd1 cmU6NjEwODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBB Q0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdF X1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZF X1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+ CnwgI2luY2x1ZGUgPHN0ZGJvb2wuaD4KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2luY2x1ZGUg PHN0ZGxpYi5oPgp8ICNpbmNsdWRlIDx3Y2hhci5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8IAp8 IC8vIENoZWNrIHZhcmFyZ3MgbWFjcm9zLiAgVGhlc2UgZXhhbXBsZXMgYXJlIHRha2VuIGZyb20g Qzk5IDYuMTAuMy41Lgp8ICNkZWZpbmUgZGVidWcoLi4uKSBmcHJpbnRmIChzdGRlcnIsIF9fVkFf QVJHU19fKQp8ICNkZWZpbmUgc2hvd2xpc3QoLi4uKSBwdXRzICgjX19WQV9BUkdTX18pCnwgI2Rl ZmluZSByZXBvcnQodGVzdCwuLi4pICgodGVzdCkgPyBwdXRzICgjdGVzdCkgOiBwcmludGYgKF9f VkFfQVJHU19fKSkKfCBzdGF0aWMgdm9pZAp8IHRlc3RfdmFyYXJnc19tYWNyb3MgKHZvaWQpCnwg ewp8ICAgaW50IHggPSAxMjM0Owp8ICAgaW50IHkgPSA1Njc4Owp8ICAgZGVidWcgKCJGbGFnIik7 CnwgICBkZWJ1ZyAoIlggPSAlZFxuIiwgeCk7CnwgICBzaG93bGlzdCAoVGhlIGZpcnN0LCBzZWNv bmQsIGFuZCB0aGlyZCBpdGVtcy4pOwp8ICAgcmVwb3J0ICh4PnksICJ4IGlzICVkIGJ1dCB5IGlz ICVkIiwgeCwgeSk7CnwgfQp8IAp8IC8vIENoZWNrIGxvbmcgbG9uZyB0eXBlcy4KfCAjZGVmaW5l IEJJRzY0IDE4NDQ2NzQ0MDczNzA5NTUxNjE1dWxsCnwgI2RlZmluZSBCSUczMiA0Mjk0OTY3Mjk1 dWwKfCAjZGVmaW5lIEJJR19PSyAoQklHNjQgLyBCSUczMiA9PSA0Mjk0OTY3Mjk3dWxsICYmIEJJ RzY0ICUgQklHMzIgPT0gMCkKfCAjaWYgIUJJR19PSwp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMg YnJva2VuOwp8ICNlbmRpZgp8ICNpZiBCSUdfT0sKfCAjZWxzZQp8ICAgeW91ciBwcmVwcm9jZXNz b3IgaXMgYnJva2VuOwp8ICNlbmRpZgp8IHN0YXRpYyBsb25nIGxvbmcgaW50IGJpZ251bSA9IC05 MjIzMzcyMDM2ODU0Nzc1ODA3TEw7Cnwgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWJp Z251bSA9IEJJRzY0Owp8IAp8IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5Cnwgewp8ICAgaW50IGRh dGFzaXplOwp8ICAgZG91YmxlIGRhdGFbXTsKfCB9Owp8IAp8IHN0cnVjdCBuYW1lZF9pbml0IHsK fCAgIGludCBudW1iZXI7CnwgICBjb25zdCB3Y2hhcl90ICpuYW1lOwp8ICAgZG91YmxlIGF2ZXJh Z2U7CnwgfTsKfCAKfCB0eXBlZGVmIGNvbnN0IGNoYXIgKmNjcDsKfCAKfCBzdGF0aWMgaW5saW5l IGludAp8IHRlc3RfcmVzdHJpY3QgKGNjcCByZXN0cmljdCB0ZXh0KQp8IHsKfCAgIC8vIFNlZSBp ZiBDKystc3R5bGUgY29tbWVudHMgd29yay4KfCAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBpdGVtcyB2 aWEgdGhlIHJlc3RyaWN0ZWQgcG9pbnRlci4KfCAgIC8vIEFsc28gY2hlY2sgZm9yIGRlY2xhcmF0 aW9ucyBpbiBmb3IgbG9vcHMuCnwgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgKih0ZXh0K2kp ICE9ICdcMCc7ICsraSkKfCAgICAgY29udGludWU7CnwgICByZXR1cm4gMDsKfCB9CnwgCnwgLy8g Q2hlY2sgdmFyYXJncyBhbmQgdmFfY29weS4KfCBzdGF0aWMgYm9vbAp8IHRlc3RfdmFyYXJncyAo Y29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCnwgewp8ICAgdmFfbGlzdCBhcmdzOwp8ICAgdmFfc3Rh cnQgKGFyZ3MsIGZvcm1hdCk7CnwgICB2YV9saXN0IGFyZ3NfY29weTsKfCAgIHZhX2NvcHkgKGFy Z3NfY29weSwgYXJncyk7CnwgCnwgICBjb25zdCBjaGFyICpzdHIgPSAiIjsKfCAgIGludCBudW1i ZXIgPSAwOwp8ICAgZmxvYXQgZm51bWJlciA9IDA7CnwgCnwgICB3aGlsZSAoKmZvcm1hdCkKfCAg ICAgewp8ICAgICAgIHN3aXRjaCAoKmZvcm1hdCsrKQp8IAl7CnwgCWNhc2UgJ3MnOiAvLyBzdHJp bmcKfCAJICBzdHIgPSB2YV9hcmcgKGFyZ3NfY29weSwgY29uc3QgY2hhciAqKTsKfCAJICBicmVh azsKfCAJY2FzZSAnZCc6IC8vIGludAp8IAkgIG51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBp bnQpOwp8IAkgIGJyZWFrOwp8IAljYXNlICdmJzogLy8gZmxvYXQKfCAJICBmbnVtYmVyID0gdmFf YXJnIChhcmdzX2NvcHksIGRvdWJsZSk7CnwgCSAgYnJlYWs7CnwgCWRlZmF1bHQ6CnwgCSAgYnJl YWs7CnwgCX0KfCAgICAgfQp8ICAgdmFfZW5kIChhcmdzX2NvcHkpOwp8ICAgdmFfZW5kIChhcmdz KTsKfCAKfCAgIHJldHVybiAqc3RyICYmIG51bWJlciAmJiBmbnVtYmVyOwp8IH0KfCBpbnQKfCBt YWluICgpCnwgewp8IAp8ICAgLy8gQ2hlY2sgYm9vbC4KfCAgIF9Cb29sIHN1Y2Nlc3MgPSBmYWxz ZTsKfCAKfCAgIC8vIENoZWNrIHJlc3RyaWN0Lgp8ICAgaWYgKHRlc3RfcmVzdHJpY3QgKCJTdHJp bmcgbGl0ZXJhbCIpID09IDApCnwgICAgIHN1Y2Nlc3MgPSB0cnVlOwp8ICAgY2hhciAqcmVzdHJp Y3QgbmV3dmFyID0gIkFub3RoZXIgc3RyaW5nIjsKfCAKfCAgIC8vIENoZWNrIHZhcmFyZ3MuCnwg ICBzdWNjZXNzICY9IHRlc3RfdmFyYXJncyAoInMsIGQnIGYgLiIsICJzdHJpbmciLCA2NSwgMzQu MjM0KTsKfCAgIHRlc3RfdmFyYXJnc19tYWNyb3MgKCk7CnwgCnwgICAvLyBDaGVjayBmbGV4aWJs ZSBhcnJheSBtZW1iZXJzLgp8ICAgc3RydWN0IGluY29tcGxldGVfYXJyYXkgKmlhID0KfCAgICAg bWFsbG9jIChzaXplb2YgKHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5KSArIChzaXplb2YgKGRvdWJs ZSkgKiAxMCkpOwp8ICAgaWEtPmRhdGFzaXplID0gMTA7CnwgICBmb3IgKGludCBpID0gMDsgaSA8 IGlhLT5kYXRhc2l6ZTsgKytpKQp8ICAgICBpYS0+ZGF0YVtpXSA9IGkgKiAxLjIzNDsKfCAKfCAg IC8vIENoZWNrIG5hbWVkIGluaXRpYWxpemVycy4KfCAgIHN0cnVjdCBuYW1lZF9pbml0IG5pID0g ewp8ICAgICAubnVtYmVyID0gMzQsCnwgICAgIC5uYW1lID0gTCJUZXN0IHdpZGUgc3RyaW5nIiwK fCAgICAgLmF2ZXJhZ2UgPSA1NDMuMzQzNDMsCnwgICB9Owp8IAp8ICAgbmkubnVtYmVyID0gNTg7 CnwgCnwgICBpbnQgZHluYW1pY19hcnJheVtuaS5udW1iZXJdOwp8ICAgZHluYW1pY19hcnJheVtu aS5udW1iZXIgLSAxXSA9IDU0MzsKfCAKfCAgIC8vIHdvcmsgYXJvdW5kIHVudXNlZCB2YXJpYWJs ZSB3YXJuaW5ncwp8ICAgcmV0dXJuICghc3VjY2VzcyB8fCBiaWdudW0gPT0gMExMIHx8IHViaWdu dW0gPT0gMHVMTCB8fCBuZXd2YXJbMF0gPT0gJ3gnCnwgCSAgfHwgZHluYW1pY19hcnJheVtuaS5u dW1iZXIgLSAxXSAhPSA1NDMpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6 NjEwODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1BQzk5 IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKPGNvbW1hbmQtbGluZT46IGVycm9yOiBtaXNzaW5n ICcoJyBhZnRlciBwcmVkaWNhdGUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTM6 Ci91c3IvaW5jbHVkZS9zdGRsaWIuaDoyNToxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFk ZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNSB8ICNpbmNsdWRlIDxi aXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjYxMDg6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAv KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNpbmNsdWRlIDxz dGRib29sLmg+CnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAj aW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBDaGVjayB2YXJh cmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2LjEwLjMuNS4K fCAjZGVmaW5lIGRlYnVnKC4uLikgZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1NfXykKfCAjZGVm aW5lIHNob3dsaXN0KC4uLikgcHV0cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUgcmVwb3J0KHRl c3QsLi4uKSAoKHRlc3QpID8gcHV0cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FSR1NfXykpCnwg c3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAgIGludCB4ID0g MTIzNDsKfCAgIGludCB5ID0gNTY3ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAgZGVidWcgKCJY ID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBhbmQgdGhpcmQg aXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIsIHgsIHkpOwp8 IH0KfCAKfCAvLyBDaGVjayBsb25nIGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2NCAxODQ0Njc0 NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwgI2RlZmluZSBC SUdfT0sgKEJJRzY0IC8gQklHMzIgPT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAlIEJJRzMyID09 IDApCnwgI2lmICFCSUdfT0sKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsKfCAjZW5k aWYKfCAjaWYgQklHX09LCnwgI2Vsc2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tlbjsK fCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3MjAzNjg1NDc3 NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHViaWdudW0gPSBCSUc2NDsK fCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6ZTsKfCAgIGRv dWJsZSBkYXRhW107CnwgfTsKfCAKfCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBpbnQgbnVtYmVy Owp8ICAgY29uc3Qgd2NoYXJfdCAqbmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8IH07CnwgCnwg dHlwZWRlZiBjb25zdCBjaGFyICpjY3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQKfCB0ZXN0X3Jl c3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysrLXN0eWxlIGNv bW1lbnRzIHdvcmsuCnwgICAvLyBJdGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRoZSByZXN0cmlj dGVkIHBvaW50ZXIuCnwgICAvLyBBbHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMgaW4gZm9yIGxv b3BzLgp8ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAnXDAnOyArK2kp CnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNrIHZhcmFyZ3Mg YW5kIHZhX2NvcHkuCnwgc3RhdGljIGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0IGNoYXIgKmZv cm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChhcmdzLCBmb3Jt YXQpOwp8ICAgdmFfbGlzdCBhcmdzX2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2NvcHksIGFyZ3Mp Owp8IAp8ICAgY29uc3QgY2hhciAqc3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0gMDsKfCAgIGZs b2F0IGZudW1iZXIgPSAwOwp8IAp8ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsKfCAgICAgICBz d2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwgCSAgc3RyID0g dmFfYXJnIChhcmdzX2NvcHksIGNvbnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2Qn OiAvLyBpbnQKfCAJICBudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsKfCAJICBicmVh azsKfCAJY2FzZSAnZic6IC8vIGZsb2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5 LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8IAl9CnwgICAg IH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7CnwgCnwgICByZXR1 cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCAK fCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7CnwgCnwgICAvLyBD aGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxpdGVyYWwiKSA9 PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5ld3ZhciA9ICJB bm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3VjY2VzcyAmPSB0 ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7CnwgICB0ZXN0 X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJyYXkgbWVtYmVy cy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxvYyAoc2l6ZW9m IChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICogMTApKTsKfCAg IGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ZGF0YXNpemU7 ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBDaGVjayBuYW1l ZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAgICAgLm51bWJl ciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAgIC5hdmVyYWdl ID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8ICAgaW50IGR5 bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0g PSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2FybmluZ3MKfCAg IHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09IDB1TEwgfHwg bmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyIC0gMV0gIT0g NTQzKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtRF9TVERDX0M5OT0gLWMgLWcg LU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMzoK L3Vzci9pbmNsdWRlL3N0ZGxpYi5oOjI1OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI1IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NjEwODogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KfCAjaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgp8ICNp bmNsdWRlIDx3Y2hhci5oPgp8ICNpbmNsdWRlIDxzdGRpby5oPgp8IAp8IC8vIENoZWNrIHZhcmFy Z3MgbWFjcm9zLiAgVGhlc2UgZXhhbXBsZXMgYXJlIHRha2VuIGZyb20gQzk5IDYuMTAuMy41Lgp8 ICNkZWZpbmUgZGVidWcoLi4uKSBmcHJpbnRmIChzdGRlcnIsIF9fVkFfQVJHU19fKQp8ICNkZWZp bmUgc2hvd2xpc3QoLi4uKSBwdXRzICgjX19WQV9BUkdTX18pCnwgI2RlZmluZSByZXBvcnQodGVz dCwuLi4pICgodGVzdCkgPyBwdXRzICgjdGVzdCkgOiBwcmludGYgKF9fVkFfQVJHU19fKSkKfCBz dGF0aWMgdm9pZAp8IHRlc3RfdmFyYXJnc19tYWNyb3MgKHZvaWQpCnwgewp8ICAgaW50IHggPSAx MjM0Owp8ICAgaW50IHkgPSA1Njc4Owp8ICAgZGVidWcgKCJGbGFnIik7CnwgICBkZWJ1ZyAoIlgg PSAlZFxuIiwgeCk7CnwgICBzaG93bGlzdCAoVGhlIGZpcnN0LCBzZWNvbmQsIGFuZCB0aGlyZCBp dGVtcy4pOwp8ICAgcmVwb3J0ICh4PnksICJ4IGlzICVkIGJ1dCB5IGlzICVkIiwgeCwgeSk7Cnwg fQp8IAp8IC8vIENoZWNrIGxvbmcgbG9uZyB0eXBlcy4KfCAjZGVmaW5lIEJJRzY0IDE4NDQ2NzQ0 MDczNzA5NTUxNjE1dWxsCnwgI2RlZmluZSBCSUczMiA0Mjk0OTY3Mjk1dWwKfCAjZGVmaW5lIEJJ R19PSyAoQklHNjQgLyBCSUczMiA9PSA0Mjk0OTY3Mjk3dWxsICYmIEJJRzY0ICUgQklHMzIgPT0g MCkKfCAjaWYgIUJJR19PSwp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMgYnJva2VuOwp8ICNlbmRp Zgp8ICNpZiBCSUdfT0sKfCAjZWxzZQp8ICAgeW91ciBwcmVwcm9jZXNzb3IgaXMgYnJva2VuOwp8 ICNlbmRpZgp8IHN0YXRpYyBsb25nIGxvbmcgaW50IGJpZ251bSA9IC05MjIzMzcyMDM2ODU0Nzc1 ODA3TEw7Cnwgc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgdWJpZ251bSA9IEJJRzY0Owp8 IAp8IHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5Cnwgewp8ICAgaW50IGRhdGFzaXplOwp8ICAgZG91 YmxlIGRhdGFbXTsKfCB9Owp8IAp8IHN0cnVjdCBuYW1lZF9pbml0IHsKfCAgIGludCBudW1iZXI7 CnwgICBjb25zdCB3Y2hhcl90ICpuYW1lOwp8ICAgZG91YmxlIGF2ZXJhZ2U7CnwgfTsKfCAKfCB0 eXBlZGVmIGNvbnN0IGNoYXIgKmNjcDsKfCAKfCBzdGF0aWMgaW5saW5lIGludAp8IHRlc3RfcmVz dHJpY3QgKGNjcCByZXN0cmljdCB0ZXh0KQp8IHsKfCAgIC8vIFNlZSBpZiBDKystc3R5bGUgY29t bWVudHMgd29yay4KfCAgIC8vIEl0ZXJhdGUgdGhyb3VnaCBpdGVtcyB2aWEgdGhlIHJlc3RyaWN0 ZWQgcG9pbnRlci4KfCAgIC8vIEFsc28gY2hlY2sgZm9yIGRlY2xhcmF0aW9ucyBpbiBmb3IgbG9v cHMuCnwgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgKih0ZXh0K2kpICE9ICdcMCc7ICsraSkK fCAgICAgY29udGludWU7CnwgICByZXR1cm4gMDsKfCB9CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBh bmQgdmFfY29weS4KfCBzdGF0aWMgYm9vbAp8IHRlc3RfdmFyYXJncyAoY29uc3QgY2hhciAqZm9y bWF0LCAuLi4pCnwgewp8ICAgdmFfbGlzdCBhcmdzOwp8ICAgdmFfc3RhcnQgKGFyZ3MsIGZvcm1h dCk7CnwgICB2YV9saXN0IGFyZ3NfY29weTsKfCAgIHZhX2NvcHkgKGFyZ3NfY29weSwgYXJncyk7 CnwgCnwgICBjb25zdCBjaGFyICpzdHIgPSAiIjsKfCAgIGludCBudW1iZXIgPSAwOwp8ICAgZmxv YXQgZm51bWJlciA9IDA7CnwgCnwgICB3aGlsZSAoKmZvcm1hdCkKfCAgICAgewp8ICAgICAgIHN3 aXRjaCAoKmZvcm1hdCsrKQp8IAl7CnwgCWNhc2UgJ3MnOiAvLyBzdHJpbmcKfCAJICBzdHIgPSB2 YV9hcmcgKGFyZ3NfY29weSwgY29uc3QgY2hhciAqKTsKfCAJICBicmVhazsKfCAJY2FzZSAnZCc6 IC8vIGludAp8IAkgIG51bWJlciA9IHZhX2FyZyAoYXJnc19jb3B5LCBpbnQpOwp8IAkgIGJyZWFr Owp8IAljYXNlICdmJzogLy8gZmxvYXQKfCAJICBmbnVtYmVyID0gdmFfYXJnIChhcmdzX2NvcHks IGRvdWJsZSk7CnwgCSAgYnJlYWs7CnwgCWRlZmF1bHQ6CnwgCSAgYnJlYWs7CnwgCX0KfCAgICAg fQp8ICAgdmFfZW5kIChhcmdzX2NvcHkpOwp8ICAgdmFfZW5kIChhcmdzKTsKfCAKfCAgIHJldHVy biAqc3RyICYmIG51bWJlciAmJiBmbnVtYmVyOwp8IH0KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8 ICAgLy8gQ2hlY2sgYm9vbC4KfCAgIF9Cb29sIHN1Y2Nlc3MgPSBmYWxzZTsKfCAKfCAgIC8vIENo ZWNrIHJlc3RyaWN0Lgp8ICAgaWYgKHRlc3RfcmVzdHJpY3QgKCJTdHJpbmcgbGl0ZXJhbCIpID09 IDApCnwgICAgIHN1Y2Nlc3MgPSB0cnVlOwp8ICAgY2hhciAqcmVzdHJpY3QgbmV3dmFyID0gIkFu b3RoZXIgc3RyaW5nIjsKfCAKfCAgIC8vIENoZWNrIHZhcmFyZ3MuCnwgICBzdWNjZXNzICY9IHRl c3RfdmFyYXJncyAoInMsIGQnIGYgLiIsICJzdHJpbmciLCA2NSwgMzQuMjM0KTsKfCAgIHRlc3Rf dmFyYXJnc19tYWNyb3MgKCk7CnwgCnwgICAvLyBDaGVjayBmbGV4aWJsZSBhcnJheSBtZW1iZXJz Lgp8ICAgc3RydWN0IGluY29tcGxldGVfYXJyYXkgKmlhID0KfCAgICAgbWFsbG9jIChzaXplb2Yg KHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5KSArIChzaXplb2YgKGRvdWJsZSkgKiAxMCkpOwp8ICAg aWEtPmRhdGFzaXplID0gMTA7CnwgICBmb3IgKGludCBpID0gMDsgaSA8IGlhLT5kYXRhc2l6ZTsg KytpKQp8ICAgICBpYS0+ZGF0YVtpXSA9IGkgKiAxLjIzNDsKfCAKfCAgIC8vIENoZWNrIG5hbWVk IGluaXRpYWxpemVycy4KfCAgIHN0cnVjdCBuYW1lZF9pbml0IG5pID0gewp8ICAgICAubnVtYmVy ID0gMzQsCnwgICAgIC5uYW1lID0gTCJUZXN0IHdpZGUgc3RyaW5nIiwKfCAgICAgLmF2ZXJhZ2Ug PSA1NDMuMzQzNDMsCnwgICB9Owp8IAp8ICAgbmkubnVtYmVyID0gNTg7CnwgCnwgICBpbnQgZHlu YW1pY19hcnJheVtuaS5udW1iZXJdOwp8ICAgZHluYW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSA9 IDU0MzsKfCAKfCAgIC8vIHdvcmsgYXJvdW5kIHVudXNlZCB2YXJpYWJsZSB3YXJuaW5ncwp8ICAg cmV0dXJuICghc3VjY2VzcyB8fCBiaWdudW0gPT0gMExMIHx8IHViaWdudW0gPT0gMHVMTCB8fCBu ZXd2YXJbMF0gPT0gJ3gnCnwgCSAgfHwgZHluYW1pY19hcnJheVtuaS5udW1iZXIgLSAxXSAhPSA1 NDMpOwp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NjEwODogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1xbGFuZ2x2bD1leHRjMXggLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9yOiB1bnJlY29n bml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLXFsYW5nbHZsPWV4dGMxeCcKY29uZmlndXJlOjYx MDg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5o ICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwg Imh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVN UEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGFyZy5oPgp8ICNp bmNsdWRlIDxzdGRib29sLmg+CnwgI2luY2x1ZGUgPHN0ZGRlZi5oPgp8ICNpbmNsdWRlIDxzdGRs aWIuaD4KfCAjaW5jbHVkZSA8d2NoYXIuaD4KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAKfCAvLyBD aGVjayB2YXJhcmdzIG1hY3Jvcy4gIFRoZXNlIGV4YW1wbGVzIGFyZSB0YWtlbiBmcm9tIEM5OSA2 LjEwLjMuNS4KfCAjZGVmaW5lIGRlYnVnKC4uLikgZnByaW50ZiAoc3RkZXJyLCBfX1ZBX0FSR1Nf XykKfCAjZGVmaW5lIHNob3dsaXN0KC4uLikgcHV0cyAoI19fVkFfQVJHU19fKQp8ICNkZWZpbmUg cmVwb3J0KHRlc3QsLi4uKSAoKHRlc3QpID8gcHV0cyAoI3Rlc3QpIDogcHJpbnRmIChfX1ZBX0FS R1NfXykpCnwgc3RhdGljIHZvaWQKfCB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICh2b2lkKQp8IHsKfCAg IGludCB4ID0gMTIzNDsKfCAgIGludCB5ID0gNTY3ODsKfCAgIGRlYnVnICgiRmxhZyIpOwp8ICAg ZGVidWcgKCJYID0gJWRcbiIsIHgpOwp8ICAgc2hvd2xpc3QgKFRoZSBmaXJzdCwgc2Vjb25kLCBh bmQgdGhpcmQgaXRlbXMuKTsKfCAgIHJlcG9ydCAoeD55LCAieCBpcyAlZCBidXQgeSBpcyAlZCIs IHgsIHkpOwp8IH0KfCAKfCAvLyBDaGVjayBsb25nIGxvbmcgdHlwZXMuCnwgI2RlZmluZSBCSUc2 NCAxODQ0Njc0NDA3MzcwOTU1MTYxNXVsbAp8ICNkZWZpbmUgQklHMzIgNDI5NDk2NzI5NXVsCnwg I2RlZmluZSBCSUdfT0sgKEJJRzY0IC8gQklHMzIgPT0gNDI5NDk2NzI5N3VsbCAmJiBCSUc2NCAl IEJJRzMyID09IDApCnwgI2lmICFCSUdfT0sKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlzIGJyb2tl bjsKfCAjZW5kaWYKfCAjaWYgQklHX09LCnwgI2Vsc2UKfCAgIHlvdXIgcHJlcHJvY2Vzc29yIGlz IGJyb2tlbjsKfCAjZW5kaWYKfCBzdGF0aWMgbG9uZyBsb25nIGludCBiaWdudW0gPSAtOTIyMzM3 MjAzNjg1NDc3NTgwN0xMOwp8IHN0YXRpYyB1bnNpZ25lZCBsb25nIGxvbmcgaW50IHViaWdudW0g PSBCSUc2NDsKfCAKfCBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheQp8IHsKfCAgIGludCBkYXRhc2l6 ZTsKfCAgIGRvdWJsZSBkYXRhW107CnwgfTsKfCAKfCBzdHJ1Y3QgbmFtZWRfaW5pdCB7CnwgICBp bnQgbnVtYmVyOwp8ICAgY29uc3Qgd2NoYXJfdCAqbmFtZTsKfCAgIGRvdWJsZSBhdmVyYWdlOwp8 IH07CnwgCnwgdHlwZWRlZiBjb25zdCBjaGFyICpjY3A7CnwgCnwgc3RhdGljIGlubGluZSBpbnQK fCB0ZXN0X3Jlc3RyaWN0IChjY3AgcmVzdHJpY3QgdGV4dCkKfCB7CnwgICAvLyBTZWUgaWYgQysr LXN0eWxlIGNvbW1lbnRzIHdvcmsuCnwgICAvLyBJdGVyYXRlIHRocm91Z2ggaXRlbXMgdmlhIHRo ZSByZXN0cmljdGVkIHBvaW50ZXIuCnwgICAvLyBBbHNvIGNoZWNrIGZvciBkZWNsYXJhdGlvbnMg aW4gZm9yIGxvb3BzLgp8ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7ICoodGV4dCtpKSAhPSAn XDAnOyArK2kpCnwgICAgIGNvbnRpbnVlOwp8ICAgcmV0dXJuIDA7CnwgfQp8IAp8IC8vIENoZWNr IHZhcmFyZ3MgYW5kIHZhX2NvcHkuCnwgc3RhdGljIGJvb2wKfCB0ZXN0X3ZhcmFyZ3MgKGNvbnN0 IGNoYXIgKmZvcm1hdCwgLi4uKQp8IHsKfCAgIHZhX2xpc3QgYXJnczsKfCAgIHZhX3N0YXJ0IChh cmdzLCBmb3JtYXQpOwp8ICAgdmFfbGlzdCBhcmdzX2NvcHk7CnwgICB2YV9jb3B5IChhcmdzX2Nv cHksIGFyZ3MpOwp8IAp8ICAgY29uc3QgY2hhciAqc3RyID0gIiI7CnwgICBpbnQgbnVtYmVyID0g MDsKfCAgIGZsb2F0IGZudW1iZXIgPSAwOwp8IAp8ICAgd2hpbGUgKCpmb3JtYXQpCnwgICAgIHsK fCAgICAgICBzd2l0Y2ggKCpmb3JtYXQrKykKfCAJewp8IAljYXNlICdzJzogLy8gc3RyaW5nCnwg CSAgc3RyID0gdmFfYXJnIChhcmdzX2NvcHksIGNvbnN0IGNoYXIgKik7CnwgCSAgYnJlYWs7Cnwg CWNhc2UgJ2QnOiAvLyBpbnQKfCAJICBudW1iZXIgPSB2YV9hcmcgKGFyZ3NfY29weSwgaW50KTsK fCAJICBicmVhazsKfCAJY2FzZSAnZic6IC8vIGZsb2F0CnwgCSAgZm51bWJlciA9IHZhX2FyZyAo YXJnc19jb3B5LCBkb3VibGUpOwp8IAkgIGJyZWFrOwp8IAlkZWZhdWx0Ogp8IAkgIGJyZWFrOwp8 IAl9CnwgICAgIH0KfCAgIHZhX2VuZCAoYXJnc19jb3B5KTsKfCAgIHZhX2VuZCAoYXJncyk7Cnwg CnwgICByZXR1cm4gKnN0ciAmJiBudW1iZXIgJiYgZm51bWJlcjsKfCB9CnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIC8vIENoZWNrIGJvb2wuCnwgICBfQm9vbCBzdWNjZXNzID0gZmFsc2U7Cnwg CnwgICAvLyBDaGVjayByZXN0cmljdC4KfCAgIGlmICh0ZXN0X3Jlc3RyaWN0ICgiU3RyaW5nIGxp dGVyYWwiKSA9PSAwKQp8ICAgICBzdWNjZXNzID0gdHJ1ZTsKfCAgIGNoYXIgKnJlc3RyaWN0IG5l d3ZhciA9ICJBbm90aGVyIHN0cmluZyI7CnwgCnwgICAvLyBDaGVjayB2YXJhcmdzLgp8ICAgc3Vj Y2VzcyAmPSB0ZXN0X3ZhcmFyZ3MgKCJzLCBkJyBmIC4iLCAic3RyaW5nIiwgNjUsIDM0LjIzNCk7 CnwgICB0ZXN0X3ZhcmFyZ3NfbWFjcm9zICgpOwp8IAp8ICAgLy8gQ2hlY2sgZmxleGlibGUgYXJy YXkgbWVtYmVycy4KfCAgIHN0cnVjdCBpbmNvbXBsZXRlX2FycmF5ICppYSA9CnwgICAgIG1hbGxv YyAoc2l6ZW9mIChzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSkgKyAoc2l6ZW9mIChkb3VibGUpICog MTApKTsKfCAgIGlhLT5kYXRhc2l6ZSA9IDEwOwp8ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpYS0+ ZGF0YXNpemU7ICsraSkKfCAgICAgaWEtPmRhdGFbaV0gPSBpICogMS4yMzQ7CnwgCnwgICAvLyBD aGVjayBuYW1lZCBpbml0aWFsaXplcnMuCnwgICBzdHJ1Y3QgbmFtZWRfaW5pdCBuaSA9IHsKfCAg ICAgLm51bWJlciA9IDM0LAp8ICAgICAubmFtZSA9IEwiVGVzdCB3aWRlIHN0cmluZyIsCnwgICAg IC5hdmVyYWdlID0gNTQzLjM0MzQzLAp8ICAgfTsKfCAKfCAgIG5pLm51bWJlciA9IDU4Owp8IAp8 ICAgaW50IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVyXTsKfCAgIGR5bmFtaWNfYXJyYXlbbmkubnVt YmVyIC0gMV0gPSA1NDM7CnwgCnwgICAvLyB3b3JrIGFyb3VuZCB1bnVzZWQgdmFyaWFibGUgd2Fy bmluZ3MKfCAgIHJldHVybiAoIXN1Y2Nlc3MgfHwgYmlnbnVtID09IDBMTCB8fCB1YmlnbnVtID09 IDB1TEwgfHwgbmV3dmFyWzBdID09ICd4Jwp8IAkgIHx8IGR5bmFtaWNfYXJyYXlbbmkubnVtYmVy IC0gMV0gIT0gNTQzKTsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjYxMDg6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtcWxhbmdsdmw9 ZXh0Yzk5IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKaTU4Ni1saW51eC1tdXNsLWNjOiBlcnJv cjogdW5yZWNvZ25pemVkIGNvbW1hbmQgbGluZSBvcHRpb24gJy1xbGFuZ2x2bD1leHRjOTknCmNv bmZpZ3VyZTo2MTA4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRh cmcuaD4KfCAjaW5jbHVkZSA8c3RkYm9vbC5oPgp8ICNpbmNsdWRlIDxzdGRkZWYuaD4KfCAjaW5j bHVkZSA8c3RkbGliLmg+CnwgI2luY2x1ZGUgPHdjaGFyLmg+CnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgCnwgLy8gQ2hlY2sgdmFyYXJncyBtYWNyb3MuICBUaGVzZSBleGFtcGxlcyBhcmUgdGFrZW4g ZnJvbSBDOTkgNi4xMC4zLjUuCnwgI2RlZmluZSBkZWJ1ZyguLi4pIGZwcmludGYgKHN0ZGVyciwg X19WQV9BUkdTX18pCnwgI2RlZmluZSBzaG93bGlzdCguLi4pIHB1dHMgKCNfX1ZBX0FSR1NfXykK fCAjZGVmaW5lIHJlcG9ydCh0ZXN0LC4uLikgKCh0ZXN0KSA/IHB1dHMgKCN0ZXN0KSA6IHByaW50 ZiAoX19WQV9BUkdTX18pKQp8IHN0YXRpYyB2b2lkCnwgdGVzdF92YXJhcmdzX21hY3JvcyAodm9p ZCkKfCB7CnwgICBpbnQgeCA9IDEyMzQ7CnwgICBpbnQgeSA9IDU2Nzg7CnwgICBkZWJ1ZyAoIkZs YWciKTsKfCAgIGRlYnVnICgiWCA9ICVkXG4iLCB4KTsKfCAgIHNob3dsaXN0IChUaGUgZmlyc3Qs IHNlY29uZCwgYW5kIHRoaXJkIGl0ZW1zLik7CnwgICByZXBvcnQgKHg+eSwgInggaXMgJWQgYnV0 IHkgaXMgJWQiLCB4LCB5KTsKfCB9CnwgCnwgLy8gQ2hlY2sgbG9uZyBsb25nIHR5cGVzLgp8ICNk ZWZpbmUgQklHNjQgMTg0NDY3NDQwNzM3MDk1NTE2MTV1bGwKfCAjZGVmaW5lIEJJRzMyIDQyOTQ5 NjcyOTV1bAp8ICNkZWZpbmUgQklHX09LIChCSUc2NCAvIEJJRzMyID09IDQyOTQ5NjcyOTd1bGwg JiYgQklHNjQgJSBCSUczMiA9PSAwKQp8ICNpZiAhQklHX09LCnwgICB5b3VyIHByZXByb2Nlc3Nv ciBpcyBicm9rZW47CnwgI2VuZGlmCnwgI2lmIEJJR19PSwp8ICNlbHNlCnwgICB5b3VyIHByZXBy b2Nlc3NvciBpcyBicm9rZW47CnwgI2VuZGlmCnwgc3RhdGljIGxvbmcgbG9uZyBpbnQgYmlnbnVt ID0gLTkyMjMzNzIwMzY4NTQ3NzU4MDdMTDsKfCBzdGF0aWMgdW5zaWduZWQgbG9uZyBsb25nIGlu dCB1YmlnbnVtID0gQklHNjQ7CnwgCnwgc3RydWN0IGluY29tcGxldGVfYXJyYXkKfCB7CnwgICBp bnQgZGF0YXNpemU7CnwgICBkb3VibGUgZGF0YVtdOwp8IH07CnwgCnwgc3RydWN0IG5hbWVkX2lu aXQgewp8ICAgaW50IG51bWJlcjsKfCAgIGNvbnN0IHdjaGFyX3QgKm5hbWU7CnwgICBkb3VibGUg YXZlcmFnZTsKfCB9Owp8IAp8IHR5cGVkZWYgY29uc3QgY2hhciAqY2NwOwp8IAp8IHN0YXRpYyBp bmxpbmUgaW50CnwgdGVzdF9yZXN0cmljdCAoY2NwIHJlc3RyaWN0IHRleHQpCnwgewp8ICAgLy8g U2VlIGlmIEMrKy1zdHlsZSBjb21tZW50cyB3b3JrLgp8ICAgLy8gSXRlcmF0ZSB0aHJvdWdoIGl0 ZW1zIHZpYSB0aGUgcmVzdHJpY3RlZCBwb2ludGVyLgp8ICAgLy8gQWxzbyBjaGVjayBmb3IgZGVj bGFyYXRpb25zIGluIGZvciBsb29wcy4KfCAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyAqKHRl eHQraSkgIT0gJ1wwJzsgKytpKQp8ICAgICBjb250aW51ZTsKfCAgIHJldHVybiAwOwp8IH0KfCAK fCAvLyBDaGVjayB2YXJhcmdzIGFuZCB2YV9jb3B5Lgp8IHN0YXRpYyBib29sCnwgdGVzdF92YXJh cmdzIChjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKfCB7CnwgICB2YV9saXN0IGFyZ3M7CnwgICB2 YV9zdGFydCAoYXJncywgZm9ybWF0KTsKfCAgIHZhX2xpc3QgYXJnc19jb3B5Owp8ICAgdmFfY29w eSAoYXJnc19jb3B5LCBhcmdzKTsKfCAKfCAgIGNvbnN0IGNoYXIgKnN0ciA9ICIiOwp8ICAgaW50 IG51bWJlciA9IDA7CnwgICBmbG9hdCBmbnVtYmVyID0gMDsKfCAKfCAgIHdoaWxlICgqZm9ybWF0 KQp8ICAgICB7CnwgICAgICAgc3dpdGNoICgqZm9ybWF0KyspCnwgCXsKfCAJY2FzZSAncyc6IC8v IHN0cmluZwp8IAkgIHN0ciA9IHZhX2FyZyAoYXJnc19jb3B5LCBjb25zdCBjaGFyICopOwp8IAkg IGJyZWFrOwp8IAljYXNlICdkJzogLy8gaW50CnwgCSAgbnVtYmVyID0gdmFfYXJnIChhcmdzX2Nv cHksIGludCk7CnwgCSAgYnJlYWs7CnwgCWNhc2UgJ2YnOiAvLyBmbG9hdAp8IAkgIGZudW1iZXIg PSB2YV9hcmcgKGFyZ3NfY29weSwgZG91YmxlKTsKfCAJICBicmVhazsKfCAJZGVmYXVsdDoKfCAJ ICBicmVhazsKfCAJfQp8ICAgICB9CnwgICB2YV9lbmQgKGFyZ3NfY29weSk7CnwgICB2YV9lbmQg KGFyZ3MpOwp8IAp8ICAgcmV0dXJuICpzdHIgJiYgbnVtYmVyICYmIGZudW1iZXI7CnwgfQp8IGlu dAp8IG1haW4gKCkKfCB7CnwgCnwgICAvLyBDaGVjayBib29sLgp8ICAgX0Jvb2wgc3VjY2VzcyA9 IGZhbHNlOwp8IAp8ICAgLy8gQ2hlY2sgcmVzdHJpY3QuCnwgICBpZiAodGVzdF9yZXN0cmljdCAo IlN0cmluZyBsaXRlcmFsIikgPT0gMCkKfCAgICAgc3VjY2VzcyA9IHRydWU7CnwgICBjaGFyICpy ZXN0cmljdCBuZXd2YXIgPSAiQW5vdGhlciBzdHJpbmciOwp8IAp8ICAgLy8gQ2hlY2sgdmFyYXJn cy4KfCAgIHN1Y2Nlc3MgJj0gdGVzdF92YXJhcmdzICgicywgZCcgZiAuIiwgInN0cmluZyIsIDY1 LCAzNC4yMzQpOwp8ICAgdGVzdF92YXJhcmdzX21hY3JvcyAoKTsKfCAKfCAgIC8vIENoZWNrIGZs ZXhpYmxlIGFycmF5IG1lbWJlcnMuCnwgICBzdHJ1Y3QgaW5jb21wbGV0ZV9hcnJheSAqaWEgPQp8 ICAgICBtYWxsb2MgKHNpemVvZiAoc3RydWN0IGluY29tcGxldGVfYXJyYXkpICsgKHNpemVvZiAo ZG91YmxlKSAqIDEwKSk7CnwgICBpYS0+ZGF0YXNpemUgPSAxMDsKfCAgIGZvciAoaW50IGkgPSAw OyBpIDwgaWEtPmRhdGFzaXplOyArK2kpCnwgICAgIGlhLT5kYXRhW2ldID0gaSAqIDEuMjM0Owp8 IAp8ICAgLy8gQ2hlY2sgbmFtZWQgaW5pdGlhbGl6ZXJzLgp8ICAgc3RydWN0IG5hbWVkX2luaXQg bmkgPSB7CnwgICAgIC5udW1iZXIgPSAzNCwKfCAgICAgLm5hbWUgPSBMIlRlc3Qgd2lkZSBzdHJp bmciLAp8ICAgICAuYXZlcmFnZSA9IDU0My4zNDM0MywKfCAgIH07CnwgCnwgICBuaS5udW1iZXIg PSA1ODsKfCAKfCAgIGludCBkeW5hbWljX2FycmF5W25pLm51bWJlcl07CnwgICBkeW5hbWljX2Fy cmF5W25pLm51bWJlciAtIDFdID0gNTQzOwp8IAp8ICAgLy8gd29yayBhcm91bmQgdW51c2VkIHZh cmlhYmxlIHdhcm5pbmdzCnwgICByZXR1cm4gKCFzdWNjZXNzIHx8IGJpZ251bSA9PSAwTEwgfHwg dWJpZ251bSA9PSAwdUxMIHx8IG5ld3ZhclswXSA9PSAneCcKfCAJICB8fCBkeW5hbWljX2FycmF5 W25pLm51bWJlciAtIDFdICE9IDU0Myk7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTo2MTI1OiByZXN1bHQ6IHVuc3VwcG9ydGVkCmNvbmZpZ3VyZTo2MTUwOiBjaGVja2luZyB3 aGV0aGVyIHRoZSBjb21waWxlciBpcyBjbGFuZwpjb25maWd1cmU6NjE3MTogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjYxNzE6ICQ/ID0gMApjb25maWd1cmU6NjE3OTogcmVzdWx0OiBubwpjb25m aWd1cmU6NjE4MzogY2hlY2tpbmcgZm9yIGNvbXBpbGVyIG9wdGlvbiBuZWVkZWQgd2hlbiBjaGVj a2luZyBmb3IgZGVjbGFyYXRpb25zCmNvbmZpZ3VyZTo2MjE0OiByZXN1bHQ6IG5vbmUKY29uZmln dXJlOjYyNzU6IGNoZWNraW5nIHdoZXRoZXIgL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIGFuZCBjYyB1bmRlcnN0YW5kIC1jIGFuZCAtbyB0b2dldGhlcgpjb25m aWd1cmU6NjMwNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1jIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QyLm8gPiY1CmNvbmZpZ3VyZTo2MzEwOiAkPyA9IDAK Y29uZmlndXJlOjYzMTY6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVz bC1jYyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Mi5vID4mNQpjb25maWd1cmU6NjMyMDogJD8g PSAwCmNvbmZpZ3VyZTo2MzMxOiBjYyAtYyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjMzNTog JD8gPSAwCmNvbmZpZ3VyZTo2MzQzOiBjYyAtYyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0Mi5vID4m NQpjb25maWd1cmU6NjM0NzogJD8gPSAwCmNvbmZpZ3VyZTo2MzUzOiBjYyAtYyBjb25mdGVzdC5j IC1vIGNvbmZ0ZXN0Mi5vID4mNQpjb25maWd1cmU6NjM1NzogJD8gPSAwCmNvbmZpZ3VyZTo2Mzc1 OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NjQxMjogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBw cmVwcm9jZXNzb3IKY29uZmlndXJlOjY0NDM6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtRSAgY29uZnRlc3QuYwpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMToKL3Vzci9pbmNsdWRlL2xpbWl0cy5oOjI2OjEwOiBmYXRhbCBlcnJvcjogYml0 cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI2IHwg I2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6 NjQ0MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZkZWYgX19TVERDX18KfCAjIGlu Y2x1ZGUgPGxpbWl0cy5oPgp8ICNlbHNlCnwgIyBpbmNsdWRlIDxhc3NlcnQuaD4KfCAjZW5kaWYK fCAJCSAgICAgU3ludGF4IGVycm9yCmNvbmZpZ3VyZTo2NDQzOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLUUgIGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGNvbmZ0ZXN0LmM6MTE6Ci91c3IvaW5jbHVkZS9saW1pdHMuaDoyNjoxMDogZmF0YWwg ZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQogICAyNiB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4K Y29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9fU1RE Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBlcnJvcgpjb25maWd1cmU6NjQ0MzogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1FIC10cmFkaXRpb25hbC1jcHAg IGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5jbHVkZS9hc3NlcnQuaDoz NiwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MTQ6Ci91c3IvaW5jbHVkZS9mZWF0 dXJlcy5oOjQyNToyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICA0MjUgfCAjIGVuZGlmCiAgICAgIHwgIF5+fn5+fiAgICAgICAKY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBw cm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdO VSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNz IDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUu b3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUv ZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5j bHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBlcnJvcgpjb25maWd1cmU6 NjQ0MzogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1FIC10 cmFkaXRpb25hbC1jcHAgIGNvbmZ0ZXN0LmMKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC91c3IvaW5j bHVkZS9hc3NlcnQuaDozNiwKICAgICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MTQ6Ci91 c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyNToyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjUgfCAjIGVuZGlmCiAgICAgIHwgIF5+fn5+fiAg ICAgICAKY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY0NDM6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4K fCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCQkgICAgIFN5bnRheCBl cnJvcgpjb25maWd1cmU6NjQ0MzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjY0NDM6 ICQ/ID0gMApjb25maWd1cmU6NjQ1NzogL2xpYi9jcHAgIGNvbmZ0ZXN0LmMKY29uZnRlc3QuYzox MDoxMDogZmF0YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NDU3OiAkPyA9IDEKY29u ZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9T VFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1 Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5n bnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5k IGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25maWd1cmU6 NjQ4MjogcmVzdWx0OiAvbGliL2NwcApjb25maWd1cmU6NjUwMjogL2xpYi9jcHAgIGNvbmZ0ZXN0 LmMKY29uZmlndXJlOjY1MDI6ICQ/ID0gMApjb25maWd1cmU6NjUxNjogL2xpYi9jcHAgIGNvbmZ0 ZXN0LmMKY29uZnRlc3QuYzoxMDoxMDogZmF0YWwgZXJyb3I6IGFjX25vbmV4aXN0ZW50Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgogICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZTo2NTE2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgpjb25maWd1cmU6NjU0NTogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxv bmcgbGluZXMgYW5kIC1lCmNvbmZpZ3VyZTo2NjAzOiByZXN1bHQ6IC9iaW4vZ3JlcApjb25maWd1 cmU6NjYwODogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTo2NjcwOiByZXN1bHQ6IC9iaW4v Z3JlcCAtRQpjb25maWd1cmU6NjY3NTogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMK Y29uZmlndXJlOjY2OTU6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVz bC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25m dGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkbGliLmg6MjU6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjUgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 Njk1OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRsaWIuaD4KfCAj aW5jbHVkZSA8c3RkYXJnLmg+CnwgI2luY2x1ZGUgPHN0cmluZy5oPgp8ICNpbmNsdWRlIDxmbG9h dC5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZTo2Nzc5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3Igc3lz L3R5cGVzLmgKY29uZmlndXJlOjY3OTI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJy b3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog ICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjY3OTI6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlv Lmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+Cnwg IyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMg IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllf SAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4K fCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CmNvbmZpZ3VyZTo2NzkyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6 Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6 Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njc5MjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg U1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVt b3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNs dWRlIDxzeXMvc3RhdC5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5 MjogY2hlY2tpbmcgZm9yIHN0ZGxpYi5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN0ZGxpYi5oPgpjb25maWd1 cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIHN0cmluZy5o CmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPHN0cmluZy5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25m aWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIG1lbW9yeS5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRl L3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRl ci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBm YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O QU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdO VSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1h Y3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3Nv ZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZz LmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwg IyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9I CnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMK fCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAj IGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVS UyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVu ZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdT X0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBF U19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElO VF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERf SAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPG1lbW9yeS5o Pgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9y IHN0cmluZ3MuaApjb25maWd1cmU6Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBl cnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5 CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpj b25maWd1cmU6Njc5MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzdHJpbmdzLmg+CmNvbmZpZ3VyZTo2NzkyOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2NzkyOiBjaGVja2luZyBmb3IgaW50dHlwZXMuaApjb25maWd1cmU6 Njc5MjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1n IC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6 Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRl ci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njc5MjogJD8gPSAx CmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVm aW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJl bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU ICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9T WVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg U1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5o Pgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+ CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5l ZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVt b3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNs dWRlIDxpbnR0eXBlcy5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5 MjogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN0ZGludC5oPgpjb25maWd1 cmU6Njc5MjogcmVzdWx0OiBubwpjb25maWd1cmU6Njc5MjogY2hlY2tpbmcgZm9yIHVuaXN0ZC5o CmNvbmZpZ3VyZTo2NzkyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 NzkyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPHVuaXN0ZC5oPgpjb25maWd1cmU6Njc5MjogcmVzdWx0OiBubwpjb25m aWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHdjaGFyLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUv c3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVy LXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gK fCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5U X0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8d2NoYXIuaD4K Y29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBt aW5peC9jb25maWcuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxtaW5peC9jb25maWcuaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBsaW51eC9mcy5oCmNv bmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRl c3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5j bHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEw OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAq Lwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RB Uk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9C VUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBF UiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRl ZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8 c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxz dGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlm ICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNs dWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZp Z3VyZTo2ODEwOiBjaGVja2luZyBmb3IgbWFsbG9jLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUv c3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVy LXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29t cGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMu aC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gK fCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8 ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMg aWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5k aWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1Nf SAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5U X0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9I CnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jLmg+ CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Ig c3lzL3N5c3RlbWluZm8uaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9i aW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBp bmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBm YXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAg fCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5h dGVkLgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxzeXMvc3lzdGVtaW5mby5oPgpjb25maWd1 cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9zeXNp bmZvLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6 IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAy NyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KY29uZmlndXJlOjY4MTA6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBjb2ZmLmgKY29uZmlndXJlOjY4MTA6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNy L2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3Rh cnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8 Y29mZi5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHB0eS5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxz dGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3Rh dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5o Pgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gK fCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVN T1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJp bmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmlu Z3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRp bnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3Rk Lmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHB0eS5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0 OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9yZXNvdXJjZS5oCmNvbmZpZ3Vy ZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMg LWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzox MDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8 Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2lu Y2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1 cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy91dHNuYW1lLmgKY29uZmlndXJlOjY4MTA6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1 ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3V0 c25hbWUuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBwd2QuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxwd2QuaD4KY29uZmlndXJlOjY4MTA6IHJlc3Vs dDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciB1dG1wLmgKY29uZmlndXJlOjY4MTA6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIg IGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNy L2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3Rh cnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xp YmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQg Y29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZ UEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZ U19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENf SEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAj ZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg ZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1RE Q19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5o Pgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhB VkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8 dXRtcC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHV0aWwuaApjb25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4v aTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6NjgxMDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8 c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0 YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50 dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0 ZC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDx1dGlsLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1 bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc2FuaXRpemVyL2xzYW5faW50ZXJm YWNlLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJv bSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6 IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAy NyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAKfCAjaW5jbHVkZSA8c2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmg+CmNvbmZpZ3Vy ZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3NvY2tl dC5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20g Y29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBi aXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcg fCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3Vy ZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNL QUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8 ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0Vf VVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVf UERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8 ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu ZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDog bm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6NjgxMDog cmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3Vy ZTo2ODEwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3BhcmFt LmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBj b25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJp dHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8 ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJl OjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVm cy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9V UkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9Q RFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+Cnwg I2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2Vu ZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNs dWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8 ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMg IGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5k aWYKfCAKfCAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3IgcHRocmVhZC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHB0 aHJlYWQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBtYWxsb2MvbWFsbG9jLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bWFsbG9jL21hbGxvYy5oPgpj b25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5 cy91bi5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZy b20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9y OiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAg MjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZp Z3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tB R0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhB VkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy91bi5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBu bwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGRpcmVudC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGRp cmVudC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIGV4ZWNpbmZvLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDog ZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAg IHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8ZXhlY2luZm8uaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzdGRpb19leHQuaApj b25maWd1cmU6NjgxMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjIC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0 ZXN0LmM6MTA6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9s aWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2lu Y2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6Njgx MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZk ZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYK fCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUg PHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8 c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBp ZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5j bHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8 IAp8ICNpbmNsdWRlIDxzdGRpb19leHQuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29u ZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBzeXMvdmZzLmgKY29uZmlndXJlOjY4MTA6IC9ob21l L2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0 ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1 ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVh ZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K Y29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRl ZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gK fCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFU X0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVS Uwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8 ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYK fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFE RVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMg ZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZ UEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RE SU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNU RF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3Zm cy5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcg Zm9yIHN5cy9mc190eXBlcy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxl IGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3 YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUw Igp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIK fCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs dWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMv dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxz eXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RE TElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhB VkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRl IDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUg PHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRl IDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRl IDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8 dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9mc190eXBlcy5oPgpjb25maWd1 cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGdldG9wdC5o CmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29u ZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAj aW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2 ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJM ICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERV TVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNp ZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRp Zgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVk ZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRl IDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAj IGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBp bmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5k aWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlm CnwgCnwgI2luY2x1ZGUgPGdldG9wdC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25m aWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9jZGVmcy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25m dGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNs dWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6 IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhl YWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJl OiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FH RV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUt ZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3Jn L3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5cy9j ZGVmcy5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tp bmcgZm9yIHN5cy90aW1lLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDog ZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAg IHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWlu YXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdh czoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIK fCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJ T04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNk ZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8 ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KY29uZmlndXJlOjY4 MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNraW5nIGZvciBpZWVlNzU0LmgKY29u ZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVz dC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNs dWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6 ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS TkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JV R1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0 dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVS IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAK fCAjaW5jbHVkZSA8aWVlZTc1NC5oPgpjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1 cmU6NjgxMDogY2hlY2tpbmcgZm9yIGxpbWl0cy5oCmNvbmZpZ3VyZTo2ODEwOiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVzdC5j ID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9pbmNsdWRlL3N0 ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1z dGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBp bGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmlndXJlOiBmYWls ZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1F ICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUg UEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBF bWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBp bmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwg IyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAj IGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlm ZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2Vu ZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAm JiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlm CnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gK fCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19I CnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9I CnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8 ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPGxpbWl0cy5oPgpj b25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIGlu dHR5cGVzLmgKY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNoZWNr aW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6 NjgxMDogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo2ODEwOiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo2ODEwOiBjaGVja2luZyBmb3Igc3lzL3NlbGVjdC5oCmNvbmZpZ3VyZTo2ODEwOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoxMDoKL3Vzci9p bmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0 Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJj LWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo2ODEwOiAkPyA9IDEKY29uZmln dXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFD S0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ TkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1n bnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUu b3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgLyogZW5kIGNv bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBF U19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNf U1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hF QURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vs c2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVu ZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENf SEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4K fCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T VFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9J TlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF X1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9V TklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgCnwgI2luY2x1ZGUgPHN5 cy9zZWxlY3QuaD4KY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4MTA6IGNo ZWNraW5nIGZvciBzeXMvcmFuZG9tLmgKY29uZmlndXJlOjY4MTA6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEwOgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjY4MTA6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8c3lzL3JhbmRvbS5oPgpjb25m aWd1cmU6NjgxMDogcmVzdWx0OiBubwpjb25maWd1cmU6NjgxMDogY2hlY2tpbmcgZm9yIHN5cy9z dGF0LmgKY29uZmlndXJlOjY4MTA6IHJlc3VsdDogbm8KY29uZmlndXJlOjY4Mjk6IGNoZWNraW5n IHdoZXRoZXIgaXQgaXMgc2FmZSB0byBkZWZpbmUgX19FWFRFTlNJT05TX18KY29uZmlndXJlOjY4 NDc6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAt TzIgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjEyOgov dXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjY4NDc6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAvKiBl bmQgY29uZmRlZnMuaC4gICovCnwgCnwgIyAgICAgICAgIGRlZmluZSBfX0VYVEVOU0lPTlNfXyAx CnwgICAgICAgICAgICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19I CnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RB VF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURF UlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UK fCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlm CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVB REVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAj IGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJ TkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRU WVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU RElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklT VERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsK fCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjY4NTQ6IHJlc3VsdDogbm8KY29u ZmlndXJlOjY4NTc6IGNoZWNraW5nIHdoZXRoZXIgX1hPUEVOX1NPVVJDRSBzaG91bGQgYmUgZGVm aW5lZApjb25maWd1cmU6NjkwMjogcmVzdWx0OiBubwpjb25maWd1cmU6Njk3MDogY2hlY2tpbmcg Zm9yIE1pbml4IEFtc3RlcmRhbSBjb21waWxlcgpjb25maWd1cmU6Njk5NDogcmVzdWx0OiBubwpj b25maWd1cmU6NzAxMTogY2hlY2tpbmcgZm9yIHg4Ni1nbnUtbGludXgtYXIKY29uZmlndXJlOjcw NDE6IHJlc3VsdDogbm8KY29uZmlndXJlOjcwNTE6IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6 NzA2NzogZm91bmQgL3Vzci9iaW4vYXIKY29uZmlndXJlOjcwNzg6IHJlc3VsdDogYXIKY29uZmln dXJlOjcwOTA6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhv c3QgdHJpcGxldApjb25maWd1cmU6NzExMzogY2hlY2tpbmcgZm9yIHg4Ni1nbnUtbGludXgtcmFu bGliCmNvbmZpZ3VyZTo3MTQzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo3MTUzOiBjaGVja2luZyBm b3IgcmFubGliCmNvbmZpZ3VyZTo3MTY5OiBmb3VuZCAvdXNyL2Jpbi9yYW5saWIKY29uZmlndXJl OjcxODA6IHJlc3VsdDogcmFubGliCmNvbmZpZ3VyZTo3MjQyOiBjaGVja2luZyBmb3Igc3BlY2lh bCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxlcwpjb25maWd1cmU6NzI4 NzogcmVzdWx0OiBubwpjb25maWd1cmU6NzI5MzogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9C SVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJlOjczMTg6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZyAtTzIgIGNvbmZ0ZXN0 LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2k1ODYt bGludXgtbXVzbC9pbmNsdWRlL3N5cy90eXBlcy5oOjcsCiAgICAgICAgICAgICAgICAgZnJvbSBj b25mdGVzdC5jOjI1OgovdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDo0MjQ6MTI6IGZhdGFsIGVycm9y OiBzeXMvY2RlZnMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogIDQyNCB8ICMgIGluY2x1 ZGUgPHN5cy9jZGVmcy5oPgogICAgICB8ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgpjb21waWxh dGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6NzMxODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg IC8qIENoZWNrIHRoYXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8 ICAgICBXZSBjYW4ndCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4 NTQ3NzU4MDcsCnwgICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMg QyBjb21waWxlcnMKfCAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcu ICAqLwp8ICNkZWZpbmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSAr ICgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9P RkZfVCAlIDIxNDc0ODM2MjkgPT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJH RV9PRkZfVCAlIDIxNDc0ODM2NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDog LTFdOwp8IGludAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp Z3VyZTo3MzQyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LWMgLWcgLU8yICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAogICAg ICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzoyNjoKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6 NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjczNDI6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2RlZmlu ZSBfRklMRV9PRkZTRVRfQklUUyA2NAp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAgLyogQ2hl Y2sgdGhhdCBvZmZfdCBjYW4gcmVwcmVzZW50IDIqKjYzIC0gMSBjb3JyZWN0bHkuCnwgICAgIFdl IGNhbid0IHNpbXBseSBkZWZpbmUgTEFSR0VfT0ZGX1QgdG8gYmUgOTIyMzM3MjAzNjg1NDc3NTgw NywKfCAgICAgc2luY2Ugc29tZSBDKysgY29tcGlsZXJzIG1hc3F1ZXJhZGluZyBhcyBDIGNvbXBp bGVycwp8ICAgICBpbmNvcnJlY3RseSByZWplY3QgOTIyMzM3MjAzNjg1NDc3NTgwNy4gICovCnwg I2RlZmluZSBMQVJHRV9PRkZfVCAoKChvZmZfdCkgMSA8PCAzMSA8PCAzMSkgLSAxICsgKChvZmZf dCkgMSA8PCAzMSA8PCAzMSkpCnwgICBpbnQgb2ZmX3RfaXNfbGFyZ2VbKExBUkdFX09GRl9UICUg MjE0NzQ4MzYyOSA9PSA3MjEKfCAgICAgICAgICAgICAgICAgICAgICAgICYmIExBUkdFX09GRl9U ICUgMjE0NzQ4MzY0NyA9PSAxKQp8ICAgICAgICAgICAgICAgICAgICAgICA/IDEgOiAtMV07Cnwg aW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjcz NTA6IHJlc3VsdDogdW5rbm93bgpjb25maWd1cmU6NzM2MjogY2hlY2tpbmcgZm9yIF9MQVJHRV9G SUxFUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3VyZTo3Mzg3OiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWcgLU8yICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2 LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAogICAgICAgICAgICAgICAgIGZyb20g Y29uZnRlc3QuYzoyNToKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJv cjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNs dWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGls YXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjczODc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg IkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQ QUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVt YWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0Bn bnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNF IDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhS RUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09V UkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8 ICAvKiBDaGVjayB0aGF0IG9mZl90IGNhbiByZXByZXNlbnQgMioqNjMgLSAxIGNvcnJlY3RseS4K fCAgICAgV2UgY2FuJ3Qgc2ltcGx5IGRlZmluZSBMQVJHRV9PRkZfVCB0byBiZSA5MjIzMzcyMDM2 ODU0Nzc1ODA3LAp8ICAgICBzaW5jZSBzb21lIEMrKyBjb21waWxlcnMgbWFzcXVlcmFkaW5nIGFz IEMgY29tcGlsZXJzCnwgICAgIGluY29ycmVjdGx5IHJlamVjdCA5MjIzMzcyMDM2ODU0Nzc1ODA3 LiAgKi8KfCAjZGVmaW5lIExBUkdFX09GRl9UICgoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSAtIDEg KyAoKG9mZl90KSAxIDw8IDMxIDw8IDMxKSkKfCAgIGludCBvZmZfdF9pc19sYXJnZVsoTEFSR0Vf T0ZGX1QgJSAyMTQ3NDgzNjI5ID09IDcyMQp8ICAgICAgICAgICAgICAgICAgICAgICAgJiYgTEFS R0VfT0ZGX1QgJSAyMTQ3NDgzNjQ3ID09IDEpCnwgICAgICAgICAgICAgICAgICAgICAgID8gMSA6 IC0xXTsKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6NzQxMTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1jIC1nIC1PMiAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvaTU4Ni1saW51eC1tdXNsL2luY2x1ZGUvc3lzL3R5cGVzLmg6NywKICAg ICAgICAgICAgICAgICBmcm9tIGNvbmZ0ZXN0LmM6MjY6Ci91c3IvaW5jbHVkZS9mZWF0dXJlcy5o OjQyNDoxMjogZmF0YWwgZXJyb3I6IHN5cy9jZGVmcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgNDI0IHwgIyAgaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiAgICAgIHwgICAgICAgICAgICBe fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZTo3NDExOiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNkZWZp bmUgX0xBUkdFX0ZJTEVTIDEKfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgIC8qIENoZWNrIHRo YXQgb2ZmX3QgY2FuIHJlcHJlc2VudCAyKio2MyAtIDEgY29ycmVjdGx5Lgp8ICAgICBXZSBjYW4n dCBzaW1wbHkgZGVmaW5lIExBUkdFX09GRl9UIHRvIGJlIDkyMjMzNzIwMzY4NTQ3NzU4MDcsCnwg ICAgIHNpbmNlIHNvbWUgQysrIGNvbXBpbGVycyBtYXNxdWVyYWRpbmcgYXMgQyBjb21waWxlcnMK fCAgICAgaW5jb3JyZWN0bHkgcmVqZWN0IDkyMjMzNzIwMzY4NTQ3NzU4MDcuICAqLwp8ICNkZWZp bmUgTEFSR0VfT0ZGX1QgKCgob2ZmX3QpIDEgPDwgMzEgPDwgMzEpIC0gMSArICgob2ZmX3QpIDEg PDwgMzEgPDwgMzEpKQp8ICAgaW50IG9mZl90X2lzX2xhcmdlWyhMQVJHRV9PRkZfVCAlIDIxNDc0 ODM2MjkgPT0gNzIxCnwgICAgICAgICAgICAgICAgICAgICAgICAmJiBMQVJHRV9PRkZfVCAlIDIx NDc0ODM2NDcgPT0gMSkKfCAgICAgICAgICAgICAgICAgICAgICAgPyAxIDogLTFdOwp8IGludAp8 IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3NDE5OiBy ZXN1bHQ6IHVua25vd24KY29uZmlndXJlOjc2MTA6IGNoZWNraW5nIHdoZXRoZXIgL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIGFjY2VwdHMgLWczIC1PMgpjb25m aWd1cmU6NzYyNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNj IC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNy L2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo3NjI2OiAkPyA9IDAKY29uZmln dXJlOjc2MzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo3NzIzOiAvbGliL2NwcCAgY29uZnRlc3Qu Ywpjb25maWd1cmU6NzcyMzogJD8gPSAwCmNvbmZpZ3VyZTo3NzQ1OiBjaGVja2luZyB3aGV0aGVy IHRoZSBjb21waWxlciBpcyBjbGFuZwpjb25maWd1cmU6Nzc2NTogL2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZ0ZXN0LmM6Mjc6MTI6IGVycm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAn X19hdHRyaWJ1dGVfXycgYmVmb3JlIHN0cmluZyBjb25zdGFudAogICAyNyB8ICAgICAgZXJyb3Ig Im5vdCBjbGFuZyI7CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+fn5+fgpjb25maWd1cmU6Nzc2 NTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9U QVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0Vf QlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAi aHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1Q RVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAx CnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VU X0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VS Q0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNT X18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K fCAKfCAJICAjaWZuZGVmIF9fY2xhbmdfXwp8IAkgICAgZXJyb3IgIm5vdCBjbGFuZyI7CnwgCSAg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K Y29uZmlndXJlOjc3NzI6IHJlc3VsdDogbm8KY29uZmlndXJlOjc3ODY6IGNoZWNraW5nIHdoZXRo ZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZXJyb3IgLVd1bmtub3duLXdhcm5pbmctb3B0aW9uCmNv bmZpZ3VyZTo3ODA1OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdlcnJvciAtV3Vua25vd24td2FybmluZy1vcHRpb24g IC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3Qu YyAgPiY1Cmk1ODYtbGludXgtbXVzbC1jYzogZXJyb3I6IHVucmVjb2duaXplZCBjb21tYW5kIGxp bmUgb3B0aW9uICctV3Vua25vd24td2FybmluZy1vcHRpb24nCmNvbmZpZ3VyZTo3ODA1OiAkPyA9 IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNk ZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUg ImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFD S0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczov L3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwg I2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVm aW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEK fCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwg I2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IGlu dAp8IG1haW4gKCkKfCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo3ODE1 OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo4MDY4OiBjaGVja2luZyB3aGV0aGVyIC1Xbm8tbWlzc2lu Zy1maWVsZC1pbml0aWFsaXplcnMgaXMgc3VwcG9ydGVkCmNvbmZpZ3VyZTo4MDg2OiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAtV2V4dHJh IC1XZXJyb3IgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjgwODY6ICQ/ID0gMApjb25maWd1cmU6ODA5NTogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgwOTk6IGNoZWNraW5nIHdoZXRoZXIgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVy cyBpcyBuZWVkZWQKY29uZmlndXJlOjgxMjM6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yIC1XZXh0cmEgLVdlcnJvciAgY29uZnRlc3QuYyA+ JjUKY29uZmlndXJlOjgxMjM6ICQ/ID0gMApjb25maWd1cmU6ODEzMjogcmVzdWx0OiBubwpjb25m aWd1cmU6ODEzNjogY2hlY2tpbmcgd2hldGhlciAtV3VuaW5pdGlhbGl6ZWQgaXMgc3VwcG9ydGVk CmNvbmZpZ3VyZTo4MTU0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWczIC1PMiAtV2Vycm9yIC1XdW5pbml0aWFsaXplZCAgY29uZnRlc3QuYyA+JjUK Y29uZmlndXJlOjgxNTQ6ICQ/ID0gMApjb25maWd1cmU6ODE2MzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1mbm8tY29tbW9u CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLWZuby1jb21tb24gIC1ML2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4 MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBj aGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2FsbApjb25maWd1cmU6ODMyMjog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0 IC1nMyAtTzIgIC1XYWxsICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4 MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBp bGVyIGhhbmRsZXMgLVdhcml0aC1jb252ZXJzaW9uCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAg LVdhcml0aC1jb252ZXJzaW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9s aWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQppNTg2LWxpbnV4LW11c2wtY2M6IGVycm9yOiB1bnJl Y29nbml6ZWQgY29tbWFuZCBsaW5lIG9wdGlvbiAnLVdhcml0aC1jb252ZXJzaW9uJzsgZGlkIHlv dSBtZWFuICctV2ludC1jb252ZXJzaW9uJz8KY29uZmlndXJlOjgzMjI6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjgzMzM6IHJlc3VsdDog bm8KY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1X ZGF0ZS10aW1lCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdkYXRlLXRpbWUgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2Rpc2FibGVkLW9w dGltaXphdGlvbgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XZGlzYWJsZWQtb3B0aW1pemF0 aW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0 ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6 IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMg LVdkb3VibGUtcHJvbW90aW9uCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdkb3VibGUtcHJv bW90aW9uICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVdkdXBsaWNhdGVkLWNvbmQKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2R1cGxpY2F0 ZWQtY29uZCAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBj b25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVz dWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5k bGVzIC1XZXh0cmEKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1 ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2V4dHJhICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtc2lnbmVk bmVzcwpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XZm9ybWF0LXNpZ25lZG5lc3MgIC1ML2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1 CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZp Z3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2luaXQtc2Vs Zgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XaW5pdC1zZWxmICAtTC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzog Y2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbnZhbGlkLXBjaApjb25maWd1 cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgIC1XaW52YWxpZC1wY2ggIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAk PyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2lu ZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2xvZ2ljYWwtb3AKY29uZmlndXJlOjgzMjI6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVz dCAtZzMgLU8yICAtV2xvZ2ljYWwtb3AgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV21pc3NpbmctZGVjbGFyYXRpb25zCmNvbmZpZ3VyZTo4MzIy OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRl c3QgLWczIC1PMiAgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAgLUwvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6 ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNr aW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbWlzc2luZy1pbmNsdWRlLWRpcnMKY29u ZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV21pc3NpbmctaW5jbHVkZS1kaXJzICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdtaXNzaW5nLXByb3Rv dHlwZXMKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV21pc3NpbmctcHJvdG90eXBlcyAgLUwv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+ JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XbmVzdGVk LWV4dGVybnMKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV25lc3RlZC1leHRlcm5zICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdudWxsLWRl cmVmZXJlbmNlCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdudWxsLWRlcmVmZXJlbmNlICAt TC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMg ID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpj b25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvbGQt c3R5bGUtZGVmaW5pdGlvbgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9i aW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xb2xkLXN0eWxlLWRl ZmluaXRpb24gIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIg Y29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6IEluIGZ1bmN0aW9uICdtYWluJzoKY29uZnRlc3Qu YzoyNzoxOiB3YXJuaW5nOiBvbGQtc3R5bGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBbLVdvbGQtc3R5 bGUtZGVmaW5pdGlvbl0KICAgMjcgfCBtYWluICgpCiAgICAgIHwgXn5+fgpjb25maWd1cmU6ODMy MjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hl Y2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdvcGVubXAtc2ltZApjb25maWd1cmU6 ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNv bmZ0ZXN0IC1nMyAtTzIgIC1Xb3Blbm1wLXNpbWQgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9s aWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9 IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3 aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3BhY2tlZApjb25maWd1cmU6ODMyMjogL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAt TzIgIC1XcGFja2VkICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwv bGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMz OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVy IGhhbmRsZXMgLVdwb2ludGVyLWFyaXRoCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdwb2lu dGVyLWFyaXRoICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGli IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVdzdHJpY3QtcHJvdG90eXBlcwpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xc3Ry aWN0LXByb3RvdHlwZXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6Mjc6MTogd2FybmluZzogZnVuY3Rpb24g ZGVjbGFyYXRpb24gaXNuJ3QgYSBwcm90b3R5cGUgWy1Xc3RyaWN0LXByb3RvdHlwZXNdCiAgIDI3 IHwgbWFpbiAoKQogICAgICB8IF5+fn4KY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6 ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21w aWxlciBoYW5kbGVzIC1Xc3VnZ2VzdC1hdHRyaWJ1dGU9Zm9ybWF0CmNvbmZpZ3VyZTo4MzIyOiAv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3Qg LWczIC1PMiAgLVdzdWdnZXN0LWF0dHJpYnV0ZT1mb3JtYXQgIC1ML2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIy OiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVj a2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0 dXJuCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4 LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzdWdnZXN0LWF0dHJpYnV0ZT1ub3JldHVy biAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVz dC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5 ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1X c3VnZ2VzdC1maW5hbC1tZXRob2RzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzdWdnZXN0 LWZpbmFsLW1ldGhvZHMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgz MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3N1Z2dlc3QtZmluYWwtdHlwZXMKY29uZmlndXJlOjgzMjI6IC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8y ICAtV3N1Z2dlc3QtZmluYWwtdHlwZXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3RyYW1wb2xpbmVzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9k YWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1P MiAgLVd0cmFtcG9saW5lcyAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGli IC1ML2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6 ODMzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21w aWxlciBoYW5kbGVzIC1XdW5pbml0aWFsaXplZApjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1X dW5pbml0aWFsaXplZCAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1M L2xpYiBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMz MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxl ciBoYW5kbGVzIC1XdW5rbm93bi1wcmFnbWFzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVd1 bmtub3duLXByYWdtYXMgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAt TC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgz MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGls ZXIgaGFuZGxlcyAtV3VudXNlZC1tYWNyb3MKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV3Vu dXNlZC1tYWNyb3MgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9s aWIgY29uZnRlc3QuYyAgPiY1CmNvbmZ0ZXN0LmM6MjA6IHdhcm5pbmc6IG1hY3JvICJfX1NURENf V0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18iIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3Nd CiAgIDIwIHwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQogICAg ICB8IApjb25mdGVzdC5jOjIzOiB3YXJuaW5nOiBtYWNybyAiX1RBTkRFTV9TT1VSQ0UiIGlzIG5v dCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDIzIHwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CiAgICAgIHwgCmNvbmZ0ZXN0LmM6MTg6IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxOCB8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0 LmM6NTogd2FybmluZzogbWFjcm8gIlBBQ0tBR0VfU1RSSU5HIiBpcyBub3QgdXNlZCBbLVd1bnVz ZWQtbWFjcm9zXQogICAgNSB8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4w LjUwIgogICAgICB8IApjb25mdGVzdC5jOjM6IHdhcm5pbmc6IG1hY3JvICJQQUNLQUdFX1RBUk5B TUUiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICAzIHwgI2RlZmluZSBQQUNLQUdF X1RBUk5BTUUgImVtYWNzIgogICAgICB8IApjb25mdGVzdC5jOjI6IHdhcm5pbmc6IG1hY3JvICJQ QUNLQUdFX05BTUUiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgICAyIHwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKICAgICAgfCAKY29uZnRlc3QuYzoxNDogd2Fybmlu ZzogbWFjcm8gIl9PUEVOQlNEX1NPVVJDRSIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10K ICAgMTQgfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6Njog d2FybmluZzogbWFjcm8gIlBBQ0tBR0VfQlVHUkVQT1JUIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQt bWFjcm9zXQogICAgNiB8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NA Z251Lm9yZyIKICAgICAgfCAKY29uZnRlc3QuYzoxNTogd2FybmluZzogbWFjcm8gIl9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTUgfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MjE6 IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FOVF9MSUJfRVhUMl9fIiBpcyBub3QgdXNlZCBbLVd1 bnVzZWQtbWFjcm9zXQogICAyMSB8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCiAg ICAgIHwgCmNvbmZ0ZXN0LmM6MTA6IHdhcm5pbmc6IG1hY3JvICJfREFSV0lOX0NfU09VUkNFIiBp cyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAxMCB8ICNkZWZpbmUgX0RBUldJTl9DX1NP VVJDRSAxCiAgICAgIHwgCmNvbmZ0ZXN0LmM6MTY6IHdhcm5pbmc6IG1hY3JvICJfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10K ICAgMTYgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKICAg ICAgfCAKY29uZnRlc3QuYzoxOTogd2FybmluZzogbWFjcm8gIl9fU1REQ19XQU5UX0lFQ182MDU1 OV9GVU5DU19FWFRfXyIgaXMgbm90IHVzZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTkgfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCiAgICAgIHwgCmNvbmZ0ZXN0 LmM6NDogd2FybmluZzogbWFjcm8gIlBBQ0tBR0VfVkVSU0lPTiIgaXMgbm90IHVzZWQgWy1XdW51 c2VkLW1hY3Jvc10KICAgIDQgfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKICAg ICAgfCAKY29uZnRlc3QuYzoyMjogd2FybmluZzogbWFjcm8gIl9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAyMiB8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQogICAgICB8IApjb25mdGVzdC5jOjE3OiB3 YXJuaW5nOiBtYWNybyAiX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyIgaXMgbm90IHVz ZWQgWy1XdW51c2VkLW1hY3Jvc10KICAgMTcgfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9CRlBfRVhUX18gMQogICAgICB8IApjb25mdGVzdC5jOjEyOiB3YXJuaW5nOiBtYWNybyAiX0hQ VVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAg IDEyIHwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCiAgICAgIHwgCmNvbmZ0 ZXN0LmM6ODogd2FybmluZzogbWFjcm8gIkhBVkVfUERVTVBFUiIgaXMgbm90IHVzZWQgWy1XdW51 c2VkLW1hY3Jvc10KICAgIDggfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCiAgICAgIHwgCmNvbmZ0 ZXN0LmM6MTM6IHdhcm5pbmc6IG1hY3JvICJfTkVUQlNEX1NPVVJDRSIgaXMgbm90IHVzZWQgWy1X dW51c2VkLW1hY3Jvc10KICAgMTMgfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKICAgICAgfCAK Y29uZnRlc3QuYzo3OiB3YXJuaW5nOiBtYWNybyAiUEFDS0FHRV9VUkwiIGlzIG5vdCB1c2VkIFst V3VudXNlZC1tYWNyb3NdCiAgICA3IHwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCiAgICAgIHwgCmNvbmZ0ZXN0LmM6OTogd2FybmluZzog bWFjcm8gIl9BTExfU09VUkNFIiBpcyBub3QgdXNlZCBbLVd1bnVzZWQtbWFjcm9zXQogICAgOSB8 ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQogICAgICB8IApjb25mdGVzdC5jOjExOiB3YXJuaW5nOiBt YWNybyAiX0dOVV9TT1VSQ0UiIGlzIG5vdCB1c2VkIFstV3VudXNlZC1tYWNyb3NdCiAgIDExIHwg I2RlZmluZSBfR05VX1NPVVJDRSAxCiAgICAgIHwgCmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29u ZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzAzOiBjaGVja2luZyB3aGV0aGVy IEMgY29tcGlsZXIgaGFuZGxlcyAtV3ZhcmlhZGljLW1hY3Jvcwpjb25maWd1cmU6ODMyMjogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1n MyAtTzIgIC1XdmFyaWFkaWMtbWFjcm9zICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1M L3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNv bmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhl ciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlCmNvbmZp Z3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LW8gY29uZnRlc3QgLWczIC1PMiAgLVd2ZWN0b3Itb3BlcmF0aW9uLXBlcmZvcm1hbmNlICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4m NQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25m aWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVd3cml0ZS1z dHJpbmdzCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVd3cml0ZS1zdHJpbmdzICAtTC9ob21l L2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdhcnJheS1ib3Vu ZHM9Mgpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XYXJyYXktYm91bmRzPTIgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmlndXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4MzAzOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV2F0dHJpYnV0ZS1h bGlhcz0yCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdhdHRyaWJ1dGUtYWxpYXM9MiAgLUwv aG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICA+ JjUKY29uZmlndXJlOjgzMjI6ICQ/ID0gMApjb25maWd1cmU6ODMzMzogcmVzdWx0OiB5ZXMKY29u ZmlndXJlOjgzMDM6IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBoYW5kbGVzIC1XZm9ybWF0 PTIKY29uZmlndXJlOjgzMjI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV2Zvcm1hdD0yICAtTC9ob21lL2RhaGFuL211 c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6 ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzog Y2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdmb3JtYXQtdHJ1bmNhdGlvbj0y CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdmb3JtYXQtdHJ1bmNhdGlvbj0yICAtTC9ob21l L2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpj b25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1bHQ6IHllcwpjb25maWd1 cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVdpbXBsaWNpdC1m YWxsdGhyb3VnaD01CmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdpbXBsaWNpdC1mYWxsdGhy b3VnaD01ICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiByZXN1 bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRs ZXMgLVdzaGlmdC1vdmVyZmxvdz0yCmNvbmZpZ3VyZTo4MzIyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdzaGlmdC1v dmVyZmxvdz0yICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGli IGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODMyMjogJD8gPSAwCmNvbmZpZ3VyZTo4MzMzOiBy ZXN1bHQ6IHllcwpjb25maWd1cmU6ODMwMzogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhh bmRsZXMgLVd2bGEtbGFyZ2VyLXRoYW49NDAzMQpjb25maWd1cmU6ODMyMjogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1X dmxhLWxhcmdlci10aGFuPTQwMzEgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNy L2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo4MzIyOiAkPyA9IDAKY29uZmln dXJlOjgzMzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzQzOiBjaGVja2luZyB3aGV0aGVyIEMg Y29tcGlsZXIgaGFuZGxlcyAtV3JlZHVuZGFudC1kZWNscwpjb25maWd1cmU6ODM2MjogL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAt TzIgIC1XcmVkdW5kYW50LWRlY2xzICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vz ci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6ODM2MjogJD8gPSAwCmNvbmZp Z3VyZTo4MzcyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODM4MTogY2hlY2tpbmcgd2hldGhlciBD IGNvbXBpbGVyIGhhbmRsZXMgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycwpjb25maWd1 cmU6ODQwMDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgIC1XbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NDAwOiAkPyA9IDAKY29uZmlndXJlOjg0MTA6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NDE5OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLW92ZXJyaWRl LWluaXQKY29uZmlndXJlOjg0Mzg6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV292ZXJyaWRlLWluaXQgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NDM4OiAkPyA9IDAKY29uZmlndXJlOjg0NDg6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NDU3OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXNpZ24tY29t cGFyZQpjb25maWd1cmU6ODQ3NjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1Xc2lnbi1jb21wYXJlICAtTC9ob21lL2Rh aGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgID4mNQpjb25m aWd1cmU6ODQ3NjogJD8gPSAwCmNvbmZpZ3VyZTo4NDg2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 ODQ5NTogY2hlY2tpbmcgd2hldGhlciBDIGNvbXBpbGVyIGhhbmRsZXMgLVduby10eXBlLWxpbWl0 cwpjb25maWd1cmU6ODUxNDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgIC1XdHlwZS1saW1pdHMgIC1ML2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy ZTo4NTE0OiAkPyA9IDAKY29uZmlndXJlOjg1MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4NTMz OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLXVudXNlZC1wYXJhbWV0 ZXIKY29uZmlndXJlOjg1NTI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgt bXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAtV3VudXNlZC1wYXJhbWV0ZXIgIC1ML2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1CmNv bmZpZ3VyZTo4NTUyOiAkPyA9IDAKY29uZmlndXJlOjg1NjI6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy ZTo4NTcxOiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgaGFuZGxlcyAtV25vLWZvcm1hdC1u b25saXRlcmFsCmNvbmZpZ3VyZTo4NTkwOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgLVdmb3JtYXQtbm9ubGl0ZXJhbCAg LUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5j ICA+JjUKY2MxOiB3YXJuaW5nOiAnLVdmb3JtYXQtbm9ubGl0ZXJhbCcgaWdub3JlZCB3aXRob3V0 ICctV2Zvcm1hdCcgWy1XZm9ybWF0LW5vbmxpdGVyYWxdCmNvbmZpZ3VyZTo4NTkwOiAkPyA9IDAK Y29uZmlndXJlOjg2MDA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MDIyOiBjaGVja2luZyBmb3Ig YSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsCmNvbmZpZ3VyZTo5MDkwOiByZXN1bHQ6IC91c3IvYmlu L2luc3RhbGwgLWMKY29uZmlndXJlOjkxMDQ6IGNoZWNraW5nIGNvbW1hbmQgdG8gc3ltbGluayBm aWxlcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkKY29uZmlndXJlOjkxMjU6IHJlc3VsdDogbG4gLXMK Y29uZmlndXJlOjkxMzk6IGNoZWNraW5nIGZvciBpbnN0YWxsLWluZm8KY29uZmlndXJlOjkxNTc6 IGZvdW5kIC91c3IvYmluL2luc3RhbGwtaW5mbwpjb25maWd1cmU6OTE3MDogcmVzdWx0OiAvdXNy L2Jpbi9pbnN0YWxsLWluZm8KY29uZmlndXJlOjkxODA6IGNoZWNraW5nIGZvciBnemlwCmNvbmZp Z3VyZTo5MTk4OiBmb3VuZCAvYmluL2d6aXAKY29uZmlndXJlOjkyMTA6IHJlc3VsdDogL2Jpbi9n emlwCmNvbmZpZ3VyZTo5MjI2OiBjaGVja2luZyBmb3IgJ2ZpbmQnIGFyZ3MgdG8gZGVsZXRlIGEg ZmlsZQpjb25maWd1cmU6OTIzNzogcmVzdWx0OiAtZGVsZXRlCmNvbmZpZ3VyZTo5MzU3OiBjaGVj a2luZyBmb3IgYnJldwpjb25maWd1cmU6OTM4NzogcmVzdWx0OiBubwpjb25maWd1cmU6OTQ5NTog Y2hlY2tpbmcgZm9yIC16bm9jb21icmVsb2MKY29uZmlndXJlOjk1MjY6IHJlc3VsdDogbm90IG5l ZWRlZApjb25maWd1cmU6OTUzNTogY2hlY2tpbmcgd2hldGhlciBhZGRyZXNzZXMgYXJlIHNhbml0 aXplZApjb25maWd1cmU6OTU1ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1jIC1nMyAtTzIgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MzE6MTE6IGVy cm9yOiBleHBlY3RlZCAnPScsICcsJywgJzsnLCAnYXNtJyBvciAnX19hdHRyaWJ1dGVfXycgYmVm b3JlIHN0cmluZyBjb25zdGFudAogICAzMSB8ICAgICBlcnJvciAiQWRkcmVzc2VzIGFyZSBub3Qg c2FuaXRpemVkLiI7CiAgICAgIHwgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb25maWd1cmU6OTU1ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2Fz Ogp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8 ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lP TiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIK fCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2Rl ZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwg I2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUg X0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBV WF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVm aW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf RlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZp bmUgR0NDX0xJTlQgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9faGFzX2Zl YXR1cmUKfCAJICAjZGVmaW5lIF9faGFzX2ZlYXR1cmUoZikgMAp8IAkgICNlbmRpZgp8IAkgICNp ZiBkZWZpbmVkIF9fU0FOSVRJWkVfQUREUkVTU19fIHx8IF9faGFzX2ZlYXR1cmUgKGFkZHJlc3Nf c2FuaXRpemVyKQp8IAkgICNlbHNlCnwgCSAgIGVycm9yICJBZGRyZXNzZXMgYXJlIG5vdCBzYW5p dGl6ZWQuIjsKfCAJICAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6OTU2NTogcmVzdWx0OiBubwpjb25maWd1cmU6OTcyOTog Y2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzcXJ0CmNvbmZpZ3VyZTo5NzYwOiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWcz IC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNv bmZ0ZXN0LmMgID4mNSAKY29uZnRlc3QuYzozMzo2OiB3YXJuaW5nOiBjb25mbGljdGluZyB0eXBl cyBmb3IgYnVpbHQtaW4gZnVuY3Rpb24gJ3NxcnQnOyBleHBlY3RlZCAnZG91YmxlKGRvdWJsZSkn IFstV2J1aWx0aW4tZGVjbGFyYXRpb24tbWlzbWF0Y2hdCiAgIDMzIHwgY2hhciBzcXJ0ICgpOwog ICAgICB8ICAgICAgXn5+fgpjb25mdGVzdC5jOjE6MTogbm90ZTogJ3NxcnQnIGlzIGRlY2xhcmVk IGluIGhlYWRlciAnPG1hdGguaD4nCiAgICAxIHwgLyogY29uZmRlZnMuaCAqLwpjb25maWd1cmU6 OTc2MDogJD8gPSAwCmNvbmZpZ3VyZTo5Nzc3OiByZXN1bHQ6IG5vbmUgcmVxdWlyZWQKY29uZmln dXJlOjk4NDY6IGNoZWNraW5nIGZvciB4ODYtZ251LWxpbnV4LXBrZy1jb25maWcKY29uZmlndXJl Ojk4Nzk6IHJlc3VsdDogbm8KY29uZmlndXJlOjk4ODk6IGNoZWNraW5nIGZvciBwa2ctY29uZmln CmNvbmZpZ3VyZTo5OTA3OiBmb3VuZCAvdXNyL2Jpbi9wa2ctY29uZmlnCmNvbmZpZ3VyZTo5OTE5 OiByZXN1bHQ6IC91c3IvYmluL3BrZy1jb25maWcKY29uZmlndXJlOjk5NDQ6IGNoZWNraW5nIHBr Zy1jb25maWcgaXMgYXQgbGVhc3QgdmVyc2lvbiAwLjkuMApjb25maWd1cmU6OTk0NzogcmVzdWx0 OiB5ZXMKY29uZmlndXJlOjk5NjQ6IGNoZWNraW5nIGZvciBtYWNoaW5lL3NvdW5kY2FyZC5oCmNv bmZpZ3VyZTo5OTY0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpjb25mdGVzdC5jOjM0OjEwOiBmYXRhbCBl cnJvcjogbWFjaGluZS9zb3VuZGNhcmQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAz NCB8ICNpbmNsdWRlIDxtYWNoaW5lL3NvdW5kY2FyZC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6OTk2NDog JD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8K fCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJO QU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5l IFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVH UkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0 cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIg MQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwg I2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQ SSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRf XyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18g MQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZp bmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg ICAgICNpZmRlZiBfX01JTkdXMzJfXwp8ICAgICAjZGVmaW5lIFdJTjMyX0xFQU5fQU5EX01FQU4K fCAgICAgI2luY2x1ZGUgPHdpbmRvd3MuaD4KfCAgICAgI2VuZGlmCnwgCnwgCnwgI2luY2x1ZGUg PG1hY2hpbmUvc291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5vCmNvbmZpZ3Vy ZTo5OTY0OiBjaGVja2luZyBmb3Igc3lzL3NvdW5kY2FyZC5oCmNvbmZpZ3VyZTo5OTY0OiAvaG9t ZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBj b25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL3Vzci9pbmNsdWRlL2VuZGlhbi5o OjIxLAogICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL2xpbnV4L3NvdW5kY2FyZC5o OjQzLAogICAgICAgICAgICAgICAgIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxp bnV4LW11c2wvaW5jbHVkZS9iaXRzL3NvdW5kY2FyZC5oOjEsCiAgICAgICAgICAgICAgICAgZnJv bSAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2k1ODYtbGludXgtbXVzbC9pbmNsdWRlL3N5cy9zb3Vu ZGNhcmQuaDoxLAogICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzozNDoKL3Vzci9pbmNs dWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAg fCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmln dXJlOjk5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZkZWZzLmgu ICAqLwp8IAp8ICAgICAjaWZkZWYgX19NSU5HVzMyX18KfCAgICAgI2RlZmluZSBXSU4zMl9MRUFO X0FORF9NRUFOCnwgICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+CnwgICAgICNlbmRpZgp8IAp8IAp8 ICNpbmNsdWRlIDxzeXMvc291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZTo5OTY0OiBjaGVja2luZyBmb3Igc291bmRjYXJkLmgKY29uZmlndXJlOjk5NjQ6IC9o b21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAg IGNvbmZ0ZXN0LmMgPiY1CmNvbmZ0ZXN0LmM6MzQ6MTA6IGZhdGFsIGVycm9yOiBzb3VuZGNhcmQu aDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAzNCB8ICNpbmNsdWRlIDxzb3VuZGNhcmQu aD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZTo5OTY0OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNk ZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5l IFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVm aW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFS V0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FM VF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5D U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9N QVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBH Q0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8IC8qIGVuZCBjb25m ZGVmcy5oLiAgKi8KfCAKfCAgICAgI2lmZGVmIF9fTUlOR1czMl9fCnwgICAgICNkZWZpbmUgV0lO MzJfTEVBTl9BTkRfTUVBTgp8ICAgICAjaW5jbHVkZSA8d2luZG93cy5oPgp8ICAgICAjZW5kaWYK fCAKfCAKfCAjaW5jbHVkZSA8c291bmRjYXJkLmg+CmNvbmZpZ3VyZTo5OTY0OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZTo5OTY0OiBjaGVja2luZyBmb3IgbW1zeXN0ZW0uaApjb25maWd1cmU6OTk2NDog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIg ICAgY29uZnRlc3QuYyA+JjUKY29uZnRlc3QuYzozNDoxMDogZmF0YWwgZXJyb3I6IG1tc3lzdGVt Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMzQgfCAjaW5jbHVkZSA8bW1zeXN0ZW0u aD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4K Y29uZmlndXJlOjk5NjQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAv KiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2Rl ZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUg UEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZp bmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJX SU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxU X1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUg X09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNT X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwg I2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01B VEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdD Q19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8IAp8ICAgICAjaWZkZWYgX19NSU5HVzMyX18KfCAgICAgI2RlZmluZSBXSU4z Ml9MRUFOX0FORF9NRUFOCnwgICAgICNpbmNsdWRlIDx3aW5kb3dzLmg+CnwgICAgICNlbmRpZgp8 IAp8IAp8ICNpbmNsdWRlIDxtbXN5c3RlbS5oPgpjb25maWd1cmU6OTk2NDogcmVzdWx0OiBubwpj b25maWd1cmU6OTk4NTogY2hlY2tpbmcgZm9yIF9vc3NfaW9jdGwgaW4gLWxvc3NhdWRpbwpjb25m aWd1cmU6MTAwMTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1j YyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwv dXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAtbG9zc2F1ZGlvICAgPiY1IAovaG9tZS9kYWhhbi9t dXNsX2Nyb3NzL2Jpbi8uLi9saWIvZ2NjL2k1ODYtbGludXgtbXVzbC85LjIuMC8uLi8uLi8uLi8u Li9pNTg2LWxpbnV4LW11c2wvYmluL2xkOiBjYW5ub3QgZmluZCAtbG9zc2F1ZGlvCmNvbGxlY3Qy OiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTAwMTA6ICQ/ID0g MQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl ZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAi ZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNL QUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S VCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8v d3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAj ZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZp bmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8 ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAj ZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9M SUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAj ZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZ U1RFTV9UWVBFICJnbnUvbGludXgiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92 ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAg IFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdD Qwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGls bCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8 IGNoYXIgX29zc19pb2N0bCAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBfb3NzX2lv Y3RsICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTAwMTk6IHJlc3VsdDog bm8KY29uZmlndXJlOjEwMDM3OiBjaGVja2luZyBmb3IgYWxzYSA+PSAxLjAuMApjb25maWd1cmU6 MTAwNDQ6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICIkQUxTQV9NT0RVTEVT IgpQYWNrYWdlIGFsc2Egd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0 aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGFsc2Eu cGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKTm8gcGFja2Fn ZSAnYWxzYScgZm91bmQKY29uZmlndXJlOjEwMDQ3OiAkPyA9IDEKY29uZmlndXJlOjEwMDYxOiAk UEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiJEFMU0FfTU9EVUxFUyIKUGFja2Fn ZSBhbHNhIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhh cHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBhbHNhLnBjJwp0byB0 aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2Fsc2En IGZvdW5kCmNvbmZpZ3VyZToxMDA2NDogJD8gPSAxCmNvbmZpZ3VyZToxMDA3ODogcmVzdWx0OiBu bwpObyBwYWNrYWdlICdhbHNhJyBmb3VuZApjb25maWd1cmU6MTAxNTc6IGNoZWNraW5nIGZvciBB RERSX05PX1JBTkRPTUlaRQpjb25maWd1cmU6MTAxNzQ6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp Z3VyZToxMDE3NDogJD8gPSAwCmNvbmZpZ3VyZToxMDE4MTogcmVzdWx0OiB5ZXMKY29uZmlndXJl OjEwMjU2OiAvbGliL2NwcCAgICBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMDI1NjogJD8gPSAwCmNv bmZpZ3VyZToxMDI2MjogY2hlY2tpbmcgZm9yIHN5cy93YWl0LmggdGhhdCBpcyBQT1NJWC4xIGNv bXBhdGlibGUKY29uZmlndXJlOjEwMjg4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9z eXMvdHlwZXMuaDo3LAogICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9p bmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAg ICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjEwMjg4OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9Q RVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjaW5jbHVk ZSA8c3lzL3dhaXQuaD4KfCAjaWZuZGVmIFdFWElUU1RBVFVTCnwgIyBkZWZpbmUgV0VYSVRTVEFU VVMoc3RhdF92YWwpICgodW5zaWduZWQgaW50KSAoc3RhdF92YWwpID4+IDgpCnwgI2VuZGlmCnwg I2lmbmRlZiBXSUZFWElURUQKfCAjIGRlZmluZSBXSUZFWElURUQoc3RhdF92YWwpICgoKHN0YXRf dmFsKSAmIDI1NSkgPT0gMCkKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICAgaW50 IHM7CnwgICB3YWl0ICgmcyk7CnwgICBzID0gV0lGRVhJVEVEIChzKSA/IFdFWElUU1RBVFVTIChz KSA6IDE7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDI5NTogcmVzdWx0OiBu bwpjb25maWd1cmU6MTAzMDk6IGNoZWNraW5nIGZvciBuZXQvaWYuaApjb25maWd1cmU6MTAzMDk6 IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8y ICAgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjI5Ogov dXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRz L2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEwMzA5OiAkPyA9IDEK Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp bmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVt YWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FH RV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQg ImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3 dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2Rl ZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5l IF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAj ZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2Rl ZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElC X0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2Rl ZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNU RU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JB TkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAq Lwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNs dWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBp bmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVm IEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBk ZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwg IyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAj IGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwg IyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwg IyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMg aW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2lu Y2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CmNv bmZpZ3VyZToxMDMwOTogcmVzdWx0OiBubwpjb25maWd1cmU6MTAzMjU6IGNoZWNraW5nIGZvciBp ZmFkZHJzLmgKY29uZmlndXJlOjEwMzI1OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2 LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1 ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxMDMyNTogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYg SEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAj aWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0 ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAh ZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVk ZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNp ZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwg CnwgI2luY2x1ZGUgPGlmYWRkcnMuaD4KY29uZmlndXJlOjEwMzI1OiByZXN1bHQ6IG5vCmNvbmZp Z3VyZToxMDM0MTogY2hlY2tpbmcgZm9yIG5ldC9pZl9kbC5oCmNvbmZpZ3VyZToxMDM0MTogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAg Y29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3Iv aW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFy dC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTAzNDE6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9N SVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8IAp8ICNpbmNsdWRlIDxuZXQvaWZfZGwuaD4KY29u ZmlndXJlOjEwMzQxOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDM1NjogY2hlY2tpbmcgZm9yIHN0 cnVjdCBpZnJlcS5pZnJfZmxhZ3MKY29uZmlndXJlOjEwMzU2OiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM1NjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIK fCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUg SEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7 CnwgaWYgKGFjX2FnZ3IuaWZyX2ZsYWdzKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7 CnwgfQpjb25maWd1cmU6MTAzNTY6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1CkluIGZpbGUgaW5jbHVkZWQg ZnJvbSBjb25mdGVzdC5jOjI5OgovdXNyL2luY2x1ZGUvc3RkaW8uaDoyNzoxMDogZmF0YWwgZXJy b3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog ICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29u ZmlndXJlOjEwMzU2OiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyog Y29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4w LjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZp bmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBB Q0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5l IEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lO X0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9Y T1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9P UEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19F WFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRI X1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0Nf TElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9Q RVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwg LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZF X1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRl ZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVm Lmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIu aD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZp bmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxt ZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2lmIEhB VkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KfCAjZW5kaWYKfCAjaWYg SEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5kaWYKfCAKfCBpbnQKfCBt YWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsKfCBpZiAoc2l6ZW9mIGFj X2FnZ3IuaWZyX2ZsYWdzKQp8IHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25m aWd1cmU6MTAzNTY6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwMzcyOiBjaGVja2luZyBmb3Igc3Ry dWN0IGlmcmVxLmlmcl9od2FkZHIKY29uZmlndXJlOjEwMzcyOiAvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJ biBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6 Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmls ZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5o PgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9u IHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHBy b2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05V IEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tB R0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3Mg MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5v cmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9l bWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8 ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2Rl ZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJD RSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURf U0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9J RUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZ UEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0Ug MQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIK fCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUg SEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8u aD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cnwg I2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAj IGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAg aW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklO R19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9I CnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMu aD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+ CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2Vu ZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7 CnwgaWYgKGFjX2FnZ3IuaWZyX2h3YWRkcikKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAw Owp8IH0KY29uZmlndXJlOjEwMzcyOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVk IGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVy cm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK ICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAgICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNv bmZpZ3VyZToxMDM3MjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZp bmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjgu MC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVm aW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQ QUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmlu ZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJ Tl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRf WE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBf T1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1Nf RVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFU SF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0ND X0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhBVkVf UEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8 IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFW RV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVm IEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZk ZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRl Zi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGli Lmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVm aW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8 bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lm ZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBI QVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lm IEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+CnwgI2VuZGlmCnwgCnwgaW50Cnwg bWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBh Y19hZ2dyLmlmcl9od2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNv bmZpZ3VyZToxMDM3MjogcmVzdWx0OiBubwpjb25maWd1cmU6MTAzODg6IGNoZWNraW5nIGZvciBz dHJ1Y3QgaWZyZXEuaWZyX25ldG1hc2sKY29uZmlndXJlOjEwMzg4OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4m NQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL3N0ZGlv Lmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2gg ZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFy dC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDM4ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51 eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZp bmUgSEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3Rk aW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQu aD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4K fCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwg IyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NU UklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9S WV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5n Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdz Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlw ZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50 Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5o Pgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMvc29ja2V0 Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lmLmg+Cnwg I2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVxIGFjX2Fn Z3I7CnwgaWYgKGFjX2FnZ3IuaWZyX25ldG1hc2spCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDM4ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4 Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNs dWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRh bCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVk Lgpjb25maWd1cmU6MTAzODg6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoK fCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAj ZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04g IjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwg I2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZp bmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNk ZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9E QVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhf QUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZp bmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZV TkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5l IEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBI QVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9I IDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVm IEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNp ZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwg I2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxz dGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0 ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYg IWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1 ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlm CnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8 ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAj aWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8 ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGlu dAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwp8IGlmIChzaXpl b2YgYWNfYWdnci5pZnJfbmV0bWFzaykKfCByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8 IH0KY29uZmlndXJlOjEwMzg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMDQwNDogY2hlY2tpbmcg Zm9yIHN0cnVjdCBpZnJlcS5pZnJfYnJvYWRhZGRyCmNvbmZpZ3VyZToxMDQwNDogL2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRl c3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVk ZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFk ZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpj b21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MDQ6ICQ/ID0gMQpjb25maWd1cmU6 IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF X05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2Rl ZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAi R05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1l bWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcv c29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExf U09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VS Q0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05F VEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJ WF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRU UklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19T VERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5E RU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJn bnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEK fCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1 ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90 eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5 cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3Rk bGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERM SUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYg SEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFW RV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUg PHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8 c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUg PGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUg PHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1 bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lz L3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9p Zi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJl cSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9icm9hZGFkZHIpCnwgcmV0dXJuIDA7CnwgICA7 CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDQwNDogL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4g ZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3 OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4K ICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0 ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MDQ6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9n cmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBF bWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdF X1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4 LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3Jn Igp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1h Y3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAj ZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZp bmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NF TUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAx CnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBF U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEK fCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwg I2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhB VkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0ZGlvLmg+ CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgp8ICNl bmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Cnwg I2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBp bmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8ICMgIGlu Y2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdf SAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAp8 ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmluZy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5ncy5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5cGVzLmg+ CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGludC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQuaD4KfCAj ZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgp8 ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUgPG5ldC9pZi5oPgp8ICNlbmRp Zgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVjdCBpZnJlcSBhY19hZ2dyOwp8 IGlmIChzaXplb2YgYWNfYWdnci5pZnJfYnJvYWRhZGRyKQp8IHJldHVybiAwOwp8ICAgOwp8ICAg cmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTA0MDQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEwNDIw OiBjaGVja2luZyBmb3Igc3RydWN0IGlmcmVxLmlmcl9hZGRyCmNvbmZpZ3VyZToxMDQyMDogL2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAg Y29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91c3Iv aW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFy dC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGli Yy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MjA6ICQ/ID0gMQpjb25m aWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQ QUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3Mi CnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NU UklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVn LWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5l IF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dO VV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZp bmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5l IF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19X QU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhU Ml9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5l IF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9U WVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9N SVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg I2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUg PHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1 ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVk ZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFW RV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAj aWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmlu ZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGlu Y2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5j bHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGlu Y2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGlu Y2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNs dWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5jbHVk ZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1ZGUg PG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0cnVj dCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9hZGRyKQp8IHJldHVybiAwOwp8ICAg Owp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTA0MjA6IC9ob21lL2RhaGFuL211c2xfY3Jv c3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtYyAtZzMgLU8yICAgIGNvbmZ0ZXN0LmMgPiY1Cklu IGZpbGUgaW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjI5OgovdXNyL2luY2x1ZGUvc3RkaW8uaDoy NzoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQogICAyNyB8ICNpbmNsdWRlIDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+ CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24g dGVybWluYXRlZC4KY29uZmlndXJlOjEwNDIwOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJv Z3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUg RW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAy OC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9y ZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Vt YWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwg I2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVm aW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNF IDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9T RU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lF Q182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQ RVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBf X1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAx CnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8 ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBI QVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5o Pgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAj ZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8 ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMg aW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBp bmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H X0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gK fCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5o Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4K fCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+Cnwg I2VuZGlmCnwgI2lmIEhBVkVfU1lTX1NPQ0tFVF9ICnwgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4K fCAjZW5kaWYKfCAjaWYgSEFWRV9ORVRfSUZfSAp8ICNpbmNsdWRlIDxuZXQvaWYuaD4KfCAjZW5k aWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHN0YXRpYyBzdHJ1Y3QgaWZyZXEgYWNfYWdncjsK fCBpZiAoc2l6ZW9mIGFjX2FnZ3IuaWZyX2FkZHIpCnwgcmV0dXJuIDA7CnwgICA7CnwgICByZXR1 cm4gMDsKfCB9CmNvbmZpZ3VyZToxMDQyMDogcmVzdWx0OiBubwpjb25maWd1cmU6MTA0MzY6IGNo ZWNraW5nIGZvciBzdHJ1Y3QgaWZyZXEuaWZyX2FkZHIuc2FfbGVuCmNvbmZpZ3VyZToxMDQzNjog L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIg ICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6Mjk6Ci91 c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1z dGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMv bGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTA0MzY6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFO RE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICov CnwgI2luY2x1ZGUgPHN0ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1 ZGUgPHN5cy90eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGlu Y2x1ZGUgPHN5cy9zdGF0Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5j bHVkZSA8c3RkbGliLmg+CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYg SEFWRV9TVERMSUJfSAp8ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYK fCAjaWZkZWYgSEFWRV9TVFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRl ZmluZWQgSEFWRV9NRU1PUllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAj IGluY2x1ZGUgPHN0cmluZy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMg aW5jbHVkZSA8c3RyaW5ncy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAj IGluY2x1ZGUgPGludHR5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAj IGluY2x1ZGUgPHN0ZGludC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBp bmNsdWRlIDx1bmlzdGQuaD4KfCAjZW5kaWYKfCAjaWYgSEFWRV9TWVNfU09DS0VUX0gKfCAjaW5j bHVkZSA8c3lzL3NvY2tldC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX05FVF9JRl9ICnwgI2luY2x1 ZGUgPG5ldC9pZi5oPgp8ICNlbmRpZgp8IAp8IGludAp8IG1haW4gKCkKfCB7Cnwgc3RhdGljIHN0 cnVjdCBpZnJlcSBhY19hZ2dyOwp8IGlmIChhY19hZ2dyLmlmcl9hZGRyLnNhX2xlbikKfCByZXR1 cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNDM2OiAvaG9tZS9kYWhh bi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLWMgLWczIC1PMiAgICBjb25mdGVz dC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gY29uZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRl L3N0ZGlvLmg6Mjc6MTA6IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICAgMjcgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRl ci1zdGFydC5oPgogICAgICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNv bXBpbGF0aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMDQzNjogJD8gPSAxCmNvbmZpZ3VyZTog ZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0Vf TkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVm aW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJH TlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9z b2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9T T1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJD RSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVU QlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lY X1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRS SUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRF TV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdu dS9saW51eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8 ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVk ZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5 cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lz L3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRs aWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJ Ql9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBI QVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZF X01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8 c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxz dHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8 aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8 c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVu aXN0ZC5oPgp8ICNlbmRpZgp8ICNpZiBIQVZFX1NZU19TT0NLRVRfSAp8ICNpbmNsdWRlIDxzeXMv c29ja2V0Lmg+CnwgI2VuZGlmCnwgI2lmIEhBVkVfTkVUX0lGX0gKfCAjaW5jbHVkZSA8bmV0L2lm Lmg+CnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBzdGF0aWMgc3RydWN0IGlmcmVx IGFjX2FnZ3I7CnwgaWYgKHNpemVvZiBhY19hZ2dyLmlmcl9hZGRyLnNhX2xlbikKfCByZXR1cm4g MDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEwNDM2OiByZXN1bHQ6IG5vCmNv bmZpZ3VyZToxMDQ1OTogY2hlY2tpbmcgd2hldGhlciBnY2MgdW5kZXJzdGFuZHMgLU1NRCAtTUYK Y29uZmlndXJlOjEwNDc3OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11 c2wtY2MgLWMgLWczIC1PMiAtTU1EIC1NRiBkZXBzLmQgLU1QICAgIGNvbmZ0ZXN0LmMgPiY1CmNv bmZpZ3VyZToxMDQ3NzogJD8gPSAwCmNvbmZpZ3VyZToxMDQ4NzogcmVzdWx0OiB5ZXMKY29uZmln dXJlOjEwNTAzOiBjaGVja2luZyBmb3IgWApjb25maWd1cmU6MTA2ODE6IHJlc3VsdDogZGlzYWJs ZWQKY29uZmlndXJlOjExNjIxOiBjaGVja2luZyB3aGV0aGVyIG1hbGxvYyBpcyBEb3VnIExlYSBz dHlsZQpjb25maWd1cmU6MTE2NDI6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYtbGlu dXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgPiY1IApJbiBmaWxlIGluY2x1ZGVk IGZyb20gL3Vzci9pbmNsdWRlL21hbGxvYy5oOjIyLAogICAgICAgICAgICAgICAgIGZyb20gY29u ZnRlc3QuYzoyOToKL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmg6NDI0OjEyOiBmYXRhbCBlcnJvcjog c3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKICA0MjQgfCAjICBpbmNsdWRl IDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KY29tcGlsYXRp b24gdGVybWluYXRlZC4KY29uZmlndXJlOjExNjQyOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJH TlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImVtYWNzIgp8ICNkZWZpbmUgUEFD S0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFj cyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251 Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJl L2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAxCnwgI2RlZmluZSBfQUxMX1NPVVJDRSAx CnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAjZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAj ZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJIDEKfCAjZGVmaW5lIF9ORVRCU0RfU09V UkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfUE9TSVhfUFRIUkVB RF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhU X18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf VFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTElCX0VYVDJfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAxCnwgI2RlZmluZSBfVEFOREVNX1NPVVJD RSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmluZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4 Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERSX05PX1JBTkRPTUlaRSAxCnwgI2RlZmlu ZSBIQVZFX1RFUk1fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxtYWxs b2MuaD4KfCAJICAgIHN0YXRpYyB2b2lkIGhvb2sgKHZvaWQpIHt9CnwgaW50CnwgbWFpbiAoKQp8 IHsKfCBtYWxsb2Nfc2V0X3N0YXRlIChtYWxsb2NfZ2V0X3N0YXRlICgpKTsKfCAJICAgIF9fYWZ0 ZXJfbW9yZWNvcmVfaG9vayA9IGhvb2s7CnwgCSAgICBfX21hbGxvY19pbml0aWFsaXplX2hvb2sg PSBob29rOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE2NDk6IHJlc3VsdDog bm8KY29uZmlndXJlOjExNzc4OiBjaGVja2luZyBmb3IgZ2V0cGFnZXNpemUKY29uZmlndXJlOjEx Nzc4OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29u ZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgID4mNSAKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6 NDA6Ci91c3IvaW5jbHVkZS9saW1pdHMuaDoyNjoxMDogZmF0YWwgZXJyb3I6IGJpdHMvbGliYy1o ZWFkZXItc3RhcnQuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogICAyNiB8ICNpbmNsdWRl IDxiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg+CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjExNzc4OiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJ IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgLyogRGVmaW5lIGdldHBhZ2VzaXpl IHRvIGFuIGlubm9jdW91cyB2YXJpYW50LCBpbiBjYXNlIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0 cGFnZXNpemUuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBnZXRwYWdlc2l6ZSBpbm5vY3VvdXNfZ2V0cGFn ZXNpemUKfCAKfCAvKiBTeXN0ZW0gaGVhZGVyIHRvIGRlZmluZSBfX3N0dWIgbWFjcm9zIGFuZCBo b3BlZnVsbHkgZmV3IHByb3RvdHlwZXMsCnwgICAgIHdoaWNoIGNhbiBjb25mbGljdCB3aXRoIGNo YXIgZ2V0cGFnZXNpemUgKCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNz ZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhp c3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1RE Q19fCnwgIyBpbmNsdWRlIDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+ CnwgI2VuZGlmCnwgCnwgI3VuZGVmIGdldHBhZ2VzaXplCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdD QyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVj YXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRp biBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8K fCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2VuZGlmCnwgY2hhciBnZXRwYWdl c2l6ZSAoKTsKfCAvKiBUaGUgR05VIEMgbGlicmFyeSBkZWZpbmVzIHRoaXMgZm9yIGZ1bmN0aW9u cyB3aGljaCBpdCBpbXBsZW1lbnRzCnwgICAgIHRvIGFsd2F5cyBmYWlsIHdpdGggRU5PU1lTLiAg U29tZSBmdW5jdGlvbnMgYXJlIGFjdHVhbGx5IG5hbWVkCnwgICAgIHNvbWV0aGluZyBzdGFydGlu ZyB3aXRoIF9fIGFuZCB0aGUgbm9ybWFsIG5hbWUgaXMgYW4gYWxpYXMuICAqLwp8ICNpZiBkZWZp bmVkIF9fc3R1Yl9nZXRwYWdlc2l6ZSB8fCBkZWZpbmVkIF9fc3R1Yl9fX2dldHBhZ2VzaXplCnwg Y2hva2UgbWUKfCAjZW5kaWYKfCAKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBnZXRwYWdl c2l6ZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjExNzc4OiByZXN1bHQ6 IG5vCmNvbmZpZ3VyZToxMTc4NzogY2hlY2tpbmcgZm9yIHdvcmtpbmcgbW1hcApjb25maWd1cmU6 MTE5NDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjExOTY0OiBjaGVja2luZyBmb3IgbWFpbiBpbiAt bFhic2QKY29uZmlndXJlOjExOTgzOiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxp bnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jv c3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgLWxYYnNkICAgID4mNSAKL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4v Li4vLi4vLi4vaTU4Ni1saW51eC1tdXNsL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxYYnNkCmNvbGxl Y3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTE5ODM6ICQ/ ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwg I2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFN RSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JF UE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBz Oi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEK fCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNk ZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkg MQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEK fCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18g MQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEK fCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5l IFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJf Tk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9N QUxMT0MgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAKfCBpbnQKfCBtYWluICgpCnwg ewp8IHJldHVybiBtYWluICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE5 OTI6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyMDA0OiBjaGVja2luZyBmb3IgcHRocmVhZCBsaWJy YXJ5CmNvbmZpZ3VyZToxMjA0MDogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51 eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3Nz L2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgPiY1IApJbiBmaWxlIGluY2x1ZGVk IGZyb20gL3Vzci9pbmNsdWRlL3B0aHJlYWQuaDoyMSwKICAgICAgICAgICAgICAgICBmcm9tIGNv bmZ0ZXN0LmM6MzA6Ci91c3IvaW5jbHVkZS9mZWF0dXJlcy5oOjQyNDoxMjogZmF0YWwgZXJyb3I6 IHN5cy9jZGVmcy5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgNDI0IHwgIyAgaW5jbHVk ZSA8c3lzL2NkZWZzLmg+CiAgICAgIHwgICAgICAgICAgICBefn5+fn5+fn5+fn5+CmNvbXBpbGF0 aW9uIHRlcm1pbmF0ZWQuCmNvbmZpZ3VyZToxMjA0MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVk IHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAi R05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1h Y3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdu dS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2Fy ZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwg I2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NP VVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJF QURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FO VF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5 X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZp bmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VS Q0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51 eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZp bmUgSEFWRV9URVJNX0ggMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgLyogZW5kIGNvbmZk ZWZzLmguICAqLwp8ICNpbmNsdWRlIDxwdGhyZWFkLmg+CnwgCSAgICAgICNpbmNsdWRlIDxzaWdu YWwuaD4KfCAJICAgICAgc2lnc2V0X3Qgb2xkX21hc2ssIG5ld19tYXNrOwp8IAkgICAgICB2b2lk IG5vb3AgKHZvaWQpIHt9CnwgaW50CnwgbWFpbiAoKQp8IHsKfCBwdGhyZWFkX3QgdGggPSBwdGhy ZWFkX3NlbGYgKCk7CnwgCSAgICAgIGludCBzdGF0dXMgPSAwOwp8IAkgICAgICBzdGF0dXMgKz0g cHRocmVhZF9jcmVhdGUgKCZ0aCwgMCwgMCwgMCk7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFk X3NpZ21hc2sgKFNJR19CTE9DSywgJm5ld19tYXNrLCAmb2xkX21hc2spOwp8IAkgICAgICBzdGF0 dXMgKz0gcHRocmVhZF9raWxsICh0aCwgMCk7CnwgCSAgICAgICNpZiAhIChkZWZpbmVkIFNZU1RF TV9NQUxMT0MgfHwgZGVmaW5lZCBIWUJSSURfTUFMTE9DIAkJICAgICB8fCBkZWZpbmVkIERPVUdf TEVBX01BTExPQykKfCAJICAgICAgLyogVGVzdCBmb3IgcHRocmVhZF9hdGZvcmsgb25seSBpZiBn bWFsbG9jIHVzZXMgaXQsCnwgCQkgYXMgb2xkZXItc3R5bGUgaG9zdHMgbGlrZSBNaXJCU0QgMTAg bGFjayBpdC4gICovCnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2F0Zm9yayAobm9vcCwgbm9v cCwgbm9vcCk7CnwgCSAgICAgICNlbmRpZgp8IAkgICAgICByZXR1cm4gc3RhdHVzOwp8ICAgOwp8 ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTIwNDA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3Mv YmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFo YW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgIC1scHRocmVh ZCA+JjUgCkluIGZpbGUgaW5jbHVkZWQgZnJvbSAvdXNyL2luY2x1ZGUvcHRocmVhZC5oOjIxLAog ICAgICAgICAgICAgICAgIGZyb20gY29uZnRlc3QuYzozMDoKL3Vzci9pbmNsdWRlL2ZlYXR1cmVz Lmg6NDI0OjEyOiBmYXRhbCBlcnJvcjogc3lzL2NkZWZzLmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJl Y3RvcnkKICA0MjQgfCAjICBpbmNsdWRlIDxzeXMvY2RlZnMuaD4KICAgICAgfCAgICAgICAgICAg IF5+fn5+fn5+fn5+fn4KY29tcGlsYXRpb24gdGVybWluYXRlZC4KY29uZmlndXJlOjEyMDQwOiAk PyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8 ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B TUUgImVtYWNzIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIyOC4wLjUwIgp8ICNkZWZpbmUg UEFDS0FHRV9TVFJJTkcgIkdOVSBFbWFjcyAyOC4wLjUwIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdS RVBPUlQgImJ1Zy1nbnUtZW1hY3NAZ251Lm9yZyIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICJodHRw czovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLyIKfCAjZGVmaW5lIEhBVkVfUERVTVBFUiAx CnwgI2RlZmluZSBfQUxMX1NPVVJDRSAxCnwgI2RlZmluZSBfREFSV0lOX0NfU09VUkNFIDEKfCAj ZGVmaW5lIF9HTlVfU09VUkNFIDEKfCAjZGVmaW5lIF9IUFVYX0FMVF9YT1BFTl9TT0NLRVRfQVBJ IDEKfCAjZGVmaW5lIF9ORVRCU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAx CnwgI2RlZmluZSBfUE9TSVhfUFRIUkVBRF9TRU1BTlRJQ1MgMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfSUVDXzYwNTU5X0FUVFJJQlNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYw NTU5X0JGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfREZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9GVU5DU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dB TlRfTElCX0VYVDJfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9NQVRIX1NQRUNfRlVOQ1NfXyAx CnwgI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCnwgI2RlZmluZSBHQ0NfTElOVCAxCnwgI2RlZmlu ZSBTWVNURU1fVFlQRSAiZ251L2xpbnV4Igp8ICNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCnwgI2RlZmluZSBIQVZFX1RFUk1fSCAxCnwgI2RlZmluZSBTWVNURU1f TUFMTE9DIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHB0aHJlYWQuaD4K fCAJICAgICAgI2luY2x1ZGUgPHNpZ25hbC5oPgp8IAkgICAgICBzaWdzZXRfdCBvbGRfbWFzaywg bmV3X21hc2s7CnwgCSAgICAgIHZvaWQgbm9vcCAodm9pZCkge30KfCBpbnQKfCBtYWluICgpCnwg ewp8IHB0aHJlYWRfdCB0aCA9IHB0aHJlYWRfc2VsZiAoKTsKfCAJICAgICAgaW50IHN0YXR1cyA9 IDA7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2NyZWF0ZSAoJnRoLCAwLCAwLCAwKTsKfCAJ ICAgICAgc3RhdHVzICs9IHB0aHJlYWRfc2lnbWFzayAoU0lHX0JMT0NLLCAmbmV3X21hc2ssICZv bGRfbWFzayk7CnwgCSAgICAgIHN0YXR1cyArPSBwdGhyZWFkX2tpbGwgKHRoLCAwKTsKfCAJICAg ICAgI2lmICEgKGRlZmluZWQgU1lTVEVNX01BTExPQyB8fCBkZWZpbmVkIEhZQlJJRF9NQUxMT0Mg CQkgICAgIHx8IGRlZmluZWQgRE9VR19MRUFfTUFMTE9DKQp8IAkgICAgICAvKiBUZXN0IGZvciBw dGhyZWFkX2F0Zm9yayBvbmx5IGlmIGdtYWxsb2MgdXNlcyBpdCwKfCAJCSBhcyBvbGRlci1zdHls ZSBob3N0cyBsaWtlIE1pckJTRCAxMCBsYWNrIGl0LiAgKi8KfCAJICAgICAgc3RhdHVzICs9IHB0 aHJlYWRfYXRmb3JrIChub29wLCBub29wLCBub29wKTsKfCAJICAgICAgI2VuZGlmCnwgCSAgICAg IHJldHVybiBzdGF0dXM7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjA1MTog cmVzdWx0OiBubwpjb25maWd1cmU6MTIwNzg6IGNoZWNraW5nIGZvciB0aHJlYWQgc3VwcG9ydApj b25maWd1cmU6MTIwOTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyNjMyOiBjaGVja2luZyBmb3Ig Z2V0YWRkcmluZm9fYSBpbiAtbGFubApjb25maWd1cmU6MTI2NTc6IC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hv bWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAtbGFu bCAgICA+JjUgCi9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluLy4uL2xpYi9nY2MvaTU4Ni1saW51 eC1tdXNsLzkuMi4wLy4uLy4uLy4uLy4uL2k1ODYtbGludXgtbXVzbC9iaW4vbGQ6IGNhbm5vdCBm aW5kIC1sYW5sCmNvbGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25m aWd1cmU6MTI2NTc6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBj b25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5l IFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAu NTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmlu ZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFD S0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUg SEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5f Q19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hP UEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09Q RU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NU RENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2Rl ZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhf U1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19M SU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BF UlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAj ZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBP dmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAg ICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBH Q0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3Rp bGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYK fCBjaGFyIGdldGFkZHJpbmZvX2EgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gZ2V0 YWRkcmluZm9fYSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjEyNjY2OiBy ZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMzEwOTogY2hlY2tpbmcgZm9yIGRidXMtMSA+PSAxLjAKY29u ZmlndXJlOjEzMTE2OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiZGJ1cy0x ID49IDEuMCIKUGFja2FnZSBkYnVzLTEgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBz ZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgYGRidXMtMS5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJs ZQpObyBwYWNrYWdlICdkYnVzLTEnIGZvdW5kCmNvbmZpZ3VyZToxMzExOTogJD8gPSAxCmNvbmZp Z3VyZToxMzEzMzogJFBLR19DT05GSUcgLS1leGlzdHMgLS1wcmludC1lcnJvcnMgImRidXMtMSA+ PSAxLjAiClBhY2thZ2UgZGJ1cy0xIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2Vh cmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5n IGBkYnVzLTEucGMnCnRvIHRoZSBQS0dfQ09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUK Tm8gcGFja2FnZSAnZGJ1cy0xJyBmb3VuZApjb25maWd1cmU6MTMxMzY6ICQ/ID0gMQpjb25maWd1 cmU6MTMxNTA6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnZGJ1cy0xJyBmb3VuZApjb25maWd1cmU6 MTM1MDk6IGNoZWNraW5nIGZvciBsZ2V0ZmlsZWNvbiBpbiAtbHNlbGludXgKY29uZmlndXJlOjEz NTM0OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29u ZnRlc3QgLWczIC1PMiAgICAtTC9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIg LUwvbGliIGNvbmZ0ZXN0LmMgLWxzZWxpbnV4ICAgID4mNSAKL2hvbWUvZGFoYW4vbXVzbF9jcm9z cy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4vLi4vLi4vLi4vaTU4Ni1s aW51eC1tdXNsL2Jpbi9sZDogY2Fubm90IGZpbmQgLWxzZWxpbnV4CmNvbGxlY3QyOiBlcnJvcjog bGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwpjb25maWd1cmU6MTM1MzQ6ICQ/ID0gMQpjb25maWd1 cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL QUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwg I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO RyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdu dS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9B TExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9T T1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUg X05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9Q T1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlf QVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9U QU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBF ICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpF IDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8q IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHBy b3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdo dCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0 cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2Nw bHVzcGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGxnZXRmaWxlY29uICgpOwp8IGlu dAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGxnZXRmaWxlY29uICgpOwp8ICAgOwp8ICAgcmV0dXJu IDA7CnwgfQpjb25maWd1cmU6MTM1NDM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzNTY0OiBjaGVj a2luZyBmb3IgZ251dGxzID49IDIuMTIuMgpjb25maWd1cmU6MTM1NzE6ICRQS0dfQ09ORklHIC0t ZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnbnV0bHMgPj0gMi4xMi4yIgpQYWNrYWdlIGdudXRscyB3 YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBz aG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgZ251dGxzLnBjJwp0byB0aGUgUEtH X0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2dudXRscycgZm91 bmQKY29uZmlndXJlOjEzNTc0OiAkPyA9IDEKY29uZmlndXJlOjEzNTg4OiAkUEtHX0NPTkZJRyAt LWV4aXN0cyAtLXByaW50LWVycm9ycyAiZ251dGxzID49IDIuMTIuMiIKUGFja2FnZSBnbnV0bHMg d2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ug c2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGdudXRscy5wYycKdG8gdGhlIFBL R19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdnbnV0bHMnIGZv dW5kCmNvbmZpZ3VyZToxMzU5MTogJD8gPSAxCmNvbmZpZ3VyZToxMzYwNTogcmVzdWx0OiBubwpO byBwYWNrYWdlICdnbnV0bHMnIGZvdW5kCmNvbmZpZ3VyZToxMzY1MzogY2hlY2tpbmcgZm9yIGxp YnN5c3RlbWQgPj0gMjIyCmNvbmZpZ3VyZToxMzY2MDogJFBLR19DT05GSUcgLS1leGlzdHMgLS1w cmludC1lcnJvcnMgImxpYnN5c3RlbWQgPj0gMjIyIgpQYWNrYWdlIGxpYnN5c3RlbWQgd2FzIG5v dCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBzZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxk IGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYGxpYnN5c3RlbWQucGMnCnRvIHRoZSBQS0df Q09ORklHX1BBVEggZW52aXJvbm1lbnQgdmFyaWFibGUKTm8gcGFja2FnZSAnbGlic3lzdGVtZCcg Zm91bmQKY29uZmlndXJlOjEzNjYzOiAkPyA9IDEKY29uZmlndXJlOjEzNjc3OiAkUEtHX0NPTkZJ RyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAibGlic3lzdGVtZCA+PSAyMjIiClBhY2thZ2UgbGli c3lzdGVtZCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJo YXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgbGlic3lzdGVtZC5w YycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdl ICdsaWJzeXN0ZW1kJyBmb3VuZApjb25maWd1cmU6MTM2ODA6ICQ/ID0gMQpjb25maWd1cmU6MTM2 OTQ6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnbGlic3lzdGVtZCcgZm91bmQKY29uZmlndXJlOjEz NzM5OiBjaGVja2luZyBmb3IgamFuc3NvbiA+PSAyLjcKY29uZmlndXJlOjEzNzQ2OiAkUEtHX0NP TkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAiamFuc3NvbiA+PSAyLjciClBhY2thZ2UgamFu c3NvbiB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBz IHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBgamFuc3Nvbi5wYycKdG8g dGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdqYW5z c29uJyBmb3VuZApjb25maWd1cmU6MTM3NDk6ICQ/ID0gMQpjb25maWd1cmU6MTM3NjM6ICRQS0df Q09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJqYW5zc29uID49IDIuNyIKUGFja2FnZSBq YW5zc29uIHdhcyBub3QgZm91bmQgaW4gdGhlIHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhh cHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGBqYW5zc29uLnBjJwp0 byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2ph bnNzb24nIGZvdW5kCmNvbmZpZ3VyZToxMzc2NjogJD8gPSAxCmNvbmZpZ3VyZToxMzc4MDogcmVz dWx0OiBubwpObyBwYWNrYWdlICdqYW5zc29uJyBmb3VuZApjb25maWd1cmU6MTM4NTM6IGNoZWNr aW5nIHN5cy9pbm90aWZ5LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxMzg1MzogL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3Qu YyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9tIGNvbmZ0ZXN0LmM6MzA6Ci91c3IvaW5jbHVkZS9z dGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjogYml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBz dWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXIt c3RhcnQuaD4KICAgICAgfCAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21w aWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTM4NTM6ICQ/ID0gMQpjb25maWd1cmU6IGZh aWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05B TUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmlu ZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05V IEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFj c0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09V UkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0Ug MQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJT RF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9Q VEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklC U19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182 MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1f U09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUv bGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAj ZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0MgMQp8IC8qIGVuZCBj b25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQ RVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lT X1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19I RUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNl bHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBl bmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERD X0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+ CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf U1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf SU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW RV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVf VU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDxzeXMv aW5vdGlmeS5oPgpjb25maWd1cmU6MTM4NTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjEzODUzOiBj aGVja2luZyBzeXMvaW5vdGlmeS5oIHByZXNlbmNlCmNvbmZpZ3VyZToxMzg1MzogL2xpYi9jcHAg ICAgY29uZnRlc3QuYwpjb25maWd1cmU6MTM4NTM6ICQ/ID0gMApjb25maWd1cmU6MTM4NTM6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxMzg1MzogV0FSTklORzogc3lzL2lub3RpZnkuaDogcHJlc2Vu dCBidXQgY2Fubm90IGJlIGNvbXBpbGVkCmNvbmZpZ3VyZToxMzg1MzogV0FSTklORzogc3lzL2lu b3RpZnkuaDogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25m aWd1cmU6MTM4NTM6IFdBUk5JTkc6IHN5cy9pbm90aWZ5Lmg6IHNlZSB0aGUgQXV0b2NvbmYgZG9j dW1lbnRhdGlvbgpjb25maWd1cmU6MTM4NTM6IFdBUk5JTkc6IHN5cy9pbm90aWZ5Lmg6ICAgICBz ZWN0aW9uICJQcmVzZW50IEJ1dCBDYW5ub3QgQmUgQ29tcGlsZWQiCmNvbmZpZ3VyZToxMzg1Mzog V0FSTklORzogc3lzL2lub3RpZnkuaDogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJl c3VsdApjb25maWd1cmU6MTM4NTM6IGNoZWNraW5nIGZvciBzeXMvaW5vdGlmeS5oCmNvbmZpZ3Vy ZToxMzg1MzogcmVzdWx0OiBubwpjb25maWd1cmU6MTM4Nzk6IGNoZWNraW5nIGZvciBsaWJrcXVl dWUKY29uZmlndXJlOjEzODg2OiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9ycyAi bGlia3F1ZXVlIgpQYWNrYWdlIGxpYmtxdWV1ZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29u ZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29u dGFpbmluZyBgbGlia3F1ZXVlLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50 IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2xpYmtxdWV1ZScgZm91bmQKY29uZmlndXJlOjEzODg5OiAk PyA9IDEKY29uZmlndXJlOjEzOTAzOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9y cyAibGlia3F1ZXVlIgpQYWNrYWdlIGxpYmtxdWV1ZSB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ct Y29uZmlnIHNlYXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3Rvcnkg Y29udGFpbmluZyBgbGlia3F1ZXVlLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25t ZW50IHZhcmlhYmxlCk5vIHBhY2thZ2UgJ2xpYmtxdWV1ZScgZm91bmQKY29uZmlndXJlOjEzOTA2 OiAkPyA9IDEKY29uZmlndXJlOjEzOTIwOiByZXN1bHQ6IG5vCk5vIHBhY2thZ2UgJ2xpYmtxdWV1 ZScgZm91bmQKY29uZmlndXJlOjEzOTU5OiBjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5n IGtxdWV1ZQpjb25maWd1cmU6MTM5OTA6IC9ob21lL2RhaGFuL211c2xfY3Jvc3MvYmluL2k1ODYt bGludXgtbXVzbC1jYyAtbyBjb25mdGVzdCAtZzMgLU8yICAgIC1ML2hvbWUvZGFoYW4vbXVzbF9j cm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWIgY29uZnRlc3QuYyAgID4mNSAKL2hvbWUvZGFoYW4v bXVzbF9jcm9zcy9iaW4vLi4vbGliL2djYy9pNTg2LWxpbnV4LW11c2wvOS4yLjAvLi4vLi4vLi4v Li4vaTU4Ni1saW51eC1tdXNsL2Jpbi9sZDogL3RtcC9jY1R6QXMzUy5vOiBpbiBmdW5jdGlvbiBg bWFpbic6Ci9ob21lL2RhaGFuL2J1aWxkL2NvbmZ0ZXN0LmM6NDE6IHVuZGVmaW5lZCByZWZlcmVu Y2UgdG8gYGtxdWV1ZScKY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVz CmNvbmZpZ3VyZToxMzk5MDogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8 IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y Lgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNl bmRpZgp8IGNoYXIga3F1ZXVlICgpOwp8IGludAp8IG1haW4gKCkKfCB7CnwgcmV0dXJuIGtxdWV1 ZSAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjE0MDA3OiByZXN1bHQ6IG5v CmNvbmZpZ3VyZToxNDAzMzogY2hlY2tpbmcgZm9yIGdpby0yLjAgPj0gMi4yNApjb25maWd1cmU6 MTQwNDA6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tMi4wID49IDIu MjQiClBhY2thZ2UgZ2lvLTIuMCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNlYXJj aCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBg Z2lvLTIuMC5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZQpO byBwYWNrYWdlICdnaW8tMi4wJyBmb3VuZApjb25maWd1cmU6MTQwNDM6ICQ/ID0gMQpjb25maWd1 cmU6MTQwNTc6ICRQS0dfQ09ORklHIC0tZXhpc3RzIC0tcHJpbnQtZXJyb3JzICJnaW8tMi4wID49 IDIuMjQiClBhY2thZ2UgZ2lvLTIuMCB3YXMgbm90IGZvdW5kIGluIHRoZSBwa2ctY29uZmlnIHNl YXJjaCBwYXRoLgpQZXJoYXBzIHlvdSBzaG91bGQgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmlu ZyBgZ2lvLTIuMC5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJs ZQpObyBwYWNrYWdlICdnaW8tMi4wJyBmb3VuZApjb25maWd1cmU6MTQwNjA6ICQ/ID0gMQpjb25m aWd1cmU6MTQwNzQ6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnZ2lvLTIuMCcgZm91bmQKY29uZmln dXJlOjE0NTY5OiAvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2Mg LWMgLWczIC1PMiAgICBjb25mdGVzdC5jID4mNQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gL2hvbWUv ZGFoYW4vbXVzbF9jcm9zcy9pNTg2LWxpbnV4LW11c2wvaW5jbHVkZS9zeXMvdHlwZXMuaDo3LAog ICAgICAgICAgICAgICAgIGZyb20gL3Vzci9pbmNsdWRlL1gxMS9YbGliLmg6MzgsCiAgICAgICAg ICAgICAgICAgZnJvbSBjb25mdGVzdC5jOjMxOgovdXNyL2luY2x1ZGUvZmVhdHVyZXMuaDo0MjQ6 MTI6IGZhdGFsIGVycm9yOiBzeXMvY2RlZnMuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQog IDQyNCB8ICMgIGluY2x1ZGUgPHN5cy9jZGVmcy5oPgogICAgICB8ICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1cmU6MTQ1Njk6ICQ/ID0gMQpj b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu ZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAiZW1h Y3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdF X1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi YnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3 LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFWRV9QRFVNUEVSIDEKfCAjZGVm aW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQp8ICNkZWZpbmUg X0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVOX1NPQ0tFVF9BUEkgMQp8ICNk ZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5CU0RfU09VUkNFIDEKfCAjZGVm aW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNf NjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQkZQ X0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9ERlBfRVhUX18gMQp8ICNk ZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1RE Q19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9MSUJf RVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19GVU5DU19fIDEKfCAjZGVm aW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5UIDEKfCAjZGVmaW5lIFNZU1RF TV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNPTkFMSVRZX0FERFJfTk9fUkFO RE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVmaW5lIFNZU1RFTV9NQUxMT0Mg MQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAJICAjaW5jbHVkZSA8WDExL1hsaWIuaD4K fCAJICAjaW5jbHVkZSA8WDExL1hyZXNvdXJjZS5oPgp8IGludAp8IG1haW4gKCkKfCB7CnwgWElN UHJvYyAgY2FsbGJhY2s7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxNTk5ODog Y2hlY2tpbmcgZm9yIGxjbXMyCmNvbmZpZ3VyZToxNjAwNTogJFBLR19DT05GSUcgLS1leGlzdHMg LS1wcmludC1lcnJvcnMgImxjbXMyIgpQYWNrYWdlIGxjbXMyIHdhcyBub3QgZm91bmQgaW4gdGhl IHBrZy1jb25maWcgc2VhcmNoIHBhdGguClBlcmhhcHMgeW91IHNob3VsZCBhZGQgdGhlIGRpcmVj dG9yeSBjb250YWluaW5nIGBsY21zMi5wYycKdG8gdGhlIFBLR19DT05GSUdfUEFUSCBlbnZpcm9u bWVudCB2YXJpYWJsZQpObyBwYWNrYWdlICdsY21zMicgZm91bmQKY29uZmlndXJlOjE2MDA4OiAk PyA9IDEKY29uZmlndXJlOjE2MDIyOiAkUEtHX0NPTkZJRyAtLWV4aXN0cyAtLXByaW50LWVycm9y cyAibGNtczIiClBhY2thZ2UgbGNtczIgd2FzIG5vdCBmb3VuZCBpbiB0aGUgcGtnLWNvbmZpZyBz ZWFyY2ggcGF0aC4KUGVyaGFwcyB5b3Ugc2hvdWxkIGFkZCB0aGUgZGlyZWN0b3J5IGNvbnRhaW5p bmcgYGxjbXMyLnBjJwp0byB0aGUgUEtHX0NPTkZJR19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxl Ck5vIHBhY2thZ2UgJ2xjbXMyJyBmb3VuZApjb25maWd1cmU6MTYwMjU6ICQ/ID0gMQpjb25maWd1 cmU6MTYwMzk6IHJlc3VsdDogbm8KTm8gcGFja2FnZSAnbGNtczInIGZvdW5kCmNvbmZpZ3VyZTox NjA4NTogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmZsYXRlRW5kCmNvbmZpZ3Vy ZToxNjExNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1v IGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3Iv bGliIC1ML2xpYiBjb25mdGVzdC5jICAgPiY1IAovaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi8u Li9saWIvZ2NjL2k1ODYtbGludXgtbXVzbC85LjIuMC8uLi8uLi8uLi8uLi9pNTg2LWxpbnV4LW11 c2wvYmluL2xkOiAvdG1wL2NjeWgyc2gwLm86IGluIGZ1bmN0aW9uIGBtYWluJzoKL2hvbWUvZGFo YW4vYnVpbGQvY29uZnRlc3QuYzo0MjogdW5kZWZpbmVkIHJlZmVyZW5jZSB0byBgaW5mbGF0ZUVu ZCcKY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCmNvbmZpZ3VyZTox NjExNjogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNkZWZpbmUgUEFDS0FH RV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tB R0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmluZSBQQUNLQUdFX1VS TCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2RlZmluZSBIQVZFX1BE VU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RBUldJTl9DX1NPVVJD RSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9BTFRfWE9QRU5fU09D S0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmluZSBfT1BFTkJTRF9T T1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5U X0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0RG UF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVOQ1NfRVhUX18gMQp8 ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEKfCAjZGVmaW5lIF9f U1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfTUFUSF9TUEVDX0ZV TkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUgR0NDX0xJTlQgMQp8 ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhBVkVfUEVSU09OQUxJ VFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0ggMQp8ICNkZWZpbmUg U1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4g ICovCnwgCnwgLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQg YW4gZXJyb3IuCnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVy biB0eXBlIG9mIGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90 eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4g IkMiCnwgI2VuZGlmCnwgY2hhciBpbmZsYXRlRW5kICgpOwp8IGludAp8IG1haW4gKCkKfCB7Cnwg cmV0dXJuIGluZmxhdGVFbmQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTox NjExNjogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNsLWNjIC1vIGNv bmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYiAtTC91c3IvbGli IC1ML2xpYiBjb25mdGVzdC5jIC1seiAgICA+JjUgCmNvbmZpZ3VyZToxNjExNjogJD8gPSAwCmNv bmZpZ3VyZToxNjEzMzogcmVzdWx0OiAtbHoKY29uZmlndXJlOjE2MTk4OiBjaGVja2luZyBmb3Ig ZGxhZGRyCmNvbmZpZ3VyZToxNjE5ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1s aW51eC1tdXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Ny b3NzL2xpYiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgLWxkbCA+JjUgCkluIGZpbGUg aW5jbHVkZWQgZnJvbSBjb25mdGVzdC5jOjQyOgovdXNyL2luY2x1ZGUvbGltaXRzLmg6MjY6MTA6 IGZhdGFsIGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKICAgMjYgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAg ICB8ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1p bmF0ZWQuCmNvbmZpZ3VyZToxNjE5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0g d2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNz Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVS U0lPTiAiMjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41 MCIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwg I2RlZmluZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8i CnwgI2RlZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZp bmUgX0RBUldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBf SFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwg I2RlZmluZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5U SUNTIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAj ZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfSUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1 NTlfRlVOQ1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VY VF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERD X1dBTlRfTUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNk ZWZpbmUgR0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVm aW5lIEhBVkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9U RVJNX0ggMQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAj ZGVmaW5lIEhBVkVfWkxJQiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBk bGFkZHIgdG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJl cyBkbGFkZHIuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVz IGdldHRpbWVvZmRheS4gICovCnwgI2RlZmluZSBkbGFkZHIgaW5ub2N1b3VzX2RsYWRkcgp8IAp8 IC8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBm ZXcgcHJvdG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkbGFkZHIg KCk7IGJlbG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1RE Q19fIGlzIGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJl ZXN0YW5kaW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRl IDxsaW1pdHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwg I3VuZGVmIGRsYWRkcgp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBl IHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNo IHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3Vt ZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVz CnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZGxhZGRyICgpOwp8IC8qIFRoZSBHTlUgQyBs aWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAg ICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFs bHkgbmFtZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwg bmFtZSBpcyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2RsYWRkciB8fCBkZWZp bmVkIF9fc3R1Yl9fX2RsYWRkcgp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAo KQp8IHsKfCByZXR1cm4gZGxhZGRyICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1 cmU6MTYxOTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MTk4OiBjaGVja2luZyBmb3IgZGxmdW5j CmNvbmZpZ3VyZToxNjE5ODogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1vIGNvbmZ0ZXN0IC1nMyAtTzIgICAgLUwvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xp YiAtTC91c3IvbGliIC1ML2xpYiBjb25mdGVzdC5jICAgLWxkbCA+JjUgCkluIGZpbGUgaW5jbHVk ZWQgZnJvbSBjb25mdGVzdC5jOjQyOgovdXNyL2luY2x1ZGUvbGltaXRzLmg6MjY6MTA6IGZhdGFs IGVycm9yOiBiaXRzL2xpYmMtaGVhZGVyLXN0YXJ0Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKICAgMjYgfCAjaW5jbHVkZSA8Yml0cy9saWJjLWhlYWRlci1zdGFydC5oPgogICAgICB8ICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmNvbXBpbGF0aW9uIHRlcm1pbmF0ZWQu CmNvbmZpZ3VyZToxNjE5ODogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8 IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAiR05VIEVtYWNzIgp8ICNk ZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAi MjguMC41MCIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJHTlUgRW1hY3MgMjguMC41MCIKfCAj ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVtYWNzQGdudS5vcmciCnwgI2RlZmlu ZSBQQUNLQUdFX1VSTCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy8iCnwgI2Rl ZmluZSBIQVZFX1BEVU1QRVIgMQp8ICNkZWZpbmUgX0FMTF9TT1VSQ0UgMQp8ICNkZWZpbmUgX0RB UldJTl9DX1NPVVJDRSAxCnwgI2RlZmluZSBfR05VX1NPVVJDRSAxCnwgI2RlZmluZSBfSFBVWF9B TFRfWE9QRU5fU09DS0VUX0FQSSAxCnwgI2RlZmluZSBfTkVUQlNEX1NPVVJDRSAxCnwgI2RlZmlu ZSBfT1BFTkJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNTIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9BVFRSSUJTX0VYVF9fIDEKfCAjZGVmaW5l IF9fU1REQ19XQU5UX0lFQ182MDU1OV9CRlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf SUVDXzYwNTU5X0RGUF9FWFRfXyAxCnwgI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfRlVO Q1NfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fIDEK fCAjZGVmaW5lIF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRf TUFUSF9TUEVDX0ZVTkNTX18gMQp8ICNkZWZpbmUgX1RBTkRFTV9TT1VSQ0UgMQp8ICNkZWZpbmUg R0NDX0xJTlQgMQp8ICNkZWZpbmUgU1lTVEVNX1RZUEUgImdudS9saW51eCIKfCAjZGVmaW5lIEhB VkVfUEVSU09OQUxJVFlfQUREUl9OT19SQU5ET01JWkUgMQp8ICNkZWZpbmUgSEFWRV9URVJNX0gg MQp8ICNkZWZpbmUgU1lTVEVNX01BTExPQyAxCnwgI2RlZmluZSBVU0VfWElNIDEKfCAjZGVmaW5l IEhBVkVfWkxJQiAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IC8qIERlZmluZSBkbGZ1bmMg dG8gYW4gaW5ub2N1b3VzIHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyBkbGZ1 bmMuCnwgICAgRm9yIGV4YW1wbGUsIEhQLVVYIDExaSA8bGltaXRzLmg+IGRlY2xhcmVzIGdldHRp bWVvZmRheS4gICovCnwgI2RlZmluZSBkbGZ1bmMgaW5ub2N1b3VzX2RsZnVuYwp8IAp8IC8qIFN5 c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJv dG90eXBlcywKfCAgICAgd2hpY2ggY2FuIGNvbmZsaWN0IHdpdGggY2hhciBkbGZ1bmMgKCk7IGJl bG93Lgp8ICAgICBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlz IGRlZmluZWQsIHNpbmNlCnwgICAgIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5k aW5nIGNvbXBpbGVycy4gICovCnwgCnwgI2lmZGVmIF9fU1REQ19fCnwgIyBpbmNsdWRlIDxsaW1p dHMuaD4KfCAjZWxzZQp8ICMgaW5jbHVkZSA8YXNzZXJ0Lmg+CnwgI2VuZGlmCnwgCnwgI3VuZGVm IGRsZnVuYwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2 b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSBy ZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHBy b3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3BsdXNwbHVzCnwgZXh0 ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgZGxmdW5jICgpOwp8IC8qIFRoZSBHTlUgQyBsaWJyYXJ5 IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGltcGxlbWVudHMKfCAgICAgdG8g YWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9ucyBhcmUgYWN0dWFsbHkgbmFt ZWQKfCAgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5kIHRoZSBub3JtYWwgbmFtZSBp cyBhbiBhbGlhcy4gICovCnwgI2lmIGRlZmluZWQgX19zdHViX2RsZnVuYyB8fCBkZWZpbmVkIF9f c3R1Yl9fX2RsZnVuYwp8IGNob2tlIG1lCnwgI2VuZGlmCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsK fCByZXR1cm4gZGxmdW5jICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTYx OTg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MjgxOiBjaGVja2luZyBmb3IgZ2NjX2ppdF9jb250 ZXh0X2FjcXVpcmUgaW4gLWxnY2NqaXQKY29uZmlndXJlOjE2MzA2OiAvaG9tZS9kYWhhbi9tdXNs X2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wtY2MgLW8gY29uZnRlc3QgLWczIC1PMiAgICAtTC9o b21lL2RhaGFuL211c2xfY3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliIGNvbmZ0ZXN0LmMgLWxn Y2NqaXQgICAgPiY1IApjb25maWd1cmU6MTYzMDY6ICQ/ID0gMApjb25maWd1cmU6MTYzMTU6IHJl c3VsdDogeWVzCmNvbmZpZ3VyZToxNjMzNTogY2hlY2tpbmcgbGliZ2Njaml0LmggdXNhYmlsaXR5 CmNvbmZpZ3VyZToxNjMzNTogL2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1t dXNsLWNjIC1jIC1nMyAtTzIgICAgY29uZnRlc3QuYyA+JjUKSW4gZmlsZSBpbmNsdWRlZCBmcm9t IGNvbmZ0ZXN0LmM6MzU6Ci91c3IvaW5jbHVkZS9zdGRpby5oOjI3OjEwOiBmYXRhbCBlcnJvcjog Yml0cy9saWJjLWhlYWRlci1zdGFydC5oOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiAgIDI3 IHwgI2luY2x1ZGUgPGJpdHMvbGliYy1oZWFkZXItc3RhcnQuaD4KICAgICAgfCAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpjb21waWxhdGlvbiB0ZXJtaW5hdGVkLgpjb25maWd1 cmU6MTYzMzU6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25m ZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUgIkdOVSBFbWFjcyIKfCAjZGVmaW5lIFBB Q0tBR0VfVEFSTkFNRSAiZW1hY3MiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAi CnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAiR05VIEVtYWNzIDI4LjAuNTAiCnwgI2RlZmluZSBQ QUNLQUdFX0JVR1JFUE9SVCAiYnVnLWdudS1lbWFjc0BnbnUub3JnIgp8ICNkZWZpbmUgUEFDS0FH RV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvIgp8ICNkZWZpbmUgSEFW RV9QRFVNUEVSIDEKfCAjZGVmaW5lIF9BTExfU09VUkNFIDEKfCAjZGVmaW5lIF9EQVJXSU5fQ19T T1VSQ0UgMQp8ICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQp8ICNkZWZpbmUgX0hQVVhfQUxUX1hPUEVO X1NPQ0tFVF9BUEkgMQp8ICNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQp8ICNkZWZpbmUgX09QRU5C U0RfU09VUkNFIDEKfCAjZGVmaW5lIF9QT1NJWF9QVEhSRUFEX1NFTUFOVElDUyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCnwgI2RlZmluZSBfX1NURENf V0FOVF9JRUNfNjA1NTlfQkZQX0VYVF9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1 OV9ERlBfRVhUX18gMQp8ICNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VYVF9f IDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAxCnwgI2RlZmlu ZSBfX1NURENfV0FOVF9MSUJfRVhUMl9fIDEKfCAjZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BF Q19GVU5DU19fIDEKfCAjZGVmaW5lIF9UQU5ERU1fU09VUkNFIDEKfCAjZGVmaW5lIEdDQ19MSU5U IDEKfCAjZGVmaW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCnwgI2RlZmluZSBIQVZFX1BFUlNP TkFMSVRZX0FERFJfTk9fUkFORE9NSVpFIDEKfCAjZGVmaW5lIEhBVkVfVEVSTV9IIDEKfCAjZGVm aW5lIFNZU1RFTV9NQUxMT0MgMQp8ICNkZWZpbmUgVVNFX1hJTSAxCnwgI2RlZmluZSBIQVZFX1pM SUIgMQp8ICNkZWZpbmUgSEFWRV9NT0RVTEVTIDEKfCAjZGVmaW5lIE1PRFVMRVNfU1VGRklYICIu c28iCnwgI2RlZmluZSBIQVZFX0xJQkdDQ0pJVCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8 ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRl IDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNs dWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1 ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhB VkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwg I2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZp bmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBp bmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGlu Y2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBp bmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBp bmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5j bHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgI2luY2x1ZGUgPGxpYmdjY2ppdC5oPgpjb25maWd1 cmU6MTYzMzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2MzM1OiBjaGVja2luZyBsaWJnY2NqaXQu aCBwcmVzZW5jZQpjb25maWd1cmU6MTYzMzU6IC9saWIvY3BwICAgIGNvbmZ0ZXN0LmMKY29uZmln dXJlOjE2MzM1OiAkPyA9IDAKY29uZmlndXJlOjE2MzM1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6 MTYzMzU6IFdBUk5JTkc6IGxpYmdjY2ppdC5oOiBwcmVzZW50IGJ1dCBjYW5ub3QgYmUgY29tcGls ZWQKY29uZmlndXJlOjE2MzM1OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogICAgIGNoZWNrIGZvciBt aXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJzPwpjb25maWd1cmU6MTYzMzU6IFdBUk5JTkc6IGxp YmdjY2ppdC5oOiBzZWUgdGhlIEF1dG9jb25mIGRvY3VtZW50YXRpb24KY29uZmlndXJlOjE2MzM1 OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogICAgIHNlY3Rpb24gIlByZXNlbnQgQnV0IENhbm5vdCBC ZSBDb21waWxlZCIKY29uZmlndXJlOjE2MzM1OiBXQVJOSU5HOiBsaWJnY2NqaXQuaDogcHJvY2Vl ZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdApjb25maWd1cmU6MTYzMzU6IGNoZWNraW5n IGZvciBsaWJnY2NqaXQuaApjb25maWd1cmU6MTYzMzU6IHJlc3VsdDogbm8KY29uZmlndXJlOjE2 MzQzOiBlcnJvcjogZWxpc3AgbmF0aXZlIGNvbXBpbGVyIHJlcXVlc3RlZCBidXQgbGliZ2Njaml0 IGhlYWRlciBmaWxlcyB3ZXJlCm5vdCBmb3VuZC4KUGxlYXNlIHRyeSBpbnN0YWxsaW5nIGxpYmdj Y2ppdC1kZXYgb3Igc2ltaWxhciBwYWNrYWdlLgpJZiB5b3UgYXJlIHN1cmUgeW91IHdhbnQgRW1h Y3MgY29tcGlsZWQgd2l0aG91dCBlbGlzcCBuYXRpdmUgY29tcGlsZXIsIHBhc3MKLS13aXRob3V0 LW5hdGl2ZWNvbXAKdG8gY29uZmlndXJlLgoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNo ZSB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPWk1ODYt cGMtbGludXgtbXVzbAphY19jdl9jX2NvbXBpbGVyX2dudT15ZXMKYWNfY3ZfZW52X0FMU0FfQ0ZM QUdTX3NldD0KYWNfY3ZfZW52X0FMU0FfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQUxTQV9MSUJT X3NldD0KYWNfY3ZfZW52X0FMU0FfTElCU192YWx1ZT0KYWNfY3ZfZW52X0NBSVJPX0NGTEFHU19z ZXQ9CmFjX2N2X2Vudl9DQUlST19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DQUlST19MSUJTX3Nl dD0KYWNfY3ZfZW52X0NBSVJPX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9DQ19zZXQ9c2V0CmFjX2N2 X2Vudl9DQ192YWx1ZT0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9pNTg2LWxpbnV4LW11c2wt Y2MKYWNfY3ZfZW52X0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9DUFBGTEFHU19zZXQ9CmFjX2N2X2Vudl9DUFBGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0NQUF9z ZXQ9CmFjX2N2X2Vudl9DUFBfdmFsdWU9CmFjX2N2X2Vudl9EQlVTX0NGTEFHU19zZXQ9CmFjX2N2 X2Vudl9EQlVTX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0RCVVNfTElCU19zZXQ9CmFjX2N2X2Vu dl9EQlVTX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9GT05UQ09ORklHX0NGTEFHU19zZXQ9CmFjX2N2 X2Vudl9GT05UQ09ORklHX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0ZPTlRDT05GSUdfTElCU19z ZXQ9CmFjX2N2X2Vudl9GT05UQ09ORklHX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9GUkVFVFlQRV9D RkxBR1Nfc2V0PQphY19jdl9lbnZfRlJFRVRZUEVfQ0ZMQUdTX3ZhbHVlPQphY19jdl9lbnZfRlJF RVRZUEVfTElCU19zZXQ9CmFjX2N2X2Vudl9GUkVFVFlQRV9MSUJTX3ZhbHVlPQphY19jdl9lbnZf R0NPTkZfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0dDT05GX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0dDT05GX0xJQlNfc2V0PQphY19jdl9lbnZfR0NPTkZfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dG SUxFTk9USUZZX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HRklMRU5PVElGWV9DRkxBR1NfdmFsdWU9 CmFjX2N2X2Vudl9HRklMRU5PVElGWV9MSUJTX3NldD0KYWNfY3ZfZW52X0dGSUxFTk9USUZZX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9HT0JKRUNUX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9HT0JKRUNU X0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dPQkpFQ1RfTElCU19zZXQ9CmFjX2N2X2Vudl9HT0JK RUNUX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9HU0VUVElOR1NfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X0dTRVRUSU5HU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9HU0VUVElOR1NfTElCU19zZXQ9CmFj X2N2X2Vudl9HU0VUVElOR1NfTElCU192YWx1ZT0KYWNfY3ZfZW52X0dUS19DRkxBR1Nfc2V0PQph Y19jdl9lbnZfR1RLX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0dUS19MSUJTX3NldD0KYWNfY3Zf ZW52X0dUS19MSUJTX3ZhbHVlPQphY19jdl9lbnZfSEFSRkJVWlpfQ0ZMQUdTX3NldD0KYWNfY3Zf ZW52X0hBUkZCVVpaX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0hBUkZCVVpaX0xJQlNfc2V0PQph Y19jdl9lbnZfSEFSRkJVWlpfTElCU192YWx1ZT0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0NGTEFH U19zZXQ9CmFjX2N2X2Vudl9JTUFHRU1BR0lDS19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9JTUFH RU1BR0lDS19MSUJTX3NldD0KYWNfY3ZfZW52X0lNQUdFTUFHSUNLX0xJQlNfdmFsdWU9CmFjX2N2 X2Vudl9KU09OX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9KU09OX0NGTEFHU192YWx1ZT0KYWNfY3Zf ZW52X0pTT05fTElCU19zZXQ9CmFjX2N2X2Vudl9KU09OX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9L UVVFVUVfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X0tRVUVVRV9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9LUVVFVUVfTElCU19zZXQ9CmFjX2N2X2Vudl9LUVVFVUVfTElCU192YWx1ZT0KYWNfY3ZfZW52 X0xDTVMyX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9MQ01TMl9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vu dl9MQ01TMl9MSUJTX3NldD0KYWNfY3ZfZW52X0xDTVMyX0xJQlNfdmFsdWU9CmFjX2N2X2Vudl9M REZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0xERkxBR1NfdmFsdWU9Jy1ML2hvbWUvZGFoYW4vbXVz bF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWInCmFjX2N2X2Vudl9MSUJHTlVUTFNfQ0ZMQUdT X3NldD0KYWNfY3ZfZW52X0xJQkdOVVRMU19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJHTlVU TFNfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJHTlVUTFNfTElCU192YWx1ZT0KYWNfY3ZfZW52X0xJ Qk9URl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCT1RGX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52 X0xJQk9URl9MSUJTX3NldD0KYWNfY3ZfZW52X0xJQk9URl9MSUJTX3ZhbHVlPQphY19jdl9lbnZf TElCU0VDQ09NUF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCU0VDQ09NUF9DRkxBR1NfdmFsdWU9 CmFjX2N2X2Vudl9MSUJTRUNDT01QX0xJQlNfc2V0PQphY19jdl9lbnZfTElCU0VDQ09NUF9MSUJT X3ZhbHVlPQphY19jdl9lbnZfTElCU1lTVEVNRF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCU1lT VEVNRF9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJTWVNURU1EX0xJQlNfc2V0PQphY19jdl9l bnZfTElCU1lTVEVNRF9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTElCU19zZXQ9CmFjX2N2X2Vudl9M SUJTX3ZhbHVlPQphY19jdl9lbnZfTElCWE1MMl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfTElCWE1M Ml9DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9MSUJYTUwyX0xJQlNfc2V0PQphY19jdl9lbnZfTElC WE1MMl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfTTE3Tl9GTFRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X00xN05fRkxUX0NGTEFHU192YWx1ZT0KYWNfY3ZfZW52X00xN05fRkxUX0xJQlNfc2V0PQphY19j dl9lbnZfTTE3Tl9GTFRfTElCU192YWx1ZT0KYWNfY3ZfZW52X09CSkNGTEFHU19zZXQ9CmFjX2N2 X2Vudl9PQkpDRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9PQkpDX3NldD0KYWNfY3ZfZW52X09CSkNf dmFsdWU9CmFjX2N2X2Vudl9QS0dfQ09ORklHX0xJQkRJUl9zZXQ9CmFjX2N2X2Vudl9QS0dfQ09O RklHX0xJQkRJUl92YWx1ZT0KYWNfY3ZfZW52X1BLR19DT05GSUdfUEFUSF9zZXQ9CmFjX2N2X2Vu dl9QS0dfQ09ORklHX1BBVEhfdmFsdWU9CmFjX2N2X2Vudl9QS0dfQ09ORklHX3NldD0KYWNfY3Zf ZW52X1BLR19DT05GSUdfdmFsdWU9CmFjX2N2X2Vudl9QTkdfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52 X1BOR19DRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9QTkdfTElCU19zZXQ9CmFjX2N2X2Vudl9QTkdf TElCU192YWx1ZT0KYWNfY3ZfZW52X1JTVkdfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1JTVkdfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfUlNWR19MSUJTX3NldD0KYWNfY3ZfZW52X1JTVkdfTElCU192 YWx1ZT0KYWNfY3ZfZW52X1dFQktJVF9DRkxBR1Nfc2V0PQphY19jdl9lbnZfV0VCS0lUX0NGTEFH U192YWx1ZT0KYWNfY3ZfZW52X1dFQktJVF9MSUJTX3NldD0KYWNfY3ZfZW52X1dFQktJVF9MSUJT X3ZhbHVlPQphY19jdl9lbnZfWEZJWEVTX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9YRklYRVNfQ0ZM QUdTX3ZhbHVlPQphY19jdl9lbnZfWEZJWEVTX0xJQlNfc2V0PQphY19jdl9lbnZfWEZJWEVTX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9YRlRfQ0ZMQUdTX3NldD0KYWNfY3ZfZW52X1hGVF9DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9YRlRfTElCU19zZXQ9CmFjX2N2X2Vudl9YRlRfTElCU192YWx1ZT0K YWNfY3ZfZW52X1hJTkVSQU1BX0NGTEFHU19zZXQ9CmFjX2N2X2Vudl9YSU5FUkFNQV9DRkxBR1Nf dmFsdWU9CmFjX2N2X2Vudl9YSU5FUkFNQV9MSUJTX3NldD0KYWNfY3ZfZW52X1hJTkVSQU1BX0xJ QlNfdmFsdWU9CmFjX2N2X2Vudl9YTUtNRl9zZXQ9CmFjX2N2X2Vudl9YTUtNRl92YWx1ZT0KYWNf Y3ZfZW52X1hSQU5EUl9DRkxBR1Nfc2V0PQphY19jdl9lbnZfWFJBTkRSX0NGTEFHU192YWx1ZT0K YWNfY3ZfZW52X1hSQU5EUl9MSUJTX3NldD0KYWNfY3ZfZW52X1hSQU5EUl9MSUJTX3ZhbHVlPQph Y19jdl9lbnZfYnVpbGRfYWxpYXNfc2V0PXNldAphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9 aTU4Ni1saW51eC1tdXNsCmFjX2N2X2Vudl9ob3N0X2FsaWFzX3NldD1zZXQKYWNfY3ZfZW52X2hv c3RfYWxpYXNfdmFsdWU9eDg2LWdudS1saW51eAphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0K YWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfZnVuY19kbGFkZHI9bm8KYWNfY3Zf ZnVuY19kbGZ1bmM9bm8KYWNfY3ZfZnVuY19nZXRwYWdlc2l6ZT1ubwphY19jdl9mdW5jX21tYXBf Zml4ZWRfbWFwcGVkPW5vCmFjX2N2X2hlYWRlcl9jb2ZmX2g9bm8KYWNfY3ZfaGVhZGVyX2RpcmVu dF9oPW5vCmFjX2N2X2hlYWRlcl9leGVjaW5mb19oPW5vCmFjX2N2X2hlYWRlcl9nZXRvcHRfaD1u bwphY19jdl9oZWFkZXJfaWVlZTc1NF9oPW5vCmFjX2N2X2hlYWRlcl9pZmFkZHJzX2g9bm8KYWNf Y3ZfaGVhZGVyX2ludHR5cGVzX2g9bm8KYWNfY3ZfaGVhZGVyX2xpYmdjY2ppdF9oPW5vCmFjX2N2 X2hlYWRlcl9saW1pdHNfaD1ubwphY19jdl9oZWFkZXJfbGludXhfZnNfaD1ubwphY19jdl9oZWFk ZXJfbWFjaGluZV9zb3VuZGNhcmRfaD1ubwphY19jdl9oZWFkZXJfbWFsbG9jX2g9bm8KYWNfY3Zf aGVhZGVyX21hbGxvY19tYWxsb2NfaD1ubwphY19jdl9oZWFkZXJfbWVtb3J5X2g9bm8KYWNfY3Zf aGVhZGVyX21pbml4X2NvbmZpZ19oPW5vCmFjX2N2X2hlYWRlcl9tbXN5c3RlbV9oPW5vCmFjX2N2 X2hlYWRlcl9uZXRfaWZfZGxfaD1ubwphY19jdl9oZWFkZXJfbmV0X2lmX2g9bm8KYWNfY3ZfaGVh ZGVyX3B0aHJlYWRfaD1ubwphY19jdl9oZWFkZXJfcHR5X2g9bm8KYWNfY3ZfaGVhZGVyX3B3ZF9o PW5vCmFjX2N2X2hlYWRlcl9zYW5pdGl6ZXJfbHNhbl9pbnRlcmZhY2VfaD1ubwphY19jdl9oZWFk ZXJfc291bmRjYXJkX2g9bm8KYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KYWNfY3ZfaGVhZGVyX3N0ZGlu dF9oPW5vCmFjX2N2X2hlYWRlcl9zdGRpb19leHRfaD1ubwphY19jdl9oZWFkZXJfc3RkbGliX2g9 bm8KYWNfY3ZfaGVhZGVyX3N0cmluZ19oPW5vCmFjX2N2X2hlYWRlcl9zdHJpbmdzX2g9bm8KYWNf Y3ZfaGVhZGVyX3N5c19jZGVmc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfZnNfdHlwZXNfaD1ubwph Y19jdl9oZWFkZXJfc3lzX2lub3RpZnlfaD1ubwphY19jdl9oZWFkZXJfc3lzX3BhcmFtX2g9bm8K YWNfY3ZfaGVhZGVyX3N5c19yYW5kb21faD1ubwphY19jdl9oZWFkZXJfc3lzX3Jlc291cmNlX2g9 bm8KYWNfY3ZfaGVhZGVyX3N5c19zZWxlY3RfaD1ubwphY19jdl9oZWFkZXJfc3lzX3NvY2tldF9o PW5vCmFjX2N2X2hlYWRlcl9zeXNfc291bmRjYXJkX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zdGF0 X2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXNpbmZvX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c19zeXN0 ZW1pbmZvX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190aW1lX2g9bm8KYWNfY3ZfaGVhZGVyX3N5c190 eXBlc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfdW5faD1ubwphY19jdl9oZWFkZXJfc3lzX3V0c25h bWVfaD1ubwphY19jdl9oZWFkZXJfc3lzX3Zmc19oPW5vCmFjX2N2X2hlYWRlcl9zeXNfd2FpdF9o PW5vCmFjX2N2X2hlYWRlcl91bmlzdGRfaD1ubwphY19jdl9oZWFkZXJfdXRpbF9oPW5vCmFjX2N2 X2hlYWRlcl91dG1wX2g9bm8KYWNfY3ZfaGVhZGVyX3djaGFyX2g9bm8KYWNfY3ZfaG9zdD14ODYt Z251LWxpbnV4LWdudQphY19jdl9saWJfWGJzZF9tYWluPW5vCmFjX2N2X2xpYl9hbmxfZ2V0YWRk cmluZm9fYT1ubwphY19jdl9saWJfZ2Njaml0X2djY19qaXRfY29udGV4dF9hY3F1aXJlPXllcwph Y19jdl9saWJfb3NzYXVkaW9fX29zc19pb2N0bD1ubwphY19jdl9saWJfc2VsaW51eF9sZ2V0Zmls ZWNvbj1ubwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9hZGRyPW5vCmFjX2N2X21lbWJl cl9zdHJ1Y3RfaWZyZXFfaWZyX2FkZHJfc2FfbGVuPW5vCmFjX2N2X21lbWJlcl9zdHJ1Y3RfaWZy ZXFfaWZyX2Jyb2FkYWRkcj1ubwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9mbGFncz1u bwphY19jdl9tZW1iZXJfc3RydWN0X2lmcmVxX2lmcl9od2FkZHI9bm8KYWNfY3ZfbWVtYmVyX3N0 cnVjdF9pZnJlcV9pZnJfbmV0bWFzaz1ubwphY19jdl9vYmpleHQ9bwphY19jdl9wYXRoX0VHUkVQ PScvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfR1JFUD0vYmluL2dyZXAKYWNfY3ZfcGF0aF9HWklQ X1BST0c9L2Jpbi9nemlwCmFjX2N2X3BhdGhfSU5TVEFMTF9JTkZPPS91c3IvYmluL2luc3RhbGwt aW5mbwphY19jdl9wYXRoX01BS0U9bWFrZQphY19jdl9wYXRoX2FjX3B0X1BLR19DT05GSUc9L3Vz ci9iaW4vcGtnLWNvbmZpZwphY19jdl9wYXRoX2luc3RhbGw9Jy91c3IvYmluL2luc3RhbGwgLWMn CmFjX2N2X3Byb2dfQ0M9L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9iaW4vaTU4Ni1saW51eC1tdXNs LWNjCmFjX2N2X3Byb2dfQ1BQPS9saWIvY3BwCmFjX2N2X3Byb2dfYWNfY3RfQVI9YXIKYWNfY3Zf cHJvZ19hY19jdF9SQU5MSUI9cmFubGliCmFjX2N2X3Byb2dfY2NfX2hvbWVfZGFoYW5fbXVzbF9j cm9zc19iaW5faTU4Nl9saW51eF9tdXNsX2NjX2Nfbz15ZXMKYWNfY3ZfcHJvZ19jY19jMTE9bm8K YWNfY3ZfcHJvZ19jY19jOTk9bm8KYWNfY3ZfcHJvZ19jY19nPXllcwphY19jdl9wcm9nX2NjX3N0 ZGM9bm8KYWNfY3Zfc2FmZV90b19kZWZpbmVfX19leHRlbnNpb25zX189bm8KYWNfY3Zfc2VhcmNo X2luZmxhdGVFbmQ9LWx6CmFjX2N2X3NlYXJjaF9rcXVldWU9bm8KYWNfY3Zfc2VhcmNoX3NxcnQ9 J25vbmUgcmVxdWlyZWQnCmFjX2N2X3Nob3VsZF9kZWZpbmVfX3hvcGVuX3NvdXJjZT1ubwphY19j dl9zeXNfZmlsZV9vZmZzZXRfYml0cz11bmtub3duCmFjX2N2X3N5c19sYXJnZV9maWxlcz11bmtu b3duCmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KZW1hY3NfY3ZfYXV0b2RlcGVuZD15ZXMKZW1h Y3NfY3ZfY2xhbmc9bm8KZW1hY3NfY3ZfZmluZF9kZWxldGU9LWRlbGV0ZQplbWFjc19jdl9sbl9z X2ZpbGVvbmx5PSdsbiAtcycKZW1hY3NfY3ZfcGVyc29uYWxpdHlfYWRkcl9ub19yYW5kb21pemU9 eWVzCmVtYWNzX2N2X3Byb2dfY2NfZzM9eWVzCmVtYWNzX2N2X3B0aHJlYWRfbGliPW5vCmVtYWNz X2N2X3Nhbml0aXplX2FkZHJlc3M9bm8KZW1hY3NfY3ZfdmFyX2RvdWdfbGVhX21hbGxvYz1ubwpl bWFjc19jdl96bm9jb21icmVsb2M9J25vdCBuZWVkZWQnCmdsX2N2X2NfYW1zdGVyZGFtX2NvbXBp bGVyPW5vCmdsX2N2X2NjX25vbWZpX25lZWRlZD1ubwpnbF9jdl9jY19ub21maV9zdXBwb3J0ZWQ9 eWVzCmdsX2N2X2NjX3VuaW5pdGlhbGl6ZWRfc3VwcG9ydGVkPXllcwpnbF9jdl9jb21waWxlcl9j aGVja19kZWNsX29wdGlvbj1ub25lCmdsX2N2X2NvbXBpbGVyX2NsYW5nPW5vCmdsX2N2X3dhcm5f Y19fV2FsbD15ZXMKZ2xfY3Zfd2Fybl9jX19XYXJpdGhfY29udmVyc2lvbj1ubwpnbF9jdl93YXJu X2NfX1dhcnJheV9ib3VuZHNfMj15ZXMKZ2xfY3Zfd2Fybl9jX19XYXR0cmlidXRlX2FsaWFzXzI9 eWVzCmdsX2N2X3dhcm5fY19fV2RhdGVfdGltZT15ZXMKZ2xfY3Zfd2Fybl9jX19XZGlzYWJsZWRf b3B0aW1pemF0aW9uPXllcwpnbF9jdl93YXJuX2NfX1dkb3VibGVfcHJvbW90aW9uPXllcwpnbF9j dl93YXJuX2NfX1dkdXBsaWNhdGVkX2NvbmQ9eWVzCmdsX2N2X3dhcm5fY19fV2Vycm9yX19XdW5r bm93bl93YXJuaW5nX29wdGlvbj1ubwpnbF9jdl93YXJuX2NfX1dleHRyYT15ZXMKZ2xfY3Zfd2Fy bl9jX19XZm9ybWF0XzI9eWVzCmdsX2N2X3dhcm5fY19fV2Zvcm1hdF9zaWduZWRuZXNzPXllcwpn bF9jdl93YXJuX2NfX1dmb3JtYXRfdHJ1bmNhdGlvbl8yPXllcwpnbF9jdl93YXJuX2NfX1dpbXBs aWNpdF9mYWxsdGhyb3VnaF81PXllcwpnbF9jdl93YXJuX2NfX1dpbml0X3NlbGY9eWVzCmdsX2N2 X3dhcm5fY19fV2ludmFsaWRfcGNoPXllcwpnbF9jdl93YXJuX2NfX1dsb2dpY2FsX29wPXllcwpn bF9jdl93YXJuX2NfX1dtaXNzaW5nX2RlY2xhcmF0aW9ucz15ZXMKZ2xfY3Zfd2Fybl9jX19XbWlz c2luZ19pbmNsdWRlX2RpcnM9eWVzCmdsX2N2X3dhcm5fY19fV21pc3NpbmdfcHJvdG90eXBlcz15 ZXMKZ2xfY3Zfd2Fybl9jX19XbmVzdGVkX2V4dGVybnM9eWVzCmdsX2N2X3dhcm5fY19fV25vX2Zv cm1hdF9ub25saXRlcmFsPXllcwpnbF9jdl93YXJuX2NfX1dub19taXNzaW5nX2ZpZWxkX2luaXRp YWxpemVycz15ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fb3ZlcnJpZGVfaW5pdD15ZXMKZ2xfY3Zfd2Fy bl9jX19Xbm9fc2lnbl9jb21wYXJlPXllcwpnbF9jdl93YXJuX2NfX1dub190eXBlX2xpbWl0cz15 ZXMKZ2xfY3Zfd2Fybl9jX19Xbm9fdW51c2VkX3BhcmFtZXRlcj15ZXMKZ2xfY3Zfd2Fybl9jX19X bnVsbF9kZXJlZmVyZW5jZT15ZXMKZ2xfY3Zfd2Fybl9jX19Xb2xkX3N0eWxlX2RlZmluaXRpb249 eWVzCmdsX2N2X3dhcm5fY19fV29wZW5tcF9zaW1kPXllcwpnbF9jdl93YXJuX2NfX1dwYWNrZWQ9 eWVzCmdsX2N2X3dhcm5fY19fV3BvaW50ZXJfYXJpdGg9eWVzCmdsX2N2X3dhcm5fY19fV3JlZHVu ZGFudF9kZWNscz15ZXMKZ2xfY3Zfd2Fybl9jX19Xc2hpZnRfb3ZlcmZsb3dfMj15ZXMKZ2xfY3Zf d2Fybl9jX19Xc3RyaWN0X3Byb3RvdHlwZXM9eWVzCmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfYXR0 cmlidXRlX2Zvcm1hdD15ZXMKZ2xfY3Zfd2Fybl9jX19Xc3VnZ2VzdF9hdHRyaWJ1dGVfbm9yZXR1 cm49eWVzCmdsX2N2X3dhcm5fY19fV3N1Z2dlc3RfZmluYWxfbWV0aG9kcz15ZXMKZ2xfY3Zfd2Fy bl9jX19Xc3VnZ2VzdF9maW5hbF90eXBlcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdHJhbXBvbGluZXM9 eWVzCmdsX2N2X3dhcm5fY19fV3VuaW5pdGlhbGl6ZWQ9eWVzCmdsX2N2X3dhcm5fY19fV3Vua25v d25fcHJhZ21hcz15ZXMKZ2xfY3Zfd2Fybl9jX19XdW51c2VkX21hY3Jvcz15ZXMKZ2xfY3Zfd2Fy bl9jX19XdmFyaWFkaWNfbWFjcm9zPXllcwpnbF9jdl93YXJuX2NfX1d2ZWN0b3Jfb3BlcmF0aW9u X3BlcmZvcm1hbmNlPXllcwpnbF9jdl93YXJuX2NfX1d2bGFfbGFyZ2VyX3RoYW5fNDAzMT15ZXMK Z2xfY3Zfd2Fybl9jX19Xd3JpdGVfc3RyaW5ncz15ZXMKZ2xfY3Zfd2Fybl9jX19mbm9fY29tbW9u PXllcwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMg LS0tLS0tLS0tLS0tLS0tLS0gIyMKCkFMTE9DQT0nJwpBTExPQ0FfSD0nJwpBTFNBX0NGTEFHUz0n JwpBTFNBX0xJQlM9JycKQU1fREVGQVVMVF9WRVJCT1NJVFk9JzAnCkFQUExFX1VOSVZFUlNBTF9C VUlMRD0nJwpBUj0nYXInCkFSRkxBR1M9J2NyJwpBVVRPX0RFUEVORD0neWVzJwpBV0s9JycKQklU U0laRU9GX1BUUkRJRkZfVD0nJwpCSVRTSVpFT0ZfU0lHX0FUT01JQ19UPScnCkJJVFNJWkVPRl9T SVpFX1Q9JycKQklUU0laRU9GX1dDSEFSX1Q9JycKQklUU0laRU9GX1dJTlRfVD0nJwpCTEVTU01B SUxfVEFSR0VUPScnCkJSRVc9JycKQlVJTERfREVUQUlMUz0nJwpCWVRFU1dBUF9IPScnCkNBSVJP X0NGTEFHUz0nJwpDQUlST19MSUJTPScnCkNDPScvaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jpbi9p NTg2LWxpbnV4LW11c2wtY2MnCkNGTEFHUz0nLWczIC1PMicKQ0ZMQUdTX1NPVU5EPScnCkNIRUNL X1NUUlVDVFM9J2ZhbHNlJwpDTElFTlRSRVM9JycKQ0xJRU5UVz0nJwpDTV9PQko9J2NtLm8nCkNP TV9FUlJMSUI9JycKQ1BQPScvbGliL2NwcCcKQ1BQRkxBR1M9JyAgJwpDUllQVE9MSUI9JycKQ1lH V0lOX09CSj0nJwpDX1NXSVRDSF9NQUNISU5FPScnCkNfU1dJVENIX1NZU1RFTT0nJwpDX1NXSVRD SF9YX1NJVEU9JycKREJVU19DRkxBR1M9JycKREJVU19MSUJTPScnCkRCVVNfT0JKPScnCkRFRlM9 JycKREVTTElCPScnCkRPQ01JU0NfVzMyPScnCkRVTVBJTkc9J3BkdW1wZXInCkRZTkxJQl9PQko9 JycKRUNIT19DPScnCkVDSE9fTj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nL2Jpbi9ncmVwIC1FJwpF TUFDU1JFUz0nJwpFTUFDU19NQU5JRkVTVD0nJwpFTVVMVElIT1BfSElEREVOPScnCkVNVUxUSUhP UF9WQUxVRT0nJwpFTk9MSU5LX0hJRERFTj0nJwpFTk9MSU5LX1ZBTFVFPScnCkVPVkVSRkxPV19I SURERU49JycKRU9WRVJGTE9XX1ZBTFVFPScnCkVSUk5PX0g9JycKRVhFQ0lORk9fSD0nJwpFWEVF WFQ9JycKRklORF9ERUxFVEU9Jy1kZWxldGUnCkZJUlNURklMRV9PQko9JycKRk9OVENPTkZJR19D RkxBR1M9JycKRk9OVENPTkZJR19MSUJTPScnCkZPTlRfT0JKPScnCkZSRUVUWVBFX0NGTEFHUz0n JwpGUkVFVFlQRV9MSUJTPScnCkdDT05GX0NGTEFHUz0nJwpHQ09ORl9MSUJTPScnCkdFVEFERFJJ TkZPX0FfTElCUz0nJwpHRVRMT0FEQVZHX0xJQlM9JycKR0VUT1BUX0NERUZTX0g9JycKR0VUT1BU X0g9JycKR0ZJTEVOT1RJRllfQ0ZMQUdTPScnCkdGSUxFTk9USUZZX0xJQlM9JycKR0xfQ09ORF9M SUJUT09MPScnCkdMX0dFTkVSQVRFX0FMTE9DQV9IPScnCkdMX0dFTkVSQVRFX0JZVEVTV0FQX0g9 JycKR0xfR0VORVJBVEVfRVJSTk9fSD0nJwpHTF9HRU5FUkFURV9FWEVDSU5GT19IPScnCkdMX0dF TkVSQVRFX0dNUF9HTVBfSD0nJwpHTF9HRU5FUkFURV9JRUVFNzU0X0g9JycKR0xfR0VORVJBVEVf TElNSVRTX0g9JycKR0xfR0VORVJBVEVfTUlOSV9HTVBfSD0nJwpHTF9HRU5FUkFURV9TVERBTElH Tl9IPScnCkdMX0dFTkVSQVRFX1NURERFRl9IPScnCkdMX0dFTkVSQVRFX1NURElOVF9IPScnCkdN QUxMT0NfT0JKPScnCkdNUF9IPScnCkdOVUxJQl9BQ0NFU1M9JycKR05VTElCX0FMSUdORURfQUxM T0M9JycKR05VTElCX0FMUEhBU09SVD0nJwpHTlVMSUJfQVRPTEw9JycKR05VTElCX0NBTExPQ19Q T1NJWD0nJwpHTlVMSUJfQ0FOT05JQ0FMSVpFX0ZJTEVfTkFNRT0nJwpHTlVMSUJfQ0hESVI9JycK R05VTElCX0NIT1dOPScnCkdOVUxJQl9DTE9TRT0nJwpHTlVMSUJfQ0xPU0VESVI9JycKR05VTElC X0NPUFlfRklMRV9SQU5HRT0nJwpHTlVMSUJfQ1JFQVQ9JycKR05VTElCX0NUSU1FPScnCkdOVUxJ Ql9ESVJGRD0nJwpHTlVMSUJfRFBSSU5URj0nJwpHTlVMSUJfRFVQMj0nJwpHTlVMSUJfRFVQMz0n JwpHTlVMSUJfRFVQPScnCkdOVUxJQl9FTlZJUk9OPScnCkdOVUxJQl9FVUlEQUNDRVNTPScnCkdO VUxJQl9FWEVDTD0nJwpHTlVMSUJfRVhFQ0xFPScnCkdOVUxJQl9FWEVDTFA9JycKR05VTElCX0VY RUNWPScnCkdOVUxJQl9FWEVDVkU9JycKR05VTElCX0VYRUNWUD0nJwpHTlVMSUJfRVhFQ1ZQRT0n JwpHTlVMSUJfRVhQTElDSVRfQlpFUk89JycKR05VTElCX0ZBQ0NFU1NBVD0nJwpHTlVMSUJfRkNI RElSPScnCkdOVUxJQl9GQ0hNT0RBVD0nJwpHTlVMSUJfRkNIT1dOQVQ9JycKR05VTElCX0ZDTE9T RT0nJwpHTlVMSUJfRkNOVEw9JycKR05VTElCX0ZEQVRBU1lOQz0nJwpHTlVMSUJfRkRPUEVOPScn CkdOVUxJQl9GRE9QRU5ESVI9JycKR05VTElCX0ZGTFVTSD0nJwpHTlVMSUJfRkZTTD0nJwpHTlVM SUJfRkZTTEw9JycKR05VTElCX0ZHRVRDPScnCkdOVUxJQl9GR0VUUz0nJwpHTlVMSUJfRk9QRU49 JycKR05VTElCX0ZQUklOVEY9JycKR05VTElCX0ZQUklOVEZfUE9TSVg9JycKR05VTElCX0ZQVVJH RT0nJwpHTlVMSUJfRlBVVEM9JycKR05VTElCX0ZQVVRTPScnCkdOVUxJQl9GUkVBRD0nJwpHTlVM SUJfRlJFRV9QT1NJWD0nJwpHTlVMSUJfRlJFT1BFTj0nJwpHTlVMSUJfRlNDQU5GPScnCkdOVUxJ Ql9GU0VFSz0nJwpHTlVMSUJfRlNFRUtPPScnCkdOVUxJQl9GU1RBVD0nJwpHTlVMSUJfRlNUQVRB VD0nJwpHTlVMSUJfRlNZTkM9JycKR05VTElCX0ZURUxMPScnCkdOVUxJQl9GVEVMTE89JycKR05V TElCX0ZUUlVOQ0FURT0nJwpHTlVMSUJfRlVUSU1FTlM9JycKR05VTElCX0ZXUklURT0nJwpHTlVM SUJfR0VUQz0nJwpHTlVMSUJfR0VUQ0hBUj0nJwpHTlVMSUJfR0VUQ1dEPScnCkdOVUxJQl9HRVRE RUxJTT0nJwpHTlVMSUJfR0VURE9NQUlOTkFNRT0nJwpHTlVMSUJfR0VURFRBQkxFU0laRT0nJwpH TlVMSUJfR0VURU5UUk9QWT0nJwpHTlVMSUJfR0VUR1JPVVBTPScnCkdOVUxJQl9HRVRIT1NUTkFN RT0nJwpHTlVMSUJfR0VUTElORT0nJwpHTlVMSUJfR0VUTE9BREFWRz0nJwpHTlVMSUJfR0VUTE9H SU49JycKR05VTElCX0dFVExPR0lOX1I9JycKR05VTElCX0dFVE9QVF9QT1NJWD0nJwpHTlVMSUJf R0VUUEFHRVNJWkU9JycKR05VTElCX0dFVFBBU1M9JycKR05VTElCX0dFVFJBTkRPTT0nJwpHTlVM SUJfR0VUU1VCT1BUPScnCkdOVUxJQl9HRVRUSU1FT0ZEQVk9JycKR05VTElCX0dFVFVNQVNLPScn CkdOVUxJQl9HRVRVU0VSU0hFTEw9JycKR05VTElCX0dMX1VOSVNURF9IX0dFVE9QVD0nJwpHTlVM SUJfR1JBTlRQVD0nJwpHTlVMSUJfR1JPVVBfTUVNQkVSPScnCkdOVUxJQl9JTUFYQUJTPScnCkdO VUxJQl9JTUFYRElWPScnCkdOVUxJQl9JU0FUVFk9JycKR05VTElCX0xDSE1PRD0nJwpHTlVMSUJf TENIT1dOPScnCkdOVUxJQl9MSU5LPScnCkdOVUxJQl9MSU5LQVQ9JycKR05VTElCX0xPQ0FMVElN RT0nJwpHTlVMSUJfTFNFRUs9JycKR05VTElCX0xTVEFUPScnCkdOVUxJQl9NQUxMT0NfUE9TSVg9 JycKR05VTElCX01CU0NBU0VDTVA9JycKR05VTElCX01CU0NBU0VTVFI9JycKR05VTElCX01CU0NI Uj0nJwpHTlVMSUJfTUJTQ1NQTj0nJwpHTlVMSUJfTUJTTEVOPScnCkdOVUxJQl9NQlNOQ0FTRUNN UD0nJwpHTlVMSUJfTUJTTkxFTj0nJwpHTlVMSUJfTUJTUEJSSz0nJwpHTlVMSUJfTUJTUENBU0VD TVA9JycKR05VTElCX01CU1JDSFI9JycKR05VTElCX01CU1NFUD0nJwpHTlVMSUJfTUJTU1BOPScn CkdOVUxJQl9NQlNTVFI9JycKR05VTElCX01CU1RPS19SPScnCkdOVUxJQl9NQlRPV0M9JycKR05V TElCX01EQV9BQ0NFU1M9JycKR05VTElCX01EQV9DSERJUj0nJwpHTlVMSUJfTURBX0NITU9EPScn CkdOVUxJQl9NREFfQ0xPU0U9JycKR05VTElCX01EQV9DUkVBVD0nJwpHTlVMSUJfTURBX0RVUDI9 JycKR05VTElCX01EQV9EVVA9JycKR05VTElCX01EQV9FQ1ZUPScnCkdOVUxJQl9NREFfRVhFQ0w9 JycKR05VTElCX01EQV9FWEVDTEU9JycKR05VTElCX01EQV9FWEVDTFA9JycKR05VTElCX01EQV9F WEVDVj0nJwpHTlVMSUJfTURBX0VYRUNWRT0nJwpHTlVMSUJfTURBX0VYRUNWUD0nJwpHTlVMSUJf TURBX0VYRUNWUEU9JycKR05VTElCX01EQV9GQ0xPU0VBTEw9JycKR05VTElCX01EQV9GQ1ZUPScn CkdOVUxJQl9NREFfRkRPUEVOPScnCkdOVUxJQl9NREFfRklMRU5PPScnCkdOVUxJQl9NREFfR0NW VD0nJwpHTlVMSUJfTURBX0dFVENXRD0nJwpHTlVMSUJfTURBX0dFVFBJRD0nJwpHTlVMSUJfTURB X0dFVFc9JycKR05VTElCX01EQV9JU0FUVFk9JycKR05VTElCX01EQV9MU0VFSz0nJwpHTlVMSUJf TURBX01FTUNDUFk9JycKR05VTElCX01EQV9NS0RJUj0nJwpHTlVMSUJfTURBX01LVEVNUD0nJwpH TlVMSUJfTURBX09QRU49JycKR05VTElCX01EQV9QVVRFTlY9JycKR05VTElCX01EQV9QVVRXPScn CkdOVUxJQl9NREFfUkVBRD0nJwpHTlVMSUJfTURBX1JNRElSPScnCkdOVUxJQl9NREFfU1RSRFVQ PScnCkdOVUxJQl9NREFfU1dBQj0nJwpHTlVMSUJfTURBX1RFTVBOQU09JycKR05VTElCX01EQV9U WlNFVD0nJwpHTlVMSUJfTURBX1VNQVNLPScnCkdOVUxJQl9NREFfVU5MSU5LPScnCkdOVUxJQl9N REFfV1JJVEU9JycKR05VTElCX01FTUNIUj0nJwpHTlVMSUJfTUVNTUVNPScnCkdOVUxJQl9NRU1Q Q1BZPScnCkdOVUxJQl9NRU1SQ0hSPScnCkdOVUxJQl9NS0RJUj0nJwpHTlVMSUJfTUtESVJBVD0n JwpHTlVMSUJfTUtEVEVNUD0nJwpHTlVMSUJfTUtGSUZPPScnCkdOVUxJQl9NS0ZJRk9BVD0nJwpH TlVMSUJfTUtOT0Q9JycKR05VTElCX01LTk9EQVQ9JycKR05VTElCX01LT1NURU1QPScnCkdOVUxJ Ql9NS09TVEVNUFM9JycKR05VTElCX01LU1RFTVA9JycKR05VTElCX01LU1RFTVBTPScnCkdOVUxJ Ql9NS1RJTUU9JycKR05VTElCX05BTk9TTEVFUD0nJwpHTlVMSUJfTk9OQkxPQ0tJTkc9JycKR05V TElCX09CU1RBQ0tfUFJJTlRGPScnCkdOVUxJQl9PQlNUQUNLX1BSSU5URl9QT1NJWD0nJwpHTlVM SUJfT1BFTj0nJwpHTlVMSUJfT1BFTkFUPScnCkdOVUxJQl9PUEVORElSPScnCkdOVUxJQl9PVkVS UklERVNfU1RSVUNUX1NUQVQ9JycKR05VTElCX09WRVJSSURFU19XSU5UX1Q9JycKR05VTElCX1BD TE9TRT0nJwpHTlVMSUJfUEVSUk9SPScnCkdOVUxJQl9QSVBFMj0nJwpHTlVMSUJfUElQRT0nJwpH TlVMSUJfUE9QRU49JycKR05VTElCX1BPU0lYX01FTUFMSUdOPScnCkdOVUxJQl9QT1NJWF9PUEVO UFQ9JycKR05VTElCX1BSRUFEPScnCkdOVUxJQl9QUklOVEY9JycKR05VTElCX1BSSU5URl9QT1NJ WD0nJwpHTlVMSUJfUFNFTEVDVD0nJwpHTlVMSUJfUFRIUkVBRF9TSUdNQVNLPScnCkdOVUxJQl9Q VFNOQU1FPScnCkdOVUxJQl9QVFNOQU1FX1I9JycKR05VTElCX1BVVEM9JycKR05VTElCX1BVVENI QVI9JycKR05VTElCX1BVVEVOVj0nJwpHTlVMSUJfUFVUUz0nJwpHTlVMSUJfUFdSSVRFPScnCkdO VUxJQl9RU09SVF9SPScnCkdOVUxJQl9SQUlTRT0nJwpHTlVMSUJfUkFORE9NPScnCkdOVUxJQl9S QU5ET01fUj0nJwpHTlVMSUJfUkFXTUVNQ0hSPScnCkdOVUxJQl9SRUFEPScnCkdOVUxJQl9SRUFE RElSPScnCkdOVUxJQl9SRUFETElOSz0nJwpHTlVMSUJfUkVBRExJTktBVD0nJwpHTlVMSUJfUkVB TExPQ0FSUkFZPScnCkdOVUxJQl9SRUFMTE9DX1BPU0lYPScnCkdOVUxJQl9SRUFMUEFUSD0nJwpH TlVMSUJfUkVNT1ZFPScnCkdOVUxJQl9SRU5BTUU9JycKR05VTElCX1JFTkFNRUFUPScnCkdOVUxJ Ql9SRVdJTkRESVI9JycKR05VTElCX1JNRElSPScnCkdOVUxJQl9SUE1BVENIPScnCkdOVUxJQl9T Q0FORElSPScnCkdOVUxJQl9TQ0FORj0nJwpHTlVMSUJfU0VDVVJFX0dFVEVOVj0nJwpHTlVMSUJf U0VMRUNUPScnCkdOVUxJQl9TRVRFTlY9JycKR05VTElCX1NFVEhPU1ROQU1FPScnCkdOVUxJQl9T SUdBQkJSRVZfTlA9JycKR05VTElCX1NJR0FDVElPTj0nJwpHTlVMSUJfU0lHREVTQ1JfTlA9JycK R05VTElCX1NJR05BTF9IX1NJR1BJUEU9JycKR05VTElCX1NJR1BST0NNQVNLPScnCkdOVUxJQl9T TEVFUD0nJwpHTlVMSUJfU05QUklOVEY9JycKR05VTElCX1NQUklOVEZfUE9TSVg9JycKR05VTElC X1NUQVQ9JycKR05VTElCX1NURElPX0hfTk9OQkxPQ0tJTkc9JycKR05VTElCX1NURElPX0hfU0lH UElQRT0nJwpHTlVMSUJfU1RQQ1BZPScnCkdOVUxJQl9TVFBOQ1BZPScnCkdOVUxJQl9TVFJDQVNF U1RSPScnCkdOVUxJQl9TVFJDSFJOVUw9JycKR05VTElCX1NUUkRVUD0nJwpHTlVMSUJfU1RSRVJS T1I9JycKR05VTElCX1NUUkVSUk9STkFNRV9OUD0nJwpHTlVMSUJfU1RSRVJST1JfUj0nJwpHTlVM SUJfU1RSRlRJTUU9JycKR05VTElCX1NUUk5DQVQ9JycKR05VTElCX1NUUk5EVVA9JycKR05VTElC X1NUUk5MRU49JycKR05VTElCX1NUUlBCUks9JycKR05VTElCX1NUUlBUSU1FPScnCkdOVUxJQl9T VFJTRVA9JycKR05VTElCX1NUUlNJR05BTD0nJwpHTlVMSUJfU1RSU1RSPScnCkdOVUxJQl9TVFJU T0Q9JycKR05VTElCX1NUUlRPSU1BWD0nJwpHTlVMSUJfU1RSVE9LX1I9JycKR05VTElCX1NUUlRP TEQ9JycKR05VTElCX1NUUlRPTEw9JycKR05VTElCX1NUUlRPVUxMPScnCkdOVUxJQl9TVFJUT1VN QVg9JycKR05VTElCX1NUUlZFUlNDTVA9JycKR05VTElCX1NZTUxJTks9JycKR05VTElCX1NZTUxJ TktBVD0nJwpHTlVMSUJfU1lTVEVNX1BPU0lYPScnCkdOVUxJQl9USU1FR009JycKR05VTElCX1RJ TUVTUEVDX0dFVD0nJwpHTlVMSUJfVElNRV9SPScnCkdOVUxJQl9USU1FX1JaPScnCkdOVUxJQl9U TVBGSUxFPScnCkdOVUxJQl9UUlVOQ0FURT0nJwpHTlVMSUJfVFRZTkFNRV9SPScnCkdOVUxJQl9U WlNFVD0nJwpHTlVMSUJfVU5JU1REX0hfTk9OQkxPQ0tJTkc9JycKR05VTElCX1VOSVNURF9IX1NJ R1BJUEU9JycKR05VTElCX1VOTElOSz0nJwpHTlVMSUJfVU5MSU5LQVQ9JycKR05VTElCX1VOTE9D S1BUPScnCkdOVUxJQl9VTlNFVEVOVj0nJwpHTlVMSUJfVVNMRUVQPScnCkdOVUxJQl9VVElNRU5T QVQ9JycKR05VTElCX1ZBU1BSSU5URj0nJwpHTlVMSUJfVkRQUklOVEY9JycKR05VTElCX1ZGUFJJ TlRGPScnCkdOVUxJQl9WRlBSSU5URl9QT1NJWD0nJwpHTlVMSUJfVkZTQ0FORj0nJwpHTlVMSUJf VlBSSU5URj0nJwpHTlVMSUJfVlBSSU5URl9QT1NJWD0nJwpHTlVMSUJfVlNDQU5GPScnCkdOVUxJ Ql9WU05QUklOVEY9JycKR05VTElCX1ZTUFJJTlRGX1BPU0lYPScnCkdOVUxJQl9XQVJOX0NGTEFH Uz0nIC1mbm8tY29tbW9uIC1XYWxsIC1XZGF0ZS10aW1lIC1XZGlzYWJsZWQtb3B0aW1pemF0aW9u IC1XZG91YmxlLXByb21vdGlvbiAtV2R1cGxpY2F0ZWQtY29uZCAtV2V4dHJhIC1XZm9ybWF0LXNp Z25lZG5lc3MgLVdpbml0LXNlbGYgLVdpbnZhbGlkLXBjaCAtV2xvZ2ljYWwtb3AgLVdtaXNzaW5n LWRlY2xhcmF0aW9ucyAtV21pc3NpbmctaW5jbHVkZS1kaXJzIC1XbWlzc2luZy1wcm90b3R5cGVz IC1XbmVzdGVkLWV4dGVybnMgLVdudWxsLWRlcmVmZXJlbmNlIC1Xb2xkLXN0eWxlLWRlZmluaXRp b24gLVdvcGVubXAtc2ltZCAtV3BhY2tlZCAtV3BvaW50ZXItYXJpdGggLVdzdHJpY3QtcHJvdG90 eXBlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCAtV3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0 dXJuIC1Xc3VnZ2VzdC1maW5hbC1tZXRob2RzIC1Xc3VnZ2VzdC1maW5hbC10eXBlcyAtV3RyYW1w b2xpbmVzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24tcHJhZ21hcyAtV3ZhcmlhZGljLW1hY3Jv cyAtV3ZlY3Rvci1vcGVyYXRpb24tcGVyZm9ybWFuY2UgLVd3cml0ZS1zdHJpbmdzIC1XYXJyYXkt Ym91bmRzPTIgLVdhdHRyaWJ1dGUtYWxpYXM9MiAtV2Zvcm1hdD0yIC1XZm9ybWF0LXRydW5jYXRp b249MiAtV2ltcGxpY2l0LWZhbGx0aHJvdWdoPTUgLVdzaGlmdC1vdmVyZmxvdz0yIC1XdmxhLWxh cmdlci10aGFuPTQwMzEgLVdyZWR1bmRhbnQtZGVjbHMgLVduby1taXNzaW5nLWZpZWxkLWluaXRp YWxpemVycyAtV25vLW92ZXJyaWRlLWluaXQgLVduby1zaWduLWNvbXBhcmUgLVduby10eXBlLWxp bWl0cyAtV25vLXVudXNlZC1wYXJhbWV0ZXIgLVduby1mb3JtYXQtbm9ubGl0ZXJhbCcKR05VTElC X1dDVE9NQj0nJwpHTlVMSUJfV1JJVEU9JycKR05VTElCX19FWElUPScnCkdOVVNURVBfQ0ZMQUdT PScnCkdOVV9PQkpDX0NGTEFHUz0nJwpHT0JKRUNUX0NGTEFHUz0nJwpHT0JKRUNUX0xJQlM9JycK R1JFUD0nL2Jpbi9ncmVwJwpHU0VUVElOR1NfQ0ZMQUdTPScnCkdTRVRUSU5HU19MSUJTPScnCkdU S19DRkxBR1M9JycKR1RLX0xJQlM9JycKR1RLX09CSj0nJwpHWklQX1BST0c9Jy9iaW4vZ3ppcCcK SEFSRkJVWlpfQ0ZMQUdTPScnCkhBUkZCVVpaX0xJQlM9JycKSEFWRV9BTElHTkVEX0FMTE9DPScn CkhBVkVfQUxMT0NBX0g9JycKSEFWRV9BTFBIQVNPUlQ9JycKSEFWRV9BVE9MTD0nJwpIQVZFX0M5 OV9TVERJTlRfSD0nJwpIQVZFX0NBTk9OSUNBTElaRV9GSUxFX05BTUU9JycKSEFWRV9DSE9XTj0n JwpIQVZFX0NMT1NFRElSPScnCkhBVkVfQ09QWV9GSUxFX1JBTkdFPScnCkhBVkVfREVDTF9ESVJG RD0nJwpIQVZFX0RFQ0xfRUNWVD0nJwpIQVZFX0RFQ0xfRU5WSVJPTj0nJwpIQVZFX0RFQ0xfRVhF Q1ZQRT0nJwpIQVZFX0RFQ0xfRkNIRElSPScnCkhBVkVfREVDTF9GQ0xPU0VBTEw9JycKSEFWRV9E RUNMX0ZDVlQ9JycKSEFWRV9ERUNMX0ZEQVRBU1lOQz0nJwpIQVZFX0RFQ0xfRkRPUEVORElSPScn CkhBVkVfREVDTF9GUFVSR0U9JycKSEFWRV9ERUNMX0ZTRUVLTz0nJwpIQVZFX0RFQ0xfRlRFTExP PScnCkhBVkVfREVDTF9HQ1ZUPScnCkhBVkVfREVDTF9HRVRERUxJTT0nJwpIQVZFX0RFQ0xfR0VU RE9NQUlOTkFNRT0nJwpIQVZFX0RFQ0xfR0VUTElORT0nJwpIQVZFX0RFQ0xfR0VUTE9BREFWRz0n JwpIQVZFX0RFQ0xfR0VUTE9HSU49JycKSEFWRV9ERUNMX0dFVExPR0lOX1I9JycKSEFWRV9ERUNM X0dFVFBBR0VTSVpFPScnCkhBVkVfREVDTF9HRVRVU0VSU0hFTEw9JycKSEFWRV9ERUNMX0lNQVhB QlM9JycKSEFWRV9ERUNMX0lNQVhESVY9JycKSEFWRV9ERUNMX0lOSVRTVEFURT0nJwpIQVZFX0RF Q0xfTE9DQUxUSU1FX1I9JycKSEFWRV9ERUNMX01FTU1FTT0nJwpIQVZFX0RFQ0xfTUVNUkNIUj0n JwpIQVZFX0RFQ0xfT0JTVEFDS19QUklOVEY9JycKSEFWRV9ERUNMX1NFVEVOVj0nJwpIQVZFX0RF Q0xfU0VUSE9TVE5BTUU9JycKSEFWRV9ERUNMX1NFVFNUQVRFPScnCkhBVkVfREVDTF9TTlBSSU5U Rj0nJwpIQVZFX0RFQ0xfU1RSRFVQPScnCkhBVkVfREVDTF9TVFJFUlJPUl9SPScnCkhBVkVfREVD TF9TVFJORFVQPScnCkhBVkVfREVDTF9TVFJOTEVOPScnCkhBVkVfREVDTF9TVFJTSUdOQUw9JycK SEFWRV9ERUNMX1NUUlRPSU1BWD0nJwpIQVZFX0RFQ0xfU1RSVE9LX1I9JycKSEFWRV9ERUNMX1NU UlRPVU1BWD0nJwpIQVZFX0RFQ0xfVFJVTkNBVEU9JycKSEFWRV9ERUNMX1RUWU5BTUVfUj0nJwpI QVZFX0RFQ0xfVU5TRVRFTlY9JycKSEFWRV9ERUNMX1ZTTlBSSU5URj0nJwpIQVZFX0RJUkVOVF9I PScnCkhBVkVfRFBSSU5URj0nJwpIQVZFX0RVUDM9JycKSEFWRV9FVUlEQUNDRVNTPScnCkhBVkVf RVhFQ1ZQRT0nJwpIQVZFX0VYUExJQ0lUX0JaRVJPPScnCkhBVkVfRkFDQ0VTU0FUPScnCkhBVkVf RkNIRElSPScnCkhBVkVfRkNITU9EQVQ9JycKSEFWRV9GQ0hPV05BVD0nJwpIQVZFX0ZDTlRMPScn CkhBVkVfRkRBVEFTWU5DPScnCkhBVkVfRkRPUEVORElSPScnCkhBVkVfRkZTTD0nJwpIQVZFX0ZG U0xMPScnCkhBVkVfRlNFRUtPPScnCkhBVkVfRlNUQVRBVD0nJwpIQVZFX0ZTWU5DPScnCkhBVkVf RlRFTExPPScnCkhBVkVfRlRSVU5DQVRFPScnCkhBVkVfRlVUSU1FTlM9JycKSEFWRV9HRVREVEFC TEVTSVpFPScnCkhBVkVfR0VURU5UUk9QWT0nJwpIQVZFX0dFVEdST1VQUz0nJwpIQVZFX0dFVEhP U1ROQU1FPScnCkhBVkVfR0VUTE9HSU49JycKSEFWRV9HRVRPUFRfSD0nJwpIQVZFX0dFVFBBR0VT SVpFPScnCkhBVkVfR0VUUEFTUz0nJwpIQVZFX0dFVFJBTkRPTT0nJwpIQVZFX0dFVFNVQk9QVD0n JwpIQVZFX0dFVFRJTUVPRkRBWT0nJwpIQVZFX0dFVFVNQVNLPScnCkhBVkVfR1JBTlRQVD0nJwpI QVZFX0dST1VQX01FTUJFUj0nJwpIQVZFX0lNQVhESVZfVD0nJwpIQVZFX0lOSVRTVEFURT0nJwpI QVZFX0lOVFRZUEVTX0g9JycKSEFWRV9MQ0hNT0Q9JycKSEFWRV9MQ0hPV049JycKSEFWRV9MSUJH TVA9JycKSEFWRV9MSUJTRUNDT01QPScnCkhBVkVfTElOSz0nJwpIQVZFX0xJTktBVD0nJwpIQVZF X0xTVEFUPScnCkhBVkVfTUFYX0FMSUdOX1Q9JycKSEFWRV9NQlNMRU49JycKSEFWRV9NQlRPV0M9 JycKSEFWRV9NRU1QQ1BZPScnCkhBVkVfTUtESVJBVD0nJwpIQVZFX01LRFRFTVA9JycKSEFWRV9N S0ZJRk89JycKSEFWRV9NS0ZJRk9BVD0nJwpIQVZFX01LTk9EPScnCkhBVkVfTUtOT0RBVD0nJwpI QVZFX01LT1NURU1QPScnCkhBVkVfTUtPU1RFTVBTPScnCkhBVkVfTUtTVEVNUD0nJwpIQVZFX01L U1RFTVBTPScnCkhBVkVfTU9EVUxFUz0neWVzJwpIQVZFX05BTk9TTEVFUD0nJwpIQVZFX05BVElW RV9DT01QPSdubycKSEFWRV9PUEVOQVQ9JycKSEFWRV9PUEVORElSPScnCkhBVkVfT1NfSD0nJwpI QVZFX1BDTE9TRT0nJwpIQVZFX1BEVU1QRVI9J3llcycKSEFWRV9QSVBFMj0nJwpIQVZFX1BJUEU9 JycKSEFWRV9QT1BFTj0nJwpIQVZFX1BPU0lYX01FTUFMSUdOPScnCkhBVkVfUE9TSVhfT1BFTlBU PScnCkhBVkVfUE9TSVhfU0lHTkFMQkxPQ0tJTkc9JycKSEFWRV9QUkVBRD0nJwpIQVZFX1BTRUxF Q1Q9JycKSEFWRV9QVEhSRUFEX1NJR01BU0s9JycKSEFWRV9QVFNOQU1FPScnCkhBVkVfUFRTTkFN RV9SPScnCkhBVkVfUFdSSVRFPScnCkhBVkVfUVNPUlRfUj0nJwpIQVZFX1JBSVNFPScnCkhBVkVf UkFORE9NPScnCkhBVkVfUkFORE9NX0g9JycKSEFWRV9SQU5ET01fUj0nJwpIQVZFX1JBV01FTUNI Uj0nJwpIQVZFX1JFQURESVI9JycKSEFWRV9SRUFETElOSz0nJwpIQVZFX1JFQURMSU5LQVQ9JycK SEFWRV9SRUFMTE9DQVJSQVk9JycKSEFWRV9SRUFMUEFUSD0nJwpIQVZFX1JFTkFNRUFUPScnCkhB VkVfUkVXSU5ERElSPScnCkhBVkVfUlBNQVRDSD0nJwpIQVZFX1NDQU5ESVI9JycKSEFWRV9TRUND T01QPScnCkhBVkVfU0VDVVJFX0dFVEVOVj0nJwpIQVZFX1NFVEVOVj0nJwpIQVZFX1NFVEhPU1RO QU1FPScnCkhBVkVfU0VUU1RBVEU9JycKSEFWRV9TSUdBQkJSRVZfTlA9JycKSEFWRV9TSUdBQ1RJ T049JycKSEFWRV9TSUdERVNDUl9OUD0nJwpIQVZFX1NJR0hBTkRMRVJfVD0nJwpIQVZFX1NJR0lO Rk9fVD0nJwpIQVZFX1NJR05FRF9TSUdfQVRPTUlDX1Q9JycKSEFWRV9TSUdORURfV0NIQVJfVD0n JwpIQVZFX1NJR05FRF9XSU5UX1Q9JycKSEFWRV9TSUdTRVRfVD0nJwpIQVZFX1NMRUVQPScnCkhB VkVfU1RESU5UX0g9JycKSEFWRV9TVFBDUFk9JycKSEFWRV9TVFBOQ1BZPScnCkhBVkVfU1RSQ0FT RVNUUj0nJwpIQVZFX1NUUkNIUk5VTD0nJwpIQVZFX1NUUkVSUk9STkFNRV9OUD0nJwpIQVZFX1NU UlBCUks9JycKSEFWRV9TVFJQVElNRT0nJwpIQVZFX1NUUlNFUD0nJwpIQVZFX1NUUlRPRD0nJwpI QVZFX1NUUlRPTEQ9JycKSEFWRV9TVFJUT0xMPScnCkhBVkVfU1RSVE9VTEw9JycKSEFWRV9TVFJV Q1RfUkFORE9NX0RBVEE9JycKSEFWRV9TVFJVQ1RfU0lHQUNUSU9OX1NBX1NJR0FDVElPTj0nJwpI QVZFX1NUUlVDVF9USU1FVkFMPScnCkhBVkVfU1RSVkVSU0NNUD0nJwpIQVZFX1NZTUxJTks9JycK SEFWRV9TWU1MSU5LQVQ9JycKSEFWRV9TWVNfQklUWVBFU19IPScnCkhBVkVfU1lTX0NERUZTX0g9 JycKSEFWRV9TWVNfSU5UVFlQRVNfSD0nJwpIQVZFX1NZU19MT0FEQVZHX0g9JycKSEFWRV9TWVNf UEFSQU1fSD0nJwpIQVZFX1NZU19SQU5ET01fSD0nJwpIQVZFX1NZU19TRUxFQ1RfSD0nJwpIQVZF X1NZU19USU1FX0g9JycKSEFWRV9TWVNfVFlQRVNfSD0nJwpIQVZFX1RJTUVHTT0nJwpIQVZFX1RJ TUVTUEVDX0dFVD0nJwpIQVZFX1RJTUVaT05FX1Q9JycKSEFWRV9UWVBFX1ZPTEFUSUxFX1NJR19B VE9NSUNfVD0nJwpIQVZFX1VOSVNURF9IPScnCkhBVkVfVU5MSU5LQVQ9JycKSEFWRV9VTkxPQ0tQ VD0nJwpIQVZFX1VTTEVFUD0nJwpIQVZFX1VUSU1FTlNBVD0nJwpIQVZFX1ZBU1BSSU5URj0nJwpI QVZFX1ZEUFJJTlRGPScnCkhBVkVfV0NIQVJfSD0nJwpIQVZFX1dDSEFSX1Q9JycKSEFWRV9XSU5T T0NLMl9IPScnCkhBVkVfWFNFUlZFUj0nJwpIQVZFX19FWElUPScnCkhZQlJJRF9NQUxMT0M9JycK SUVFRTc1NF9IPScnCklNQUdFTUFHSUNLX0NGTEFHUz0nJwpJTUFHRU1BR0lDS19MSUJTPScnCklO Q0xVREVfTkVYVD0nJwpJTkNMVURFX05FWFRfQVNfRklSU1RfRElSRUNUSVZFPScnCklOU1RBTExf QVJDSF9JTkRFUF9FWFRSQT0naW5zdGFsbC1ldGMnCklOU1RBTExfREFUQT0nJHtJTlNUQUxMfSAt bSA2NDQnCklOU1RBTExfSU5GTz0nL3Vzci9iaW4vaW5zdGFsbC1pbmZvJwpJTlNUQUxMX1BST0dS QU09JyR7SU5TVEFMTH0nCklOU1RBTExfU0NSSVBUPScke0lOU1RBTEx9JwpJTlQzMl9NQVhfTFRf SU5UTUFYX01BWD0nJwpJTlQ2NF9NQVhfRVFfTE9OR19NQVg9JycKSlNPTl9DRkxBR1M9JycKSlNP Tl9MSUJTPScnCkpTT05fT0JKPScnCktRVUVVRV9DRkxBR1M9JycKS1FVRVVFX0xJQlM9JycKS1JC NExJQj0nJwpLUkI1TElCPScnCkxDTVMyX0NGTEFHUz0nJwpMQ01TMl9MSUJTPScnCkxERkxBR1M9 Jy1ML2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9saWIgLUwvdXNyL2xpYiAtTC9saWInCkxEX1NXSVRD SF9TWVNURU09JycKTERfU1dJVENIX1NZU1RFTV9URU1BQ1M9JycKTERfU1dJVENIX1hfU0lURT0n JwpMRF9TV0lUQ0hfWF9TSVRFX1JQQVRIPScnCkxJQkdDQ0pJVF9MSUI9JycKTElCR0lGPScnCkxJ QkdNUD0nJwpMSUJHTlVUTFNfQ0ZMQUdTPScnCkxJQkdOVVRMU19MSUJTPScnCkxJQkdOVV9MSUJE RVBTPScnCkxJQkdOVV9MVExJQkRFUFM9JycKTElCR1BNPScnCkxJQkhFU0lPRD0nJwpMSUJJTlRM PScnCkxJQkpQRUc9JycKTElCTU9EVUxFUz0nLWxkbCcKTElCT0JKUz0nJwpMSUJPVEZfQ0ZMQUdT PScnCkxJQk9URl9MSUJTPScnCkxJQlBORz0nJwpMSUJSRVNPTFY9JycKTElCUz0nLWxnY2NqaXQg ICcKTElCU0VDQ09NUF9DRkxBR1M9JycKTElCU0VDQ09NUF9MSUJTPScnCkxJQlNFTElOVVhfTElC Uz0nJwpMSUJTT1VORD0nJwpMSUJTWVNURU1EX0NGTEFHUz0nJwpMSUJTWVNURU1EX0xJQlM9JycK TElCU19FQ0xJRU5UPScnCkxJQlNfR05VU1RFUD0nJwpMSUJTX01BSUw9JycKTElCU19TWVNURU09 JycKTElCU19URVJNQ0FQPScnCkxJQlRJRkY9JycKTElCWE1FTlU9JycKTElCWE1MMl9DRkxBR1M9 JycKTElCWE1MMl9MSUJTPScnCkxJQlhNVT0nJwpMSUJYUE09JycKTElCWFNNPScnCkxJQlhUUjY9 JycKTElCWFRfT1RIRVI9JycKTElCWF9PVEhFUj0nJwpMSUJaPSctbHonCkxJQl9BQ0w9JycKTElC X0NMT0NLX0dFVFRJTUU9JycKTElCX0VBQ0NFU1M9JycKTElCX0VYRUNJTkZPPScnCkxJQl9HRVRS QU5ET009JycKTElCX01BVEg9JycKTElCX1BUSFJFQUQ9JycKTElCX1BUSFJFQURfU0lHTUFTSz0n JwpMSUJfVElNRVJfVElNRT0nJwpMSUJfV1NPQ0szMj0nJwpMSU1JVFNfSD0nJwpMTl9TX0ZJTEVP TkxZPSdsbiAtcycKTFRMSUJHTVA9JycKTFRMSUJJTlRMPScnCkxUTElCT0JKUz0nJwpNMTdOX0ZM VF9DRkxBR1M9JycKTTE3Tl9GTFRfTElCUz0nJwpNQUtFSU5GTz0nbWFrZWluZm8nCk1BS0VfUFJP Rz0nJwpNS0RJUl9QPScnCk1PRFVMRVNfT0JKPSdlbWFjcy1tb2R1bGUubycKTU9EVUxFU19TRUNP TkRBUllfU1VGRklYPScnCk1PRFVMRVNfU1VGRklYPScuc28nCk5FWFRfQVNfRklSU1RfRElSRUNU SVZFX0RJUkVOVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX0VSUk5PX0g9JycKTkVYVF9B U19GSVJTVF9ESVJFQ1RJVkVfRkNOVExfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9HRVRP UFRfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElWRV9JTlRUWVBFU19IPScnCk5FWFRfQVNfRklS U1RfRElSRUNUSVZFX0xJTUlUU19IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NJR05BTF9I PScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURERFRl9IPScnCk5FWFRfQVNfRklSU1RfRElS RUNUSVZFX1NURElOVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NURElPX0g9JycKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfU1RETElCX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVf U1RSSU5HX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJVkVfU1lTX1JBTkRPTV9IPScnCk5FWFRf QVNfRklSU1RfRElSRUNUSVZFX1NZU19TRUxFQ1RfSD0nJwpORVhUX0FTX0ZJUlNUX0RJUkVDVElW RV9TWVNfU1RBVF9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1NZU19USU1FX0g9JycKTkVY VF9BU19GSVJTVF9ESVJFQ1RJVkVfU1lTX1RZUEVTX0g9JycKTkVYVF9BU19GSVJTVF9ESVJFQ1RJ VkVfVElNRV9IPScnCk5FWFRfQVNfRklSU1RfRElSRUNUSVZFX1VOSVNURF9IPScnCk5FWFRfRElS RU5UX0g9JycKTkVYVF9FUlJOT19IPScnCk5FWFRfRkNOVExfSD0nJwpORVhUX0dFVE9QVF9IPScn Ck5FWFRfSU5UVFlQRVNfSD0nJwpORVhUX0xJTUlUU19IPScnCk5FWFRfU0lHTkFMX0g9JycKTkVY VF9TVERERUZfSD0nJwpORVhUX1NURElOVF9IPScnCk5FWFRfU1RESU9fSD0nJwpORVhUX1NURExJ Ql9IPScnCk5FWFRfU1RSSU5HX0g9JycKTkVYVF9TWVNfUkFORE9NX0g9JycKTkVYVF9TWVNfU0VM RUNUX0g9JycKTkVYVF9TWVNfU1RBVF9IPScnCk5FWFRfU1lTX1RJTUVfSD0nJwpORVhUX1NZU19U WVBFU19IPScnCk5FWFRfVElNRV9IPScnCk5FWFRfVU5JU1REX0g9JycKTk9USUZZX0NGTEFHUz0n JwpOT1RJRllfTElCUz0nJwpOT1RJRllfT0JKPScnCk5TX09CSj0nJwpOU19PQkpDX09CSj0nJwpO VERJUj0nJwpOVExJQj0nJwpPQkpDPScnCk9CSkNGTEFHUz0nJwpPQkpFWFQ9J28nCk9USEVSX0ZJ TEVTPScnClBBQ0tBR0VfQlVHUkVQT1JUPSdidWctZ251LWVtYWNzQGdudS5vcmcnClBBQ0tBR0Vf TkFNRT0nR05VIEVtYWNzJwpQQUNLQUdFX1NUUklORz0nR05VIEVtYWNzIDI4LjAuNTAnClBBQ0tB R0VfVEFSTkFNRT0nZW1hY3MnClBBQ0tBR0VfVVJMPSdodHRwczovL3d3dy5nbnUub3JnL3NvZnR3 YXJlL2VtYWNzLycKUEFDS0FHRV9WRVJTSU9OPScyOC4wLjUwJwpQQVRIX1NFUEFSQVRPUj0nOicK UEFYQ1RMPScnClBBWENUTF9kdW1wZWQ9JycKUEFYQ1RMX25vdGR1bXBlZD0nJwpQS0dfQ09ORklH PScvdXNyL2Jpbi9wa2ctY29uZmlnJwpQS0dfQ09ORklHX0xJQkRJUj0nJwpQS0dfQ09ORklHX1BB VEg9JycKUE5HX0NGTEFHUz0nJwpQTkdfTElCUz0nJwpQT1NUX0FMTE9DX09CSj0nJwpQUkFHTUFf Q09MVU1OUz0nJwpQUkFHTUFfU1lTVEVNX0hFQURFUj0nJwpQUkVfQUxMT0NfT0JKPScnClBSSVBU Ul9QUkVGSVg9JycKUFJPRklMSU5HX0NGTEFHUz0nJwpQVEhSRUFEX0hfREVGSU5FU19TVFJVQ1Rf VElNRVNQRUM9JycKUFRSRElGRl9UX1NVRkZJWD0nJwpSQUxMT0NfT0JKPScnClJBTkxJQj0ncmFu bGliJwpSRVBMQUNFX0FDQ0VTUz0nJwpSRVBMQUNFX0FMSUdORURfQUxMT0M9JycKUkVQTEFDRV9D QUxMT0M9JycKUkVQTEFDRV9DQU5PTklDQUxJWkVfRklMRV9OQU1FPScnClJFUExBQ0VfQ0hPV049 JycKUkVQTEFDRV9DTE9TRT0nJwpSRVBMQUNFX0NMT1NFRElSPScnClJFUExBQ0VfQ1JFQVQ9JycK UkVQTEFDRV9DVElNRT0nJwpSRVBMQUNFX0RJUkZEPScnClJFUExBQ0VfRFBSSU5URj0nJwpSRVBM QUNFX0RVUDI9JycKUkVQTEFDRV9EVVA9JycKUkVQTEFDRV9FWEVDTD0nJwpSRVBMQUNFX0VYRUNM RT0nJwpSRVBMQUNFX0VYRUNMUD0nJwpSRVBMQUNFX0VYRUNWPScnClJFUExBQ0VfRVhFQ1ZFPScn ClJFUExBQ0VfRVhFQ1ZQPScnClJFUExBQ0VfRVhFQ1ZQRT0nJwpSRVBMQUNFX0ZBQ0NFU1NBVD0n JwpSRVBMQUNFX0ZDSE1PREFUPScnClJFUExBQ0VfRkNIT1dOQVQ9JycKUkVQTEFDRV9GQ0xPU0U9 JycKUkVQTEFDRV9GQ05UTD0nJwpSRVBMQUNFX0ZET1BFTj0nJwpSRVBMQUNFX0ZET1BFTkRJUj0n JwpSRVBMQUNFX0ZGTFVTSD0nJwpSRVBMQUNFX0ZGU0xMPScnClJFUExBQ0VfRk9QRU49JycKUkVQ TEFDRV9GUFJJTlRGPScnClJFUExBQ0VfRlBVUkdFPScnClJFUExBQ0VfRlJFRT0nJwpSRVBMQUNF X0ZSRU9QRU49JycKUkVQTEFDRV9GU0VFSz0nJwpSRVBMQUNFX0ZTRUVLTz0nJwpSRVBMQUNFX0ZT VEFUPScnClJFUExBQ0VfRlNUQVRBVD0nJwpSRVBMQUNFX0ZURUxMPScnClJFUExBQ0VfRlRFTExP PScnClJFUExBQ0VfRlRSVU5DQVRFPScnClJFUExBQ0VfRlVUSU1FTlM9JycKUkVQTEFDRV9HRVRD V0Q9JycKUkVQTEFDRV9HRVRERUxJTT0nJwpSRVBMQUNFX0dFVERPTUFJTk5BTUU9JycKUkVQTEFD RV9HRVREVEFCTEVTSVpFPScnClJFUExBQ0VfR0VUR1JPVVBTPScnClJFUExBQ0VfR0VUTElORT0n JwpSRVBMQUNFX0dFVExPR0lOX1I9JycKUkVQTEFDRV9HRVRQQUdFU0laRT0nJwpSRVBMQUNFX0dF VFBBU1M9JycKUkVQTEFDRV9HRVRSQU5ET009JycKUkVQTEFDRV9HRVRUSU1FT0ZEQVk9JycKUkVQ TEFDRV9HTVRJTUU9JycKUkVQTEFDRV9JTklUU1RBVEU9JycKUkVQTEFDRV9JU0FUVFk9JycKUkVQ TEFDRV9MQ0hPV049JycKUkVQTEFDRV9MSU5LPScnClJFUExBQ0VfTElOS0FUPScnClJFUExBQ0Vf TE9DQUxUSU1FPScnClJFUExBQ0VfTE9DQUxUSU1FX1I9JycKUkVQTEFDRV9MU0VFSz0nJwpSRVBM QUNFX0xTVEFUPScnClJFUExBQ0VfTUFMTE9DPScnClJFUExBQ0VfTUJUT1dDPScnClJFUExBQ0Vf TUVNQ0hSPScnClJFUExBQ0VfTUVNTUVNPScnClJFUExBQ0VfTUtESVI9JycKUkVQTEFDRV9NS0ZJ Rk89JycKUkVQTEFDRV9NS0ZJRk9BVD0nJwpSRVBMQUNFX01LTk9EPScnClJFUExBQ0VfTUtOT0RB VD0nJwpSRVBMQUNFX01LU1RFTVA9JycKUkVQTEFDRV9NS1RJTUU9JycKUkVQTEFDRV9OQU5PU0xF RVA9JycKUkVQTEFDRV9OVUxMPScnClJFUExBQ0VfT0JTVEFDS19QUklOVEY9JycKUkVQTEFDRV9P UEVOPScnClJFUExBQ0VfT1BFTkFUPScnClJFUExBQ0VfT1BFTkRJUj0nJwpSRVBMQUNFX1BFUlJP Uj0nJwpSRVBMQUNFX1BPUEVOPScnClJFUExBQ0VfUE9TSVhfTUVNQUxJR049JycKUkVQTEFDRV9Q UkVBRD0nJwpSRVBMQUNFX1BSSU5URj0nJwpSRVBMQUNFX1BTRUxFQ1Q9JycKUkVQTEFDRV9QVEhS RUFEX1NJR01BU0s9JycKUkVQTEFDRV9QVFNOQU1FPScnClJFUExBQ0VfUFRTTkFNRV9SPScnClJF UExBQ0VfUFVURU5WPScnClJFUExBQ0VfUFdSSVRFPScnClJFUExBQ0VfUVNPUlRfUj0nJwpSRVBM QUNFX1JBSVNFPScnClJFUExBQ0VfUkFORE9NPScnClJFUExBQ0VfUkFORE9NX1I9JycKUkVQTEFD RV9SRUFEPScnClJFUExBQ0VfUkVBRExJTks9JycKUkVQTEFDRV9SRUFETElOS0FUPScnClJFUExB Q0VfUkVBTExPQz0nJwpSRVBMQUNFX1JFQUxQQVRIPScnClJFUExBQ0VfUkVNT1ZFPScnClJFUExB Q0VfUkVOQU1FPScnClJFUExBQ0VfUkVOQU1FQVQ9JycKUkVQTEFDRV9STURJUj0nJwpSRVBMQUNF X1NFTEVDVD0nJwpSRVBMQUNFX1NFVEVOVj0nJwpSRVBMQUNFX1NFVFNUQVRFPScnClJFUExBQ0Vf U0xFRVA9JycKUkVQTEFDRV9TTlBSSU5URj0nJwpSRVBMQUNFX1NQUklOVEY9JycKUkVQTEFDRV9T VEFUPScnClJFUExBQ0VfU1RESU9fUkVBRF9GVU5DUz0nJwpSRVBMQUNFX1NURElPX1dSSVRFX0ZV TkNTPScnClJFUExBQ0VfU1RQTkNQWT0nJwpSRVBMQUNFX1NUUkNBU0VTVFI9JycKUkVQTEFDRV9T VFJDSFJOVUw9JycKUkVQTEFDRV9TVFJEVVA9JycKUkVQTEFDRV9TVFJFUlJPUj0nJwpSRVBMQUNF X1NUUkVSUk9STkFNRV9OUD0nJwpSRVBMQUNFX1NUUkVSUk9SX1I9JycKUkVQTEFDRV9TVFJGVElN RT0nJwpSRVBMQUNFX1NUUk5DQVQ9JycKUkVQTEFDRV9TVFJORFVQPScnClJFUExBQ0VfU1RSTkxF Tj0nJwpSRVBMQUNFX1NUUlNJR05BTD0nJwpSRVBMQUNFX1NUUlNUUj0nJwpSRVBMQUNFX1NUUlRP RD0nJwpSRVBMQUNFX1NUUlRPSU1BWD0nJwpSRVBMQUNFX1NUUlRPS19SPScnClJFUExBQ0VfU1RS VE9MRD0nJwpSRVBMQUNFX1NUUlRPVU1BWD0nJwpSRVBMQUNFX1NUUlVDVF9USU1FVkFMPScnClJF UExBQ0VfU1lNTElOSz0nJwpSRVBMQUNFX1NZTUxJTktBVD0nJwpSRVBMQUNFX1RJTUVHTT0nJwpS RVBMQUNFX1RNUEZJTEU9JycKUkVQTEFDRV9UUlVOQ0FURT0nJwpSRVBMQUNFX1RUWU5BTUVfUj0n JwpSRVBMQUNFX1RaU0VUPScnClJFUExBQ0VfVU5MSU5LPScnClJFUExBQ0VfVU5MSU5LQVQ9JycK UkVQTEFDRV9VTlNFVEVOVj0nJwpSRVBMQUNFX1VTTEVFUD0nJwpSRVBMQUNFX1VUSU1FTlNBVD0n JwpSRVBMQUNFX1ZBU1BSSU5URj0nJwpSRVBMQUNFX1ZEUFJJTlRGPScnClJFUExBQ0VfVkZQUklO VEY9JycKUkVQTEFDRV9WUFJJTlRGPScnClJFUExBQ0VfVlNOUFJJTlRGPScnClJFUExBQ0VfVlNQ UklOVEY9JycKUkVQTEFDRV9XQ1RPTUI9JycKUkVQTEFDRV9XUklURT0nJwpSU1ZHX0NGTEFHUz0n JwpSU1ZHX0xJQlM9JycKU0VQQ0hBUj0nJwpTRVRGQVRUUj0nJwpTRVRUSU5HU19DRkxBR1M9JycK U0VUVElOR1NfTElCUz0nJwpTSEVMTD0nL2Jpbi9iYXNoJwpTSUdfQVRPTUlDX1RfU1VGRklYPScn ClNJWkVfVF9TVUZGSVg9JycKU1REQUxJR05fSD0nJwpTVERERUZfSD0nJwpTVERJTlRfSD0nJwpT VUJESVJfTUFLRUZJTEVTX0lOPScnClNZU1RFTV9UWVBFPSdnbnUvbGludXgnClNZU19USU1FX0hf REVGSU5FU19TVFJVQ1RfVElNRVNQRUM9JycKVEVSTUNBUF9PQko9JycKVElNRV9IX0RFRklORVNf U1RSVUNUX1RJTUVTUEVDPScnClRJTUVfSF9ERUZJTkVTX1RJTUVfVVRDPScnClRPT0xLSVRfTElC Vz0nJwpVSU5UMzJfTUFYX0xUX1VJTlRNQVhfTUFYPScnClVJTlQ2NF9NQVhfRVFfVUxPTkdfTUFY PScnClVOREVGSU5FX1NUUlRPS19SPScnClVORVhFQ19PQko9JycKVU5JU1REX0hfREVGSU5FU19T VFJVQ1RfVElNRVNQRUM9JycKVU5JU1REX0hfSEFWRV9TWVNfUkFORE9NX0g9JycKVU5JU1REX0hf SEFWRV9XSU5TT0NLMl9IPScnClVOSVNURF9IX0hBVkVfV0lOU09DSzJfSF9BTkRfVVNFX1NPQ0tF VFM9JycKVVNFX0FDTD0nJwpWTUxJTUlUX09CSj0nJwpXMzJfTElCUz0nJwpXMzJfT0JKPScnClcz Ml9SRVNfTElOSz0nJwpXQVJOX0NGTEFHUz0nIC1mbm8tY29tbW9uIC1XYWxsIC1XZGF0ZS10aW1l IC1XZGlzYWJsZWQtb3B0aW1pemF0aW9uIC1XZG91YmxlLXByb21vdGlvbiAtV2R1cGxpY2F0ZWQt Y29uZCAtV2V4dHJhIC1XZm9ybWF0LXNpZ25lZG5lc3MgLVdpbml0LXNlbGYgLVdpbnZhbGlkLXBj aCAtV2xvZ2ljYWwtb3AgLVdtaXNzaW5nLWRlY2xhcmF0aW9ucyAtV21pc3NpbmctaW5jbHVkZS1k aXJzIC1XbWlzc2luZy1wcm90b3R5cGVzIC1XbmVzdGVkLWV4dGVybnMgLVdudWxsLWRlcmVmZXJl bmNlIC1Xb2xkLXN0eWxlLWRlZmluaXRpb24gLVdvcGVubXAtc2ltZCAtV3BhY2tlZCAtV3BvaW50 ZXItYXJpdGggLVdzdHJpY3QtcHJvdG90eXBlcyAtV3N1Z2dlc3QtYXR0cmlidXRlPWZvcm1hdCAt V3N1Z2dlc3QtYXR0cmlidXRlPW5vcmV0dXJuIC1Xc3VnZ2VzdC1maW5hbC1tZXRob2RzIC1Xc3Vn Z2VzdC1maW5hbC10eXBlcyAtV3RyYW1wb2xpbmVzIC1XdW5pbml0aWFsaXplZCAtV3Vua25vd24t cHJhZ21hcyAtV3VudXNlZC1tYWNyb3MgLVd2YXJpYWRpYy1tYWNyb3MgLVd2ZWN0b3Itb3BlcmF0 aW9uLXBlcmZvcm1hbmNlIC1Xd3JpdGUtc3RyaW5ncyAtV2FycmF5LWJvdW5kcz0yIC1XYXR0cmli dXRlLWFsaWFzPTIgLVdmb3JtYXQ9MiAtV2Zvcm1hdC10cnVuY2F0aW9uPTIgLVdpbXBsaWNpdC1m YWxsdGhyb3VnaD01IC1Xc2hpZnQtb3ZlcmZsb3c9MiAtV3ZsYS1sYXJnZXItdGhhbj00MDMxIC1X cmVkdW5kYW50LWRlY2xzIC1Xbm8tbWlzc2luZy1maWVsZC1pbml0aWFsaXplcnMgLVduby1vdmVy cmlkZS1pbml0IC1Xbm8tc2lnbi1jb21wYXJlIC1Xbm8tdHlwZS1saW1pdHMgLVduby11bnVzZWQt cGFyYW1ldGVyIC1Xbm8tZm9ybWF0LW5vbmxpdGVyYWwnCldDSEFSX1RfU1VGRklYPScnCldFQktJ VF9DRkxBR1M9JycKV0VCS0lUX0xJQlM9JycKV0VSUk9SX0NGTEFHUz0nJwpXSURHRVRfT0JKPScn CldJTkRPV1NfNjRfQklUX09GRl9UPScnCldJTkRPV1NfNjRfQklUX1NUX1NJWkU9JycKV0lORE9X U19TVEFUX0lOT0RFUz0nJwpXSU5ET1dTX1NUQVRfVElNRVNQRUM9JycKV0lORE9XX1NZU1RFTV9P Qko9JycKV0lORFJFUz0nJwpXSU5UX1RfU1VGRklYPScnClhBUkdTX0xJTUlUPScnClhDQl9MSUJT PScnClhDUlVOPScnClhEQkVfQ0ZMQUdTPScnClhEQkVfTElCUz0nJwpYRklYRVNfQ0ZMQUdTPScn ClhGSVhFU19MSUJTPScnClhGVF9DRkxBR1M9JycKWEZUX0xJQlM9JycKWEdTRUxPQko9JycKWElO RVJBTUFfQ0ZMQUdTPScnClhJTkVSQU1BX0xJQlM9JycKWE1FTlVfT0JKPScnClhNS01GPScnClhP Qko9JycKWFJBTkRSX0NGTEFHUz0nJwpYUkFORFJfTElCUz0nJwpYUkVOREVSX0xJQlM9JycKWFdJ REdFVFNfT0JKPScnClhfVE9PTEtJVF9UWVBFPSdub25lJwphY19jdF9DQz0nJwphY19jdF9PQkpD PScnCmFyY2hsaWJkaXI9JyR7bGliZXhlY2Rpcn0vZW1hY3MvJHt2ZXJzaW9ufS8ke2NvbmZpZ3Vy YXRpb259JwpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYml0bWFwZGlyPScnCmJ1aWxkPSdp NTg2LXBjLWxpbnV4LW11c2wnCmJ1aWxkX2FsaWFzPSdpNTg2LWxpbnV4LW11c2wnCmJ1aWxkX2Nw dT0naTU4NicKYnVpbGRfb3M9J2xpbnV4LW11c2wnCmJ1aWxkX3ZlbmRvcj0ncGMnCmNhY2hlX2Zp bGU9Jy9kZXYvbnVsbCcKY2Fub25pY2FsPSd4ODYtZ251LWxpbnV4LWdudScKY29tbWFfc3BhY2Vf dmVyc2lvbj0nJwpjb21tYV92ZXJzaW9uPScnCmNvbmZpZ3VyYXRpb249J3g4Ni1nbnUtbGludXgn CmNvcHlyaWdodD0nJwpkYXRhZGlyPScke2RhdGFyb290ZGlyfScKZGF0YXJvb3RkaXI9JyR7cHJl Zml4fS9zaGFyZScKZG9jZGlyPScke2RhdGFyb290ZGlyfS9kb2MvJHtQQUNLQUdFX1RBUk5BTUV9 JwpkdmlkaXI9JyR7ZG9jZGlyfScKZW1hY3NfbWFqb3JfdmVyc2lvbj0nMjgnCmV0Y2Rpcj0nJHtk YXRhZGlyfS9lbWFjcy8ke3ZlcnNpb259L2V0YycKZXRjZG9jZGlyPScke2RhdGFkaXJ9L2VtYWNz LyR7dmVyc2lvbn0vZXRjJwpleGVjX3ByZWZpeD0nTk9ORScKZ2FtZWRpcj0nJHtsb2NhbHN0YXRl ZGlyfS9nYW1lcy9lbWFjcycKZ2FtZWdyb3VwPScnCmdhbWV1c2VyPScnCmdsX0dOVUxJQl9FTkFC TEVEXzAzZTBhYWFkNGNiODljYTc1NzY1M2JkMzY3YTZjY2I3PScnCmdsX0dOVUxJQl9FTkFCTEVE XzI2MDk0MWMwZTVkYzY3ZWM5ZTg3ZDFmYjMyMWMzMDBiPScnCmdsX0dOVUxJQl9FTkFCTEVEXzUy NjQyOTRhYTBhNTU1NzU0MWI1M2M4Yzc0MWY3ZjMxPScnCmdsX0dOVUxJQl9FTkFCTEVEXzYwOTll OTczN2Y3NTdkYjM2YzQ3ZmE5ZDlmMDJlODhjPScnCmdsX0dOVUxJQl9FTkFCTEVEXzY4MmU2MDk2 MDRjY2FhYzZiZTM4MmU0ZWUzYTRlYWVjPScnCmdsX0dOVUxJQl9FTkFCTEVEXzkyNTY3N2YwMzQz ZGU2NGI4OWE5ZjBjNzkwYjQxMDRjPScnCmdsX0dOVUxJQl9FTkFCTEVEX2E5Nzg2ODUwZTk5OWFl NjVhODM2YTYwNDFlOGU1ZWQxPScnCmdsX0dOVUxJQl9FTkFCTEVEX2JlNDUzY2VjNWVlY2Y1NzMx YTI3NGYyZGU3ZjJkYjM2PScnCmdsX0dOVUxJQl9FTkFCTEVEX2Nsb2V4ZWM9JycKZ2xfR05VTElC X0VOQUJMRURfZGlyZmQ9JycKZ2xfR05VTElCX0VOQUJMRURfZHluYXJyYXk9JycKZ2xfR05VTElC X0VOQUJMRURfZXVpZGFjY2Vzcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9nZXRkdGFibGVzaXplPScn CmdsX0dOVUxJQl9FTkFCTEVEX2dldGdyb3Vwcz0nJwpnbF9HTlVMSUJfRU5BQkxFRF9pZHg9JycK Z2xfR05VTElCX0VOQUJMRURfbGNobW9kPScnCmdsX0dOVUxJQl9FTkFCTEVEX29wZW49JycKZ2xf R05VTElCX0VOQUJMRURfcmF3bWVtY2hyPScnCmdsX0dOVUxJQl9FTkFCTEVEX3NjcmF0Y2hfYnVm ZmVyPScnCmdsX0dOVUxJQl9FTkFCTEVEX3N0cnRvbGw9JycKZ2xfR05VTElCX0VOQUJMRURfdXRp bWVucz0nJwpnbF9MSUJPQkpTPScnCmdsX0xUTElCT0JKUz0nJwpnbHRlc3RzX0xJQk9CSlM9JycK Z2x0ZXN0c19MVExJQk9CSlM9JycKZ2x0ZXN0c19XSVRORVNTPScnCmhvc3Q9J3g4Ni1nbnUtbGlu dXgtZ251Jwpob3N0X2FsaWFzPSd4ODYtZ251LWxpbnV4Jwpob3N0X2NwdT0neDg2Jwpob3N0X29z PSdsaW51eC1nbnUnCmhvc3RfdmVuZG9yPSdnbnUnCmh0bWxkaXI9JyR7ZG9jZGlyfScKaW5jbHVk ZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3RkaXJ9L2luZm8nCmxp YmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJl eGVjJwpsaWJsb2NrZmlsZT0nJwpsaXNwZGlyPScke2RhdGFkaXJ9L2VtYWNzLyR7dmVyc2lvbn0v bGlzcCcKbGlzcGRpcnJlbD0nJHt2ZXJzaW9ufS9saXNwJwpsaXNwcGF0aD0nJHtsb2NhbGxpc3Bw YXRofToke3N0YW5kYXJkbGlzcHBhdGh9Jwpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2Fs ZScKbG9jYWxsaXNwcGF0aD0nJHtkYXRhZGlyfS9lbWFjcy8ke3ZlcnNpb259L3NpdGUtbGlzcDok e2RhdGFkaXJ9L2VtYWNzL3NpdGUtbGlzcCcKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicK bWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCm5zX2FwcGJpbmRpcj0nJwpuc19hcHBkaXI9JycK bnNfYXBwcmVzZGlyPScnCm5zX2FwcHNyYz0nJwpuc19jaGVja19maWxlPScnCm5zX3NlbGZfY29u dGFpbmVkPSdubycKb2xkaW5jbHVkZWRpcj0nL3Vzci9pbmNsdWRlJwpwZGZkaXI9JyR7ZG9jZGly fScKcHJlZml4PSdOT05FJwpwcm9ncmFtX3RyYW5zZm9ybV9uYW1lPSdzLHgseCwnCnBzZGlyPSck e2RvY2Rpcn0nCnJ1bnN0YXRlZGlyPScke2xvY2Fsc3RhdGVkaXJ9L3J1bicKc2JpbmRpcj0nJHtl eGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVkaXI9JyR7cHJlZml4fS9jb20nCnNyY2Rpcj0n Li4vZW1hY3MnCnN0YW5kYXJkbGlzcHBhdGg9JyR7bGlzcGRpcn0nCnN5c2NvbmZkaXI9JyR7cHJl Zml4fS9ldGMnCnRhcmdldF9hbGlhcz0nJwp2ZXJzaW9uPScnCndpdGhfbWFpbHV0aWxzPSd5ZXMn CnhfZGVmYXVsdF9zZWFyY2hfcGF0aD0nJwoKIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBG aWxlIHN1YnN0aXR1dGlvbnMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKCm1vZHVsZV9l bnZfc25pcHBldF8yNT0nLi4vZW1hY3Mvc3JjL21vZHVsZS1lbnYtMjUuaCcKbW9kdWxlX2Vudl9z bmlwcGV0XzI2PScuLi9lbWFjcy9zcmMvbW9kdWxlLWVudi0yNi5oJwptb2R1bGVfZW52X3NuaXBw ZXRfMjc9Jy4uL2VtYWNzL3NyYy9tb2R1bGUtZW52LTI3LmgnCm1vZHVsZV9lbnZfc25pcHBldF8y OD0nLi4vZW1hY3Mvc3JjL21vZHVsZS1lbnYtMjguaCcKCiMjIC0tLS0tLS0tLS0tICMjCiMjIGNv bmZkZWZzLmguICMjCiMjIC0tLS0tLS0tLS0tICMjCgovKiBjb25mZGVmcy5oICovCiNkZWZpbmUg UEFDS0FHRV9OQU1FICJHTlUgRW1hY3MiCiNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJlbWFjcyIK I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIjI4LjAuNTAiCiNkZWZpbmUgUEFDS0FHRV9TVFJJTkcg IkdOVSBFbWFjcyAyOC4wLjUwIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJidWctZ251LWVt YWNzQGdudS5vcmciCiNkZWZpbmUgUEFDS0FHRV9VUkwgImh0dHBzOi8vd3d3LmdudS5vcmcvc29m dHdhcmUvZW1hY3MvIgojZGVmaW5lIEhBVkVfUERVTVBFUiAxCiNkZWZpbmUgX0FMTF9TT1VSQ0Ug MQojZGVmaW5lIF9EQVJXSU5fQ19TT1VSQ0UgMQojZGVmaW5lIF9HTlVfU09VUkNFIDEKI2RlZmlu ZSBfSFBVWF9BTFRfWE9QRU5fU09DS0VUX0FQSSAxCiNkZWZpbmUgX05FVEJTRF9TT1VSQ0UgMQoj ZGVmaW5lIF9PUEVOQlNEX1NPVVJDRSAxCiNkZWZpbmUgX1BPU0lYX1BUSFJFQURfU0VNQU5USUNT IDEKI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfQVRUUklCU19FWFRfXyAxCiNkZWZpbmUg X19TVERDX1dBTlRfSUVDXzYwNTU5X0JGUF9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVD XzYwNTU5X0RGUF9FWFRfXyAxCiNkZWZpbmUgX19TVERDX1dBTlRfSUVDXzYwNTU5X0ZVTkNTX0VY VF9fIDEKI2RlZmluZSBfX1NURENfV0FOVF9JRUNfNjA1NTlfVFlQRVNfRVhUX18gMQojZGVmaW5l IF9fU1REQ19XQU5UX0xJQl9FWFQyX18gMQojZGVmaW5lIF9fU1REQ19XQU5UX01BVEhfU1BFQ19G VU5DU19fIDEKI2RlZmluZSBfVEFOREVNX1NPVVJDRSAxCiNkZWZpbmUgR0NDX0xJTlQgMQojZGVm aW5lIFNZU1RFTV9UWVBFICJnbnUvbGludXgiCiNkZWZpbmUgSEFWRV9QRVJTT05BTElUWV9BRERS X05PX1JBTkRPTUlaRSAxCiNkZWZpbmUgSEFWRV9URVJNX0ggMQojZGVmaW5lIFNZU1RFTV9NQUxM T0MgMQojZGVmaW5lIFVTRV9YSU0gMQojZGVmaW5lIEhBVkVfWkxJQiAxCiNkZWZpbmUgSEFWRV9N T0RVTEVTIDEKI2RlZmluZSBNT0RVTEVTX1NVRkZJWCAiLnNvIgojZGVmaW5lIEhBVkVfTElCR0ND SklUIDEKCmNvbmZpZ3VyZTogZXhpdCAxCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYnVn X3JlcG9ydC9teWVudi50eHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMDA2NDQAMDAwMDc2NQAw MDAwNzY1ADAwMDAwMDA0MjQ3ADE0MDQyNzU1NTMzADAxMjU1MgAgMAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1c3RhciAgADUwMQAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAANTAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTSEVM TD0vYmluL2Jhc2gKTUFUSEVNQVRJQ0FfSE9NRT0vb3B0L01hdGhlbWF0aWNhLTExLjEKUFdEPS9o b21lL2RhaGFuL2J1aWxkCkxPR05BTUU9ZGFoYW4KTERGTEFHUz0tTC9ob21lL2RhaGFuL211c2xf Y3Jvc3MvbGliIC1ML3Vzci9saWIgLUwvbGliCkhPTUU9L2hvbWUvZGFoYW4KTEFORz1mcl9GUi5V VEYtOApMU19DT0xPUlM9cnM9MDpkaT0wMTszNDpsbj0wMTszNjptaD0wMDpwaT00MDszMzpzbz0w MTszNTpkbz0wMTszNTpiZD00MDszMzswMTpjZD00MDszMzswMTpvcj00MDszMTswMTptaT0wMDpz dT0zNzs0MTpzZz0zMDs0MzpjYT0zMDs0MTp0dz0zMDs0Mjpvdz0zNDs0MjpzdD0zNzs0NDpleD0w MTszMjoqLnRhcj0wMTszMToqLnRnej0wMTszMToqLmFyYz0wMTszMToqLmFyaj0wMTszMToqLnRh ej0wMTszMToqLmxoYT0wMTszMToqLmx6ND0wMTszMToqLmx6aD0wMTszMToqLmx6bWE9MDE7MzE6 Ki50bHo9MDE7MzE6Ki50eHo9MDE7MzE6Ki50em89MDE7MzE6Ki50N3o9MDE7MzE6Ki56aXA9MDE7 MzE6Ki56PTAxOzMxOiouZHo9MDE7MzE6Ki5nej0wMTszMToqLmxyej0wMTszMToqLmx6PTAxOzMx OioubHpvPTAxOzMxOioueHo9MDE7MzE6Ki56c3Q9MDE7MzE6Ki50enN0PTAxOzMxOiouYnoyPTAx OzMxOiouYno9MDE7MzE6Ki50Yno9MDE7MzE6Ki50YnoyPTAxOzMxOioudHo9MDE7MzE6Ki5kZWI9 MDE7MzE6Ki5ycG09MDE7MzE6Ki5qYXI9MDE7MzE6Ki53YXI9MDE7MzE6Ki5lYXI9MDE7MzE6Ki5z YXI9MDE7MzE6Ki5yYXI9MDE7MzE6Ki5hbHo9MDE7MzE6Ki5hY2U9MDE7MzE6Ki56b289MDE7MzE6 Ki5jcGlvPTAxOzMxOiouN3o9MDE7MzE6Ki5yej0wMTszMToqLmNhYj0wMTszMToqLndpbT0wMTsz MToqLnN3bT0wMTszMToqLmR3bT0wMTszMToqLmVzZD0wMTszMToqLmpwZz0wMTszNToqLmpwZWc9 MDE7MzU6Ki5tanBnPTAxOzM1OioubWpwZWc9MDE7MzU6Ki5naWY9MDE7MzU6Ki5ibXA9MDE7MzU6 Ki5wYm09MDE7MzU6Ki5wZ209MDE7MzU6Ki5wcG09MDE7MzU6Ki50Z2E9MDE7MzU6Ki54Ym09MDE7 MzU6Ki54cG09MDE7MzU6Ki50aWY9MDE7MzU6Ki50aWZmPTAxOzM1OioucG5nPTAxOzM1Oiouc3Zn PTAxOzM1Oiouc3Znej0wMTszNToqLm1uZz0wMTszNToqLnBjeD0wMTszNToqLm1vdj0wMTszNToq Lm1wZz0wMTszNToqLm1wZWc9MDE7MzU6Ki5tMnY9MDE7MzU6Ki5ta3Y9MDE7MzU6Ki53ZWJtPTAx OzM1Oioub2dtPTAxOzM1OioubXA0PTAxOzM1OioubTR2PTAxOzM1OioubXA0dj0wMTszNToqLnZv Yj0wMTszNToqLnF0PTAxOzM1OioubnV2PTAxOzM1Oioud212PTAxOzM1OiouYXNmPTAxOzM1Oiou cm09MDE7MzU6Ki5ybXZiPTAxOzM1OiouZmxjPTAxOzM1OiouYXZpPTAxOzM1OiouZmxpPTAxOzM1 OiouZmx2PTAxOzM1OiouZ2w9MDE7MzU6Ki5kbD0wMTszNToqLnhjZj0wMTszNToqLnh3ZD0wMTsz NToqLnl1dj0wMTszNToqLmNnbT0wMTszNToqLmVtZj0wMTszNToqLm9ndj0wMTszNToqLm9neD0w MTszNToqLmFhYz0wMDszNjoqLmF1PTAwOzM2OiouZmxhYz0wMDszNjoqLm00YT0wMDszNjoqLm1p ZD0wMDszNjoqLm1pZGk9MDA7MzY6Ki5ta2E9MDA7MzY6Ki5tcDM9MDA7MzY6Ki5tcGM9MDA7MzY6 Ki5vZ2c9MDA7MzY6Ki5yYT0wMDszNjoqLndhdj0wMDszNjoqLm9nYT0wMDszNjoqLm9wdXM9MDA7 MzY6Ki5zcHg9MDA7MzY6Ki54c3BmPTAwOzM2OgpMRD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2Jp bi9pNTg2LWxpbnV4LW11c2wtbGQKVEVSTT14dGVybS0yNTZjb2xvcgpVU0VSPWRhaGFuCkxJQlJB UllfUEFUSD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2xpYjovbGliOi91c3IvbGliClNITFZMPTEK TERfTElCUkFSWV9QQVRIPS9ob21lL2RhaGFuL211c2xfY3Jvc3MvbGliOi9saWI6L3Vzci9saWIK UEFUSD0vaG9tZS9kYWhhbi9tdXNsX2Nyb3NzL2JpbjovaG9tZS9kYWhhbi8ubG9jYWwvYmluOi9o b21lL2RhaGFuL2xvY2FsL2JpbjovaG9tZS9kYWhhbi8ubG9jYWwvYmluOi91c3IvbG9jYWwvYmlu Oi91c3IvYmluOi9iaW46L3Vzci9sb2NhbC9nYW1lczovdXNyL2dhbWVzCkNDPS9ob21lL2RhaGFu L211c2xfY3Jvc3MvYmluL2k1ODYtbGludXgtbXVzbC1jYwpNQUlMPS92YXIvbWFpbC9kYWhhbgpT U0hfVFRZPS9kZXYvcHRzLzAKQ1BBVEg9L2hvbWUvZGFoYW4vbXVzbF9jcm9zcy9pbmNsdWRlOi91 c3IvaW5jbHVkZQpPTERQV0Q9L2hvbWUvZGFoYW4KXz0vdXNyL2Jpbi9lbnYKAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit --Apple-Mail-CBB28DCF-3E6F-4D90-A1F3-18B054805E39--
Anatole Dahan <dahan@HIDDEN>
:bug-gnu-emacs@HIDDEN
.
Full text available.bug-gnu-emacs@HIDDEN
:bug#48116
; Package emacs
.
Full text available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.