Received: by 2002:a05:6a10:d5a5:0:0:0:0 with SMTP id gn37csp1235211pxb; Fri, 1 Oct 2021 06:31:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzSI+KzhIrXjm507hS/c7nMXh315wnBKrHiWGAlwNKFslwPUsUf2P3/1GMPYmC8O89UdijB X-Received: by 2002:a05:6a00:15d6:b0:44c:238e:8269 with SMTP id o22-20020a056a0015d600b0044c238e8269mr287485pfu.15.1633095071080; Fri, 01 Oct 2021 06:31:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1633095071; cv=none; d=google.com; s=arc-20160816; b=mu6KDCtSCdDeSC/4Wk19G7ABxemftHhaiD/hetGLC8q2Pu3rUKeC5WN9r2Hwxsrt0B JkQzvZDGbpITG3+5jAQKa29tEEyKj6jMS2UmlnampI+cdjdkHxL4Y8nSA73ADSFO3Rom IYwm2fcM6gC87tgIyN2GqQX4n2r8RehG4Kl8EC5sqP7ywi4YTEOuuqL1lm0eZYF3QDG0 qN3a/ty0hWmOfOeDnHqPxEmFjBbVvaTPvx1SFrB2+QVtkPgEbq6fMwUwjAucWc/JORGO /AMbqq8vZWN7c8GrW/ZBzqg6bnt+Ij9A8QFzvxyC/HxeuPDpgZZG/ujukDRSusCYhN1Y otBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :subject:reply-to:cc:from:to:dkim-signature:date; bh=/4aT/YkEany7u6rytq+hHL8QM60LWPp9TsHbyRpdADU=; b=nZtOki5c3PX3VYbR0mXwh7VB/NrDvlAMc2Unihy1J1W1w57/heZ54nQXMYnIZOQOMN c4R/s5AxlBPFA2ZdPZi1WTlZbLr3I7q4D6XQnDBGGkaaq0FQpZvytsGIK6gS/Ibve5va HYH/DNFx6Ud47CP3vr480CXuv2B9rDuAWNqRSB7slGEEE97VCUHyjorwiIoGHiioPOhb fsJ7LdB4QQldxHw7GZCzR9IhVTXk6lYp5bwDOOFnnkYG42rVxNf+kyUq6pdlgyEtvRpz ZTQNXfeykyhKiuwC6bJP3Xw3GnVs1zPyt7YVMDReqTQdtOwV16bymUYucDf8QfjuS8IZ pQtQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=vtY7yK35; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y28si7080979pgl.452.2021.10.01.06.30.57; Fri, 01 Oct 2021 06:31:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail header.b=vtY7yK35; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231705AbhJANaB (ORCPT + 99 others); Fri, 1 Oct 2021 09:30:01 -0400 Received: from mail-40132.protonmail.ch ([185.70.40.132]:40436 "EHLO mail-40132.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231686AbhJANaA (ORCPT ); Fri, 1 Oct 2021 09:30:00 -0400 Date: Fri, 01 Oct 2021 13:28:03 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail; t=1633094891; bh=/4aT/YkEany7u6rytq+hHL8QM60LWPp9TsHbyRpdADU=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=vtY7yK35xP52jnFZD3O3raGupdnJ+oTQV4ngtvJl2I6lkusGjLj6/SGPhYHqGGKUE nU4j24uKINqI3oTDLRVZix7LNo9BEgCgb5hE+sthYclu50xHO8fAh4b5fnF2bVQ3yG Aqw5cq3aZ3+SJaf80Z0ETNyNDx3fqMhpzzYdIxGU= To: Marcel Holtmann From: Orlando Chamberlain Cc: danielwinkler@google.com, Johan Hedberg , linux-bluetooth@vger.kernel.org, linux-kernel@vger.kernel.org, regressions@lists.linux.dev, sonnysasaka@chromium.org Reply-To: Orlando Chamberlain Subject: Re: [PATCHv2] Bluetooth: quirk disabling LE Read Transmit Power Message-ID: <20211001132756.434e56bb@localhost> In-Reply-To: <1D2217A9-EA73-4D93-8D0B-5BC2718D4788@holtmann.org> References: <4970a940-211b-25d6-edab-21a815313954@protonmail.com> <20210930063106.19881-1-redecorating@protonmail.com> <20210930141256.19943-1-redecorating@protonmail.com> <275acce4-9eab-9cba-7145-5a75a69ca530@protonmail.com> <20211001083412.3078-1-redecorating@protonmail.com> <1D2217A9-EA73-4D93-8D0B-5BC2718D4788@holtmann.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_5lAWzksv8VI4ev1d38yCP4RKVIWZj2fOORtpCUEJgg" X-Spam-Status: No, score=-1.2 required=10.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM shortcircuit=no autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on mailout.protonmail.ch Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --b1_5lAWzksv8VI4ev1d38yCP4RKVIWZj2fOORtpCUEJgg Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Fri, 01 Oct 2021 19:35:16 +1000 "Marcel Holtmann" wrote: > I would really prefer to do that via the ACPI table matching in > hci_bcm.c and not via some magic chip id check. Initially I thought we may be able to do this based off BCM2E7C (which is in the DSDT table which I'll attach), however it seems like many Macs also have that (i.e. MacBookPro14,1, MacBookAir8,1, MacBook9,1), so unless all these don't support LE Read Transmit Power, (which would be hard to determine), I don't know if BCM2E7C can be used to quirk it. I'll try to see if I can find something else in the ACPI tables that can be used as a quirk. (I'll see if I can get the table of a similar model that wasn't affected and compare the BLTH sections) If ACPI tables other than DSDT could be relevant, I can send them too. These are the ones that are present: APIC DMAR DSDT ECDT FACP FACS HPET MCFG SBST SSDT1 SSDT10 SSDT11 SSDT12 SSDT13 SSDT14 SSDT15 SSDT2 SSDT3 SSDT4 SSDT5 SSDT6 SSDT7 SSDT8 SSDT9 VFCT > We actually don=E2=80=99t know how Broadcom assigns their chip ids. That's a good point. I've seen 150, 123 and 133 in some recent Macs, but I also don't know what they refer to or how they are assigned. =20 --b1_5lAWzksv8VI4ev1d38yCP4RKVIWZj2fOORtpCUEJgg Content-Type: text/x-dsl; name=DSDT.dsl Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=DSDT.dsl LyoNCiAqIEludGVsIEFDUEkgQ29tcG9uZW50IEFyY2hpdGVjdHVyZQ0KICogQU1ML0FTTCsgRGlz YXNzZW1ibGVyIHZlcnNpb24gMjAyMTA3MzAgKDY0LWJpdCB2ZXJzaW9uKQ0KICogQ29weXJpZ2h0 IChjKSAyMDAwIC0gMjAyMSBJbnRlbCBDb3Jwb3JhdGlvbg0KICogDQogKiBEaXNhc3NlbWJsaW5n IHRvIHN5bWJvbGljIEFTTCsgb3BlcmF0b3JzDQogKg0KICogRGlzYXNzZW1ibHkgb2YgRFNEVCwg RnJpIE9jdCAgMSAyMDo0NToxOCAyMDIxDQogKg0KICogT3JpZ2luYWwgVGFibGUgSGVhZGVyOg0K ICogICAgIFNpZ25hdHVyZSAgICAgICAgIkRTRFQiDQogKiAgICAgTGVuZ3RoICAgICAgICAgICAw eDAwMDA3MkMzICgyOTM3OSkNCiAqICAgICBSZXZpc2lvbiAgICAgICAgIDB4MDINCiAqICAgICBD aGVja3N1bSAgICAgICAgIDB4RkQNCiAqICAgICBPRU0gSUQgICAgICAgICAgICJBUFBMRSAiDQog KiAgICAgT0VNIFRhYmxlIElEICAgICAiTWFjWFgiDQogKiAgICAgT0VNIFJldmlzaW9uICAgICAw eDAwMTUwMDAxICgxMzc2MjU3KQ0KICogICAgIENvbXBpbGVyIElEICAgICAgIklOVEwiDQogKiAg ICAgQ29tcGlsZXIgVmVyc2lvbiAweDIwMTYwOTMwICg1MzgzMTUwNTYpDQogKi8NCkRlZmluaXRp b25CbG9jayAoIiIsICJEU0RUIiwgMiwgIkFQUExFICIsICJNYWNYWCIsIDB4MDAxNTAwMDEpDQp7 DQogICAgRXh0ZXJuYWwgKF9QUl8uQ0ZHRCwgVW5rbm93bk9iaikNCiAgICBFeHRlcm5hbCAoX1BS Xy5DUFBDLCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKF9QUl8uQ1BVMC5fUFBDLCBJbnRP YmopDQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5JR1BVLkNMSUQsIFVua25vd25PYmopDQogICAg RXh0ZXJuYWwgKF9TQl8uUENJMC5JR1BVLkdFRkMsIFVua25vd25PYmopDQogICAgRXh0ZXJuYWwg KF9TQl8uUENJMC5JR1BVLkdTQ0ksIE1ldGhvZE9iaikgICAgLy8gMCBBcmd1bWVudHMNCiAgICBF eHRlcm5hbCAoX1NCXy5QQ0kwLklHUFUuR1NTRSwgVW5rbm93bk9iaikNCiAgICBFeHRlcm5hbCAo X1NCXy5QQ0kwLklHUFUuSURTTSwgTWV0aG9kT2JqKSAgICAvLyA0IEFyZ3VtZW50cw0KICAgIEV4 dGVybmFsIChfU0JfLlBDSTAuSUdQVS5TQ0lFLCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChf U0JfLlBDSTAuUEVHMC5FR1AwLkVHUDEuR0ZYMCwgVW5rbm93bk9iaikNCiAgICBFeHRlcm5hbCAo X1NCXy5QQ0kwLlBFRzEuRFRGUCwgTWV0aG9kT2JqKSAgICAvLyAwIEFyZ3VtZW50cw0KICAgIEV4 dGVybmFsIChfU0JfLlBDSTAuUEVHMS5JQ01CLCBNZXRob2RPYmopICAgIC8vIDEgQXJndW1lbnRz DQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5QRUcxLlVQU0IuTFNUWCwgTWV0aG9kT2JqKSAgICAv LyAyIEFyZ3VtZW50cw0KICAgIEV4dGVybmFsIChfU0JfLlBDSTAuUEVHMi5EVEZQLCBNZXRob2RP YmopICAgIC8vIDAgQXJndW1lbnRzDQogICAgRXh0ZXJuYWwgKF9TQl8uUENJMC5QRUcyLklDTUIs IE1ldGhvZE9iaikgICAgLy8gMSBBcmd1bWVudHMNCiAgICBFeHRlcm5hbCAoX1NCXy5QQ0kwLlBF RzIuVVBTQi5MU1RYLCBNZXRob2RPYmopICAgIC8vIDIgQXJndW1lbnRzDQogICAgRXh0ZXJuYWwg KF9TQl8uUENJMC5UR1BFLCBNZXRob2RPYmopICAgIC8vIDAgQXJndW1lbnRzDQogICAgRXh0ZXJu YWwgKF9TQl8uUENJMC5YSEMxLCBEZXZpY2VPYmopDQogICAgRXh0ZXJuYWwgKEFEUDEsIERldmlj ZU9iaikNCiAgICBFeHRlcm5hbCAoQURTUCwgVW5rbm93bk9iaikgICAgLy8gQ29uZmxpY3RzIHdp dGggYSBsYXRlciBkZWNsYXJhdGlvbg0KICAgIEV4dGVybmFsIChCVDE5LCBVbmtub3duT2JqKSAg ICAvLyBDb25mbGljdHMgd2l0aCBhIGxhdGVyIGRlY2xhcmF0aW9uDQogICAgRXh0ZXJuYWwgKEQz MTgsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDMxOSwgRmllbGRVbml0T2JqKQ0KICAg IEV4dGVybmFsIChEMzFBLCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKEQzMUMsIEZpZWxk VW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDMyMCwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFs IChEMzI0LCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKEQ0MTgsIEZpZWxkVW5pdE9iaikN CiAgICBFeHRlcm5hbCAoRDQxOSwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChENDFBLCBG aWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKEQ0MUMsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRl cm5hbCAoRDQyMCwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChENDI0LCBGaWVsZFVuaXRP YmopDQogICAgRXh0ZXJuYWwgKEQ1MTgsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDUx OSwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChENTFBLCBGaWVsZFVuaXRPYmopDQogICAg RXh0ZXJuYWwgKEQ1MUMsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDUyMCwgRmllbGRV bml0T2JqKQ0KICAgIEV4dGVybmFsIChENTI0LCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwg KEQ2MTgsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDYxOSwgRmllbGRVbml0T2JqKQ0K ICAgIEV4dGVybmFsIChENjFBLCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKEQ2MUMsIEZp ZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoRDYyMCwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVy bmFsIChENjI0LCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKERQMTgsIEZpZWxkVW5pdE9i aikNCiAgICBFeHRlcm5hbCAoRFAxOSwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChEUDFB LCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwgKERQMUMsIEZpZWxkVW5pdE9iaikNCiAgICBF eHRlcm5hbCAoRFAyMCwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChEUDI0LCBGaWVsZFVu aXRPYmopDQogICAgRXh0ZXJuYWwgKEdTTUksIFVua25vd25PYmopDQogICAgRXh0ZXJuYWwgKExJ RDAsIERldmljZU9iaikNCiAgICBFeHRlcm5hbCAoTElEUywgVW5rbm93bk9iaikNCiAgICBFeHRl cm5hbCAoTFZNRSwgVW5rbm93bk9iaikgICAgLy8gQ29uZmxpY3RzIHdpdGggYSBsYXRlciBkZWNs YXJhdGlvbg0KICAgIEV4dGVybmFsIChNNjRCLCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChN NjRMLCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChOSDEwLCBGaWVsZFVuaXRPYmopDQogICAg RXh0ZXJuYWwgKE5IMTQsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoTlBLQSwgVW5rbm93 bk9iaikgICAgLy8gQ29uZmxpY3RzIHdpdGggYSBsYXRlciBkZWNsYXJhdGlvbg0KICAgIEV4dGVy bmFsIChQREMwLCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChQREMxLCBVbmtub3duT2JqKQ0K ICAgIEV4dGVybmFsIChQREMyLCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChQREMzLCBVbmtu b3duT2JqKQ0KICAgIEV4dGVybmFsIChQREM0LCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChQ REM1LCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChQREM2LCBVbmtub3duT2JqKQ0KICAgIEV4 dGVybmFsIChQREM3LCBVbmtub3duT2JqKQ0KICAgIEV4dGVybmFsIChSXzIwLCBGaWVsZFVuaXRP YmopDQogICAgRXh0ZXJuYWwgKFJfMjQsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoU01D QiwgRmllbGRVbml0T2JqKQ0KICAgIEV4dGVybmFsIChVUDE4LCBGaWVsZFVuaXRPYmopDQogICAg RXh0ZXJuYWwgKFVQMTksIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoVVAxQSwgRmllbGRV bml0T2JqKQ0KICAgIEV4dGVybmFsIChVUDFDLCBGaWVsZFVuaXRPYmopDQogICAgRXh0ZXJuYWwg KFVQMjAsIEZpZWxkVW5pdE9iaikNCiAgICBFeHRlcm5hbCAoVVAyNCwgRmllbGRVbml0T2JqKQ0K DQogICAgTmFtZSAoU1AyTywgMHg0RSkNCiAgICBOYW1lIChTUDFPLCAweDE2NEUpDQogICAgTmFt ZSAoSU8xQiwgMHgwNjAwKQ0KICAgIE5hbWUgKElPMUwsIDB4NzApDQogICAgTmFtZSAoSU8yQiwg MHgwNjgwKQ0KICAgIE5hbWUgKElPMkwsIDB4MjApDQogICAgTmFtZSAoSU8zQiwgMHgwMjkwKQ0K ICAgIE5hbWUgKElPM0wsIDB4MTApDQogICAgTmFtZSAoU1AzTywgMHgyRSkNCiAgICBOYW1lIChJ TzRCLCAweDBBMjApDQogICAgTmFtZSAoSU80TCwgMHgyMCkNCiAgICBOYW1lIChNQ0hCLCAweEZF RDEwMDAwKQ0KICAgIE5hbWUgKE1DSEwsIDB4NDAwMCkNCiAgICBOYW1lIChFR1BCLCAweEZFRDE5 MDAwKQ0KICAgIE5hbWUgKEVHUEwsIDB4MTAwMCkNCiAgICBOYW1lIChETUlCLCAweEZFRDE4MDAw KQ0KICAgIE5hbWUgKERNSUwsIDB4MTAwMCkNCiAgICBOYW1lIChJRlBCLCAweEZFRDE0MDAwKQ0K ICAgIE5hbWUgKElGUEwsIDB4MTAwMCkNCiAgICBOYW1lIChQRUJTLCAweEUwMDAwMDAwKQ0KICAg IE5hbWUgKFBFTE4sIDB4MDQwMDAwMDApDQogICAgTmFtZSAoVFRUQiwgMHhGRUQyMDAwMCkNCiAg ICBOYW1lIChUVFRMLCAweDAwMDIwMDAwKQ0KICAgIE5hbWUgKFNNQlMsIDB4RUZBMCkNCiAgICBO YW1lIChTTUJMLCAweDEwKQ0KICAgIE5hbWUgKFBCTEssIDB4MTgxMCkNCiAgICBOYW1lIChMVkwy LCAweDE4MTQpDQogICAgTmFtZSAoTFZMMywgMHgxODE1KQ0KICAgIE5hbWUgKExWTDQsIDB4MTgx NikNCiAgICBOYW1lIChTTUlQLCAweEIyKQ0KICAgIE5hbWUgKEdQQlMsIDB4MDgwMCkNCiAgICBO YW1lIChHUExOLCAweDgwKQ0KICAgIE5hbWUgKEFQQ0IsIDB4RkVDMDAwMDApDQogICAgTmFtZSAo QVBDTCwgMHgxMDAwKQ0KICAgIE5hbWUgKFBNMzAsIDB4MTgzMCkNCiAgICBOYW1lIChTVVNXLCAw eEZGKQ0KICAgIE5hbWUgKEhQVEMsIDB4RkVEMUM0MDQpDQogICAgTmFtZSAoQUNQSCwgMHhERSkN CiAgICBOYW1lIChBU1NCLCBaZXJvKQ0KICAgIE5hbWUgKEFPVEIsIFplcm8pDQogICAgTmFtZSAo QUFYQiwgWmVybykNCiAgICBOYW1lIChQRUhQLCBPbmUpDQogICAgTmFtZSAoU0hQQywgT25lKQ0K ICAgIE5hbWUgKFBFUE0sIE9uZSkNCiAgICBOYW1lIChQRUVSLCBPbmUpDQogICAgTmFtZSAoUEVD UywgT25lKQ0KICAgIE5hbWUgKElUS0UsIFplcm8pDQogICAgTmFtZSAoRFNTUCwgWmVybykNCiAg ICBOYW1lIChGSFBQLCBPbmUpDQogICAgTmFtZSAoRk1CTCwgT25lKQ0KICAgIE5hbWUgKEZEVFAs IDB4MDIpDQogICAgTmFtZSAoQlNILCBaZXJvKQ0KICAgIE5hbWUgKEJFTCwgT25lKQ0KICAgIE5h bWUgKEJFSCwgMHgwMikNCiAgICBOYW1lIChCUkgsIDB4MDMpDQogICAgTmFtZSAoQlRGLCAweDA0 KQ0KICAgIE5hbWUgKEJIQywgMHgwNSkNCiAgICBOYW1lIChCWUIsIDB4MDYpDQogICAgTmFtZSAo QlBILCAweDA3KQ0KICAgIE5hbWUgKEJTSFMsIDB4MDgpDQogICAgTmFtZSAoQkVMUywgMHgwOSkN CiAgICBOYW1lIChCUkhTLCAweDBBKQ0KICAgIE5hbWUgKEJURlMsIDB4MEIpDQogICAgTmFtZSAo QkVIUywgMHgwQykNCiAgICBOYW1lIChCUEhTLCAweDBEKQ0KICAgIE5hbWUgKEJUTCwgMHgxMCkN CiAgICBOYW1lIChCT0YsIDB4MjApDQogICAgTmFtZSAoQkVGLCAweDIxKQ0KICAgIE5hbWUgKEJM TEUsIDB4MjIpDQogICAgTmFtZSAoQkxMQywgMHgyMykNCiAgICBOYW1lIChCTENBLCAweDI0KQ0K ICAgIE5hbWUgKFRDR00sIE9uZSkNCiAgICBOYW1lIChUUlRQLCBPbmUpDQogICAgTmFtZSAoVFJU RCwgMHgwMikNCiAgICBOYW1lIChUUlRJLCAweDAzKQ0KICAgIE5hbWUgKEdDREQsIE9uZSkNCiAg ICBOYW1lIChEU1RBLCAweDBBKQ0KICAgIE5hbWUgKERTTE8sIDB4MEMpDQogICAgTmFtZSAoRFNM QywgMHgwRSkNCiAgICBOYW1lIChQSVRTLCAweDEwKQ0KICAgIE5hbWUgKFNCQ1MsIDB4MTIpDQog ICAgTmFtZSAoU0FMUywgMHgxMykNCiAgICBOYW1lIChMU1NTLCAweDJBKQ0KICAgIE5hbWUgKFNP T1QsIDB4MzUpDQogICAgTmFtZSAoUERCUiwgMHg0RCkNCiAgICBOYW1lIChXT1dFLCBaZXJvKQ0K ICAgIE5hbWUgKFRBUEQsIFplcm8pDQogICAgT3BlcmF0aW9uUmVnaW9uIChHTlZTLCBTeXN0ZW1N ZW1vcnksIDB4N0FGMzRFMTgsIDB4MDE4NSkNCiAgICBGaWVsZCAoR05WUywgQW55QWNjLCBMb2Nr LCBQcmVzZXJ2ZSkNCiAgICB7DQogICAgICAgIE9TWVMsICAgMTYsIA0KICAgICAgICBTTUlGLCAg IDgsIA0KICAgICAgICBQUk0wLCAgIDgsIA0KICAgICAgICBQUk0xLCAgIDgsIA0KICAgICAgICBT Q0lGLCAgIDgsIA0KICAgICAgICBQUk0yLCAgIDgsIA0KICAgICAgICBQUk0zLCAgIDgsIA0KICAg ICAgICBMQ0tGLCAgIDgsIA0KICAgICAgICBQUk00LCAgIDgsIA0KICAgICAgICBQUk01LCAgIDgs IA0KICAgICAgICBQODBELCAgIDMyLCANCiAgICAgICAgT2Zmc2V0ICgweDEwKSwgDQogICAgICAg IFBXUlMsICAgOCwgDQogICAgICAgIERCR1MsICAgOCwgDQogICAgICAgIFRIT0YsICAgOCwgDQog ICAgICAgIEFDVDEsICAgOCwgDQogICAgICAgIEFDVFQsICAgOCwgDQogICAgICAgIFBTVlQsICAg OCwgDQogICAgICAgIFRDMVYsICAgOCwgDQogICAgICAgIFRDMlYsICAgOCwgDQogICAgICAgIFRT UFYsICAgOCwgDQogICAgICAgIENSVFQsICAgOCwgDQogICAgICAgIERUU0UsICAgOCwgDQogICAg ICAgIERUUzEsICAgOCwgDQogICAgICAgIERUUzIsICAgOCwgDQogICAgICAgIERUU0YsICAgOCwg DQogICAgICAgIE9mZnNldCAoMHgyNSksIA0KICAgICAgICBSRVZOLCAgIDgsIA0KICAgICAgICBP ZmZzZXQgKDB4MjgpLCANCiAgICAgICAgQVBJQywgICA4LCANCiAgICAgICAgVENOVCwgICA4LCAN CiAgICAgICAgUENQMCwgICA4LCANCiAgICAgICAgUENQMSwgICA4LCANCiAgICAgICAgUFBDTSwg ICA4LCANCiAgICAgICAgUFBNRiwgICAzMiwgDQogICAgICAgIEM2N0wsICAgOCwgDQogICAgICAg IE5BVFAsICAgOCwgDQogICAgICAgIENNQVAsICAgOCwgDQogICAgICAgIENNQlAsICAgOCwgDQog ICAgICAgIExQVFAsICAgOCwgDQogICAgICAgIEZEQ1AsICAgOCwgDQogICAgICAgIENNQ1AsICAg OCwgDQogICAgICAgIENJUlAsICAgOCwgDQogICAgICAgIFNNU0MsICAgOCwgDQogICAgICAgIFcz ODEsICAgOCwgDQogICAgICAgIFNNQzEsICAgOCwgDQogICAgICAgIEVNQUUsICAgOCwgDQogICAg ICAgIEVNQVAsICAgMTYsIA0KICAgICAgICBFTUFMLCAgIDE2LCANCiAgICAgICAgT2Zmc2V0ICgw eDQyKSwgDQogICAgICAgIE1FRkUsICAgOCwgDQogICAgICAgIERTVFMsICAgOCwgDQogICAgICAg IE9mZnNldCAoMHg0NiksIA0KICAgICAgICBUUE1QLCAgIDgsIA0KICAgICAgICBUUE1FLCAgIDgs IA0KICAgICAgICBNT1JELCAgIDgsIA0KICAgICAgICBUQ0dQLCAgIDgsIA0KICAgICAgICBQUFJQ LCAgIDMyLCANCiAgICAgICAgUFBSUSwgICA4LCANCiAgICAgICAgTFBQUiwgICA4LCANCiAgICAg ICAgR1RGMCwgICA1NiwgDQogICAgICAgIEdURjIsICAgNTYsIA0KICAgICAgICBJREVNLCAgIDgs IA0KICAgICAgICBHVEYxLCAgIDU2LCANCiAgICAgICAgQkRJRCwgICA4LCANCiAgICAgICAgT2Zm c2V0ICgweDc4KSwgDQogICAgICAgIE9TQ0MsICAgOCwgDQogICAgICAgIE5FWFAsICAgOCwgDQog ICAgICAgIFNER1YsICAgOCwgDQogICAgICAgIFNERFYsICAgOCwgDQogICAgICAgIE9mZnNldCAo MHg4MSksIA0KICAgICAgICBEU0VOLCAgIDgsIA0KICAgICAgICBFQ09OLCAgIDgsIA0KICAgICAg ICBHUElDLCAgIDgsIA0KICAgICAgICBDVFlQLCAgIDgsIA0KICAgICAgICBMMDFDLCAgIDgsIA0K ICAgICAgICBWRk4wLCAgIDgsIA0KICAgICAgICBWRk4xLCAgIDgsIA0KICAgICAgICBBVE1DLCAg IDgsIA0KICAgICAgICBQVE1DLCAgIDgsIA0KICAgICAgICBBVFJBLCAgIDgsIA0KICAgICAgICBQ VFJBLCAgIDgsIA0KICAgICAgICBQTkhNLCAgIDMyLCANCiAgICAgICAgVEJBQiwgICAzMiwgDQog ICAgICAgIFRCQUgsICAgMzIsIA0KICAgICAgICBSVElQLCAgIDgsIA0KICAgICAgICBUU09ELCAg IDgsIA0KICAgICAgICBBVFBDLCAgIDgsIA0KICAgICAgICBQVFBDLCAgIDgsIA0KICAgICAgICBQ RkxWLCAgIDgsIA0KICAgICAgICBCUkVWLCAgIDgsIA0KICAgICAgICBEUEJNLCAgIDgsIA0KICAg ICAgICBEUENNLCAgIDgsIA0KICAgICAgICBEUERNLCAgIDgsIA0KICAgICAgICBTRElELCAgIDgs IA0KICAgICAgICBCTENQLCAgIDgsIA0KICAgICAgICBCTENDLCAgIDgsIA0KICAgICAgICBMRFNC LCAgIDgsIA0KICAgICAgICBCTENULCAgIDMyLCANCiAgICAgICAgQkxDQiwgICAzMiwgDQogICAg ICAgIEJJQ00sICAgMSwgDQogICAgICAgIElTV0ksICAgMSwgDQogICAgICAgIFVTQkQsICAgMSwg DQogICAgICAgIE9mZnNldCAoMHhBRSksIA0KICAgICAgICBVMk9QLCAgIDgsIA0KICAgICAgICBP ZmZzZXQgKDB4QkEpLCANCiAgICAgICAgR1ZOViwgICAzMiwgDQogICAgICAgIE1NNjQsICAgOCwg DQogICAgICAgIE1GSVgsICAgOCwgDQogICAgICAgIE9mZnNldCAoMHhEQyksIA0KICAgICAgICBO Vk1FLCAgIDgsIA0KICAgICAgICBPZmZzZXQgKDB4REUpLCANCiAgICAgICAgREZVVywgICA4LCAN CiAgICAgICAgU01DQiwgICAzMiwgDQogICAgICAgIE9mZnNldCAoMHgxMkMpLCANCiAgICAgICAg QklDMSwgICA4LCANCiAgICAgICAgQklDMiwgICA4LCANCiAgICAgICAgTkhJMSwgICAzMiwgDQog ICAgICAgIFQyUDEsICAgMzIsIA0KICAgICAgICBUVVAxLCAgIDMyLCANCiAgICAgICAgVERCMSwg ICAzMiwgDQogICAgICAgIFROSDEsICAgMzIsIA0KICAgICAgICBURDExLCAgIDMyLCANCiAgICAg ICAgVEQyMSwgICAzMiwgDQogICAgICAgIFRENDEsICAgMzIsIA0KICAgICAgICBOSEkyLCAgIDMy LCANCiAgICAgICAgVDJQMiwgICAzMiwgDQogICAgICAgIFRVUDIsICAgMzIsIA0KICAgICAgICBU REIyLCAgIDMyLCANCiAgICAgICAgVE5IMiwgICAzMiwgDQogICAgICAgIFREMTIsICAgMzIsIA0K ICAgICAgICBURDIyLCAgIDMyLCANCiAgICAgICAgVEQ0MiwgICAzMiwgDQogICAgICAgIEFCUlYs ICAgOCwgDQogICAgICAgIEFCSUQsICAgNjQsIA0KICAgICAgICBNQUMwLCAgIDgsIA0KICAgICAg ICBNQUMxLCAgIDgsIA0KICAgICAgICBNQUMyLCAgIDgsIA0KICAgICAgICBNQUMzLCAgIDgsIA0K ICAgICAgICBNQUM0LCAgIDgsIA0KICAgICAgICBNQUM1LCAgIDgsIA0KICAgICAgICBBR0lELCAg IDMyLCANCiAgICAgICAgUldDMCwgICA4LCANCiAgICAgICAgUldDMSwgICA4LCANCiAgICAgICAg UldDMiwgICA4LCANCiAgICAgICAgUldDMywgICA4DQogICAgfQ0KDQogICAgU2NvcGUgKF9TQikN CiAgICB7DQogICAgICAgIE5hbWUgKFBSMDAsIFBhY2thZ2UgKDB4MjEpDQogICAgICAgIHsNCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg MHgwMDFGRkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5L QSwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFGRkZG RiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBMTktCLCANCiAgICAg ICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCANCiAgICAg ICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktDLCANCiAgICAgICAgICAgICAg ICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCANCiAgICAgICAgICAgICAg ICAweDAzLCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJvDQog ICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAweDAwMURGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCAN CiAgICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAweDAwMURGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAg ICAgICAgIExOS0IsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IDB4MDAxREZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIExO S0MsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxREZG RkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIExOS0QsIA0KICAg ICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIA0KICAg ICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIExOS0EsIA0KICAgICAgICAgICAg ICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxQ0ZGRkYsIA0KICAgICAgICAgICAg ICAgIE9uZSwgDQogICAgICAgICAgICAgICAgTE5LQiwgDQogICAgICAgICAgICAgICAgWmVybw0K ICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwg DQogICAgICAgICAgICAgICAgTE5LQywgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAg ICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgMHgwMDFDRkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAg ICAgICAgICAgTE5LRCwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoN CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgMHgwMDFCRkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg TE5LQSwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFC RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBMTktCLCANCiAg ICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUJGRkZGLCANCiAg ICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktDLCANCiAgICAgICAgICAg ICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkN CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUJGRkZGLCANCiAgICAgICAgICAg ICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJv DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMTdGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJv LCANCiAgICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAg ICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAweDAwMTZGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAg ICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCAN Cg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweDAwMTZGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAg IExOS0IsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAx NkZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIExOS0MsIA0K ICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNr YWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNkZGRkYsIA0K ICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIExOS0QsIA0KICAgICAgICAg ICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIA0KICAgICAgICAg ICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIExOS0EsIA0KICAgICAgICAgICAgICAgIFpl cm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIA0KICAgICAgICAgICAgICAgIE9u ZSwgDQogICAgICAgICAgICAgICAgTE5LQiwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAg ICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHgwMDE0RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAg ICAgICAgICAgICAgTE5LQywgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwg DQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgMHgwMDE0RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAg ICAgTE5LRCwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgw MDAxRkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5LQSwg DQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwg DQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBMTktCLCANCiAgICAgICAg ICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCANCiAgICAgICAg ICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktDLCANCiAgICAgICAgICAgICAgICBa ZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCANCiAgICAgICAgICAgICAgICAw eDAzLCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAg ICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAweDAwMDJGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAg ICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9 LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweDAwMDRGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAg ICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eDAwMDVGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBMTktB LCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDhGRkZG LCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBMTktBLCANCiAgICAg ICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUg KEFSMDAsIFBhY2thZ2UgKDB4MkQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwgDQogICAgICAg ICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg MHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFGRkZGRiwgDQogICAgICAgICAgICAgICAg T25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQogICAg ICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAweDAwMUZGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAg ICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAgICB9 LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweDAwMUZGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAg ICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9LCANCg0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eDAwMUVGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJv LCANCiAgICAgICAgICAgICAgICAweDE0DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUVGRkZG LCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAg ICAgICAgICAgIDB4MTUNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxRUZGRkYsIA0KICAgICAg ICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAg IDB4MTYNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxRUZGRkYsIA0KICAgICAgICAgICAgICAg IDB4MDMsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTcNCiAg ICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIDB4MDAxREZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0K ICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTANCiAgICAgICAgICAg IH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIDB4MDAxREZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAg ICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMQ0KICAgICAgICAgICAgfSwgDQoNCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg MHgwMDFERkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgWmVy bywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFERkZG RiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAg ICAgICAgICAgICAgMHgxMw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgDQogICAg ICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAg ICAgMHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQog ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDFDRkZGRiwgDQogICAgICAgICAgICAg ICAgT25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQog ICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAweDAwMUNGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCAN CiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAweDAwMUNGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAg ICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9LCANCg0K ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAweDAwMUJGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBa ZXJvLCANCiAgICAgICAgICAgICAgICAweDEwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMUJG RkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAg ICAgICAgICAgICAgIDB4MTENCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxQkZGRkYsIA0KICAg ICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAg ICAgIDB4MTINCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxQkZGRkYsIA0KICAgICAgICAgICAg ICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTMN CiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIDB4MDAxOUZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8s IA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTUNCiAgICAgICAg ICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIDB4MDAxOUZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAg ICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxNg0KICAgICAgICAgICAgfSwgDQoN CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgMHgwMDE5RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAg WmVybywgDQogICAgICAgICAgICAgICAgMHgxNw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDE3 RkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQog ICAgICAgICAgICAgICAgMHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDE2RkZGRiwgDQog ICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAg ICAgICAgMHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDE2RkZGRiwgDQogICAgICAgICAg ICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEx DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMTZGRkZGLCANCiAgICAgICAgICAgICAgICAweDAy LCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAg ICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAweDAwMTZGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAg ICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9LCAN Cg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweDAwMTVGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAg ICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEwDQogICAgICAgICAgICB9LCANCg0KICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAw MTVGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0K ICAgICAgICAgICAgICAgIDB4MTENCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNr YWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNUZGRkYsIA0K ICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAg ICAgICAgIDB4MTINCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNUZGRkYsIA0KICAgICAgICAg ICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4 MTMNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIA0KICAgICAgICAgICAgICAgIFpl cm8sIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTANCiAgICAg ICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgIDB4MDAxNEZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAg ICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMQ0KICAgICAgICAgICAgfSwg DQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgMHgwMDE0RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAg ICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgw MDE0RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgWmVybywg DQogICAgICAgICAgICAgICAgMHgxMw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDEzRkZGRiwg DQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAg ICAgICAgICAgMHgxNA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgDQogICAgICAg ICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg MHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgDQogICAgICAgICAgICAgICAg T25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQogICAg ICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAweDAwMDFGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAg ICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAgICB9 LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweDAwMDFGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAg ICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9LCANCg0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eDAwMDJGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJv LCANCiAgICAgICAgICAgICAgICAweDEwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDRGRkZG LCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAg ICAgICAgICAgICAweDEwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDVGRkZGLCANCiAgICAg ICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAg ICAweDEwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDhGRkZGLCANCiAgICAgICAgICAgICAg ICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEwDQog ICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUgKFBSMDQsIFBhY2thZ2UgKDB4 MDQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAg ICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCAN Cg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgTE5L QiwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCAN CiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktDLCANCiAgICAgICAg ICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAg ICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIExOS0QsIA0KICAgICAgICAgICAgICAgIFplcm8N CiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoQVIwNCwgUGFja2FnZSAo MHgwNCkNCiAgICAgICAgew0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAg ICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTANCiAgICAgICAgICAgIH0s IA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBa ZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYs IA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAg ICAgICAgICAgIDB4MTINCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAg ICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgx Mw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICBOYW1lIChQUjA1LCBQYWNrYWdl ICgweDA0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQog ICAgICAgICAgICAgICAgTE5LQiwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAg fSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAg IExOS0MsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZG RiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgTE5LRCwgDQogICAg ICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAg ICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBa ZXJvDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUgKEFSMDUsIFBhY2th Z2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCAN CiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQogICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAg ICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhG RkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAg ICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAg ICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAg IDB4MTANCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoUFIwNiwgUGFj a2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8s IA0KICAgICAgICAgICAgICAgIExOS0MsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAg ICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAg ICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIExOS0EsIA0K ICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNr YWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAg ICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgTE5LQiwgDQogICAgICAgICAgICAg ICAgWmVybw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICBOYW1lIChBUjA2LCBQ YWNrYWdlICgweDA0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgWmVy bywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAg ICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAg ICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTMNCiAgICAgICAgICAgIH0sIA0KDQog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgWmVybywg DQogICAgICAgICAgICAgICAgMHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAg ICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAg ICAgICAweDExDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUgKFBSMDcs IFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQog ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBa ZXJvLCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAg ICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAg ICAgICAgICAgTE5LQSwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoN CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktC LCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0K ICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIExOS0MsIA0KICAgICAgICAg ICAgICAgIFplcm8NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoQVIw NywgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkN CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAg IFplcm8sIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTMNCiAg ICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAg ICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEwDQogICAgICAgICAgICB9LCAN Cg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIFpl cm8sIA0KICAgICAgICAgICAgICAgIDB4MTENCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwg DQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAg ICAgICAgICAgMHgxMg0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICBOYW1lIChQ UjA4LCBQYWNrYWdlICgweDA0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQYWNrYWdlICgweDA0 KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAg ICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5LQSwgDQogICAgICAgICAgICAgICAgWmVybw0K ICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAg ICAgICAgICAgICAgIExOS0IsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0s IA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAg TE5LQywgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZG LCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAg ICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUg KEFSMDgsIFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAg ICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEw DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQog ICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMQ0KICAgICAgICAgICAg fSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAg ICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAgICB9LCANCg0KICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZG RkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAg ICAgICAgICAgICAgIDB4MTMNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFt ZSAoUFIwOSwgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAg ICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIExOS0EsIA0KICAgICAgICAgICAgICAgIFpl cm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCAN CiAgICAgICAgICAgICAgICBMTktCLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAgICAgICAg ICAgIExOS0MsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4 RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgTE5LRCwgDQog ICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICBO YW1lIChBUjA5LCBQYWNrYWdlICgweDA0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQYWNrYWdl ICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAg ICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg MHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBPbmUs IA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTENCiAgICAgICAg ICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAg ICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAgICAgfSwgDQoNCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg MHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBaZXJvLCAN CiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAg IE5hbWUgKFBSMEUsIFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAg ICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBMTktDLCANCiAgICAgICAgICAgICAg ICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIE9u ZSwgDQogICAgICAgICAgICAgICAgTE5LRCwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAg ICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAg ICAgICAgICBMTktBLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0K ICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAgIExOS0Is IA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAg ICAgTmFtZSAoQVIwRSwgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAgICAgICAgICAgUGFj a2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAg ICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAg ICAgIDB4MTINCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAg T25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAg ICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0KICAgICAg ICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTANCiAgICAgICAgICAgIH0sIA0K DQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgWmVy bywgDQogICAgICAgICAgICAgICAgMHgxMQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAg ICAgICBOYW1lIChQUjBGLCBQYWNrYWdlICgweDA0KQ0KICAgICAgICB7DQogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQog ICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5LRCwgDQogICAgICAgICAg ICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAg ICBPbmUsIA0KICAgICAgICAgICAgICAgIExOS0EsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAg ICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAg ICAgICAgICAgICAgTE5LQiwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwg DQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBM TktDLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9DQogICAgICAgIH0pDQog ICAgICAgIE5hbWUgKEFSMEYsIFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCAN CiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAg ICAgICAgICAweDEzDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAg ICAgIE9uZSwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMA0K ICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAg ICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDExDQogICAgICAgICAgICB9 LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAgICAg IFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTINCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkN CiAgICAgICAgTmFtZSAoUFIwMiwgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAgICAgICAg ICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYs IA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIExOS0EsIA0KICAgICAg ICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAg ICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBMTktCLCANCiAgICAgICAgICAgICAgICBaZXJv DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDIsIA0K ICAgICAgICAgICAgICAgIExOS0MsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAg IH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAg ICAgTE5LRCwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfQ0KICAgICAgICB9 KQ0KICAgICAgICBOYW1lIChBUjAyLCBQYWNrYWdlICgweDA0KQ0KICAgICAgICB7DQogICAgICAg ICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZG RiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAg ICAgICAgICAgICAgMHgxMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAg ICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4 MTENCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwg DQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAg ICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAg ICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEzDQogICAgICAgICAgICB9DQogICAgICAg IH0pDQogICAgICAgIE5hbWUgKFBSMEEsIFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsNCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhG RkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBMTktCLCANCiAg ICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2Fn ZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAg ICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgTE5LQywgDQogICAgICAgICAgICAgICAg WmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAy LCANCiAgICAgICAgICAgICAgICBMTktELCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAg ICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAg ICAgICAgIExOS0EsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0NCiAgICAg ICAgfSkNCiAgICAgICAgTmFtZSAoQVIwQSwgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgew0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eEZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIFplcm8sIA0K ICAgICAgICAgICAgICAgIDB4MTENCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNr YWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAg ICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAg ICAweDEyDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4 MDIsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTMNCiAgICAg ICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAg ICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMA0KICAgICAgICAgICAgfQ0KICAg ICAgICB9KQ0KICAgICAgICBOYW1lIChQUjBCLCBQYWNrYWdlICgweDA0KQ0KICAgICAgICB7DQog ICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IDB4RkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5LQywg DQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBh Y2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAg ICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIExOS0QsIA0KICAgICAgICAgICAg ICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAg MHgwMiwgDQogICAgICAgICAgICAgICAgTE5LQSwgDQogICAgICAgICAgICAgICAgWmVybw0KICAg ICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAg ICAgICAgICAgICBMTktCLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9DQog ICAgICAgIH0pDQogICAgICAgIE5hbWUgKEFSMEIsIFBhY2thZ2UgKDB4MDQpDQogICAgICAgIHsN CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJv LCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0K ICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAg ICAgICAgMHgxMw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAg ICAweDAyLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEwDQog ICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAg ICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTENCiAgICAgICAgICAgIH0N CiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoUFIwQywgUGFja2FnZSAoMHgwNCkNCiAgICAgICAg ew0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIExO S0QsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAg ICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwg DQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAgICAgICBMTktBLCANCiAgICAgICAg ICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAg ICAgIDB4MDIsIA0KICAgICAgICAgICAgICAgIExOS0IsIA0KICAgICAgICAgICAgICAgIFplcm8N CiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMywgDQog ICAgICAgICAgICAgICAgTE5LQywgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAg fQ0KICAgICAgICB9KQ0KICAgICAgICBOYW1lIChBUjBDLCBQYWNrYWdlICgweDA0KQ0KICAgICAg ICB7DQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgIDB4RkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg WmVybywgDQogICAgICAgICAgICAgICAgMHgxMw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZG LCANCiAgICAgICAgICAgICAgICBPbmUsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAg ICAgICAgICAgIDB4MTANCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgw eDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4RkZGRiwgDQogICAgICAgICAg ICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgx MQ0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCAN CiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDEyDQogICAgICAgICAg ICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUgKFBSMDEsIFBhY2thZ2UgKDB4MEMpDQogICAg ICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAg ICBMTktGLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAg ICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZG RkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgTE5LRywgDQogICAg ICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2Ug KDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAg ICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBMTktILCANCiAgICAgICAgICAgICAgICBa ZXJvDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMs IA0KICAgICAgICAgICAgICAgIExOS0UsIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAg ICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIDB4MDAwMUZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAg ICAgICAgICAgIExOS0csIA0KICAgICAgICAgICAgICAgIFplcm8NCiAgICAgICAgICAgIH0sIA0K DQogICAgICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIDB4MDAwMUZGRkYsIA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAg TE5LRiwgDQogICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAx RkZGRiwgDQogICAgICAgICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgTE5LRSwgDQog ICAgICAgICAgICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgDQog ICAgICAgICAgICAgICAgMHgwMywgDQogICAgICAgICAgICAgICAgTE5LSCwgDQogICAgICAgICAg ICAgICAgWmVybw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQp DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgDQogICAgICAgICAg ICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgTE5LQywgDQogICAgICAgICAgICAgICAgWmVy bw0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgDQogICAgICAgICAgICAgICAgT25l LCANCiAgICAgICAgICAgICAgICBMTktFLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAg ICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAweDAwMDVGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAg ICAgICAgICAgICBMTktHLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9LCAN Cg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAweDAwMDVGRkZGLCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAg ICBMTktGLCANCiAgICAgICAgICAgICAgICBaZXJvDQogICAgICAgICAgICB9DQogICAgICAgIH0p DQogICAgICAgIE5hbWUgKEFSMDEsIFBhY2thZ2UgKDB4MEMpDQogICAgICAgIHsNCiAgICAgICAg ICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZG LCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAg ICAgICAgICAgICAweDE1DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAo MHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAg ICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgx Ng0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCAN CiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDE3DQogICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAgICAgICAgIDB4MDMsIA0KICAgICAgICAgICAg ICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIDB4MTQNCiAgICAgICAgICAgIH0sIA0KDQogICAg ICAgICAgICBQYWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4 MDAwMUZGRkYsIA0KICAgICAgICAgICAgICAgIFplcm8sIA0KICAgICAgICAgICAgICAgIFplcm8s IA0KICAgICAgICAgICAgICAgIDB4MTYNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQ YWNrYWdlICgweDA0KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDAwMUZGRkYs IA0KICAgICAgICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAg ICAgICAgICAgMHgxNQ0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4 MDQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgDQogICAgICAg ICAgICAgICAgMHgwMiwgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAg MHgxNA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDAxRkZGRiwgDQogICAgICAgICAgICAgICAg MHgwMywgDQogICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxNw0KICAg ICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgMHgwMDA1RkZGRiwgDQogICAgICAgICAgICAgICAgWmVybywgDQog ICAgICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICAgICAgMHgxMg0KICAgICAgICAgICAg fSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgMHgwMDA1RkZGRiwgDQogICAgICAgICAgICAgICAgT25lLCANCiAgICAgICAgICAg ICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAweDE0DQogICAgICAgICAgICB9LCANCg0KICAg ICAgICAgICAgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAw eDAwMDVGRkZGLCANCiAgICAgICAgICAgICAgICAweDAyLCANCiAgICAgICAgICAgICAgICBaZXJv LCANCiAgICAgICAgICAgICAgICAweDE2DQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwMDVGRkZG LCANCiAgICAgICAgICAgICAgICAweDAzLCANCiAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAg ICAgICAgICAgICAweDE1DQogICAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIE5hbWUg KFBSU0EsIFJlc291cmNlVGVtcGxhdGUgKCkNCiAgICAgICAgew0KICAgICAgICAgICAgSVJRIChM ZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkNCiAgICAgICAgICAgICAgICB7Myw0LDUsNiw3LDEw LDExLDEyLDE0LDE1fQ0KICAgICAgICB9KQ0KICAgICAgICBBbGlhcyAoUFJTQSwgUFJTQikNCiAg ICAgICAgQWxpYXMgKFBSU0EsIFBSU0MpDQogICAgICAgIEFsaWFzIChQUlNBLCBQUlNEKQ0KICAg ICAgICBBbGlhcyAoUFJTQSwgUFJTRSkNCiAgICAgICAgQWxpYXMgKFBSU0EsIFBSU0YpDQogICAg ICAgIEFsaWFzIChQUlNBLCBQUlNHKQ0KICAgICAgICBBbGlhcyAoUFJTQSwgUFJTSCkNCiAgICAg ICAgRGV2aWNlIChQQ0kwKQ0KICAgICAgICB7DQogICAgICAgICAgICBOYW1lIChfSElELCBFaXNh SWQgKCJQTlAwQTA4IikgLyogUENJIEV4cHJlc3MgQnVzICovKSAgLy8gX0hJRDogSGFyZHdhcmUg SUQNCiAgICAgICAgICAgIE5hbWUgKF9DSUQsIEVpc2FJZCAoIlBOUDBBMDMiKSAvKiBQQ0kgQnVz ICovKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0KICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVy bykgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAgICAgIE1ldGhvZCAoXkJOMDAsIDAsIE5vdFNl cmlhbGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0K ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXRob2QgKF9CQk4sIDAsIE5vdFNlcmlhbGl6 ZWQpICAvLyBfQkJOOiBCSU9TIEJ1cyBOdW1iZXINCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICBSZXR1cm4gKEJOMDAgKCkpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIE5hbWUg KF9VSUQsIFplcm8pICAvLyBfVUlEOiBVbmlxdWUgSUQNCiAgICAgICAgICAgIE1ldGhvZCAoX1BS VCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgSWYgKFBJQ00pDQogICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKEFSMDAgKCkpDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgUmV0dXJuIChQUjAwICgpKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICBPcGVyYXRpb25SZWdpb24gKEhCVVMsIFBDSV9Db25maWcsIFplcm8sIDB4MDEwMCkNCiAg ICAgICAgICAgIEZpZWxkIChIQlVTLCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDApLCANCiAgICAgICAgICAgICAg ICBFUEVOLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAsICAgMTEsIA0KICAgICAgICAgICAg ICAgIEVQQlIsICAgMjAsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0OCksIA0KICAgICAg ICAgICAgICAgIE1IRU4sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICwgICAxNCwgDQogICAg ICAgICAgICAgICAgTUhCUiwgICAxNywgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUwKSwg DQogICAgICAgICAgICAgICAgR0NMSywgICAxLCANCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NTQpLCANCiAgICAgICAgICAgICAgICBEMEVOLCAgIDEsIA0KICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg2MCksIA0KICAgICAgICAgICAgICAgIFBYRU4sICAgMSwgDQogICAgICAgICAgICAgICAg UFhTWiwgICAyLCANCiAgICAgICAgICAgICAgICAgICAgLCAgIDIzLCANCiAgICAgICAgICAgICAg ICBQWEJSLCAgIDYsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2OCksIA0KICAgICAgICAg ICAgICAgIERJRU4sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICwgICAxMSwgDQogICAgICAg ICAgICAgICAgRElCUiwgICAyMCwgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDcwKSwgDQog ICAgICAgICAgICAgICAgICAgICwgICAyMCwgDQogICAgICAgICAgICAgICAgTUVCUiwgICAxMiwg DQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDgwKSwgDQogICAgICAgICAgICAgICAgICAgICwg ICA0LCANCiAgICAgICAgICAgICAgICBQTTBILCAgIDIsIA0KICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg4MSksIA0KICAgICAgICAgICAgICAgIFBNMUwsICAgMiwgDQogICAgICAgICAgICAgICAg ICAgICwgICAyLCANCiAgICAgICAgICAgICAgICBQTTFILCAgIDIsIA0KICAgICAgICAgICAgICAg IE9mZnNldCAoMHg4MiksIA0KICAgICAgICAgICAgICAgIFBNMkwsICAgMiwgDQogICAgICAgICAg ICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICBQTTJILCAgIDIsIA0KICAgICAgICAg ICAgICAgIE9mZnNldCAoMHg4MyksIA0KICAgICAgICAgICAgICAgIFBNM0wsICAgMiwgDQogICAg ICAgICAgICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICBQTTNILCAgIDIsIA0KICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg4NCksIA0KICAgICAgICAgICAgICAgIFBNNEwsICAgMiwg DQogICAgICAgICAgICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICBQTTRILCAgIDIs IA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NSksIA0KICAgICAgICAgICAgICAgIFBNNUws ICAgMiwgDQogICAgICAgICAgICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICBQTTVI LCAgIDIsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NiksIA0KICAgICAgICAgICAgICAg IFBNNkwsICAgMiwgDQogICAgICAgICAgICAgICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAg ICBQTTZILCAgIDIsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg4NyksIA0KICAgICAgICAg ICAgICAgIE9mZnNldCAoMHhBOCksIA0KICAgICAgICAgICAgICAgICAgICAsICAgMjAsIA0KICAg ICAgICAgICAgICAgIFRVVUQsICAgMTksIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHhCQyks IA0KICAgICAgICAgICAgICAgICAgICAsICAgMjAsIA0KICAgICAgICAgICAgICAgIFRMVUQsICAg MTIsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHhDOCksIA0KICAgICAgICAgICAgICAgICAg ICAsICAgNywgDQogICAgICAgICAgICAgICAgSFRTRSwgICAxDQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoTUNIVCwgU3lzdGVtTWVtb3J5LCAweEZFRDEwMDAw LCAweDYwMDApDQogICAgICAgICAgICBGaWVsZCAoTUNIVCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVz ZXJ2ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NTk5NCksIA0K ICAgICAgICAgICAgICAgIFJQU0wsICAgOCwgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU5 OTgpLCANCiAgICAgICAgICAgICAgICBSUDBDLCAgIDgsIA0KICAgICAgICAgICAgICAgIFJQMUMs ICAgOCwgDQogICAgICAgICAgICAgICAgUlBOQywgICA4DQogICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICBXb3JkQnVzTnVtYmVyIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwg TWF4Rml4ZWQsIFBvc0RlY29kZSwNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwLCAgICAgICAg ICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAg ICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMEZGLCAgICAgICAg ICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMCwgICAgICAg ICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQogICAgICAgICAgICAgICAgICAgIDB4MDEwMCwg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICwsICkNCiAgICAgICAg ICAgICAgICBEV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIFBv c0RlY29kZSwgRW50aXJlUmFuZ2UsDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAg ICAgICAgLy8gR3JhbnVsYXJpdHkNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDBDRjcsICAg ICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldA0KICAgICAgICAgICAgICAgICAgICAweDAwMDAw Q0Y4LCAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICAsLCAsIFR5cGVTdGF0 aWMsIERlbnNlVHJhbnNsYXRpb24pDQogICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAg ICAgICAgICAgICAgICAgICAweDBDRjgsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAg ICAgICAgICAgICAgICAgICAgMHgwQ0Y4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQog ICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQogICAg ICAgICAgICAgICAgICAgIDB4MDgsICAgICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICBEV29yZElPIChSZXNvdXJjZVByb2R1Y2VyLCBN aW5GaXhlZCwgTWF4Rml4ZWQsIFBvc0RlY29kZSwgRW50aXJlUmFuZ2UsDQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkNCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMEQwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMEZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAg ICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldA0KICAgICAg ICAgICAgICAgICAgICAweDAwMDBGMzAwLCAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAg ICAgICAgICAsLCAsIFR5cGVTdGF0aWMsIERlbnNlVHJhbnNsYXRpb24pDQogICAgICAgICAgICAg ICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1h eEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAgICAgICAgICAgICAweDAwMEEw MDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDBC RkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAw MDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQogICAgICAgICAgICAgICAgICAg IDB4MDAwMjAwMDAsICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICwsICwg QWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQ0KICAgICAgICAgICAgICAgIERXb3JkTWVt b3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2Fj aGVhYmxlLCBSZWFkV3JpdGUsDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAg ICAgLy8gR3JhbnVsYXJpdHkNCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDMDAwMCwgICAgICAg ICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwQzNGRkYsICAgICAg ICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldA0KICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAw LCAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICAsLCBfWTAwLCBBZGRyZXNz UmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpDQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJl c291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUs IFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBH cmFudWxhcml0eQ0KICAgICAgICAgICAgICAgICAgICAweDAwMEM0MDAwLCAgICAgICAgIC8vIFJh bmdlIE1pbmltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDBDN0ZGRiwgICAgICAgICAvLyBS YW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g VHJhbnNsYXRpb24gT2Zmc2V0DQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAg ICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICwsIF9ZMDEsIEFkZHJlc3NSYW5nZU1l bW9yeSwgVHlwZVN0YXRpYykNCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQ cm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdy aXRlLA0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFy aXR5DQogICAgICAgICAgICAgICAgICAgIDB4MDAwQzgwMDAsICAgICAgICAgLy8gUmFuZ2UgTWlu aW11bQ0KICAgICAgICAgICAgICAgICAgICAweDAwMENCRkZGLCAgICAgICAgIC8vIFJhbmdlIE1h eGltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xh dGlvbiBPZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBM ZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwMiwgQWRkcmVzc1JhbmdlTWVtb3J5LCBU eXBlU3RhdGljKQ0KICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2Vy LCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsDQog ICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkNCiAg ICAgICAgICAgICAgICAgICAgMHgwMDBDQzAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQog ICAgICAgICAgICAgICAgICAgIDB4MDAwQ0ZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0K ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9m ZnNldA0KICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aA0K ICAgICAgICAgICAgICAgICAgICAsLCBfWTAzLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0 aWMpDQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0Rl Y29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwNCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAg ICAgICAgICAgICAweDAwMEQwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAg ICAgICAgICAgICAgMHgwMDBEM0ZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQog ICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAg ICAgICAgICAgICAgICwsIF9ZMDQsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykNCiAg ICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBN aW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5DQogICAgICAgICAgICAgICAg ICAgIDB4MDAwRDQwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAweDAwMEQ3RkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQNCiAgICAgICAg ICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgNCiAgICAgICAgICAgICAg ICAgICAgLCwgX1kwNSwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQ0KICAgICAgICAg ICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVk LCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsDQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkNCiAgICAgICAgICAgICAgICAgICAgMHgw MDBEODAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgIDB4 MDAwREJGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAw eDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldA0KICAgICAgICAgICAgICAg ICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICAs LCBfWTA2LCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpDQogICAgICAgICAgICAgICAg RFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZp eGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAw MCwgICAgICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAgICAgICAgICAgICAweDAwMERDMDAw LCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDBERkZG RiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAw MDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQogICAgICAgICAgICAgICAgICAgIDB4 MDAwMDQwMDAsICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICwsIF9ZMDcs IEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykNCiAgICAgICAgICAgICAgICBEV29yZE1l bW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENh Y2hlYWJsZSwgUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAg ICAgIC8vIEdyYW51bGFyaXR5DQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTAwMDAsICAgICAg ICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAgICAgICAweDAwMEUzRkZGLCAgICAg ICAgIC8vIFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAg ICAgICAvLyBUcmFuc2xhdGlvbiBPZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAw MCwgICAgICAgICAvLyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgLCwgX1kwOCwgQWRkcmVz c1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQ0KICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChS ZXNvdXJjZVByb2R1Y2VyLCBQb3NEZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxl LCBSZWFkV3JpdGUsDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8g R3JhbnVsYXJpdHkNCiAgICAgICAgICAgICAgICAgICAgMHgwMDBFNDAwMCwgICAgICAgICAvLyBS YW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwRTdGRkYsICAgICAgICAgLy8g UmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8v IFRyYW5zbGF0aW9uIE9mZnNldA0KICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAg ICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICAsLCBfWTA5LCBBZGRyZXNzUmFuZ2VN ZW1vcnksIFR5cGVTdGF0aWMpDQogICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNl UHJvZHVjZXIsIFBvc0RlY29kZSwgTWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRX cml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxh cml0eQ0KICAgICAgICAgICAgICAgICAgICAweDAwMEU4MDAwLCAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgMHgwMDBFQkZGRiwgICAgICAgICAvLyBSYW5nZSBN YXhpbXVtDQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNs YXRpb24gT2Zmc2V0DQogICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDAsICAgICAgICAgLy8g TGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICwsIF9ZMEEsIEFkZHJlc3NSYW5nZU1lbW9yeSwg VHlwZVN0YXRpYykNCiAgICAgICAgICAgICAgICBEV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNl ciwgUG9zRGVjb2RlLCBNaW5GaXhlZCwgTWF4Rml4ZWQsIENhY2hlYWJsZSwgUmVhZFdyaXRlLA0K ICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEdyYW51bGFyaXR5DQog ICAgICAgICAgICAgICAgICAgIDB4MDAwRUMwMDAsICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0K ICAgICAgICAgICAgICAgICAgICAweDAwMEVGRkZGLCAgICAgICAgIC8vIFJhbmdlIE1heGltdW0N CiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBUcmFuc2xhdGlvbiBP ZmZzZXQNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgLCwgX1kwQiwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3Rh dGljKQ0KICAgICAgICAgICAgICAgIERXb3JkTWVtb3J5IChSZXNvdXJjZVByb2R1Y2VyLCBQb3NE ZWNvZGUsIE1pbkZpeGVkLCBNYXhGaXhlZCwgQ2FjaGVhYmxlLCBSZWFkV3JpdGUsDQogICAgICAg ICAgICAgICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gR3JhbnVsYXJpdHkNCiAgICAgICAg ICAgICAgICAgICAgMHgwMDBGMDAwMCwgICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAg ICAgICAgICAgICAgIDB4MDAwRkZGRkYsICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFRyYW5zbGF0aW9uIE9mZnNldA0K ICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgICAgIC8vIExlbmd0aA0KICAgICAg ICAgICAgICAgICAgICAsLCBfWTBDLCBBZGRyZXNzUmFuZ2VNZW1vcnksIFR5cGVTdGF0aWMpDQog ICAgICAgICAgICAgICAgRFdvcmRNZW1vcnkgKFJlc291cmNlUHJvZHVjZXIsIFBvc0RlY29kZSwg TWluRml4ZWQsIE1heEZpeGVkLCBDYWNoZWFibGUsIFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAg ICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBHcmFudWxhcml0eQ0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAgICAgICAg ICAgICAgMHhGRUFGRkZGRiwgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAg ICAgICAgIDB4MDAwMDAwMDAsICAgICAgICAgLy8gVHJhbnNsYXRpb24gT2Zmc2V0DQogICAgICAg ICAgICAgICAgICAgIDB4RkVCMDAwMDAsICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAg ICAgICAgICwsIF9ZMEQsIEFkZHJlc3NSYW5nZU1lbW9yeSwgVHlwZVN0YXRpYykNCiAgICAgICAg ICAgICAgICBRV29yZE1lbW9yeSAoUmVzb3VyY2VQcm9kdWNlciwgUG9zRGVjb2RlLCBNaW5GaXhl ZCwgTWF4Rml4ZWQsIE5vbkNhY2hlYWJsZSwgUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwMDAwMDAwMDAsIC8vIEdyYW51bGFyaXR5DQogICAgICAgICAgICAgICAgICAg IDB4MDAwMDAwMDAwMDAxMDAwMCwgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAgICAg ICAweDAwMDAwMDAwMDAwMUZGRkYsIC8vIFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAg ICAgMHgwMDAwMDAwMDAwMDAwMDAwLCAvLyBUcmFuc2xhdGlvbiBPZmZzZXQNCiAgICAgICAgICAg ICAgICAgICAgMHgwMDAwMDAwMDAwMDEwMDAwLCAvLyBMZW5ndGgNCiAgICAgICAgICAgICAgICAg ICAgLCwgX1kwRSwgQWRkcmVzc1JhbmdlTWVtb3J5LCBUeXBlU3RhdGljKQ0KICAgICAgICAgICAg fSkNCiAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1 cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJ ZiAoUE0xTCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAwLl9MRU4sIEMwTE4pICAvLyBfTEVOOiBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgQzBMTiA9IFplcm8NCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICBJZiAoKFBNMUwgPT0gT25lKSkNCiAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMC5f UlcsIEMwUlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1cw0KICAgICAgICAgICAgICAgICAg ICBDMFJXID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmIChQ TTFIKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRG aWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDEuX0xFTiwgQzRMTikgIC8vIF9MRU46IExlbmd0aA0K ICAgICAgICAgICAgICAgICAgICBDNExOID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgIElmICgoUE0xSCA9PSBPbmUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTAxLl9SVywg QzRSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzDQogICAgICAgICAgICAgICAgICAgIEM0 UlcgPSBaZXJvDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKFBNMkwp DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBDSTAuX1kwMi5fTEVOLCBDOExOKSAgLy8gX0xFTjogTGVuZ3RoDQogICAg ICAgICAgICAgICAgICAgIEM4TE4gPSBaZXJvDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgSWYgKChQTTJMID09IE9uZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDIuX1JXLCBDOFJX KSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBTdGF0dXMNCiAgICAgICAgICAgICAgICAgICAgQzhSVyA9 IFplcm8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJZiAoUE0ySCkNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJV RjAsIFxfU0IuUENJMC5fWTAzLl9MRU4sIENDTE4pICAvLyBfTEVOOiBMZW5ndGgNCiAgICAgICAg ICAgICAgICAgICAgQ0NMTiA9IFplcm8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICBJZiAoKFBNMkggPT0gT25lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwMy5fUlcsIENDUlcpICAv LyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICBDQ1JXID0gWmVy bw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmIChQTTNMKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwg XF9TQi5QQ0kwLl9ZMDQuX0xFTiwgRDBMTikgIC8vIF9MRU46IExlbmd0aA0KICAgICAgICAgICAg ICAgICAgICBEMExOID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg IElmICgoUE0zTCA9PSBPbmUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQml0RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA0Ll9SVywgRDBSVykgIC8vIF9S V186IFJlYWQtV3JpdGUgU3RhdHVzDQogICAgICAgICAgICAgICAgICAgIEQwUlcgPSBaZXJvDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKFBNM0gpDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NC LlBDSTAuX1kwNS5fTEVOLCBENExOKSAgLy8gX0xFTjogTGVuZ3RoDQogICAgICAgICAgICAgICAg ICAgIEQ0TE4gPSBaZXJvDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYg KChQTTNIID09IE9uZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBD cmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDUuX1JXLCBENFJXKSAgLy8gX1JXXzog UmVhZC1Xcml0ZSBTdGF0dXMNCiAgICAgICAgICAgICAgICAgICAgRDRSVyA9IFplcm8NCiAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJZiAoUE00TCkNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJ MC5fWTA2Ll9MRU4sIEQ4TE4pICAvLyBfTEVOOiBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAg RDhMTiA9IFplcm8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJZiAoKFBN NEwgPT0gT25lKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0 ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwNi5fUlcsIEQ4UlcpICAvLyBfUldfOiBSZWFk LVdyaXRlIFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICBEOFJXID0gWmVybw0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmIChQTTRIKQ0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9Z MDcuX0xFTiwgRENMTikgIC8vIF9MRU46IExlbmd0aA0KICAgICAgICAgICAgICAgICAgICBEQ0xO ID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmICgoUE00SCA9 PSBPbmUpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0 RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA3Ll9SVywgRENSVykgIC8vIF9SV186IFJlYWQtV3Jp dGUgU3RhdHVzDQogICAgICAgICAgICAgICAgICAgIERDUlcgPSBaZXJvDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKFBNNUwpDQogICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwOC5f TEVOLCBFMExOKSAgLy8gX0xFTjogTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgIEUwTE4gPSBa ZXJvDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKChQTTVMID09IE9u ZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVs ZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMDguX1JXLCBFMFJXKSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBT dGF0dXMNCiAgICAgICAgICAgICAgICAgICAgRTBSVyA9IFplcm8NCiAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICBJZiAoUE01SCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTA5Ll9MRU4s IEU0TE4pICAvLyBfTEVOOiBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgRTRMTiA9IFplcm8N CiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBJZiAoKFBNNUggPT0gT25lKSkN CiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChC VUYwLCBcX1NCLlBDSTAuX1kwOS5fUlcsIEU0UlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1 cw0KICAgICAgICAgICAgICAgICAgICBFNFJXID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgIElmIChQTTZMKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLl9ZMEEuX0xFTiwgRThM TikgIC8vIF9MRU46IExlbmd0aA0KICAgICAgICAgICAgICAgICAgICBFOExOID0gWmVybw0KICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmICgoUE02TCA9PSBPbmUpKQ0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlQml0RmllbGQgKEJVRjAs IFxfU0IuUENJMC5fWTBBLl9SVywgRThSVykgIC8vIF9SV186IFJlYWQtV3JpdGUgU3RhdHVzDQog ICAgICAgICAgICAgICAgICAgIEU4UlcgPSBaZXJvDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgSWYgKFBNNkgpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwQi5fTEVOLCBFQ0xOKSAg Ly8gX0xFTjogTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgIEVDTE4gPSBaZXJvDQogICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKChQTTZIID09IE9uZSkpDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDcmVhdGVCaXRGaWVsZCAoQlVGMCwgXF9T Qi5QQ0kwLl9ZMEIuX1JXLCBFQ1JXKSAgLy8gX1JXXzogUmVhZC1Xcml0ZSBTdGF0dXMNCiAgICAg ICAgICAgICAgICAgICAgRUNSVyA9IFplcm8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICBJZiAoUE0wSCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg IENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBDLl9MRU4sIEYwTE4pICAvLyBf TEVOOiBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgRjBMTiA9IFplcm8NCiAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICBJZiAoKFBNMEggPT0gT25lKSkNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIENyZWF0ZUJpdEZpZWxkIChCVUYwLCBcX1NCLlBD STAuX1kwQy5fUlcsIEYwUlcpICAvLyBfUldfOiBSZWFkLVdyaXRlIFN0YXR1cw0KICAgICAgICAg ICAgICAgICAgICBGMFJXID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9NSU4sIE0xTU4pICAv LyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3Jk RmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBELl9NQVgsIE0xTVgpICAvLyBfTUFYOiBNYXhpbXVt IEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxf U0IuUENJMC5fWTBELl9MRU4sIE0xTE4pICAvLyBfTEVOOiBMZW5ndGgNCiAgICAgICAgICAgICAg ICBNMU1OID0gKFRMVUQgPDwgMHgxNCkNCiAgICAgICAgICAgICAgICBNMUxOID0gKChNMU1YIC0g TTFNTikgKyBPbmUpDQogICAgICAgICAgICAgICAgSWYgKChNNjRMID09IFplcm8pKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgQ3JlYXRlUVdvcmRGaWVsZCAoQlVGMCwg XF9TQi5QQ0kwLl9ZMEUuX0xFTiwgTVNMTikgIC8vIF9MRU46IExlbmd0aA0KICAgICAgICAgICAg ICAgICAgICBNU0xOID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBF bHNlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBDcmVhdGVRV29yZEZp ZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwRS5fTEVOLCBNMkxOKSAgLy8gX0xFTjogTGVuZ3RoDQog ICAgICAgICAgICAgICAgICAgIENyZWF0ZVFXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5fWTBF Ll9NSU4sIE0yTU4pICAvLyBfTUlOOiBNaW5pbXVtIEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAg ICAgICAgICBDcmVhdGVRV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuX1kwRS5fTUFYLCBNMk1Y KSAgLy8gX01BWDogTWF4aW11bSBCYXNlIEFkZHJlc3MNCiAgICAgICAgICAgICAgICAgICAgTTJM TiA9IE02NEwgLyogRXh0ZXJuYWwgcmVmZXJlbmNlICovDQogICAgICAgICAgICAgICAgICAgIE0y TU4gPSBNNjRCIC8qIEV4dGVybmFsIHJlZmVyZW5jZSAqLw0KICAgICAgICAgICAgICAgICAgICBN Mk1YID0gKChNMk1OICsgTTJMTikgLSBPbmUpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5QQ0kwLkJVRjAgKi8NCiAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgTWV0aG9kIChOSFBHLCAwLCBTZXJpYWxpemVkKQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXRob2QgKE5QTUUsIDAsIFNlcmlh bGl6ZWQpDQogICAgICAgICAgICB7DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIE5hbWUg KEdVSUQsIFRvVVVJRCAoIjMzZGI0ZDViLTFmZjctNDAxYy05NjU3LTc0NDFjMDNkZDc2NiIpIC8q IFBDSSBIb3N0IEJyaWRnZSBEZXZpY2UgKi8pDQogICAgICAgICAgICBOYW1lIChTVVBQLCBaZXJv KQ0KICAgICAgICAgICAgTmFtZSAoQ1RSTCwgWmVybykNCiAgICAgICAgICAgIE1ldGhvZCAoX09T QywgNCwgU2VyaWFsaXplZCkgIC8vIF9PU0M6IE9wZXJhdGluZyBTeXN0ZW0gQ2FwYWJpbGl0aWVz DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9jYWwwID0gQXJnMw0KICAgICAgICAg ICAgICAgIENyZWF0ZURXb3JkRmllbGQgKExvY2FsMCwgWmVybywgQ0RXMSkNCiAgICAgICAgICAg ICAgICBDcmVhdGVEV29yZEZpZWxkIChMb2NhbDAsIDB4MDQsIENEVzIpDQogICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoTG9jYWwwLCAweDA4LCBDRFczKQ0KICAgICAgICAgICAgICAg IFNVUFAgPSBDRFcyIC8qIFxfU0JfLlBDSTAuX09TQy5DRFcyICovDQogICAgICAgICAgICAgICAg Q1RSTCA9IENEVzMgLyogXF9TQl8uUENJMC5fT1NDLkNEVzMgKi8NCiAgICAgICAgICAgICAgICBJ ZiAoKE9uZSA9PSBPU0RXICgpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIElmICgoKEFyZzAgPT0gR1VJRCkgJiYgTkVYUCkpDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIElmICh+KENEVzEgJiBPbmUpKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ1RSTCAmIDB4 MDIpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTkhQRyAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQ1RSTCAmIDB4MDQpKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlBNRSAo KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxICE9IE9uZSkpDQogICAgICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMSB8PSAw eDA4DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAg IElmICgoQ0RXMyAhPSBDVFJMKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDRFcxIHw9IDB4MTANCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMyA9IENUUkwgLyogXF9TQl8uUENJMC5D VFJMICovDQogICAgICAgICAgICAgICAgICAgICAgICBPU0NDID0gQ1RSTCAvKiBcX1NCXy5QQ0kw LkNUUkwgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ0RXMSB8PSAweDA0DQogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gR1VJRCkpe30NCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChMb2NhbDApDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICBTY29wZSAoXF9TQi5QQ0kwKQ0KICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgIE1ldGhvZCAoQVIwMCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjAwKSAvKiBcX1NCXy5BUjAwICovDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChQUjAwLCAwLCBOb3RT ZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICheXlBSMDApIC8qIFxfU0JfLlBSMDAgKi8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICBNZXRob2QgKEFSMDEsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwMSkgLyogXF9TQl8uQVIwMSAqLw0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoUFIwMSwgMCwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoXl5QUjAxKSAvKiBcX1NCXy5QUjAxICovDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgTWV0aG9kIChBUjAyLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXkFSMDIpIC8qIFxfU0JfLkFSMDIgKi8N CiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSMDIsIDAsIE5v dFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKF5eUFIwMikgLyogXF9TQl8uUFIwMiAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgIE1ldGhvZCAoQVIwNCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjA0KSAvKiBcX1NCXy5BUjA0ICov DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChQUjA0LCAwLCBO b3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICheXlBSMDQpIC8qIFxfU0JfLlBSMDQgKi8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICBNZXRob2QgKEFSMDUsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwNSkgLyogXF9TQl8uQVIwNSAq Lw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoUFIwNSwgMCwg Tm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoXl5QUjA1KSAvKiBcX1NCXy5QUjA1ICovDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgTWV0aG9kIChBUjA2LCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXkFSMDYpIC8qIFxfU0JfLkFSMDYg Ki8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSMDYsIDAs IE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKF5eUFIwNikgLyogXF9TQl8uUFIwNiAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgIE1ldGhvZCAoQVIwNywgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjA3KSAvKiBcX1NCXy5BUjA3 ICovDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChQUjA3LCAw LCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg UmV0dXJuICheXlBSMDcpIC8qIFxfU0JfLlBSMDcgKi8NCiAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICBNZXRob2QgKEFSMDgsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwOCkgLyogXF9TQl8uQVIw OCAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoUFIwOCwg MCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg IFJldHVybiAoXl5QUjA4KSAvKiBcX1NCXy5QUjA4ICovDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgTWV0aG9kIChBUjA5LCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICheXkFSMDkpIC8qIFxfU0JfLkFS MDkgKi8NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKFBSMDks IDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKF5eUFIwOSkgLyogXF9TQl8uUFIwOSAqLw0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgIE1ldGhvZCAoQVIwQSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoXl5BUjBBKSAvKiBcX1NCXy5B UjBBICovDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChQUjBB LCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgUmV0dXJuICheXlBSMEEpIC8qIFxfU0JfLlBSMEEgKi8NCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICBNZXRob2QgKEFSMEIsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKF5eQVIwQikgLyogXF9TQl8u QVIwQiAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoUFIw QiwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoXl5QUjBCKSAvKiBcX1NCXy5QUjBCICovDQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZXZpY2UgKE1DSEMpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MNCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChQRUcwKQ0KICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDApICAvLyBfQURSOiBBZGRyZXNz DQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BS VzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICBJZiAoT1NEVyAoKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjksIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQog ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2 OSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMw0KICAgICAgICAgICAgICAgICAg ICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBD SSBSb3V0aW5nIFRhYmxlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJ ZiAoUElDTSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChBUjAyICgpKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQUjAyICgpKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgRGV2aWNlIChQRUcxKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIE5hbWUgKF9BRFIsIDB4MDAwMTAwMDEpICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAg ICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVz b3VyY2VzIGZvciBXYWtlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJ ZiAoT1NEVyAoKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjksIA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDMNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2OSwgDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwMw0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BSVCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRh YmxlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkNCiAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjBB ICgpKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChQUjBBICgpKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgRGV2aWNlIChQRUcyKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgKF9B RFIsIDB4MDAwMTAwMDIpICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICAgICAgTWV0aG9k IChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBX YWtlDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoT1NEVyAoKSkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQ YWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4NjksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2OSwgDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMw0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BS VCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlQ6IFBDSSBSb3V0aW5nIFRhYmxlDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoUElDTSkNCiAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChBUjBCICgpKQ0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQUjBCICgpKQ0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChJ R1BVKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAwMjAw MDApICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChH RlhILCBQQ0lfQ29uZmlnLCBaZXJvLCAweDQwKQ0KICAgICAgICAgICAgICAgIEZpZWxkIChHRlhI LCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgVklEMCwgICAxNiwgDQogICAgICAgICAgICAgICAgICAgIERJRDAsICAgMTYN CiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5v dFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJRFNNIChBcmcwLCBBcmcxLCBBcmcyLCBBcmcz KQ0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMDog UG93ZXIgU3RhdGUgMA0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYg KE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IExWTUUgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBCVDE5ID0gT25lDQogICAgICAg ICAgICAgICAgICAgICAgICBBRFNQID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgTlBL QSA9IE9uZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIg U3RhdGUgMw0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKE9TRFcg KCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIE5QS0Eg PSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBBRFNQID0gT25lDQogICAgICAgICAgICAg ICAgICAgICAgICBCVDE5ID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgTFZNRSA9IE9u ZQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICBEZXZpY2UgKElQVTApDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgTmFtZSAoX0FEUiwgMHgwMDA1MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChJTUVJKQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNjAwMDApICAvLyBfQURSOiBBZGRyZXNzDQogICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgIERldmljZSAoUlAwMSkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUMwMDAwKSAgLy8gX0FEUjogQWRkcmVzcw0K ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6 IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDY5LCANCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAweDAzDQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4Njks IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kg Um91dGluZyBUYWJsZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYg KFBJQ00pDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoQVIwNCAoKSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoUFIwNCAoKSkNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lm aWMgTWV0aG9kDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gVG9VVUlEICgiYTBiNWI3YzYtMTMxOC00NDFjLWIwYzktZmU2OTVlYWY5NDliIikgLyog VW5rbm93biBVVUlEICovKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWctbHRyb3ZyIiwgDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIDB4MDQsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAu Li4uLi4uLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgRFRHUCAoQXJnMCwgQXJn MSwgQXJnMiwgQXJnMywgUmVmT2YgKExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgIERldmljZSAoUlAxNykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBO YW1lIChfQURSLCAweDAwMUIwMDAwKSAgLy8gX0FEUjogQWRkcmVzcw0KICAgICAgICAgICAgICAg IE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNl cyBmb3IgV2FrZQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKE9T RFcgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDY5LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAzDQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NjksIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDMNCiAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRo b2QgKF9QUlQsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJUOiBQQ0kgUm91dGluZyBUYWJsZQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKFBJQ00pDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQVIwNCAoKSkN CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFIw NCAoKSkNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00s IDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kDQogICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gVG9VVUlEICgi YTBiNWI3YzYtMTMxOC00NDFjLWIwYzktZmU2OTVlYWY5NDliIikgLyogVW5rbm93biBVVUlEICov KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJyZWctbHRyb3ZyIiwgDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAsIDB4MDQs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiYXBwbGUtY29wcm9jZXNzb3ItdmVyc2lvbiIsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAwLCAw eDAyLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFJl Zk9mIChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDApDQog ICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZXZpY2Ug KExQQ0IpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFG MDAwMCkgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAgICAgICAgICBTY29wZSAoXF9TQikNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENJ MC5MUENCLkxQQzEsIFBDSV9Db25maWcsIDB4NDAsIDB4QzApDQogICAgICAgICAgICAgICAgICAg IEZpZWxkIChQQ0kwLkxQQ0IuTFBDMSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjApLCAN CiAgICAgICAgICAgICAgICAgICAgICAgIFBBUkMsICAgOCwgDQogICAgICAgICAgICAgICAgICAg ICAgICBQQlJDLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgUENSQywgICA4LCANCiAg ICAgICAgICAgICAgICAgICAgICAgIFBEUkMsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4MjgpLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFBFUkMsICAgOCwgDQog ICAgICAgICAgICAgICAgICAgICAgICBQRlJDLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAg ICAgUEdSQywgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIFBIUkMsICAgOA0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMTktBKQ0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBF aXNhSWQgKCJQTlAwQzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9I SUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCBPbmUp ICAvLyBfVUlEOiBVbmlxdWUgSUQNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJ UywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUgRGV2aWNlDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFSQyB8PSAweDgwDQog ICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUg KF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNl dHRpbmdzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgezEsMyw0LDUsNiw3LDEwLDEyLDE0LDE1fQ0KICAgICAgICAgICAgICAg ICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2Vy aWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExBLCBS ZXNvdXJjZVRlbXBsYXRlICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwg KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRG aWVsZCAoUlRMQSwgT25lLCBJUlEwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAg PSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBBUkMg JiAweDBGKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEEpIC8qIFxf U0JfLkxOS0EuX0NSUy5SVExBICovDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6 IFNldCBSZXNvdXJjZSBTZXR0aW5ncw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWww KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgUEFSQyA9IExvY2FsMA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBf U1RBOiBTdGF0dXMNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKFBBUkMgJiAweDgwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxz ZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuICgweDBCKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgIERldmljZSAoTE5LQikNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJ bnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAg ICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0RJ UzogRGlzYWJsZSBEZXZpY2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQQlJDIHw9IDB4ODANCiAgICAgICAgICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAo KSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVM b3csIFNoYXJlZCwgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MSwzLDQsNSw2 LDcsMTEsMTIsMTQsMTV9DQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVu dCBSZXNvdXJjZSBTZXR0aW5ncw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5hbWUgKFJUTEIsIFJlc291cmNlVGVtcGxhdGUgKCkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChSVExCLCBPbmUsIElSUTApDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IFplcm8NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJUlEwID0gKE9uZSA8PCAoUEJSQyAmIDB4MEYpKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJldHVybiAoUlRMQikgLyogXF9TQl8uTE5LQi5fQ1JTLlJUTEIgKi8NCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzDQog ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3Jl YXRlV29yZEZpZWxkIChBcmcwLCBPbmUsIElSUTApDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRmluZFNldFJpZ2h0Qml0IChJUlEwLCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTG9jYWwwLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQlJDID0gTG9jYWww DQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEJSQyAmIDB4 ODApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmV0dXJuICgweDA5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMTktD KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChf SElELCBFaXNhSWQgKCJQTlAwQzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykg IC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlE LCAweDAzKSAgLy8gX1VJRDogVW5pcXVlIElEDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9ESVMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQ0KICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDUkMgfD0g MHg4MA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAg ICBOYW1lIChfUFJTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNv dXJjZSBTZXR0aW5ncw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsxLDMsNCw1LDYsNywxMCwxMiwxNCwxNX0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMs IDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAg ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo UlRMQywgUmVzb3VyY2VUZW1wbGF0ZSAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBT aGFyZWQsICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVh dGVXb3JkRmllbGQgKFJUTEMsIE9uZSwgSVJRMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJUlEwID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSAoT25lIDw8 IChQQ1JDICYgMHgwRikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExD KSAvKiBcX1NCXy5MTktDLl9DUlMuUlRMQyAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAv LyBfU1JTOiBTZXQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9uZSwg SVJRMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAs IExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBDUkMgPSBMb2NhbDANCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVk KSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKChQQ1JDICYgMHg4MCkpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKExOS0QpDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAv KiBQQ0kgSW50ZXJydXB0IExpbmsgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAg ICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDQpICAvLyBfVUlEOiBVbmlxdWUg SUQNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkg IC8vIF9ESVM6IERpc2FibGUgRGV2aWNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUERSQyB8PSAweDgwDQogICAgICAgICAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVt cGxhdGUgKCkgIC8vIF9QUlM6IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwg QWN0aXZlTG93LCBTaGFyZWQsICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezEs Myw0LDUsNiw3LDExLDEyLDE0LDE1fQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6 IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChSVExELCBSZXNvdXJjZVRlbXBsYXRlICgp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAge30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRCwgT25lLCBJ UlEwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSBaZXJvDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgSVJRMCA9IChPbmUgPDwgKFBEUkMgJiAweDBGKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFJUTEQpIC8qIFxfU0JfLkxOS0QuX0NSUy5SVExE ICovDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NSUywgMSwgU2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0 aW5ncw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENyZWF0ZVdvcmRGaWVsZCAoQXJnMCwgT25lLCBJUlEwKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZpbmRTZXRSaWdodEJpdCAoSVJRMCwgTG9jYWwwKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMC0tDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUERSQyA9 IExvY2FsMA0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAg ICAgICBNZXRob2QgKF9TVEEsIDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMNCiAgICAg ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBE UkMgJiAweDgwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwOSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eDBCKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIERldmlj ZSAoTE5LRSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg TmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZp Y2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX1VJRCwgMHgwNSkgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChfRElTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UN CiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ RVJDIHw9IDB4ODANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1BSUywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX1BSUzogUG9zc2li bGUgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7MSwzLDQsNSw2LDcsMTAsMTIsMTQsMTV9DQog ICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5n cw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKFJUTEUsIFJlc291cmNlVGVtcGxhdGUgKCkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2 ZUxvdywgU2hhcmVkLCApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlV29yZEZpZWxkIChSVExFLCBPbmUsIElSUTApDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSVJRMCA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEwID0g KE9uZSA8PCAoUEVSQyAmIDB4MEYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoUlRMRSkgLyogXF9TQl8uTE5LRS5fQ1JTLlJUTEUgKi8NCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxp emVkKSAgLy8gX1NSUzogU2V0IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcw LCBPbmUsIElSUTApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0 IChJUlEwLCBMb2NhbDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQRVJDID0gTG9jYWwwDQogICAgICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2Vy aWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoUEVSQyAmIDB4ODApKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJu ICgweDA5KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgICAgICAgICAgRGV2aWNlIChMTktGKQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQTlAw QzBGIikgLyogUENJIEludGVycnVwdCBMaW5rIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJl IElEDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfVUlELCAweDA2KSAgLy8gX1VJRDog VW5pcXVlIElEDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9ESVMsIDAsIFNlcmlh bGl6ZWQpICAvLyBfRElTOiBEaXNhYmxlIERldmljZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBGUkMgfD0gMHg4MA0KICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfUFJTLCBSZXNv dXJjZVRlbXBsYXRlICgpICAvLyBfUFJTOiBQb3NzaWJsZSBSZXNvdXJjZSBTZXR0aW5ncw0KICAg ICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElSUSAo TGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsxLDMsNCw1LDYsNywxMSwxMiwxNCwxNX0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0p DQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAv LyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoUlRMRiwgUmVzb3VyY2VUZW1w bGF0ZSAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKFJUTEYs IE9uZSwgSVJRMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEwID0gWmVybw0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElSUTAgPSAoT25lIDw8IChQRlJDICYgMHgwRikpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSVExGKSAvKiBcX1NCXy5MTktGLl9D UlMuUlRMRiAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9TUlMsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JTOiBTZXQgUmVzb3Vy Y2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDcmVhdGVXb3JkRmllbGQgKEFyZzAsIE9uZSwgSVJRMCkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGaW5kU2V0UmlnaHRCaXQgKElSUTAsIExvY2FsMCkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBGUkMgPSBMb2NhbDANCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz DQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChQRlJDICYgMHg4MCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MDkpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgwQikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAg ICBEZXZpY2UgKExOS0cpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEYiKSAvKiBQQ0kgSW50ZXJydXB0IExp bmsgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9VSUQsIDB4MDcpICAvLyBfVUlEOiBVbmlxdWUgSUQNCiAgICAgICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0RJUywgMCwgU2VyaWFsaXplZCkgIC8vIF9ESVM6IERpc2FibGUg RGV2aWNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgUEdSQyB8PSAweDgwDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9QUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9QUlM6 IFBvc3NpYmxlIFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRIChMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQs ICkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgezEsMyw0LDUsNiw3LDEwLDEyLDE0 LDE1fQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgU2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2Ug U2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOYW1lIChSVExHLCBSZXNvdXJjZVRlbXBsYXRlICgpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEgKExldmVs LCBBY3RpdmVMb3csIFNoYXJlZCwgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge30NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIENyZWF0ZVdvcmRGaWVsZCAoUlRMRywgT25lLCBJUlEwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIElSUTAgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg SVJRMCA9IChPbmUgPDwgKFBHUkMgJiAweDBGKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKFJUTEcpIC8qIFxfU0JfLkxOS0cuX0NSUy5SVExHICovDQogICAgICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NSUywgMSwg U2VyaWFsaXplZCkgIC8vIF9TUlM6IFNldCBSZXNvdXJjZSBTZXR0aW5ncw0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZVdvcmRGaWVs ZCAoQXJnMCwgT25lLCBJUlEwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmRTZXRS aWdodEJpdCAoSVJRMCwgTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MC0tDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEdSQyA9IExvY2FsMA0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEs IDAsIFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMNCiAgICAgICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKFBHUkMgJiAweDgwKSkNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwOSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIERldmljZSAoTE5LSCkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlk ICgiUE5QMEMwRiIpIC8qIFBDSSBJbnRlcnJ1cHQgTGluayBEZXZpY2UgKi8pICAvLyBfSElEOiBI YXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwOCkgIC8v IF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRElTLCAw LCBTZXJpYWxpemVkKSAgLy8gX0RJUzogRGlzYWJsZSBEZXZpY2UNCiAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFJDIHw9IDB4ODANCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BS UywgUmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX1BSUzogUG9zc2libGUgUmVzb3VyY2UgU2V0dGlu Z3MNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJUlEgKExldmVsLCBBY3RpdmVMb3csIFNoYXJlZCwgKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7MSwzLDQsNSw2LDcsMTEsMTIsMTQsMTV9DQogICAgICAgICAgICAgICAgICAg ICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAwLCBTZXJpYWxp emVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0KICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKFJUTEgsIFJlc291 cmNlVGVtcGxhdGUgKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElSUSAoTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCApDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxk IChSVExILCBPbmUsIElSUTApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSVJRMCA9IFpl cm8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUlEwID0gKE9uZSA8PCAoUEhSQyAmIDB4 MEYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlRMSCkgLyogXF9TQl8u TE5LSC5fQ1JTLlJUTEggKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfU1JTLCAxLCBTZXJpYWxpemVkKSAgLy8gX1NSUzogU2V0 IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgQ3JlYXRlV29yZEZpZWxkIChBcmcwLCBPbmUsIElSUTApDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgRmluZFNldFJpZ2h0Qml0IChJUlEwLCBMb2NhbDApDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQSFJDID0gTG9jYWwwDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgU2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoUEhSQyAmIDB4ODApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA5KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChMUEMwLCBQQ0lfQ29uZmln LCAweDQwLCAweEMwKQ0KICAgICAgICAgICAgICAgIEZpZWxkIChMUEMwLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4NDApLCANCiAgICAgICAgICAgICAgICAgICAgSU9EMCwgICA4LCANCiAgICAgICAgICAg ICAgICAgICAgSU9EMSwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweEIwKSwg DQogICAgICAgICAgICAgICAgICAgIFJBRU4sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMTMNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKERN QUMpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBF aXNhSWQgKCJQTlAwMjAwIikgLyogUEMtY2xhc3MgRE1BIENvbnRyb2xsZXIgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRl bXBsYXRlICgpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA4MSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkzLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDkz LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDBELCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQzAsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgRE1BIChDb21wYXRpYmlsaXR5LCBOb3RCdXNNYXN0ZXIsIFRyYW5z ZmVyOF8xNiwgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHs0fQ0KICAgICAgICAgICAg ICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERldmljZSAo RldIRCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQs IEVpc2FJZCAoIklOVDA4MDAiKSAvKiBJbnRlbCA4MjgwMiBGaXJtd2FyZSBIdWIgRGV2aWNlICov KSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0NSUywg UmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0K ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZp eGVkIChSZWFkT25seSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGMDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEw MDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICApDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgRGV2aWNlIChIUEVUKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDEwMyIpIC8qIEhQRVQgU3lzdGVtIFRp bWVyICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0NJRCwgRWlzYUlkICgiUE5QMEMwMSIpIC8qIFN5c3RlbSBCb2FyZCAqLykgIC8vIF9DSUQ6IENv bXBhdGlibGUgSUQNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoQlVGMCwgUmVzb3VyY2VUZW1w bGF0ZSAoKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJ UlFOb0ZsYWdzICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezB9DQogICAgICAgICAg ICAgICAgICAgICAgICBJUlFOb0ZsYWdzICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ezh9DQogICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRUQwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwLCAgICAgICAgIC8v IEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAg ICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9TVEEsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKE9TWVMgPj0gMHgw N0QxKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKDB4MEYpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBCKQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6 ZWQpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGMCkgLyogXF9TQl8uUENJ MC5MUENCLkhQRVQuQlVGMCAqLw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChJUElDKQ0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMDAwMCIpIC8qIDgy NTktY29tcGF0aWJsZSBQcm9ncmFtbWFibGUgSW50ZXJydXB0IENvbnRyb2xsZXIgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJj ZVRlbXBsYXRlICgpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMjAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAyNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAyNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDI4LCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDI4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMkMsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAzMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDM0LCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MDM0LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMzgsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDAzQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDAzQywgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEEwLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEEwLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQTQsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQTQsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDBBOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDBBOCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEFDLCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEFDLCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjAsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQjAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDBCNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDBCNCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJTyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEI4LCAgICAg ICAgICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgw MEI4LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQkMsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwQkMsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDREMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAg ICBJUlFOb0ZsYWdzICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezJ9DQogICAgICAg ICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2 aWNlIChNQVRIKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0hJRCwgRWlzYUlkICgiUE5QMEMwNCIpIC8qIHg4Ny1jb21wYXRpYmxlIEZsb2F0aW5nIFBvaW50 IFByb2Nlc3NpbmcgVW5pdCAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAgICAg ICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9DUlM6IEN1cnJlbnQg UmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDBG MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDBGMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJUlFOb0ZsYWdz ICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgezEzfQ0KICAgICAgICAgICAgICAgICAg ICB9KQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERldmljZSAoTERSQykN CiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJ ZCAoIlBOUDBDMDIiKSAvKiBQTlAgTW90aGVyYm9hcmQgUmVzb3VyY2VzICovKSAgLy8gX0hJRDog SGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMikgIC8vIF9V SUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRl bXBsYXRlICgpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMkUsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMkUsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA0RSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA0RSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgICAgICAgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYxLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDYx LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNjMsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA2NSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA2NSwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3LCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDY3 LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAxLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwODAsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MDA5MiwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEIyLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMEIy LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAyLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmlt dW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYsICAgICAgICAgICAgIC8vIFJh bmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAgICAg ICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAg ICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MTgwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTgwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRiwgICAgICAgICAgICAgICAvLyBMZW5ndGgN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgICAgICBJ TyAoRGVjb2RlMTYsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAwLCAgICAgICAg ICAgICAvLyBSYW5nZSBNaW5pbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwODAw LCAgICAgICAgICAgICAvLyBSYW5nZSBNYXhpbXVtDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBBbGlnbm1lbnQNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDgwLCAgICAgICAgICAgICAgIC8vIExlbmd0aA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICBEZXZpY2UgKEFSVEMpDQogICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICBOYW1lIChfSElELCAiQUNQSTAwMEUiIC8qIFRpbWUgYW5kIEFsYXJtIERl dmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAgICAgICAgICAgIE1ldGhv ZCAoX0dDUCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9HQ1A6IEdldCBDYXBhYmlsaXRpZXMNCiAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDA1 KQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChf R1JULCAwLCBTZXJpYWxpemVkKSAgLy8gX0dSVDogR2V0IFJlYWwgVGltZQ0KICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUZGLCBCdWZmZXIgKDB4 MTApe30pDQogICAgICAgICAgICAgICAgICAgICAgICBCVUZGIFtaZXJvXSA9IF5eRUMuWVJMQiAv KiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5ZUkxCICovDQogICAgICAgICAgICAgICAgICAgICAgICBC VUZGIFtPbmVdID0gXl5FQy5ZUk1CIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLllSTUIgKi8NCiAg ICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MDJdID0gXl5FQy5NTlRIIC8qIFxfU0JfLlBD STAuTFBDQi5FQ19fLk1OVEggKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MDNd ID0gXl5FQy5EQVlCIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLkRBWUIgKi8NCiAgICAgICAgICAg ICAgICAgICAgICAgIEJVRkYgWzB4MDRdID0gXl5FQy5IT1VSIC8qIFxfU0JfLlBDSTAuTFBDQi5F Q19fLkhPVVIgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MDVdID0gXl5FQy5N SU5UIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1JTlQgKi8NCiAgICAgICAgICAgICAgICAgICAg ICAgIEJVRkYgWzB4MDZdID0gXl5FQy5TRUNEIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLlNFQ0Qg Ki8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MDddID0gXl5FQy5QQUQwIC8qIFxf U0JfLlBDSTAuTFBDQi5FQ19fLlBBRDAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYg WzB4MDhdID0gXl5FQy5NU0xCIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLk1TTEIgKi8NCiAgICAg ICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MDldID0gXl5FQy5NU01CIC8qIFxfU0JfLlBDSTAu TFBDQi5FQ19fLk1TTUIgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MEFdID0g Xl5FQy5UWkxCIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLlRaTEIgKi8NCiAgICAgICAgICAgICAg ICAgICAgICAgIEJVRkYgWzB4MEJdID0gXl5FQy5UWk1CIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19f LlRaTUIgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MENdID0gXl5FQy5EQVlM IC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLkRBWUwgKi8NCiAgICAgICAgICAgICAgICAgICAgICAg IEJVRkYgWzB4MERdID0gXl5FQy5QQUQxIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLlBBRDEgKi8N CiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4MEVdID0gXl5FQy5QQUQyIC8qIFxfU0Jf LlBDSTAuTFBDQi5FQ19fLlBBRDIgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIEJVRkYgWzB4 MEZdID0gXl5FQy5QQUQzIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLlBBRDMgKi8NCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoQlVGRikgLyogXF9TQl8uUENJMC5MUENCLkFSVEMuX0dS VC5CVUZGICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9TUlQsIDEsIFNlcmlhbGl6ZWQpICAvLyBfU1JUOiBTZXQgUmVhbCBUaW1lDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eRUMuWVJMQiA9IERl cmVmT2YgKEFyZzAgW1plcm9dKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXl5FQy5ZUk1CID0g RGVyZWZPZiAoQXJnMCBbT25lXSkNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eRUMuTU5USCA9 IERlcmVmT2YgKEFyZzAgWzB4MDJdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXl5FQy5EQVlC ID0gRGVyZWZPZiAoQXJnMCBbMHgwM10pDQogICAgICAgICAgICAgICAgICAgICAgICBeXkVDLkhP VVIgPSBEZXJlZk9mIChBcmcwIFsweDA0XSkNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eRUMu TUlOVCA9IERlcmVmT2YgKEFyZzAgWzB4MDVdKQ0KICAgICAgICAgICAgICAgICAgICAgICAgXl5F Qy5TRUNEID0gRGVyZWZPZiAoQXJnMCBbMHgwNl0pDQogICAgICAgICAgICAgICAgICAgICAgICBe XkVDLk1TTEIgPSBEZXJlZk9mIChBcmcwIFsweDA4XSkNCiAgICAgICAgICAgICAgICAgICAgICAg IF5eRUMuTVNNQiA9IERlcmVmT2YgKEFyZzAgWzB4MDldKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgXl5FQy5UWkxCID0gRGVyZWZPZiAoQXJnMCBbMHgwQV0pDQogICAgICAgICAgICAgICAgICAg ICAgICBeXkVDLlRaTUIgPSBEZXJlZk9mIChBcmcwIFsweDBCXSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIF5eRUMuREFZTCA9IERlcmVmT2YgKEFyZzAgWzB4MENdKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RWLCAyLCBTZXJpYWxpemVkKSAgLy8gX1NUVjogU2V0IFRp bWVyIFZhbHVlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IF5eRUMuQUxSMCA9IChBcmcxICYgMHhGRikNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eRUMu QUxSMSA9ICgoQXJnMSA+PiAweDA4KSAmIDB4RkYpDQogICAgICAgICAgICAgICAgICAgICAgICBe XkVDLkFMUjIgPSAoKEFyZzEgPj4gMHgxMCkgJiAweEZGKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgXl5FQy5BTFIzID0gKChBcmcxID4+IDB4MTgpICYgMHhGRikNCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX0NXUywgMSwgU2VyaWFsaXplZCkgIC8vIF9DV1M6IENsZWFyIFdh a2UgQWxhcm0gU3RhdHVzDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIF5eRUMuVE1SRiA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgICAgIF5eRUMuVE1S VyA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIERldmlj ZSAoVElNUikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9I SUQsIEVpc2FJZCAoIlBOUDAxMDAiKSAvKiBQQy1jbGFzcyBTeXN0ZW0gVGltZXIgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJj ZVRlbXBsYXRlICgpICAvLyBfQ1JTOiBDdXJyZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8vIFJhbmdlIE1p bmltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwNDAsICAgICAgICAgICAgIC8v IFJhbmdlIE1heGltdW0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAgICAgICAg ICAgICAgIC8vIEFsaWdubWVudA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDQsICAg ICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDB4MDA1MCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNCwgICAgICAgICAgICAgICAvLyBMZW5n dGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgICAgIH0p DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2aWNlIChTTUMpDQogICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJB UFAwMDAxIikpICAvLyBfSElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1l IChfQ0lELCAic21jLWh1cm9ucml2ZXIiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0KICAgICAg ICAgICAgICAgICAgICBOYW1lIChfU1RBLCAweDBCKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKEJVRjAsIFJlc291cmNlVGVtcGxhdGUgKCkNCiAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERlY29kZTE2LA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMCwgICAgICAgICAgICAgLy8gUmFuZ2UgTWluaW11 bQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMwMCwgICAgICAgICAgICAgLy8gUmFu Z2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAg ICAgLy8gQWxpZ25tZW50DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgyMCwgICAgICAg ICAgICAgICAvLyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApDQogICAgICAg ICAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVu Z3RoDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgX1kwRikNCiAgICAgICAgICAgICAgICAg ICAgICAgIElSUU5vRmxhZ3MgKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Nn0NCiAg ICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0KICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxk IChCVUYwLCBcX1NCLlBDSTAuTFBDQi5TTUMuX1kwRi5fQkFTLCBTQkEwKSAgLy8gX0JBUzogQmFz ZSBBZGRyZXNzDQogICAgICAgICAgICAgICAgICAgICAgICBTQkEwID0gU01DQiAvKiBcU01DQiAq Lw0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NCXy5QQ0kwLkxQ Q0IuU01DXy5CVUYwICovDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKEVDKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwOSIpIC8qIEVtYmVkZGVk IENvbnRyb2xsZXIgRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAg ICAgICAgICAgTmFtZSAoX1VJRCwgWmVybykgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAg ICAgICAgICAgICBOYW1lIChfQ1JTLCBSZXNvdXJjZVRlbXBsYXRlICgpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIElPIChEZWNvZGUxNiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1pbmltdW0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAweDAwNjIsICAgICAgICAgICAgIC8vIFJhbmdlIE1heGltdW0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAweDAwLCAgICAgICAgICAgICAgIC8vIEFsaWdubWVudA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDEsICAgICAgICAgICAgICAgLy8gTGVuZ3RoDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgSU8gKERl Y29kZTE2LA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NiwgICAgICAgICAgICAg Ly8gUmFuZ2UgTWluaW11bQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDA2NiwgICAg ICAgICAgICAgLy8gUmFuZ2UgTWF4aW11bQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4 MDAsICAgICAgICAgICAgICAgLy8gQWxpZ25tZW50DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgwMSwgICAgICAgICAgICAgICAvLyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICApDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIE5hbWUg KF9HUEUsIDB4NkUpICAvLyBfR1BFOiBHZW5lcmFsIFB1cnBvc2UgRXZlbnRzDQogICAgICAgICAg ICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2Vy IFJlc291cmNlcyBmb3IgV2FrZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoT1NEVyAoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDZG LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2RiwgDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoRUNPSywgWmVybykNCiAgICAgICAgICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChFQ09SLCBFbWJlZGRlZENvbnRyb2wsIFplcm8sIDB4RkYp DQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChFQ09SLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNl cnZlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBFQ1ZT LCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAyKSwgDQogICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDMpLCANCiAgICAgICAgICAgICAgICAgICAgICAg IEczSFQsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgTFZNRSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFBS U1QsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBXQkNCLCAgIDEsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgRFNMUCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHgwNSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA2KSwgDQogICAg ICAgICAgICAgICAgICAgICAgICBXS1JTLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA5KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBMRFNCLCAgIDgsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBCKSwgDQogICAgICAgICAgICAgICAgICAg ICAgICBUQlBXLCAgIDQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBDKSwg DQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MEQpLCANCiAgICAgICAgICAgICAg ICAgICAgICAgIENNRFMsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBEQVRBLCAgIDgs IA0KICAgICAgICAgICAgICAgICAgICAgICAgSU5EWCwgICA4LCANCiAgICAgICAgICAgICAgICAg ICAgICAgIEVDU1MsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBSUlNULCAgIDgsIA0K ICAgICAgICAgICAgICAgICAgICAgICAgQUxCMCwgICA4LCANCiAgICAgICAgICAgICAgICAgICAg ICAgIEFMQjEsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBXVExCLCAgIDgsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgV1RNQiwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHgyMCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgU1BUUiwgICA4LCANCiAg ICAgICAgICAgICAgICAgICAgICAgIFNTVFMsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAg ICBTQURSLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgU0NNRCwgICA4LCANCiAgICAg ICAgICAgICAgICAgICAgICAgIFNCRlIsICAgMjU2LCANCiAgICAgICAgICAgICAgICAgICAgICAg IFNDTlQsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBTQUFELCAgIDgsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgU0FEMCwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNB RDEsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBTTVVYLCAgIDgsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDU0KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBQ T1IwLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgUE9SMSwgICA4LCANCiAgICAgICAg ICAgICAgICAgICAgICAgIFBPUjIsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBQT1Iz LCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgUFdSUCwgICA4LCANCiAgICAgICAgICAg ICAgICAgICAgICAgIFBXUVAsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBQU1JQLCAg IDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgUFNRUCwgICA4LCANCiAgICAgICAgICAgICAg ICAgICAgICAgIE9mZnNldCAoMHg2MCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgRUxTVywg ICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIEVBQ1AsICAgMSwgDQogICAgICAgICAgICAg ICAgICAgICAgICBFQ0RJLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRU5NSSwgICAx LCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2MSksIA0KICAgICAgICAgICAg ICAgICAgICAgICAgRU1IUCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFBTT0MsICAg MSwgDQogICAgICAgICAgICAgICAgICAgICAgICBQQ0lSLCAgIDEsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgVEJQUywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2 MiksIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDYzKSwgDQogICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4NjQpLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNX TE8sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV0xDLCAgIDEsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgU1dBSSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNXQVIs ICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV0NJLCAgIDEsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgU1dDRSwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNXTUksICAg MSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV01SLCAgIDEsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgU1dQQiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNXR1AsICAgMSwg DQogICAgICAgICAgICAgICAgICAgICAgICBTV1BNLCAgIDEsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgU1dXVCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNXTEIsICAgMSwgDQog ICAgICAgICAgICAgICAgICAgICAgICBTV1RQLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAg ICAgU1dXTCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2NiksIA0K ICAgICAgICAgICAgICAgICAgICAgICAgU1dVQywgICAxLCANCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV0JULCAgIDEsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgU1dERiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAg IFNXU0QsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV09MLCAgIDEsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgU1dFUCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNX VEIsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBTV0NMLCAgIDEsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgT2Zmc2V0ICgweDY4KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBF V0xPLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdMQywgICAxLCANCiAgICAgICAg ICAgICAgICAgICAgICAgIEVXQUksICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBFV0FS LCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdDSSwgICAxLCANCiAgICAgICAgICAg ICAgICAgICAgICAgIEVXQ0UsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBFV01JLCAg IDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdNUiwgICAxLCANCiAgICAgICAgICAgICAg ICAgICAgICAgIEVXUEIsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBFV0dQLCAgIDEs IA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdQTSwgICAxLCANCiAgICAgICAgICAgICAgICAg ICAgICAgIEVOV1QsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBFV0xCLCAgIDEsIA0K ICAgICAgICAgICAgICAgICAgICAgICAgRVdESywgICAxLCANCiAgICAgICAgICAgICAgICAgICAg ICAgIEVXTE4sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NkEpLCAN CiAgICAgICAgICAgICAgICAgICAgICAgIEVXVUMsICAgMSwgDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdCVCwgICAxLCANCiAg ICAgICAgICAgICAgICAgICAgICAgIEVXREYsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAg ICBFV1NELCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdPTCwgICAxLCANCiAgICAg ICAgICAgICAgICAgICAgICAgIEVXRVAsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBF V1RCLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgRVdDTCwgICAxLCANCiAgICAgICAg ICAgICAgICAgICAgICAgIE9mZnNldCAoMHg2QyksIA0KICAgICAgICAgICAgICAgICAgICAgICAg TFdMTywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXTEMsICAgMSwgDQogICAgICAg ICAgICAgICAgICAgICAgICBMV0FJLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdB UiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXQ0ksICAgMSwgDQogICAgICAgICAg ICAgICAgICAgICAgICBMV0NFLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdNSSwg ICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXTVIsICAgMSwgDQogICAgICAgICAgICAg ICAgICAgICAgICBMV1BCLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdHUCwgICAx LCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXUE0sICAgMSwgDQogICAgICAgICAgICAgICAg ICAgICAgICBMV1dULCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdMQiwgICAxLCAN CiAgICAgICAgICAgICAgICAgICAgICAgIExXVFAsICAgMSwgDQogICAgICAgICAgICAgICAgICAg ICAgICBMV0xOLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDZFKSwg DQogICAgICAgICAgICAgICAgICAgICAgICBMV1VDLCAgIDEsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXQlQsICAgMSwgDQog ICAgICAgICAgICAgICAgICAgICAgICBMV0RGLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAg ICAgTFdTRCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIExXT0wsICAgMSwgDQogICAg ICAgICAgICAgICAgICAgICAgICBMV0VQLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAg TFdUQiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg3MCksIA0KICAg ICAgICAgICAgICAgICAgICAgICAgTFdTUiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAg IExXUE4sICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBMV0NMLCAgIDEsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDgsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNl dCAoMHg3QyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgQUxSQSwgICAxLCANCiAgICAgICAg ICAgICAgICAgICAgICAgIEFMUkQsICAgMSwgDQogICAgICAgICAgICAgICAgICAgICAgICBHU1JU LCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgUlRNUywgICAxLCANCiAgICAgICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg3RCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgVE1S RiwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFRNUlcsICAgMSwgDQogICAgICAgICAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4ODApLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFlS TEIsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBZUk1CLCAgIDgsIA0KICAgICAgICAg ICAgICAgICAgICAgICAgTU5USCwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIERBWUIs ICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBIT1VSLCAgIDgsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgTUlOVCwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNFQ0QsICAg OCwgDQogICAgICAgICAgICAgICAgICAgICAgICBQQUQwLCAgIDgsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgTVNMQiwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIE1TTUIsICAgOCwg DQogICAgICAgICAgICAgICAgICAgICAgICBUWkxCLCAgIDgsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgVFpNQiwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIERBWUwsICAgOCwgDQog ICAgICAgICAgICAgICAgICAgICAgICBQQUQxLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAg ICAgUEFEMiwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIFBBRDMsICAgOCwgDQogICAg ICAgICAgICAgICAgICAgICAgICBBTFIwLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAg QUxSMSwgICA4LCANCiAgICAgICAgICAgICAgICAgICAgICAgIEFMUjIsICAgOCwgDQogICAgICAg ICAgICAgICAgICAgICAgICBBTFIzLCAgIDgNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIEZpZWxkIChFQ09SLCBCeXRlQWNjLCBMb2NrLCBQcmVzZXJ2ZSkNCiAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAz KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBHM0FELCAgIDEsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgQkxPRCwgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFM0V0UsICAgMSwg DQogICAgICAgICAgICAgICAgICAgICAgICBBUFdDLCAgIDEsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgQlRQQywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgIFNPQ1IsICAgMSwgDQog ICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCANCiAgICAgICAgICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgwQSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgU0RQVywgICAx LCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAsICAgMSwgDQogICAgICAgICAgICAgICAg ICAgICAgICBCVERXLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDBC KSwgDQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NkMpLCANCiAgICAgICAgICAg ICAgICAgICAgICAgIExXRTAsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBMV0UxLCAg IDgsIA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdFMiwgICA4LCANCiAgICAgICAgICAgICAg ICAgICAgICAgIExXRTMsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBMV0U0LCAgIDgs IA0KICAgICAgICAgICAgICAgICAgICAgICAgTFdFNSwgICA4LCANCiAgICAgICAgICAgICAgICAg ICAgICAgIExXRTYsICAgOCwgDQogICAgICAgICAgICAgICAgICAgICAgICBMV0U3LCAgIDgNCiAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChFQ09SLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MjQpLCANCiAgICAgICAgICAgICAgICAgICAgICAg IFNCRFcsICAgMTYsIA0KICAgICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ2KSwgDQog ICAgICAgICAgICAgICAgICAgICAgICBTQURXLCAgIDE2DQogICAgICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFJTVEIsIDIsIFNlcmlhbGl6ZWQpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IEFyZzEN CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMCA8PCAweDA1KQ0KICAgICAg ICAgICAgICAgICAgICAgICAgUlJTVCA9IExvY2FsMA0KICAgICAgICAgICAgICAgICAgICAgICAg TG9jYWwxID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChSUlNUID09IExv Y2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKChMb2NhbDEgPiAweDY0KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IE9uZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBCcmVhaw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSsrDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUlJTVCkgLyogXF9TQl8uUENJMC5MUENC LkVDX18uUlJTVCAqLw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAg ICAgTWV0aG9kIChXQUtFLCAwLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoRUNPSykNCiAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdLUlMpIC8qIFxfU0Jf LlBDSTAuTFBDQi5FQ19fLldLUlMgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKFNFVFAsIDMsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQV1JQID0gQXJnMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcxID09IE9uZSkpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQV1FQ ID0gQXJnMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAgPT0gT25lKSkN CiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKEFyZzEgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQU1JQID0gQXJnMg0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlSWYgKChBcmcxID09 IE9uZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQU1FQID0gQXJnMg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoUlFPUCwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKEFyZzAgJiAw eEZGKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUE9SMCA9IExvY2FsMA0KICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwID4+IDB4MDgpICYgMHhGRikNCiAgICAgICAgICAg ICAgICAgICAgICAgIFBPUjEgPSBMb2NhbDANCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2Fs MCA9ICgoQXJnMCA+PiAweDEwKSAmIDB4RkYpDQogICAgICAgICAgICAgICAgICAgICAgICBQT1Iy ID0gTG9jYWwwDQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSAoKEFyZzAgPj4gMHgx OCkgJiAweEZGKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUE9SMyA9IExvY2FsMA0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChRUk9QLCAwLCBO b3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBQT1IwIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLlBPUjAgKi8NCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBPUjEgLyogXF9TQl8uUENJMC5MUENCLkVDX18u UE9SMSAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChMb2NhbDEgPDwgMHgw OCkNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBPUjIgLyogXF9TQl8uUENJMC5M UENCLkVDX18uUE9SMiAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwICs9IChMb2Nh bDEgPDwgMHgxMCkNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFBPUjMgLyogXF9T Ql8uUENJMC5MUENCLkVDX18uUE9SMyAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ICs9IChMb2NhbDEgPDwgMHgxOCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwwKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9k IChQT1JTLCAyLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcxID09IFplcm8pKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChQV1JQKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5QV1JQICovDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVs c2VJZiAoKEFyZzEgPT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUFdRUCkgLyogXF9TQl8uUENJMC5M UENCLkVDX18uUFdRUCAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKEFyZzAg PT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKEFyZzEgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBTUlApIC8qIFxfU0Jf LlBDSTAuTFBDQi5FQ19fLlBTUlAgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZUlmICgoQXJnMSA9PSBPbmUpKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChQU1FQKSAvKiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5QU1FQICovDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYpDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgKFNNQjApDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwMSIgLyogU01CdXMg MS4wIEhvc3QgQ29udHJvbGxlciAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAgICAg ICAgICAgICAgICAgICBOYW1lIChfRUMsIDB4MjAxMCkgIC8vIF9FQ186IEVtYmVkZGVkIENvbnRy b2xsZXINCiAgICAgICAgICAgICAgICAgICAgICAgIE11dGV4IChTTVRYLCAweDAwKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIERldmljZSAoU0JTMCkN CiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBO YW1lIChfSElELCAiQUNQSTAwMDIiIC8qIFNtYXJ0IEJhdHRlcnkgU3Vic3lzdGVtICovKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChfU0JT LCBPbmUpICAvLyBfU0JTOiBTbWFydCBCYXR0ZXJ5IFN1YnN5c3RlbQ0KICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNCUEMsIDEsIE5v dFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwID0gQXJnMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdo aWxlIChMb2NhbDApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKFNQVFIgPT0gWmVybykpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoKFNTVFMgJiAweDFGKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDE4KQ0KICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKFNC UlcsIDMsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gT25lDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKCFBY3F1aXJlIChTTVRYLCAweEZGRkYpKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFRSID09IFpl cm8pKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTQURSID0gKEFyZzAgPDwgT25lKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0NNRCA9IEFyZzENCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFNQVFIgPSAweDA5DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMb2NhbDAgPSBTQlBDICgweDAzRTgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoIUxvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcyID0gU0JEVyAv KiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5TQkRXICovDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChTTVRYKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKFNCUkIsIDMsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gT25lDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwxID0gQnVmZmVyIChPbmUpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gLg0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCFBY3F1aXJlIChTTVRYLCAweEZGRkYpKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChTUFRSID09IFplcm8p KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTQURSID0gKEFyZzAgPDwgT25lKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0NNRCA9IEFyZzENCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNQVFIgPSAweDBCDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDAgPSBTQlBDICgweDAzRTgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJZiAoIUxvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmcyID0gU0JGUiAvKiBc X1NCXy5QQ0kwLkxQQ0IuRUNfXy5TQkZSICovDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlIChTTVRYKQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWww KQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTEwLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4 eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRg0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoT1NEVyAoKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFNNQjAsIDB4ODApIC8vIFN0YXR1 cyBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgIEVsc2VJZiAoKFNTVFMgJiAweDQwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoIUFjcXVpcmUgKF5TTUIwLlNNVFgsIDB4RkZG RikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSAoU0FBRCA+PiBPbmUpDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIElmICgoTG9jYWwwID09IDB4MEEpKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eQkFUMC5C Tk9UIChTQURXKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU1NUUyA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVsZWFzZSAoXlNNQjAuU01UWCkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9RMTEsIDAsIE5vdFNlcmlhbGl6ZWQpICAv LyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0weEZGDQogICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoRUMsIDB4ODMpIC8vIERldmljZS1TcGVjaWZp YyBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1ExMiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAw LTB4RkYNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChFQywgMHg4NCkgLy8gUmVzZXJ2ZWQNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6 IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgTElEUyA9IEVMU1cgLyogXF9TQl8uUENJMC5MUENCLkVDX18uRUxTVyAq Lw0KICAgICAgICAgICAgICAgICAgICAgICAgXl5eSUdQVS5DTElEID0gRUxTVyAvKiBcX1NCXy5Q Q0kwLkxQQ0IuRUNfXy5FTFNXICovDQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKExJ RDAsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1EyMSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6 IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgSWYgKEVBQ1ApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgUFdSUyA9IE9uZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBXUlMgPSBaZXJvDQogICAgICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoQURQMSwg MHg4MCkgLy8gU3RhdHVzIENoYW5nZQ0KICAgICAgICAgICAgICAgICAgICAgICAgUE5PVCAoKQ0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUTVB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRg0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFNMUEIs IDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1E4MCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9ReHg6IEVD IFF1ZXJ5LCB4eD0weDAwLTB4RkYNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgXF9QUi5DUFBDID0gQ1BMVCAvKiBcQ1BMVCAqLw0KICAgICAgICAgICAgICAg ICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxp dHkgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVMSwgMHg4 MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAg ICAgIE5vdGlmeSAoXF9QUi5DUFUyLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENo YW5nZQ0KICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTMsIDB4ODApIC8v IFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAgICAgICBO b3RpZnkgKFxfUFIuQ1BVNCwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UN CiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFU1LCAweDgwKSAvLyBQZXJm b3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQ0KICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5 IChcX1BSLkNQVTYsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlDQogICAg ICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVNywgMHg4MCkgLy8gUGVyZm9ybWFu Y2UgQ2FwYWJpbGl0eSBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9Q Ui5DUFU4LCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTksIDB4ODApIC8vIFBlcmZvcm1hbmNlIENh cGFiaWxpdHkgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BV QSwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UNCiAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFVCLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmls aXR5IENoYW5nZQ0KICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVUMsIDB4 ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfUFIuQ1BVRCwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBD aGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFVFLCAweDgwKSAv LyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQ0KICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChcX1BSLkNQVUYsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdl DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKF5eXklHUFUuVklEMCA9PSAweDgwODYpKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IElHUFMgLyogXElHUFMgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2Nh bDAgPSAoUlAwQyAtIExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUFNMID0g TG9jYWwwDQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgTm90aWZ5ICheXl5QRUcwLkVHUDAuRUdQMS5HRlgwLCAweDgxKSAvLyBJbmZvcm1hdGlv biBDaGFuZ2UNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1FDRSwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9ReHg6IEVDIFF1ZXJ5LCB4eD0weDAwLTB4RkYNCiAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUUNG LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1F4eDogRUMgUXVlcnksIHh4PTB4MDAtMHhGRg0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoIU9TRFcgKCkp DQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg Tm90aWZ5IChTTFBCLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRo b2QgKF9RRDAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUXh4OiBFQyBRdWVyeSwgeHg9MHgwMC0w eEZGDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1JFRywgMiwgTm90U2VyaWFsaXplZCkgIC8vIF9SRUc6 IFJlZ2lvbiBBdmFpbGFiaWxpdHkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKCgoQXJnMCA9PSAweDAzKSB8fCAoT1NZUyA+PSAweDA3RDYpKSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ09L ID0gQXJnMQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRUNTUyA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTElEUyA9 IEVMU1cgLyogXF9TQl8uUENJMC5MUENCLkVDX18uRUxTVyAqLw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeXl5JR1BVLkNMSUQgPSBFTFNXIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19f LkVMU1cgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdSUyA9IEVBQ1AgLyog XF9TQl8uUENJMC5MUENCLkVDX18uRUFDUCAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKEFEUDEsIDB4ODApIC8vIFN0YXR1cyBDaGFuZ2UNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBTY29wZSAoXF9T QikNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIERldmljZSAoQkFUMCkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0hJ RCwgRWlzYUlkICgiUE5QMEMwQSIpIC8qIENvbnRyb2wgTWV0aG9kIEJhdHRlcnkgKi8pICAvLyBf SElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgWmVy bykgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAoX1BD TCwgUGFja2FnZSAoMHgwMSkgIC8vIF9QQ0w6IFBvd2VyIENvbnN1bWVyIExpc3QNCiAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfU0INCiAgICAg ICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCU1NX LCAweEZGRkYpDQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChQQklGLCBQYWNrYWdlICgw eDBEKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFplcm8sIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9uZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGRkZGRiwg DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHhGQSwgDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHg2NCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwQSwgDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwQSwgDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiAiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiDQog ICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSAo UEJTVCwgUGFja2FnZSAoMHgwNCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBaZXJvLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAw eEZGRkZGRkZGLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGLCANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGDQogICAgICAgICAgICAgICAgICAg ICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJp YWxpemVkKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKF5eUENJMC5MUENCLkVDLkVDT0spDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVQlNTICgpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQlNTVyAmIE9uZSkpDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJl dHVybiAoMHgxRikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KDB4MEYpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CU1QsIDAsIE5vdFNl cmlhbGl6ZWQpICAvLyBfQlNUOiBCYXR0ZXJ5IFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQlNTVyAmIE9uZSkpDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBVQlNUICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBCU1QgW1plcm9dID0gWmVybw0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQQlNUIFtPbmVdID0gMHhGRkZGRkZGRg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQQlNUIFsweDAyXSA9IDB4RkZGRkZGRkYNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KFBCU1QpIC8qIFxfU0JfLkJBVDAuUEJTVCAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K DQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9CSUYsIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfQklGOiBCYXR0ZXJ5IEluZm9ybWF0aW9uDQogICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChCU1NXICYgT25lKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVC SUYgKCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKFBCSUYpIC8qIFxfU0JfLkJBVDAuUEJJRiAqLw0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJOT1Qs IDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgTG9jYWwwID0gQlNTVyAvKiBcX1NCXy5CQVQwLkJTU1cgKi8NCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCU1NXID0gQXJnMA0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5vdGlmeSAoQkFUMCwgMHg4MCkgLy8gU3RhdHVzIENoYW5nZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmICgoKExvY2FsMCBeIEFyZzApICYgT25lKSkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5v dGlmeSAoQkFUMCwgMHg4MSkgLy8gSW5mb3JtYXRpb24gQ2hhbmdlDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKFVCU1MsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQ0IuRUMu U01CMC5TQlJXICgweDBBLCBPbmUsIFJlZk9mIChCU1NXKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVQklGLCAwLCBOb3RTZXJp YWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5eUENJMC5MUENCLkVDLlNNQjAuU0JSVyAoMHgwQiwgMHgxOCwgUmVmT2YgKExvY2Fs MCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEJJRiBbT25lXSA9IChMb2NhbDAgKiAw eDBBKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eUENJMC5MUENCLkVDLlNNQjAuU0JS VyAoMHgwQiwgMHgxMCwgUmVmT2YgKExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEJJRiBbMHgwMl0gPSAoTG9jYWwwICogMHgwQSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeXlBDSTAuTFBDQi5FQy5TTUIwLlNCUlcgKDB4MEIsIDB4MTksIFJlZk9mIChMb2NhbDAp KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBCSUYgWzB4MDRdID0gTG9jYWwwDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQ0IuRUMuU01CMC5TQlJCICgweDBCLCAw eDIxLCBSZWZPZiAoTG9jYWwwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQklGIFsw eDA5XSA9IExvY2FsMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBCSUYgWzB4MEFdID0g QnVmZmVyIChPbmUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLy8gLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQ0IuRUMuU01CMC5TQlJC ICgweDBCLCAweDIyLCBSZWZPZiAoTG9jYWwwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQklGIFsweDBCXSA9IExvY2FsMA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5eUENJ MC5MUENCLkVDLlNNQjAuU0JSQiAoMHgwQiwgMHgyMCwgUmVmT2YgKExvY2FsMCkpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgUEJJRiBbMHgwQ10gPSBMb2NhbDANCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChVQlNULCAwLCBO b3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5eUENJMC5MUENCLkVDLlNNQjAuU0JSVyAoMHgwQiwgMHgwOSwgUmVmT2Yg KExvY2FsMikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUEJTVCBbMHgwM10gPSBMb2Nh bDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXlBDSTAuTFBDQi5FQy5TTUIwLlNCUlcg KDB4MEIsIDB4MEEsIFJlZk9mIChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoTG9jYWwwICYgMHg4MDAwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IH5Mb2NhbDANCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKExvY2FsMCsrICYgMHhGRkZGKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IExvY2FsMCAqPSBMb2NhbDINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQlNUIFtPbmVd ID0gKExvY2FsMCAvIDB4MDNFOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXlBDSTAu TFBDQi5FQy5TTUIwLlNCUlcgKDB4MEIsIDB4MEYsIFJlZk9mIChMb2NhbDApKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBCU1QgWzB4MDJdID0gKExvY2FsMCAqIDB4MEEpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElmIChQV1JTKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQ0IuRUMuU01CMC5TQlJXICgweDBCLCAw eDE2LCBSZWZPZiAoTG9jYWwwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYg KCEoTG9jYWwwICYgMHg0MCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IDB4MDINCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDEgPSBPbmUNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQlNUIFtaZXJvXSA9IExvY2FsMQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgRGV2 aWNlIChHUFVDKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAo X0hJRCwgRWlzYUlkICgiQVBQMDAwQiIpKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAg ICAgICAgICAgICAgTmFtZSAoX0NJRCwgImdwdWMiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0K ICAgICAgICAgICAgICAgICAgICBOYW1lIChfU1RBLCAweDBCKSAgLy8gX1NUQTogU3RhdHVzDQog ICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DUlMsIFJlc291cmNlVGVtcGxhdGUgKCkgIC8vIF9D UlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4RkUwQjAyMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOCwgICAgICAgICAvLyBBZGRyZXNz IExlbmd0aA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICAg ICAgfSkNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFJXLCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBXYWtlDQogICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChPU0RXICgpKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAo MHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MTUsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAz DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAyKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTUs IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMNCiAgICAgICAgICAgICAgICAgICAg ICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBTY29w ZSAoXF9HUEUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IE1ldGhvZCAoX0wxNSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJl ZCBHUEUsIHh4PTB4MDAtMHhGRg0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgIElmIChPU0RXICgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAu TFBDQi5HUFVDLCAweDgwKSAvLyBTdGF0dXMgQ2hhbmdlDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2VJZiAoKFxfU0IuR0dJSSAo MHgwMzAwMDAxNSkgPT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfU0IuU0dJSSAoMHgwMzAwMDAxNSwgWmVybykN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXF9TQi5TR0lJICgweDAzMDAwMDE1LCBPbmUpDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoR01HUCwgMHgxNSkNCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChHTVNQLCAxLCBOb3RTZXJpYWxpemVkKQ0KICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPD0gT25lKSkN CiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBT R0lJICgweDAzMDAwMDE1LCBBcmcwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChHTUxWLCAwLCBO b3RTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBSZXR1cm4gKEdHSVYgKDB4MDMwMDAwMTUpKQ0KICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZXZpY2UgKFBN Q1IpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgi QVBQOTg3NiIpKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgICAgICBOYW1lIChf U1RBLCAweDBCKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAgICAgICAgTmFtZSAoX0NSUywg UmVzb3VyY2VUZW1wbGF0ZSAoKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVh ZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAgICAgMHhGRTAwMDAwMCwgICAgICAgICAvLyBB ZGRyZXNzIEJhc2UNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAsICAgICAgICAg Ly8gQWRkcmVzcyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAg ICAgICB9KQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEZXZpY2UgKFNCVVMpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgMHgwMDFGMDAwNCkgIC8vIF9B RFI6IEFkZHJlc3MNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQlAsIFBDSV9D b25maWcsIDB4NDAsIDB4QzApDQogICAgICAgICAgICAgICAgRmllbGQgKFNNQlAsIERXb3JkQWNj LCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICwgICAyLCANCiAgICAgICAgICAgICAgICAgICAgSTJDRSwgICAxDQogICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChTTVBCLCBQQ0lfQ29u ZmlnLCAweDIwLCAweDA0KQ0KICAgICAgICAgICAgICAgIEZpZWxkIChTTVBCLCBEV29yZEFjYywg Tm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAsICAgNSwgDQogICAgICAgICAgICAgICAgICAgIFNCQVIsICAgMTENCiAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFNNQkksIFN5c3RlbUlP LCAoU0JBUiA8PCAweDA1KSwgMHgxMCkNCiAgICAgICAgICAgICAgICBGaWVsZCAoU01CSSwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgIEhTVFMsICAgOCwgDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwMiksIA0K ICAgICAgICAgICAgICAgICAgICBIQ09OLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBIQ09N LCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBUWFNBLCAgIDgsIA0KICAgICAgICAgICAgICAg ICAgICBEQVQwLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBEQVQxLCAgIDgsIA0KICAgICAg ICAgICAgICAgICAgICBIQkRSLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBQRUNSLCAgIDgs IA0KICAgICAgICAgICAgICAgICAgICBSWFNBLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBT REFULCAgIDE2DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChT U1hCLCAyLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgSWYgKFNUUlQgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICAgICAgICAgIEkyQ0UgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgIEhTVFMgPSAweEJGDQog ICAgICAgICAgICAgICAgICAgIFRYU0EgPSBBcmcwDQogICAgICAgICAgICAgICAgICAgIEhDT00g PSBBcmcxDQogICAgICAgICAgICAgICAgICAgIEhDT04gPSAweDQ4DQogICAgICAgICAgICAgICAg ICAgIElmIChDT01QICgpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICBIU1RTIHw9IDB4RkYNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25l KQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoU1JYQiwg MSwgU2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElm IChTVFJUICgpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICBSZXR1cm4gKDB4RkZGRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgIEkyQ0UgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgIEhTVFMgPSAweEJGDQogICAg ICAgICAgICAgICAgICAgIFRYU0EgPSAoQXJnMCB8IE9uZSkNCiAgICAgICAgICAgICAgICAgICAg SENPTiA9IDB4NDQNCiAgICAgICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEhTVFMgfD0gMHhGRg0KICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcX1NCXy5QQ0kwLlNCVVMuREFUMCAq Lw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgw eEZGRkYpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChTV1JC LCAzLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg SWYgKFNUUlQgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAg ICAgICAgIEkyQ0UgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgIEhTVFMgPSAweEJGDQogICAg ICAgICAgICAgICAgICAgIFRYU0EgPSBBcmcwDQogICAgICAgICAgICAgICAgICAgIEhDT00gPSBB cmcxDQogICAgICAgICAgICAgICAgICAgIERBVDAgPSBBcmcyDQogICAgICAgICAgICAgICAgICAg IEhDT04gPSAweDQ4DQogICAgICAgICAgICAgICAgICAgIElmIChDT01QICgpKQ0KICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBIU1RTIHw9IDB4RkYNCiAgICAg ICAgICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQ0KICAgICAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgIE1ldGhvZCAoU1JEQiwgMiwgU2VyaWFsaXplZCkNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmIChTVFJUICgpKQ0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkZGRikNCiAgICAgICAg ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIEkyQ0UgPSBaZXJvDQogICAgICAg ICAgICAgICAgICAgIEhTVFMgPSAweEJGDQogICAgICAgICAgICAgICAgICAgIFRYU0EgPSAoQXJn MCB8IE9uZSkNCiAgICAgICAgICAgICAgICAgICAgSENPTSA9IEFyZzENCiAgICAgICAgICAgICAg ICAgICAgSENPTiA9IDB4NDgNCiAgICAgICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEhTVFMgfD0gMHhGRg0K ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcX1NCXy5QQ0kwLlNCVVMu REFUMCAqLw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0 dXJuICgweEZGRkYpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9k IChTV1JXLCAzLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgSWYgKFNUUlQgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgIEkyQ0UgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgIEhTVFMgPSAweEJG DQogICAgICAgICAgICAgICAgICAgIFRYU0EgPSBBcmcwDQogICAgICAgICAgICAgICAgICAgIEhD T00gPSBBcmcxDQogICAgICAgICAgICAgICAgICAgIERBVDEgPSAoQXJnMiAmIDB4RkYpDQogICAg ICAgICAgICAgICAgICAgIERBVDAgPSAoKEFyZzIgPj4gMHgwOCkgJiAweEZGKQ0KICAgICAgICAg ICAgICAgICAgICBIQ09OID0gMHg0Qw0KICAgICAgICAgICAgICAgICAgICBJZiAoQ09NUCAoKSkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgSFNUUyB8PSAw eEZGDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKFNSRFcsIDIsIFNlcmlhbGl6ZWQpDQog ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoU1RSVCAoKSkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweEZGRkYp DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJMkNFID0gWmVy bw0KICAgICAgICAgICAgICAgICAgICBIU1RTID0gMHhCRg0KICAgICAgICAgICAgICAgICAgICBU WFNBID0gKEFyZzAgfCBPbmUpDQogICAgICAgICAgICAgICAgICAgIEhDT00gPSBBcmcxDQogICAg ICAgICAgICAgICAgICAgIEhDT04gPSAweDRDDQogICAgICAgICAgICAgICAgICAgIElmIChDT01Q ICgpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBIU1RT IHw9IDB4RkYNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoKChEQVQwIDw8IDB4MDgp IHwgREFUMSkpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4RkZGRkZGRkYpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg TWV0aG9kIChTQkxXLCA0LCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgSWYgKFNUUlQgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgICAgIEkyQ0UgPSBBcmczDQogICAgICAgICAgICAgICAgICAgIEhTVFMg PSAweEJGDQogICAgICAgICAgICAgICAgICAgIFRYU0EgPSBBcmcwDQogICAgICAgICAgICAgICAg ICAgIEhDT00gPSBBcmcxDQogICAgICAgICAgICAgICAgICAgIERBVDAgPSBTaXplT2YgKEFyZzIp DQogICAgICAgICAgICAgICAgICAgIExvY2FsMSA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAg SEJEUiA9IERlcmVmT2YgKEFyZzIgW1plcm9dKQ0KICAgICAgICAgICAgICAgICAgICBIQ09OID0g MHg1NA0KICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKFNpemVPZiAoQXJnMikgPiBMb2NhbDEp KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSAweDRFMjANCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlICgoIShIU1RTICYgMHg4MCkg JiYgTG9jYWwwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAtLQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgICAgICBJZiAoIUxvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBLSUxMICgpDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDErKw0KICAgICAgICAgICAgICAgICAgICAgICAgSWYg KChTaXplT2YgKEFyZzIpID4gTG9jYWwxKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBIQkRSID0gRGVyZWZPZiAoQXJnMiBbTG9jYWwxXSkN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBIU1RTID0gMHg4MA0KICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAg SFNUUyA9IDB4ODANCiAgICAgICAgICAgICAgICAgICAgSWYgKENPTVAgKCkpDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEhTVFMgfD0gMHhGRg0KICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgTWV0aG9kIChTQkxSLCAzLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoVEJVRiwgQnVmZmVyICgweDAxMDApe30p DQogICAgICAgICAgICAgICAgICAgIElmIChTVFJUICgpKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJMkNFID0gQXJnMg0KICAgICAgICAgICAgICAg ICAgICBIU1RTID0gMHhCRg0KICAgICAgICAgICAgICAgICAgICBUWFNBID0gKEFyZzAgfCBPbmUp DQogICAgICAgICAgICAgICAgICAgIEhDT00gPSBBcmcxDQogICAgICAgICAgICAgICAgICAgIEhD T04gPSAweDU0DQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IDB4MEZBMA0KICAgICAgICAg ICAgICAgICAgICBXaGlsZSAoKCEoSFNUUyAmIDB4ODApICYmIExvY2FsMCkpDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMC0tDQogICAgICAgICAg ICAgICAgICAgICAgICBTdGFsbCAoMHgzMikNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIElmICghTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICBLSUxMICgpDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBU QlVGIFtaZXJvXSA9IERBVDAgLyogXF9TQl8uUENJMC5TQlVTLkRBVDAgKi8NCiAgICAgICAgICAg ICAgICAgICAgSFNUUyA9IDB4ODANCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gT25lDQog ICAgICAgICAgICAgICAgICAgIFdoaWxlICgoTG9jYWwxIDwgRGVyZWZPZiAoVEJVRiBbWmVyb10p KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWww ID0gMHgwRkEwDQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKCEoSFNUUyAmIDB4ODAp ICYmIExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgTG9jYWwwLS0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAo MHgzMikNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAg ICAgSWYgKCFMb2NhbDApDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgS0lMTCAoKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAg ICAgICAgVEJVRiBbTG9jYWwxXSA9IEhCRFIgLyogXF9TQl8uUENJMC5TQlVTLkhCRFIgKi8NCiAg ICAgICAgICAgICAgICAgICAgICAgIEhTVFMgPSAweDgwDQogICAgICAgICAgICAgICAgICAgICAg ICBMb2NhbDErKw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAg SWYgKENPTVAgKCkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIEhTVFMgfD0gMHhGRg0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChUQlVGKSAv KiBcX1NCXy5QQ0kwLlNCVVMuU0JMUi5UQlVGICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgTWV0aG9kIChTVFJULCAwLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHhDOA0KICAgICAgICAgICAgICAg ICAgICBXaGlsZSAoTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICBJZiAoKEhTVFMgJiAweDQwKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAtLQ0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNsZWVwIChPbmUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChM b2NhbDAgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAg ICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgTG9jYWwwID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gMHgwRkEwDQog ICAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDApDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSFNUUyAmIE9uZSkpDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwLS0NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTdGFsbCAoMHgzMikNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKExvY2FsMCA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEtJTEwgKCkNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChP bmUpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChDT01QLCAw LCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gMHgwRkEwDQogICAgICAgICAgICAgICAgICAgIFdoaWxlIChMb2NhbDApDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoSFNUUyAmIDB4MDIp KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoT25lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExvY2FsMC0tDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RhbGwg KDB4MzIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDAgPT0gWmVybykp DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBLSUxMICgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg IE1ldGhvZCAoS0lMTCwgMCwgU2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIEhDT04gfD0gMHgwMg0KICAgICAgICAgICAgICAgICAgICBIU1RTIHw9IDB4 RkYNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBEZXZpY2UgKEJVUzApDQog ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQ0lELCAic21idXMi KSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1lIChfQURS LCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgIERldmljZSAoQlVTMSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIE5hbWUgKF9DSUQsICJzbWJ1cyIpICAvLyBfQ0lEOiBDb21wYXRpYmxlIElEDQogICAgICAg ICAgICAgICAgICAgIE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIERldmljZSAoWFNQSSkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDA1KSAgLy8g X0FEUjogQWRkcmVzcw0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhMGI1YjdjNi0xMzE4 LTQ0MWMtYjBjOS1mZTY5NWVhZjk0OWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQ0KICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQYWNrYWdlICgw eDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgInBjaS1kZXZpY2UtaGlkZGVuIiwgDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJ1ZmZlciAoMHgwOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDEsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgRFRHUCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgUmVmT2Yg KExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNjb3BlIChSUDAx KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQTFFMCwg UENJX0NvbmZpZywgWmVybywgMHgwNDgwKQ0KICAgICAgICAgICAgICAgIEZpZWxkIChBMUUwLCBC eXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgT2Zmc2V0ICgweDA0KSwgDQogICAgICAgICAgICAgICAgICAgIEJNSUUsICAgMywg DQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHgxOSksIA0KICAgICAgICAgICAgICAgICAg ICBTRUNCLCAgIDgsIA0KICAgICAgICAgICAgICAgICAgICBTQkJOLCAgIDgsIA0KICAgICAgICAg ICAgICAgICAgICBPZmZzZXQgKDB4MUUpLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAx MywgDQogICAgICAgICAgICAgICAgICAgIE1BQlQsICAgMSwgDQogICAgICAgICAgICAgICAgICAg IE9mZnNldCAoMHg0QSksIA0KICAgICAgICAgICAgICAgICAgICAgICAgLCAgIDUsIA0KICAgICAg ICAgICAgICAgICAgICBUUEVOLCAgIDEsIA0KICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 NTApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA0LCANCiAgICAgICAgICAgICAgICAg ICAgTERJUywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwgICAyNCwgDQogICAgICAg ICAgICAgICAgICAgIExBQ1QsICAgMSwgDQogICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHhB NCksIA0KICAgICAgICAgICAgICAgICAgICBQU1RBLCAgIDIsIA0KICAgICAgICAgICAgICAgICAg ICBPZmZzZXQgKDB4RTApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA3LCANCiAgICAg ICAgICAgICAgICAgICAgTkNCNywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgw eEUyKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgDQogICAgICAgICAgICAgICAg ICAgIEwyM0UsICAgMSwgDQogICAgICAgICAgICAgICAgICAgIEwyM0QsICAgMSwgDQogICAgICAg ICAgICAgICAgICAgIE9mZnNldCAoMHg0MjApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwg ICAzMCwgDQogICAgICAgICAgICAgICAgICAgIERQR0UsICAgMQ0KICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoQTFFMSwgUENJX0NvbmZpZywgMHgx OCwgMHgwNCkNCiAgICAgICAgICAgICAgICBGaWVsZCAoQTFFMSwgRFdvcmRBY2MsIE5vTG9jaywg UHJlc2VydmUpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBCTklSLCAg IDMyDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChfQkJOLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0JCTjogQklPUyBCdXMgTnVtYmVyDQogICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoKChCTUlFID09IFplcm8pICYmIChTRUNCID09 IDB4RkYpKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJuIChTTkJTKSAvKiBcX1NCXy5QQ0kwLlJQMDEuU05CUyAqLw0KICAgICAgICAgICAgICAg ICAgICB9DQogICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChTRUNCKSAvKiBcX1NCXy5QQ0kwLlJQMDEu U0VDQiAqLw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3Rh dHVzDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYp DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTmFtZSAoQk1JUywgWmVybykN CiAgICAgICAgICAgICAgICBOYW1lIChTTkJTLCBaZXJvKQ0KICAgICAgICAgICAgICAgIE5hbWUg KEJOSVMsIFplcm8pDQogICAgICAgICAgICAgICAgTWV0aG9kIChMMjNSLCAxLCBTZXJpYWxpemVk KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9u ZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEwyM0Ug PSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8NCiAgICAgICAgICAg ICAgICAgICAgICAgIFdoaWxlIChMMjNFKQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVh aw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNsZWVwIChPbmUpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysN CiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgTkNC NyA9IE9uZQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgSWYg KChBcmcwID09IFplcm8pKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICBJZiAoKE5DQjcgPT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUEdFID0gWmVybw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEwyM0QgPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAg PSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgKEwyM0QpDQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ ZiAoKExvY2FsMCA+IDB4MDQpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCcmVhaw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xl ZXAgKE9uZSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBO Q0I3ID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQR0UgPSBPbmUNCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoQlVTUywgMSwgU2VyaWFsaXplZCkNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQ0K ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKCgoQk1J RSAhPSBaZXJvKSAmJiAoQk1JRSAhPSBCTUlTKSkgJiYgKA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICgoU0VDQiAhPSBaZXJvKSAmJiAoU0VDQiAhPSBTTkJTKSkgJiYgKChCTklSICE9IA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFplcm8pICYmIChCTklSICE9IEJOSVMpKSkpKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJN SVMgPSBCTUlFIC8qIFxfU0JfLlBDSTAuUlAwMS5CTUlFICovDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgU05CUyA9IFNFQ0IgLyogXF9TQl8uUENJMC5SUDAxLlNFQ0IgKi8NCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCTklTID0gQk5JUiAvKiBcX1NCXy5QQ0kwLlJQMDEuQk5JUiAq Lw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBC TUlFID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgQk5JUiA9IDB4MDBGRUZGMDANCiAg ICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFRQRU4gLyogXF9TQl8uUENJMC5SUDAxLlRQ RU4gKi8NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgQk5JUiA9IEJOSVMgLyogXF9TQl8uUENJMC5SUDAxLkJOSVMgKi8NCiAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAo Q0tHUCwgMSwgU2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChMTktXLCAxLCBTZXJpYWxpemVkKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gWmVybw0KICAgICAgICAg ICAgICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKFRpbWVyICsgMHgwMDk4OTY4MCkNCiAgICAg ICAgICAgICAgICAgICAgICAgIFdoaWxlICgoVGltZXIgPD0gTG9jYWwwKSkNCiAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoKExBQ1QgPT0g WmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMb2NhbDEgPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnJlYWsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBa ZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwyID0gKFRpbWVyICsgMHgwMDk4OTY4MCkNCiAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxl ICgoVGltZXIgPD0gTG9jYWwyKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKChMQUNUID09IE9uZSkgJiYgKF5BUlBULkFWTkQgIT0g MHhGRkZGKSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMb2NhbDEgPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQnJlYWsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHgwQSkNCiAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9j YWwxKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoQ0xLRCwg MSwgU2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElm ICgoQXJnMCA9PSBPbmUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDEgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBTUENPIChPbmUs IFplcm8pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJZiAo KEFyZzAgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIFNQQ08gKE9uZSwgT25lKQ0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChEUFdSLCAxLCBTZXJpYWxpemVkKQ0K ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKCFPU0RXICgpKQ0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4RkYp DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IF5eTFBDQi5FQy5BUFdDID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcwID09IE9uZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIF5eTFBDQi5FQy5BUFdDID0gT25lDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KE9uZSkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoXl5MUENCLkVDLkFQV0MpIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLkFQV0MgKi8NCiAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBNZXRob2QgKERSU1QsIDEsIFNlcmlhbGl6 ZWQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoIU9TRFcgKCkp DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo MHhGRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgU0dESSAoMHgwMzAxMDAwMykNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAo T25lKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgSWYgKChB cmcwID09IE9uZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIFNHT1YgKDB4MDMwMTAwMDMsIFplcm8pDQogICAgICAgICAgICAgICAgICAgICAgICBTR0RP ICgweDAzMDEwMDAzKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICghR0dEViAo MHgwMzAxMDAwMykpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9k IChESVNPLCAxLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgSWYgKCFPU0RXICgpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKDB4RkYpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIF5BUlBULlBTVEEgPSAweDAzDQogICAgICAgICAgICAg ICAgICAgICAgICBMMjNSIChPbmUpDQogICAgICAgICAgICAgICAgICAgICAgICBEUlNUIChPbmUp DQogICAgICAgICAgICAgICAgICAgICAgICBDTEtEIChPbmUpDQogICAgICAgICAgICAgICAgICAg ICAgICBCVVNTIChPbmUpDQogICAgICAgICAgICAgICAgICAgICAgICBQU1RBID0gMHgwMw0KICAg ICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gVFBFTiAvKiBcX1NCXy5QQ0kwLlJQMDEuVFBF TiAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgTE5LVyAoT25lKQ0KICAgICAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9uZSkpDQogICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBTVEEgPSBaZXJvDQogICAg ICAgICAgICAgICAgICAgICAgICBCVVNTIChaZXJvKQ0KICAgICAgICAgICAgICAgICAgICAgICAg Q0xLRCAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgICAgIERSU1QgKFplcm8pDQogICAgICAg ICAgICAgICAgICAgICAgICBTbGVlcCAoMHg2NCkNCiAgICAgICAgICAgICAgICAgICAgICAgIEwy M1IgKFplcm8pDQogICAgICAgICAgICAgICAgICAgICAgICBMTktXIChaZXJvKQ0KICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoQVBQRCwgMCwgU2VyaWFsaXpl ZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmICghT1NEVyAoKSkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICha ZXJvKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgXkFSUFQu UFNUQSA9IDB4MDMNCiAgICAgICAgICAgICAgICAgICAgTDIzUiAoT25lKQ0KICAgICAgICAgICAg ICAgICAgICBEUlNUIChPbmUpDQogICAgICAgICAgICAgICAgICAgIElmICgoU0xUUCA9PSBaZXJv KSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQ0xLRCAo T25lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgQ0tHUCAoWmVybykNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIEJVU1MgKE9uZSkNCiAgICAgICAgICAgICAg ICAgICAgUFNUQSA9IDB4MDMNCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gVFBFTiAvKiBc X1NCXy5QQ0kwLlJQMDEuVFBFTiAqLw0KICAgICAgICAgICAgICAgICAgICBMTktXIChPbmUpDQog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICBNZXRob2QgKEFQUFUsIDAsIFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoIU9TRFcgKCkpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAg ICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFBTVEEgPSBaZXJvDQogICAgICAgICAg ICAgICAgICAgIElmICgoU0VDQiAhPSAweEZGKSl7fQ0KICAgICAgICAgICAgICAgICAgICBFbHNl DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEJOSVIgPSBC TklTIC8qIFxfU0JfLlBDSTAuUlAwMS5CTklTICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgICAgICAgICBJZiAoKFNMVFAgPT0gWmVybykpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIENLR1AgKE9uZSkNCiAgICAgICAgICAgICAg ICAgICAgICAgIENMS0QgKFplcm8pDQogICAgICAgICAgICAgICAgICAgICAgICBEUlNUIChaZXJv KQ0KICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpDQogICAgICAgICAgICAgICAg ICAgICAgICBMMjNSIChaZXJvKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICAgICAgTE5LVyAoWmVybykNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0K ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoQUxQUiwgMSwgTm90 U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmICgo QXJnMCA9PSBPbmUpKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICAgICBBUFBEICgpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg RWxzZQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBBUFBV ICgpDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICBNZXRob2QgKF9QUzAsIDAsIFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0 ZSAwDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBJZiAoT1NEVyAoKSkN CiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQUxQUiAoWmVy bykNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgIE1ldGhvZCAoX1BTMywgMCwgU2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRl IDMNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIElmIChPU0RXICgpKQ0K ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBBTFBSIChPbmUp DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAg ICAgICBEZXZpY2UgKEFSUFQpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICBOYW1lIChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcw0KICAgICAgICAgICAgICAgICAg ICBOYW1lIChfR1BFLCAweDZGKSAgLy8gX0dQRTogR2VuZXJhbCBQdXJwb3NlIEV2ZW50cw0KICAg ICAgICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKEFSRTIsIFBDSV9Db25maWcsIFplcm8s IDB4ODApDQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChBUkUyLCBCeXRlQWNjLCBOb0xvY2ss IFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAg ICBBVk5ELCAgIDE2LCANCiAgICAgICAgICAgICAgICAgICAgICAgIEFESUQsICAgMTYsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDRDKSwgDQogICAgICAgICAgICAgICAgICAg ICAgICBQU1RBLCAgIDINCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1TcGVj aWZpYyBNZXRob2QNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgTG9jYWwwID0gUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGUtaW5zdGFuY2UiLCANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJhbGkiDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgRFRHUCAoQXJnMCwgQXJnMSwgQXJn MiwgQXJnMywgUmVmT2YgKExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4g KExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQogICAg ICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9QUlcsIDAs IE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNvdXJjZXMgZm9yIFdha2UNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKE9TRFcgKCkpDQog ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0 dXJuIChQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg2OSwgDQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDQNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFj a2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4NjksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAweDA0DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1l dGhvZCAoUFJXMCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNrYWdlICgweDAxKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4NkYNCiAgICAgICAg ICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9STVYsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUk1WOiBSZW1vdmFs IFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QU1csIDEsIFNlcmlhbGl6ZWQpICAvLyBfUFNXOiBQb3dlciBTdGF0ZSBXYWtl DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoXl5e TFBDQi5FQy5TV1dMID09IE9uZSkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKF5eXkxQQ0IuRUMuRUNPSykNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChPU0RX ICgpKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoQXJnMCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5M UENCLkVDLkVXTE4gPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0N CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeXl5MUENCLkVDLkVXTE4gPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXl5eTFBDQi5FQy5MV0xOID0gWmVybw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChSV0NWLCAwLCBTZXJpYWxpemVkKQ0KICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUYwLCBCdWZmZXIgKDB4 MDQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAu Li4uDQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAgICAgICAg Q3JlYXRlQnl0ZUZpZWxkIChCVUYwLCBaZXJvLCBSVzAwKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlQnl0ZUZpZWxkIChCVUYwLCBPbmUsIFJXMDEpDQogICAgICAgICAgICAgICAgICAg ICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIDB4MDIsIFJXMDIpDQogICAgICAgICAgICAgICAg ICAgICAgICBDcmVhdGVCeXRlRmllbGQgKEJVRjAsIDB4MDMsIFJXMDMpDQogICAgICAgICAgICAg ICAgICAgICAgICBSVzAwID0gUldDMCAvKiBcUldDMCAqLw0KICAgICAgICAgICAgICAgICAgICAg ICAgUlcwMSA9IFJXQzEgLyogXFJXQzEgKi8NCiAgICAgICAgICAgICAgICAgICAgICAgIFJXMDIg PSBSV0MyIC8qIFxSV0MyICovDQogICAgICAgICAgICAgICAgICAgICAgICBSVzAzID0gUldDMyAv KiBcUldDMyAqLw0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChCVUYwKSAvKiBcX1NC Xy5QQ0kwLlJQMDEuQVJQVC5SV0NWLkJVRjAgKi8NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNlIChJMkMy KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAxNTAwMDIp ICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICAgICAgTmFtZSAoX1VJRCwgMHgwMykgIC8v IF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgICAgIE5hbWUgKFJCVUYsIFJlc291cmNlVGVt cGxhdGUgKCkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIEludGVycnVw dCAoUmVzb3VyY2VDb25zdW1lciwgTGV2ZWwsIEFjdGl2ZUxvdywgU2hhcmVkLCAsLCApDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTIsDQog ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAg IE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QNCiAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhMGI1YjdjNi0xMzE4LTQ0 MWMtYjBjOS1mZTY5NWVhZjk0OWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQ0KICAgICAgICAgICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQYWNrYWdlICgweDA2 KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImkyYy1jaGFubmVsLW51bWJlciIsIA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImkyYy1waW4tc2RhIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAo MHgwOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9LCANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaTJjLXBpbi1zY2wiLCAN CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQ0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMHgwNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8v IC4uLi4uLi4uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBEVEdQIChBcmcwLCBB cmcxLCBBcmcyLCBBcmczLCBSZWZPZiAoTG9jYWwwKSkNCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAg ICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAg IE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3Vy Y2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVy biAoUkJVRikgLyogXF9TQl8uUENJMC5JMkMyLlJCVUYgKi8NCiAgICAgICAgICAgICAgICB9DQog ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIERldmljZSAoU1BJMSkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUUwMDAzKSAgLy8gX0FEUjogQWRkcmVz cw0KICAgICAgICAgICAgICAgIE5hbWUgKF9ERE4sICJJbnRlbChSKSBMb3cgUG93ZXIgU3Vic3lz dGVtIFNQSSBIb3N0IENvbnRyb2xsZXIgLSA5RDJBIikgIC8vIF9ERE46IERPUyBEZXZpY2UgTmFt ZQ0KICAgICAgICAgICAgICAgIE5hbWUgKF9VSUQsIDB4MDIpICAvLyBfVUlEOiBVbmlxdWUgSUQN CiAgICAgICAgICAgICAgICBOYW1lIChDU1NULCAweDI4KQ0KICAgICAgICAgICAgICAgIE5hbWUg KENTSFQsIDB4MEEpDQogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVzb3VyY2VUZW1wbGF0 ZSAoKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChS ZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICwsICkNCiAgICAgICAg ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNywNCiAgICAg ICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQogICAgICAgICAgICAg ICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RTZXJpYWxpemVkKSAg Ly8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZA0KICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImEwYjViN2M2LTEzMTgtNDQxYy1i MGM5LWZlNjk1ZWFmOTQ5YiIpIC8qIFVua25vd24gVVVJRCAqLykpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBhY2thZ2UgKDB4MEUpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiZ3NwaS1jaGFubmVsLW51bWJlciIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdz cGktY2hhbm5lbHMtY291bnQiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVm ZmVyICgweDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0sIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnc3BpLXN5cy1j bG9jay1wZXJpb2QiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgw eDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMHgwQSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0sIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnc3BpLXBpbi1jcyIsIA0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAweDU3LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8g Vy4uLi4uLi4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImdzcGktcGluLWNsayIsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDU4LCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gWC4uLi4uLi4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImdzcGktcGluLW1vc2kiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnVmZmVyICgweDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg1OSwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIFkuLi4uLi4uDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnc3Bp LXBpbi1taXNvIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgw OCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDB4NUEsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAsIDB4MDAgICAvLyBaLi4uLi4uLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAg RFRHUCAoQXJnMCwgQXJnMSwgQXJnMiwgQXJnMywgUmVmT2YgKExvY2FsMCkpDQogICAgICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQog ICAgICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICBOYW1lIChXQlVGLCBCdWZmZXIgKDB4MDIpDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHgwMCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8vIHkuDQogICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAg ICBOYW1lIChEQlVGLCBCdWZmZXIgKDB4MTApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAvKiAwMDAwICovICAweDU1LCAweDEwLCAweDAwLCAweDA2LCAweDAwLCAweDAy LCAweDU1LCAweDExLCAgLy8gVS4uLi4uVS4NCiAgICAgICAgICAgICAgICAgICAgLyogMDAwOCAq LyAgMHgwMCwgMHgwNywgMHgwMCwgMHgwMiwgMHg3OSwgMHgwMCAgICAgICAgICAgICAgIC8vIC4u Li55Lg0KICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKCFPU0RXICgpKQ0KICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFdCVUYpIC8q IFxfU0JfLlBDSTAuU1BJMS5XQlVGICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICBSZXR1cm4gKENvbmNhdGVuYXRlUmVzVGVtcGxhdGUgKFJCVUYsIERCVUYp KQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgRGV2aWNl IChVUlQwKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDAx RTAwMDApICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICAgICAgTmFtZSAoUkJVRiwgUmVz b3VyY2VUZW1wbGF0ZSAoKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg SW50ZXJydXB0IChSZXNvdXJjZUNvbnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICws ICkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAw MDAxNCwNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0pDQogICAgICAg ICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVz DQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEYpDQog ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChfRFNNLCA0LCBOb3RT ZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZA0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImEwYjViN2M2 LTEzMTgtNDQxYy1iMGM5LWZlNjk1ZWFmOTQ5YiIpIC8qIFVua25vd24gVVVJRCAqLykpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBhY2th Z2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAidWFydC1jaGFubmVsLW51bWJlciIsIA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0NCiAgICAgICAgICAgICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMs IFJlZk9mIChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChMb2NhbDAp DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFpl cm8pDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgTWV0aG9kIChfQ1JTLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0aW5ncw0KICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChSQlVGKSAvKiBcX1NC Xy5QQ0kwLlVSVDAuUkJVRiAqLw0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgRGV2aWNlIChVUlQyKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIDB4MDAxOTAwMDIpICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICAg ICAgTmFtZSAoX0hJRCwgIklOVDM0QkEiKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAg ICAgICAgICBNZXRob2QgKFJCVUYsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICBOYW1lIChCVUZGLCBSZXNvdXJjZVRlbXBsYXRlICgpDQog ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4 ZWQgKFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAg ICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw MDEwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfWTEwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJydXB0IChSZXNvdXJjZUNv bnN1bWVyLCBMZXZlbCwgQWN0aXZlTG93LCBTaGFyZWQsICwsIF9ZMTEpDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxNCwNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAg ICAgICAgICAgICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGRiwgXF9TQi5QQ0kwLlVSVDIuUkJVRi5f WTEwLl9CQVMsIEJWQUwpICAvLyBfQkFTOiBCYXNlIEFkZHJlc3MNCiAgICAgICAgICAgICAgICAg ICAgQ3JlYXRlRFdvcmRGaWVsZCAoQlVGRiwgXF9TQi5QQ0kwLlVSVDIuUkJVRi5fWTExLl9JTlQs IElSUU4pICAvLyBfSU5UOiBJbnRlcnJ1cHRzDQogICAgICAgICAgICAgICAgICAgIEJWQUwgPSBT QjBCIC8qIFxTQjBCICovDQogICAgICAgICAgICAgICAgICAgIElSUU4gPSBTSVJCIC8qIFxTSVJC ICovDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoQlVGRikgLyogXF9TQl8uUENJMC5VUlQy LlJCVUYuQlVGRiAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0KICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8v IF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhMGI1YjdjNi0xMzE4LTQ0MWMtYjBj OS1mZTY5NWVhZjk0OWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQ0KICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBQYWNrYWdlICgweDAyKQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInVhcnQtY2hhbm5lbC1udW1iZXIiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnVmZmVyICgweDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMiwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAg ICAgICAgICAgICAgICBEVEdQIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBSZWZPZiAoTG9jYWww KSkNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAgICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAgICAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX0NSUywgMCwgTm90U2VyaWFsaXpl ZCkgIC8vIF9DUlM6IEN1cnJlbnQgUmVzb3VyY2UgU2V0dGluZ3MNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUkJVRiAoKSkNCiAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNjb3BlIChVUlQwKQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIERldmljZSAoQkxUSCkNCiAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIkJDTTJFN0MiKSkgIC8vIF9ISUQ6 IEhhcmR3YXJlIElEDQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9DSUQsICJhcHBsZS11YXJ0 LWJsdGgiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0KICAgICAgICAgICAgICAgICAgICBOYW1l IChfVUlELCBPbmUpICAvLyBfVUlEOiBVbmlxdWUgSUQNCiAgICAgICAgICAgICAgICAgICAgTmFt ZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikNCiAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BSVywgMCwg Tm90U2VyaWFsaXplZCkgIC8vIF9QUlc6IFBvd2VyIFJlc291cmNlcyBmb3IgV2FrZQ0KICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoT1NEVyAoKSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDZGLCANCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwNA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChQYWNr YWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMHg2RiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDMNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfQ1JTLCAwLCBTZXJpYWxpemVkKSAgLy8gX0NSUzogQ3VycmVudCBSZXNvdXJjZSBTZXR0 aW5ncw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBOYW1l IChVQlVGLCBSZXNvdXJjZVRlbXBsYXRlICgpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgVWFydFNlcmlhbEJ1c1YyICgweDAwMDFDMjAwLCBE YXRhQml0c0VpZ2h0LCBTdG9wQml0c09uZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhDMCwgTGl0dGxlRW5kaWFuLCBQYXJpdHlUeXBlTm9uZSwgRmxvd0NvbnRyb2xIYXJkd2Fy ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwLCAweDAwMjAsICJcXF9T Qi5QQ0kwLlVSVDAiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwLCBSZXNv dXJjZVByb2R1Y2VyLCAsIEV4Y2x1c2l2ZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfSkNCiAgICAgICAgICAgICAgICAgICAgICAg IE5hbWUgKEFCVUYsIEJ1ZmZlciAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHg3OSwgMHgwMCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIHkuDQogICAgICAgICAgICAgICAgICAgICAgICB9KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgSWYgKCFPU0RXICgpKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoVUJVRikgLyogXF9TQl8u UENJMC5VUlQwLkJMVEguX0NSUy5VQlVGICovDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoN CiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoQUJVRikgLyogXF9TQl8uUENJMC5VUlQw LkJMVEguX0NSUy5BQlVGICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2Ut U3BlY2lmaWMgTWV0aG9kDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhMGI1YjdjNi0xMzE4LTQ0MWMtYjBjOS1mZTY5 NWVhZjk0OWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQ0KICAgICAgICAgICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBhY2thZ2UgKDB4MDgpDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJiYXVkIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4QzAsIDB4QzYsIDB4MkQs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi0uLi4uLg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwYXJpdHkiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJ1ZmZlciAoMHgwOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCAgIC8vIC4uLi4uLi4uDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImRhdGFCaXRzIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBCdWZmZXIgKDB4MDgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDgsIDB4MDAsIDB4MDAs IDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgICAvLyAuLi4uLi4uLg0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJzdG9wQml0cyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQnVmZmVyICgweDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIs IEFyZzMsIFJlZk9mIChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy biAoTG9jYWwwKQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgICAgICBSZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKEJUUFUsIDAsIFNlcmlhbGl6ZWQpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXkxQQ0IuRUMuQlRQQyA9IE9uZQ0KICAg ICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4MEEpDQogICAgICAgICAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJUUEQsIDAsIFNlcmlhbGl6ZWQpDQogICAg ICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eXkxQQ0IuRUMuQlRQ QyA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgICAgIFNsZWVwICgweDBBKQ0KICAgICAgICAg ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChCVFJTLCAwLCBTZXJp YWxpemVkKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBC VFBEICgpDQogICAgICAgICAgICAgICAgICAgICAgICBCVFBVICgpDQogICAgICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKEJUTFAsIDEsIFNlcmlhbGl6ZWQp DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJn MCA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeXl5MUENCLkVDLkJURFcgPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IE9uZSkpDQogICAgICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXl5eTFBDQi5F Qy5CVERXID0gWmVybw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChCVFJCLCAxLCBTZXJpYWxpemVk KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFy ZzAgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgU0dPViAoMHgwMzA5MDAwQSwgT25lKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFNHRE8gKDB4MDMwOTAwMEEpDQogICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBPbmUpKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNHT1YgKDB4MDMwOTAwMEEs IFplcm8pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU0dETyAoMHgwMzA5MDAwQSkNCiAg ICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgICAgIE1ldGhvZCAoX1BTVywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9QU1c6IFBv d2VyIFN0YXRlIFdha2UNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKCheXl5MUENCLkVDLlNXQlQgPT0gT25lKSkNCiAgICAgICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiAoXl5eTFBDQi5FQy5FQ09LKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcwKQ0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF5eXkxQQ0IuRUMuRVdCVCA9IE9uZQ0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRWxzZQ0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF5eXkxQQ0IuRUMuRVdCVCA9IFplcm8NCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5MUENCLkVDLkxXQlQgPSBaZXJvDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNj b3BlIChSUDE3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lv biAoUENVUCwgUENJX0NvbmZpZywgWmVybywgMHgwNDgwKQ0KICAgICAgICAgICAgICAgIEZpZWxk IChQQ1VQLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDUyKSwgDQogICAgICAgICAgICAgICAgICAgICAg ICAsICAgMTMsIA0KICAgICAgICAgICAgICAgICAgICBMQUNULCAgIDEsIA0KICAgICAgICAgICAg ICAgICAgICBPZmZzZXQgKDB4RTApLCANCiAgICAgICAgICAgICAgICAgICAgICAgICwgICA3LCAN CiAgICAgICAgICAgICAgICAgICAgTkNCNywgICAxLCANCiAgICAgICAgICAgICAgICAgICAgT2Zm c2V0ICgweEUyKSwgDQogICAgICAgICAgICAgICAgICAgICAgICAsICAgMiwgDQogICAgICAgICAg ICAgICAgICAgIEwyM0UsICAgMSwgDQogICAgICAgICAgICAgICAgICAgIEwyM0QsICAgMSwgDQog ICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MjApLCANCiAgICAgICAgICAgICAgICAgICAg ICAgICwgICAzMCwgDQogICAgICAgICAgICAgICAgICAgIERQR0UsICAgMQ0KICAgICAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QUzA6IFBvd2VyIFN0YXRlIDANCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgIExvY2FsMSA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gKFRpbWVy ICsgMHgwOEYwRDE4MCkNCiAgICAgICAgICAgICAgICAgICAgV2hpbGUgKChUaW1lciA8PSBMb2Nh bDApKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAo KF5eTFBDQi5FQy5QU09DID09IE9uZSkpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwxID0gT25lDQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgQnJlYWsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAg ICAgICAgICAgICAgU2xlZXAgKDB4NjQpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICBJZiAoKExvY2FsMSAhPSBPbmUpKQ0KICAgICAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgICAgICBGYXRhbCAoMHgwMCwgMHg0MzZGNTM1MCwgMHg1NDRG NEQ1NCkNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIFNQQ08g KFplcm8sIE9uZSkNCiAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpDQogICAgICAgICAg ICAgICAgICAgIF5eTFBDQi5FQy5QUlNUID0gT25lDQogICAgICAgICAgICAgICAgICAgIExvY2Fs MSA9IFplcm8NCiAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gWmVybw0KICAgICAgICAgICAg ICAgICAgICBXaGlsZSAoKF5eTFBDQi5FQy5QQ0lSICE9IE9uZSkpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHg5NikpDQogICAg ICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwx ID0gT25lDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKDB4NjQpDQogICAg ICAgICAgICAgICAgICAgICAgICBMb2NhbDArKw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAgICAgSWYgKChMb2NhbDEgIT0gWmVybykpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIEZhdGFsICgweDAwLCAweDY1NDk0MzUwLCAw eDU0NEY0RDU0KQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAg SWYgKChOQ0I3ID09IE9uZSkpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAgICAgICAgIERQR0UgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBMMjNEID0gT25l DQogICAgICAgICAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvDQogICAgICAgICAgICAgICAg ICAgICAgICBXaGlsZSAoTDIzRCkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJZiAoKExvY2FsMCA+IDB4MDQpKQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTbGVlcCAoT25lKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCsrDQogICAg ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgICAgIE5DQjcgPSBa ZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBEUEdFID0gT25lDQogICAgICAgICAgICAgICAg ICAgICAgICBMb2NhbDAgPSBaZXJvDQogICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSAoKExB Q1QgPT0gWmVybykpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgSWYgKChMb2NhbDAgPiAweDA4KSkNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJyZWFrDQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAg KDB4MTApDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwKysNCiAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIExvY2FsMCA9IF5BTlMyLlBTVEEgLyogXF9TQl8uUENJMC5SUDE3LkFOUzIuUFNUQSAqLw0K ICAgICAgICAgICAgICAgICAgICBeQU5TMi5QU1RBID0gKExvY2FsMCAmIDB4RkZGRkZGRkMpDQog ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5BTlMyLlBTVEEgLyogXF9TQl8uUENJMC5SUDE3 LkFOUzIuUFNUQSAqLw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIE1ldGhv ZCAoX1BTMywgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzM6IFBvd2VyIFN0YXRlIDMNCiAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5BTlMyLlBTVEEgLyog XF9TQl8uUENJMC5SUDE3LkFOUzIuUFNUQSAqLw0KICAgICAgICAgICAgICAgICAgICBeQU5TMi5Q U1RBID0gKExvY2FsMCB8IDB4MDMpDQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IF5BTlMy LlBTVEEgLyogXF9TQl8uUENJMC5SUDE3LkFOUzIuUFNUQSAqLw0KICAgICAgICAgICAgICAgICAg ICBMMjNFID0gT25lDQogICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFplcm8NCiAgICAgICAg ICAgICAgICAgICAgV2hpbGUgKEwyM0UpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4gMHgwNCkpDQogICAgICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnJlYWsNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgU2xlZXAgKE9uZSkNCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCsrDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgICAgICAgICBOQ0I3ID0gT25lDQogICAgICAgICAgICAgICAgICAgIFNQQ08gKFpl cm8sIFplcm8pDQogICAgICAgICAgICAgICAgICAgIF5eTFBDQi5FQy5QUlNUID0gWmVybw0KICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgU2NvcGUgKFJQMTcp DQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgRGV2aWNlIChBTlMyKQ0KICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTmFtZSAoX0FEUiwgWmVybykgIC8vIF9BRFI6 IEFkZHJlc3MNCiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ0lBLCBQQ0lf Q29uZmlnLCBaZXJvLCAweEZGKQ0KICAgICAgICAgICAgICAgICAgICBGaWVsZCAoUENJQSwgQnl0 ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICAgICAgQVZORCwgICAxNiwgDQogICAgICAgICAgICAgICAgICAgICAgICBBRElE LCAgIDE2LCANCiAgICAgICAgICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0NCksIA0KICAgICAg ICAgICAgICAgICAgICAgICAgUFNUQSwgICAzMg0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAg ICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NU QTogU3RhdHVzDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IFJldHVybiAoMHgwRikNCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAg ICAgIE1ldGhvZCAoX1BTMCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9QUzA6IFBvd2VyIFN0YXRl IDANCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgICAgICAgICAgTWV0aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzog UG93ZXIgU3RhdGUgMw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAgICAgICBNZXRob2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0aG9kDQogICAgICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgICAgIElmICgoQXJnMCA9PSBUb1VVSUQgKCJhMGI1YjdjNi0x MzE4LTQ0MWMtYjBjOS1mZTY5NWVhZjk0OWIiKSAvKiBVbmtub3duIFVVSUQgKi8pKQ0KICAgICAg ICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9 IFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwY2ktZnVuY3Rpb25zLWRlcGVuZGVudCIs IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgweDA4KQ0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFJlZk9mIChMb2NhbDAp KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8p DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgIFNjb3BlIChSUDE3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIERldmljZSAoSU9CQykNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg IE5hbWUgKF9BRFIsIE9uZSkgIC8vIF9BRFI6IEFkZHJlc3MNCiAgICAgICAgICAgICAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChQQ0lDLCBQQ0lfQ29uZmlnLCBaZXJvLCAweEZGKQ0KICAgICAgICAg ICAgICAgICAgICBGaWVsZCAoUENJQywgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgQVZORCwgICAxNiwgDQog ICAgICAgICAgICAgICAgICAgICAgICBBRElELCAgIDE2LCANCiAgICAgICAgICAgICAgICAgICAg ICAgIE9mZnNldCAoMHg0NCksIA0KICAgICAgICAgICAgICAgICAgICAgICAgUFNUQSwgICAzMg0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfU1RB LCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikNCiAgICAgICAgICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFs aXplZCkgIC8vIF9EU006IERldmljZS1TcGVjaWZpYyBNZXRob2QNCiAgICAgICAgICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImEwYjVi N2M2LTEzMTgtNDQxYy1iMGM5LWZlNjk1ZWFmOTQ5YiIpIC8qIFVua25vd24gVVVJRCAqLykpDQog ICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9j YWwwID0gUGFja2FnZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBjaS1tc2ktZmxhZ3MiLCANCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCAgIC8vIC4uLi4uLi4uDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEVEdQIChBcmcwLCBBcmcxLCBBcmcyLCBBcmczLCBSZWZPZiAoTG9jYWwwKSkNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKExvY2FsMCkNCiAgICAgICAgICAgICAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuIChaZXJvKQ0KICAg ICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfUFMwLCAw LCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMDogUG93ZXIgU3RhdGUgMA0KICAgICAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQU1RBICY9IDB4RkZGRkZGRkMNCiAgICAg ICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBTVEEgLyogXF9TQl8uUENJMC5SUDE3LklPQkMu UFNUQSAqLw0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0 aG9kIChfUFMzLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTMzogUG93ZXIgU3RhdGUgMw0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBQU1RBIHw9IDB4MDMN CiAgICAgICAgICAgICAgICAgICAgICAgIExvY2FsMCA9IFBTVEEgLyogXF9TQl8uUENJMC5SUDE3 LklPQkMuUFNUQSAqLw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0K ICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBTY29wZSAoUlAxNykNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBEZXZpY2UgKFNFUE0pDQogICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICBOYW1lIChfQURSLCAweDAyKSAgLy8gX0FEUjogQWRkcmVzcw0KICAgICAg ICAgICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBDSUQsIFBDSV9Db25maWcsIFplcm8sIDB4 RkYpDQogICAgICAgICAgICAgICAgICAgIEZpZWxkIChQQ0lELCBCeXRlQWNjLCBOb0xvY2ssIFBy ZXNlcnZlKQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBB Vk5ELCAgIDE2LCANCiAgICAgICAgICAgICAgICAgICAgICAgIEFESUQsICAgMTYsIA0KICAgICAg ICAgICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ0KSwgDQogICAgICAgICAgICAgICAgICAgICAg ICBQU1RBLCAgIDMyDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9TVEEsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfU1RBOiBTdGF0dXMNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJuICgweDBGKQ0K ICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kIChfRFNN LCA0LCBOb3RTZXJpYWxpemVkKSAgLy8gX0RTTTogRGV2aWNlLVNwZWNpZmljIE1ldGhvZA0KICAg ICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBJZiAoKEFyZzAgPT0g VG9VVUlEICgiYTBiNWI3YzYtMTMxOC00NDFjLWIwYzktZmU2OTVlYWY5NDliIikgLyogVW5rbm93 biBVVUlEICovKSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMb2NhbDAgPSBQYWNrYWdlICgweDAyKQ0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGNpLW1z aS1mbGFncyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgw eDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxLCAweDAwLCAweDAwLCAweDAwLCAweDAw LCAweDAwLCAweDAwLCAweDAwICAgLy8gLi4uLi4uLi4NCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFJlZk9m IChMb2NhbDApKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0K ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICBSZXR1 cm4gKFplcm8pDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICBN ZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAwDQog ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBTVEEgJj0gMHhG RkZGRkZGQw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUFNUQSAvKiBcX1NCXy5Q Q0kwLlJQMTcuU0VQTS5QU1RBICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQb3dl ciBTdGF0ZSAzDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAg IFBTVEEgfD0gMHgwMw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUFNUQSAvKiBc X1NCXy5QQ0kwLlJQMTcuU0VQTS5QU1RBICovDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFNjb3BlIChSUDE3KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIERldmljZSAoQURJTykNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5hbWUgKF9BRFIsIDB4MDMpICAvLyBfQURSOiBB ZGRyZXNzDQogICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENJQiwgUENJX0Nv bmZpZywgWmVybywgMHhGRikNCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKFBDSUIsIEJ5dGVB Y2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICAgICAgICAgIEFWTkQsICAgMTYsIA0KICAgICAgICAgICAgICAgICAgICAgICAgQURJRCwg ICAxNiwgDQogICAgICAgICAgICAgICAgICAgICAgICBPZmZzZXQgKDB4NDQpLCANCiAgICAgICAg ICAgICAgICAgICAgICAgIFBTVEEsICAgMzINCiAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9TVEE6 IFN0YXR1cw0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MEYpDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAg ICBNZXRob2QgKF9QUzAsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMwOiBQb3dlciBTdGF0ZSAw DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIFBTVEEgJj0g MHhGRkZGRkZGQw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUFNUQSAvKiBcX1NC Xy5QQ0kwLlJQMTcuQURJTy5QU1RBICovDQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAg ICAgICAgICAgICAgICBNZXRob2QgKF9QUzMsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFMzOiBQ b3dlciBTdGF0ZSAzDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgIFBTVEEgfD0gMHgwMw0KICAgICAgICAgICAgICAgICAgICAgICAgTG9jYWwwID0gUFNUQSAv KiBcX1NCXy5QQ0kwLlJQMTcuQURJTy5QU1RBICovDQogICAgICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBEZXZp Y2UgKEFEUDEpDQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsICJBQ1BJMDAwMyIg LyogUG93ZXIgU291cmNlIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElEDQogICAgICAg ICAgICBNZXRob2QgKF9QUlcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFJXOiBQb3dlciBSZXNv dXJjZXMgZm9yIFdha2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJZiAoT1NEVyAo KSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2Fn ZSAoMHgwMikNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAg MHg2RiwgDQogICAgICAgICAgICAgICAgICAgICAgICAweDA0DQogICAgICAgICAgICAgICAgICAg IH0pDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikNCiAgICAg ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgMHg2RiwgDQogICAgICAg ICAgICAgICAgICAgICAgICAweDAzDQogICAgICAgICAgICAgICAgICAgIH0pDQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBOYW1lIChXSzAwLCBPbmUpDQog ICAgICAgICAgICBNZXRob2QgKFNXQUssIDEsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgV0swMCA9IChBcmcwICYgMHgwMykNCiAgICAgICAgICAgICAgICBJ ZiAoIVdLMDApDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBXSzAwID0g T25lDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBNZXRo b2QgKF9QU1IsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfUFNSOiBQb3dlciBTb3VyY2UNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXR1cm4gKFBXUlMpIC8qIFxQV1JTICovDQogICAg ICAgICAgICB9DQoNCiAgICAgICAgICAgIE1ldGhvZCAoX1BDTCwgMCwgTm90U2VyaWFsaXplZCkg IC8vIF9QQ0w6IFBvd2VyIENvbnN1bWVyIExpc3QNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAg ICAgICBSZXR1cm4gKF9TQikgLyogXF9TQl8gKi8NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTVzogUG93ZXIgU3RhdGUg V2FrZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElmIChPU0RXICgpKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKF5eUENJMC5MUENCLkVDLkVDT0sp DQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIElmIChBcmcw KQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAg IElmICgoV0swMCAmIE9uZSkpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXlBDSTAuTFBDQi5FQy5FV0FJID0gT25lDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgICAgICAgICAgICAg SWYgKChXSzAwICYgMHgwMikpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXlBDSTAuTFBDQi5FQy5FV0FSID0gT25lDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5eUENJMC5MUENCLkVDLkVXQUkgPSBaZXJvDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgXl5QQ0kwLkxQQ0IuRUMuRVdBUiA9IFplcm8NCiAgICAg ICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIERldmljZSAoTElEMCkN CiAgICAgICAgew0KICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiUE5QMEMwRCIpIC8q IExpZCBEZXZpY2UgKi8pICAvLyBfSElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgTWV0aG9k IChfUFJXLCAwLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BSVzogUG93ZXIgUmVzb3VyY2VzIGZvciBX YWtlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgSWYgKE9TRFcgKCkpDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQog ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NkYsIA0KICAg ICAgICAgICAgICAgICAgICAgICAgMHgwNA0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAg ICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICBSZXR1cm4gKFBhY2thZ2UgKDB4MDIpDQogICAgICAgICAgICAgICAg ICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIDB4NkYsIA0KICAgICAgICAgICAgICAgICAg ICAgICAgMHgwMw0KICAgICAgICAgICAgICAgICAgICB9KQ0KICAgICAgICAgICAgICAgIH0NCiAg ICAgICAgICAgIH0NCg0KICAgICAgICAgICAgTWV0aG9kIChfTElELCAwLCBOb3RTZXJpYWxpemVk KSAgLy8gX0xJRDogTGlkIFN0YXR1cw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIExJ RFMgPSBeXlBDSTAuTFBDQi5FQy5FTFNXIC8qIFxfU0JfLlBDSTAuTFBDQi5FQ19fLkVMU1cgKi8N CiAgICAgICAgICAgICAgICBeXlBDSTAuSUdQVS5DTElEID0gXl5QQ0kwLkxQQ0IuRUMuRUxTVyAv KiBcX1NCXy5QQ0kwLkxQQ0IuRUNfXy5FTFNXICovDQogICAgICAgICAgICAgICAgUmV0dXJuIChM SURTKSAvKiBFeHRlcm5hbCByZWZlcmVuY2UgKi8NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgTWV0aG9kIChfUFNXLCAxLCBOb3RTZXJpYWxpemVkKSAgLy8gX1BTVzogUG93ZXIgU3RhdGUg V2FrZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElmICheXlBDSTAuTFBDQi5FQy5F Q09LKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgSWYgKEFyZzApDQog ICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF5eUENJMC5MUENC LkVDLkVXTE8gPSBPbmUNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAg ICBFbHNlDQogICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIF5e UENJMC5MUENCLkVDLkVXTE8gPSBaZXJvDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBEZXZpY2UgKFBX UkIpDQogICAgICAgIHsNCiAgICAgICAgICAgIE5hbWUgKF9ISUQsIEVpc2FJZCAoIlBOUDBDMEMi KSAvKiBQb3dlciBCdXR0b24gRGV2aWNlICovKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAg ICAgICAgIE1ldGhvZCAoX0RTTSwgNCwgTm90U2VyaWFsaXplZCkgIC8vIF9EU006IERldmljZS1T cGVjaWZpYyBNZXRob2QNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJZiAoKEFyZzAg PT0gVG9VVUlEICgiYTBiNWI3YzYtMTMxOC00NDFjLWIwYzktZmU2OTVlYWY5NDliIikgLyogVW5r bm93biBVVUlEICovKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIExv Y2FsMCA9IFBhY2thZ2UgKDB4MDQpDQogICAgICAgICAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgInBvd2VyLWJ1dHRvbi11c2FnZSIsIA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEJ1ZmZlciAoMHgwOCkNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDQwLCAweDAwLCAweDAwLCAw eDAwLCAweDAwLCAweDAwLCAweDAwLCAweDAwICAgLy8gQC4uLi4uLi4NCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3dlci1i dXR0b24tdXNhZ2VwYWdlIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyICgw eDA4KQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDB4MEMsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4 MDAgICAvLyAuLi4uLi4uLg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAg ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAgICAgRFRHUCAoQXJnMCwgQXJnMSwg QXJnMiwgQXJnMywgUmVmT2YgKExvY2FsMCkpDQogICAgICAgICAgICAgICAgICAgIFJldHVybiAo TG9jYWwwKQ0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFJldHVybiAoWmVy bykNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIERldmljZSAoQkMwMCkNCiAg ICAgICAgew0KICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlzYUlkICgiQVBQQkMwMCIpKSAgLy8g X0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgIE1ldGhvZCAoX1NUQSwgMCwgTm90U2VyaWFs aXplZCkgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElm IChPU0RXICgpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBSZXR1cm4gKDB4MEIpDQogICAgICAgICAg ICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgRGV2aWNlIChCQzAx KQ0KICAgICAgICB7DQogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJBUFBCQzAxIikp ICAvLyBfSElEOiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgTWV0aG9kIChfU1RBLCAwLCBOb3RT ZXJpYWxpemVkKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgSWYgKE9TRFcgKCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBS ZXR1cm4gKFplcm8pDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIEVsc2UNCiAg ICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIFJldHVybiAoMHgwQikNCiAgICAg ICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBTY29w ZSAoX1BSKQ0KICAgIHsNCiAgICAgICAgUHJvY2Vzc29yIChDUFUwLCAweDAxLCAweDAwMDAwNDEw LCAweDA2KXt9DQogICAgICAgIFByb2Nlc3NvciAoQ1BVMSwgMHgwMiwgMHgwMDAwMDQxMCwgMHgw Nil7fQ0KICAgICAgICBQcm9jZXNzb3IgKENQVTIsIDB4MDMsIDB4MDAwMDA0MTAsIDB4MDYpe30N CiAgICAgICAgUHJvY2Vzc29yIChDUFUzLCAweDA0LCAweDAwMDAwNDEwLCAweDA2KXt9DQogICAg ICAgIFByb2Nlc3NvciAoQ1BVNCwgMHgwNSwgMHgwMDAwMDQxMCwgMHgwNil7fQ0KICAgICAgICBQ cm9jZXNzb3IgKENQVTUsIDB4MDYsIDB4MDAwMDA0MTAsIDB4MDYpe30NCiAgICAgICAgUHJvY2Vz c29yIChDUFU2LCAweDA3LCAweDAwMDAwNDEwLCAweDA2KXt9DQogICAgICAgIFByb2Nlc3NvciAo Q1BVNywgMHgwOCwgMHgwMDAwMDQxMCwgMHgwNil7fQ0KICAgICAgICBQcm9jZXNzb3IgKENQVTgs IDB4MDksIDB4MDAwMDA0MTAsIDB4MDYpe30NCiAgICAgICAgUHJvY2Vzc29yIChDUFU5LCAweDBB LCAweDAwMDAwNDEwLCAweDA2KXt9DQogICAgICAgIFByb2Nlc3NvciAoQ1BVQSwgMHgwQiwgMHgw MDAwMDQxMCwgMHgwNil7fQ0KICAgICAgICBQcm9jZXNzb3IgKENQVUIsIDB4MEMsIDB4MDAwMDA0 MTAsIDB4MDYpe30NCiAgICAgICAgUHJvY2Vzc29yIChDUFVDLCAweDBELCAweDAwMDAwNDEwLCAw eDA2KXt9DQogICAgICAgIFByb2Nlc3NvciAoQ1BVRCwgMHgwRSwgMHgwMDAwMDQxMCwgMHgwNil7 fQ0KICAgICAgICBQcm9jZXNzb3IgKENQVUUsIDB4MEYsIDB4MDAwMDA0MTAsIDB4MDYpe30NCiAg ICAgICAgUHJvY2Vzc29yIChDUFVGLCAweDEwLCAweDAwMDAwNDEwLCAweDA2KXt9DQogICAgfQ0K DQogICAgTXV0ZXggKE1VVFgsIDB4MDApDQogICAgTmFtZSAoU0xUUCwgWmVybykNCiAgICBOYW1l IChUQkgxLCBaZXJvKQ0KICAgIE5hbWUgKFRCSDIsIFplcm8pDQogICAgTmFtZSAoVEJHMCwgWmVy bykNCiAgICBOYW1lIChUQkcxLCBaZXJvKQ0KICAgIE5hbWUgKFRCRzIsIFplcm8pDQogICAgT3Bl cmF0aW9uUmVnaW9uIChQUlQwLCBTeXN0ZW1JTywgMHg4MCwgMHgwNCkNCiAgICBGaWVsZCAoUFJU MCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgew0KICAgICAgICBQODBILCAgIDMy DQogICAgfQ0KDQogICAgT3BlcmF0aW9uUmVnaW9uIChQTE1ULCBTeXN0ZW1JTywgMHgwMzEwLCAw eDBBKQ0KICAgIEZpZWxkIChQTE1ULCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgIHsN CiAgICAgICAgQ1BMVCwgICA4LCANCiAgICAgICAgSUdQUywgICA4LCANCiAgICAgICAgTVBMVCwg ICA4LCANCiAgICAgICAgQ0ZJTCwgICA4LCANCiAgICAgICAgRUdQUywgICA4DQogICAgfQ0KDQog ICAgT3BlcmF0aW9uUmVnaW9uIChTMEJBLCBTeXN0ZW1NZW1vcnksIDB4RTAwQTgwODQsIDB4MDQp DQogICAgRmllbGQgKFMwQkEsIERXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgIHsNCiAg ICAgICAgUzBEMywgICAyDQogICAgfQ0KDQogICAgT3BlcmF0aW9uUmVnaW9uIChTNEJBLCBTeXN0 ZW1NZW1vcnksIDB4RTAwQUMwODQsIDB4MDQpDQogICAgRmllbGQgKFM0QkEsIERXb3JkQWNjLCBO b0xvY2ssIFByZXNlcnZlKQ0KICAgIHsNCiAgICAgICAgUzREMywgICAyDQogICAgfQ0KDQogICAg T3BlcmF0aW9uUmVnaW9uIChUQ09JLCBTeXN0ZW1JTywgMHgxODYwLCAweDA4KQ0KICAgIEZpZWxk IChUQ09JLCBXb3JkQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgIHsNCiAgICAgICAgT2Zmc2V0 ICgweDA0KSwgDQogICAgICAgICAgICAsICAgOSwgDQogICAgICAgIFNDSVMsICAgMSwgDQogICAg ICAgIE9mZnNldCAoMHgwNikNCiAgICB9DQoNCiAgICBNZXRob2QgKFA4WEgsIDIsIFNlcmlhbGl6 ZWQpDQogICAgew0KICAgICAgICBJZiAoKEFyZzAgPT0gWmVybykpDQogICAgICAgIHsNCiAgICAg ICAgICAgIFA4MEQgPSAoKFA4MEQgJiAweEZGRkZGRjAwKSB8IEFyZzEpDQogICAgICAgIH0NCg0K ICAgICAgICBJZiAoKEFyZzAgPT0gT25lKSkNCiAgICAgICAgew0KICAgICAgICAgICAgUDgwRCA9 ICgoUDgwRCAmIDB4RkZGRjAwRkYpIHwgKEFyZzEgPDwgMHgwOCkpDQogICAgICAgIH0NCg0KICAg ICAgICBJZiAoKEFyZzAgPT0gMHgwMikpDQogICAgICAgIHsNCiAgICAgICAgICAgIFA4MEQgPSAo KFA4MEQgJiAweEZGMDBGRkZGKSB8IChBcmcxIDw8IDB4MTApKQ0KICAgICAgICB9DQoNCiAgICAg ICAgSWYgKChBcmcwID09IDB4MDMpKQ0KICAgICAgICB7DQogICAgICAgICAgICBQODBEID0gKChQ ODBEICYgMHgwMEZGRkZGRikgfCAoQXJnMSA8PCAweDE4KSkNCiAgICAgICAgfQ0KDQogICAgICAg IFA4MEggPSBQODBEIC8qIFxQODBEICovDQogICAgfQ0KDQogICAgT3BlcmF0aW9uUmVnaW9uIChT UFJULCBTeXN0ZW1JTywgMHhCMiwgMHgwMikNCiAgICBGaWVsZCAoU1BSVCwgQnl0ZUFjYywgTm9M b2NrLCBQcmVzZXJ2ZSkNCiAgICB7DQogICAgICAgIFNTTVAsICAgOCwgDQogICAgICAgIFNTTVks ICAgOA0KICAgIH0NCg0KICAgIE1ldGhvZCAoX1BJQywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9Q SUM6IEludGVycnVwdCBNb2RlbA0KICAgIHsNCiAgICAgICAgR1BJQyA9IEFyZzANCiAgICAgICAg UElDTSA9IEFyZzANCiAgICB9DQoNCiAgICBNZXRob2QgKEdFVEIsIDMsIFNlcmlhbGl6ZWQpDQog ICAgew0KICAgICAgICBMb2NhbDAgPSAoQXJnMCAqIDB4MDgpDQogICAgICAgIExvY2FsMSA9IChB cmcxICogMHgwOCkNCiAgICAgICAgQ3JlYXRlRmllbGQgKEFyZzIsIExvY2FsMCwgTG9jYWwxLCBU QkYzKQ0KICAgICAgICBSZXR1cm4gKFRCRjMpIC8qIFxHRVRCLlRCRjMgKi8NCiAgICB9DQoNCiAg ICBNZXRob2QgKFBOT1QsIDAsIFNlcmlhbGl6ZWQpDQogICAgew0KICAgICAgICBJZiAoIU9TRFcg KCkpDQogICAgICAgIHsNCiAgICAgICAgICAgIFxfUFIuQ1BQQyA9IENQTFQgLyogXENQTFQgKi8N CiAgICAgICAgfQ0KDQogICAgICAgIElmICgoVENOVCA+IE9uZSkpDQogICAgICAgIHsNCiAgICAg ICAgICAgIElmICgoUERDMCAmIDB4MDgpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IE5vdGlmeSAoXF9QUi5DUFUwLCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5n ZQ0KICAgICAgICAgICAgICAgIElmICgoUERDMCAmIDB4MTApKQ0KICAgICAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTAsIDB4ODEpIC8vIEMtU3RhdGUg Q2hhbmdlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJ ZiAoKFBEQzEgJiAweDA4KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBOb3RpZnkg KFxfUFIuQ1BVMSwgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UNCiAgICAg ICAgICAgICAgICBJZiAoKFBEQzEgJiAweDEwKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAg ICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUxLCAweDgxKSAvLyBDLVN0YXRlIENoYW5nZQ0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSWYgKChQREMy ICYgMHgwOCkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQ VTIsIDB4ODApIC8vIFBlcmZvcm1hbmNlIENhcGFiaWxpdHkgQ2hhbmdlDQogICAgICAgICAgICAg ICAgSWYgKChQREMyICYgMHgxMCkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg ICAgICBOb3RpZnkgKFxfUFIuQ1BVMiwgMHg4MSkgLy8gQy1TdGF0ZSBDaGFuZ2UNCiAgICAgICAg ICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIElmICgoUERDMyAmIDB4MDgp KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUzLCAweDgw KSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQ0KICAgICAgICAgICAgICAgIElmICgo UERDMyAmIDB4MTApKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTm90 aWZ5IChcX1BSLkNQVTMsIDB4ODEpIC8vIEMtU3RhdGUgQ2hhbmdlDQogICAgICAgICAgICAgICAg fQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBJZiAoKFBEQzQgJiAweDA4KSkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVNCwgMHg4MCkgLy8gUGVy Zm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFuZ2UNCiAgICAgICAgICAgICAgICBJZiAoKFBEQzQgJiAw eDEwKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9Q Ui5DUFU0LCAweDgxKSAvLyBDLVN0YXRlIENoYW5nZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgIH0NCg0KICAgICAgICAgICAgSWYgKChQREM1ICYgMHgwOCkpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTUsIDB4ODApIC8vIFBlcmZvcm1hbmNl IENhcGFiaWxpdHkgQ2hhbmdlDQogICAgICAgICAgICAgICAgSWYgKChQREM1ICYgMHgxMCkpDQog ICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBOb3RpZnkgKFxfUFIuQ1BVNSwg MHg4MSkgLy8gQy1TdGF0ZSBDaGFuZ2UNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgIElmICgoUERDNiAmIDB4MDgpKQ0KICAgICAgICAgICAgew0KICAgICAg ICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFU2LCAweDgwKSAvLyBQZXJmb3JtYW5jZSBDYXBhYmls aXR5IENoYW5nZQ0KICAgICAgICAgICAgICAgIElmICgoUERDNiAmIDB4MTApKQ0KICAgICAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTm90aWZ5IChcX1BSLkNQVTYsIDB4ODEpIC8v IEMtU3RhdGUgQ2hhbmdlDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICBJZiAoKFBEQzcgJiAweDA4KSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICBOb3RpZnkgKFxfUFIuQ1BVNywgMHg4MCkgLy8gUGVyZm9ybWFuY2UgQ2FwYWJpbGl0eSBDaGFu Z2UNCiAgICAgICAgICAgICAgICBJZiAoKFBEQzcgJiAweDEwKSkNCiAgICAgICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFU3LCAweDgxKSAvLyBDLVN0YXRl IENoYW5nZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAg ICAgICBFbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgIE5vdGlmeSAoXF9QUi5DUFUwLCAweDgw KSAvLyBQZXJmb3JtYW5jZSBDYXBhYmlsaXR5IENoYW5nZQ0KICAgICAgICAgICAgTm90aWZ5IChc X1BSLkNQVTAsIDB4ODEpIC8vIEMtU3RhdGUgQ2hhbmdlDQogICAgICAgIH0NCiAgICB9DQoNCiAg ICBNZXRob2QgKERTUEksIDAsIFNlcmlhbGl6ZWQpDQogICAgew0KICAgICAgICBJZiAoIU9TRFcg KCkpe30NCiAgICB9DQoNCiAgICBNZXRob2QgKFRSQVAsIDIsIFNlcmlhbGl6ZWQpDQogICAgew0K ICAgICAgICBTTUlGID0gQXJnMQ0KICAgICAgICBJZiAoKEFyZzAgPT0gVFJUUCkpDQogICAgICAg IHsNCiAgICAgICAgICAgIFRSUDAgPSBaZXJvDQogICAgICAgIH0NCg0KICAgICAgICBJZiAoKEFy ZzAgPT0gVFJURCkpDQogICAgICAgIHsNCiAgICAgICAgICAgIERUU0YgPSBBcmcxDQogICAgICAg ICAgICBUUlBEID0gWmVybw0KICAgICAgICAgICAgUmV0dXJuIChEVFNGKSAvKiBcRFRTRiAqLw0K ICAgICAgICB9DQoNCiAgICAgICAgSWYgKChBcmcwID09IFRSVEkpKQ0KICAgICAgICB7DQogICAg ICAgICAgICBUUlBIID0gWmVybw0KICAgICAgICB9DQoNCiAgICAgICAgUmV0dXJuIChTTUlGKSAv KiBcU01JRiAqLw0KICAgIH0NCg0KICAgIFNjb3BlIChfU0IpDQogICAgew0KICAgICAgICBNZXRo b2QgKF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplDQogICAgICAg IHsNCiAgICAgICAgICAgIFBJTkkgKCkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoTFBT MCwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgUmV0dXJuIChPbmUp DQogICAgICAgIH0NCg0KICAgICAgICBEZXZpY2UgKFVTQlgpDQogICAgICAgIHsNCiAgICAgICAg ICAgIE5hbWUgKF9BRFIsIFplcm8pICAvLyBfQURSOiBBZGRyZXNzDQogICAgICAgICAgICBNZXRo b2QgKF9EU00sIDQsIE5vdFNlcmlhbGl6ZWQpICAvLyBfRFNNOiBEZXZpY2UtU3BlY2lmaWMgTWV0 aG9kDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9jYWwwID0gUGFja2FnZSAoMHgw NCkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAgICAgImtVU0JT bGVlcFBvcnRDdXJyZW50TGltaXQiLCANCiAgICAgICAgICAgICAgICAgICAgICAgIDB4MEJCOCwg DQogICAgICAgICAgICAgICAgICAgICAgICAia1VTQldha2VQb3J0Q3VycmVudExpbWl0IiwgDQog ICAgICAgICAgICAgICAgICAgICAgICAweDBCQjgNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAg ICAgICAgICAgICAgIERUR1AgKEFyZzAsIEFyZzEsIEFyZzIsIEFyZzMsIFJlZk9mIChMb2NhbDAp KQ0KICAgICAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICAgICAgfQ0KICAgICAg ICB9DQoNCiAgICAgICAgRGV2aWNlIChQTkxGKQ0KICAgICAgICB7DQogICAgICAgICAgICBOYW1l IChfQURSLCBaZXJvKSAgLy8gX0FEUjogQWRkcmVzcw0KICAgICAgICAgICAgTmFtZSAoX0hJRCwg RWlzYUlkICgiQVBQMDAwMiIpKSAgLy8gX0hJRDogSGFyZHdhcmUgSUQNCiAgICAgICAgICAgIE5h bWUgKF9DSUQsICJiYWNrbGlnaHQiKSAgLy8gX0NJRDogQ29tcGF0aWJsZSBJRA0KICAgICAgICAg ICAgTmFtZSAoX1VJRCwgMHgwRikgIC8vIF9VSUQ6IFVuaXF1ZSBJRA0KICAgICAgICAgICAgTmFt ZSAoX1NUQSwgMHgwQikgIC8vIF9TVEE6IFN0YXR1cw0KICAgICAgICB9DQoNCiAgICAgICAgRGV2 aWNlIChTTFBCKQ0KICAgICAgICB7DQogICAgICAgICAgICBOYW1lIChfSElELCBFaXNhSWQgKCJQ TlAwQzBFIikgLyogU2xlZXAgQnV0dG9uIERldmljZSAqLykgIC8vIF9ISUQ6IEhhcmR3YXJlIElE DQogICAgICAgICAgICBOYW1lIChfU1RBLCAweDBCKSAgLy8gX1NUQTogU3RhdHVzDQogICAgICAg IH0NCiAgICB9DQoNCiAgICBTY29wZSAoX1NCLlBDSTApDQogICAgew0KICAgICAgICBNZXRob2Qg KF9JTkksIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfSU5JOiBJbml0aWFsaXplDQogICAgICAgIHsN CiAgICAgICAgICAgIE9TWVMgPSAweDA3REMNCiAgICAgICAgICAgIElmIChDb25kUmVmT2YgKFxf T1NJLCBMb2NhbDApKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElmIChfT1NJICgi RGFyd2luIikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBPU1lTID0g MHgyNzEwDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKF9PU0kgKCJM aW51eCIpKQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4 MDNFOA0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmIChfT1NJICgiV2lu ZG93cyAyMDA5IikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBPU1lT ID0gMHgwN0Q5DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgSWYgKF9PU0kg KCJXaW5kb3dzIDIwMTIiKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg IE9TWVMgPSAweDA3REMNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQoNCiAgICAg ICAgICAgIElmICghT1NEVyAoKSl7fQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgU2NvcGUgKFwp DQogICAgew0KICAgICAgICBOYW1lIChQSUNNLCBaZXJvKQ0KICAgICAgICBNZXRob2QgKE9TRFcs IDAsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIElmICgoT1NZUyA9PSAw eDI3MTApKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJldHVybiAoT25lKQ0KICAg ICAgICAgICAgfQ0KICAgICAgICAgICAgRWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIE1l dGhvZCAoUElOSSwgMCwgTm90U2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgT1NZ UyA9IDB4MDdEQw0KICAgICAgICAgICAgSWYgKENvbmRSZWZPZiAoX09TSSwgTG9jYWwwKSkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBJZiAoX09TSSAoIkRhcndpbiIpKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MjcxMA0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlSWYgKF9PU0kgKCJMaW51eCIpKQ0KICAgICAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgT1NZUyA9IDB4MDNFOA0KICAgICAgICAg ICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlSWYgKF9PU0kgKCJXaW5kb3dzIDIwMDkiKSkN CiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIE9TWVMgPSAweDA3RDkNCiAg ICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRWxzZUlmIChfT1NJICgiV2luZG93cyAy MDEyIikpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBPU1lTID0gMHgw N0RDDQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgRWxzZQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIE9TWVMgPSAweDA3REMNCiAgICAgICAgICAg IH0NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIFNjb3BlIChfU0IuUENJMCkNCiAgICB7DQogICAg ICAgIERldmljZSAoUERSQykNCiAgICAgICAgew0KICAgICAgICAgICAgTmFtZSAoX0hJRCwgRWlz YUlkICgiUE5QMEMwMiIpIC8qIFBOUCBNb3RoZXJib2FyZCBSZXNvdXJjZXMgKi8pICAvLyBfSElE OiBIYXJkd2FyZSBJRA0KICAgICAgICAgICAgTmFtZSAoX1VJRCwgT25lKSAgLy8gX1VJRDogVW5p cXVlIElEDQogICAgICAgICAgICBOYW1lIChCVUYwLCBSZXNvdXJjZVRlbXBsYXRlICgpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAg ICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAg ICAgICAgICAgICAgICAgICAweDAwMDA4MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoDQog ICAgICAgICAgICAgICAgICAgIF9ZMTMpDQogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAo UmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwLCAgICAgICAgIC8vIEFk ZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgIF9ZMTQpDQogICAgICAgICAgICAgICAg TWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAw LCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgIF9ZMTUpDQog ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAg ICAgICAweDAwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAg ICAgICAgIF9ZMTYpDQogICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0K ICAgICAgICAgICAgICAgICAgICAweEZFRDIwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0K ICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3Ro DQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChS ZWFkT25seSwNCiAgICAgICAgICAgICAgICAgICAgMHhGRUQ5MDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIEJhc2UNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMCwgICAgICAgICAvLyBBZGRy ZXNzIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgTWVtb3J5 MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAweEZFRDQ1MDAwLCAgICAg ICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAweDAwMDRCMDAwLCAgICAg ICAgIC8vIEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAg ICAgICBNZW1vcnkzMkZpeGVkIChSZWFkT25seSwNCiAgICAgICAgICAgICAgICAgICAgMHhGRjAw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UNCiAgICAgICAgICAgICAgICAgICAgMHgwMTAw MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICApDQog ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZE9ubHksDQogICAgICAgICAgICAgICAg ICAgIDB4RkVFMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlDQogICAgICAgICAgICAgICAg ICAgIDB4MDAxMDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgNCiAgICAgICAgICAgICAg ICAgICAgKQ0KICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwNCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UNCiAgICAg ICAgICAgICAgICAgICAgMHgwMDAwMTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aA0KICAg ICAgICAgICAgICAgICAgICBfWTEyKQ0KICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJl YWRPbmx5LA0KICAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAweDAwNDAwMDAwLCAgICAgICAgIC8vIEFkZHJl c3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgICAgICBNZW1vcnkz MkZpeGVkIChSZWFkV3JpdGUsDQogICAgICAgICAgICAgICAgICAgIDB4RkQwMDAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBCYXNlDQogICAgICAgICAgICAgICAgICAgIDB4MDEwMDAwMDAsICAgICAg ICAgLy8gQWRkcmVzcyBMZW5ndGgNCiAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAg ICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRXcml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHhGRTAx MDAwMCwgICAgICAgICAvLyBBZGRyZXNzIEJhc2UNCiAgICAgICAgICAgICAgICAgICAgMHgwMDAw MTAwMCwgICAgICAgICAvLyBBZGRyZXNzIExlbmd0aA0KICAgICAgICAgICAgICAgICAgICApDQog ICAgICAgICAgICAgICAgTWVtb3J5MzJGaXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAg ICAgICAweEZFMDM2MDAwLCAgICAgICAgIC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAg ICAgICAweDAwMDdBMDAwLCAgICAgICAgIC8vIEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAg ICAgICAgICkNCiAgICAgICAgICAgICAgICBNZW1vcnkzMkZpeGVkIChSZWFkV3JpdGUsDQogICAg ICAgICAgICAgICAgICAgIDB4RkM4MDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBCYXNlDQogICAg ICAgICAgICAgICAgICAgIDB4MDA4MDAwMDAsICAgICAgICAgLy8gQWRkcmVzcyBMZW5ndGgNCiAg ICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgIE1lbW9yeTMyRml4ZWQgKFJlYWRX cml0ZSwNCiAgICAgICAgICAgICAgICAgICAgMHhGRTEwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IEJhc2UNCiAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMCwgICAgICAgICAvLyBBZGRyZXNz IExlbmd0aA0KICAgICAgICAgICAgICAgICAgICApDQogICAgICAgICAgICAgICAgTWVtb3J5MzJG aXhlZCAoUmVhZFdyaXRlLA0KICAgICAgICAgICAgICAgICAgICAweEZFMjAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgQmFzZQ0KICAgICAgICAgICAgICAgICAgICAweDAwMjAwMDAwLCAgICAgICAg IC8vIEFkZHJlc3MgTGVuZ3RoDQogICAgICAgICAgICAgICAgICAgICkNCiAgICAgICAgICAgIH0p DQogICAgICAgICAgICBNZXRob2QgKF9DUlMsIDAsIFNlcmlhbGl6ZWQpICAvLyBfQ1JTOiBDdXJy ZW50IFJlc291cmNlIFNldHRpbmdzDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgQ3Jl YXRlRFdvcmRGaWVsZCAoQlVGMCwgXF9TQi5QQ0kwLlBEUkMuX1kxMi5fQkFTLCBUQlIwKSAgLy8g X0JBUzogQmFzZSBBZGRyZXNzDQogICAgICAgICAgICAgICAgVEJSMCA9IFRCQUIgLyogXFRCQUIg Ki8NCiAgICAgICAgICAgICAgICBDcmVhdGVEV29yZEZpZWxkIChCVUYwLCBcX1NCLlBDSTAuUERS Qy5fWTEyLl9MRU4sIFRCTE4pICAvLyBfTEVOOiBMZW5ndGgNCiAgICAgICAgICAgICAgICBJZiAo KFRCQUIgPT0gWmVybykpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBU QkxOID0gWmVybw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIENyZWF0ZURX b3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5QRFJDLl9ZMTMuX0JBUywgTUJSMCkgIC8vIF9CQVM6 IEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAgICAgIE1CUjAgPSAoTUhCUiA8PCAweDBGKQ0KICAg ICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5QRFJDLl9ZMTQu X0JBUywgREJSMCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAgICAgIERCUjAg PSAoRElCUiA8PCAweDBDKQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAs IFxfU0IuUENJMC5QRFJDLl9ZMTUuX0JBUywgRUJSMCkgIC8vIF9CQVM6IEJhc2UgQWRkcmVzcw0K ICAgICAgICAgICAgICAgIEVCUjAgPSAoRVBCUiA8PCAweDBDKQ0KICAgICAgICAgICAgICAgIENy ZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5QRFJDLl9ZMTYuX0JBUywgWEJSMCkgIC8v IF9CQVM6IEJhc2UgQWRkcmVzcw0KICAgICAgICAgICAgICAgIFhCUjAgPSAoUFhCUiA8PCAweDFB KQ0KICAgICAgICAgICAgICAgIENyZWF0ZURXb3JkRmllbGQgKEJVRjAsIFxfU0IuUENJMC5QRFJD Ll9ZMTYuX0xFTiwgWFNaMCkgIC8vIF9MRU46IExlbmd0aA0KICAgICAgICAgICAgICAgIFhTWjAg PSAoMHgxMDAwMDAwMCA+PiBQWFNaKSAvKiBcX1NCXy5QQ0kwLlBYU1ogKi8NCiAgICAgICAgICAg ICAgICBSZXR1cm4gKEJVRjApIC8qIFxfU0JfLlBDSTAuUERSQy5CVUYwICovDQogICAgICAgICAg ICB9DQogICAgICAgIH0NCiAgICB9DQoNCiAgICBOYW1lIChQTlZCLCAweDdBRjNBQzE4KQ0KICAg IE5hbWUgKFBOVkwsIDB4MDI4RikNCiAgICBPcGVyYXRpb25SZWdpb24gKFBOVkEsIFN5c3RlbU1l bW9yeSwgUE5WQiwgUE5WTCkNCiAgICBGaWVsZCAoUE5WQSwgQW55QWNjLCBMb2NrLCBQcmVzZXJ2 ZSkNCiAgICB7DQogICAgICAgIFBDSFMsICAgMTYsIA0KICAgICAgICBQQ0hHLCAgIDE2LCANCiAg ICAgICAgUFNUUCwgICAxNiwgDQogICAgICAgIFJQQTEsICAgMzIsIA0KICAgICAgICBSUEEyLCAg IDMyLCANCiAgICAgICAgUlBBMywgICAzMiwgDQogICAgICAgIFJQQTQsICAgMzIsIA0KICAgICAg ICBSUEE1LCAgIDMyLCANCiAgICAgICAgUlBBNiwgICAzMiwgDQogICAgICAgIFJQQTcsICAgMzIs IA0KICAgICAgICBSUEE4LCAgIDMyLCANCiAgICAgICAgUlBBOSwgICAzMiwgDQogICAgICAgIFJQ QUEsICAgMzIsIA0KICAgICAgICBSUEFCLCAgIDMyLCANCiAgICAgICAgUlBBQywgICAzMiwgDQog ICAgICAgIFJQQUQsICAgMzIsIA0KICAgICAgICBSUEFFLCAgIDMyLCANCiAgICAgICAgUlBBRiwg ICAzMiwgDQogICAgICAgIFJQQUcsICAgMzIsIA0KICAgICAgICBSUEFILCAgIDMyLCANCiAgICAg ICAgUlBBSSwgICAzMiwgDQogICAgICAgIFJQQUosICAgMzIsIA0KICAgICAgICBSUEFLLCAgIDMy LCANCiAgICAgICAgUlBBTCwgICAzMiwgDQogICAgICAgIFJQQU0sICAgMzIsIA0KICAgICAgICBS UEFOLCAgIDMyLCANCiAgICAgICAgUlBBTywgICAzMiwgDQogICAgICAgIE5ITEEsICAgNjQsIA0K ICAgICAgICBOSExMLCAgIDMyLCANCiAgICAgICAgQURGTSwgICAzMiwgDQogICAgICAgIFNXUTAs ICAgOCwgDQogICAgICAgIFNXUTEsICAgOCwgDQogICAgICAgIFNXUTIsICAgOCwgDQogICAgICAg IFNXUTMsICAgOCwgDQogICAgICAgIERTUE0sICAgMzIsIA0KICAgICAgICBTQlJHLCAgIDMyLCAN CiAgICAgICAgR0VJMCwgICA4LCANCiAgICAgICAgR0VJMSwgICA4LCANCiAgICAgICAgR0VJMiwg ICA4LCANCiAgICAgICAgR0VEMCwgICA4LCANCiAgICAgICAgR0VEMSwgICA4LCANCiAgICAgICAg R0VEMiwgICA4LCANCiAgICAgICAgUE1MMSwgICAxNiwgDQogICAgICAgIFBNTDIsICAgMTYsIA0K ICAgICAgICBQTUwzLCAgIDE2LCANCiAgICAgICAgUE1MNCwgICAxNiwgDQogICAgICAgIFBNTDUs ICAgMTYsIA0KICAgICAgICBQTUw2LCAgIDE2LCANCiAgICAgICAgUE1MNywgICAxNiwgDQogICAg ICAgIFBNTDgsICAgMTYsIA0KICAgICAgICBQTUw5LCAgIDE2LCANCiAgICAgICAgUE1MQSwgICAx NiwgDQogICAgICAgIFBNTEIsICAgMTYsIA0KICAgICAgICBQTUxDLCAgIDE2LCANCiAgICAgICAg UE1MRCwgICAxNiwgDQogICAgICAgIFBNTEUsICAgMTYsIA0KICAgICAgICBQTUxGLCAgIDE2LCAN CiAgICAgICAgUE1MRywgICAxNiwgDQogICAgICAgIFBNTEgsICAgMTYsIA0KICAgICAgICBQTUxJ LCAgIDE2LCANCiAgICAgICAgUE1MSiwgICAxNiwgDQogICAgICAgIFBNTEssICAgMTYsIA0KICAg ICAgICBQTUxMLCAgIDE2LCANCiAgICAgICAgUE1MTSwgICAxNiwgDQogICAgICAgIFBNTE4sICAg MTYsIA0KICAgICAgICBQTUxPLCAgIDE2LCANCiAgICAgICAgUE5MMSwgICAxNiwgDQogICAgICAg IFBOTDIsICAgMTYsIA0KICAgICAgICBQTkwzLCAgIDE2LCANCiAgICAgICAgUE5MNCwgICAxNiwg DQogICAgICAgIFBOTDUsICAgMTYsIA0KICAgICAgICBQTkw2LCAgIDE2LCANCiAgICAgICAgUE5M NywgICAxNiwgDQogICAgICAgIFBOTDgsICAgMTYsIA0KICAgICAgICBQTkw5LCAgIDE2LCANCiAg ICAgICAgUE5MQSwgICAxNiwgDQogICAgICAgIFBOTEIsICAgMTYsIA0KICAgICAgICBQTkxDLCAg IDE2LCANCiAgICAgICAgUE5MRCwgICAxNiwgDQogICAgICAgIFBOTEUsICAgMTYsIA0KICAgICAg ICBQTkxGLCAgIDE2LCANCiAgICAgICAgUE5MRywgICAxNiwgDQogICAgICAgIFBOTEgsICAgMTYs IA0KICAgICAgICBQTkxJLCAgIDE2LCANCiAgICAgICAgUE5MSiwgICAxNiwgDQogICAgICAgIFBO TEssICAgMTYsIA0KICAgICAgICBQTkxMLCAgIDE2LCANCiAgICAgICAgUE5MTSwgICAxNiwgDQog ICAgICAgIFBOTE4sICAgMTYsIA0KICAgICAgICBQTkxPLCAgIDE2LCANCiAgICAgICAgWEhQQywg ICA4LCANCiAgICAgICAgWFJQQywgICA4LCANCiAgICAgICAgWFNQQywgICA4LCANCiAgICAgICAg WFNQQSwgICA4LCANCiAgICAgICAgSFBUQiwgICAzMiwgDQogICAgICAgIEhQVEUsICAgOCwgDQog ICAgICAgIFNNRDAsICAgOCwgDQogICAgICAgIFNNRDEsICAgOCwgDQogICAgICAgIFNNRDIsICAg OCwgDQogICAgICAgIFNNRDMsICAgOCwgDQogICAgICAgIFNNRDQsICAgOCwgDQogICAgICAgIFNN RDUsICAgOCwgDQogICAgICAgIFNNRDYsICAgOCwgDQogICAgICAgIFNNRDcsICAgOCwgDQogICAg ICAgIFNNRDgsICAgOCwgDQogICAgICAgIFNNRDksICAgOCwgDQogICAgICAgIFNNREEsICAgOCwg DQogICAgICAgIFNNREIsICAgOCwgDQogICAgICAgIFNJUjAsICAgOCwgDQogICAgICAgIFNJUjEs ICAgOCwgDQogICAgICAgIFNJUjIsICAgOCwgDQogICAgICAgIFNJUjMsICAgOCwgDQogICAgICAg IFNJUjQsICAgOCwgDQogICAgICAgIFNJUjUsICAgOCwgDQogICAgICAgIFNJUjYsICAgOCwgDQog ICAgICAgIFNJUjcsICAgOCwgDQogICAgICAgIFNJUjgsICAgOCwgDQogICAgICAgIFNJUjksICAg OCwgDQogICAgICAgIFNJUkEsICAgOCwgDQogICAgICAgIFNJUkIsICAgOCwgDQogICAgICAgIFNC MDAsICAgNjQsIA0KICAgICAgICBTQjAxLCAgIDY0LCANCiAgICAgICAgU0IwMiwgICA2NCwgDQog ICAgICAgIFNCMDMsICAgNjQsIA0KICAgICAgICBTQjA0LCAgIDY0LCANCiAgICAgICAgU0IwNSwg ICA2NCwgDQogICAgICAgIFNCMDYsICAgNjQsIA0KICAgICAgICBTQjA3LCAgIDY0LCANCiAgICAg ICAgU0IwOCwgICA2NCwgDQogICAgICAgIFNCMDksICAgNjQsIA0KICAgICAgICBTQjBBLCAgIDY0 LCANCiAgICAgICAgU0IwQiwgICA2NCwgDQogICAgICAgIFNCMTAsICAgNjQsIA0KICAgICAgICBT QjExLCAgIDY0LCANCiAgICAgICAgU0IxMiwgICA2NCwgDQogICAgICAgIFNCMTMsICAgNjQsIA0K ICAgICAgICBTQjE0LCAgIDY0LCANCiAgICAgICAgU0IxNSwgICA2NCwgDQogICAgICAgIFNCMTYs ICAgNjQsIA0KICAgICAgICBTQjE3LCAgIDY0LCANCiAgICAgICAgU0IxOCwgICA2NCwgDQogICAg ICAgIFNCMTksICAgNjQsIA0KICAgICAgICBTQjFBLCAgIDY0LCANCiAgICAgICAgU0IxQiwgICA2 NCwgDQogICAgICAgIFNHSVIsICAgOCwgDQogICAgICAgIEdQSEQsICAgOCwgDQogICAgICAgIE5J VDEsICAgOCwgDQogICAgICAgIE5JVDIsICAgOCwgDQogICAgICAgIE5JVDMsICAgOCwgDQogICAg ICAgIE5QTTEsICAgOCwgDQogICAgICAgIE5QTTIsICAgOCwgDQogICAgICAgIE5QTTMsICAgOCwg DQogICAgICAgIE5QQzEsICAgOCwgDQogICAgICAgIE5QQzIsICAgOCwgDQogICAgICAgIE5QQzMs ICAgOCwgDQogICAgICAgIE5MMTEsICAgMTYsIA0KICAgICAgICBOTDEyLCAgIDE2LCANCiAgICAg ICAgTkwxMywgICAxNiwgDQogICAgICAgIE5EMjEsICAgOCwgDQogICAgICAgIE5EMjIsICAgOCwg DQogICAgICAgIE5EMjMsICAgOCwgDQogICAgICAgIE5EMTEsICAgMzIsIA0KICAgICAgICBORDEy LCAgIDMyLCANCiAgICAgICAgTkQxMywgICAzMiwgDQogICAgICAgIE5MUjEsICAgMTYsIA0KICAg ICAgICBOTFIyLCAgIDE2LCANCiAgICAgICAgTkxSMywgICAxNiwgDQogICAgICAgIE5MRDEsICAg MzIsIA0KICAgICAgICBOTEQyLCAgIDMyLCANCiAgICAgICAgTkxEMywgICAzMiwgDQogICAgICAg IE5FQTEsICAgMTYsIA0KICAgICAgICBORUEyLCAgIDE2LCANCiAgICAgICAgTkVBMywgICAxNiwg DQogICAgICAgIE5FQjEsICAgMTYsIA0KICAgICAgICBORUIyLCAgIDE2LCANCiAgICAgICAgTkVC MywgICAxNiwgDQogICAgICAgIE5FQzEsICAgMTYsIA0KICAgICAgICBORUMyLCAgIDE2LCANCiAg ICAgICAgTkVDMywgICAxNiwgDQogICAgICAgIE5SQTEsICAgMTYsIA0KICAgICAgICBOUkEyLCAg IDE2LCANCiAgICAgICAgTlJBMywgICAxNiwgDQogICAgICAgIE5NQjEsICAgMzIsIA0KICAgICAg ICBOTUIyLCAgIDMyLCANCiAgICAgICAgTk1CMywgICAzMiwgDQogICAgICAgIE5NVjEsICAgMzIs IA0KICAgICAgICBOTVYyLCAgIDMyLCANCiAgICAgICAgTk1WMywgICAzMiwgDQogICAgICAgIE5Q QjEsICAgMzIsIA0KICAgICAgICBOUEIyLCAgIDMyLCANCiAgICAgICAgTlBCMywgICAzMiwgDQog ICAgICAgIE5QVjEsICAgMzIsIA0KICAgICAgICBOUFYyLCAgIDMyLCANCiAgICAgICAgTlBWMywg ICAzMiwgDQogICAgICAgIE5SUDEsICAgMzIsIA0KICAgICAgICBOUlAyLCAgIDMyLCANCiAgICAg ICAgTlJQMywgICAzMiwgDQogICAgICAgIEVNSDQsICAgOCwgDQogICAgICAgIEVNRFMsICAgOCwg DQogICAgICAgIENTS1UsICAgOCwgDQogICAgICAgIElUQTAsICAgMTYsIA0KICAgICAgICBJVEEx LCAgIDE2LCANCiAgICAgICAgSVRBMiwgICAxNiwgDQogICAgICAgIElUQTMsICAgMTYsIA0KICAg ICAgICBJVFMwLCAgIDgsIA0KICAgICAgICBJVFMxLCAgIDgsIA0KICAgICAgICBJVFMyLCAgIDgs IA0KICAgICAgICBJVFMzLCAgIDgsIA0KICAgICAgICBQTUJTLCAgIDE2LCANCiAgICAgICAgUFdS TSwgICAzMiwgDQogICAgICAgIENOVkksICAgOCwgDQogICAgICAgIFJNUkMsICAgMzIsIA0KICAg ICAgICBWTVJDLCAgIDgsIA0KICAgICAgICBWTTcwLCAgIDgsIA0KICAgICAgICBWTTc1LCAgIDgs IA0KICAgICAgICBQVEhNLCAgIDgsIA0KICAgICAgICBQU09OLCAgIDgsIA0KICAgICAgICBUV01C LCAgIDMyLCANCiAgICAgICAgTFRSMSwgICA4LCANCiAgICAgICAgTFRSMiwgICA4LCANCiAgICAg ICAgTFRSMywgICA4LCANCiAgICAgICAgTFRSNCwgICA4LCANCiAgICAgICAgTFRSNSwgICA4LCAN CiAgICAgICAgTFRSNiwgICA4LCANCiAgICAgICAgTFRSNywgICA4LCANCiAgICAgICAgTFRSOCwg ICA4LCANCiAgICAgICAgTFRSOSwgICA4LCANCiAgICAgICAgTFRSQSwgICA4LCANCiAgICAgICAg TFRSQiwgICA4LCANCiAgICAgICAgTFRSQywgICA4LCANCiAgICAgICAgTFRSRCwgICA4LCANCiAg ICAgICAgTFRSRSwgICA4LCANCiAgICAgICAgTFRSRiwgICA4LCANCiAgICAgICAgTFRSRywgICA4 LCANCiAgICAgICAgTFRSSCwgICA4LCANCiAgICAgICAgTFRSSSwgICA4LCANCiAgICAgICAgTFRS SiwgICA4LCANCiAgICAgICAgTFRSSywgICA4LCANCiAgICAgICAgTFRSTCwgICA4LCANCiAgICAg ICAgTFRSTSwgICA4LCANCiAgICAgICAgTFRSTiwgICA4LCANCiAgICAgICAgTFRSTywgICA4LCAN CiAgICAgICAgR0JFUywgICA4LCANCiAgICAgICAgU1BQUiwgICA4LCANCiAgICAgICAgU0RQSCwg ICA4LCANCiAgICAgICAgRU1DRSwgICA4LCANCiAgICAgICAgU0RDRSwgICA4DQogICAgfQ0KDQog ICAgU2NvcGUgKF9TQikNCiAgICB7DQogICAgICAgIE5hbWUgKEdQQ0wsIFBhY2thZ2UgKDB4MEYp DQogICAgICAgIHsNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHgwMDZFMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxOSwgDQogICAg ICAgICAgICAgICAgMHgwNjAwLCANCiAgICAgICAgICAgICAgICAweEIwLCANCiAgICAgICAgICAg ICAgICAweDIwLCANCiAgICAgICAgICAgICAgICAweDAxNDAsIA0KICAgICAgICAgICAgICAgIFpl cm8NCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2RTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4 MUEsIA0KICAgICAgICAgICAgICAgIDB4MDc5MCwgDQogICAgICAgICAgICAgICAgMHhCNCwgDQog ICAgICAgICAgICAgICAgMHgzMCwgDQogICAgICAgICAgICAgICAgMHgwMTQ0LCANCiAgICAgICAg ICAgICAgICAweDIwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkEwMDAwLCANCiAgICAgICAg ICAgICAgICAweDE4LCANCiAgICAgICAgICAgICAgICAweDA2MDAsIA0KICAgICAgICAgICAgICAg IDB4QjAsIA0KICAgICAgICAgICAgICAgIDB4MjAsIA0KICAgICAgICAgICAgICAgIDB4MDE0MCwg DQogICAgICAgICAgICAgICAgMHgwMTAwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkQwMDAw LCANCiAgICAgICAgICAgICAgICAweDE4LCANCiAgICAgICAgICAgICAgICAweDA2MDAsIA0KICAg ICAgICAgICAgICAgIDB4QjAsIA0KICAgICAgICAgICAgICAgIDB4MjAsIA0KICAgICAgICAgICAg ICAgIDB4MDE0MCwgDQogICAgICAgICAgICAgICAgMHg2MA0KICAgICAgICAgICAgfSwgDQoNCiAg ICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg MHgwMDZBMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxOCwgDQogICAgICAgICAgICAgICAgMHgw NzgwLCANCiAgICAgICAgICAgICAgICAweEI0LCANCiAgICAgICAgICAgICAgICAweDJDLCANCiAg ICAgICAgICAgICAgICAweDAxNDQsIA0KICAgICAgICAgICAgICAgIDB4MDEyMA0KICAgICAgICAg ICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgMHgwMDZEMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxOCwgDQogICAgICAg ICAgICAgICAgMHgwNzkwLCANCiAgICAgICAgICAgICAgICAweEI0LCANCiAgICAgICAgICAgICAg ICAweDMwLCANCiAgICAgICAgICAgICAgICAweDAxNDQsIA0KICAgICAgICAgICAgICAgIDB4ODAN CiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIDB4MDA2RTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MDgs IA0KICAgICAgICAgICAgICAgIDB4MDkzMCwgDQogICAgICAgICAgICAgICAgMHhCOCwgDQogICAg ICAgICAgICAgICAgMHg0MCwgDQogICAgICAgICAgICAgICAgMHgwMTQ4LCANCiAgICAgICAgICAg ICAgICAweDQwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNykN CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkQwMDAwLCANCiAgICAgICAgICAg ICAgICAweDE4LCANCiAgICAgICAgICAgICAgICAweDA5MTAsIA0KICAgICAgICAgICAgICAgIDB4 QjgsIA0KICAgICAgICAgICAgICAgIDB4M0MsIA0KICAgICAgICAgICAgICAgIDB4MDE0OCwgDQog ICAgICAgICAgICAgICAgMHhBMA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2th Z2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDZDMDAwMCwgDQog ICAgICAgICAgICAgICAgMHgxMCwgDQogICAgICAgICAgICAgICAgMHgwNjAwLCANCiAgICAgICAg ICAgICAgICAweEIwLCANCiAgICAgICAgICAgICAgICAweDIwLCANCiAgICAgICAgICAgICAgICAw eDAxNDAsIA0KICAgICAgICAgICAgICAgIDB4RkZGRg0KICAgICAgICAgICAgfSwgDQoNCiAgICAg ICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgw MDZEMDAwMCwgDQogICAgICAgICAgICAgICAgMHgyOCwgDQogICAgICAgICAgICAgICAgMHgwQTkw LCANCiAgICAgICAgICAgICAgICAweEJDLCANCiAgICAgICAgICAgICAgICAweDQ4LCANCiAgICAg ICAgICAgICAgICAweDAxNEMsIA0KICAgICAgICAgICAgICAgIDB4QzANCiAgICAgICAgICAgIH0s IA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgIDB4MDA2RTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MDksIA0KICAgICAgICAgICAg ICAgIDB4MDlCMCwgDQogICAgICAgICAgICAgICAgMHhCQywgDQogICAgICAgICAgICAgICAgMHg0 NCwgDQogICAgICAgICAgICAgICAgMHgwMTRDLCANCiAgICAgICAgICAgICAgICAweEZGRkYNCiAg ICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgIDB4MDA2QjAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MDgsIA0K ICAgICAgICAgICAgICAgIDB4MDYwMCwgDQogICAgICAgICAgICAgICAgMHhCMCwgDQogICAgICAg ICAgICAgICAgMHgyMCwgDQogICAgICAgICAgICAgICAgMHgwMTQwLCANCiAgICAgICAgICAgICAg ICAweEZGRkYNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2QjAwMDAsIA0KICAgICAgICAgICAg ICAgIDB4MEIsIA0KICAgICAgICAgICAgICAgIDB4MDY4MCwgDQogICAgICAgICAgICAgICAgMHhC NCwgDQogICAgICAgICAgICAgICAgMHgyNCwgDQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAg ICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNr YWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2QTAwMDAsIA0K ICAgICAgICAgICAgICAgIDB4MDksIA0KICAgICAgICAgICAgICAgIDB4MDkwMCwgDQogICAgICAg ICAgICAgICAgMHhCOCwgDQogICAgICAgICAgICAgICAgMHgzOCwgDQogICAgICAgICAgICAgICAg MHhGRkZGLCANCiAgICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAgICAgIH0sIA0KDQogICAg ICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4 MDA2QTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MDYsIA0KICAgICAgICAgICAgICAgIDB4MDk5 MCwgDQogICAgICAgICAgICAgICAgMHhCQywgDQogICAgICAgICAgICAgICAgMHg0MCwgDQogICAg ICAgICAgICAgICAgMHgwMTRDLCANCiAgICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAgICAg IH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoR1BDSCwgUGFja2FnZSAoMHgxMSkNCiAgICAg ICAgew0KICAgICAgICAgICAgUGFja2FnZSAoMHgwNykNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICAweDAwNkUwMDAwLCANCiAgICAgICAgICAgICAgICAweDE5LCANCiAgICAgICAgICAg ICAgICAweDA2MDAsIA0KICAgICAgICAgICAgICAgIDB4QzAsIA0KICAgICAgICAgICAgICAgIDB4 MjAsIA0KICAgICAgICAgICAgICAgIDB4MDE0MCwgDQogICAgICAgICAgICAgICAgWmVybw0KICAg ICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgMHgwMDZFMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxQSwgDQog ICAgICAgICAgICAgICAgMHgwNzkwLCANCiAgICAgICAgICAgICAgICAweEM0LCANCiAgICAgICAg ICAgICAgICAweDMwLCANCiAgICAgICAgICAgICAgICAweDAxNDQsIA0KICAgICAgICAgICAgICAg IDB4MjANCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2RDAwMDAsIA0KICAgICAgICAgICAgICAg IDB4MTgsIA0KICAgICAgICAgICAgICAgIDB4MDYwMCwgDQogICAgICAgICAgICAgICAgMHhDMCwg DQogICAgICAgICAgICAgICAgMHgyMCwgDQogICAgICAgICAgICAgICAgMHgwMTQwLCANCiAgICAg ICAgICAgICAgICAweDQwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAo MHgwNykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkQwMDAwLCANCiAgICAg ICAgICAgICAgICAweDE4LCANCiAgICAgICAgICAgICAgICAweDA3ODAsIA0KICAgICAgICAgICAg ICAgIDB4QzQsIA0KICAgICAgICAgICAgICAgIDB4MkMsIA0KICAgICAgICAgICAgICAgIDB4MDE0 NCwgDQogICAgICAgICAgICAgICAgMHg2MA0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAg IFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDZCMDAw MCwgDQogICAgICAgICAgICAgICAgMHgwRCwgDQogICAgICAgICAgICAgICAgMHgwOTAwLCANCiAg ICAgICAgICAgICAgICAweEM4LCANCiAgICAgICAgICAgICAgICAweDM4LCANCiAgICAgICAgICAg ICAgICAweDAxNDgsIA0KICAgICAgICAgICAgICAgIDB4MDEwMA0KICAgICAgICAgICAgfSwgDQoN CiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgMHgwMDZCMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxOCwgDQogICAgICAgICAgICAgICAg MHgwOUQwLCANCiAgICAgICAgICAgICAgICAweENDLCANCiAgICAgICAgICAgICAgICAweDQwLCAN CiAgICAgICAgICAgICAgICAweDAxNEMsIA0KICAgICAgICAgICAgICAgIDB4MDEyMA0KICAgICAg ICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgMHgwMDZEMDAwMCwgDQogICAgICAgICAgICAgICAgMHgwOCwgDQogICAg ICAgICAgICAgICAgMHgwOTAwLCANCiAgICAgICAgICAgICAgICAweEM4LCANCiAgICAgICAgICAg ICAgICAweDM4LCANCiAgICAgICAgICAgICAgICAweDAxNDgsIA0KICAgICAgICAgICAgICAgIDB4 ODANCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2QjAwMDAsIA0KICAgICAgICAgICAgICAgIDB4 MTgsIA0KICAgICAgICAgICAgICAgIDB4MDc4MCwgDQogICAgICAgICAgICAgICAgMHhDNCwgDQog ICAgICAgICAgICAgICAgMHgyQywgDQogICAgICAgICAgICAgICAgMHgwMTQ0LCANCiAgICAgICAg ICAgICAgICAweEUwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAgUGFja2FnZSAoMHgw NykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkEwMDAwLCANCiAgICAgICAg ICAgICAgICAweDEyLCANCiAgICAgICAgICAgICAgICAweDA3NDAsIA0KICAgICAgICAgICAgICAg IDB4QzgsIA0KICAgICAgICAgICAgICAgIDB4MzAsIA0KICAgICAgICAgICAgICAgIDB4MDE0OCwg DQogICAgICAgICAgICAgICAgMHgwMTQwDQogICAgICAgICAgICB9LCANCg0KICAgICAgICAgICAg UGFja2FnZSAoMHgwNykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAweDAwNkEwMDAw LCANCiAgICAgICAgICAgICAgICAweDBDLCANCiAgICAgICAgICAgICAgICAweDA4NjAsIA0KICAg ICAgICAgICAgICAgIDB4Q0MsIA0KICAgICAgICAgICAgICAgIDB4M0MsIA0KICAgICAgICAgICAg ICAgIDB4MDE0QywgDQogICAgICAgICAgICAgICAgMHgwMTYwDQogICAgICAgICAgICB9LCANCg0K ICAgICAgICAgICAgUGFja2FnZSAoMHgwNykNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAg ICAweDAwNkIwMDAwLCANCiAgICAgICAgICAgICAgICAweDE4LCANCiAgICAgICAgICAgICAgICAw eDA2MDAsIA0KICAgICAgICAgICAgICAgIDB4QzAsIA0KICAgICAgICAgICAgICAgIDB4MjAsIA0K ICAgICAgICAgICAgICAgIDB4MDE0MCwgDQogICAgICAgICAgICAgICAgMHhDMA0KICAgICAgICAg ICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgMHgwMDZDMDAwMCwgDQogICAgICAgICAgICAgICAgMHgxMCwgDQogICAgICAg ICAgICAgICAgMHgwNjAwLCANCiAgICAgICAgICAgICAgICAweEIwLCANCiAgICAgICAgICAgICAg ICAweDIwLCANCiAgICAgICAgICAgICAgICAweDAxNDAsIA0KICAgICAgICAgICAgICAgIDB4RkZG Rg0KICAgICAgICAgICAgfSwgDQoNCiAgICAgICAgICAgIFBhY2thZ2UgKDB4MDcpDQogICAgICAg ICAgICB7DQogICAgICAgICAgICAgICAgMHgwMDZEMDAwMCwgDQogICAgICAgICAgICAgICAgMHgy OCwgDQogICAgICAgICAgICAgICAgMHgwQTAwLCANCiAgICAgICAgICAgICAgICAweEQwLCANCiAg ICAgICAgICAgICAgICAweDQwLCANCiAgICAgICAgICAgICAgICAweEZGRkYsIA0KICAgICAgICAg ICAgICAgIDB4QTANCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3 KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2QjAwMDAsIA0KICAgICAgICAg ICAgICAgIDB4MDksIA0KICAgICAgICAgICAgICAgIDB4MEI1MCwgDQogICAgICAgICAgICAgICAg MHhEMCwgDQogICAgICAgICAgICAgICAgMHg0QywgDQogICAgICAgICAgICAgICAgMHhGRkZGLCAN CiAgICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAgICAgIH0sIA0KDQogICAgICAgICAgICBQ YWNrYWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIDB4MDA2RDAwMDAs IA0KICAgICAgICAgICAgICAgIDB4MDgsIA0KICAgICAgICAgICAgICAgIDB4MDk4MCwgDQogICAg ICAgICAgICAgICAgMHhDQywgDQogICAgICAgICAgICAgICAgMHgzQywgDQogICAgICAgICAgICAg ICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAgICAgIH0sIA0KDQog ICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAg IDB4MDA2QTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MEIsIA0KICAgICAgICAgICAgICAgIDB4 MDYwMCwgDQogICAgICAgICAgICAgICAgMHhDMCwgDQogICAgICAgICAgICAgICAgMHgyMCwgDQog ICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweEZGRkYNCiAgICAgICAg ICAgIH0sIA0KDQogICAgICAgICAgICBQYWNrYWdlICgweDA3KQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIDB4MDA2QTAwMDAsIA0KICAgICAgICAgICAgICAgIDB4MDksIA0KICAgICAg ICAgICAgICAgIDB4MDZCMCwgDQogICAgICAgICAgICAgICAgMHhDNCwgDQogICAgICAgICAgICAg ICAgMHgyOCwgDQogICAgICAgICAgICAgICAgMHhGRkZGLCANCiAgICAgICAgICAgICAgICAweEZG RkYNCiAgICAgICAgICAgIH0NCiAgICAgICAgfSkNCiAgICAgICAgTmFtZSAoUlhFViwgUGFja2Fn ZSAoMHgwRCkNCiAgICAgICAgew0KICAgICAgICAgICAgQnVmZmVyICgweDE5KXt9LCANCiAgICAg ICAgICAgIEJ1ZmZlciAoMHgxQSl7fSwgDQogICAgICAgICAgICBCdWZmZXIgKDB4MTgpe30sIA0K ICAgICAgICAgICAgQnVmZmVyICgweDE4KXt9LCANCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxOCl7 fSwgDQogICAgICAgICAgICBCdWZmZXIgKDB4MTgpe30sIA0KICAgICAgICAgICAgQnVmZmVyICgw eDA4KXt9LCANCiAgICAgICAgICAgIEJ1ZmZlciAoMHgxOCl7fSwgDQogICAgICAgICAgICBCdWZm ZXIgKDB4MTIpe30sIA0KICAgICAgICAgICAgQnVmZmVyICgweDI4KXt9LCANCiAgICAgICAgICAg IEJ1ZmZlciAoMHgxOCl7fSwgDQogICAgICAgICAgICBCdWZmZXIgKDB4MTApe30sIA0KICAgICAg ICAgICAgQnVmZmVyICgweDI4KXt9DQogICAgICAgIH0pDQogICAgfQ0KDQogICAgU2NvcGUgKF9T QikNCiAgICB7DQogICAgICAgIE1ldGhvZCAoR0lORiwgMiwgTm90U2VyaWFsaXplZCkNCiAgICAg ICAgew0KICAgICAgICAgICAgSWYgKChQQ0hTID09IFBDSEwpKQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgIFJldHVybiAoRGVyZWZPZiAoRGVyZWZPZiAoR1BDTCBbQXJnMF0pIFtBcmcx XSkpDQogICAgICAgICAgICB9DQogICAgICAgICAgICBFbHNlDQogICAgICAgICAgICB7DQogICAg ICAgICAgICAgICAgUmV0dXJuIChEZXJlZk9mIChEZXJlZk9mIChHUENIIFtBcmcwXSkgW0FyZzFd KSkNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR01YRywgMCwg Tm90U2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgSWYgKChQQ0hTID09IFBDSEwp KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFJldHVybiAoMHgwRikNCiAgICAgICAg ICAgIH0NCiAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBS ZXR1cm4gKDB4MTEpDQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBNZXRob2Qg KEdBRFIsIDIsIE5vdFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIExvY2FsMCA9 IChHSU5GIChBcmcwLCBaZXJvKSArIFNCUkcpDQogICAgICAgICAgICBMb2NhbDEgPSBHSU5GIChB cmcwLCBBcmcxKQ0KICAgICAgICAgICAgUmV0dXJuICgoTG9jYWwwICsgTG9jYWwxKSkNCiAgICAg ICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR05VTSwgMSwgTm90U2VyaWFsaXplZCkNCiAgICAgICAg ew0KICAgICAgICAgICAgTG9jYWwwID0gR05NQiAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMSA9 IEdHUlAgKEFyZzApDQogICAgICAgICAgICBSZXR1cm4gKChHSU5GIChMb2NhbDEsIDB4MDYpICsg TG9jYWwwKSkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoSU5VTSwgMSwgTm90U2VyaWFs aXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgUmV0dXJuICgoR1BDMSAoQXJnMCkgJiAweDdG KSkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR0dSUCwgMSwgU2VyaWFsaXplZCkNCiAg ICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gKChBcmcwICYgMHgwMEZGMDAwMCkgPj4gMHgx MCkNCiAgICAgICAgICAgIFJldHVybiAoTG9jYWwwKQ0KICAgICAgICB9DQoNCiAgICAgICAgTWV0 aG9kIChHTk1CLCAxLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBSZXR1cm4g KChBcmcwICYgMHhGRkZGKSkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR0dQRSwgMSwg Tm90U2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJn MCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIg PSAoTG9jYWwxID4+IDB4MDUpDQogICAgICAgICAgICBJZiAoISgoKChHRUkwID09IExvY2FsMCkg JiYgKEdFRDAgPT0gTG9jYWwyKSkgfCAoDQogICAgICAgICAgICAgICAgKEdFSTEgPT0gTG9jYWww KSAmJiAoR0VEMSA9PSBMb2NhbDIpKSkgfCAoKEdFSTIgPT0gTG9jYWwwKSAmJiAoR0VEMiA9PSAN CiAgICAgICAgICAgICAgICBMb2NhbDIpKSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgUmV0dXJuICgweDZGKQ0KICAgICAgICAgICAgfQ0KICAgICAgICAgICAgRWxzZQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIElmICgoKEdFSTAgPT0gTG9jYWwwKSAmJiAoR0VEMCA9 PSBMb2NhbDIpKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIExvY2Fs MyA9IFplcm8NCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgRWxzZUlmICgoKEdF STEgPT0gTG9jYWwwKSAmJiAoR0VEMSA9PSBMb2NhbDIpKSkNCiAgICAgICAgICAgICAgICB7DQog ICAgICAgICAgICAgICAgICAgIExvY2FsMyA9IE9uZQ0KICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICBFbHNlSWYgKCgoR0VJMiA9PSBMb2NhbDApICYmIChHRUQyID09IExvY2FsMikp KQ0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgTG9jYWwzID0gMHgwMg0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICBFbHNlDQogICAgICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICBCcmVha1BvaW50DQogICAgICAgICAgICAgICAgICAgIFJl dHVybiAoWmVybykNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICBSZXR1cm4g KCgoKExvY2FsMyAtIExvY2FsMikgKiAweDIwKSArIExvY2FsMSkpDQogICAgICAgICAgICB9DQog ICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKEdQQzAsIDEsIFNlcmlhbGl6ZWQpDQogICAgICAg IHsNCiAgICAgICAgICAgIExvY2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2NhbDEg PSBHTk1CIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKExvY2FsMCwgMHgwMikg KyAoTG9jYWwxICogMHgxMCkpDQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5 c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQ0KICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBURU1Q LCAgIDMyDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJldHVybiAoVEVNUCkgLyogXF9T Ql8uR1BDMC5URU1QICovDQogICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKFNSRUcsIDIsIFNl cmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIElmICgoUENIUyA9PSBQQ0hMKSkNCiAg ICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBMb2NhbDAgPSBaZXJvDQogICAgICAgICAgICB9 DQogICAgICAgICAgICBFbHNlDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9jYWww ID0gT25lDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIExvY2FsMSA9IChHSU5GIChBcmcw LCBaZXJvKSArIFNCUkcpDQogICAgICAgICAgICBMb2NhbDIgPSAoQXJnMCArIExvY2FsMSkNCiAg ICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFJFRywgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4 MDQpDQogICAgICAgICAgICBGaWVsZCAoUFJFRywgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAgMzINCiAgICAgICAgICAgIH0N Cg0KICAgICAgICAgICAgVEVNUCA9IEFyZzENCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAo U1BDMCwgMiwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dS UCAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBM b2NhbDIgPSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQog ICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAgMzINCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgVEVNUCA9IEFyZzENCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR1BDMSwg MSwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJn MCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIg PSAoKEdBRFIgKExvY2FsMCwgMHgwMikgKyAoTG9jYWwxICogMHgxMCkpICsgDQogICAgICAgICAg ICAgICAgMHgwNCkNCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMSwgU3lzdGVtTWVt b3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUERXMSwgQW55QWNjLCBOb0xv Y2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAgMzIN CiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmV0dXJuIChURU1QKSAvKiBcX1NCXy5HUEMx LlRFTVAgKi8NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoU1BDMSwgMiwgU2VyaWFsaXpl ZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJnMCkNCiAgICAgICAg ICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIgPSAoKEdBRFIgKExv Y2FsMCwgMHgwMikgKyAoTG9jYWwxICogMHgxMCkpICsgDQogICAgICAgICAgICAgICAgMHgwNCkN CiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMSwgU3lzdGVtTWVtb3J5LCBMb2NhbDIs IDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUERXMSwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZl KQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAgMzINCiAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgVEVNUCA9IEFyZzENCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhv ZCAoU1JYTywgMiwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0g R0dSUCAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAg ICBMb2NhbDIgPSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQp DQogICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICAsICAgMjgsIA0KICAgICAgICAgICAgICAg IFRFTVAsICAgMSwgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQ0KICAgICAgICAgICAg fQ0KDQogICAgICAgICAgICBURU1QID0gQXJnMQ0KICAgICAgICB9DQoNCiAgICAgICAgTWV0aG9k IChTR0RJLCAxLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2NhbDAgPSBH R1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0gR05NQiAoQXJnMCkNCiAgICAgICAgICAg IExvY2FsMiA9IChHQURSIChMb2NhbDAsIDB4MDIpICsgKExvY2FsMSAqIDB4MTApKQ0KICAgICAg ICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkN CiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAg ICAgICAgICB7DQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDAxKSwgDQogICAgICAgICAgICAg ICAgVEVNUCwgICAyLCANCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpDQogICAgICAgICAg ICB9DQoNCiAgICAgICAgICAgIFRFTVAgPSBPbmUNCiAgICAgICAgfQ0KDQogICAgICAgIE5hbWUg KFBDU0EsIFplcm8pDQogICAgICAgIE1ldGhvZCAoUlhSQSwgMiwgU2VyaWFsaXplZCkNCiAgICAg ICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJnMCkNCiAgICAgICAgICAgIExvY2Fs MSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoTG9jYWwwLCAweDAy KSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwg U3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55 QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAg ICAsICAgMjgsIA0KICAgICAgICAgICAgICAgIFJYUE8sICAgMSwgDQogICAgICAgICAgICAgICAg ICAgICwgICAxLCANCiAgICAgICAgICAgICAgICBQQURDLCAgIDINCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgSWYgKChBcmcxID09IE9uZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAg ICAgICAgUENTQSA9IFBBREMgLyogXF9TQl8uUlhSQS5QQURDICovDQogICAgICAgICAgICAgICAg UEFEQyA9IFplcm8NCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIEVsc2VJZiAoKFBDU0EgIT0g WmVybykpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUEFEQyA9IFBDU0EgLyogXF9T Ql8uUENTQSAqLw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSWFBPID0gQXJnMQ0KICAg ICAgICB9DQoNCiAgICAgICAgTWV0aG9kIChTR0RPLCAxLCBTZXJpYWxpemVkKQ0KICAgICAgICB7 DQogICAgICAgICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0g R05NQiAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChMb2NhbDAsIDB4MDIpICsg KExvY2FsMSAqIDB4MTApKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0 ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2Ms IE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgT2Zmc2V0 ICgweDAxKSwgDQogICAgICAgICAgICAgICAgVEVNUCwgICAyLCANCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MDQpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFRFTVAgPSAweDAyDQog ICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKEdHRFYsIDEsIFNlcmlhbGl6ZWQpDQogICAgICAg IHsNCiAgICAgICAgICAgIExvY2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2NhbDEg PSBHTk1CIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwyID0gKEdBRFIgKExvY2FsMCwgMHgwMikg KyAoTG9jYWwxICogMHgxMCkpDQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5 c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQ0KICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBPZmZz ZXQgKDB4MDEpLCANCiAgICAgICAgICAgICAgICBURU1QLCAgIDIsIA0KICAgICAgICAgICAgICAg IE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSWYgKChURU1QID09 IE9uZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpDQogICAg ICAgICAgICB9DQogICAgICAgICAgICBFbHNlSWYgKChURU1QID09IDB4MDIpKQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgIFJldHVybiAoWmVybykNCiAgICAgICAgICAgIH0NCiAgICAg ICAgICAgIEVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXR1cm4gKE9uZSkN CiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR0dJViwgMSwgU2Vy aWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJnMCkNCiAg ICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIgPSAoR0FE UiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAgICAgIE9wZXJhdGlv blJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAgICAgICBG aWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgew0KICAg ICAgICAgICAgICAgICAgICAsICAgMSwgDQogICAgICAgICAgICAgICAgVEVNUCwgICAxLCANCiAg ICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg IFJldHVybiAoVEVNUCkgLyogXF9TQl8uR0dJVi5URU1QICovDQogICAgICAgIH0NCg0KICAgICAg ICBNZXRob2QgKEdHT1YsIDEsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIExv Y2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQ0KICAg ICAgICAgICAgTG9jYWwyID0gKEdBRFIgKExvY2FsMCwgMHgwMikgKyAoTG9jYWwxICogMHgxMCkp DQogICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwy LCAweDA0KQ0KICAgICAgICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2 ZSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBURU1QLCAgIDEsIA0KICAgICAgICAg ICAgICAgIE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmV0dXJu IChURU1QKSAvKiBcX1NCXy5HR09WLlRFTVAgKi8NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhv ZCAoU0dPViwgMiwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0g R0dSUCAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAg ICBMb2NhbDIgPSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAg ICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQp DQogICAgICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAgMSwgDQogICAgICAgICAgICAgICAg T2Zmc2V0ICgweDA0KQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBURU1QID0gQXJnMQ0K ICAgICAgICB9DQoNCiAgICAgICAgTWV0aG9kIChHR0lJLCAxLCBTZXJpYWxpemVkKQ0KICAgICAg ICB7DQogICAgICAgICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwx ID0gR05NQiAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChMb2NhbDAsIDB4MDIp ICsgKExvY2FsMSAqIDB4MTApKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBT eXN0ZW1NZW1vcnksIExvY2FsMiwgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlB Y2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAg ICwgICAyMywgDQogICAgICAgICAgICAgICAgVEVNUCwgICAxLCANCiAgICAgICAgICAgICAgICBP ZmZzZXQgKDB4MDQpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFJldHVybiAoVEVNUCkg LyogXF9TQl8uR0dJSS5URU1QICovDQogICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKFNHSUks IDIsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAgICAgIExvY2FsMCA9IEdHUlAgKEFy ZzApDQogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwy ID0gKEdBRFIgKExvY2FsMCwgMHgwMikgKyAoTG9jYWwxICogMHgxMCkpDQogICAgICAgICAgICBP cGVyYXRpb25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQ0KICAgICAg ICAgICAgRmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAg IHsNCiAgICAgICAgICAgICAgICAgICAgLCAgIDIzLCANCiAgICAgICAgICAgICAgICBURU1QLCAg IDEsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgVEVNUCA9IEFyZzENCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoR1BNViwg MSwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJn MCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIg PSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAg ICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAsICAgMTAsIA0KICAgICAgICAgICAgICAgIFRFTVAsICAg MywgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDA0KQ0KICAgICAgICAgICAgfQ0KDQogICAg ICAgICAgICBSZXR1cm4gKFRFTVApIC8qIFxfU0JfLkdQTVYuVEVNUCAqLw0KICAgICAgICB9DQoN CiAgICAgICAgTWV0aG9kIChTUE1WLCAyLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAg ICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0gR05NQiAoQXJn MCkNCiAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChMb2NhbDAsIDB4MDIpICsgKExvY2FsMSAq IDB4MTApKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1vcnks IExvY2FsMiwgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9jaywg UHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICwgICAxMCwgDQog ICAgICAgICAgICAgICAgVEVNUCwgICAzLCANCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4MDQp DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFRFTVAgPSBBcmcxDQogICAgICAgIH0NCg0K ICAgICAgICBNZXRob2QgKEdIUE8sIDEsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAgICAg ICAgIExvY2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChBcmcw KQ0KICAgICAgICAgICAgTG9jYWwzID0gKEdBRFIgKExvY2FsMCwgMHgwMykgKyAoKExvY2FsMSA+ PiAweDA1KSAqIDB4MDQpKQ0KICAgICAgICAgICAgTG9jYWw0ID0gKExvY2FsMSAmIDB4MUYpDQog ICAgICAgICAgICBPcGVyYXRpb25SZWdpb24gKFBSRUcsIFN5c3RlbU1lbW9yeSwgTG9jYWwzLCAw eDA0KQ0KICAgICAgICAgICAgRmllbGQgKFBSRUcsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkN CiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBURU1QLCAgIDMyDQogICAgICAgICAgICB9 DQoNCiAgICAgICAgICAgIFJldHVybiAoKChURU1QID4+IExvY2FsNCkgJiBPbmUpKQ0KICAgICAg ICB9DQoNCiAgICAgICAgTWV0aG9kIChTSFBPLCAyLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQog ICAgICAgICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0gR05N QiAoQXJnMCkNCiAgICAgICAgICAgIExvY2FsMyA9IChHQURSIChMb2NhbDAsIDB4MDMpICsgKChM b2NhbDEgPj4gMHgwNSkgKiAweDA0KSkNCiAgICAgICAgICAgIExvY2FsNCA9IChMb2NhbDEgJiAw eDFGKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQUkVHLCBTeXN0ZW1NZW1vcnksIExv Y2FsMywgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQUkVHLCBBbnlBY2MsIE5vTG9jaywgUHJl c2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgVEVNUCwgICAzMg0KICAgICAg ICAgICAgfQ0KDQogICAgICAgICAgICBJZiAoQXJnMSkNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgICBURU1QIHw9IChPbmUgPDwgTG9jYWw0KQ0KICAgICAgICAgICAgfQ0KICAgICAgICAg ICAgRWxzZQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAgJj0gfihPbmUgPDwg TG9jYWw0KQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQoNCiAgICAgICAgTWV0aG9kIChHR1BP LCAxLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2NhbDAgPSBHR1JQIChB cmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0gR05NQiAoQXJnMCkNCiAgICAgICAgICAgIExvY2Fs MiA9IChHQURSIChMb2NhbDAsIDB4MDQpICsgKChMb2NhbDEgPj4gMHgwMykgKiAweDA0DQogICAg ICAgICAgICAgICAgKSkNCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUFJFRywgU3lzdGVt TWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUFJFRywgQW55QWNjLCBO b0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFRFTVAsICAg MzINCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgUmV0dXJuICgoKFRFTVAgPj4gKChMb2Nh bDEgJiAweDA3KSAqIDB4MDQpKSAmIA0KICAgICAgICAgICAgICAgIDB4MDMpKQ0KICAgICAgICB9 DQoNCiAgICAgICAgTWV0aG9kIChTR1JBLCAyLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAg ICAgICAgICBMb2NhbDAgPSBHR1JQIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWwxID0gR05NQiAo QXJnMCkNCiAgICAgICAgICAgIExvY2FsMiA9IChHQURSIChMb2NhbDAsIDB4MDIpICsgKExvY2Fs MSAqIDB4MTApKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQRFcwLCBTeXN0ZW1NZW1v cnksIExvY2FsMiwgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQRFcwLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICwgICAyMCwg DQogICAgICAgICAgICAgICAgVEVNUCwgICAxLCANCiAgICAgICAgICAgICAgICBPZmZzZXQgKDB4 MDQpDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIFRFTVAgPSBBcmcxDQogICAgICAgIH0N Cg0KICAgICAgICBNZXRob2QgKFNHV1AsIDIsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsNCiAgICAg ICAgICAgIExvY2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2NhbDEgPSBHTk1CIChB cmcwKQ0KICAgICAgICAgICAgTG9jYWwyID0gKChHQURSIChMb2NhbDAsIDB4MDIpICsgKExvY2Fs MSAqIDB4MTApKSArIA0KICAgICAgICAgICAgICAgIDB4MDQpDQogICAgICAgICAgICBPcGVyYXRp b25SZWdpb24gKFBEVzAsIFN5c3RlbU1lbW9yeSwgTG9jYWwyLCAweDA0KQ0KICAgICAgICAgICAg RmllbGQgKFBEVzAsIEFueUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgLCAgIDEwLCANCiAgICAgICAgICAgICAgICBURU1QLCAgIDQsIA0K ICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAg ICAgVEVNUCA9IEFyZzENCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoQ0FHUywgMSwgU2Vy aWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJnMCkNCiAg ICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDQgPSAoTG9j YWwxID4+IDB4MDUpDQogICAgICAgICAgICBJZiAoISgoKChHRUkwID09IExvY2FsMCkgJiYgKEdF RDAgPT0gTG9jYWw0KSkgfCAoDQogICAgICAgICAgICAgICAgKEdFSTEgPT0gTG9jYWwwKSAmJiAo R0VEMSA9PSBMb2NhbDQpKSkgfCAoKEdFSTIgPT0gTG9jYWwwKSAmJiAoR0VEMiA9PSANCiAgICAg ICAgICAgICAgICBMb2NhbDQpKSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgTG9j YWwzID0gR0FEUiAoTG9jYWwwLCAweDA1KQ0KICAgICAgICAgICAgICAgIElmICgoKExvY2FsMyAm IDB4RkZGRikgIT0gMHhGRkZGKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAg ICAgIE9wZXJhdGlvblJlZ2lvbiAoR1BQWCwgU3lzdGVtTWVtb3J5LCAoTG9jYWwzICsgKExvY2Fs NCAqIDB4MDQpKSwgMHgwNCkNCiAgICAgICAgICAgICAgICAgICAgRmllbGQgKEdQUFgsIEFueUFj YywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgICAgICAgICAgU1RTWCwgICAzMg0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAg ICAgICAgICAgICAgTG9jYWwyID0gKE9uZSA8PCAoTG9jYWwxICUgMHgyMCkpDQogICAgICAgICAg ICAgICAgICAgIFNUU1ggPSBMb2NhbDINCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 DQogICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKElTTUUsIDEsIFNlcmlhbGl6ZWQpDQogICAg ICAgIHsNCiAgICAgICAgICAgIExvY2FsMCA9IEdHUlAgKEFyZzApDQogICAgICAgICAgICBMb2Nh bDEgPSBHTk1CIChBcmcwKQ0KICAgICAgICAgICAgTG9jYWw0ID0gKExvY2FsMSA+PiAweDA1KQ0K ICAgICAgICAgICAgSWYgKCEhKCgoKEdFSTAgPT0gTG9jYWwwKSAmJiAoR0VEMCA9PSBMb2NhbDQp KSB8IA0KICAgICAgICAgICAgICAgICgoR0VJMSA9PSBMb2NhbDApICYmIChHRUQxID09IExvY2Fs NCkpKSB8ICgoR0VJMiA9PSBMb2NhbDApICYmICgNCiAgICAgICAgICAgICAgICBHRUQyID09IExv Y2FsNCkpKSkNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICBSZXR1cm4gKFplcm8pDQog ICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIElmICgoKEdBRFIgKExvY2FsMCwgMHgwNSkgJiAw eEZGRkYpID09IDB4RkZGRikpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgUmV0dXJu IChaZXJvKQ0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBMb2NhbDIgPSAoR0FEUiAoTG9j YWwwLCAweDA1KSArIChMb2NhbDQgKiAweDA0KSkNCiAgICAgICAgICAgIExvY2FsMyA9IChMb2Nh bDEgJiAweDFGKQ0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChHUFBYLCBTeXN0ZW1NZW1v cnksIExvY2FsMiwgMHgyNCkNCiAgICAgICAgICAgIEZpZWxkIChHUFBYLCBBbnlBY2MsIE5vTG9j aywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgU1RTWCwgICAzMiwg DQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDIwKSwgDQogICAgICAgICAgICAgICAgR0VOWCwg ICAzMg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBSZXR1cm4gKCgoKFNUU1ggJiBHRU5Y KSA+PiBMb2NhbDMpICYgT25lKSkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoRElQSSwg MSwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAoQXJn MCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2NhbDIg PSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAgICAg ICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAgICAg ew0KICAgICAgICAgICAgICAgICAgICAsICAgOSwgDQogICAgICAgICAgICAgICAgUkRJUywgICAx LCANCiAgICAgICAgICAgICAgICAgICAgLCAgIDE1LCANCiAgICAgICAgICAgICAgICBSQ0ZHLCAg IDIsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0KICAg ICAgICAgICAgSWYgKChSQ0ZHICE9IDB4MDIpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIERlcmVmT2YgKFJYRVYgW0xvY2FsMF0pIFtMb2NhbDFdID0gUkNGRyAvKiBcX1NCXy5ESVBJ LlJDRkcgKi8NCiAgICAgICAgICAgICAgICBSQ0ZHID0gMHgwMg0KICAgICAgICAgICAgICAgIFJE SVMgPSBPbmUNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoVUlQ SSwgMSwgU2VyaWFsaXplZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gR0dSUCAo QXJnMCkNCiAgICAgICAgICAgIExvY2FsMSA9IEdOTUIgKEFyZzApDQogICAgICAgICAgICBMb2Nh bDIgPSAoR0FEUiAoTG9jYWwwLCAweDAyKSArIChMb2NhbDEgKiAweDEwKSkNCiAgICAgICAgICAg IE9wZXJhdGlvblJlZ2lvbiAoUERXMCwgU3lzdGVtTWVtb3J5LCBMb2NhbDIsIDB4MDQpDQogICAg ICAgICAgICBGaWVsZCAoUERXMCwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICAg ICAgew0KICAgICAgICAgICAgICAgICAgICAsICAgOSwgDQogICAgICAgICAgICAgICAgUkRJUywg ICAxLCANCiAgICAgICAgICAgICAgICAgICAgLCAgIDE1LCANCiAgICAgICAgICAgICAgICBSQ0ZH LCAgIDIsIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHgwNCkNCiAgICAgICAgICAgIH0NCg0K ICAgICAgICAgICAgTG9jYWwzID0gRGVyZWZPZiAoRGVyZWZPZiAoUlhFViBbTG9jYWwwXSkgW0xv Y2FsMV0pDQogICAgICAgICAgICBJZiAoKExvY2FsMyAhPSAweDAyKSkNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBSRElTID0gWmVybw0KICAgICAgICAgICAgICAgIFJDRkcgPSBMb2Nh bDMNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCg0KICAgIE5hbWUgKFBDSEgsIE9u ZSkNCiAgICBOYW1lIChQQ0hMLCAweDAyKQ0KICAgIFNjb3BlIChcKQ0KICAgIHsNCiAgICAgICAg T3BlcmF0aW9uUmVnaW9uIChJT19ULCBTeXN0ZW1JTywgMHgwODAwLCAweDEwKQ0KICAgICAgICBG aWVsZCAoSU9fVCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAgew0KICAgICAg ICAgICAgVFJQSSwgICAxNiwgDQogICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCANCiAgICAgICAg ICAgIE9mZnNldCAoMHgwNiksIA0KICAgICAgICAgICAgT2Zmc2V0ICgweDA4KSwgDQogICAgICAg ICAgICBUUlAwLCAgIDgsIA0KICAgICAgICAgICAgT2Zmc2V0ICgweDBBKSwgDQogICAgICAgICAg ICBPZmZzZXQgKDB4MEIpLCANCiAgICAgICAgICAgIE9mZnNldCAoMHgwQyksIA0KICAgICAgICAg ICAgT2Zmc2V0ICgweDBEKSwgDQogICAgICAgICAgICBPZmZzZXQgKDB4MEUpLCANCiAgICAgICAg ICAgIE9mZnNldCAoMHgwRiksIA0KICAgICAgICAgICAgT2Zmc2V0ICgweDEwKQ0KICAgICAgICB9 DQoNCiAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChJT19ELCBTeXN0ZW1JTywgMHgwODEwLCAweDA0 KQ0KICAgICAgICBGaWVsZCAoSU9fRCwgQnl0ZUFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAg ICAgew0KICAgICAgICAgICAgVFJQRCwgICA4DQogICAgICAgIH0NCg0KICAgICAgICBPcGVyYXRp b25SZWdpb24gKElPX0gsIFN5c3RlbUlPLCAweDEwMDAsIDB4MDQpDQogICAgICAgIEZpZWxkIChJ T19ILCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAgICAgICB7DQogICAgICAgICAgICBU UlBILCAgIDgNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoSVBDVywgNywgU2VyaWFsaXpl ZCkNCiAgICAgICAgew0KICAgICAgICAgICAgSUJGMCA9IEFyZzMNCiAgICAgICAgICAgIElCRjEg PSBBcmc0DQogICAgICAgICAgICBJQkYyID0gQXJnNQ0KICAgICAgICAgICAgSUJGMyA9IEFyZzYN CiAgICAgICAgICAgIExvY2FsMCA9IEFyZzANCiAgICAgICAgICAgIExvY2FsMCArPSAoQXJnMSA8 PCAweDBDKQ0KICAgICAgICAgICAgTG9jYWwwICs9IChBcmcyIDw8IDB4MTApDQogICAgICAgICAg ICBDTURSID0gTG9jYWwwDQogICAgICAgICAgICBMb2NhbDAgPSBaZXJvDQogICAgICAgICAgICBX aGlsZSAoT25lKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIElmICgoIUlCU1kgfHwg KElFUlIgPT0gT25lKSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBC cmVhaw0KICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIElmICgoTG9jYWwwID4g MHgwQSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICAgICBCcmVhaw0KICAg ICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgIFNsZWVwIChPbmUpDQogICAgICAgICAg ICAgICAgTG9jYWwwKysNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgSWYgKChJRVJSID09 IE9uZSkpe30NCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoU1BDTywgMiwgU2VyaWFsaXpl ZCkNCiAgICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gKE9uZSA8PCBBcmcwKQ0KICAgICAg ICAgICAgTG9jYWwxID0gKEFyZzEgPDwgQXJnMCkNCiAgICAgICAgICAgIElQQ1cgKDB4QTgsIFpl cm8sIDB4MDgsIExvY2FsMCwgTG9jYWwxLCBaZXJvLCBaZXJvKQ0KICAgICAgICB9DQoNCiAgICAg ICAgTWV0aG9kIChQQ1JSLCAyLCBTZXJpYWxpemVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBM b2NhbDAgPSAoKEFyZzAgPDwgMHgxMCkgKyBBcmcxKQ0KICAgICAgICAgICAgTG9jYWwwICs9IFNC UkcNCiAgICAgICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoUENSMCwgU3lzdGVtTWVtb3J5LCBMb2Nh bDAsIDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUENSMCwgRFdvcmRBY2MsIExvY2ssIFByZXNl cnZlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIERBVDAsICAgMzINCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgUmV0dXJuIChEQVQwKSAvKiBcUENSUi5EQVQwICovDQogICAg ICAgIH0NCg0KICAgICAgICBNZXRob2QgKFBDUlcsIDMsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsN CiAgICAgICAgICAgIExvY2FsMCA9ICgoQXJnMCA8PCAweDEwKSArIEFyZzEpDQogICAgICAgICAg ICBMb2NhbDAgKz0gU0JSRw0KICAgICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQQ1IwLCBTeXN0 ZW1NZW1vcnksIExvY2FsMCwgMHgwNCkNCiAgICAgICAgICAgIEZpZWxkIChQQ1IwLCBEV29yZEFj YywgTG9jaywgUHJlc2VydmUpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgREFUMCwg ICAzMg0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICBEQVQwID0gQXJnMg0KICAgICAgICAg ICAgT3BlcmF0aW9uUmVnaW9uIChQQ1IxLCBTeXN0ZW1NZW1vcnksIChTQlJHICsgMHgwMEM3MzQx OCksIDB4MDQpDQogICAgICAgICAgICBGaWVsZCAoUENSMSwgRFdvcmRBY2MsIExvY2ssIFByZXNl cnZlKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIERBVDEsICAgMzINCiAgICAgICAg ICAgIH0NCg0KICAgICAgICAgICAgTG9jYWwxID0gREFUMSAvKiBcUENSVy5EQVQxICovDQogICAg ICAgIH0NCg0KICAgICAgICBNZXRob2QgKFBDUk8sIDMsIFNlcmlhbGl6ZWQpDQogICAgICAgIHsN CiAgICAgICAgICAgIExvY2FsMCA9IFBDUlIgKEFyZzAsIEFyZzEpDQogICAgICAgICAgICBMb2Nh bDEgPSAoTG9jYWwwIHwgQXJnMikNCiAgICAgICAgICAgIFBDUlcgKEFyZzAsIEFyZzEsIExvY2Fs MSkNCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoUENSQSwgMywgU2VyaWFsaXplZCkNCiAg ICAgICAgew0KICAgICAgICAgICAgTG9jYWwwID0gUENSUiAoQXJnMCwgQXJnMSkNCiAgICAgICAg ICAgIExvY2FsMSA9IChMb2NhbDAgJiBBcmcyKQ0KICAgICAgICAgICAgUENSVyAoQXJnMCwgQXJn MSwgTG9jYWwxKQ0KICAgICAgICB9DQoNCiAgICAgICAgTWV0aG9kIChQQ0FPLCA0LCBTZXJpYWxp emVkKQ0KICAgICAgICB7DQogICAgICAgICAgICBMb2NhbDAgPSBQQ1JSIChBcmcwLCBBcmcxKQ0K ICAgICAgICAgICAgTG9jYWwxID0gKChMb2NhbDAgJiBBcmcyKSB8IEFyZzMpDQogICAgICAgICAg ICBQQ1JXIChBcmcwLCBBcmcxLCBMb2NhbDEpDQogICAgICAgIH0NCg0KICAgICAgICBOYW1lIChU Q0JWLCBaZXJvKQ0KICAgICAgICBNZXRob2QgKFRDQlMsIDAsIE5vdFNlcmlhbGl6ZWQpDQogICAg ICAgIHsNCiAgICAgICAgICAgIElmICgoVENCViA9PSBaZXJvKSkNCiAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICBMb2NhbDAgPSBQQ1JSICgweDg4LCAweDI3NzgpDQogICAgICAgICAgICAg ICAgVENCViA9IChMb2NhbDAgJiAweEZGRTApDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAg IFJldHVybiAoVENCVikgLyogXFRDQlYgKi8NCiAgICAgICAgfQ0KDQogICAgICAgIE5hbWUgKFMw SUQsIFplcm8pDQogICAgICAgIE9wZXJhdGlvblJlZ2lvbiAoVENCQSwgU3lzdGVtSU8sIFRDQlMg KCksIDB4MTApDQogICAgICAgIEZpZWxkIChUQ0JBLCBCeXRlQWNjLCBOb0xvY2ssIFByZXNlcnZl KQ0KICAgICAgICB7DQogICAgICAgICAgICBPZmZzZXQgKDB4MDQpLCANCiAgICAgICAgICAgICAg ICAsICAgOSwgDQogICAgICAgICAgICBDUFNDLCAgIDENCiAgICAgICAgfQ0KDQogICAgICAgIE9w ZXJhdGlvblJlZ2lvbiAoUE1TVCwgU3lzdGVtTWVtb3J5LCAweEZFMDAwMDAwLCAweDFFRkYpDQog ICAgICAgIEZpZWxkIChQTVNULCBEV29yZEFjYywgTm9Mb2NrLCBQcmVzZXJ2ZSkNCiAgICAgICAg ew0KICAgICAgICAgICAgQ01EUiwgICAzMiwgDQogICAgICAgICAgICBJQlNZLCAgIDEsIA0KICAg ICAgICAgICAgSUVSUiwgICAxLCANCiAgICAgICAgICAgICAgICAsICAgMSwgDQogICAgICAgICAg ICAgICAgLCAgIDEsIA0KICAgICAgICAgICAgT2Zmc2V0ICgweDA1KSwgDQogICAgICAgICAgICBP ZmZzZXQgKDB4MDYpLCANCiAgICAgICAgICAgIElFUkMsICAgOCwgDQogICAgICAgICAgICBPZmZz ZXQgKDB4MDgpLCANCiAgICAgICAgICAgIE9mZnNldCAoMHg4MCksIA0KICAgICAgICAgICAgSUJG MCwgICAzMiwgDQogICAgICAgICAgICBJQkYxLCAgIDMyLCANCiAgICAgICAgICAgIElCRjIsICAg MzIsIA0KICAgICAgICAgICAgSUJGMywgICAzMiwgDQogICAgICAgICAgICBJUkJGLCAgIDMyDQog ICAgICAgIH0NCg0KICAgICAgICBGaWVsZCAoUE1TVCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2Vy dmUpDQogICAgICAgIHsNCiAgICAgICAgICAgIE9mZnNldCAoMHgxQjFDKSwgDQogICAgICAgICAg ICAgICAgLCAgIDEyLCANCiAgICAgICAgICAgIE5QS0EsICAgMSwgDQogICAgICAgICAgICBMVk1F LCAgIDENCiAgICAgICAgfQ0KDQogICAgICAgIEZpZWxkIChQTVNULCBEV29yZEFjYywgTm9Mb2Nr LCBQcmVzZXJ2ZSkNCiAgICAgICAgew0KICAgICAgICAgICAgT2Zmc2V0ICgweDFCNEMpLCANCiAg ICAgICAgICAgICAgICAsICAgMjIsIA0KICAgICAgICAgICAgQURTUCwgICAxDQogICAgICAgIH0N Cg0KICAgICAgICBGaWVsZCAoUE1TVCwgRFdvcmRBY2MsIE5vTG9jaywgUHJlc2VydmUpDQogICAg ICAgIHsNCiAgICAgICAgICAgIE9mZnNldCAoMHgxRTRDKSwgDQogICAgICAgICAgICAgICAgLCAg IDE5LCANCiAgICAgICAgICAgIEJUMTksICAgMQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgU2Nv cGUgKF9TQi5QQ0kwKQ0KICAgIHsNCiAgICAgICAgRGV2aWNlIChQUE1DKQ0KICAgICAgICB7DQog ICAgICAgICAgICBOYW1lIChfQURSLCAweDAwMUYwMDAyKSAgLy8gX0FEUjogQWRkcmVzcw0KICAg ICAgICAgICAgT3BlcmF0aW9uUmVnaW9uIChQTUNCLCBQQ0lfQ29uZmlnLCBaZXJvLCAweDAxMDAp DQogICAgICAgICAgICBGaWVsZCAoUE1DQiwgQW55QWNjLCBOb0xvY2ssIFByZXNlcnZlKQ0KICAg ICAgICAgICAgew0KICAgICAgICAgICAgICAgIFZESUQsICAgMzIsIA0KICAgICAgICAgICAgICAg IE9mZnNldCAoMHg0MCksIA0KICAgICAgICAgICAgICAgIE9mZnNldCAoMHg0MSksIA0KICAgICAg ICAgICAgICAgIEFDQkEsICAgOCwgDQogICAgICAgICAgICAgICAgT2Zmc2V0ICgweDQ4KSwgDQog ICAgICAgICAgICAgICAgICAgICwgICAxMiwgDQogICAgICAgICAgICAgICAgUFdCQSwgICAyMA0K ICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgU2NvcGUgKF9HUEUpDQogICAg ew0KICAgICAgICBNZXRob2QgKF9MNjcsIDAsIE5vdFNlcmlhbGl6ZWQpICAvLyBfTHh4OiBMZXZl bC1UcmlnZ2VyZWQgR1BFLCB4eD0weDAwLTB4RkYNCiAgICAgICAgew0KICAgICAgICAgICAgXF9T Qi5QQ0kwLlNCVVMuSFNUUyA9IDB4MjANCiAgICAgICAgfQ0KDQogICAgICAgIE1ldGhvZCAoX0w2 NiwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdnZXJlZCBHUEUsIHh4PTB4 MDAtMHhGRg0KICAgICAgICB7DQogICAgICAgICAgICBJZiAoKFxfU0IuUENJMC5JR1BVLkdTU0Ug JiYgIUdTTUkpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JR1BV LkdTQ0kgKCkNCiAgICAgICAgICAgIH0NCiAgICAgICAgICAgIEVsc2UNCiAgICAgICAgICAgIHsN CiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSUdQVS5HRUZDID0gWmVybw0KICAgICAgICAgICAg ICAgIFNDSVMgPSBPbmUNCiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuSUdQVS5HU1NFID0gWmVy bw0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5JR1BVLlNDSUUgPSBaZXJvDQogICAgICAgICAg ICB9DQogICAgICAgIH0NCg0KICAgICAgICBNZXRob2QgKF9MNjksIDAsIE5vdFNlcmlhbGl6ZWQp ICAvLyBfTHh4OiBMZXZlbC1UcmlnZ2VyZWQgR1BFLCB4eD0weDAwLTB4RkYNCiAgICAgICAgew0K ICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBDSTAuUEVHMCwgMHgwMikgLy8gRGV2aWNlIFdha2UN CiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5QQ0kwLlJQMDEsIDB4MDIpIC8vIERldmljZSBXYWtl DQogICAgICAgICAgICBOb3RpZnkgKFxfU0IuUENJMC5SUDE3LCAweDAyKSAvLyBEZXZpY2UgV2Fr ZQ0KICAgICAgICAgICAgXF9TQi5QQ0kwLlRHUEUgKCkNCiAgICAgICAgICAgIE5vdGlmeSAoXF9T Qi5QQ0kwLlJQMDEuQVJQVCwgMHgwMikgLy8gRGV2aWNlIFdha2UNCiAgICAgICAgfQ0KDQogICAg ICAgIE1ldGhvZCAoX0w2RCwgMCwgTm90U2VyaWFsaXplZCkgIC8vIF9MeHg6IExldmVsLVRyaWdn ZXJlZCBHUEUsIHh4PTB4MDAtMHhGRg0KICAgICAgICB7DQogICAgICAgICAgICBOb3RpZnkgKFxf U0IuUFdSQiwgMHgwMikgLy8gRGV2aWNlIFdha2UNCiAgICAgICAgICAgIE5vdGlmeSAoXF9TQi5Q Q0kwLlhIQzEsIDB4MDIpIC8vIERldmljZSBXYWtlDQogICAgICAgICAgICBJZiAoT1NEVyAoKSl7 fQ0KICAgICAgICB9DQogICAgfQ0KDQogICAgTWV0aG9kIChEVEdQLCA1LCBOb3RTZXJpYWxpemVk KQ0KICAgIHsNCiAgICAgICAgSWYgKChBcmcwID09IFRvVVVJRCAoImEwYjViN2M2LTEzMTgtNDQx Yy1iMGM5LWZlNjk1ZWFmOTQ5YiIpIC8qIFVua25vd24gVVVJRCAqLykpDQogICAgICAgIHsNCiAg ICAgICAgICAgIElmICgoQXJnMSA9PSBPbmUpKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAg ICAgIElmICgoQXJnMiA9PSBaZXJvKSkNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAg ICAgICAgIEFyZzQgPSBCdWZmZXIgKE9uZSkNCiAgICAgICAgICAgICAgICAgICAgICAgIHsNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIC4NCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCiAgICAg ICAgICAgICAgICAgICAgUmV0dXJuIChPbmUpDQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAg ICAgICAgICAgSWYgKChBcmcyID09IE9uZSkpDQogICAgICAgICAgICAgICAgew0KICAgICAgICAg ICAgICAgICAgICBSZXR1cm4gKE9uZSkNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9 DQogICAgICAgIH0NCg0KICAgICAgICBBcmc0ID0gQnVmZmVyIChPbmUpDQogICAgICAgICAgICB7 DQogICAgICAgICAgICAgICAgIDB4MDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLyAuDQogICAgICAgICAgICB9DQogICAgICAgIFJldHVybiAoWmVybykNCiAg ICB9DQoNCiAgICBOYW1lIChfUzAsIFBhY2thZ2UgKDB4MDMpICAvLyBfUzBfOiBTMCBTeXN0ZW0g U3RhdGUNCiAgICB7DQogICAgICAgIFplcm8sIA0KICAgICAgICBaZXJvLCANCiAgICAgICAgWmVy bw0KICAgIH0pDQogICAgTmFtZSAoX1M0LCBQYWNrYWdlICgweDAzKSAgLy8gX1M0XzogUzQgU3lz dGVtIFN0YXRlDQogICAgew0KICAgICAgICAweDA2LCANCiAgICAgICAgMHgwNiwgDQogICAgICAg IFplcm8NCiAgICB9KQ0KICAgIE5hbWUgKF9TNSwgUGFja2FnZSAoMHgwMykgIC8vIF9TNV86IFM1 IFN5c3RlbSBTdGF0ZQ0KICAgIHsNCiAgICAgICAgMHgwNywgDQogICAgICAgIDB4MDcsIA0KICAg ICAgICBaZXJvDQogICAgfSkNCiAgICBNZXRob2QgKF9UVFMsIDEsIE5vdFNlcmlhbGl6ZWQpICAv LyBfVFRTOiBUcmFuc2l0aW9uIFRvIFN0YXRlDQogICAgew0KICAgICAgICBTTFRQID0gQXJnMA0K ICAgIH0NCg0KICAgIE1ldGhvZCAoX1BUUywgMSwgTm90U2VyaWFsaXplZCkgIC8vIF9QVFM6IFBy ZXBhcmUgVG8gU2xlZXANCiAgICB7DQogICAgICAgIFA4MEQgPSBaZXJvDQogICAgICAgIFA4WEgg KFplcm8sIEFyZzApDQogICAgICAgIElmICghT1NEVyAoKSkNCiAgICAgICAgew0KICAgICAgICAg ICAgXF9TQi5QQ0kwLkxQQ0IuRUMuRVdCVCA9IE9uZQ0KICAgICAgICAgICAgXF9TQi5QQ0kwLkxQ Q0IuRUMuRVdMTiA9IE9uZQ0KICAgICAgICAgICAgSWYgKChBcmcwID09IDB4MDMpKQ0KICAgICAg ICAgICAgew0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5VUlQwLkJMVEguQlRMUCAoT25lKQ0K ICAgICAgICAgICAgICAgIFNsZWVwICgweDAzRTgpDQogICAgICAgICAgICAgICAgXF9TQi5QQ0kw LkxQQ0IuRUMuRVdQTSA9IE9uZQ0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkVDLkVX REsgPSBPbmUNCiAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgXF9TQi5QQ0kwLkxQQ0IuRUMu RVdFUCA9IFplcm8NCiAgICAgICAgfQ0KDQogICAgICAgIElmICgoIU9TRFcgKCkgJiYgKEFyZzAg Pj0gMHgwNCkpKQ0KICAgICAgICB7DQogICAgICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5FV0xP ID0gWmVybw0KICAgICAgICB9DQoNCiAgICAgICAgSWYgKChBcmcwID49IDB4MDUpKQ0KICAgICAg ICB7DQogICAgICAgICAgICBcX1NCLlBDSTAuUEVHMS5VUFNCLkxTVFggKFplcm8sIE9uZSkNCiAg ICAgICAgICAgIFxfU0IuUENJMC5QRUcxLlVQU0IuTFNUWCAoT25lLCBPbmUpDQogICAgICAgICAg ICBcX1NCLlBDSTAuUEVHMi5VUFNCLkxTVFggKFplcm8sIE9uZSkNCiAgICAgICAgICAgIFxfU0Iu UENJMC5QRUcyLlVQU0IuTFNUWCAoT25lLCBPbmUpDQogICAgICAgIH0NCg0KICAgICAgICBJZiAo KEFyZzAgPT0gMHgwNCkpDQogICAgICAgIHsNCiAgICAgICAgICAgIFxfU0IuUENJMC5MUENCLkVD LkVXVEIgPSBaZXJvDQogICAgICAgIH0NCg0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5FQ1NT ID0gQXJnMA0KICAgIH0NCg0KICAgIE1ldGhvZCAoX1dBSywgMSwgTm90U2VyaWFsaXplZCkgIC8v IF9XQUs6IFdha2UNCiAgICB7DQogICAgICAgIFA4WEggKFplcm8sIFplcm8pDQogICAgICAgIFxf U0IuUENJMC5MUENCLkVDLkVDU1MgPSBaZXJvDQogICAgICAgIElmICghT1NEVyAoKSkNCiAgICAg ICAgew0KICAgICAgICAgICAgXF9TQi5QQ0kwLlBFRzEuRFRGUCAoKQ0KICAgICAgICAgICAgXF9T Qi5QQ0kwLlBFRzIuRFRGUCAoKQ0KICAgICAgICAgICAgU2xlZXAgKDB4MDEyQykNCiAgICAgICAg ICAgIElmIChUQkcxKQ0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5Q RUcxLklDTUIgKEFyZzApDQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIElmIChUQkcyKQ0K ICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgIFxfU0IuUENJMC5QRUcyLklDTUIgKEFyZzAp DQogICAgICAgICAgICB9DQoNCiAgICAgICAgICAgIElmICgoQXJnMCA9PSAweDAzKSkNCiAgICAg ICAgICAgIHsNCiAgICAgICAgICAgICAgICBcX1NCLlBDSTAuVVJUMC5CTFRILkJUTFAgKFplcm8p DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICBJZiAoT1NEVyAoKSl7fQ0KICAg ICAgICBFbHNlDQogICAgICAgIHsNCiAgICAgICAgfQ0KDQogICAgICAgIExJRFMgPSBcX1NCLlBD STAuTFBDQi5FQy5FTFNXDQogICAgICAgIFxfU0IuUENJMC5JR1BVLkNMSUQgPSBcX1NCLlBDSTAu TFBDQi5FQy5FTFNXDQogICAgICAgIFBXUlMgPSBcX1NCLlBDSTAuTFBDQi5FQy5FQUNQDQogICAg ICAgIElmICghT1NEVyAoKSkNCiAgICAgICAgew0KICAgICAgICAgICAgTm90aWZ5IChcX1NCLlBX UkIsIDB4MDIpIC8vIERldmljZSBXYWtlDQogICAgICAgIH0NCg0KICAgICAgICBcX1NCLlBDSTAu TFBDQi5FQy5MV0UwID0gWmVybw0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5MV0UxID0gWmVy bw0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5MV0UyID0gWmVybw0KICAgICAgICBcX1NCLlBD STAuTFBDQi5FQy5MV0UzID0gWmVybw0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5MV0U0ID0g WmVybw0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5MV0U1ID0gWmVybw0KICAgICAgICBcX1NC LlBDSTAuTFBDQi5FQy5MV0U2ID0gWmVybw0KICAgICAgICBcX1NCLlBDSTAuTFBDQi5FQy5MV0U3 ID0gWmVybw0KICAgICAgICBQTk9UICgpDQogICAgICAgIFJldHVybiAoUGFja2FnZSAoMHgwMikN CiAgICAgICAgew0KICAgICAgICAgICAgWmVybywgDQogICAgICAgICAgICBaZXJvDQogICAgICAg IH0pDQogICAgfQ0KfQ0KDQo= --b1_5lAWzksv8VI4ev1d38yCP4RKVIWZj2fOORtpCUEJgg--