From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain theme customization Date: Mon, 22 Jul 2024 02:58:33 +0300 Message-ID: <7ae61592-8319-4b1a-b973-4015ff1db569@gutov.dev> References: <86frstfiop.fsf@gnu.org> <03b9a1c2-986d-40ea-bdd6-d13b419c9aa0@gutov.dev> <86v81i526t.fsf@gnu.org> <1f5f741f-d599-4051-8a34-27d349360eb8@gutov.dev> <86sewiztr2.fsf@gnu.org> <867cdto3uk.fsf@gnu.org> <56cc929b-5491-4ed4-a527-d0b1a369e625@gutov.dev> <86o76sea9d.fsf@gnu.org> <72a0b2e2-600e-46f1-b583-0bed86f27d2d@gutov.dev> <86o76scaou.fsf@gnu.org> <86cyn7cito.fsf@gnu.org> <1659357b-5ca0-47a6-8ff3-4aa26017280b@gutov.dev> <86ttgibxqv.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------38GlQ3xfw17iklUpCUpyXwRq" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6204"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: alan@idiocy.org, 71866@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jul 22 01:59:25 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sVgSa-0001Ut-7n for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 22 Jul 2024 01:59:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sVgSE-0007yS-Mt; Sun, 21 Jul 2024 19:59:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sVgSC-0007xy-Di for bug-gnu-emacs@gnu.org; Sun, 21 Jul 2024 19:59:00 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sVgSC-0001mi-5s for bug-gnu-emacs@gnu.org; Sun, 21 Jul 2024 19:59:00 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1sVgSE-0008GW-7N for bug-gnu-emacs@gnu.org; Sun, 21 Jul 2024 19:59:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 21 Jul 2024 23:59:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 71866 X-GNU-PR-Package: emacs Original-Received: via spool by 71866-submit@debbugs.gnu.org id=B71866.172160633331757 (code B ref 71866); Sun, 21 Jul 2024 23:59:02 +0000 Original-Received: (at 71866) by debbugs.gnu.org; 21 Jul 2024 23:58:53 +0000 Original-Received: from localhost ([127.0.0.1]:56290 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sVgS2-0008G6-9J for submit@debbugs.gnu.org; Sun, 21 Jul 2024 19:58:53 -0400 Original-Received: from fout1-smtp.messagingengine.com ([103.168.172.144]:55703) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1sVgRx-0008Fm-1s for 71866@debbugs.gnu.org; Sun, 21 Jul 2024 19:58:48 -0400 Original-Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailfout.nyi.internal (Postfix) with ESMTP id 033B513801D9; Sun, 21 Jul 2024 19:58:37 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Sun, 21 Jul 2024 19:58:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1721606316; x=1721692716; bh=wiU+ala/nz Tk83bfqTGp/OsdTBV05Pk8HrpOZABtNk4=; b=X4JUi+TVI53W8H2dYWsCYw2r0c V+MyyubMwg8LlCVtQI9yGE8Gtn90iglVJYkRWKZ4RFP3njtNPVORp27nHEj7b3K2 8yLkPVjASt7dd3DRJa0LFv687NhCqBnTkfqR9QVteHfF0bbbwg2Vf/A9xmwZzh4+ VmpWDX+MFo0TY+LhMbkTZuHiNHd/GNXxekNQnOF/pwc/ry+dFH1QqfW2Hr9l2Yxn zfhrdMSZUZVfxZWxkVO+UV3DV+jpoGRg51v3QP57KVYcqbMwVoj2QJkgQnJods/G U2UgW7t/UVUC/HfX4mvleBk5AS7NFWaq8VFMVU5gMQzENwpZxAq6Cyzjq0Uw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1721606316; x=1721692716; bh=wiU+ala/nzTk83bfqTGp/OsdTBV0 5Pk8HrpOZABtNk4=; b=R1DP3dwsye010w9xKZ+esPnTfbiq0AiDtGlbw8vGTDvr yegxq3j6qx/MnIILIjub54hvqa1LNkcAG9pNrB9t1xJilHjuB1gP4oOHQtSk8aJ0 dwFewcT0ClqRh5GHZ6g2iIzaIXr3iQlKsiewyHaHeFI1AimyhBmNIQhrj0w843FG rw0tLYWOhP9Fwbj7GLX3anV42ljpbWOiGQP5B6JNBv4r1rmV8Ikja1Xw/puaaeJF I+PNJ3PcDhWKiX+EUNcPnGswVtuoA1ra9ukV8eo45i66fIxUs0/JqI/8xI0GQS5B yZzc/MHrdDTP3h5y/w3n9Yj8O2t3g4JcspMID2qihA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrheeigdeftdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdejnecuhfhrohhmpeffmhhithhr hicuifhuthhovhcuoegumhhithhrhiesghhuthhovhdruggvvheqnecuggftrfgrthhtvg hrnhepueevgfetieelteeihfehvedvueduueekvdfhueeijeffleeiteetgfetvdeuieei necuffhomhgrihhnpehsthhrvggrmhgrsghlvgdrtghomhenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesghhuthhovhdruggv vh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 21 Jul 2024 19:58:35 -0400 (EDT) Content-Language: en-US In-Reply-To: <86ttgibxqv.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:289101 Archived-At: This is a multi-part message in MIME format. --------------38GlQ3xfw17iklUpCUpyXwRq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 21/07/2024 17:55, Eli Zaretskii wrote: >> Date: Sun, 21 Jul 2024 16:50:18 +0300 >> Cc: 71866@debbugs.gnu.org >> From: Dmitry Gutov >> >>> . The two frames are arranged in a way that the cursor in the >>> left-most frame is not really visible when the right-most frame >>> partially obscures it. So it's hard to tell at all times what >>> kind of cursor (or no cursor) is shown in that frame. Could you >>> please repeat the experiment after moving the right-most frame a >>> bit to the right, so as not to obscure the cursor of the other >>> frame? IOW, I'd like to be able to see cursors in both frames >>> regardless of which frame is selected/has focus. >> >> I can repeat the experiment, but in my testing the problem only occurs >> in (all) frames other than the first/original one, regardless of their >> positioning. > > I believe you. But I want to see both cursors, because they are > usually redrawn in tandem. No problem. >>> . Sometimes an Emacs frame shows its window as selected (judging by >>> the way the mode line is displayed), but the 3 colored circles at >>> the top left corner of the frame are shown in gray. What does >>> this mean, in Emacs terms, and how is that different from the >>> situation where both the mode line is shown as active and the >>> circles are shown in red/yellow/green colors? >> >> It seems to me a consequence of our having a breakpoint inside a >> function that updates how the frame looks (which includes its contents, >> the "selected" status and etc) - when I switch the focus away manually >> to a different program in the middle of that (to handle the breakpoint), >> probably that created a de-synchronization that never happens in other >> circumstances. > > If you are sure that this happens only when Emacs is stopped at a > breakpoint, this aspect of the issue can be disregarded. Seems so to me. You could see the way Emacs behaves without breakpoints at the beginning of the previous video. >>> . What exactly are you doing with keyboard or mouse in the first >>> part, where you quickly alternate the frames? All I see is >>> the initial mouse click inside the left-most frame, but the >>> subsequent changes seemingly happen "by themselves", without any >>> visible trigger. >> >> That's 'other-frame', bound to 'M-`'. > > OK. > >>> . The backtrace indicates that ns_draw_window_cursor is called from >>> windowDidResignKey, which AFAIU is called when the focus changes. >>> For some reason, display_and_set_cursor, which calls >>> ns_draw_window_cursor, decided that cursor type should be >>> NO_CURSOR, although gui_update_cursor was called with >>> cursor_on_p=true, and the question is why? You don't show any >>> other backtraces, although in the video I clearly see them, and >>> they use other values of cursor type. In addition, I don't know >>> which window passed to ns_draw_window_cursor (the 'w' argument) >>> belongs to which frame, and without that, it is very hard to >>> interpret the data of the debugging session, because I need to >>> compare the calls with what I see in the Emacs frames. >> >> Would you like to see all the other backtraces, or some specific ones? > > All of the backtraces from all the calls produced by a single M-` > press. It is best to have only the backtraces that happen when the > problem with the cursor is visible, if you can easily arrange for > that. Yup, done that, see below. >> In the former case, that will be a lot of text to sort through. > > Yes, but it is imperative to see all the calls. Very good, see this longer video where I also print the backtrace every time the breakpoint is hit (and then sometimes scroll up to make its top visible). Also attached is the text log with all 12 backtraces together. https://streamable.com/4a1vb2 The video will be up for 24 hours at this free hosting, but I can reupload it later as well if somebody asks. >>> IOW, the important question is: was the problematic display, where no >>> cursor is shown, caused by an incorrect call to ns_draw_window_cursor, >>> or was it caused by some other factor? The data and the video you >>> presented does not allow to answer this questions. Adding the missing >>> details I mentioned will probably help answer them. >> >> ...and whether that all is a red herring, caused by our breakpoints, >> whereas the code reading to the original problem might reside somewhere >> else. ;-( > > Could be, but in general ns_draw_window_cursor is AFAIK the only way > of redrawing the cursor, so I think we are on a good track here. Here's hoping. > Eventually, if and when we find the call which causes this incomplete > redraw, you will need to step through the code and see what happens > there. When we get there, I will try to explain the main ideas of the > code. Sounds great! --------------38GlQ3xfw17iklUpCUpyXwRq Content-Type: text/plain; charset=UTF-8; name="emacs-lldb-bt-3-list.txt" Content-Disposition: attachment; filename="emacs-lldb-bt-3-list.txt" Content-Transfer-Encoding: base64 MjAyNC0wNy0yMiAwMTo1Mjo1NS4wOTY0NjArMDMwMCBlbWFjc1s3NjE2OjMyNTM1MzBdIFtD dXJzb3JVSV0gLVtUVUlOU0N1cnNvclVJQ29udHJvbGxlciBhY3RpdmF0ZTpdOiBFbWFjc1Zp ZXcgZG9lc24ndCBjb25mb3JtIHRvIE5TVGV4dElucHV0Q2xpZW50IHByb3RvY29sLgpQcm9j ZXNzIDc2MTYgc3RvcHBlZAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4t dGhyZWFkJywgc3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICAgZnJhbWUgIzA6IDB4 MDAwMDAwMDEwMDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAw MDAxMWUwMTY2ZDAsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU5MWZkMDAsIHg9MjgsIHk9NDIs IGN1cnNvcl90eXBlPUZJTExFRF9CT1hfQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10 cnVlLCBhY3RpdmVfcD10cnVlKSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAgIDMwNDIJICBpZiAo IW9uX3ApCiAgIDMwNDMJICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19j dXJzb3JfdHlwZSA9IGN1cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25f cCA9IG9uX3A7CiAgIDMwNDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJT T1IpClRhcmdldCAwOiAoZW1hY3MpIHN0b3BwZWQuCihsbGRiKSAxCmVycm9yOiAnMScgaXMg bm90IGEgdmFsaWQgY29tbWFuZC4KKGxsZGIpIGJ0CiogdGhyZWFkICMxLCBxdWV1ZSA9ICdj b20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgMi4xCiAg KiBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0ZjQ0IGVtYWNzYG5zX2RyYXdfd2luZG93X2N1 cnNvcih3PTB4MDAwMDAwMDExZTAxNjZkMCwgZ2x5cGhfcm93PTB4MDAwMDAwMDExZTkxZmQw MCwgeD0yOCwgeT00MiwgY3Vyc29yX3R5cGU9RklMTEVEX0JPWF9DVVJTT1IsIGN1cnNvcl93 aWR0aD0xLCBvbl9wPXRydWUsIGFjdGl2ZV9wPXRydWUpIGF0IG5zdGVybS5tOjMwNDU6MjUK ICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAwNzAzNWMgZW1hY3NgZGlzcGxheV9hbmRfc2V0 X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjZkMCwgb249dHJ1ZSwgaHBvcz00LCB2cG9zPTMs IHg9MjgsIHk9NDIpIGF0IHhkaXNwLmM6MzQyMDU6NQogICAgZnJhbWUgIzI6IDB4MDAwMDAw MDEwMDA3MGQyNCBlbWFjc2B1cGRhdGVfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAx NjZkMCwgb249dHJ1ZSkgYXQgeGRpc3AuYzozNDI0MDo3CiAgICBmcmFtZSAjMzogMHgwMDAw MDAwMTAwMDcwYjFjIGVtYWNzYHVwZGF0ZV9jdXJzb3JfaW5fd2luZG93X3RyZWUodz0weDAw MDAwMDAxMWUwMTY2ZDAsIG9uX3A9dHJ1ZSkgYXQgeGRpc3AuYzozNDI1ODoyCiAgICBmcmFt ZSAjNDogMHgwMDAwMDAwMTAwMDcwYWEwIGVtYWNzYGd1aV91cGRhdGVfY3Vyc29yKGY9MHgw MDAwMDAwMTFlMDE2NDgwLCBvbl9wPXRydWUpIGF0IHhkaXNwLmM6MzQyNzI6MwogICAgZnJh bWUgIzU6IDB4MDAwMDAwMDEwMDM0NDYzOCBlbWFjc2Buc19mcmFtZV9yZWhpZ2hsaWdodChm cmFtZT0weDAwMDAwMDAxMWUwMTY0ODApIGF0IG5zdGVybS5tOjE0ODY6MTEKICAgIGZyYW1l ICM2OiAweDAwMDAwMDAxMDAzNDQ0NjggZW1hY3NgLVtFbWFjc1ZpZXcgd2luZG93RGlkQmVj b21lS2V5XShzZWxmPTB4MDAwMDAwMDExYjExMTRhMCwgX2NtZD0id2luZG93RGlkQmVjb21l S2V5IikgYXQgbnN0ZXJtLm06NzkzNTozCiAgICBmcmFtZSAjNzogMHgwMDAwMDAwMTAwMzQ0 M2E4IGVtYWNzYC1bRW1hY3NWaWV3IHdpbmRvd0RpZEJlY29tZUtleTpdKHNlbGY9MHgwMDAw MDAwMTFiMTExNGEwLCBfY21kPSJ3aW5kb3dEaWRCZWNvbWVLZXk6Iiwgbm90aWZpY2F0aW9u PUAiTlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24iKSBhdCBuc3Rlcm0ubTo3OTE4 OjMKICAgIGZyYW1lICM4OiAweDAwMDAwMDAxODRkYjMxNDQgQ29yZUZvdW5kYXRpb25gX19D Rk5PVElGSUNBVElPTkNFTlRFUl9JU19DQUxMSU5HX09VVF9UT19BTl9PQlNFUlZFUl9fICsg MTQ4CiAgICBmcmFtZSAjOTogMHgwMDAwMDAwMTg0ZTQ3M2Q4IENvcmVGb3VuZGF0aW9uYF9f X0NGWFJlZ2lzdHJhdGlvblBvc3RfYmxvY2tfaW52b2tlICsgODgKICAgIGZyYW1lICMxMDog MHgwMDAwMDAwMTg0ZTQ3MzIwIENvcmVGb3VuZGF0aW9uYF9DRlhSZWdpc3RyYXRpb25Qb3N0 ICsgNDQwCiAgICBmcmFtZSAjMTE6IDB4MDAwMDAwMDE4NGQ4MTY3OCBDb3JlRm91bmRhdGlv bmBfQ0ZYTm90aWZpY2F0aW9uUG9zdCArIDc2OAogICAgZnJhbWUgIzEyOiAweDAwMDAwMDAx ODVlOWU0ZTQgRm91bmRhdGlvbmAtW05TTm90aWZpY2F0aW9uQ2VudGVyIHBvc3ROb3RpZmlj YXRpb25OYW1lOm9iamVjdDp1c2VySW5mbzpdICsgODgKICAgIGZyYW1lICMxMzogMHgwMDAw MDAwMTg4NzcwNjJjIEFwcEtpdGAtW05TV2luZG93IGJlY29tZUtleVdpbmRvd10gKyA4NDQK ICAgIGZyYW1lICMxNDogMHgwMDAwMDAwMTg4NzE3NTFjIEFwcEtpdGAtW05TV2luZG93IF9j aGFuZ2VLZXlBbmRNYWluTGltaXRlZE9LOl0gKyA3NDgKICAgIGZyYW1lICMxNTogMHgwMDAw MDAwMTg4NzE3MWYwIEFwcEtpdGAtW05TV2luZG93IG1ha2VLZXlXaW5kb3ddICsgMTcyCiAg ICBmcmFtZSAjMTY6IDB4MDAwMDAwMDE4ODcxNmZhOCBBcHBLaXRgLVtOU1dpbmRvdyBfbWFr ZUtleVJlZ2FyZGxlc3NPZlZpc2liaWxpdHldICsgNTYKICAgIGZyYW1lICMxNzogMHgwMDAw MDAwMTg4NzBmNmEwIEFwcEtpdGAtW05TV2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Ol0g KyAyNAogICAgZnJhbWUgIzE4OiAweDAwMDAwMDAxMDAzNDljMTAgZW1hY3NgLVtFbWFjc1dp bmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpdKHNlbGY9MHgwMDAwMDAwMTFiMTExOGUwLCBf Y21kPSJtYWtlS2V5QW5kT3JkZXJGcm9udDoiLCBzZW5kZXI9MHgwMDAwMDAwMTNhNjFmMzYw KSBhdCBuc3Rlcm0ubTo5NDg1OjUKICAgIGZyYW1lICMxOTogMHgwMDAwMDAwMTAwMzM3OGVj IGVtYWNzYG5zX3JhaXNlX2ZyYW1lKGY9MHgwMDAwMDAwMTFlMDE2NDgwLCBtYWtlX2tleT1Z RVMpIGF0IG5zdGVybS5tOjE0MTE6OQogICAgZnJhbWUgIzIwOiAweDAwMDAwMDAxMDAzNTA0 MzQgZW1hY3NgbnNfZnJhbWVfcmFpc2VfbG93ZXIoZj0weDAwMDAwMDAxMWUwMTY0ODAsIHJh aXNlPXRydWUpIGF0IG5zdGVybS5tOjE0NDQ6NQogICAgZnJhbWUgIzIxOiAweDAwMDAwMDAx MDAwMWViYjAgZW1hY3NgRnJhaXNlX2ZyYW1lKGZyYW1lPTB4MDAwMDAwMDExZTAxNjQ4NSkg YXQgZnJhbWUuYzozMDIzOjUKICAgIGZyYW1lICMyMjogMHgwMDAwMDAwMTAwMjRjOGEwIGVt YWNzYGZ1bmNhbGxfc3VicihzdWJyPTB4MDAwMDAwMDEwMDk0NWJiMCwgbnVtYXJncz0xLCBh cmdzPTB4MDAwMDAwMDEzMDEwMDE0MCkgYXQgZXZhbC5jOjMxNjE6MTUKICAgIGZyYW1lICMy MzogMHgwMDAwMDAwMTAwMmIyZGIwIGVtYWNzYGV4ZWNfYnl0ZV9jb2RlKGZ1bj0weDAwMDAw MDAxMDI0ZjczZDUsIGFyZ3NfdGVtcGxhdGU9NTEzLCBuYXJncz0xLCBhcmdzPTB4MDAwMDAw MDEzMDEwMDEwOCkgYXQgYnl0ZWNvZGUuYzo4MTI6MTQKICAgIGZyYW1lICMyNDogMHgwMDAw MDAwMTAwMjRjYzU4IGVtYWNzYGZ1bmNhbGxfbGFtYmRhKGZ1bj0weDAwMDAwMDAxMDFiMmE4 MGQsIG5hcmdzPTEsIGFyZ192ZWN0b3I9MHgwMDAwMDAwMTZmZGZkNzkwKSBhdCBldmFsLmM6 MzI1Mjo5CiAgICBmcmFtZSAjMjU6IDB4MDAwMDAwMDEwMDI0YzVlYyBlbWFjc2BmdW5jYWxs X2dlbmVyYWwoZnVuPTB4MDAwMDAwMDEwMWIyYTgwZCwgbnVtYXJncz0xLCBhcmdzPTB4MDAw MDAwMDE2ZmRmZDc5MCkgYXQgZXZhbC5jOjMwNDQ6MTIKICAgIGZyYW1lICMyNjogMHgwMDAw MDAwMTAwMjQ1ZThjIGVtYWNzYEZmdW5jYWxsKG5hcmdzPTIsIGFyZ3M9MHgwMDAwMDAwMTZm ZGZkNzg4KSBhdCBldmFsLmM6MzA5MzoyMQogICAgZnJhbWUgIzI3OiAweDAwMDAwMDAxMDAy M2ZiMjAgZW1hY3NgRmZ1bmNhbGxfaW50ZXJhY3RpdmVseShuYXJncz0yLCBhcmdzPTB4MDAw MDAwMDE2ZmRmZDc4OCkgYXQgY2FsbGludC5jOjI1MDozMgogICAgZnJhbWUgIzI4OiAweDAw MDAwMDAxMDAyNGNhODggZW1hY3NgZnVuY2FsbF9zdWJyKHN1YnI9MHgwMDAwMDAwMTAwOTUw ZjgwLCBudW1hcmdzPTIsIGFyZ3M9MHgwMDAwMDAwMTZmZGZkNzg4KSBhdCBldmFsLmM6MzE4 NDo5CiAgICBmcmFtZSAjMjk6IDB4MDAwMDAwMDEwMDI0YzVhNCBlbWFjc2BmdW5jYWxsX2dl bmVyYWwoZnVuPTB4MDAwMDAwMDEwMDk1MGY4NSwgbnVtYXJncz0yLCBhcmdzPTB4MDAwMDAw MDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMwNDA6MTIKICAgIGZyYW1lICMzMDogMHgwMDAwMDAw MTAwMjQ1ZThjIGVtYWNzYEZmdW5jYWxsKG5hcmdzPTMsIGFyZ3M9MHgwMDAwMDAwMTZmZGZk NzgwKSBhdCBldmFsLmM6MzA5MzoyMQogICAgZnJhbWUgIzMxOiAweDAwMDAwMDAxMDAyNDFk NDAgZW1hY3NgRmNhbGxfaW50ZXJhY3RpdmVseShmdW5jdGlvbj0weDAwMDAwMDAwMDExNGEx ZjgsIHJlY29yZF9mbGFnPTB4MDAwMDAwMDAwMDAwMDAwMCwga2V5cz0weDAwMDAwMDAxMDI0 ZWEwNTUpIGF0IGNhbGxpbnQuYzo3ODk6MjEKICAgIGZyYW1lICMzMjogMHgwMDAwMDAwMTAw MjRjOGYwIGVtYWNzYGZ1bmNhbGxfc3VicihzdWJyPTB4MDAwMDAwMDEwMDk1MGY0OCwgbnVt YXJncz0zLCBhcmdzPTB4MDAwMDAwMDEzMDEwMDA2MCkgYXQgZXZhbC5jOjMxNjU6MTUKICAg IGZyYW1lICMzMzogMHgwMDAwMDAwMTAwMmIyZGIwIGVtYWNzYGV4ZWNfYnl0ZV9jb2RlKGZ1 bj0weDAwMDAwMDAxMDI1MDU5MzUsIGFyZ3NfdGVtcGxhdGU9MTAyNSwgbmFyZ3M9MSwgYXJn cz0weDAwMDAwMDAxNmZkZmViZTgpIGF0IGJ5dGVjb2RlLmM6ODEyOjE0CiAgICBmcmFtZSAj MzQ6IDB4MDAwMDAwMDEwMDI0Y2M1OCBlbWFjc2BmdW5jYWxsX2xhbWJkYShmdW49MHgwMDAw MDAwMTAyNTA1OTM1LCBuYXJncz0xLCBhcmdfdmVjdG9yPTB4MDAwMDAwMDE2ZmRmZWJlMCkg YXQgZXZhbC5jOjMyNTI6OQogICAgZnJhbWUgIzM1OiAweDAwMDAwMDAxMDAyNGM1ZWMgZW1h Y3NgZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDI1MDU5MzUsIG51bWFyZ3M9MSwg YXJncz0weDAwMDAwMDAxNmZkZmViZTApIGF0IGV2YWwuYzozMDQ0OjEyCiAgICBmcmFtZSAj MzY6IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChuYXJncz0yLCBhcmdzPTB4 MDAwMDAwMDE2ZmRmZWJkOCkgYXQgZXZhbC5jOjMwOTM6MjEKICAgIGZyYW1lICMzNzogMHgw MDAwMDAwMTAwMTVkMjhjIGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6MTU1 MDoxMwogICAgZnJhbWUgIzM4OiAweDAwMDAwMDAxMDAyNDkyM2MgZW1hY3NgaW50ZXJuYWxf Y29uZGl0aW9uX2Nhc2UoYmZ1bj0oZW1hY3NgY29tbWFuZF9sb29wXzEgYXQga2V5Ym9hcmQu YzoxMzI0KSwgaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAwMDkwLCBoZnVuPShlbWFjc2BjbWRf ZXJyb3IgYXQga2V5Ym9hcmQuYzo5NzApKSBhdCBldmFsLmM6MTYxMzoyNQogICAgZnJhbWUg IzM5OiAweDAwMDAwMDAxMDAxNWM4YzQgZW1hY3NgY29tbWFuZF9sb29wXzIoaGFuZGxlcnM9 MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBrZXlib2FyZC5jOjExNjg6MTEKICAgIGZyYW1lICM0 MDogMHgwMDAwMDAwMTAwMjQ4NGQ0IGVtYWNzYGludGVybmFsX2NhdGNoKHRhZz0weDAwMDAw MDAwMDAwMTEyMjAsIGZ1bmM9KGVtYWNzYGNvbW1hbmRfbG9vcF8yIGF0IGtleWJvYXJkLmM6 MTE2NCksIGFyZz0weDAwMDAwMDAwMDAwMDAwOTApIGF0IGV2YWwuYzoxMjkyOjI1CiAgICBm cmFtZSAjNDE6IDB4MDAwMDAwMDEwMDE1YmMxMCBlbWFjc2Bjb21tYW5kX2xvb3AgYXQga2V5 Ym9hcmQuYzoxMTQ2OjIKICAgIGZyYW1lICM0MjogMHgwMDAwMDAwMTAwMTViOWZjIGVtYWNz YHJlY3Vyc2l2ZV9lZGl0XzEgYXQga2V5Ym9hcmQuYzo3NTQ6OQogICAgZnJhbWUgIzQzOiAw eDAwMDAwMDAxMDAxNWJlZTggZW1hY3NgRnJlY3Vyc2l2ZV9lZGl0IGF0IGtleWJvYXJkLmM6 ODM3OjMKICAgIGZyYW1lICM0NDogMHgwMDAwMDAwMTAwMTU4YWM4IGVtYWNzYG1haW4oYXJn Yz00LCBhcmd2PTB4MDAwMDAwMDE2ZmRmZjRiMCkgYXQgZW1hY3MuYzoyNjI0OjMKICAgIGZy YW1lICM0NTogMHgwMDAwMDAwMTg0OTU2MGUwIGR5bGRgc3RhcnQgKyAyMzYwCihsbGRiKSBj ClByb2Nlc3MgNzYxNiByZXN1bWluZwpQcm9jZXNzIDc2MTYgc3RvcHBlZAoqIHRocmVhZCAj MSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywgc3RvcCByZWFzb24gPSBicmVh a3BvaW50IDIuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAwMDEwMDM1NGY0NCBlbWFjc2Buc19k cmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY5NzgsIGdseXBoX3Jvdz0weDAw MDAwMDAxMWU4MWYwMDAsIHg9MCwgeT0wLCBjdXJzb3JfdHlwZT1OT19DVVJTT1IsIGN1cnNv cl93aWR0aD0wLCBvbl9wPXRydWUsIGFjdGl2ZV9wPWZhbHNlKSBhdCBuc3Rlcm0ubTozMDQ1 OjI1CiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMwNDMJICAgIHJldHVybjsKICAgMzA0NAot PiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9IGN1cnNvcl90eXBlOwogICAzMDQ2CSAg dy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAgIDMwNDcKICAgMzA0OAkgIGlmIChjdXJz b3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAwOiAoZW1hY3MpIHN0b3BwZWQuCihsbGRi KSAyCmVycm9yOiAnMicgaXMgbm90IGEgdmFsaWQgY29tbWFuZC4KKGxsZGIpIGJ0CiogdGhy ZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9 IGJyZWFrcG9pbnQgMi4xCiAgKiBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0ZjQ0IGVtYWNz YG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwgZ2x5cGhfcm93 PTB4MDAwMDAwMDExZTgxZjAwMCwgeD0wLCB5PTAsIGN1cnNvcl90eXBlPU5PX0NVUlNPUiwg Y3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0IG5zdGVybS5t OjMwNDU6MjUKICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAwNzAzNWMgZW1hY3NgZGlzcGxh eV9hbmRfc2V0X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwgb249dHJ1ZSwgaHBvcz0w LCB2cG9zPTAsIHg9MCwgeT0wKSBhdCB4ZGlzcC5jOjM0MjA1OjUKICAgIGZyYW1lICMyOiAw eDAwMDAwMDAxMDAwNzBkMjQgZW1hY3NgdXBkYXRlX3dpbmRvd19jdXJzb3Iodz0weDAwMDAw MDAxMWUwMTY5NzgsIG9uPXRydWUpIGF0IHhkaXNwLmM6MzQyNDA6NwogICAgZnJhbWUgIzM6 IDB4MDAwMDAwMDEwMDA3MGIxYyBlbWFjc2B1cGRhdGVfY3Vyc29yX2luX3dpbmRvd190cmVl KHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBvbl9wPXRydWUpIGF0IHhkaXNwLmM6MzQyNTg6Mgog ICAgZnJhbWUgIzQ6IDB4MDAwMDAwMDEwMDA3MGFhMCBlbWFjc2BndWlfdXBkYXRlX2N1cnNv cihmPTB4MDAwMDAwMDExZTAxNjQ4MCwgb25fcD10cnVlKSBhdCB4ZGlzcC5jOjM0MjcyOjMK ICAgIGZyYW1lICM1OiAweDAwMDAwMDAxMDAzNDQ2MzggZW1hY3NgbnNfZnJhbWVfcmVoaWdo bGlnaHQoZnJhbWU9MHgwMDAwMDAwMTFlMDE2NDgwKSBhdCBuc3Rlcm0ubToxNDg2OjExCiAg ICBmcmFtZSAjNjogMHgwMDAwMDAwMTAwMzQ0NDY4IGVtYWNzYC1bRW1hY3NWaWV3IHdpbmRv d0RpZEJlY29tZUtleV0oc2VsZj0weDAwMDAwMDAxMWIxMTE0YTAsIF9jbWQ9IndpbmRvd0Rp ZEJlY29tZUtleSIpIGF0IG5zdGVybS5tOjc5MzU6MwogICAgZnJhbWUgIzc6IDB4MDAwMDAw MDEwMDM0NDNhOCBlbWFjc2AtW0VtYWNzVmlldyB3aW5kb3dEaWRCZWNvbWVLZXk6XShzZWxm PTB4MDAwMDAwMDExYjExMTRhMCwgX2NtZD0id2luZG93RGlkQmVjb21lS2V5OiIsIG5vdGlm aWNhdGlvbj1AIk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIikgYXQgbnN0ZXJt Lm06NzkxODozCiAgICBmcmFtZSAjODogMHgwMDAwMDAwMTg0ZGIzMTQ0IENvcmVGb3VuZGF0 aW9uYF9fQ0ZOT1RJRklDQVRJT05DRU5URVJfSVNfQ0FMTElOR19PVVRfVE9fQU5fT0JTRVJW RVJfXyArIDE0OAogICAgZnJhbWUgIzk6IDB4MDAwMDAwMDE4NGU0NzNkOCBDb3JlRm91bmRh dGlvbmBfX19DRlhSZWdpc3RyYXRpb25Qb3N0X2Jsb2NrX2ludm9rZSArIDg4CiAgICBmcmFt ZSAjMTA6IDB4MDAwMDAwMDE4NGU0NzMyMCBDb3JlRm91bmRhdGlvbmBfQ0ZYUmVnaXN0cmF0 aW9uUG9zdCArIDQ0MAogICAgZnJhbWUgIzExOiAweDAwMDAwMDAxODRkODE2NzggQ29yZUZv dW5kYXRpb25gX0NGWE5vdGlmaWNhdGlvblBvc3QgKyA3NjgKICAgIGZyYW1lICMxMjogMHgw MDAwMDAwMTg1ZTllNGU0IEZvdW5kYXRpb25gLVtOU05vdGlmaWNhdGlvbkNlbnRlciBwb3N0 Tm90aWZpY2F0aW9uTmFtZTpvYmplY3Q6dXNlckluZm86XSArIDg4CiAgICBmcmFtZSAjMTM6 IDB4MDAwMDAwMDE4ODc3MDYyYyBBcHBLaXRgLVtOU1dpbmRvdyBiZWNvbWVLZXlXaW5kb3dd ICsgODQ0CiAgICBmcmFtZSAjMTQ6IDB4MDAwMDAwMDE4ODcxNzUxYyBBcHBLaXRgLVtOU1dp bmRvdyBfY2hhbmdlS2V5QW5kTWFpbkxpbWl0ZWRPSzpdICsgNzQ4CiAgICBmcmFtZSAjMTU6 IDB4MDAwMDAwMDE4ODcxNzFmMCBBcHBLaXRgLVtOU1dpbmRvdyBtYWtlS2V5V2luZG93XSAr IDE3MgogICAgZnJhbWUgIzE2OiAweDAwMDAwMDAxODg3MTZmYTggQXBwS2l0YC1bTlNXaW5k b3cgX21ha2VLZXlSZWdhcmRsZXNzT2ZWaXNpYmlsaXR5XSArIDU2CiAgICBmcmFtZSAjMTc6 IDB4MDAwMDAwMDE4ODcwZjZhMCBBcHBLaXRgLVtOU1dpbmRvdyBtYWtlS2V5QW5kT3JkZXJG cm9udDpdICsgMjQKICAgIGZyYW1lICMxODogMHgwMDAwMDAwMTAwMzQ5YzEwIGVtYWNzYC1b RW1hY3NXaW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6XShzZWxmPTB4MDAwMDAwMDExYjEx MThlMCwgX2NtZD0ibWFrZUtleUFuZE9yZGVyRnJvbnQ6Iiwgc2VuZGVyPTB4MDAwMDAwMDEz YTYxZjM2MCkgYXQgbnN0ZXJtLm06OTQ4NTo1CiAgICBmcmFtZSAjMTk6IDB4MDAwMDAwMDEw MDMzNzhlYyBlbWFjc2Buc19yYWlzZV9mcmFtZShmPTB4MDAwMDAwMDExZTAxNjQ4MCwgbWFr ZV9rZXk9WUVTKSBhdCBuc3Rlcm0ubToxNDExOjkKICAgIGZyYW1lICMyMDogMHgwMDAwMDAw MTAwMzUwNDM0IGVtYWNzYG5zX2ZyYW1lX3JhaXNlX2xvd2VyKGY9MHgwMDAwMDAwMTFlMDE2 NDgwLCByYWlzZT10cnVlKSBhdCBuc3Rlcm0ubToxNDQ0OjUKICAgIGZyYW1lICMyMTogMHgw MDAwMDAwMTAwMDFlYmIwIGVtYWNzYEZyYWlzZV9mcmFtZShmcmFtZT0weDAwMDAwMDAxMWUw MTY0ODUpIGF0IGZyYW1lLmM6MzAyMzo1CiAgICBmcmFtZSAjMjI6IDB4MDAwMDAwMDEwMDI0 YzhhMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vicj0weDAwMDAwMDAxMDA5NDViYjAsIG51bWFy Z3M9MSwgYXJncz0weDAwMDAwMDAxMzAxMDAxNDApIGF0IGV2YWwuYzozMTYxOjE1CiAgICBm cmFtZSAjMjM6IDB4MDAwMDAwMDEwMDJiMmRiMCBlbWFjc2BleGVjX2J5dGVfY29kZShmdW49 MHgwMDAwMDAwMTAyNGY3M2Q1LCBhcmdzX3RlbXBsYXRlPTUxMywgbmFyZ3M9MSwgYXJncz0w eDAwMDAwMDAxMzAxMDAxMDgpIGF0IGJ5dGVjb2RlLmM6ODEyOjE0CiAgICBmcmFtZSAjMjQ6 IDB4MDAwMDAwMDEwMDI0Y2M1OCBlbWFjc2BmdW5jYWxsX2xhbWJkYShmdW49MHgwMDAwMDAw MTAxYjJhODBkLCBuYXJncz0xLCBhcmdfdmVjdG9yPTB4MDAwMDAwMDE2ZmRmZDc5MCkgYXQg ZXZhbC5jOjMyNTI6OQogICAgZnJhbWUgIzI1OiAweDAwMDAwMDAxMDAyNGM1ZWMgZW1hY3Ng ZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDFiMmE4MGQsIG51bWFyZ3M9MSwgYXJn cz0weDAwMDAwMDAxNmZkZmQ3OTApIGF0IGV2YWwuYzozMDQ0OjEyCiAgICBmcmFtZSAjMjY6 IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChuYXJncz0yLCBhcmdzPTB4MDAw MDAwMDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMwOTM6MjEKICAgIGZyYW1lICMyNzogMHgwMDAw MDAwMTAwMjNmYjIwIGVtYWNzYEZmdW5jYWxsX2ludGVyYWN0aXZlbHkobmFyZ3M9MiwgYXJn cz0weDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGNhbGxpbnQuYzoyNTA6MzIKICAgIGZyYW1lICMy ODogMHgwMDAwMDAwMTAwMjRjYTg4IGVtYWNzYGZ1bmNhbGxfc3VicihzdWJyPTB4MDAwMDAw MDEwMDk1MGY4MCwgbnVtYXJncz0yLCBhcmdzPTB4MDAwMDAwMDE2ZmRmZDc4OCkgYXQgZXZh bC5jOjMxODQ6OQogICAgZnJhbWUgIzI5OiAweDAwMDAwMDAxMDAyNGM1YTQgZW1hY3NgZnVu Y2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDA5NTBmODUsIG51bWFyZ3M9MiwgYXJncz0w eDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGV2YWwuYzozMDQwOjEyCiAgICBmcmFtZSAjMzA6IDB4 MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChuYXJncz0zLCBhcmdzPTB4MDAwMDAw MDE2ZmRmZDc4MCkgYXQgZXZhbC5jOjMwOTM6MjEKICAgIGZyYW1lICMzMTogMHgwMDAwMDAw MTAwMjQxZDQwIGVtYWNzYEZjYWxsX2ludGVyYWN0aXZlbHkoZnVuY3Rpb249MHgwMDAwMDAw MDAxMTRhMWY4LCByZWNvcmRfZmxhZz0weDAwMDAwMDAwMDAwMDAwMDAsIGtleXM9MHgwMDAw MDAwMTAyNGVhMDU1KSBhdCBjYWxsaW50LmM6Nzg5OjIxCiAgICBmcmFtZSAjMzI6IDB4MDAw MDAwMDEwMDI0YzhmMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vicj0weDAwMDAwMDAxMDA5NTBm NDgsIG51bWFyZ3M9MywgYXJncz0weDAwMDAwMDAxMzAxMDAwNjApIGF0IGV2YWwuYzozMTY1 OjE1CiAgICBmcmFtZSAjMzM6IDB4MDAwMDAwMDEwMDJiMmRiMCBlbWFjc2BleGVjX2J5dGVf Y29kZShmdW49MHgwMDAwMDAwMTAyNTA1OTM1LCBhcmdzX3RlbXBsYXRlPTEwMjUsIG5hcmdz PTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmU4KSBhdCBieXRlY29kZS5jOjgxMjoxNAogICAg ZnJhbWUgIzM0OiAweDAwMDAwMDAxMDAyNGNjNTggZW1hY3NgZnVuY2FsbF9sYW1iZGEoZnVu PTB4MDAwMDAwMDEwMjUwNTkzNSwgbmFyZ3M9MSwgYXJnX3ZlY3Rvcj0weDAwMDAwMDAxNmZk ZmViZTApIGF0IGV2YWwuYzozMjUyOjkKICAgIGZyYW1lICMzNTogMHgwMDAwMDAwMTAwMjRj NWVjIGVtYWNzYGZ1bmNhbGxfZ2VuZXJhbChmdW49MHgwMDAwMDAwMTAyNTA1OTM1LCBudW1h cmdzPTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmUwKSBhdCBldmFsLmM6MzA0NDoxMgogICAg ZnJhbWUgIzM2OiAweDAwMDAwMDAxMDAyNDVlOGMgZW1hY3NgRmZ1bmNhbGwobmFyZ3M9Miwg YXJncz0weDAwMDAwMDAxNmZkZmViZDgpIGF0IGV2YWwuYzozMDkzOjIxCiAgICBmcmFtZSAj Mzc6IDB4MDAwMDAwMDEwMDE1ZDI4YyBlbWFjc2Bjb21tYW5kX2xvb3BfMSBhdCBrZXlib2Fy ZC5jOjE1NTA6MTMKICAgIGZyYW1lICMzODogMHgwMDAwMDAwMTAwMjQ5MjNjIGVtYWNzYGlu dGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0IGtl eWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCwgaGZ1bj0oZW1h Y3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQgZXZhbC5jOjE2MTM6MjUKICAg IGZyYW1lICMzOTogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNzYGNvbW1hbmRfbG9vcF8yKGhh bmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9hcmQuYzoxMTY4OjExCiAgICBm cmFtZSAjNDA6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2BpbnRlcm5hbF9jYXRjaCh0YWc9 MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21tYW5kX2xvb3BfMiBhdCBrZXli b2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBldmFsLmM6MTI5Mjoy NQogICAgZnJhbWUgIzQxOiAweDAwMDAwMDAxMDAxNWJjMTAgZW1hY3NgY29tbWFuZF9sb29w IGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjNDI6IDB4MDAwMDAwMDEwMDE1Yjlm YyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJkLmM6NzU0OjkKICAgIGZyYW1l ICM0MzogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1cnNpdmVfZWRpdCBhdCBrZXli b2FyZC5jOjgzNzozCiAgICBmcmFtZSAjNDQ6IDB4MDAwMDAwMDEwMDE1OGFjOCBlbWFjc2Bt YWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjApIGF0IGVtYWNzLmM6MjYyNDoz CiAgICBmcmFtZSAjNDU6IDB4MDAwMDAwMDE4NDk1NjBlMCBkeWxkYHN0YXJ0ICsgMjM2MAoo bGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKMjAyNC0wNy0yMiAwMTo1MzoyNC43ODk4 ODgrMDMwMCBlbWFjc1s3NjE2OjMyNTM1MzBdIFtDdXJzb3JVSV0gLVtUVUlOU0N1cnNvclVJ Q29udHJvbGxlciBhY3RpdmF0ZTpdOiBFbWFjc1ZpZXcgZG9lc24ndCBjb25mb3JtIHRvIE5T VGV4dElucHV0Q2xpZW50IHByb3RvY29sLgpQcm9jZXNzIDc2MTYgc3RvcHBlZAoqIHRocmVh ZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywgc3RvcCByZWFzb24gPSBi cmVha3BvaW50IDIuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAwMDEwMDM1NGY0NCBlbWFjc2Bu c19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2ZDAsIGdseXBoX3Jvdz0w eDAwMDAwMDAxMWU5MWZkMDAsIHg9MjgsIHk9NDIsIGN1cnNvcl90eXBlPUhPTExPV19CT1hf Q1VSU09SLCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10cnVlLCBhY3RpdmVfcD1mYWxzZSkgYXQg bnN0ZXJtLm06MzA0NToyNQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1 cm47CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlw ZTsKICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMw NDgJICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBz dG9wcGVkLgoobGxkYikgMwplcnJvcjogJzMnIGlzIG5vdCBhIHZhbGlkIGNvbW1hbmQuCihs bGRiKSBidAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFkJywg c3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICogZnJhbWUgIzA6IDB4MDAwMDAwMDEw MDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2 ZDAsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU5MWZkMDAsIHg9MjgsIHk9NDIsIGN1cnNvcl90 eXBlPUhPTExPV19CT1hfQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MSwgb25fcD10cnVlLCBhY3Rp dmVfcD1mYWxzZSkgYXQgbnN0ZXJtLm06MzA0NToyNQogICAgZnJhbWUgIzE6IDB4MDAwMDAw MDEwMDA3MDM1YyBlbWFjc2BkaXNwbGF5X2FuZF9zZXRfY3Vyc29yKHc9MHgwMDAwMDAwMTFl MDE2NmQwLCBvbj10cnVlLCBocG9zPTQsIHZwb3M9MywgeD0yOCwgeT00MikgYXQgeGRpc3Au YzozNDIwNTo1CiAgICBmcmFtZSAjMjogMHgwMDAwMDAwMTAwMDcwZDI0IGVtYWNzYHVwZGF0 ZV93aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBvbj10cnVlKSBhdCB4ZGlz cC5jOjM0MjQwOjcKICAgIGZyYW1lICMzOiAweDAwMDAwMDAxMDAwNzBiMWMgZW1hY3NgdXBk YXRlX2N1cnNvcl9pbl93aW5kb3dfdHJlZSh3PTB4MDAwMDAwMDExZTAxNjZkMCwgb25fcD10 cnVlKSBhdCB4ZGlzcC5jOjM0MjU4OjIKICAgIGZyYW1lICM0OiAweDAwMDAwMDAxMDAwNzBh YTAgZW1hY3NgZ3VpX3VwZGF0ZV9jdXJzb3IoZj0weDAwMDAwMDAxMWUwMTY0ODAsIG9uX3A9 dHJ1ZSkgYXQgeGRpc3AuYzozNDI3MjozCiAgICBmcmFtZSAjNTogMHgwMDAwMDAwMTAwMzQ0 NzcwIGVtYWNzYC1bRW1hY3NWaWV3IHdpbmRvd0RpZFJlc2lnbktleTpdKHNlbGY9MHgwMDAw MDAwMTFiMTExNGEwLCBfY21kPSJ3aW5kb3dEaWRSZXNpZ25LZXk6Iiwgbm90aWZpY2F0aW9u PUAiTlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRpb24iKSBhdCBuc3Rlcm0ubTo3OTYw OjcKICAgIGZyYW1lICM2OiAweDAwMDAwMDAxODRkYjMxNDQgQ29yZUZvdW5kYXRpb25gX19D Rk5PVElGSUNBVElPTkNFTlRFUl9JU19DQUxMSU5HX09VVF9UT19BTl9PQlNFUlZFUl9fICsg MTQ4CiAgICBmcmFtZSAjNzogMHgwMDAwMDAwMTg0ZTQ3M2Q4IENvcmVGb3VuZGF0aW9uYF9f X0NGWFJlZ2lzdHJhdGlvblBvc3RfYmxvY2tfaW52b2tlICsgODgKICAgIGZyYW1lICM4OiAw eDAwMDAwMDAxODRlNDczMjAgQ29yZUZvdW5kYXRpb25gX0NGWFJlZ2lzdHJhdGlvblBvc3Qg KyA0NDAKICAgIGZyYW1lICM5OiAweDAwMDAwMDAxODRkODE2NzggQ29yZUZvdW5kYXRpb25g X0NGWE5vdGlmaWNhdGlvblBvc3QgKyA3NjgKICAgIGZyYW1lICMxMDogMHgwMDAwMDAwMTg1 ZTllNGU0IEZvdW5kYXRpb25gLVtOU05vdGlmaWNhdGlvbkNlbnRlciBwb3N0Tm90aWZpY2F0 aW9uTmFtZTpvYmplY3Q6dXNlckluZm86XSArIDg4CiAgICBmcmFtZSAjMTE6IDB4MDAwMDAw MDE4ODc3NzZmYyBBcHBLaXRgLVtOU1dpbmRvdyByZXNpZ25LZXlXaW5kb3ddICsgNjQwCiAg ICBmcmFtZSAjMTI6IDB4MDAwMDAwMDE4ODc3NzNlNCBBcHBLaXRgX05YRW5kS2V5QW5kTWFp biArIDEyOAogICAgZnJhbWUgIzEzOiAweDAwMDAwMDAxODg3NzY0ZWMgQXBwS2l0YC1bTlNB cHBsaWNhdGlvbiBfaGFuZGxlRGVhY3RpdmF0ZUV2ZW50Ol0gKyA3MjQKICAgIGZyYW1lICMx NDogMHgwMDAwMDAwMTg4ZTEwNmI4IEFwcEtpdGAtW05TQXBwbGljYXRpb24oTlNFdmVudFJv dXRpbmcpIHNlbmRFdmVudDpdICsgMTIzNgogICAgZnJhbWUgIzE1OiAweDAwMDAwMDAxMDAz M2JjZDggZW1hY3NgLVtFbWFjc0FwcCBzZW5kRXZlbnQ6XShzZWxmPTB4MDAwMDAwMDEzYTYx ZjM2MCwgX2NtZD0ic2VuZEV2ZW50OiIsIHRoZUV2ZW50PTB4MDAwMDYwMDAwMGM0NGE4MCkg YXQgbnN0ZXJtLm06NjA3MzozCiAgICBmcmFtZSAjMTY6IDB4MDAwMDAwMDE4OGE1ZTg5YyBB cHBLaXRgLVtOU0FwcGxpY2F0aW9uIF9oYW5kbGVFdmVudDpdICsgNjAKICAgIGZyYW1lICMx NzogMHgwMDAwMDAwMTg4NjBmMGMwIEFwcEtpdGAtW05TQXBwbGljYXRpb24gcnVuXSArIDUx MgogICAgZnJhbWUgIzE4OiAweDAwMDAwMDAxMDAzM2I4MzggZW1hY3NgLVtFbWFjc0FwcCBy dW5dKHNlbGY9MHgwMDAwMDAwMTNhNjFmMzYwLCBfY21kPSJydW4iKSBhdCBuc3Rlcm0ubTo1 OTQyOjcKICAgIGZyYW1lICMxOTogMHgwMDAwMDAwMTAwMzU2MGIwIGVtYWNzYG5zX3JlYWRf c29ja2V0XzEodGVybWluYWw9MHgwMDAwMDAwMTJhODM0YzEwLCBob2xkX3F1aXQ9MHgwMDAw MDAwMTZmZGZjYWUwLCBub19yZWxlYXNlPU5PKSBhdCBuc3Rlcm0ubTo0ODE2OjExCiAgICBm cmFtZSAjMjA6IDB4MDAwMDAwMDEwMDM0ZmExOCBlbWFjc2Buc19yZWFkX3NvY2tldCh0ZXJt aW5hbD0weDAwMDAwMDAxMmE4MzRjMTAsIGhvbGRfcXVpdD0weDAwMDAwMDAxNmZkZmNhZTAp IGF0IG5zdGVybS5tOjQ4MzQ6MTAKICAgIGZyYW1lICMyMTogMHgwMDAwMDAwMTAwMTZhNmRj IGVtYWNzYGdvYmJsZV9pbnB1dCBhdCBrZXlib2FyZC5jOjc5MTk6MTcKICAgIGZyYW1lICMy MjogMHgwMDAwMDAwMTAwMTZhZTEwIGVtYWNzYGhhbmRsZV9hc3luY19pbnB1dCBhdCBrZXli b2FyZC5jOjgxNTg6MTkKICAgIGZyYW1lICMyMzogMHgwMDAwMDAwMTAwMTZhZGYwIGVtYWNz YHByb2Nlc3NfcGVuZGluZ19zaWduYWxzIGF0IGtleWJvYXJkLmM6ODE3MjozCiAgICBmcmFt ZSAjMjQ6IDB4MDAwMDAwMDEwMDE2YWU5YyBlbWFjc2B1bmJsb2NrX2lucHV0X3RvKGxldmVs PTApIGF0IGtleWJvYXJkLmM6ODE4NzoyCiAgICBmcmFtZSAjMjU6IDB4MDAwMDAwMDEwMDE2 ODNhOCBlbWFjc2B1bmJsb2NrX2lucHV0IGF0IGtleWJvYXJkLmM6ODIwNjozCiAgICBmcmFt ZSAjMjY6IDB4MDAwMDAwMDEwMDMzNzkxYyBlbWFjc2Buc19yYWlzZV9mcmFtZShmPTB4MDAw MDAwMDExZTAxNjQ4MCwgbWFrZV9rZXk9WUVTKSBhdCBuc3Rlcm0ubToxNDE1OjMKICAgIGZy YW1lICMyNzogMHgwMDAwMDAwMTAwMzUwNDM0IGVtYWNzYG5zX2ZyYW1lX3JhaXNlX2xvd2Vy KGY9MHgwMDAwMDAwMTFlMDE2NDgwLCByYWlzZT10cnVlKSBhdCBuc3Rlcm0ubToxNDQ0OjUK ICAgIGZyYW1lICMyODogMHgwMDAwMDAwMTAwMDFlYmIwIGVtYWNzYEZyYWlzZV9mcmFtZShm cmFtZT0weDAwMDAwMDAxMWUwMTY0ODUpIGF0IGZyYW1lLmM6MzAyMzo1CiAgICBmcmFtZSAj Mjk6IDB4MDAwMDAwMDEwMDI0YzhhMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vicj0weDAwMDAw MDAxMDA5NDViYjAsIG51bWFyZ3M9MSwgYXJncz0weDAwMDAwMDAxMzAxMDAxNDApIGF0IGV2 YWwuYzozMTYxOjE1CiAgICBmcmFtZSAjMzA6IDB4MDAwMDAwMDEwMDJiMmRiMCBlbWFjc2Bl eGVjX2J5dGVfY29kZShmdW49MHgwMDAwMDAwMTAyNGY3M2Q1LCBhcmdzX3RlbXBsYXRlPTUx MywgbmFyZ3M9MSwgYXJncz0weDAwMDAwMDAxMzAxMDAxMDgpIGF0IGJ5dGVjb2RlLmM6ODEy OjE0CiAgICBmcmFtZSAjMzE6IDB4MDAwMDAwMDEwMDI0Y2M1OCBlbWFjc2BmdW5jYWxsX2xh bWJkYShmdW49MHgwMDAwMDAwMTAxYjJhODBkLCBuYXJncz0xLCBhcmdfdmVjdG9yPTB4MDAw MDAwMDE2ZmRmZDc5MCkgYXQgZXZhbC5jOjMyNTI6OQogICAgZnJhbWUgIzMyOiAweDAwMDAw MDAxMDAyNGM1ZWMgZW1hY3NgZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDFiMmE4 MGQsIG51bWFyZ3M9MSwgYXJncz0weDAwMDAwMDAxNmZkZmQ3OTApIGF0IGV2YWwuYzozMDQ0 OjEyCiAgICBmcmFtZSAjMzM6IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChu YXJncz0yLCBhcmdzPTB4MDAwMDAwMDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMwOTM6MjEKICAg IGZyYW1lICMzNDogMHgwMDAwMDAwMTAwMjNmYjIwIGVtYWNzYEZmdW5jYWxsX2ludGVyYWN0 aXZlbHkobmFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGNhbGxpbnQuYzoy NTA6MzIKICAgIGZyYW1lICMzNTogMHgwMDAwMDAwMTAwMjRjYTg4IGVtYWNzYGZ1bmNhbGxf c3VicihzdWJyPTB4MDAwMDAwMDEwMDk1MGY4MCwgbnVtYXJncz0yLCBhcmdzPTB4MDAwMDAw MDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMxODQ6OQogICAgZnJhbWUgIzM2OiAweDAwMDAwMDAx MDAyNGM1YTQgZW1hY3NgZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDA5NTBmODUs IG51bWFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGV2YWwuYzozMDQwOjEy CiAgICBmcmFtZSAjMzc6IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChuYXJn cz0zLCBhcmdzPTB4MDAwMDAwMDE2ZmRmZDc4MCkgYXQgZXZhbC5jOjMwOTM6MjEKICAgIGZy YW1lICMzODogMHgwMDAwMDAwMTAwMjQxZDQwIGVtYWNzYEZjYWxsX2ludGVyYWN0aXZlbHko ZnVuY3Rpb249MHgwMDAwMDAwMDAxMTRhMWY4LCByZWNvcmRfZmxhZz0weDAwMDAwMDAwMDAw MDAwMDAsIGtleXM9MHgwMDAwMDAwMTAyNGVhMDU1KSBhdCBjYWxsaW50LmM6Nzg5OjIxCiAg ICBmcmFtZSAjMzk6IDB4MDAwMDAwMDEwMDI0YzhmMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vi cj0weDAwMDAwMDAxMDA5NTBmNDgsIG51bWFyZ3M9MywgYXJncz0weDAwMDAwMDAxMzAxMDAw NjApIGF0IGV2YWwuYzozMTY1OjE1CiAgICBmcmFtZSAjNDA6IDB4MDAwMDAwMDEwMDJiMmRi MCBlbWFjc2BleGVjX2J5dGVfY29kZShmdW49MHgwMDAwMDAwMTAyNTA1OTM1LCBhcmdzX3Rl bXBsYXRlPTEwMjUsIG5hcmdzPTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmU4KSBhdCBieXRl Y29kZS5jOjgxMjoxNAogICAgZnJhbWUgIzQxOiAweDAwMDAwMDAxMDAyNGNjNTggZW1hY3Ng ZnVuY2FsbF9sYW1iZGEoZnVuPTB4MDAwMDAwMDEwMjUwNTkzNSwgbmFyZ3M9MSwgYXJnX3Zl Y3Rvcj0weDAwMDAwMDAxNmZkZmViZTApIGF0IGV2YWwuYzozMjUyOjkKICAgIGZyYW1lICM0 MjogMHgwMDAwMDAwMTAwMjRjNWVjIGVtYWNzYGZ1bmNhbGxfZ2VuZXJhbChmdW49MHgwMDAw MDAwMTAyNTA1OTM1LCBudW1hcmdzPTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmUwKSBhdCBl dmFsLmM6MzA0NDoxMgogICAgZnJhbWUgIzQzOiAweDAwMDAwMDAxMDAyNDVlOGMgZW1hY3Ng RmZ1bmNhbGwobmFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmViZDgpIGF0IGV2YWwuYzoz MDkzOjIxCiAgICBmcmFtZSAjNDQ6IDB4MDAwMDAwMDEwMDE1ZDI4YyBlbWFjc2Bjb21tYW5k X2xvb3BfMSBhdCBrZXlib2FyZC5jOjE1NTA6MTMKICAgIGZyYW1lICM0NTogMHgwMDAwMDAw MTAwMjQ5MjNjIGVtYWNzYGludGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNv bW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAw MDAwMDA5MCwgaGZ1bj0oZW1hY3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQg ZXZhbC5jOjE2MTM6MjUKICAgIGZyYW1lICM0NjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNz YGNvbW1hbmRfbG9vcF8yKGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9h cmQuYzoxMTY4OjExCiAgICBmcmFtZSAjNDc6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2Bp bnRlcm5hbF9jYXRjaCh0YWc9MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21t YW5kX2xvb3BfMiBhdCBrZXlib2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkw KSBhdCBldmFsLmM6MTI5MjoyNQogICAgZnJhbWUgIzQ4OiAweDAwMDAwMDAxMDAxNWJjMTAg ZW1hY3NgY29tbWFuZF9sb29wIGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjNDk6 IDB4MDAwMDAwMDEwMDE1YjlmYyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJk LmM6NzU0OjkKICAgIGZyYW1lICM1MDogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1 cnNpdmVfZWRpdCBhdCBrZXlib2FyZC5jOjgzNzozCiAgICBmcmFtZSAjNTE6IDB4MDAwMDAw MDEwMDE1OGFjOCBlbWFjc2BtYWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjAp IGF0IGVtYWNzLmM6MjYyNDozCiAgICBmcmFtZSAjNTI6IDB4MDAwMDAwMDE4NDk1NjBlMCBk eWxkYHN0YXJ0ICsgMjM2MAoobGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2Vz cyA3NjE2IHN0b3BwZWQKKiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRo cmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAw MDAwMDAxMDAzNTRmNDQgZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAw MTFlMDE2OTc4LCBnbHlwaF9yb3c9MHgwMDAwMDAwMTFlODFmMDAwLCB4PTAsIHk9MCwgY3Vy c29yX3R5cGU9Tk9fQ1VSU09SLCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBhY3RpdmVf cD1mYWxzZSkgYXQgbnN0ZXJtLm06MzA0NToyNQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAz MDQzCSAgICByZXR1cm47CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUg PSBjdXJzb3JfdHlwZTsKICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwog ICAzMDQ3CiAgIDMwNDgJICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQg MDogKGVtYWNzKSBzdG9wcGVkLgoobGxkYikgNAplcnJvcjogJzQnIGlzIG5vdCBhIHZhbGlk IGNvbW1hbmQuCihsbGRiKSBidAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1h aW4tdGhyZWFkJywgc3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICogZnJhbWUgIzA6 IDB4MDAwMDAwMDEwMDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAw MDAwMDAxMWUwMTY5NzgsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU4MWYwMDAsIHg9MCwgeT0w LCBjdXJzb3JfdHlwZT1OT19DVVJTT1IsIGN1cnNvcl93aWR0aD0wLCBvbl9wPXRydWUsIGFj dGl2ZV9wPWZhbHNlKSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAgICBmcmFtZSAjMTogMHgwMDAw MDAwMTAwMDcwMzVjIGVtYWNzYGRpc3BsYXlfYW5kX3NldF9jdXJzb3Iodz0weDAwMDAwMDAx MWUwMTY5NzgsIG9uPXRydWUsIGhwb3M9MCwgdnBvcz0wLCB4PTAsIHk9MCkgYXQgeGRpc3Au YzozNDIwNTo1CiAgICBmcmFtZSAjMjogMHgwMDAwMDAwMTAwMDcwZDI0IGVtYWNzYHVwZGF0 ZV93aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBvbj10cnVlKSBhdCB4ZGlz cC5jOjM0MjQwOjcKICAgIGZyYW1lICMzOiAweDAwMDAwMDAxMDAwNzBiMWMgZW1hY3NgdXBk YXRlX2N1cnNvcl9pbl93aW5kb3dfdHJlZSh3PTB4MDAwMDAwMDExZTAxNjk3OCwgb25fcD10 cnVlKSBhdCB4ZGlzcC5jOjM0MjU4OjIKICAgIGZyYW1lICM0OiAweDAwMDAwMDAxMDAwNzBh YTAgZW1hY3NgZ3VpX3VwZGF0ZV9jdXJzb3IoZj0weDAwMDAwMDAxMWUwMTY0ODAsIG9uX3A9 dHJ1ZSkgYXQgeGRpc3AuYzozNDI3MjozCiAgICBmcmFtZSAjNTogMHgwMDAwMDAwMTAwMzQ0 NzcwIGVtYWNzYC1bRW1hY3NWaWV3IHdpbmRvd0RpZFJlc2lnbktleTpdKHNlbGY9MHgwMDAw MDAwMTFiMTExNGEwLCBfY21kPSJ3aW5kb3dEaWRSZXNpZ25LZXk6Iiwgbm90aWZpY2F0aW9u PUAiTlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRpb24iKSBhdCBuc3Rlcm0ubTo3OTYw OjcKICAgIGZyYW1lICM2OiAweDAwMDAwMDAxODRkYjMxNDQgQ29yZUZvdW5kYXRpb25gX19D Rk5PVElGSUNBVElPTkNFTlRFUl9JU19DQUxMSU5HX09VVF9UT19BTl9PQlNFUlZFUl9fICsg MTQ4CiAgICBmcmFtZSAjNzogMHgwMDAwMDAwMTg0ZTQ3M2Q4IENvcmVGb3VuZGF0aW9uYF9f X0NGWFJlZ2lzdHJhdGlvblBvc3RfYmxvY2tfaW52b2tlICsgODgKICAgIGZyYW1lICM4OiAw eDAwMDAwMDAxODRlNDczMjAgQ29yZUZvdW5kYXRpb25gX0NGWFJlZ2lzdHJhdGlvblBvc3Qg KyA0NDAKICAgIGZyYW1lICM5OiAweDAwMDAwMDAxODRkODE2NzggQ29yZUZvdW5kYXRpb25g X0NGWE5vdGlmaWNhdGlvblBvc3QgKyA3NjgKICAgIGZyYW1lICMxMDogMHgwMDAwMDAwMTg1 ZTllNGU0IEZvdW5kYXRpb25gLVtOU05vdGlmaWNhdGlvbkNlbnRlciBwb3N0Tm90aWZpY2F0 aW9uTmFtZTpvYmplY3Q6dXNlckluZm86XSArIDg4CiAgICBmcmFtZSAjMTE6IDB4MDAwMDAw MDE4ODc3NzZmYyBBcHBLaXRgLVtOU1dpbmRvdyByZXNpZ25LZXlXaW5kb3ddICsgNjQwCiAg ICBmcmFtZSAjMTI6IDB4MDAwMDAwMDE4ODc3NzNlNCBBcHBLaXRgX05YRW5kS2V5QW5kTWFp biArIDEyOAogICAgZnJhbWUgIzEzOiAweDAwMDAwMDAxODg3NzY0ZWMgQXBwS2l0YC1bTlNB cHBsaWNhdGlvbiBfaGFuZGxlRGVhY3RpdmF0ZUV2ZW50Ol0gKyA3MjQKICAgIGZyYW1lICMx NDogMHgwMDAwMDAwMTg4ZTEwNmI4IEFwcEtpdGAtW05TQXBwbGljYXRpb24oTlNFdmVudFJv dXRpbmcpIHNlbmRFdmVudDpdICsgMTIzNgogICAgZnJhbWUgIzE1OiAweDAwMDAwMDAxMDAz M2JjZDggZW1hY3NgLVtFbWFjc0FwcCBzZW5kRXZlbnQ6XShzZWxmPTB4MDAwMDAwMDEzYTYx ZjM2MCwgX2NtZD0ic2VuZEV2ZW50OiIsIHRoZUV2ZW50PTB4MDAwMDYwMDAwMGM0NGE4MCkg YXQgbnN0ZXJtLm06NjA3MzozCiAgICBmcmFtZSAjMTY6IDB4MDAwMDAwMDE4OGE1ZTg5YyBB cHBLaXRgLVtOU0FwcGxpY2F0aW9uIF9oYW5kbGVFdmVudDpdICsgNjAKICAgIGZyYW1lICMx NzogMHgwMDAwMDAwMTg4NjBmMGMwIEFwcEtpdGAtW05TQXBwbGljYXRpb24gcnVuXSArIDUx MgogICAgZnJhbWUgIzE4OiAweDAwMDAwMDAxMDAzM2I4MzggZW1hY3NgLVtFbWFjc0FwcCBy dW5dKHNlbGY9MHgwMDAwMDAwMTNhNjFmMzYwLCBfY21kPSJydW4iKSBhdCBuc3Rlcm0ubTo1 OTQyOjcKICAgIGZyYW1lICMxOTogMHgwMDAwMDAwMTAwMzU2MGIwIGVtYWNzYG5zX3JlYWRf c29ja2V0XzEodGVybWluYWw9MHgwMDAwMDAwMTJhODM0YzEwLCBob2xkX3F1aXQ9MHgwMDAw MDAwMTZmZGZjYWUwLCBub19yZWxlYXNlPU5PKSBhdCBuc3Rlcm0ubTo0ODE2OjExCiAgICBm cmFtZSAjMjA6IDB4MDAwMDAwMDEwMDM0ZmExOCBlbWFjc2Buc19yZWFkX3NvY2tldCh0ZXJt aW5hbD0weDAwMDAwMDAxMmE4MzRjMTAsIGhvbGRfcXVpdD0weDAwMDAwMDAxNmZkZmNhZTAp IGF0IG5zdGVybS5tOjQ4MzQ6MTAKICAgIGZyYW1lICMyMTogMHgwMDAwMDAwMTAwMTZhNmRj IGVtYWNzYGdvYmJsZV9pbnB1dCBhdCBrZXlib2FyZC5jOjc5MTk6MTcKICAgIGZyYW1lICMy MjogMHgwMDAwMDAwMTAwMTZhZTEwIGVtYWNzYGhhbmRsZV9hc3luY19pbnB1dCBhdCBrZXli b2FyZC5jOjgxNTg6MTkKICAgIGZyYW1lICMyMzogMHgwMDAwMDAwMTAwMTZhZGYwIGVtYWNz YHByb2Nlc3NfcGVuZGluZ19zaWduYWxzIGF0IGtleWJvYXJkLmM6ODE3MjozCiAgICBmcmFt ZSAjMjQ6IDB4MDAwMDAwMDEwMDE2YWU5YyBlbWFjc2B1bmJsb2NrX2lucHV0X3RvKGxldmVs PTApIGF0IGtleWJvYXJkLmM6ODE4NzoyCiAgICBmcmFtZSAjMjU6IDB4MDAwMDAwMDEwMDE2 ODNhOCBlbWFjc2B1bmJsb2NrX2lucHV0IGF0IGtleWJvYXJkLmM6ODIwNjozCiAgICBmcmFt ZSAjMjY6IDB4MDAwMDAwMDEwMDMzNzkxYyBlbWFjc2Buc19yYWlzZV9mcmFtZShmPTB4MDAw MDAwMDExZTAxNjQ4MCwgbWFrZV9rZXk9WUVTKSBhdCBuc3Rlcm0ubToxNDE1OjMKICAgIGZy YW1lICMyNzogMHgwMDAwMDAwMTAwMzUwNDM0IGVtYWNzYG5zX2ZyYW1lX3JhaXNlX2xvd2Vy KGY9MHgwMDAwMDAwMTFlMDE2NDgwLCByYWlzZT10cnVlKSBhdCBuc3Rlcm0ubToxNDQ0OjUK ICAgIGZyYW1lICMyODogMHgwMDAwMDAwMTAwMDFlYmIwIGVtYWNzYEZyYWlzZV9mcmFtZShm cmFtZT0weDAwMDAwMDAxMWUwMTY0ODUpIGF0IGZyYW1lLmM6MzAyMzo1CiAgICBmcmFtZSAj Mjk6IDB4MDAwMDAwMDEwMDI0YzhhMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vicj0weDAwMDAw MDAxMDA5NDViYjAsIG51bWFyZ3M9MSwgYXJncz0weDAwMDAwMDAxMzAxMDAxNDApIGF0IGV2 YWwuYzozMTYxOjE1CiAgICBmcmFtZSAjMzA6IDB4MDAwMDAwMDEwMDJiMmRiMCBlbWFjc2Bl eGVjX2J5dGVfY29kZShmdW49MHgwMDAwMDAwMTAyNGY3M2Q1LCBhcmdzX3RlbXBsYXRlPTUx MywgbmFyZ3M9MSwgYXJncz0weDAwMDAwMDAxMzAxMDAxMDgpIGF0IGJ5dGVjb2RlLmM6ODEy OjE0CiAgICBmcmFtZSAjMzE6IDB4MDAwMDAwMDEwMDI0Y2M1OCBlbWFjc2BmdW5jYWxsX2xh bWJkYShmdW49MHgwMDAwMDAwMTAxYjJhODBkLCBuYXJncz0xLCBhcmdfdmVjdG9yPTB4MDAw MDAwMDE2ZmRmZDc5MCkgYXQgZXZhbC5jOjMyNTI6OQogICAgZnJhbWUgIzMyOiAweDAwMDAw MDAxMDAyNGM1ZWMgZW1hY3NgZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDFiMmE4 MGQsIG51bWFyZ3M9MSwgYXJncz0weDAwMDAwMDAxNmZkZmQ3OTApIGF0IGV2YWwuYzozMDQ0 OjEyCiAgICBmcmFtZSAjMzM6IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChu YXJncz0yLCBhcmdzPTB4MDAwMDAwMDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMwOTM6MjEKICAg IGZyYW1lICMzNDogMHgwMDAwMDAwMTAwMjNmYjIwIGVtYWNzYEZmdW5jYWxsX2ludGVyYWN0 aXZlbHkobmFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGNhbGxpbnQuYzoy NTA6MzIKICAgIGZyYW1lICMzNTogMHgwMDAwMDAwMTAwMjRjYTg4IGVtYWNzYGZ1bmNhbGxf c3VicihzdWJyPTB4MDAwMDAwMDEwMDk1MGY4MCwgbnVtYXJncz0yLCBhcmdzPTB4MDAwMDAw MDE2ZmRmZDc4OCkgYXQgZXZhbC5jOjMxODQ6OQogICAgZnJhbWUgIzM2OiAweDAwMDAwMDAx MDAyNGM1YTQgZW1hY3NgZnVuY2FsbF9nZW5lcmFsKGZ1bj0weDAwMDAwMDAxMDA5NTBmODUs IG51bWFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmQ3ODgpIGF0IGV2YWwuYzozMDQwOjEy CiAgICBmcmFtZSAjMzc6IDB4MDAwMDAwMDEwMDI0NWU4YyBlbWFjc2BGZnVuY2FsbChuYXJn cz0zLCBhcmdzPTB4MDAwMDAwMDE2ZmRmZDc4MCkgYXQgZXZhbC5jOjMwOTM6MjEKICAgIGZy YW1lICMzODogMHgwMDAwMDAwMTAwMjQxZDQwIGVtYWNzYEZjYWxsX2ludGVyYWN0aXZlbHko ZnVuY3Rpb249MHgwMDAwMDAwMDAxMTRhMWY4LCByZWNvcmRfZmxhZz0weDAwMDAwMDAwMDAw MDAwMDAsIGtleXM9MHgwMDAwMDAwMTAyNGVhMDU1KSBhdCBjYWxsaW50LmM6Nzg5OjIxCiAg ICBmcmFtZSAjMzk6IDB4MDAwMDAwMDEwMDI0YzhmMCBlbWFjc2BmdW5jYWxsX3N1YnIoc3Vi cj0weDAwMDAwMDAxMDA5NTBmNDgsIG51bWFyZ3M9MywgYXJncz0weDAwMDAwMDAxMzAxMDAw NjApIGF0IGV2YWwuYzozMTY1OjE1CiAgICBmcmFtZSAjNDA6IDB4MDAwMDAwMDEwMDJiMmRi MCBlbWFjc2BleGVjX2J5dGVfY29kZShmdW49MHgwMDAwMDAwMTAyNTA1OTM1LCBhcmdzX3Rl bXBsYXRlPTEwMjUsIG5hcmdzPTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmU4KSBhdCBieXRl Y29kZS5jOjgxMjoxNAogICAgZnJhbWUgIzQxOiAweDAwMDAwMDAxMDAyNGNjNTggZW1hY3Ng ZnVuY2FsbF9sYW1iZGEoZnVuPTB4MDAwMDAwMDEwMjUwNTkzNSwgbmFyZ3M9MSwgYXJnX3Zl Y3Rvcj0weDAwMDAwMDAxNmZkZmViZTApIGF0IGV2YWwuYzozMjUyOjkKICAgIGZyYW1lICM0 MjogMHgwMDAwMDAwMTAwMjRjNWVjIGVtYWNzYGZ1bmNhbGxfZ2VuZXJhbChmdW49MHgwMDAw MDAwMTAyNTA1OTM1LCBudW1hcmdzPTEsIGFyZ3M9MHgwMDAwMDAwMTZmZGZlYmUwKSBhdCBl dmFsLmM6MzA0NDoxMgogICAgZnJhbWUgIzQzOiAweDAwMDAwMDAxMDAyNDVlOGMgZW1hY3Ng RmZ1bmNhbGwobmFyZ3M9MiwgYXJncz0weDAwMDAwMDAxNmZkZmViZDgpIGF0IGV2YWwuYzoz MDkzOjIxCiAgICBmcmFtZSAjNDQ6IDB4MDAwMDAwMDEwMDE1ZDI4YyBlbWFjc2Bjb21tYW5k X2xvb3BfMSBhdCBrZXlib2FyZC5jOjE1NTA6MTMKICAgIGZyYW1lICM0NTogMHgwMDAwMDAw MTAwMjQ5MjNjIGVtYWNzYGludGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNv bW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAw MDAwMDA5MCwgaGZ1bj0oZW1hY3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQg ZXZhbC5jOjE2MTM6MjUKICAgIGZyYW1lICM0NjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNz YGNvbW1hbmRfbG9vcF8yKGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9h cmQuYzoxMTY4OjExCiAgICBmcmFtZSAjNDc6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2Bp bnRlcm5hbF9jYXRjaCh0YWc9MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21t YW5kX2xvb3BfMiBhdCBrZXlib2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkw KSBhdCBldmFsLmM6MTI5MjoyNQogICAgZnJhbWUgIzQ4OiAweDAwMDAwMDAxMDAxNWJjMTAg ZW1hY3NgY29tbWFuZF9sb29wIGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjNDk6 IDB4MDAwMDAwMDEwMDE1YjlmYyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJk LmM6NzU0OjkKICAgIGZyYW1lICM1MDogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1 cnNpdmVfZWRpdCBhdCBrZXlib2FyZC5jOjgzNzozCiAgICBmcmFtZSAjNTE6IDB4MDAwMDAw MDEwMDE1OGFjOCBlbWFjc2BtYWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjAp IGF0IGVtYWNzLmM6MjYyNDozCiAgICBmcmFtZSAjNTI6IDB4MDAwMDAwMDE4NDk1NjBlMCBk eWxkYHN0YXJ0ICsgMjM2MAoobGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2Vz cyA3NjE2IHN0b3BwZWQKKiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRo cmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAw MDAwMDAxMDAzNTRmNDQgZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAw MTFlMDE2NmQwLCBnbHlwaF9yb3c9MHgwMDAwMDAwMTFlOTFmZDAwLCB4PTI4LCB5PTQyLCBj dXJzb3JfdHlwZT1IT0xMT1dfQk9YX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTEsIG9uX3A9dHJ1 ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0IG5zdGVybS5tOjMwNDU6MjUKICAgMzA0MgkgIGlmICgh b25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwogICAzMDQ0Ci0+IDMwNDUJICB3LT5waHlzX2N1 cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAgIDMwNDYJICB3LT5waHlzX2N1cnNvcl9vbl9w ID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAgaWYgKGN1cnNvcl90eXBlID09IE5PX0NVUlNP UikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBlZC4KKGxsZGIpIDUKZXJyb3I6ICc1JyBpcyBu b3QgYSB2YWxpZCBjb21tYW5kLgoobGxkYikgYnQKKiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2Nv bS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2ludCAyLjEKICAq IGZyYW1lICMwOiAweDAwMDAwMDAxMDAzNTRmNDQgZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vy c29yKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBnbHlwaF9yb3c9MHgwMDAwMDAwMTFlOTFmZDAw LCB4PTI4LCB5PTQyLCBjdXJzb3JfdHlwZT1IT0xMT1dfQk9YX0NVUlNPUiwgY3Vyc29yX3dp ZHRoPTEsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0IG5zdGVybS5tOjMwNDU6MjUK ICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAwNzAzNWMgZW1hY3NgZGlzcGxheV9hbmRfc2V0 X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjZkMCwgb249dHJ1ZSwgaHBvcz00LCB2cG9zPTMs IHg9MjgsIHk9NDIpIGF0IHhkaXNwLmM6MzQyMDU6NQogICAgZnJhbWUgIzI6IDB4MDAwMDAw MDEwMDAwNzQwYyBlbWFjc2BndWlfdXBkYXRlX3dpbmRvd19lbmQodz0weDAwMDAwMDAxMWUw MTY2ZDAsIGN1cnNvcl9vbl9wPXRydWUsIG1vdXNlX2ZhY2Vfb3ZlcndyaXR0ZW5fcD1mYWxz ZSkgYXQgZGlzcG5ldy5jOjM5NDE6MgogICAgZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDAwNjAz YyBlbWFjc2B1cGRhdGVfd2luZG93KHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3JjZV9wPXRy dWUpIGF0IGRpc3BuZXcuYzozODY5OjcKICAgIGZyYW1lICM0OiAweDAwMDAwMDAxMDAwMDYx YzAgZW1hY3NgdXBkYXRlX3dpbmRvd190cmVlKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3Jj ZV9wPXRydWUpIGF0IGRpc3BuZXcuYzozNDkxOjE0CiAgICBmcmFtZSAjNTogMHgwMDAwMDAw MTAwMDA1M2EwIGVtYWNzYHVwZGF0ZV9mcmFtZShmPTB4MDAwMDAwMDExZTAxNjQ4MCwgZm9y Y2VfcD10cnVlLCBpbmhpYml0X2hhaXJ5X2lkX3A9ZmFsc2UpIGF0IGRpc3BuZXcuYzozMzI2 OjE4CiAgICBmcmFtZSAjNjogMHgwMDAwMDAwMTAwMDRmNDI0IGVtYWNzYHJlZGlzcGxheV9p bnRlcm5hbCBhdCB4ZGlzcC5jOjE3NDgwOjE2CiAgICBmcmFtZSAjNzogMHgwMDAwMDAwMTAw MDU1ZWY4IGVtYWNzYHJlZGlzcGxheSBhdCB4ZGlzcC5jOjE2NTc1OjMKICAgIGZyYW1lICM4 OiAweDAwMDAwMDAxMDAxNjFlNzQgZW1hY3NgcmVhZF9jaGFyKGNvbW1hbmRmbGFnPTEsIG1h cD0weDAwMDAwMDAxMzAwNGNkMjMsIHByZXZfZXZlbnQ9MHgwMDAwMDAwMDAwMDAwMDAwLCB1 c2VkX21vdXNlX21lbnU9MHgwMDAwMDAwMTZmZGZlODA3LCBlbmRfdGltZT0weDAwMDAwMDAw MDAwMDAwMDApIGF0IGtleWJvYXJkLmM6MjY3ODo2CiAgICBmcmFtZSAjOTogMHgwMDAwMDAw MTAwMTVlYTMwIGVtYWNzYHJlYWRfa2V5X3NlcXVlbmNlKGtleWJ1Zj0weDAwMDAwMDAxNmZk ZmViZTgsIHByb21wdD0weDAwMDAwMDAwMDAwMDAwMDAsIGRvbnRfZG93bmNhc2VfbGFzdD1m YWxzZSwgY2FuX3JldHVybl9zd2l0Y2hfZnJhbWU9dHJ1ZSwgZml4X2N1cnJlbnRfYnVmZmVy PXRydWUsIHByZXZlbnRfcmVkaXNwbGF5PWZhbHNlLCBkaXNhYmxlX3RleHRfY29udmVyc2lv bl9wPWZhbHNlKSBhdCBrZXlib2FyZC5jOjEwNzQzOjEyCiAgICBmcmFtZSAjMTA6IDB4MDAw MDAwMDEwMDE1Y2RmOCBlbWFjc2Bjb21tYW5kX2xvb3BfMSBhdCBrZXlib2FyZC5jOjE0Mjk6 MTUKICAgIGZyYW1lICMxMTogMHgwMDAwMDAwMTAwMjQ5MjNjIGVtYWNzYGludGVybmFsX2Nv bmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6 MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCwgaGZ1bj0oZW1hY3NgY21kX2Vy cm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQgZXZhbC5jOjE2MTM6MjUKICAgIGZyYW1lICMx MjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNzYGNvbW1hbmRfbG9vcF8yKGhhbmRsZXJzPTB4 MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9hcmQuYzoxMTY4OjExCiAgICBmcmFtZSAjMTM6 IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2BpbnRlcm5hbF9jYXRjaCh0YWc9MHgwMDAwMDAw MDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21tYW5kX2xvb3BfMiBhdCBrZXlib2FyZC5jOjEx NjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBldmFsLmM6MTI5MjoyNQogICAgZnJh bWUgIzE0OiAweDAwMDAwMDAxMDAxNWJjMTAgZW1hY3NgY29tbWFuZF9sb29wIGF0IGtleWJv YXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjMTU6IDB4MDAwMDAwMDEwMDE1YjlmYyBlbWFjc2By ZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJkLmM6NzU0OjkKICAgIGZyYW1lICMxNjogMHgw MDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1cnNpdmVfZWRpdCBhdCBrZXlib2FyZC5jOjgz NzozCiAgICBmcmFtZSAjMTc6IDB4MDAwMDAwMDEwMDE1OGFjOCBlbWFjc2BtYWluKGFyZ2M9 NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjApIGF0IGVtYWNzLmM6MjYyNDozCiAgICBmcmFt ZSAjMTg6IDB4MDAwMDAwMDE4NDk1NjBlMCBkeWxkYHN0YXJ0ICsgMjM2MAoobGxkYikgYwpQ cm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2VzcyA3NjE2IHN0b3BwZWQKKiB0aHJlYWQgIzEs IHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtw b2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAzNTRmNDQgZW1hY3NgbnNfZHJh d193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBnbHlwaF9yb3c9MHgwMDAw MDAwMTFlOTFmZDAwLCB4PTI4LCB5PTQyLCBjdXJzb3JfdHlwZT1IT0xMT1dfQk9YX0NVUlNP UiwgY3Vyc29yX3dpZHRoPTEsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0IG5zdGVy bS5tOjMwNDU6MjUKICAgMzA0MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0dXJuOwog ICAzMDQ0Ci0+IDMwNDUJICB3LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5cGU7CiAg IDMwNDYJICB3LT5waHlzX2N1cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAzMDQ4CSAg aWYgKGN1cnNvcl90eXBlID09IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykgc3RvcHBl ZC4KKGxsZGIpIDYKZXJyb3I6ICc2JyBpcyBub3QgYSB2YWxpZCBjb21tYW5kLgoobGxkYikg YnQKKiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3Ag cmVhc29uID0gYnJlYWtwb2ludCAyLjEKICAqIGZyYW1lICMwOiAweDAwMDAwMDAxMDAzNTRm NDQgZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBn bHlwaF9yb3c9MHgwMDAwMDAwMTFlOTFmZDAwLCB4PTI4LCB5PTQyLCBjdXJzb3JfdHlwZT1I T0xMT1dfQk9YX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTEsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9 ZmFsc2UpIGF0IG5zdGVybS5tOjMwNDU6MjUKICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAw NzAzNWMgZW1hY3NgZGlzcGxheV9hbmRfc2V0X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjZk MCwgb249dHJ1ZSwgaHBvcz00LCB2cG9zPTMsIHg9MjgsIHk9NDIpIGF0IHhkaXNwLmM6MzQy MDU6NQogICAgZnJhbWUgIzI6IDB4MDAwMDAwMDEwMDAwNzQwYyBlbWFjc2BndWlfdXBkYXRl X3dpbmRvd19lbmQodz0weDAwMDAwMDAxMWUwMTY2ZDAsIGN1cnNvcl9vbl9wPXRydWUsIG1v dXNlX2ZhY2Vfb3ZlcndyaXR0ZW5fcD1mYWxzZSkgYXQgZGlzcG5ldy5jOjM5NDE6MgogICAg ZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDAwNjAzYyBlbWFjc2B1cGRhdGVfd2luZG93KHc9MHgw MDAwMDAwMTFlMDE2NmQwLCBmb3JjZV9wPXRydWUpIGF0IGRpc3BuZXcuYzozODY5OjcKICAg IGZyYW1lICM0OiAweDAwMDAwMDAxMDAwMDYxYzAgZW1hY3NgdXBkYXRlX3dpbmRvd190cmVl KHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3JjZV9wPXRydWUpIGF0IGRpc3BuZXcuYzozNDkx OjE0CiAgICBmcmFtZSAjNTogMHgwMDAwMDAwMTAwMDA1M2EwIGVtYWNzYHVwZGF0ZV9mcmFt ZShmPTB4MDAwMDAwMDExZTAxNjQ4MCwgZm9yY2VfcD10cnVlLCBpbmhpYml0X2hhaXJ5X2lk X3A9ZmFsc2UpIGF0IGRpc3BuZXcuYzozMzI2OjE4CiAgICBmcmFtZSAjNjogMHgwMDAwMDAw MTAwMDRmNDI0IGVtYWNzYHJlZGlzcGxheV9pbnRlcm5hbCBhdCB4ZGlzcC5jOjE3NDgwOjE2 CiAgICBmcmFtZSAjNzogMHgwMDAwMDAwMTAwMDU1ZWY4IGVtYWNzYHJlZGlzcGxheSBhdCB4 ZGlzcC5jOjE2NTc1OjMKICAgIGZyYW1lICM4OiAweDAwMDAwMDAxMDAxNjFlNzQgZW1hY3Ng cmVhZF9jaGFyKGNvbW1hbmRmbGFnPTEsIG1hcD0weDAwMDAwMDAxMzAwNGNkMjMsIHByZXZf ZXZlbnQ9MHgwMDAwMDAwMDAwMDAwMDAwLCB1c2VkX21vdXNlX21lbnU9MHgwMDAwMDAwMTZm ZGZlODA3LCBlbmRfdGltZT0weDAwMDAwMDAwMDAwMDAwMDApIGF0IGtleWJvYXJkLmM6MjY3 ODo2CiAgICBmcmFtZSAjOTogMHgwMDAwMDAwMTAwMTVlYTMwIGVtYWNzYHJlYWRfa2V5X3Nl cXVlbmNlKGtleWJ1Zj0weDAwMDAwMDAxNmZkZmViZTgsIHByb21wdD0weDAwMDAwMDAwMDAw MDAwMDAsIGRvbnRfZG93bmNhc2VfbGFzdD1mYWxzZSwgY2FuX3JldHVybl9zd2l0Y2hfZnJh bWU9dHJ1ZSwgZml4X2N1cnJlbnRfYnVmZmVyPXRydWUsIHByZXZlbnRfcmVkaXNwbGF5PWZh bHNlLCBkaXNhYmxlX3RleHRfY29udmVyc2lvbl9wPWZhbHNlKSBhdCBrZXlib2FyZC5jOjEw NzQzOjEyCiAgICBmcmFtZSAjMTA6IDB4MDAwMDAwMDEwMDE1Y2RmOCBlbWFjc2Bjb21tYW5k X2xvb3BfMSBhdCBrZXlib2FyZC5jOjE0Mjk6MTUKICAgIGZyYW1lICMxMTogMHgwMDAwMDAw MTAwMjQ5MjNjIGVtYWNzYGludGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNv bW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAw MDAwMDA5MCwgaGZ1bj0oZW1hY3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQg ZXZhbC5jOjE2MTM6MjUKICAgIGZyYW1lICMxMjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNz YGNvbW1hbmRfbG9vcF8yKGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9h cmQuYzoxMTY4OjExCiAgICBmcmFtZSAjMTM6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2Bp bnRlcm5hbF9jYXRjaCh0YWc9MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21t YW5kX2xvb3BfMiBhdCBrZXlib2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkw KSBhdCBldmFsLmM6MTI5MjoyNQogICAgZnJhbWUgIzE0OiAweDAwMDAwMDAxMDAxNWJjMTAg ZW1hY3NgY29tbWFuZF9sb29wIGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjMTU6 IDB4MDAwMDAwMDEwMDE1YjlmYyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJk LmM6NzU0OjkKICAgIGZyYW1lICMxNjogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1 cnNpdmVfZWRpdCBhdCBrZXlib2FyZC5jOjgzNzozCiAgICBmcmFtZSAjMTc6IDB4MDAwMDAw MDEwMDE1OGFjOCBlbWFjc2BtYWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjAp IGF0IGVtYWNzLmM6MjYyNDozCiAgICBmcmFtZSAjMTg6IDB4MDAwMDAwMDE4NDk1NjBlMCBk eWxkYHN0YXJ0ICsgMjM2MAoobGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2Vz cyA3NjE2IHN0b3BwZWQKKiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRo cmVhZCcsIHN0b3AgcmVhc29uID0gYnJlYWtwb2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAw MDAwMDAxMDAzNTRmNDQgZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAw MTFlMDE2NmQwLCBnbHlwaF9yb3c9MHgwMDAwMDAwMTFlOTFmZDAwLCB4PTI4LCB5PTQyLCBj dXJzb3JfdHlwZT1GSUxMRURfQk9YX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTEsIG9uX3A9dHJ1 ZSwgYWN0aXZlX3A9dHJ1ZSkgYXQgbnN0ZXJtLm06MzA0NToyNQogICAzMDQyCSAgaWYgKCFv bl9wKQogICAzMDQzCSAgICByZXR1cm47CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vy c29yX3R5cGUgPSBjdXJzb3JfdHlwZTsKICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3Ag PSBvbl9wOwogICAzMDQ3CiAgIDMwNDgJICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09S KQpUYXJnZXQgMDogKGVtYWNzKSBzdG9wcGVkLgoobGxkYikgNwplcnJvcjogJzcnIGlzIG5v dCBhIHZhbGlkIGNvbW1hbmQuCihsbGRiKSBidAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29t LmFwcGxlLm1haW4tdGhyZWFkJywgc3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICog ZnJhbWUgIzA6IDB4MDAwMDAwMDEwMDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJz b3Iodz0weDAwMDAwMDAxMWUwMTY2ZDAsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU5MWZkMDAs IHg9MjgsIHk9NDIsIGN1cnNvcl90eXBlPUZJTExFRF9CT1hfQ1VSU09SLCBjdXJzb3Jfd2lk dGg9MSwgb25fcD10cnVlLCBhY3RpdmVfcD10cnVlKSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAg ICBmcmFtZSAjMTogMHgwMDAwMDAwMTAwMDcwMzVjIGVtYWNzYGRpc3BsYXlfYW5kX3NldF9j dXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2ZDAsIG9uPXRydWUsIGhwb3M9NCwgdnBvcz0zLCB4 PTI4LCB5PTQyKSBhdCB4ZGlzcC5jOjM0MjA1OjUKICAgIGZyYW1lICMyOiAweDAwMDAwMDAx MDAwNzBkMjQgZW1hY3NgdXBkYXRlX3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2 ZDAsIG9uPXRydWUpIGF0IHhkaXNwLmM6MzQyNDA6NwogICAgZnJhbWUgIzM6IDB4MDAwMDAw MDEwMDA3MGIxYyBlbWFjc2B1cGRhdGVfY3Vyc29yX2luX3dpbmRvd190cmVlKHc9MHgwMDAw MDAwMTFlMDE2NmQwLCBvbl9wPXRydWUpIGF0IHhkaXNwLmM6MzQyNTg6MgogICAgZnJhbWUg IzQ6IDB4MDAwMDAwMDEwMDA3MGFhMCBlbWFjc2BndWlfdXBkYXRlX2N1cnNvcihmPTB4MDAw MDAwMDExZTAxNjQ4MCwgb25fcD10cnVlKSBhdCB4ZGlzcC5jOjM0MjcyOjMKICAgIGZyYW1l ICM1OiAweDAwMDAwMDAxMDAzNDQ2MzggZW1hY3NgbnNfZnJhbWVfcmVoaWdobGlnaHQoZnJh bWU9MHgwMDAwMDAwMTFlMDE2NDgwKSBhdCBuc3Rlcm0ubToxNDg2OjExCiAgICBmcmFtZSAj NjogMHgwMDAwMDAwMTAwMzQ0NDY4IGVtYWNzYC1bRW1hY3NWaWV3IHdpbmRvd0RpZEJlY29t ZUtleV0oc2VsZj0weDAwMDAwMDAxMWIxMTE0YTAsIF9jbWQ9IndpbmRvd0RpZEJlY29tZUtl eSIpIGF0IG5zdGVybS5tOjc5MzU6MwogICAgZnJhbWUgIzc6IDB4MDAwMDAwMDEwMDM0NDNh OCBlbWFjc2AtW0VtYWNzVmlldyB3aW5kb3dEaWRCZWNvbWVLZXk6XShzZWxmPTB4MDAwMDAw MDExYjExMTRhMCwgX2NtZD0id2luZG93RGlkQmVjb21lS2V5OiIsIG5vdGlmaWNhdGlvbj1A Ik5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIikgYXQgbnN0ZXJtLm06NzkxODoz CiAgICBmcmFtZSAjODogMHgwMDAwMDAwMTg0ZGIzMTQ0IENvcmVGb3VuZGF0aW9uYF9fQ0ZO T1RJRklDQVRJT05DRU5URVJfSVNfQ0FMTElOR19PVVRfVE9fQU5fT0JTRVJWRVJfXyArIDE0 OAogICAgZnJhbWUgIzk6IDB4MDAwMDAwMDE4NGU0NzNkOCBDb3JlRm91bmRhdGlvbmBfX19D RlhSZWdpc3RyYXRpb25Qb3N0X2Jsb2NrX2ludm9rZSArIDg4CiAgICBmcmFtZSAjMTA6IDB4 MDAwMDAwMDE4NGU0NzMyMCBDb3JlRm91bmRhdGlvbmBfQ0ZYUmVnaXN0cmF0aW9uUG9zdCAr IDQ0MAogICAgZnJhbWUgIzExOiAweDAwMDAwMDAxODRkODE2NzggQ29yZUZvdW5kYXRpb25g X0NGWE5vdGlmaWNhdGlvblBvc3QgKyA3NjgKICAgIGZyYW1lICMxMjogMHgwMDAwMDAwMTg1 ZTllNGU0IEZvdW5kYXRpb25gLVtOU05vdGlmaWNhdGlvbkNlbnRlciBwb3N0Tm90aWZpY2F0 aW9uTmFtZTpvYmplY3Q6dXNlckluZm86XSArIDg4CiAgICBmcmFtZSAjMTM6IDB4MDAwMDAw MDE4ODc3MDYyYyBBcHBLaXRgLVtOU1dpbmRvdyBiZWNvbWVLZXlXaW5kb3ddICsgODQ0CiAg ICBmcmFtZSAjMTQ6IDB4MDAwMDAwMDE4ODc2ZjU1YyBBcHBLaXRgX05YU2hvd0tleUFuZE1h aW4gKyAxMzIKICAgIGZyYW1lICMxNTogMHgwMDAwMDAwMTg4NzZkOTI0IEFwcEtpdGAtW05T QXBwbGljYXRpb24gX2hhbmRsZUFjdGl2YXRlZEV2ZW50Ol0gKyAxMzMyCiAgICBmcmFtZSAj MTY6IDB4MDAwMDAwMDE4OGUxMDhkOCBBcHBLaXRgLVtOU0FwcGxpY2F0aW9uKE5TRXZlbnRS b3V0aW5nKSBzZW5kRXZlbnQ6XSArIDE3ODAKICAgIGZyYW1lICMxNzogMHgwMDAwMDAwMTAw MzNiY2Q4IGVtYWNzYC1bRW1hY3NBcHAgc2VuZEV2ZW50Ol0oc2VsZj0weDAwMDAwMDAxM2E2 MWYzNjAsIF9jbWQ9InNlbmRFdmVudDoiLCB0aGVFdmVudD0weDAwMDA2MDAwMDBjN2MyNDAp IGF0IG5zdGVybS5tOjYwNzM6MwogICAgZnJhbWUgIzE4OiAweDAwMDAwMDAxODhhNWU4OWMg QXBwS2l0YC1bTlNBcHBsaWNhdGlvbiBfaGFuZGxlRXZlbnQ6XSArIDYwCiAgICBmcmFtZSAj MTk6IDB4MDAwMDAwMDE4ODYwZjBjMCBBcHBLaXRgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gKyA1 MTIKICAgIGZyYW1lICMyMDogMHgwMDAwMDAwMTAwMzNiODM4IGVtYWNzYC1bRW1hY3NBcHAg cnVuXShzZWxmPTB4MDAwMDAwMDEzYTYxZjM2MCwgX2NtZD0icnVuIikgYXQgbnN0ZXJtLm06 NTk0Mjo3CiAgICBmcmFtZSAjMjE6IDB4MDAwMDAwMDEwMDM1NjBiMCBlbWFjc2Buc19yZWFk X3NvY2tldF8xKHRlcm1pbmFsPTB4MDAwMDAwMDEyYTgzNGMxMCwgaG9sZF9xdWl0PTB4MDAw MDAwMDE2ZmRmYWY3MCwgbm9fcmVsZWFzZT1OTykgYXQgbnN0ZXJtLm06NDgxNjoxMQogICAg ZnJhbWUgIzIyOiAweDAwMDAwMDAxMDAzNGZhMTggZW1hY3NgbnNfcmVhZF9zb2NrZXQodGVy bWluYWw9MHgwMDAwMDAwMTJhODM0YzEwLCBob2xkX3F1aXQ9MHgwMDAwMDAwMTZmZGZhZjcw KSBhdCBuc3Rlcm0ubTo0ODM0OjEwCiAgICBmcmFtZSAjMjM6IDB4MDAwMDAwMDEwMDE2YTZk YyBlbWFjc2Bnb2JibGVfaW5wdXQgYXQga2V5Ym9hcmQuYzo3OTE5OjE3CiAgICBmcmFtZSAj MjQ6IDB4MDAwMDAwMDEwMDE2YWUxMCBlbWFjc2BoYW5kbGVfYXN5bmNfaW5wdXQgYXQga2V5 Ym9hcmQuYzo4MTU4OjE5CiAgICBmcmFtZSAjMjU6IDB4MDAwMDAwMDEwMDE2YWRmMCBlbWFj c2Bwcm9jZXNzX3BlbmRpbmdfc2lnbmFscyBhdCBrZXlib2FyZC5jOjgxNzI6MwogICAgZnJh bWUgIzI2OiAweDAwMDAwMDAxMDAxNmFlOWMgZW1hY3NgdW5ibG9ja19pbnB1dF90byhsZXZl bD0wKSBhdCBrZXlib2FyZC5jOjgxODc6MgogICAgZnJhbWUgIzI3OiAweDAwMDAwMDAxMDAx NjgzYTggZW1hY3NgdW5ibG9ja19pbnB1dCBhdCBrZXlib2FyZC5jOjgyMDY6MwogICAgZnJh bWUgIzI4OiAweDAwMDAwMDAxMDAwMDc1MDQgZW1hY3NgZ3VpX3VwZGF0ZV93aW5kb3dfZW5k KHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBjdXJzb3Jfb25fcD10cnVlLCBtb3VzZV9mYWNlX292 ZXJ3cml0dGVuX3A9ZmFsc2UpIGF0IGRpc3BuZXcuYzozOTU1OjcKICAgIGZyYW1lICMyOTog MHgwMDAwMDAwMTAwMDA2MDNjIGVtYWNzYHVwZGF0ZV93aW5kb3codz0weDAwMDAwMDAxMWUw MTY2ZDAsIGZvcmNlX3A9dHJ1ZSkgYXQgZGlzcG5ldy5jOjM4Njk6NwogICAgZnJhbWUgIzMw OiAweDAwMDAwMDAxMDAwMDYxYzAgZW1hY3NgdXBkYXRlX3dpbmRvd190cmVlKHc9MHgwMDAw MDAwMTFlMDE2NmQwLCBmb3JjZV9wPXRydWUpIGF0IGRpc3BuZXcuYzozNDkxOjE0CiAgICBm cmFtZSAjMzE6IDB4MDAwMDAwMDEwMDAwNTNhMCBlbWFjc2B1cGRhdGVfZnJhbWUoZj0weDAw MDAwMDAxMWUwMTY0ODAsIGZvcmNlX3A9dHJ1ZSwgaW5oaWJpdF9oYWlyeV9pZF9wPWZhbHNl KSBhdCBkaXNwbmV3LmM6MzMyNjoxOAogICAgZnJhbWUgIzMyOiAweDAwMDAwMDAxMDAwNGY0 MjQgZW1hY3NgcmVkaXNwbGF5X2ludGVybmFsIGF0IHhkaXNwLmM6MTc0ODA6MTYKICAgIGZy YW1lICMzMzogMHgwMDAwMDAwMTAwMDU1ZWY4IGVtYWNzYHJlZGlzcGxheSBhdCB4ZGlzcC5j OjE2NTc1OjMKICAgIGZyYW1lICMzNDogMHgwMDAwMDAwMTAwMTYxZTc0IGVtYWNzYHJlYWRf Y2hhcihjb21tYW5kZmxhZz0xLCBtYXA9MHgwMDAwMDAwMTMwMDRjZDIzLCBwcmV2X2V2ZW50 PTB4MDAwMDAwMDAwMDAwMDAwMCwgdXNlZF9tb3VzZV9tZW51PTB4MDAwMDAwMDE2ZmRmZTgw NywgZW5kX3RpbWU9MHgwMDAwMDAwMDAwMDAwMDAwKSBhdCBrZXlib2FyZC5jOjI2Nzg6Ngog ICAgZnJhbWUgIzM1OiAweDAwMDAwMDAxMDAxNWVhMzAgZW1hY3NgcmVhZF9rZXlfc2VxdWVu Y2Uoa2V5YnVmPTB4MDAwMDAwMDE2ZmRmZWJlOCwgcHJvbXB0PTB4MDAwMDAwMDAwMDAwMDAw MCwgZG9udF9kb3duY2FzZV9sYXN0PWZhbHNlLCBjYW5fcmV0dXJuX3N3aXRjaF9mcmFtZT10 cnVlLCBmaXhfY3VycmVudF9idWZmZXI9dHJ1ZSwgcHJldmVudF9yZWRpc3BsYXk9ZmFsc2Us IGRpc2FibGVfdGV4dF9jb252ZXJzaW9uX3A9ZmFsc2UpIGF0IGtleWJvYXJkLmM6MTA3NDM6 MTIKICAgIGZyYW1lICMzNjogMHgwMDAwMDAwMTAwMTVjZGY4IGVtYWNzYGNvbW1hbmRfbG9v cF8xIGF0IGtleWJvYXJkLmM6MTQyOToxNQogICAgZnJhbWUgIzM3OiAweDAwMDAwMDAxMDAy NDkyM2MgZW1hY3NgaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2UoYmZ1bj0oZW1hY3NgY29tbWFu ZF9sb29wXzEgYXQga2V5Ym9hcmQuYzoxMzI0KSwgaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAw MDkwLCBoZnVuPShlbWFjc2BjbWRfZXJyb3IgYXQga2V5Ym9hcmQuYzo5NzApKSBhdCBldmFs LmM6MTYxMzoyNQogICAgZnJhbWUgIzM4OiAweDAwMDAwMDAxMDAxNWM4YzQgZW1hY3NgY29t bWFuZF9sb29wXzIoaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBrZXlib2FyZC5j OjExNjg6MTEKICAgIGZyYW1lICMzOTogMHgwMDAwMDAwMTAwMjQ4NGQ0IGVtYWNzYGludGVy bmFsX2NhdGNoKHRhZz0weDAwMDAwMDAwMDAwMTEyMjAsIGZ1bmM9KGVtYWNzYGNvbW1hbmRf bG9vcF8yIGF0IGtleWJvYXJkLmM6MTE2NCksIGFyZz0weDAwMDAwMDAwMDAwMDAwOTApIGF0 IGV2YWwuYzoxMjkyOjI1CiAgICBmcmFtZSAjNDA6IDB4MDAwMDAwMDEwMDE1YmMxMCBlbWFj c2Bjb21tYW5kX2xvb3AgYXQga2V5Ym9hcmQuYzoxMTQ2OjIKICAgIGZyYW1lICM0MTogMHgw MDAwMDAwMTAwMTViOWZjIGVtYWNzYHJlY3Vyc2l2ZV9lZGl0XzEgYXQga2V5Ym9hcmQuYzo3 NTQ6OQogICAgZnJhbWUgIzQyOiAweDAwMDAwMDAxMDAxNWJlZTggZW1hY3NgRnJlY3Vyc2l2 ZV9lZGl0IGF0IGtleWJvYXJkLmM6ODM3OjMKICAgIGZyYW1lICM0MzogMHgwMDAwMDAwMTAw MTU4YWM4IGVtYWNzYG1haW4oYXJnYz00LCBhcmd2PTB4MDAwMDAwMDE2ZmRmZjRiMCkgYXQg ZW1hY3MuYzoyNjI0OjMKICAgIGZyYW1lICM0NDogMHgwMDAwMDAwMTg0OTU2MGUwIGR5bGRg c3RhcnQgKyAyMzYwCihsbGRiKSBjClByb2Nlc3MgNzYxNiByZXN1bWluZwpQcm9jZXNzIDc2 MTYgc3RvcHBlZAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFk Jywgc3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICAgZnJhbWUgIzA6IDB4MDAwMDAw MDEwMDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUw MTY5NzgsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU4MWYwMDAsIHg9MCwgeT0wLCBjdXJzb3Jf dHlwZT1OT19DVVJTT1IsIGN1cnNvcl93aWR0aD0wLCBvbl9wPXRydWUsIGFjdGl2ZV9wPWZh bHNlKSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMwNDMJ ICAgIHJldHVybjsKICAgMzA0NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9IGN1 cnNvcl90eXBlOwogICAzMDQ2CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAgIDMw NDcKICAgMzA0OAkgIGlmIChjdXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAwOiAo ZW1hY3MpIHN0b3BwZWQuCihsbGRiKSA4CmVycm9yOiAnOCcgaXMgbm90IGEgdmFsaWQgY29t bWFuZC4KKGxsZGIpIGJ0CiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10 aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgMi4xCiAgKiBmcmFtZSAjMDogMHgw MDAwMDAwMTAwMzU0ZjQ0IGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAw MDExZTAxNjk3OCwgZ2x5cGhfcm93PTB4MDAwMDAwMDExZTgxZjAwMCwgeD0wLCB5PTAsIGN1 cnNvcl90eXBlPU5PX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZl X3A9ZmFsc2UpIGF0IG5zdGVybS5tOjMwNDU6MjUKICAgIGZyYW1lICMxOiAweDAwMDAwMDAx MDAwNzAzNWMgZW1hY3NgZGlzcGxheV9hbmRfc2V0X2N1cnNvcih3PTB4MDAwMDAwMDExZTAx Njk3OCwgb249dHJ1ZSwgaHBvcz0wLCB2cG9zPTAsIHg9MCwgeT0wKSBhdCB4ZGlzcC5jOjM0 MjA1OjUKICAgIGZyYW1lICMyOiAweDAwMDAwMDAxMDAwNzBkMjQgZW1hY3NgdXBkYXRlX3dp bmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY5NzgsIG9uPXRydWUpIGF0IHhkaXNwLmM6 MzQyNDA6NwogICAgZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDA3MGIxYyBlbWFjc2B1cGRhdGVf Y3Vyc29yX2luX3dpbmRvd190cmVlKHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBvbl9wPXRydWUp IGF0IHhkaXNwLmM6MzQyNTg6MgogICAgZnJhbWUgIzQ6IDB4MDAwMDAwMDEwMDA3MGFhMCBl bWFjc2BndWlfdXBkYXRlX2N1cnNvcihmPTB4MDAwMDAwMDExZTAxNjQ4MCwgb25fcD10cnVl KSBhdCB4ZGlzcC5jOjM0MjcyOjMKICAgIGZyYW1lICM1OiAweDAwMDAwMDAxMDAzNDQ2Mzgg ZW1hY3NgbnNfZnJhbWVfcmVoaWdobGlnaHQoZnJhbWU9MHgwMDAwMDAwMTFlMDE2NDgwKSBh dCBuc3Rlcm0ubToxNDg2OjExCiAgICBmcmFtZSAjNjogMHgwMDAwMDAwMTAwMzQ0NDY4IGVt YWNzYC1bRW1hY3NWaWV3IHdpbmRvd0RpZEJlY29tZUtleV0oc2VsZj0weDAwMDAwMDAxMWIx MTE0YTAsIF9jbWQ9IndpbmRvd0RpZEJlY29tZUtleSIpIGF0IG5zdGVybS5tOjc5MzU6Mwog ICAgZnJhbWUgIzc6IDB4MDAwMDAwMDEwMDM0NDNhOCBlbWFjc2AtW0VtYWNzVmlldyB3aW5k b3dEaWRCZWNvbWVLZXk6XShzZWxmPTB4MDAwMDAwMDExYjExMTRhMCwgX2NtZD0id2luZG93 RGlkQmVjb21lS2V5OiIsIG5vdGlmaWNhdGlvbj1AIk5TV2luZG93RGlkQmVjb21lS2V5Tm90 aWZpY2F0aW9uIikgYXQgbnN0ZXJtLm06NzkxODozCiAgICBmcmFtZSAjODogMHgwMDAwMDAw MTg0ZGIzMTQ0IENvcmVGb3VuZGF0aW9uYF9fQ0ZOT1RJRklDQVRJT05DRU5URVJfSVNfQ0FM TElOR19PVVRfVE9fQU5fT0JTRVJWRVJfXyArIDE0OAogICAgZnJhbWUgIzk6IDB4MDAwMDAw MDE4NGU0NzNkOCBDb3JlRm91bmRhdGlvbmBfX19DRlhSZWdpc3RyYXRpb25Qb3N0X2Jsb2Nr X2ludm9rZSArIDg4CiAgICBmcmFtZSAjMTA6IDB4MDAwMDAwMDE4NGU0NzMyMCBDb3JlRm91 bmRhdGlvbmBfQ0ZYUmVnaXN0cmF0aW9uUG9zdCArIDQ0MAogICAgZnJhbWUgIzExOiAweDAw MDAwMDAxODRkODE2NzggQ29yZUZvdW5kYXRpb25gX0NGWE5vdGlmaWNhdGlvblBvc3QgKyA3 NjgKICAgIGZyYW1lICMxMjogMHgwMDAwMDAwMTg1ZTllNGU0IEZvdW5kYXRpb25gLVtOU05v dGlmaWNhdGlvbkNlbnRlciBwb3N0Tm90aWZpY2F0aW9uTmFtZTpvYmplY3Q6dXNlckluZm86 XSArIDg4CiAgICBmcmFtZSAjMTM6IDB4MDAwMDAwMDE4ODc3MDYyYyBBcHBLaXRgLVtOU1dp bmRvdyBiZWNvbWVLZXlXaW5kb3ddICsgODQ0CiAgICBmcmFtZSAjMTQ6IDB4MDAwMDAwMDE4 ODc2ZjU1YyBBcHBLaXRgX05YU2hvd0tleUFuZE1haW4gKyAxMzIKICAgIGZyYW1lICMxNTog MHgwMDAwMDAwMTg4NzZkOTI0IEFwcEtpdGAtW05TQXBwbGljYXRpb24gX2hhbmRsZUFjdGl2 YXRlZEV2ZW50Ol0gKyAxMzMyCiAgICBmcmFtZSAjMTY6IDB4MDAwMDAwMDE4OGUxMDhkOCBB cHBLaXRgLVtOU0FwcGxpY2F0aW9uKE5TRXZlbnRSb3V0aW5nKSBzZW5kRXZlbnQ6XSArIDE3 ODAKICAgIGZyYW1lICMxNzogMHgwMDAwMDAwMTAwMzNiY2Q4IGVtYWNzYC1bRW1hY3NBcHAg c2VuZEV2ZW50Ol0oc2VsZj0weDAwMDAwMDAxM2E2MWYzNjAsIF9jbWQ9InNlbmRFdmVudDoi LCB0aGVFdmVudD0weDAwMDA2MDAwMDBjN2MyNDApIGF0IG5zdGVybS5tOjYwNzM6MwogICAg ZnJhbWUgIzE4OiAweDAwMDAwMDAxODhhNWU4OWMgQXBwS2l0YC1bTlNBcHBsaWNhdGlvbiBf aGFuZGxlRXZlbnQ6XSArIDYwCiAgICBmcmFtZSAjMTk6IDB4MDAwMDAwMDE4ODYwZjBjMCBB cHBLaXRgLVtOU0FwcGxpY2F0aW9uIHJ1bl0gKyA1MTIKICAgIGZyYW1lICMyMDogMHgwMDAw MDAwMTAwMzNiODM4IGVtYWNzYC1bRW1hY3NBcHAgcnVuXShzZWxmPTB4MDAwMDAwMDEzYTYx ZjM2MCwgX2NtZD0icnVuIikgYXQgbnN0ZXJtLm06NTk0Mjo3CiAgICBmcmFtZSAjMjE6IDB4 MDAwMDAwMDEwMDM1NjBiMCBlbWFjc2Buc19yZWFkX3NvY2tldF8xKHRlcm1pbmFsPTB4MDAw MDAwMDEyYTgzNGMxMCwgaG9sZF9xdWl0PTB4MDAwMDAwMDE2ZmRmYWY3MCwgbm9fcmVsZWFz ZT1OTykgYXQgbnN0ZXJtLm06NDgxNjoxMQogICAgZnJhbWUgIzIyOiAweDAwMDAwMDAxMDAz NGZhMTggZW1hY3NgbnNfcmVhZF9zb2NrZXQodGVybWluYWw9MHgwMDAwMDAwMTJhODM0YzEw LCBob2xkX3F1aXQ9MHgwMDAwMDAwMTZmZGZhZjcwKSBhdCBuc3Rlcm0ubTo0ODM0OjEwCiAg ICBmcmFtZSAjMjM6IDB4MDAwMDAwMDEwMDE2YTZkYyBlbWFjc2Bnb2JibGVfaW5wdXQgYXQg a2V5Ym9hcmQuYzo3OTE5OjE3CiAgICBmcmFtZSAjMjQ6IDB4MDAwMDAwMDEwMDE2YWUxMCBl bWFjc2BoYW5kbGVfYXN5bmNfaW5wdXQgYXQga2V5Ym9hcmQuYzo4MTU4OjE5CiAgICBmcmFt ZSAjMjU6IDB4MDAwMDAwMDEwMDE2YWRmMCBlbWFjc2Bwcm9jZXNzX3BlbmRpbmdfc2lnbmFs cyBhdCBrZXlib2FyZC5jOjgxNzI6MwogICAgZnJhbWUgIzI2OiAweDAwMDAwMDAxMDAxNmFl OWMgZW1hY3NgdW5ibG9ja19pbnB1dF90byhsZXZlbD0wKSBhdCBrZXlib2FyZC5jOjgxODc6 MgogICAgZnJhbWUgIzI3OiAweDAwMDAwMDAxMDAxNjgzYTggZW1hY3NgdW5ibG9ja19pbnB1 dCBhdCBrZXlib2FyZC5jOjgyMDY6MwogICAgZnJhbWUgIzI4OiAweDAwMDAwMDAxMDAwMDc1 MDQgZW1hY3NgZ3VpX3VwZGF0ZV93aW5kb3dfZW5kKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBj dXJzb3Jfb25fcD10cnVlLCBtb3VzZV9mYWNlX292ZXJ3cml0dGVuX3A9ZmFsc2UpIGF0IGRp c3BuZXcuYzozOTU1OjcKICAgIGZyYW1lICMyOTogMHgwMDAwMDAwMTAwMDA2MDNjIGVtYWNz YHVwZGF0ZV93aW5kb3codz0weDAwMDAwMDAxMWUwMTY2ZDAsIGZvcmNlX3A9dHJ1ZSkgYXQg ZGlzcG5ldy5jOjM4Njk6NwogICAgZnJhbWUgIzMwOiAweDAwMDAwMDAxMDAwMDYxYzAgZW1h Y3NgdXBkYXRlX3dpbmRvd190cmVlKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3JjZV9wPXRy dWUpIGF0IGRpc3BuZXcuYzozNDkxOjE0CiAgICBmcmFtZSAjMzE6IDB4MDAwMDAwMDEwMDAw NTNhMCBlbWFjc2B1cGRhdGVfZnJhbWUoZj0weDAwMDAwMDAxMWUwMTY0ODAsIGZvcmNlX3A9 dHJ1ZSwgaW5oaWJpdF9oYWlyeV9pZF9wPWZhbHNlKSBhdCBkaXNwbmV3LmM6MzMyNjoxOAog ICAgZnJhbWUgIzMyOiAweDAwMDAwMDAxMDAwNGY0MjQgZW1hY3NgcmVkaXNwbGF5X2ludGVy bmFsIGF0IHhkaXNwLmM6MTc0ODA6MTYKICAgIGZyYW1lICMzMzogMHgwMDAwMDAwMTAwMDU1 ZWY4IGVtYWNzYHJlZGlzcGxheSBhdCB4ZGlzcC5jOjE2NTc1OjMKICAgIGZyYW1lICMzNDog MHgwMDAwMDAwMTAwMTYxZTc0IGVtYWNzYHJlYWRfY2hhcihjb21tYW5kZmxhZz0xLCBtYXA9 MHgwMDAwMDAwMTMwMDRjZDIzLCBwcmV2X2V2ZW50PTB4MDAwMDAwMDAwMDAwMDAwMCwgdXNl ZF9tb3VzZV9tZW51PTB4MDAwMDAwMDE2ZmRmZTgwNywgZW5kX3RpbWU9MHgwMDAwMDAwMDAw MDAwMDAwKSBhdCBrZXlib2FyZC5jOjI2Nzg6NgogICAgZnJhbWUgIzM1OiAweDAwMDAwMDAx MDAxNWVhMzAgZW1hY3NgcmVhZF9rZXlfc2VxdWVuY2Uoa2V5YnVmPTB4MDAwMDAwMDE2ZmRm ZWJlOCwgcHJvbXB0PTB4MDAwMDAwMDAwMDAwMDAwMCwgZG9udF9kb3duY2FzZV9sYXN0PWZh bHNlLCBjYW5fcmV0dXJuX3N3aXRjaF9mcmFtZT10cnVlLCBmaXhfY3VycmVudF9idWZmZXI9 dHJ1ZSwgcHJldmVudF9yZWRpc3BsYXk9ZmFsc2UsIGRpc2FibGVfdGV4dF9jb252ZXJzaW9u X3A9ZmFsc2UpIGF0IGtleWJvYXJkLmM6MTA3NDM6MTIKICAgIGZyYW1lICMzNjogMHgwMDAw MDAwMTAwMTVjZGY4IGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0IGtleWJvYXJkLmM6MTQyOTox NQogICAgZnJhbWUgIzM3OiAweDAwMDAwMDAxMDAyNDkyM2MgZW1hY3NgaW50ZXJuYWxfY29u ZGl0aW9uX2Nhc2UoYmZ1bj0oZW1hY3NgY29tbWFuZF9sb29wXzEgYXQga2V5Ym9hcmQuYzox MzI0KSwgaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAwMDkwLCBoZnVuPShlbWFjc2BjbWRfZXJy b3IgYXQga2V5Ym9hcmQuYzo5NzApKSBhdCBldmFsLmM6MTYxMzoyNQogICAgZnJhbWUgIzM4 OiAweDAwMDAwMDAxMDAxNWM4YzQgZW1hY3NgY29tbWFuZF9sb29wXzIoaGFuZGxlcnM9MHgw MDAwMDAwMDAwMDAwMDkwKSBhdCBrZXlib2FyZC5jOjExNjg6MTEKICAgIGZyYW1lICMzOTog MHgwMDAwMDAwMTAwMjQ4NGQ0IGVtYWNzYGludGVybmFsX2NhdGNoKHRhZz0weDAwMDAwMDAw MDAwMTEyMjAsIGZ1bmM9KGVtYWNzYGNvbW1hbmRfbG9vcF8yIGF0IGtleWJvYXJkLmM6MTE2 NCksIGFyZz0weDAwMDAwMDAwMDAwMDAwOTApIGF0IGV2YWwuYzoxMjkyOjI1CiAgICBmcmFt ZSAjNDA6IDB4MDAwMDAwMDEwMDE1YmMxMCBlbWFjc2Bjb21tYW5kX2xvb3AgYXQga2V5Ym9h cmQuYzoxMTQ2OjIKICAgIGZyYW1lICM0MTogMHgwMDAwMDAwMTAwMTViOWZjIGVtYWNzYHJl Y3Vyc2l2ZV9lZGl0XzEgYXQga2V5Ym9hcmQuYzo3NTQ6OQogICAgZnJhbWUgIzQyOiAweDAw MDAwMDAxMDAxNWJlZTggZW1hY3NgRnJlY3Vyc2l2ZV9lZGl0IGF0IGtleWJvYXJkLmM6ODM3 OjMKICAgIGZyYW1lICM0MzogMHgwMDAwMDAwMTAwMTU4YWM4IGVtYWNzYG1haW4oYXJnYz00 LCBhcmd2PTB4MDAwMDAwMDE2ZmRmZjRiMCkgYXQgZW1hY3MuYzoyNjI0OjMKICAgIGZyYW1l ICM0NDogMHgwMDAwMDAwMTg0OTU2MGUwIGR5bGRgc3RhcnQgKyAyMzYwCihsbGRiKSBjClBy b2Nlc3MgNzYxNiByZXN1bWluZwoyMDI0LTA3LTIyIDAxOjU0OjI2LjcwODMxMyswMzAwIGVt YWNzWzc2MTY6MzI1MzUzMF0gW0N1cnNvclVJXSAtW1RVSU5TQ3Vyc29yVUlDb250cm9sbGVy IGFjdGl2YXRlOl06IEVtYWNzVmlldyBkb2Vzbid0IGNvbmZvcm0gdG8gTlNUZXh0SW5wdXRD bGllbnQgcHJvdG9jb2wuClByb2Nlc3MgNzYxNiBzdG9wcGVkCiogdGhyZWFkICMxLCBxdWV1 ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQg Mi4xCiAgICBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0ZjQ0IGVtYWNzYG5zX2RyYXdfd2lu ZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjZkMCwgZ2x5cGhfcm93PTB4MDAwMDAwMDEx ZTkxZmQwMCwgeD0yOCwgeT00MiwgY3Vyc29yX3R5cGU9SE9MTE9XX0JPWF9DVVJTT1IsIGN1 cnNvcl93aWR0aD0xLCBvbl9wPXRydWUsIGFjdGl2ZV9wPWZhbHNlKSBhdCBuc3Rlcm0ubToz MDQ1OjI1CiAgIDMwNDIJICBpZiAoIW9uX3ApCiAgIDMwNDMJICAgIHJldHVybjsKICAgMzA0 NAotPiAzMDQ1CSAgdy0+cGh5c19jdXJzb3JfdHlwZSA9IGN1cnNvcl90eXBlOwogICAzMDQ2 CSAgdy0+cGh5c19jdXJzb3Jfb25fcCA9IG9uX3A7CiAgIDMwNDcKICAgMzA0OAkgIGlmIChj dXJzb3JfdHlwZSA9PSBOT19DVVJTT1IpClRhcmdldCAwOiAoZW1hY3MpIHN0b3BwZWQuCihs bGRiKSA5CmVycm9yOiAnOScgaXMgbm90IGEgdmFsaWQgY29tbWFuZC4KKGxsZGIpIGJ0Ciog dGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9wIHJlYXNv biA9IGJyZWFrcG9pbnQgMi4xCiAgKiBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0ZjQ0IGVt YWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjZkMCwgZ2x5cGhf cm93PTB4MDAwMDAwMDExZTkxZmQwMCwgeD0yOCwgeT00MiwgY3Vyc29yX3R5cGU9SE9MTE9X X0JPWF9DVVJTT1IsIGN1cnNvcl93aWR0aD0xLCBvbl9wPXRydWUsIGFjdGl2ZV9wPWZhbHNl KSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAgICBmcmFtZSAjMTogMHgwMDAwMDAwMTAwMDcwMzVj IGVtYWNzYGRpc3BsYXlfYW5kX3NldF9jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2ZDAsIG9u PXRydWUsIGhwb3M9NCwgdnBvcz0zLCB4PTI4LCB5PTQyKSBhdCB4ZGlzcC5jOjM0MjA1OjUK ICAgIGZyYW1lICMyOiAweDAwMDAwMDAxMDAwNzBkMjQgZW1hY3NgdXBkYXRlX3dpbmRvd19j dXJzb3Iodz0weDAwMDAwMDAxMWUwMTY2ZDAsIG9uPXRydWUpIGF0IHhkaXNwLmM6MzQyNDA6 NwogICAgZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDA3MGIxYyBlbWFjc2B1cGRhdGVfY3Vyc29y X2luX3dpbmRvd190cmVlKHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBvbl9wPXRydWUpIGF0IHhk aXNwLmM6MzQyNTg6MgogICAgZnJhbWUgIzQ6IDB4MDAwMDAwMDEwMDA3MGFhMCBlbWFjc2Bn dWlfdXBkYXRlX2N1cnNvcihmPTB4MDAwMDAwMDExZTAxNjQ4MCwgb25fcD10cnVlKSBhdCB4 ZGlzcC5jOjM0MjcyOjMKICAgIGZyYW1lICM1OiAweDAwMDAwMDAxMDAzNDQ3NzAgZW1hY3Ng LVtFbWFjc1ZpZXcgd2luZG93RGlkUmVzaWduS2V5Ol0oc2VsZj0weDAwMDAwMDAxMWIxMTE0 YTAsIF9jbWQ9IndpbmRvd0RpZFJlc2lnbktleToiLCBub3RpZmljYXRpb249QCJOU1dpbmRv d0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiIpIGF0IG5zdGVybS5tOjc5NjA6NwogICAgZnJh bWUgIzY6IDB4MDAwMDAwMDE4NGRiMzE0NCBDb3JlRm91bmRhdGlvbmBfX0NGTk9USUZJQ0FU SU9OQ0VOVEVSX0lTX0NBTExJTkdfT1VUX1RPX0FOX09CU0VSVkVSX18gKyAxNDgKICAgIGZy YW1lICM3OiAweDAwMDAwMDAxODRlNDczZDggQ29yZUZvdW5kYXRpb25gX19fQ0ZYUmVnaXN0 cmF0aW9uUG9zdF9ibG9ja19pbnZva2UgKyA4OAogICAgZnJhbWUgIzg6IDB4MDAwMDAwMDE4 NGU0NzMyMCBDb3JlRm91bmRhdGlvbmBfQ0ZYUmVnaXN0cmF0aW9uUG9zdCArIDQ0MAogICAg ZnJhbWUgIzk6IDB4MDAwMDAwMDE4NGQ4MTY3OCBDb3JlRm91bmRhdGlvbmBfQ0ZYTm90aWZp Y2F0aW9uUG9zdCArIDc2OAogICAgZnJhbWUgIzEwOiAweDAwMDAwMDAxODVlOWU0ZTQgRm91 bmRhdGlvbmAtW05TTm90aWZpY2F0aW9uQ2VudGVyIHBvc3ROb3RpZmljYXRpb25OYW1lOm9i amVjdDp1c2VySW5mbzpdICsgODgKICAgIGZyYW1lICMxMTogMHgwMDAwMDAwMTg4Nzc3NmZj IEFwcEtpdGAtW05TV2luZG93IHJlc2lnbktleVdpbmRvd10gKyA2NDAKICAgIGZyYW1lICMx MjogMHgwMDAwMDAwMTg4Nzc3M2U0IEFwcEtpdGBfTlhFbmRLZXlBbmRNYWluICsgMTI4CiAg ICBmcmFtZSAjMTM6IDB4MDAwMDAwMDE4ODc3NjRlYyBBcHBLaXRgLVtOU0FwcGxpY2F0aW9u IF9oYW5kbGVEZWFjdGl2YXRlRXZlbnQ6XSArIDcyNAogICAgZnJhbWUgIzE0OiAweDAwMDAw MDAxODhlMTA2YjggQXBwS2l0YC1bTlNBcHBsaWNhdGlvbihOU0V2ZW50Um91dGluZykgc2Vu ZEV2ZW50Ol0gKyAxMjM2CiAgICBmcmFtZSAjMTU6IDB4MDAwMDAwMDEwMDMzYmNkOCBlbWFj c2AtW0VtYWNzQXBwIHNlbmRFdmVudDpdKHNlbGY9MHgwMDAwMDAwMTNhNjFmMzYwLCBfY21k PSJzZW5kRXZlbnQ6IiwgdGhlRXZlbnQ9MHgwMDAwNjAwMDAwYzc0NTQwKSBhdCBuc3Rlcm0u bTo2MDczOjMKICAgIGZyYW1lICMxNjogMHgwMDAwMDAwMTg4YTVlODljIEFwcEtpdGAtW05T QXBwbGljYXRpb24gX2hhbmRsZUV2ZW50Ol0gKyA2MAogICAgZnJhbWUgIzE3OiAweDAwMDAw MDAxODg2MGYwYzAgQXBwS2l0YC1bTlNBcHBsaWNhdGlvbiBydW5dICsgNTEyCiAgICBmcmFt ZSAjMTg6IDB4MDAwMDAwMDEwMDMzYjgzOCBlbWFjc2AtW0VtYWNzQXBwIHJ1bl0oc2VsZj0w eDAwMDAwMDAxM2E2MWYzNjAsIF9jbWQ9InJ1biIpIGF0IG5zdGVybS5tOjU5NDI6NwogICAg ZnJhbWUgIzE5OiAweDAwMDAwMDAxMDAzNTYwYjAgZW1hY3NgbnNfcmVhZF9zb2NrZXRfMSh0 ZXJtaW5hbD0weDAwMDAwMDAxMmE4MzRjMTAsIGhvbGRfcXVpdD0weDAwMDAwMDAxNmZkZmFm NzAsIG5vX3JlbGVhc2U9Tk8pIGF0IG5zdGVybS5tOjQ4MTY6MTEKICAgIGZyYW1lICMyMDog MHgwMDAwMDAwMTAwMzRmYTE4IGVtYWNzYG5zX3JlYWRfc29ja2V0KHRlcm1pbmFsPTB4MDAw MDAwMDEyYTgzNGMxMCwgaG9sZF9xdWl0PTB4MDAwMDAwMDE2ZmRmYWY3MCkgYXQgbnN0ZXJt Lm06NDgzNDoxMAogICAgZnJhbWUgIzIxOiAweDAwMDAwMDAxMDAxNmE2ZGMgZW1hY3NgZ29i YmxlX2lucHV0IGF0IGtleWJvYXJkLmM6NzkxOToxNwogICAgZnJhbWUgIzIyOiAweDAwMDAw MDAxMDAxNmFlMTAgZW1hY3NgaGFuZGxlX2FzeW5jX2lucHV0IGF0IGtleWJvYXJkLmM6ODE1 ODoxOQogICAgZnJhbWUgIzIzOiAweDAwMDAwMDAxMDAxNmFkZjAgZW1hY3NgcHJvY2Vzc19w ZW5kaW5nX3NpZ25hbHMgYXQga2V5Ym9hcmQuYzo4MTcyOjMKICAgIGZyYW1lICMyNDogMHgw MDAwMDAwMTAwMTZhZTljIGVtYWNzYHVuYmxvY2tfaW5wdXRfdG8obGV2ZWw9MCkgYXQga2V5 Ym9hcmQuYzo4MTg3OjIKICAgIGZyYW1lICMyNTogMHgwMDAwMDAwMTAwMTY4M2E4IGVtYWNz YHVuYmxvY2tfaW5wdXQgYXQga2V5Ym9hcmQuYzo4MjA2OjMKICAgIGZyYW1lICMyNjogMHgw MDAwMDAwMTAwMDA3NTA0IGVtYWNzYGd1aV91cGRhdGVfd2luZG93X2VuZCh3PTB4MDAwMDAw MDExZTAxNjZkMCwgY3Vyc29yX29uX3A9dHJ1ZSwgbW91c2VfZmFjZV9vdmVyd3JpdHRlbl9w PWZhbHNlKSBhdCBkaXNwbmV3LmM6Mzk1NTo3CiAgICBmcmFtZSAjMjc6IDB4MDAwMDAwMDEw MDAwNjAzYyBlbWFjc2B1cGRhdGVfd2luZG93KHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3Jj ZV9wPXRydWUpIGF0IGRpc3BuZXcuYzozODY5OjcKICAgIGZyYW1lICMyODogMHgwMDAwMDAw MTAwMDA2MWMwIGVtYWNzYHVwZGF0ZV93aW5kb3dfdHJlZSh3PTB4MDAwMDAwMDExZTAxNjZk MCwgZm9yY2VfcD10cnVlKSBhdCBkaXNwbmV3LmM6MzQ5MToxNAogICAgZnJhbWUgIzI5OiAw eDAwMDAwMDAxMDAwMDUzYTAgZW1hY3NgdXBkYXRlX2ZyYW1lKGY9MHgwMDAwMDAwMTFlMDE2 NDgwLCBmb3JjZV9wPXRydWUsIGluaGliaXRfaGFpcnlfaWRfcD1mYWxzZSkgYXQgZGlzcG5l dy5jOjMzMjY6MTgKICAgIGZyYW1lICMzMDogMHgwMDAwMDAwMTAwMDRmNDI0IGVtYWNzYHJl ZGlzcGxheV9pbnRlcm5hbCBhdCB4ZGlzcC5jOjE3NDgwOjE2CiAgICBmcmFtZSAjMzE6IDB4 MDAwMDAwMDEwMDA1NWVmOCBlbWFjc2ByZWRpc3BsYXkgYXQgeGRpc3AuYzoxNjU3NTozCiAg ICBmcmFtZSAjMzI6IDB4MDAwMDAwMDEwMDE2MWU3NCBlbWFjc2ByZWFkX2NoYXIoY29tbWFu ZGZsYWc9MSwgbWFwPTB4MDAwMDAwMDEzMDA0Y2QyMywgcHJldl9ldmVudD0weDAwMDAwMDAw MDAwMDAwMDAsIHVzZWRfbW91c2VfbWVudT0weDAwMDAwMDAxNmZkZmU4MDcsIGVuZF90aW1l PTB4MDAwMDAwMDAwMDAwMDAwMCkgYXQga2V5Ym9hcmQuYzoyNjc4OjYKICAgIGZyYW1lICMz MzogMHgwMDAwMDAwMTAwMTVlYTMwIGVtYWNzYHJlYWRfa2V5X3NlcXVlbmNlKGtleWJ1Zj0w eDAwMDAwMDAxNmZkZmViZTgsIHByb21wdD0weDAwMDAwMDAwMDAwMDAwMDAsIGRvbnRfZG93 bmNhc2VfbGFzdD1mYWxzZSwgY2FuX3JldHVybl9zd2l0Y2hfZnJhbWU9dHJ1ZSwgZml4X2N1 cnJlbnRfYnVmZmVyPXRydWUsIHByZXZlbnRfcmVkaXNwbGF5PWZhbHNlLCBkaXNhYmxlX3Rl eHRfY29udmVyc2lvbl9wPWZhbHNlKSBhdCBrZXlib2FyZC5jOjEwNzQzOjEyCiAgICBmcmFt ZSAjMzQ6IDB4MDAwMDAwMDEwMDE1Y2RmOCBlbWFjc2Bjb21tYW5kX2xvb3BfMSBhdCBrZXli b2FyZC5jOjE0Mjk6MTUKICAgIGZyYW1lICMzNTogMHgwMDAwMDAwMTAwMjQ5MjNjIGVtYWNz YGludGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0 IGtleWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCwgaGZ1bj0o ZW1hY3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQgZXZhbC5jOjE2MTM6MjUK ICAgIGZyYW1lICMzNjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNzYGNvbW1hbmRfbG9vcF8y KGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9hcmQuYzoxMTY4OjExCiAg ICBmcmFtZSAjMzc6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2BpbnRlcm5hbF9jYXRjaCh0 YWc9MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21tYW5kX2xvb3BfMiBhdCBr ZXlib2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBldmFsLmM6MTI5 MjoyNQogICAgZnJhbWUgIzM4OiAweDAwMDAwMDAxMDAxNWJjMTAgZW1hY3NgY29tbWFuZF9s b29wIGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjMzk6IDB4MDAwMDAwMDEwMDE1 YjlmYyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJkLmM6NzU0OjkKICAgIGZy YW1lICM0MDogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1cnNpdmVfZWRpdCBhdCBr ZXlib2FyZC5jOjgzNzozCiAgICBmcmFtZSAjNDE6IDB4MDAwMDAwMDEwMDE1OGFjOCBlbWFj c2BtYWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjApIGF0IGVtYWNzLmM6MjYy NDozCiAgICBmcmFtZSAjNDI6IDB4MDAwMDAwMDE4NDk1NjBlMCBkeWxkYHN0YXJ0ICsgMjM2 MAoobGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2VzcyA3NjE2IHN0b3BwZWQK KiB0aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVh c29uID0gYnJlYWtwb2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAzNTRmNDQg ZW1hY3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBnbHlw aF9yb3c9MHgwMDAwMDAwMTFlODFmMDAwLCB4PTAsIHk9MCwgY3Vyc29yX3R5cGU9Tk9fQ1VS U09SLCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBhY3RpdmVfcD1mYWxzZSkgYXQgbnN0 ZXJtLm06MzA0NToyNQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1cm47 CiAgIDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlwZTsK ICAgMzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMwNDgJ ICBpZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBzdG9w cGVkLgoobGxkYikgMTAKZXJyb3I6ICcxMCcgaXMgbm90IGEgdmFsaWQgY29tbWFuZC4KKGxs ZGIpIGJ0CiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBz dG9wIHJlYXNvbiA9IGJyZWFrcG9pbnQgMi4xCiAgKiBmcmFtZSAjMDogMHgwMDAwMDAwMTAw MzU0ZjQ0IGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3 OCwgZ2x5cGhfcm93PTB4MDAwMDAwMDExZTgxZjAwMCwgeD0wLCB5PTAsIGN1cnNvcl90eXBl PU5PX0NVUlNPUiwgY3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2Up IGF0IG5zdGVybS5tOjMwNDU6MjUKICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAwNzAzNWMg ZW1hY3NgZGlzcGxheV9hbmRfc2V0X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwgb249 dHJ1ZSwgaHBvcz0wLCB2cG9zPTAsIHg9MCwgeT0wKSBhdCB4ZGlzcC5jOjM0MjA1OjUKICAg IGZyYW1lICMyOiAweDAwMDAwMDAxMDAwNzBkMjQgZW1hY3NgdXBkYXRlX3dpbmRvd19jdXJz b3Iodz0weDAwMDAwMDAxMWUwMTY5NzgsIG9uPXRydWUpIGF0IHhkaXNwLmM6MzQyNDA6Nwog ICAgZnJhbWUgIzM6IDB4MDAwMDAwMDEwMDA3MGIxYyBlbWFjc2B1cGRhdGVfY3Vyc29yX2lu X3dpbmRvd190cmVlKHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBvbl9wPXRydWUpIGF0IHhkaXNw LmM6MzQyNTg6MgogICAgZnJhbWUgIzQ6IDB4MDAwMDAwMDEwMDA3MGFhMCBlbWFjc2BndWlf dXBkYXRlX2N1cnNvcihmPTB4MDAwMDAwMDExZTAxNjQ4MCwgb25fcD10cnVlKSBhdCB4ZGlz cC5jOjM0MjcyOjMKICAgIGZyYW1lICM1OiAweDAwMDAwMDAxMDAzNDQ3NzAgZW1hY3NgLVtF bWFjc1ZpZXcgd2luZG93RGlkUmVzaWduS2V5Ol0oc2VsZj0weDAwMDAwMDAxMWIxMTE0YTAs IF9jbWQ9IndpbmRvd0RpZFJlc2lnbktleToiLCBub3RpZmljYXRpb249QCJOU1dpbmRvd0Rp ZFJlc2lnbktleU5vdGlmaWNhdGlvbiIpIGF0IG5zdGVybS5tOjc5NjA6NwogICAgZnJhbWUg IzY6IDB4MDAwMDAwMDE4NGRiMzE0NCBDb3JlRm91bmRhdGlvbmBfX0NGTk9USUZJQ0FUSU9O Q0VOVEVSX0lTX0NBTExJTkdfT1VUX1RPX0FOX09CU0VSVkVSX18gKyAxNDgKICAgIGZyYW1l ICM3OiAweDAwMDAwMDAxODRlNDczZDggQ29yZUZvdW5kYXRpb25gX19fQ0ZYUmVnaXN0cmF0 aW9uUG9zdF9ibG9ja19pbnZva2UgKyA4OAogICAgZnJhbWUgIzg6IDB4MDAwMDAwMDE4NGU0 NzMyMCBDb3JlRm91bmRhdGlvbmBfQ0ZYUmVnaXN0cmF0aW9uUG9zdCArIDQ0MAogICAgZnJh bWUgIzk6IDB4MDAwMDAwMDE4NGQ4MTY3OCBDb3JlRm91bmRhdGlvbmBfQ0ZYTm90aWZpY2F0 aW9uUG9zdCArIDc2OAogICAgZnJhbWUgIzEwOiAweDAwMDAwMDAxODVlOWU0ZTQgRm91bmRh dGlvbmAtW05TTm90aWZpY2F0aW9uQ2VudGVyIHBvc3ROb3RpZmljYXRpb25OYW1lOm9iamVj dDp1c2VySW5mbzpdICsgODgKICAgIGZyYW1lICMxMTogMHgwMDAwMDAwMTg4Nzc3NmZjIEFw cEtpdGAtW05TV2luZG93IHJlc2lnbktleVdpbmRvd10gKyA2NDAKICAgIGZyYW1lICMxMjog MHgwMDAwMDAwMTg4Nzc3M2U0IEFwcEtpdGBfTlhFbmRLZXlBbmRNYWluICsgMTI4CiAgICBm cmFtZSAjMTM6IDB4MDAwMDAwMDE4ODc3NjRlYyBBcHBLaXRgLVtOU0FwcGxpY2F0aW9uIF9o YW5kbGVEZWFjdGl2YXRlRXZlbnQ6XSArIDcyNAogICAgZnJhbWUgIzE0OiAweDAwMDAwMDAx ODhlMTA2YjggQXBwS2l0YC1bTlNBcHBsaWNhdGlvbihOU0V2ZW50Um91dGluZykgc2VuZEV2 ZW50Ol0gKyAxMjM2CiAgICBmcmFtZSAjMTU6IDB4MDAwMDAwMDEwMDMzYmNkOCBlbWFjc2At W0VtYWNzQXBwIHNlbmRFdmVudDpdKHNlbGY9MHgwMDAwMDAwMTNhNjFmMzYwLCBfY21kPSJz ZW5kRXZlbnQ6IiwgdGhlRXZlbnQ9MHgwMDAwNjAwMDAwYzc0NTQwKSBhdCBuc3Rlcm0ubTo2 MDczOjMKICAgIGZyYW1lICMxNjogMHgwMDAwMDAwMTg4YTVlODljIEFwcEtpdGAtW05TQXBw bGljYXRpb24gX2hhbmRsZUV2ZW50Ol0gKyA2MAogICAgZnJhbWUgIzE3OiAweDAwMDAwMDAx ODg2MGYwYzAgQXBwS2l0YC1bTlNBcHBsaWNhdGlvbiBydW5dICsgNTEyCiAgICBmcmFtZSAj MTg6IDB4MDAwMDAwMDEwMDMzYjgzOCBlbWFjc2AtW0VtYWNzQXBwIHJ1bl0oc2VsZj0weDAw MDAwMDAxM2E2MWYzNjAsIF9jbWQ9InJ1biIpIGF0IG5zdGVybS5tOjU5NDI6NwogICAgZnJh bWUgIzE5OiAweDAwMDAwMDAxMDAzNTYwYjAgZW1hY3NgbnNfcmVhZF9zb2NrZXRfMSh0ZXJt aW5hbD0weDAwMDAwMDAxMmE4MzRjMTAsIGhvbGRfcXVpdD0weDAwMDAwMDAxNmZkZmFmNzAs IG5vX3JlbGVhc2U9Tk8pIGF0IG5zdGVybS5tOjQ4MTY6MTEKICAgIGZyYW1lICMyMDogMHgw MDAwMDAwMTAwMzRmYTE4IGVtYWNzYG5zX3JlYWRfc29ja2V0KHRlcm1pbmFsPTB4MDAwMDAw MDEyYTgzNGMxMCwgaG9sZF9xdWl0PTB4MDAwMDAwMDE2ZmRmYWY3MCkgYXQgbnN0ZXJtLm06 NDgzNDoxMAogICAgZnJhbWUgIzIxOiAweDAwMDAwMDAxMDAxNmE2ZGMgZW1hY3NgZ29iYmxl X2lucHV0IGF0IGtleWJvYXJkLmM6NzkxOToxNwogICAgZnJhbWUgIzIyOiAweDAwMDAwMDAx MDAxNmFlMTAgZW1hY3NgaGFuZGxlX2FzeW5jX2lucHV0IGF0IGtleWJvYXJkLmM6ODE1ODox OQogICAgZnJhbWUgIzIzOiAweDAwMDAwMDAxMDAxNmFkZjAgZW1hY3NgcHJvY2Vzc19wZW5k aW5nX3NpZ25hbHMgYXQga2V5Ym9hcmQuYzo4MTcyOjMKICAgIGZyYW1lICMyNDogMHgwMDAw MDAwMTAwMTZhZTljIGVtYWNzYHVuYmxvY2tfaW5wdXRfdG8obGV2ZWw9MCkgYXQga2V5Ym9h cmQuYzo4MTg3OjIKICAgIGZyYW1lICMyNTogMHgwMDAwMDAwMTAwMTY4M2E4IGVtYWNzYHVu YmxvY2tfaW5wdXQgYXQga2V5Ym9hcmQuYzo4MjA2OjMKICAgIGZyYW1lICMyNjogMHgwMDAw MDAwMTAwMDA3NTA0IGVtYWNzYGd1aV91cGRhdGVfd2luZG93X2VuZCh3PTB4MDAwMDAwMDEx ZTAxNjZkMCwgY3Vyc29yX29uX3A9dHJ1ZSwgbW91c2VfZmFjZV9vdmVyd3JpdHRlbl9wPWZh bHNlKSBhdCBkaXNwbmV3LmM6Mzk1NTo3CiAgICBmcmFtZSAjMjc6IDB4MDAwMDAwMDEwMDAw NjAzYyBlbWFjc2B1cGRhdGVfd2luZG93KHc9MHgwMDAwMDAwMTFlMDE2NmQwLCBmb3JjZV9w PXRydWUpIGF0IGRpc3BuZXcuYzozODY5OjcKICAgIGZyYW1lICMyODogMHgwMDAwMDAwMTAw MDA2MWMwIGVtYWNzYHVwZGF0ZV93aW5kb3dfdHJlZSh3PTB4MDAwMDAwMDExZTAxNjZkMCwg Zm9yY2VfcD10cnVlKSBhdCBkaXNwbmV3LmM6MzQ5MToxNAogICAgZnJhbWUgIzI5OiAweDAw MDAwMDAxMDAwMDUzYTAgZW1hY3NgdXBkYXRlX2ZyYW1lKGY9MHgwMDAwMDAwMTFlMDE2NDgw LCBmb3JjZV9wPXRydWUsIGluaGliaXRfaGFpcnlfaWRfcD1mYWxzZSkgYXQgZGlzcG5ldy5j OjMzMjY6MTgKICAgIGZyYW1lICMzMDogMHgwMDAwMDAwMTAwMDRmNDI0IGVtYWNzYHJlZGlz cGxheV9pbnRlcm5hbCBhdCB4ZGlzcC5jOjE3NDgwOjE2CiAgICBmcmFtZSAjMzE6IDB4MDAw MDAwMDEwMDA1NWVmOCBlbWFjc2ByZWRpc3BsYXkgYXQgeGRpc3AuYzoxNjU3NTozCiAgICBm cmFtZSAjMzI6IDB4MDAwMDAwMDEwMDE2MWU3NCBlbWFjc2ByZWFkX2NoYXIoY29tbWFuZGZs YWc9MSwgbWFwPTB4MDAwMDAwMDEzMDA0Y2QyMywgcHJldl9ldmVudD0weDAwMDAwMDAwMDAw MDAwMDAsIHVzZWRfbW91c2VfbWVudT0weDAwMDAwMDAxNmZkZmU4MDcsIGVuZF90aW1lPTB4 MDAwMDAwMDAwMDAwMDAwMCkgYXQga2V5Ym9hcmQuYzoyNjc4OjYKICAgIGZyYW1lICMzMzog MHgwMDAwMDAwMTAwMTVlYTMwIGVtYWNzYHJlYWRfa2V5X3NlcXVlbmNlKGtleWJ1Zj0weDAw MDAwMDAxNmZkZmViZTgsIHByb21wdD0weDAwMDAwMDAwMDAwMDAwMDAsIGRvbnRfZG93bmNh c2VfbGFzdD1mYWxzZSwgY2FuX3JldHVybl9zd2l0Y2hfZnJhbWU9dHJ1ZSwgZml4X2N1cnJl bnRfYnVmZmVyPXRydWUsIHByZXZlbnRfcmVkaXNwbGF5PWZhbHNlLCBkaXNhYmxlX3RleHRf Y29udmVyc2lvbl9wPWZhbHNlKSBhdCBrZXlib2FyZC5jOjEwNzQzOjEyCiAgICBmcmFtZSAj MzQ6IDB4MDAwMDAwMDEwMDE1Y2RmOCBlbWFjc2Bjb21tYW5kX2xvb3BfMSBhdCBrZXlib2Fy ZC5jOjE0Mjk6MTUKICAgIGZyYW1lICMzNTogMHgwMDAwMDAwMTAwMjQ5MjNjIGVtYWNzYGlu dGVybmFsX2NvbmRpdGlvbl9jYXNlKGJmdW49KGVtYWNzYGNvbW1hbmRfbG9vcF8xIGF0IGtl eWJvYXJkLmM6MTMyNCksIGhhbmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCwgaGZ1bj0oZW1h Y3NgY21kX2Vycm9yIGF0IGtleWJvYXJkLmM6OTcwKSkgYXQgZXZhbC5jOjE2MTM6MjUKICAg IGZyYW1lICMzNjogMHgwMDAwMDAwMTAwMTVjOGM0IGVtYWNzYGNvbW1hbmRfbG9vcF8yKGhh bmRsZXJzPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQga2V5Ym9hcmQuYzoxMTY4OjExCiAgICBm cmFtZSAjMzc6IDB4MDAwMDAwMDEwMDI0ODRkNCBlbWFjc2BpbnRlcm5hbF9jYXRjaCh0YWc9 MHgwMDAwMDAwMDAwMDExMjIwLCBmdW5jPShlbWFjc2Bjb21tYW5kX2xvb3BfMiBhdCBrZXli b2FyZC5jOjExNjQpLCBhcmc9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBldmFsLmM6MTI5Mjoy NQogICAgZnJhbWUgIzM4OiAweDAwMDAwMDAxMDAxNWJjMTAgZW1hY3NgY29tbWFuZF9sb29w IGF0IGtleWJvYXJkLmM6MTE0NjoyCiAgICBmcmFtZSAjMzk6IDB4MDAwMDAwMDEwMDE1Yjlm YyBlbWFjc2ByZWN1cnNpdmVfZWRpdF8xIGF0IGtleWJvYXJkLmM6NzU0OjkKICAgIGZyYW1l ICM0MDogMHgwMDAwMDAwMTAwMTViZWU4IGVtYWNzYEZyZWN1cnNpdmVfZWRpdCBhdCBrZXli b2FyZC5jOjgzNzozCiAgICBmcmFtZSAjNDE6IDB4MDAwMDAwMDEwMDE1OGFjOCBlbWFjc2Bt YWluKGFyZ2M9NCwgYXJndj0weDAwMDAwMDAxNmZkZmY0YjApIGF0IGVtYWNzLmM6MjYyNDoz CiAgICBmcmFtZSAjNDI6IDB4MDAwMDAwMDE4NDk1NjBlMCBkeWxkYHN0YXJ0ICsgMjM2MAoo bGxkYikgYwpQcm9jZXNzIDc2MTYgcmVzdW1pbmcKUHJvY2VzcyA3NjE2IHN0b3BwZWQKKiB0 aHJlYWQgIzEsIHF1ZXVlID0gJ2NvbS5hcHBsZS5tYWluLXRocmVhZCcsIHN0b3AgcmVhc29u ID0gYnJlYWtwb2ludCAyLjEKICAgIGZyYW1lICMwOiAweDAwMDAwMDAxMDAzNTRmNDQgZW1h Y3NgbnNfZHJhd193aW5kb3dfY3Vyc29yKHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBnbHlwaF9y b3c9MHgwMDAwMDAwMTFlODFmMDAwLCB4PTAsIHk9MCwgY3Vyc29yX3R5cGU9Tk9fQ1VSU09S LCBjdXJzb3Jfd2lkdGg9MCwgb25fcD10cnVlLCBhY3RpdmVfcD1mYWxzZSkgYXQgbnN0ZXJt Lm06MzA0NToyNQogICAzMDQyCSAgaWYgKCFvbl9wKQogICAzMDQzCSAgICByZXR1cm47CiAg IDMwNDQKLT4gMzA0NQkgIHctPnBoeXNfY3Vyc29yX3R5cGUgPSBjdXJzb3JfdHlwZTsKICAg MzA0NgkgIHctPnBoeXNfY3Vyc29yX29uX3AgPSBvbl9wOwogICAzMDQ3CiAgIDMwNDgJICBp ZiAoY3Vyc29yX3R5cGUgPT0gTk9fQ1VSU09SKQpUYXJnZXQgMDogKGVtYWNzKSBzdG9wcGVk LgoobGxkYikgMTEKZXJyb3I6ICcxMScgaXMgbm90IGEgdmFsaWQgY29tbWFuZC4KKGxsZGIp IGJ0CiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9w IHJlYXNvbiA9IGJyZWFrcG9pbnQgMi4xCiAgKiBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0 ZjQ0IGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwg Z2x5cGhfcm93PTB4MDAwMDAwMDExZTgxZjAwMCwgeD0wLCB5PTAsIGN1cnNvcl90eXBlPU5P X0NVUlNPUiwgY3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0 IG5zdGVybS5tOjMwNDU6MjUKICAgIGZyYW1lICMxOiAweDAwMDAwMDAxMDAwNzAzNWMgZW1h Y3NgZGlzcGxheV9hbmRfc2V0X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwgb249dHJ1 ZSwgaHBvcz0wLCB2cG9zPTAsIHg9MCwgeT0wKSBhdCB4ZGlzcC5jOjM0MjA1OjUKICAgIGZy YW1lICMyOiAweDAwMDAwMDAxMDAwMDc0MGMgZW1hY3NgZ3VpX3VwZGF0ZV93aW5kb3dfZW5k KHc9MHgwMDAwMDAwMTFlMDE2OTc4LCBjdXJzb3Jfb25fcD10cnVlLCBtb3VzZV9mYWNlX292 ZXJ3cml0dGVuX3A9ZmFsc2UpIGF0IGRpc3BuZXcuYzozOTQxOjIKICAgIGZyYW1lICMzOiAw eDAwMDAwMDAxMDAwMDYwM2MgZW1hY3NgdXBkYXRlX3dpbmRvdyh3PTB4MDAwMDAwMDExZTAx Njk3OCwgZm9yY2VfcD10cnVlKSBhdCBkaXNwbmV3LmM6Mzg2OTo3CiAgICBmcmFtZSAjNDog MHgwMDAwMDAwMTAwMDA2MWMwIGVtYWNzYHVwZGF0ZV93aW5kb3dfdHJlZSh3PTB4MDAwMDAw MDExZTAxNjk3OCwgZm9yY2VfcD10cnVlKSBhdCBkaXNwbmV3LmM6MzQ5MToxNAogICAgZnJh bWUgIzU6IDB4MDAwMDAwMDEwMDAwNTNhMCBlbWFjc2B1cGRhdGVfZnJhbWUoZj0weDAwMDAw MDAxMWUwMTY0ODAsIGZvcmNlX3A9dHJ1ZSwgaW5oaWJpdF9oYWlyeV9pZF9wPWZhbHNlKSBh dCBkaXNwbmV3LmM6MzMyNjoxOAogICAgZnJhbWUgIzY6IDB4MDAwMDAwMDEwMDA0ZjQyNCBl bWFjc2ByZWRpc3BsYXlfaW50ZXJuYWwgYXQgeGRpc3AuYzoxNzQ4MDoxNgogICAgZnJhbWUg Izc6IDB4MDAwMDAwMDEwMDA1NWVmOCBlbWFjc2ByZWRpc3BsYXkgYXQgeGRpc3AuYzoxNjU3 NTozCiAgICBmcmFtZSAjODogMHgwMDAwMDAwMTAwMTYxZTc0IGVtYWNzYHJlYWRfY2hhcihj b21tYW5kZmxhZz0xLCBtYXA9MHgwMDAwMDAwMTMwMDRjZDIzLCBwcmV2X2V2ZW50PTB4MDAw MDAwMDAwMDAwMDAwMCwgdXNlZF9tb3VzZV9tZW51PTB4MDAwMDAwMDE2ZmRmZTgwNywgZW5k X3RpbWU9MHgwMDAwMDAwMDAwMDAwMDAwKSBhdCBrZXlib2FyZC5jOjI2Nzg6NgogICAgZnJh bWUgIzk6IDB4MDAwMDAwMDEwMDE1ZWEzMCBlbWFjc2ByZWFkX2tleV9zZXF1ZW5jZShrZXli dWY9MHgwMDAwMDAwMTZmZGZlYmU4LCBwcm9tcHQ9MHgwMDAwMDAwMDAwMDAwMDAwLCBkb250 X2Rvd25jYXNlX2xhc3Q9ZmFsc2UsIGNhbl9yZXR1cm5fc3dpdGNoX2ZyYW1lPXRydWUsIGZp eF9jdXJyZW50X2J1ZmZlcj10cnVlLCBwcmV2ZW50X3JlZGlzcGxheT1mYWxzZSwgZGlzYWJs ZV90ZXh0X2NvbnZlcnNpb25fcD1mYWxzZSkgYXQga2V5Ym9hcmQuYzoxMDc0MzoxMgogICAg ZnJhbWUgIzEwOiAweDAwMDAwMDAxMDAxNWNkZjggZW1hY3NgY29tbWFuZF9sb29wXzEgYXQg a2V5Ym9hcmQuYzoxNDI5OjE1CiAgICBmcmFtZSAjMTE6IDB4MDAwMDAwMDEwMDI0OTIzYyBl bWFjc2BpbnRlcm5hbF9jb25kaXRpb25fY2FzZShiZnVuPShlbWFjc2Bjb21tYW5kX2xvb3Bf MSBhdCBrZXlib2FyZC5jOjEzMjQpLCBoYW5kbGVycz0weDAwMDAwMDAwMDAwMDAwOTAsIGhm dW49KGVtYWNzYGNtZF9lcnJvciBhdCBrZXlib2FyZC5jOjk3MCkpIGF0IGV2YWwuYzoxNjEz OjI1CiAgICBmcmFtZSAjMTI6IDB4MDAwMDAwMDEwMDE1YzhjNCBlbWFjc2Bjb21tYW5kX2xv b3BfMihoYW5kbGVycz0weDAwMDAwMDAwMDAwMDAwOTApIGF0IGtleWJvYXJkLmM6MTE2ODox MQogICAgZnJhbWUgIzEzOiAweDAwMDAwMDAxMDAyNDg0ZDQgZW1hY3NgaW50ZXJuYWxfY2F0 Y2godGFnPTB4MDAwMDAwMDAwMDAxMTIyMCwgZnVuYz0oZW1hY3NgY29tbWFuZF9sb29wXzIg YXQga2V5Ym9hcmQuYzoxMTY0KSwgYXJnPTB4MDAwMDAwMDAwMDAwMDA5MCkgYXQgZXZhbC5j OjEyOTI6MjUKICAgIGZyYW1lICMxNDogMHgwMDAwMDAwMTAwMTViYzEwIGVtYWNzYGNvbW1h bmRfbG9vcCBhdCBrZXlib2FyZC5jOjExNDY6MgogICAgZnJhbWUgIzE1OiAweDAwMDAwMDAx MDAxNWI5ZmMgZW1hY3NgcmVjdXJzaXZlX2VkaXRfMSBhdCBrZXlib2FyZC5jOjc1NDo5CiAg ICBmcmFtZSAjMTY6IDB4MDAwMDAwMDEwMDE1YmVlOCBlbWFjc2BGcmVjdXJzaXZlX2VkaXQg YXQga2V5Ym9hcmQuYzo4Mzc6MwogICAgZnJhbWUgIzE3OiAweDAwMDAwMDAxMDAxNThhYzgg ZW1hY3NgbWFpbihhcmdjPTQsIGFyZ3Y9MHgwMDAwMDAwMTZmZGZmNGIwKSBhdCBlbWFjcy5j OjI2MjQ6MwogICAgZnJhbWUgIzE4OiAweDAwMDAwMDAxODQ5NTYwZTAgZHlsZGBzdGFydCAr IDIzNjAKKGxsZGIpIGMKUHJvY2VzcyA3NjE2IHJlc3VtaW5nClByb2Nlc3MgNzYxNiBzdG9w cGVkCiogdGhyZWFkICMxLCBxdWV1ZSA9ICdjb20uYXBwbGUubWFpbi10aHJlYWQnLCBzdG9w IHJlYXNvbiA9IGJyZWFrcG9pbnQgMi4xCiAgICBmcmFtZSAjMDogMHgwMDAwMDAwMTAwMzU0 ZjQ0IGVtYWNzYG5zX2RyYXdfd2luZG93X2N1cnNvcih3PTB4MDAwMDAwMDExZTAxNjk3OCwg Z2x5cGhfcm93PTB4MDAwMDAwMDExZTgxZjAwMCwgeD0wLCB5PTAsIGN1cnNvcl90eXBlPU5P X0NVUlNPUiwgY3Vyc29yX3dpZHRoPTAsIG9uX3A9dHJ1ZSwgYWN0aXZlX3A9ZmFsc2UpIGF0 IG5zdGVybS5tOjMwNDU6MjUKICAgMzA0MgkgIGlmICghb25fcCkKICAgMzA0MwkgICAgcmV0 dXJuOwogICAzMDQ0Ci0+IDMwNDUJICB3LT5waHlzX2N1cnNvcl90eXBlID0gY3Vyc29yX3R5 cGU7CiAgIDMwNDYJICB3LT5waHlzX2N1cnNvcl9vbl9wID0gb25fcDsKICAgMzA0NwogICAz MDQ4CSAgaWYgKGN1cnNvcl90eXBlID09IE5PX0NVUlNPUikKVGFyZ2V0IDA6IChlbWFjcykg c3RvcHBlZC4KKGxsZGIpIDEyCmVycm9yOiAnMTInIGlzIG5vdCBhIHZhbGlkIGNvbW1hbmQu CihsbGRiKSBidAoqIHRocmVhZCAjMSwgcXVldWUgPSAnY29tLmFwcGxlLm1haW4tdGhyZWFk Jywgc3RvcCByZWFzb24gPSBicmVha3BvaW50IDIuMQogICogZnJhbWUgIzA6IDB4MDAwMDAw MDEwMDM1NGY0NCBlbWFjc2Buc19kcmF3X3dpbmRvd19jdXJzb3Iodz0weDAwMDAwMDAxMWUw MTY5NzgsIGdseXBoX3Jvdz0weDAwMDAwMDAxMWU4MWYwMDAsIHg9MCwgeT0wLCBjdXJzb3Jf dHlwZT1OT19DVVJTT1IsIGN1cnNvcl93aWR0aD0wLCBvbl9wPXRydWUsIGFjdGl2ZV9wPWZh bHNlKSBhdCBuc3Rlcm0ubTozMDQ1OjI1CiAgICBmcmFtZSAjMTogMHgwMDAwMDAwMTAwMDcw MzVjIGVtYWNzYGRpc3BsYXlfYW5kX3NldF9jdXJzb3Iodz0weDAwMDAwMDAxMWUwMTY5Nzgs IG9uPXRydWUsIGhwb3M9MCwgdnBvcz0wLCB4PTAsIHk9MCkgYXQgeGRpc3AuYzozNDIwNTo1 CiAgICBmcmFtZSAjMjogMHgwMDAwMDAwMTAwMDA3NDBjIGVtYWNzYGd1aV91cGRhdGVfd2lu ZG93X2VuZCh3PTB4MDAwMDAwMDExZTAxNjk3OCwgY3Vyc29yX29uX3A9dHJ1ZSwgbW91c2Vf ZmFjZV9vdmVyd3JpdHRlbl9wPWZhbHNlKSBhdCBkaXNwbmV3LmM6Mzk0MToyCiAgICBmcmFt ZSAjMzogMHgwMDAwMDAwMTAwMDA2MDNjIGVtYWNzYHVwZGF0ZV93aW5kb3codz0weDAwMDAw MDAxMWUwMTY5NzgsIGZvcmNlX3A9dHJ1ZSkgYXQgZGlzcG5ldy5jOjM4Njk6NwogICAgZnJh bWUgIzQ6IDB4MDAwMDAwMDEwMDAwNjFjMCBlbWFjc2B1cGRhdGVfd2luZG93X3RyZWUodz0w eDAwMDAwMDAxMWUwMTY5NzgsIGZvcmNlX3A9dHJ1ZSkgYXQgZGlzcG5ldy5jOjM0OTE6MTQK ICAgIGZyYW1lICM1OiAweDAwMDAwMDAxMDAwMDUzYTAgZW1hY3NgdXBkYXRlX2ZyYW1lKGY9 MHgwMDAwMDAwMTFlMDE2NDgwLCBmb3JjZV9wPXRydWUsIGluaGliaXRfaGFpcnlfaWRfcD1m YWxzZSkgYXQgZGlzcG5ldy5jOjMzMjY6MTgKICAgIGZyYW1lICM2OiAweDAwMDAwMDAxMDAw NGY0MjQgZW1hY3NgcmVkaXNwbGF5X2ludGVybmFsIGF0IHhkaXNwLmM6MTc0ODA6MTYKICAg IGZyYW1lICM3OiAweDAwMDAwMDAxMDAwNTVlZjggZW1hY3NgcmVkaXNwbGF5IGF0IHhkaXNw LmM6MTY1NzU6MwogICAgZnJhbWUgIzg6IDB4MDAwMDAwMDEwMDE2MWU3NCBlbWFjc2ByZWFk X2NoYXIoY29tbWFuZGZsYWc9MSwgbWFwPTB4MDAwMDAwMDEzMDA0Y2QyMywgcHJldl9ldmVu dD0weDAwMDAwMDAwMDAwMDAwMDAsIHVzZWRfbW91c2VfbWVudT0weDAwMDAwMDAxNmZkZmU4 MDcsIGVuZF90aW1lPTB4MDAwMDAwMDAwMDAwMDAwMCkgYXQga2V5Ym9hcmQuYzoyNjc4OjYK ICAgIGZyYW1lICM5OiAweDAwMDAwMDAxMDAxNWVhMzAgZW1hY3NgcmVhZF9rZXlfc2VxdWVu Y2Uoa2V5YnVmPTB4MDAwMDAwMDE2ZmRmZWJlOCwgcHJvbXB0PTB4MDAwMDAwMDAwMDAwMDAw MCwgZG9udF9kb3duY2FzZV9sYXN0PWZhbHNlLCBjYW5fcmV0dXJuX3N3aXRjaF9mcmFtZT10 cnVlLCBmaXhfY3VycmVudF9idWZmZXI9dHJ1ZSwgcHJldmVudF9yZWRpc3BsYXk9ZmFsc2Us IGRpc2FibGVfdGV4dF9jb252ZXJzaW9uX3A9ZmFsc2UpIGF0IGtleWJvYXJkLmM6MTA3NDM6 MTIKICAgIGZyYW1lICMxMDogMHgwMDAwMDAwMTAwMTVjZGY4IGVtYWNzYGNvbW1hbmRfbG9v cF8xIGF0IGtleWJvYXJkLmM6MTQyOToxNQogICAgZnJhbWUgIzExOiAweDAwMDAwMDAxMDAy NDkyM2MgZW1hY3NgaW50ZXJuYWxfY29uZGl0aW9uX2Nhc2UoYmZ1bj0oZW1hY3NgY29tbWFu ZF9sb29wXzEgYXQga2V5Ym9hcmQuYzoxMzI0KSwgaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAw MDkwLCBoZnVuPShlbWFjc2BjbWRfZXJyb3IgYXQga2V5Ym9hcmQuYzo5NzApKSBhdCBldmFs LmM6MTYxMzoyNQogICAgZnJhbWUgIzEyOiAweDAwMDAwMDAxMDAxNWM4YzQgZW1hY3NgY29t bWFuZF9sb29wXzIoaGFuZGxlcnM9MHgwMDAwMDAwMDAwMDAwMDkwKSBhdCBrZXlib2FyZC5j OjExNjg6MTEKICAgIGZyYW1lICMxMzogMHgwMDAwMDAwMTAwMjQ4NGQ0IGVtYWNzYGludGVy bmFsX2NhdGNoKHRhZz0weDAwMDAwMDAwMDAwMTEyMjAsIGZ1bmM9KGVtYWNzYGNvbW1hbmRf bG9vcF8yIGF0IGtleWJvYXJkLmM6MTE2NCksIGFyZz0weDAwMDAwMDAwMDAwMDAwOTApIGF0 IGV2YWwuYzoxMjkyOjI1CiAgICBmcmFtZSAjMTQ6IDB4MDAwMDAwMDEwMDE1YmMxMCBlbWFj c2Bjb21tYW5kX2xvb3AgYXQga2V5Ym9hcmQuYzoxMTQ2OjIKICAgIGZyYW1lICMxNTogMHgw MDAwMDAwMTAwMTViOWZjIGVtYWNzYHJlY3Vyc2l2ZV9lZGl0XzEgYXQga2V5Ym9hcmQuYzo3 NTQ6OQogICAgZnJhbWUgIzE2OiAweDAwMDAwMDAxMDAxNWJlZTggZW1hY3NgRnJlY3Vyc2l2 ZV9lZGl0IGF0IGtleWJvYXJkLmM6ODM3OjMKICAgIGZyYW1lICMxNzogMHgwMDAwMDAwMTAw MTU4YWM4IGVtYWNzYG1haW4oYXJnYz00LCBhcmd2PTB4MDAwMDAwMDE2ZmRmZjRiMCkgYXQg ZW1hY3MuYzoyNjI0OjMKICAgIGZyYW1lICMxODogMHgwMDAwMDAwMTg0OTU2MGUwIGR5bGRg c3RhcnQgKyAyMzYwCihsbGRiKSBjClByb2Nlc3MgNzYxNiByZXN1bWluZwo= --------------38GlQ3xfw17iklUpCUpyXwRq--