From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.3 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3C198C2BA1A for ; Mon, 6 Apr 2020 12:52:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0A99722202 for ; Mon, 6 Apr 2020 12:52:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728097AbgDFMwo (ORCPT ); Mon, 6 Apr 2020 08:52:44 -0400 Received: from foss.arm.com ([217.140.110.172]:45338 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728055AbgDFMwo (ORCPT ); Mon, 6 Apr 2020 08:52:44 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E373531B; Mon, 6 Apr 2020 05:52:43 -0700 (PDT) Received: from [10.57.55.221] (unknown [10.57.55.221]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 42E563F52E; Mon, 6 Apr 2020 05:52:42 -0700 (PDT) Subject: Re: [BUG] PCI: rockchip: rk3399: pcie switch support To: Soeren Moch , Shawn Lin Cc: Lorenzo Pieralisi , Andrew Murray , Bjorn Helgaas , Heiko Stuebner , linux-rockchip@lists.infradead.org, linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <4d03dd8c-14f9-d1ef-6fd2-095423be3dd3@web.de> From: Robin Murphy Message-ID: <3e9d2c53-4f0d-0c97-fbfa-6d799e223747@arm.com> Date: Mon, 6 Apr 2020 13:52:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <4d03dd8c-14f9-d1ef-6fd2-095423be3dd3@web.de> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2020-04-04 7:41 pm, Soeren Moch wrote: > I want to use a PCIe switch on a RK3399 based RockPro64 V2.1 board. > "Normal" PCIe cards work (mostly) just fine on this board. The PCIe > switches (I tried Pericom and ASMedia based switches) also work fine on > other boards. The RK3399 PCIe controller with pcie_rockchip_host driver > also recognises the switch, but fails to initialize the buses behind the > bridge properly, see syslog from linux-5.6.0. > > Any ideas what I do wrong, or any suggestions what I can test here? See the thread here: https://lore.kernel.org/linux-pci/CAMdYzYoTwjKz4EN8PtD5pZfu3+SX+68JL+dfvmCrSnLL=K6Few@mail.gmail.com/ The conclusion there seems to be that the RK3399 root complex just doesn't handle certain types of response in a sensible manner, and there's not much that can reasonably be done to change that. Robin. > > Thanks, > Soeren > > > Apr  4 19:50:38 rockpro64 kernel: [   74.501951] rockchip-pcie > f8000000.pcie: f8000000.pcie supply vpcie1v8 not found, using dummy > regulator > Apr  4 19:50:38 rockpro64 kernel: [   74.502906] rockchip-pcie > f8000000.pcie: f8000000.pcie supply vpcie0v9 not found, using dummy > regulator > Apr  4 19:50:38 rockpro64 kernel: [   74.572050] rockchip-pcie > f8000000.pcie: host bridge /pcie@f8000000 ranges: > Apr  4 19:50:38 rockpro64 kernel: [   74.573018] rockchip-pcie > f8000000.pcie: Parsing ranges property... > Apr  4 19:50:38 rockpro64 kernel: [   74.573040] rockchip-pcie > f8000000.pcie:      MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.574080] rockchip-pcie > f8000000.pcie:       IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000 > Apr  4 19:50:38 rockpro64 kernel: [   74.575420] rockchip-pcie > f8000000.pcie: PCI host bridge to bus 0000:00 > Apr  4 19:50:38 rockpro64 kernel: [   74.576247] pci_bus 0000:00: root > bus resource [bus 00-1f] > Apr  4 19:50:38 rockpro64 kernel: [   74.576930] pci_bus 0000:00: root > bus resource [mem 0xfa000000-0xfbdfffff] > Apr  4 19:50:38 rockpro64 kernel: [   74.577739] pci_bus 0000:00: root > bus resource [io  0x0000-0xfffff] (bus address [0xfbe00000-0xfbefffff]) > Apr  4 19:50:38 rockpro64 kernel: [   74.578876] pci_bus 0000:00: > scanning bus > Apr  4 19:50:38 rockpro64 kernel: [   74.578918] pci 0000:00:00.0: > [1d87:0100] type 01 class 0x060400 > Apr  4 19:50:38 rockpro64 kernel: [   74.579734] pci 0000:00:00.0: > supports D1 > Apr  4 19:50:38 rockpro64 kernel: [   74.580252] pci 0000:00:00.0: PME# > supported from D0 D1 D3hot > Apr  4 19:50:38 rockpro64 kernel: [   74.580952] pci 0000:00:00.0: PME# > disabled > Apr  4 19:50:38 rockpro64 kernel: [   74.585475] pci_bus 0000:00: fixups > for bus > Apr  4 19:50:38 rockpro64 kernel: [   74.585491] pci 0000:00:00.0: > scanning [bus 00-00] behind bridge, pass 0 > Apr  4 19:50:38 rockpro64 kernel: [   74.585497] pci 0000:00:00.0: > bridge configuration invalid ([bus 00-00]), reconfiguring > Apr  4 19:50:38 rockpro64 kernel: [   74.586562] pci 0000:00:00.0: > scanning [bus 00-00] behind bridge, pass 1 > Apr  4 19:50:38 rockpro64 kernel: [   74.586725] pci_bus 0000:01: > scanning bus > Apr  4 19:50:38 rockpro64 kernel: [   74.586792] pci 0000:01:00.0: > [1b21:1182] type 01 class 0x060400 > Apr  4 19:50:38 rockpro64 kernel: [   74.587785] pci 0000:01:00.0: Max > Payload Size set to 256 (was 128, max 256) > Apr  4 19:50:38 rockpro64 kernel: [   74.588625] pci 0000:01:00.0: > enabling Extended Tags > Apr  4 19:50:38 rockpro64 kernel: [   74.589487] pci 0000:01:00.0: PME# > supported from D0 D3hot D3cold > Apr  4 19:50:38 rockpro64 kernel: [   74.590199] pci 0000:01:00.0: PME# > disabled > Apr  4 19:50:38 rockpro64 kernel: [   74.590344] pci 0000:01:00.0: 2.000 > Gb/s available PCIe bandwidth, limited by 2.5 GT/s x1 link at > 0000:00:00.0 (capable of 4.000 Gb/s with 5 GT/s x1 link) > Apr  4 19:50:38 rockpro64 kernel: [   74.598206] pci_bus 0000:01: fixups > for bus > Apr  4 19:50:38 rockpro64 kernel: [   74.598226] pci 0000:01:00.0: > scanning [bus 00-00] behind bridge, pass 0 > Apr  4 19:50:38 rockpro64 kernel: [   74.598231] pci 0000:01:00.0: > bridge configuration invalid ([bus 00-00]), reconfiguring > Apr  4 19:50:38 rockpro64 kernel: [   74.599163] pci 0000:01:00.0: > scanning [bus 00-00] behind bridge, pass 1 > Apr  4 19:50:38 rockpro64 kernel: [   74.599443] pci_bus 0000:02: > scanning bus > Apr  4 19:50:38 rockpro64 kernel: [   74.599460] Internal error: > synchronous external abort: 96000210 [#1] PREEMPT SMP > Apr  4 19:50:38 rockpro64 kernel: [   74.600271] Modules linked in: > pcie_rockchip_host(+) brcmfmac brcmutil > Apr  4 19:50:38 rockpro64 kernel: [   74.600978] CPU: 3 PID: 565 Comm: > modprobe Not tainted 5.6.0 #1 > Apr  4 19:50:38 rockpro64 kernel: [   74.601607] Hardware name: Pine64 > RockPro64 v2.1 (DT) > Apr  4 19:50:38 rockpro64 kernel: [   74.602147] pstate: 60000085 (nZCv > daIf -PAN -UAO) > Apr  4 19:50:38 rockpro64 kernel: [   74.602666] pc : > rockchip_pcie_rd_conf+0x120/0x228 [pcie_rockchip_host] > Apr  4 19:50:38 rockpro64 kernel: [   74.603373] lr : > rockchip_pcie_rd_conf+0x94/0x228 [pcie_rockchip_host] > Apr  4 19:50:38 rockpro64 kernel: [   74.604064] sp : ffffffc011003500 > Apr  4 19:50:38 rockpro64 kernel: [   74.604419] x29: ffffffc011003500 > x28: 0000000000000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.604986] x27: 0000000000000001 > x26: 0000000000000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.605552] x25: 0000000000000000 > x24: ffffffc011003644 > Apr  4 19:50:38 rockpro64 kernel: [   74.606117] x23: ffffff80f1792000 > x22: ffffffc011003584 > Apr  4 19:50:38 rockpro64 kernel: [   74.606683] x21: ffffff80e98313c0 > x20: 0000000000000004 > Apr  4 19:50:38 rockpro64 kernel: [   74.607249] x19: ffffffc012200000 > x18: 00000000fffffff0 > Apr  4 19:50:38 rockpro64 kernel: [   74.607815] x17: 0000000000000000 > x16: 0000000000000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.608381] x15: ffffffc010b77c00 > x14: ffffffc010be2e28 > Apr  4 19:50:38 rockpro64 kernel: [   74.608947] x13: 0000000000000000 > x12: ffffffc010be2000 > Apr  4 19:50:38 rockpro64 kernel: [   74.609512] x11: ffffffc010b77000 > x10: ffffffc010be2470 > Apr  4 19:50:38 rockpro64 kernel: [   74.610079] x9 : 0000000011821b21 > x8 : 0000000000000001 > Apr  4 19:50:38 rockpro64 kernel: [   74.615455] x7 : 0000000000000000 > x6 : 0000000000000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.621487] x5 : 0000000000200000 > x4 : 0000000000000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.627519] x3 : 0000000000c00008 > x2 : 000000000080000b > Apr  4 19:50:38 rockpro64 kernel: [   74.633551] x1 : ffffffc015c00008 > x0 : ffffffc012000000 > Apr  4 19:50:38 rockpro64 kernel: [   74.639583] Call trace: > Apr  4 19:50:38 rockpro64 kernel: [   74.645785] > rockchip_pcie_rd_conf+0x120/0x228 [pcie_rockchip_host] > Apr  4 19:50:38 rockpro64 kernel: [   74.656354] > pci_bus_read_config_dword+0x80/0xd0 > Apr  4 19:50:38 rockpro64 kernel: [   74.665083] > pci_bus_generic_read_dev_vendor_id+0x30/0x1a8 > Apr  4 19:50:38 rockpro64 kernel: [   74.674722] > pci_bus_read_dev_vendor_id+0x48/0x68 > Apr  4 19:50:38 rockpro64 kernel: [   74.683382] > pci_scan_single_device+0x7c/0xd8 > Apr  4 19:50:38 rockpro64 kernel: [   74.691690]  pci_scan_slot+0x34/0x118 > Apr  4 19:50:38 rockpro64 kernel: [   74.699155] > pci_scan_child_bus_extend+0x60/0x2cc > Apr  4 19:50:38 rockpro64 kernel: [   74.707774] > pci_scan_bridge_extend+0x340/0x578 > Apr  4 19:50:38 rockpro64 kernel: [   74.716224] > pci_scan_child_bus_extend+0x20c/0x2cc > Apr  4 19:50:38 rockpro64 kernel: [   74.724943] > pci_scan_bridge_extend+0x340/0x578 > Apr  4 19:50:38 rockpro64 kernel: [   74.733320] > pci_scan_child_bus_extend+0x20c/0x2cc > Apr  4 19:50:38 rockpro64 kernel: [   74.741998] > pci_scan_child_bus+0x10/0x18 > Apr  4 19:50:38 rockpro64 kernel: [   74.749739] > pci_scan_root_bus_bridge+0x78/0xd0 > Apr  4 19:50:38 rockpro64 kernel: [   74.757988] > rockchip_pcie_probe+0x830/0xb90 [pcie_rockchip_host] > Apr  4 19:50:38 rockpro64 kernel: [   74.768042] > platform_drv_probe+0x50/0xa0 > Apr  4 19:50:38 rockpro64 kernel: [   74.775758]  really_probe+0xd8/0x300 > Apr  4 19:50:38 rockpro64 kernel: [   74.782939] > driver_probe_device+0x54/0xe8 > Apr  4 19:50:38 rockpro64 kernel: [   74.790661] > device_driver_attach+0x6c/0x78 > Apr  4 19:50:38 rockpro64 kernel: [   74.798461]  __driver_attach+0x54/0xd0 > Apr  4 19:50:38 rockpro64 kernel: [   74.805744]  bus_for_each_dev+0x70/0xc0 > Apr  4 19:50:38 rockpro64 kernel: [   74.813119]  driver_attach+0x20/0x28 > Apr  4 19:50:38 rockpro64 kernel: [   74.820101]  bus_add_driver+0x178/0x1d8 > Apr  4 19:50:38 rockpro64 kernel: [   74.827249]  driver_register+0x60/0x110 > Apr  4 19:50:38 rockpro64 kernel: [   74.834308] > __platform_driver_register+0x44/0x50 > Apr  4 19:50:38 rockpro64 kernel: [   74.842299] > rockchip_pcie_driver_init+0x20/0x1000 [pcie_rockchip_host] > Apr  4 19:50:38 rockpro64 kernel: [   74.852443]  do_one_initcall+0x74/0x1a8 > Apr  4 19:50:38 rockpro64 kernel: [   74.859430]  do_init_module+0x50/0x1f0 > Apr  4 19:50:38 rockpro64 kernel: [   74.866276]  load_module+0x1c0c/0x2158 > Apr  4 19:50:38 rockpro64 kernel: [   74.873100] > __do_sys_finit_module+0xd0/0xe8 > Apr  4 19:50:38 rockpro64 kernel: [   74.880480] > __arm64_sys_finit_module+0x1c/0x28 > Apr  4 19:50:38 rockpro64 kernel: [   74.888157] > el0_svc_common.constprop.1+0x7c/0xe8 > Apr  4 19:50:38 rockpro64 kernel: [   74.896000]  do_el0_svc+0x18/0x20 > Apr  4 19:50:38 rockpro64 kernel: [   74.902285] > el0_sync_handler+0x12c/0x1b0 > Apr  4 19:50:38 rockpro64 kernel: [   74.909380]  el0_sync+0x114/0x140 > Apr  4 19:50:38 rockpro64 kernel: [   74.915692] Code: a8c37bfd d65f03c0 > f94002a0 8b130013 (b9400273) > Apr  4 19:50:38 rockpro64 kernel: [   74.925210] ---[ end trace > 181d7993f92f3f3d ]--- > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.4 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 793C2C2BA19 for ; Mon, 6 Apr 2020 12:52:51 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 43E9522205 for ; Mon, 6 Apr 2020 12:52:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="sImrvew4" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 43E9522205 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=63bPJ9x3sGPcgOeX3IomKMFSgoQ03kIa4rUY4pzDqqI=; b=sImrvew4+9U0288WH3yRQCzgL jh+alNJ+yqJLJUayHu2ptH+dCtgqB2XDlXk4qHB0jr+0je5/mavM15AYuk3PHXce5HFiwYUz35jIP KLHx115hUJV8+Q9NRNEzxeEvfPZFY/WRNAEkvgjdz78lUDw30MlJ5BwmWJyEFE5WoqrffdUqxPfDf DzZxGMLObvygJxa+CeLUak/zWNKt1qTyxxgkqsPwse/xTzEaEo0RMW0ri39C35zMNEKAbRnqD4llY 6h0wmk3uDNGs0cvvoKw3/wf9Fd+eukxiCi6lB0ujvEnRM94f95Was0TVrp7Mu1ErVPFZAnlDAlSQU VzP60DlDw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jLRFC-0005e9-J2; Mon, 06 Apr 2020 12:52:50 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jLRF8-0005bk-IH; Mon, 06 Apr 2020 12:52:48 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id E373531B; Mon, 6 Apr 2020 05:52:43 -0700 (PDT) Received: from [10.57.55.221] (unknown [10.57.55.221]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 42E563F52E; Mon, 6 Apr 2020 05:52:42 -0700 (PDT) Subject: Re: [BUG] PCI: rockchip: rk3399: pcie switch support To: Soeren Moch , Shawn Lin References: <4d03dd8c-14f9-d1ef-6fd2-095423be3dd3@web.de> From: Robin Murphy Message-ID: <3e9d2c53-4f0d-0c97-fbfa-6d799e223747@arm.com> Date: Mon, 6 Apr 2020 13:52:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 MIME-Version: 1.0 In-Reply-To: <4d03dd8c-14f9-d1ef-6fd2-095423be3dd3@web.de> Content-Language: en-GB X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200406_055246_693738_93480194 X-CRM114-Status: GOOD ( 16.29 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lorenzo Pieralisi , Heiko Stuebner , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-rockchip@lists.infradead.org, Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, Andrew Murray Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMjAyMC0wNC0wNCA3OjQxIHBtLCBTb2VyZW4gTW9jaCB3cm90ZToKPiBJIHdhbnQgdG8gdXNl IGEgUENJZSBzd2l0Y2ggb24gYSBSSzMzOTkgYmFzZWQgUm9ja1BybzY0IFYyLjEgYm9hcmQuCj4g Ik5vcm1hbCIgUENJZSBjYXJkcyB3b3JrIChtb3N0bHkpIGp1c3QgZmluZSBvbiB0aGlzIGJvYXJk LiBUaGUgUENJZQo+IHN3aXRjaGVzIChJIHRyaWVkIFBlcmljb20gYW5kIEFTTWVkaWEgYmFzZWQg c3dpdGNoZXMpIGFsc28gd29yayBmaW5lIG9uCj4gb3RoZXIgYm9hcmRzLiBUaGUgUkszMzk5IFBD SWUgY29udHJvbGxlciB3aXRoIHBjaWVfcm9ja2NoaXBfaG9zdCBkcml2ZXIKPiBhbHNvIHJlY29n bmlzZXMgdGhlIHN3aXRjaCwgYnV0IGZhaWxzIHRvIGluaXRpYWxpemUgdGhlIGJ1c2VzIGJlaGlu ZCB0aGUKPiBicmlkZ2UgcHJvcGVybHksIHNlZSBzeXNsb2cgZnJvbSBsaW51eC01LjYuMC4KPiAK PiBBbnkgaWRlYXMgd2hhdCBJIGRvIHdyb25nLCBvciBhbnkgc3VnZ2VzdGlvbnMgd2hhdCBJIGNh biB0ZXN0IGhlcmU/CgpTZWUgdGhlIHRocmVhZCBoZXJlOgoKaHR0cHM6Ly9sb3JlLmtlcm5lbC5v cmcvbGludXgtcGNpL0NBTWRZellvVHdqS3o0RU44UHRENXBaZnUzK1NYKzY4SkwrZGZ2bUNyU25M TD1LNkZld0BtYWlsLmdtYWlsLmNvbS8KClRoZSBjb25jbHVzaW9uIHRoZXJlIHNlZW1zIHRvIGJl IHRoYXQgdGhlIFJLMzM5OSByb290IGNvbXBsZXgganVzdCAKZG9lc24ndCBoYW5kbGUgY2VydGFp biB0eXBlcyBvZiByZXNwb25zZSBpbiBhIHNlbnNpYmxlIG1hbm5lciwgYW5kIAp0aGVyZSdzIG5v dCBtdWNoIHRoYXQgY2FuIHJlYXNvbmFibHkgYmUgZG9uZSB0byBjaGFuZ2UgdGhhdC4KClJvYmlu LgoKPiAKPiBUaGFua3MsCj4gU29lcmVuCj4gCj4gCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJv NjQga2VybmVsOiBbwqDCoCA3NC41MDE5NTFdIHJvY2tjaGlwLXBjaWUKPiBmODAwMDAwMC5wY2ll OiBmODAwMDAwMC5wY2llIHN1cHBseSB2cGNpZTF2OCBub3QgZm91bmQsIHVzaW5nIGR1bW15Cj4g cmVndWxhdG9yCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41 MDI5MDZdIHJvY2tjaGlwLXBjaWUKPiBmODAwMDAwMC5wY2llOiBmODAwMDAwMC5wY2llIHN1cHBs eSB2cGNpZTB2OSBub3QgZm91bmQsIHVzaW5nIGR1bW15Cj4gcmVndWxhdG9yCj4gQXBywqAgNCAx OTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41NzIwNTBdIHJvY2tjaGlwLXBjaWUK PiBmODAwMDAwMC5wY2llOiBob3N0IGJyaWRnZSAvcGNpZUBmODAwMDAwMCByYW5nZXM6Cj4gQXBy wqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41NzMwMThdIHJvY2tjaGlw LXBjaWUKPiBmODAwMDAwMC5wY2llOiBQYXJzaW5nIHJhbmdlcyBwcm9wZXJ0eS4uLgo+IEFwcsKg IDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNTczMDQwXSByb2NrY2hpcC1w Y2llCj4gZjgwMDAwMDAucGNpZTrCoMKgwqDCoMKgIE1FTSAweDAwZmEwMDAwMDAuLjB4MDBmYmRm ZmZmZiAtPiAweDAwZmEwMDAwMDAKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6 IFvCoMKgIDc0LjU3NDA4MF0gcm9ja2NoaXAtcGNpZQo+IGY4MDAwMDAwLnBjaWU6wqDCoMKgwqDC oMKgIElPIDB4MDBmYmUwMDAwMC4uMHgwMGZiZWZmZmZmIC0+IDB4MDBmYmUwMDAwMAo+IEFwcsKg IDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNTc1NDIwXSByb2NrY2hpcC1w Y2llCj4gZjgwMDAwMDAucGNpZTogUENJIGhvc3QgYnJpZGdlIHRvIGJ1cyAwMDAwOjAwCj4gQXBy wqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41NzYyNDddIHBjaV9idXMg MDAwMDowMDogcm9vdAo+IGJ1cyByZXNvdXJjZSBbYnVzIDAwLTFmXQo+IEFwcsKgIDQgMTk6NTA6 Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNTc2OTMwXSBwY2lfYnVzIDAwMDA6MDA6IHJv b3QKPiBidXMgcmVzb3VyY2UgW21lbSAweGZhMDAwMDAwLTB4ZmJkZmZmZmZdCj4gQXBywqAgNCAx OTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41Nzc3MzldIHBjaV9idXMgMDAwMDow MDogcm9vdAo+IGJ1cyByZXNvdXJjZSBbaW/CoCAweDAwMDAtMHhmZmZmZl0gKGJ1cyBhZGRyZXNz IFsweGZiZTAwMDAwLTB4ZmJlZmZmZmZdKQo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtl cm5lbDogW8KgwqAgNzQuNTc4ODc2XSBwY2lfYnVzIDAwMDA6MDA6Cj4gc2Nhbm5pbmcgYnVzCj4g QXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41Nzg5MThdIHBjaSAw MDAwOjAwOjAwLjA6Cj4gWzFkODc6MDEwMF0gdHlwZSAwMSBjbGFzcyAweDA2MDQwMAo+IEFwcsKg IDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNTc5NzM0XSBwY2kgMDAwMDow MDowMC4wOgo+IHN1cHBvcnRzIEQxCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVs OiBbwqDCoCA3NC41ODAyNTJdIHBjaSAwMDAwOjAwOjAwLjA6IFBNRSMKPiBzdXBwb3J0ZWQgZnJv bSBEMCBEMSBEM2hvdAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAg NzQuNTgwOTUyXSBwY2kgMDAwMDowMDowMC4wOiBQTUUjCj4gZGlzYWJsZWQKPiBBcHLCoCA0IDE5 OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjU4NTQ3NV0gcGNpX2J1cyAwMDAwOjAw OiBmaXh1cHMKPiBmb3IgYnVzCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBb wqDCoCA3NC41ODU0OTFdIHBjaSAwMDAwOjAwOjAwLjA6Cj4gc2Nhbm5pbmcgW2J1cyAwMC0wMF0g YmVoaW5kIGJyaWRnZSwgcGFzcyAwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVs OiBbwqDCoCA3NC41ODU0OTddIHBjaSAwMDAwOjAwOjAwLjA6Cj4gYnJpZGdlIGNvbmZpZ3VyYXRp b24gaW52YWxpZCAoW2J1cyAwMC0wMF0pLCByZWNvbmZpZ3VyaW5nCj4gQXBywqAgNCAxOTo1MDoz OCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41ODY1NjJdIHBjaSAwMDAwOjAwOjAwLjA6Cj4g c2Nhbm5pbmcgW2J1cyAwMC0wMF0gYmVoaW5kIGJyaWRnZSwgcGFzcyAxCj4gQXBywqAgNCAxOTo1 MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41ODY3MjVdIHBjaV9idXMgMDAwMDowMToK PiBzY2FubmluZyBidXMKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKg IDc0LjU4Njc5Ml0gcGNpIDAwMDA6MDE6MDAuMDoKPiBbMWIyMToxMTgyXSB0eXBlIDAxIGNsYXNz IDB4MDYwNDAwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41 ODc3ODVdIHBjaSAwMDAwOjAxOjAwLjA6IE1heAo+IFBheWxvYWQgU2l6ZSBzZXQgdG8gMjU2ICh3 YXMgMTI4LCBtYXggMjU2KQo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8Kg wqAgNzQuNTg4NjI1XSBwY2kgMDAwMDowMTowMC4wOgo+IGVuYWJsaW5nIEV4dGVuZGVkIFRhZ3MK PiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjU4OTQ4N10gcGNp IDAwMDA6MDE6MDAuMDogUE1FIwo+IHN1cHBvcnRlZCBmcm9tIEQwIEQzaG90IEQzY29sZAo+IEFw csKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNTkwMTk5XSBwY2kgMDAw MDowMTowMC4wOiBQTUUjCj4gZGlzYWJsZWQKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBr ZXJuZWw6IFvCoMKgIDc0LjU5MDM0NF0gcGNpIDAwMDA6MDE6MDAuMDogMi4wMDAKPiBHYi9zIGF2 YWlsYWJsZSBQQ0llIGJhbmR3aWR0aCwgbGltaXRlZCBieSAyLjUgR1QvcyB4MSBsaW5rIGF0Cj4g MDAwMDowMDowMC4wIChjYXBhYmxlIG9mIDQuMDAwIEdiL3Mgd2l0aCA1IEdUL3MgeDEgbGluaykK PiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjU5ODIwNl0gcGNp X2J1cyAwMDAwOjAxOiBmaXh1cHMKPiBmb3IgYnVzCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJv NjQga2VybmVsOiBbwqDCoCA3NC41OTgyMjZdIHBjaSAwMDAwOjAxOjAwLjA6Cj4gc2Nhbm5pbmcg W2J1cyAwMC0wMF0gYmVoaW5kIGJyaWRnZSwgcGFzcyAwCj4gQXBywqAgNCAxOTo1MDozOCByb2Nr cHJvNjQga2VybmVsOiBbwqDCoCA3NC41OTgyMzFdIHBjaSAwMDAwOjAxOjAwLjA6Cj4gYnJpZGdl IGNvbmZpZ3VyYXRpb24gaW52YWxpZCAoW2J1cyAwMC0wMF0pLCByZWNvbmZpZ3VyaW5nCj4gQXBy wqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41OTkxNjNdIHBjaSAwMDAw OjAxOjAwLjA6Cj4gc2Nhbm5pbmcgW2J1cyAwMC0wMF0gYmVoaW5kIGJyaWRnZSwgcGFzcyAxCj4g QXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC41OTk0NDNdIHBjaV9i dXMgMDAwMDowMjoKPiBzY2FubmluZyBidXMKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBr ZXJuZWw6IFvCoMKgIDc0LjU5OTQ2MF0gSW50ZXJuYWwgZXJyb3I6Cj4gc3luY2hyb25vdXMgZXh0 ZXJuYWwgYWJvcnQ6IDk2MDAwMjEwIFsjMV0gUFJFRU1QVCBTTVAKPiBBcHLCoCA0IDE5OjUwOjM4 IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjYwMDI3MV0gTW9kdWxlcyBsaW5rZWQgaW46Cj4g cGNpZV9yb2NrY2hpcF9ob3N0KCspIGJyY21mbWFjIGJyY211dGlsCj4gQXBywqAgNCAxOTo1MDoz OCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42MDA5NzhdIENQVTogMyBQSUQ6IDU2NSBDb21t Ogo+IG1vZHByb2JlIE5vdCB0YWludGVkIDUuNi4wICMxCj4gQXBywqAgNCAxOTo1MDozOCByb2Nr cHJvNjQga2VybmVsOiBbwqDCoCA3NC42MDE2MDddIEhhcmR3YXJlIG5hbWU6IFBpbmU2NAo+IFJv Y2tQcm82NCB2Mi4xIChEVCkKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvC oMKgIDc0LjYwMjE0N10gcHN0YXRlOiA2MDAwMDA4NSAoblpDdgo+IGRhSWYgLVBBTiAtVUFPKQo+ IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjAyNjY2XSBwYyA6 Cj4gcm9ja2NoaXBfcGNpZV9yZF9jb25mKzB4MTIwLzB4MjI4IFtwY2llX3JvY2tjaGlwX2hvc3Rd Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42MDMzNzNdIGxy IDoKPiByb2NrY2hpcF9wY2llX3JkX2NvbmYrMHg5NC8weDIyOCBbcGNpZV9yb2NrY2hpcF9ob3N0 XQo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjA0MDY0XSBz cCA6IGZmZmZmZmMwMTEwMDM1MDAKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6 IFvCoMKgIDc0LjYwNDQxOV0geDI5OiBmZmZmZmZjMDExMDAzNTAwCj4geDI4OiAwMDAwMDAwMDAw MDAwMDAwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42MDQ5 ODZdIHgyNzogMDAwMDAwMDAwMDAwMDAwMQo+IHgyNjogMDAwMDAwMDAwMDAwMDAwMAo+IEFwcsKg IDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjA1NTUyXSB4MjU6IDAwMDAw MDAwMDAwMDAwMDAKPiB4MjQ6IGZmZmZmZmMwMTEwMDM2NDQKPiBBcHLCoCA0IDE5OjUwOjM4IHJv Y2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjYwNjExN10geDIzOiBmZmZmZmY4MGYxNzkyMDAwCj4g eDIyOiBmZmZmZmZjMDExMDAzNTg0Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVs OiBbwqDCoCA3NC42MDY2ODNdIHgyMTogZmZmZmZmODBlOTgzMTNjMAo+IHgyMDogMDAwMDAwMDAw MDAwMDAwNAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjA3 MjQ5XSB4MTk6IGZmZmZmZmMwMTIyMDAwMDAKPiB4MTg6IDAwMDAwMDAwZmZmZmZmZjAKPiBBcHLC oCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjYwNzgxNV0geDE3OiAwMDAw MDAwMDAwMDAwMDAwCj4geDE2OiAwMDAwMDAwMDAwMDAwMDAwCj4gQXBywqAgNCAxOTo1MDozOCBy b2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42MDgzODFdIHgxNTogZmZmZmZmYzAxMGI3N2MwMAo+ IHgxNDogZmZmZmZmYzAxMGJlMmUyOAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5l bDogW8KgwqAgNzQuNjA4OTQ3XSB4MTM6IDAwMDAwMDAwMDAwMDAwMDAKPiB4MTI6IGZmZmZmZmMw MTBiZTIwMDAKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjYw OTUxMl0geDExOiBmZmZmZmZjMDEwYjc3MDAwCj4geDEwOiBmZmZmZmZjMDEwYmUyNDcwCj4gQXBy wqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42MTAwNzldIHg5IDogMDAw MDAwMDAxMTgyMWIyMQo+IHg4IDogMDAwMDAwMDAwMDAwMDAwMQo+IEFwcsKgIDQgMTk6NTA6Mzgg cm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjE1NDU1XSB4NyA6IDAwMDAwMDAwMDAwMDAwMDAK PiB4NiA6IDAwMDAwMDAwMDAwMDAwMDAKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJu ZWw6IFvCoMKgIDc0LjYyMTQ4N10geDUgOiAwMDAwMDAwMDAwMjAwMDAwCj4geDQgOiAwMDAwMDAw MDAwMDAwMDAwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42 Mjc1MTldIHgzIDogMDAwMDAwMDAwMGMwMDAwOAo+IHgyIDogMDAwMDAwMDAwMDgwMDAwYgo+IEFw csKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjMzNTUxXSB4MSA6IGZm ZmZmZmMwMTVjMDAwMDgKPiB4MCA6IGZmZmZmZmMwMTIwMDAwMDAKPiBBcHLCoCA0IDE5OjUwOjM4 IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjYzOTU4M10gQ2FsbCB0cmFjZToKPiBBcHLCoCA0 IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjY0NTc4NV0KPiByb2NrY2hpcF9w Y2llX3JkX2NvbmYrMHgxMjAvMHgyMjggW3BjaWVfcm9ja2NoaXBfaG9zdF0KPiBBcHLCoCA0IDE5 OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjY1NjM1NF0KPiBwY2lfYnVzX3JlYWRf Y29uZmlnX2R3b3JkKzB4ODAvMHhkMAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5l bDogW8KgwqAgNzQuNjY1MDgzXQo+IHBjaV9idXNfZ2VuZXJpY19yZWFkX2Rldl92ZW5kb3JfaWQr MHgzMC8weDFhOAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQu Njc0NzIyXQo+IHBjaV9idXNfcmVhZF9kZXZfdmVuZG9yX2lkKzB4NDgvMHg2OAo+IEFwcsKgIDQg MTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNjgzMzgyXQo+IHBjaV9zY2FuX3Np bmdsZV9kZXZpY2UrMHg3Yy8weGQ4Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVs OiBbwqDCoCA3NC42OTE2OTBdwqAgcGNpX3NjYW5fc2xvdCsweDM0LzB4MTE4Cj4gQXBywqAgNCAx OTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC42OTkxNTVdCj4gcGNpX3NjYW5fY2hp bGRfYnVzX2V4dGVuZCsweDYwLzB4MmNjCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2Vy bmVsOiBbwqDCoCA3NC43MDc3NzRdCj4gcGNpX3NjYW5fYnJpZGdlX2V4dGVuZCsweDM0MC8weDU3 OAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNzE2MjI0XQo+ IHBjaV9zY2FuX2NoaWxkX2J1c19leHRlbmQrMHgyMGMvMHgyY2MKPiBBcHLCoCA0IDE5OjUwOjM4 IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0LjcyNDk0M10KPiBwY2lfc2Nhbl9icmlkZ2VfZXh0 ZW5kKzB4MzQwLzB4NTc4Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDC oCA3NC43MzMzMjBdCj4gcGNpX3NjYW5fY2hpbGRfYnVzX2V4dGVuZCsweDIwYy8weDJjYwo+IEFw csKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNzQxOTk4XQo+IHBjaV9z Y2FuX2NoaWxkX2J1cysweDEwLzB4MTgKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJu ZWw6IFvCoMKgIDc0Ljc0OTczOV0KPiBwY2lfc2Nhbl9yb290X2J1c19icmlkZ2UrMHg3OC8weGQw Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC43NTc5ODhdCj4g cm9ja2NoaXBfcGNpZV9wcm9iZSsweDgzMC8weGI5MCBbcGNpZV9yb2NrY2hpcF9ob3N0XQo+IEFw csKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNzY4MDQyXQo+IHBsYXRm b3JtX2Rydl9wcm9iZSsweDUwLzB4YTAKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJu ZWw6IFvCoMKgIDc0Ljc3NTc1OF3CoCByZWFsbHlfcHJvYmUrMHhkOC8weDMwMAo+IEFwcsKgIDQg MTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuNzgyOTM5XQo+IGRyaXZlcl9wcm9i ZV9kZXZpY2UrMHg1NC8weGU4Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBb wqDCoCA3NC43OTA2NjFdCj4gZGV2aWNlX2RyaXZlcl9hdHRhY2grMHg2Yy8weDc4Cj4gQXBywqAg NCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC43OTg0NjFdwqAgX19kcml2ZXJf YXR0YWNoKzB4NTQvMHhkMAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8Kg wqAgNzQuODA1NzQ0XcKgIGJ1c19mb3JfZWFjaF9kZXYrMHg3MC8weGMwCj4gQXBywqAgNCAxOTo1 MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC44MTMxMTldwqAgZHJpdmVyX2F0dGFjaCsw eDIwLzB4MjgKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0Ljgy MDEwMV3CoCBidXNfYWRkX2RyaXZlcisweDE3OC8weDFkOAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9j a3BybzY0IGtlcm5lbDogW8KgwqAgNzQuODI3MjQ5XcKgIGRyaXZlcl9yZWdpc3RlcisweDYwLzB4 MTEwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC44MzQzMDhd Cj4gX19wbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIrMHg0NC8weDUwCj4gQXBywqAgNCAxOTo1MDoz OCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC44NDIyOTldCj4gcm9ja2NoaXBfcGNpZV9kcml2 ZXJfaW5pdCsweDIwLzB4MTAwMCBbcGNpZV9yb2NrY2hpcF9ob3N0XQo+IEFwcsKgIDQgMTk6NTA6 Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuODUyNDQzXcKgIGRvX29uZV9pbml0Y2FsbCsw eDc0LzB4MWE4Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC44 NTk0MzBdwqAgZG9faW5pdF9tb2R1bGUrMHg1MC8weDFmMAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9j a3BybzY0IGtlcm5lbDogW8KgwqAgNzQuODY2Mjc2XcKgIGxvYWRfbW9kdWxlKzB4MWMwYy8weDIx NTgKPiBBcHLCoCA0IDE5OjUwOjM4IHJvY2twcm82NCBrZXJuZWw6IFvCoMKgIDc0Ljg3MzEwMF0K PiBfX2RvX3N5c19maW5pdF9tb2R1bGUrMHhkMC8weGU4Cj4gQXBywqAgNCAxOTo1MDozOCByb2Nr cHJvNjQga2VybmVsOiBbwqDCoCA3NC44ODA0ODBdCj4gX19hcm02NF9zeXNfZmluaXRfbW9kdWxl KzB4MWMvMHgyOAo+IEFwcsKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQu ODg4MTU3XQo+IGVsMF9zdmNfY29tbW9uLmNvbnN0cHJvcC4xKzB4N2MvMHhlOAo+IEFwcsKgIDQg MTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuODk2MDAwXcKgIGRvX2VsMF9zdmMr MHgxOC8weDIwCj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC45 MDIyODVdCj4gZWwwX3N5bmNfaGFuZGxlcisweDEyYy8weDFiMAo+IEFwcsKgIDQgMTk6NTA6Mzgg cm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuOTA5MzgwXcKgIGVsMF9zeW5jKzB4MTE0LzB4MTQw Cj4gQXBywqAgNCAxOTo1MDozOCByb2NrcHJvNjQga2VybmVsOiBbwqDCoCA3NC45MTU2OTJdIENv ZGU6IGE4YzM3YmZkIGQ2NWYwM2MwCj4gZjk0MDAyYTAgOGIxMzAwMTMgKGI5NDAwMjczKQo+IEFw csKgIDQgMTk6NTA6Mzggcm9ja3BybzY0IGtlcm5lbDogW8KgwqAgNzQuOTI1MjEwXSAtLS1bIGVu ZCB0cmFjZQo+IDE4MWQ3OTkzZjkyZjNmM2QgXS0tLQo+IAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=