Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4545126imw; Tue, 19 Jul 2022 08:33:05 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tJAIGdnPK6FMLk60CQPrAS1tqCV7bEUW6G0WoK+Too1BOZX2DfG+mnXYoqyPNfbwHflpZK X-Received: by 2002:a17:902:a9c6:b0:16c:9d5a:fde1 with SMTP id b6-20020a170902a9c600b0016c9d5afde1mr30351830plr.3.1658244785544; Tue, 19 Jul 2022 08:33:05 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1658244785; cv=pass; d=google.com; s=arc-20160816; b=bBv9gBlU4qxTDS9qdJ3lqV1v1NST+AjA3MCVZXi8TZVpAxMZYGzZxENXM3+6VXdqA9 hrULWRMt/NWJccLxUSAGAJfRWCcr7owkz9iQAufggKSZZzSogWlFXw46X5iqQDluSJAq I/JlLfzxIFsjOr3TM90BgGVMVfxcnrDRK52No7hHij3TMIOOw/pSYYnkCWsLikRkAFmw 2tbqmkWXLFdbFuveIMuI4aIp5CW99TlE2iYzHzuaglgV64IbWnGrfQ1bDS4jegKTLzwP wiHr9gXrJJSupWhSskLI9wf+y9N4BQAa1WcIen7P/qwnmbWRBfnBxIctwAn4ZYqUIZdE 5s+Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=zDoSMqS2jECbCaZv1hxV9LcPuGAIa4GJtpJnsQZXPH0=; b=jqKtRQEfM+LuXnU7JkIdLe7dxmKyyoAgRCoQjgfCzpUeOIsrc3gOEvEmEo/pr1iYpJ sAkS7qXhZ8nWHQVs9PLvh4UiphLh0W38X49fqCs7Nk7mDcrQT5+DK5UGWyiElUReNixn UWhNIzW7iYsCZrYFJen+gLnX6uHGLz/U7njPtKPmF7N9gPlOnEVVgyODuWOx1Kl+3LGq BI/go/AQS1+IFIabgG+Y1H0CPgc/RJo6d+CyZl+qgCZr07MvVMj+gpdloP2CCiLg2oKv 3dWn01bK72cvw/m4TPN7BlaZtLG5P3nfB7tDbfb6EAoULp4WeVOfKYPNzi4s6RIe9uyo zasA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=Oyi4n4ov; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l62-20020a639141000000b0041a4963107fsi3627169pge.211.2022.07.19.08.32.49; Tue, 19 Jul 2022 08:33:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.onmicrosoft.com header.s=selector1-marvell-onmicrosoft-com header.b=Oyi4n4ov; arc=pass (i=1 spf=pass spfdomain=marvell.com dkim=pass dkdomain=marvell.com dmarc=pass fromdomain=marvell.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234077AbiGSOvf (ORCPT + 99 others); Tue, 19 Jul 2022 10:51:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231666AbiGSOva (ORCPT ); Tue, 19 Jul 2022 10:51:30 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED006B48; Tue, 19 Jul 2022 07:51:28 -0700 (PDT) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 26J73oVe014291; Tue, 19 Jul 2022 07:51:06 -0700 Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2048.outbound.protection.outlook.com [104.47.73.48]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3hdqw19gwc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 19 Jul 2022 07:51:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aksC6YeY4zt21Y8/X49nDx6FY4ZYnoGCcMBrCJYSlmFHVyqn96l+VkjmlG86IMHBMrzNYbHuwaBC7WWiysNce/Kp37SXfuhbFJy9aRl1q+NINmM2h2qehOQya1nvHZcjmEQvc87DB0PxMXeM/Joe2D315ASJ6ouLrtV2CMwoIHhYsqUHfamcYnGmMpiN7DCRfooMb2Nb0x/dNcLv66TuwC1MGw+J4fcszSuEmhmVYzWB+9dfR96yE6OwaeUDf9v/vTy2DQGTUilyA+mdLlpe3Hg5NUr+v8RQpZLKl3VFspEMfYK33gWLaEC9lnaYDXFEorL9iiENO3haTOOviBUhTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zDoSMqS2jECbCaZv1hxV9LcPuGAIa4GJtpJnsQZXPH0=; b=E/sPYa+o4r+MRcspm+Bnc/teEpjgkrpoBzXq99KufOlw+GpzG63GlQyQ2hNg5T3YIzGUBjjalgcTrzq+GFohnyuQGq5JcHnhf7jaMXAGhKuPC7pz7kYAys3+XbF6I3ywzgxItnCrAy7ufp9tfGcZht2PgNED3xQ7pbNR+l8NBaGDfF7yrO5D/8YRM24HDpMbQXifH1bCbpVi3uC+tng/2/w/L1LfPjCdm5QEm6kn49S68S+ZtPtL738NRyrEasdxo4gTTNPU0OS7t1cVh8iztq/RQNzh33it+CaW2KdmDmg4lnHaSmlc3PawR0ARb0ADjXNv4EO6PPqyleCJCOEJWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zDoSMqS2jECbCaZv1hxV9LcPuGAIa4GJtpJnsQZXPH0=; b=Oyi4n4ovzRK7sa0gne4Uxqfv0S+aFo+NN9fjbiR8eDYT998R38CpgvjAaoV/UpaxtT16q1xMj6BP/Ynil1vAXtVb52ra/t/lWdd3kufip+jsH68/GDlmnNPAQloylQ/PcgGMybEYXdct4KyA8bAptLfAwKYIiK57179M/1WuWwU= Received: from BN9PR18MB4251.namprd18.prod.outlook.com (2603:10b6:408:11c::10) by DM6PR18MB2410.namprd18.prod.outlook.com (2603:10b6:5:187::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5438.23; Tue, 19 Jul 2022 14:51:02 +0000 Received: from BN9PR18MB4251.namprd18.prod.outlook.com ([fe80::43f:605a:2b6a:2398]) by BN9PR18MB4251.namprd18.prod.outlook.com ([fe80::43f:605a:2b6a:2398%4]) with mapi id 15.20.5438.023; Tue, 19 Jul 2022 14:51:02 +0000 From: Elad Nachman To: =?utf-8?B?UGFsaSBSb2jDoXI=?= CC: Ratheesh Kannoth , Tanmay Jagdale , Shijith Thotton , Arun Easi , =?utf-8?B?S3J6eXN6dG9mIFdpbGN6ecWEc2tp?= , Lorenzo Pieralisi , Thomas Petazzoni , Bjorn Helgaas , =?utf-8?B?TWFyZWsgQmVow7pu?= , Remi Pommarel , Xogium , "linux-pci@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , Bharat Bhushan , Veerasenareddy Burru , Wojciech Bartczak Subject: RE: [EXT] Re: Issues with A3720 PCIe controller driver pci-aardvark.c Thread-Topic: [EXT] Re: Issues with A3720 PCIe controller driver pci-aardvark.c Thread-Index: AQHYlE8tqYxTxczByUa5aF4fmeUTY62CUk3QgAMqQoCAAAuYgIAAHxoAgAAZCgCAABAmgIAAA4yA Date: Tue, 19 Jul 2022 14:51:02 +0000 Message-ID: References: <20210723221710.wtztsrddudnxeoj3@pali> <20220216200940.fwdwk5rcb4zq6dyg@pali> <20220710112108.jegpz4khfsrb4ahd@pali> <20220719093323.nzkpe2kcibszzgzm@pali> <20220719120612.eziy4magdznr6uek@pali> <20220719143337.7wzvqkesyxnbp5pn@pali> In-Reply-To: <20220719143337.7wzvqkesyxnbp5pn@pali> Accept-Language: he-IL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b77d7238-2e34-48ed-8821-08da699619e5 x-ms-traffictypediagnostic: DM6PR18MB2410:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ndIm9qtTN0FXmOGPdsrHILCHV4RGLKDRS+SzPa0dWfNm3I3xgyavA1xFSXM+1zxvtqCPii6GM1uxKDNjNh0vFVAP82cLgoTKk6G74kxq57z0CCQ8nz+iqJ9xj2IPmXxKxO2KXgoWQhunsarVjG/Jy9uH+/efKTZg7ue9cmwTYYQQQgIeWWRJ6XLULBqHKJr3prmEtMkB5b4GoWzHbDsm/bUMEe7pL6+F/4Lg+Ogkk9b0id+FLEz+/cFykfxl2HjqcN66VnqPXMic72IPytGXE7FfHq4nm9Ba1DXaIEgLOHUc8ng6TOVrC9MAdcslsLMeU6EK4qc6B6JXs+DP4gx/cvm1EGIW5oduyMTPf0mRNhx+7Tt49P49D9jD+GZhOrrGIx2nBftViaxmmh0YxDrfG3v1678h4J2Eu5ET49VnCIgGiNhP0Ul2opLrqaLeeNk6+2htsECrBBTNrovLRs+/o5Bo7+Qsp6W7H68O0EBj9zLKRSlq1stcUV5La/2UEFAX5hOfDyjB+zDBsgx8KVPa2EAHYzankgMJp9frthRw6CymdsV9vA6IBbx30Qrphj55sa91GGoSuKKNkX1PKz4I3NzrZBcUY3XCD5NIiUgjIA1bKf9yfT0LHC6lboUiB2VEEH7vozRdDAZi0SVwQiptc6Dzu3bMtK+9/HuMLOSEEP0X8l2gyiaRhYVbh+KjSDIpV/YSpiMFEWpeInVIBLZsiBNaJ7zew2wDv4DuYbLPdxltjjNeCbi6omjfifL3uTpc6SlaK1tjHM4pBzc/zwOJyEjsDD1PeoThmBjw27Gymmcqa4hGz7NzBaAH90k/wp9rRDRLDhu2LqhASjB3eHwtDwW9pVVRKsntxOKyKK/4QG5idHzcMPPNwtFKny8HZlsb x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR18MB4251.namprd18.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(396003)(136003)(366004)(346002)(376002)(39860400002)(4326008)(478600001)(54906003)(6916009)(7416002)(5660300002)(52536014)(66556008)(55016003)(316002)(66476007)(8936002)(76116006)(64756008)(66946007)(30864003)(66574015)(2906002)(8676002)(66446008)(83380400001)(122000001)(186003)(33656002)(38100700002)(86362001)(9686003)(6506007)(71200400001)(7696005)(107886003)(53546011)(966005)(45080400002)(26005)(41300700001)(38070700005)(19627235002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K0I5OGdvbG80YXN6Zm1RSjQ4UTVJeitzTUNHT3l3ajd5eTN5RkZtMUloeENi?= =?utf-8?B?YjZOYTZUMHhQeHpFdW9kakMrT0hTc1ZmYVZOb0V5NFprL0RjT0NiMjZadHZJ?= =?utf-8?B?VXlqNU12T3lVdGFoTjBYdVQ2WDBMTGdXeE16RlJ6RTM1aTBvcWlLWEgzd0Ja?= =?utf-8?B?aURXbFpTc2pCSi9QT3FyOFBjVldoblQ2SjZrelBMbDFCa3Q4bnFkZ0xEWUJZ?= =?utf-8?B?WmtQOEk2WDVtbUxvNVBlV3NMZ2k0VFhZSmFrQjR1S1RiY0tlUzEzWVlzVlo2?= =?utf-8?B?V0RXS2ZneGN1OG43MTlFUFFSbmVIbkY2Smd4MzlGKzBNQmNuTFdPOWFnUElu?= =?utf-8?B?bFFqQnhmRGlwSjFybjdiakY4QTgwTmpPWXVNSWN2SXBZb2VwZjRrMUdxeUNB?= =?utf-8?B?a0cyTVN4YlFBYnBYOXBmMEVWcXlXVEVsQXEwVzJDRVROazBWRDRLazBSLzNK?= =?utf-8?B?MFF4QTNIZ3FWNVowVVFJQWdiN0ZCdmVwaTBXZFFPczEzYkZnOThKRWlWRHUv?= =?utf-8?B?bjdaT285elAyNTdtVVM1MDdYZUwzdjZidGpDdUdBMmUxQnhYamZnemxTaEtx?= =?utf-8?B?TW16M1AxMGNMeTd4WXVMNk9sUnltZXRZUDFva3NzSDVDQytBUHB2dmlTNk9T?= =?utf-8?B?MUNsNVltOTQvdHRoVFMwd2xaeExJSHpDbGdacEV1Vnk3WkE3ajUvc2JZLzB4?= =?utf-8?B?bEw2VU5XMStBcHV3c291dlczbXVka0JuaHk0R0dSd1o0SC9tY0lXeU44TVk3?= =?utf-8?B?a3BPenNyd09OZnBsN05QK2puSmhsTC9DTHo5QmthSFY1dUtDSWZ5Z3dzTFMy?= =?utf-8?B?djA4TS91alZHYVh4andXVmZDV1NSVjZva3BhRWRtQ3ZXUjNDRGRNSlE3OFow?= =?utf-8?B?dmJnb2F5b2UrYVNiUVNQQVRLUUFlMFYxWmtqcFV5NnQzdVhwbFNZQmFwVHZL?= =?utf-8?B?ZHA0TDh2dklqcy9lYXV2c3BLazZzRnVvbGN4cm1FbUFvOGdCeDR3aVE1MFJu?= =?utf-8?B?RzBwMDdoM3BONngxMFFKMHg4ajhOd05CUmFVSUZXbmkwWmxtcmpnN285MVZJ?= =?utf-8?B?Tll2SytWTjJUSlp5SnI1OURVSVZYakpvWWgrVHVDNCtGeXVpOVp5Sk1relpR?= =?utf-8?B?YXQ3S0FETjV3Z3VPOTdFRHpMdFNDN0NDMjJTaHhIV1pQZkNKQi9UNVNiWFgy?= =?utf-8?B?a3dmY3BTOHhmVzlQZEJ3ZjAxaDBPZk9MWnlUc3VzSGtjdExHTHRKSmkyVGQx?= =?utf-8?B?Nm80SkdxQjZQY3FsVEJ2U0RGYW5yREJnbGtZZHp6b01zUW1LRFlWRTl3WTJH?= =?utf-8?B?czRRU0IvWCs0NDJNOTBtMjJPZnFuYzZSdURaSjFGZXNUaTUwdld6UnRXdVFI?= =?utf-8?B?WkV0alFXWTNRdVhrdS9uMEtOVHU1d3NDejFFQnRZcXJmSGlma0FjR2RIY2NG?= =?utf-8?B?TTNSR2N2SXg0RHBpaFczck9YTm1uQm8yaDZ1VmxJY0dXdVpPZ3J3WmRib3JM?= =?utf-8?B?VFNpcU9HcTRPMXZzbFRnZEloYkV5M1V5U3hOOUI1VkppOHZOWGhaZjR3bVRX?= =?utf-8?B?ODZHN1FGYXgrWHJFTGpLSzVkTlFDS2ZaL0dIZUl4a1RlWHBTTXBLTTU2NjJV?= =?utf-8?B?UkRnNFVSMnBKbWp2cysvNlRYdE94a2lhUlBUelRnbGlkci8zajkwMUJ0SW5R?= =?utf-8?B?YnRKQURVY0luemJvTDdvY0N1My9tYWlKazh1TmVXV0ZiaENiVWc0VGd6MFdl?= =?utf-8?B?aGxHSzRGR3hSbmY4Ry9vQUhZdkpLeER0Zlg0ME5Qb3FBU0xWTGRpOVh0Ym55?= =?utf-8?B?dDIvVVNwRnZndFRTM2hwTjc2NEJhUXpvRjFKbG1FdFZSVW9YZUJIcW1SUnkv?= =?utf-8?B?RURNYkNicndqa3RRS0g4cEdlWFM4SW8rOTMybGd2dm51Ym9NSkplQ1VQNW9B?= =?utf-8?B?VzNZL0FqWTdhVVJ2anhSaWRQdEtmWmJReTVqaDlxT3V0ekZBQmkvYm5xYklM?= =?utf-8?B?WXp2RTd2MmRxQUVFQ2UyR29BRWVFemhmc1hMTkFtTklKaTZwWXZhRDJFVS9t?= =?utf-8?B?YXFzU0pHL1BDeG8zaVZEbzRIYjlmb253QWxFc2lDSHQzeHQ4SmVFUzVmTUFs?= =?utf-8?Q?qv6DC6Ng98vn12lSrUzzmhQG+?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: marvell.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR18MB4251.namprd18.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b77d7238-2e34-48ed-8821-08da699619e5 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2022 14:51:02.6361 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ffL/KB5haPkT0fIBWEMDV2taEc9mZAMqeJhn7p/MUSMMHnvxn0NQhtjSWQu9aI/1fc8XG7tfnsdm/hshraStEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR18MB2410 X-Proofpoint-ORIG-GUID: -JdJhW4CJJ_WFx2tQnAdExOoP2PO07VK X-Proofpoint-GUID: -JdJhW4CJJ_WFx2tQnAdExOoP2PO07VK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.883,Hydra:6.0.517,FMLib:17.11.122.1 definitions=2022-07-19_03,2022-07-19_01,2022-06-22_01 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgUGFsaSwNCg0KUmVnYXJkaW5nIHRoZSBleGFjdCB3b3JkaW5nLCBJIGNhbiBvbmx5IGd1ZXNz IHN0cmljdCA9PSBzdHJvbmcuDQpGb3Igc3VwcG9ydCwgaWYgS29uc3RhbnRpbiBjb3VsZCBub3Qg aGVscCB5b3UsIEkgYW0gbm90IHN1cmUgd2hvIGNhbi4NClJlZ2FyZGluZyByZWdpc3RlcnMgb3V0 c2lkZSBvZiB0aGUgZG9jdW1lbnRhdGlvbiwgdW5mb3J0dW5hdGVseSBJIG9ubHkgaGF2ZSBhY2Nl c3MgdG8gdGhlIHN0YW5kYXJkIGRvY3VtZW50YXRpb24gaW4gdGhlIE1hcnZlbGwgc3VwcG9ydCBz aXRlLg0KDQpGWUksDQoNCkVsYWQuDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9t OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPiANClNlbnQ6IFR1ZXNkYXksIEp1bHkgMTks IDIwMjIgNTozNCBQTQ0KVG86IEVsYWQgTmFjaG1hbiA8ZW5hY2htYW5AbWFydmVsbC5jb20+DQpD YzogUmF0aGVlc2ggS2Fubm90aCA8cmthbm5vdGhAbWFydmVsbC5jb20+OyBUYW5tYXkgSmFnZGFs ZSA8dGFubWF5QG1hcnZlbGwuY29tPjsgU2hpaml0aCBUaG90dG9uIDxzdGhvdHRvbkBtYXJ2ZWxs LmNvbT47IEFydW4gRWFzaSA8YWVhc2lAbWFydmVsbC5jb20+OyBLcnp5c3p0b2YgV2lsY3p5xYRz a2kgPGt3QGxpbnV4LmNvbT47IExvcmVuem8gUGllcmFsaXNpIDxsb3JlbnpvLnBpZXJhbGlzaUBh cm0uY29tPjsgVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBib290bGluLmNvbT47 IEJqb3JuIEhlbGdhYXMgPGJoZWxnYWFzQGdvb2dsZS5jb20+OyBNYXJlayBCZWjDum4gPGthYmVs QGtlcm5lbC5vcmc+OyBSZW1pIFBvbW1hcmVsIDxyZXBrQHRyaXBsZWZhdS5sdD47IFhvZ2l1bSA8 Y29udGFjdEB4b2dpdW0ubWU+OyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJu ZWxAdmdlci5rZXJuZWwub3JnOyBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmc7 IEJoYXJhdCBCaHVzaGFuIDxiYmh1c2hhbjJAbWFydmVsbC5jb20+OyBWZWVyYXNlbmFyZWRkeSBC dXJydSA8dmJ1cnJ1QG1hcnZlbGwuY29tPjsgV29qY2llY2ggQmFydGN6YWsgPHdiYXJ0Y3pha0Bt YXJ2ZWxsLmNvbT4NClN1YmplY3Q6IFJlOiBbRVhUXSBSZTogSXNzdWVzIHdpdGggQTM3MjAgUENJ ZSBjb250cm9sbGVyIGRyaXZlciBwY2ktYWFyZHZhcmsuYw0KDQpIZWxsbyBFbGFkIQ0KDQpJIHdh cyBub3QgYWJsZSB0byBmaW5kIGFueSBzdWNoIHJlZ2lzdGVyIHRvby4uLiBidXQgaXQgaXMgcG9z c2libGUgdGhhdCBJIGp1c3QgZG8gbm90IGhhdmUgImNvbXBsZXRlIiBkb2N1bWVudGF0aW9uLiBG b3IgZXhhbXBsZSBJIHdhcyBhYmxlIHRvIGZpbmQgdGhpcyByZWdpc3RlciBmb3IgQTdLL0E4Sy9D TjkxM1ggZmFtaWx5LCBpdCBpcyAweEYyNjAwOEQwIChBTUJBX0VSUk9SX1JFU1BPTlNFX0RFRkFV TFRfRkYpLiBBbmQgSSB0aGluayB0aGF0IHNpbWlsYXIgcmVnaXN0ZXIgc2hvdWxkIGJlIGFsc28g Zm9yIEEzNzIwLCBidXQgbG9va3MgbGlrZSBpdCBpcyBub3QgZG9jdW1lbnRlZC4NCg0KSSBoYXZl IGFscmVhZHkgcGxheWVkIHdpdGggcmVnaXN0ZXIgMHhEMDA3NDgwOCAoUENJZSBDb250cm9sIDIp Lg0KDQpCaXQgNSBpcyBhbHJlYWR5IGJlaW5nIGRpc2FibGVkIGR1cmluZyBkcml2ZXIgaW5pdGlh bGl6YXRpb24gYW5kIGl0IGlzIGRlc2NyaWJlZCBhcyByZXF1aXJlZCBzdGVwIGluIEEzNzIwICdQ Q0llIExpbmsgSW5pdGlhbGl6YXRpb24nLiBCdXQgSSBkbyBub3QgdW5kZXJzdGFuZCB3aGF0IGl0 IGlzICdQQ0llIHN0cmljdCBvcmRlcmluZyBydWxlcycuIEluIFBDSWUgd2UgaGF2ZSBzdHJvbmcg b3JkZXJpbmcgb3IgcmVsYXhlZCBvcmRlcmluZzsgdGhlcmUgaXMgbm8gc3RyaWN0IG9yZGVyaW5n LiBJdCBpcyB0eXBvIGluIGRvY3VtZW50YXRpb24/DQoNCkFuZCBiaXQgNiBpcyB1c2VkIGZvciBl bmFibGluZyB0cmFuc3BhcmVudCBvdXRib3VuZCB3aW5kb3cgY29uZmlndXJhdGlvbiBhbmQgaXMg ZW5hYmxlZCBkdXJpbmcgZHJpdmVyIGluaXRpYWxpemF0aW9uLiBJIGhhdmUgYWxyZWFkeSB0cmll ZCB0byBkaXNhYmxlIHRoaXMgYml0IGFuZCBzZXQgb3V0Ym91bmQgd2luZG93IGNvbmZpZ3VyYXRp b24gbWFudWFsbHkgKGluIGFjdGlvbiByZWdpc3RlcikuIE5vIHZpc2libGUgY2hhbmdlLg0KDQpE byB5b3UgaGF2ZSBzb21lIGNvbnRhY3QgZm9yIE1hcnZlbGwgU3VwcG9ydD8gQmVjYXVzZSB3ZSBh cmUgdW5hYmxlIHRvIHJlYWNoIGFueSBzdXBwb3J0L3RlY2ggYW5kIHRoZXJlIGlzIGp1c3Qgc2ls ZW5jZS4NCg0KQWxzbyBkbyB5b3Uga25vdyB3aGVyZSB3ZSBjYW4gZ2V0IGluZm9ybWF0aW9uIGFi b3V0IHJlZ2lzdGVycyB3aGljaCBhcmUgYWxyZWFkeSB1c2VkIGJ5IE1hcnZlbGwgZHJpdmVyIGJ1 dCBhcmUgbm90IGRvY3VtZW50ZWQgaW4gZG9jdW1lbnRhdGlvbiB0byB3aGljaCBJIGhhdmUgYWNj ZXNzIG9uIE1hcnZlbGwgcG9ydGFsPw0KDQpPbiBUdWVzZGF5IDE5IEp1bHkgMjAyMiAxMzo0NToz MiBFbGFkIE5hY2htYW4gd3JvdGU6DQo+IEhpIFBhbGksDQo+IA0KPiBVbmZvcnR1bmF0ZWx5IEkg ZGlkIG5vdCBmaW5kIGFueSByZWdpc3RlcnMgbWF0Y2hpbmcgdGhlIG9uZXMgeW91IHdlcmUgbG9v a2luZyBmb3IuDQo+IEkgY2FuIHN1Z2dlc3QgaXMgcGxheWluZyB3aXRoIHRoZSBQQ0llIENvbnRy b2wgMiByZWdpc3RlciwgYWRkcmVzcyAweDc0ODA4Lg0KPiBCaXQgNiBpcyB0aGUgQVhJIEFkZHJl c3MgV2luZG93IExvY2F0aW9uIEdlbmVyYXRpb24gRW5hYmxlIGJpdCwgYml0IDUgY29udHJvbHMg dGhlIHN0cmljdCBvcmRlcmluZyAoZGVmYXVsdCAtIDEgLSBlbmFibGUgc3RyaWN0IG9yZGVyaW5n KSAuDQo+IFBlcmhhcHMgYW5vdGhlciBvcHRpb24gaXMgY2hhbmdpbmcgdGhlIHByb3BlcnRpZXMg b2YgdGhlIFBDSWUgd2luZG93cyANCj4gKEFjdGlvbiByZWdpc3RlciBhbmQgZGVmYXVsdCB1c2Vy IGZpZWxkKQ0KPiANCj4gUmVnYXJkaW5nIHRoZSBFcnJhdHVtLCBJIGhhdmUgY2hlY2tlZCB3aXRo IG15IE1hbmFnZXIgYW5kIHVuZm9ydHVuYXRlbHkgdGhlIG9ubHkgbGVnYWwgd2F5IHRvIGFjY2Vz cyBpdCBpcyB2aWEgdGhlIE1hcnZlbGwgU3VwcG9ydCBzaWRlLiBJIHJlZ3JldCB0aGF0IHRoZXJl IGlzIG5vIGJldHRlciBvcHRpb24gYXQgdGhpcyB0aW1lLCBob3BlZnVsbHkgdGhpcyBpcyB1bmRl cnN0YW5kYWJsZS4NCj4gDQo+IEkgYWdyZWUgd2l0aCB5b3VyIHRlY2huaWNhbCByZWNhcCBmb3Ig dGhlIHdvcmthcm91bmQuDQo+IA0KPiBFbGFkLg0KPiANCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gRnJvbTogUGFsaSBSb2jDoXIgPHBhbGlAa2VybmVsLm9yZz4NCj4gU2VudDogVHVl c2RheSwgSnVseSAxOSwgMjAyMiAzOjA2IFBNDQo+IFRvOiBFbGFkIE5hY2htYW4gPGVuYWNobWFu QG1hcnZlbGwuY29tPg0KPiBDYzogUmF0aGVlc2ggS2Fubm90aCA8cmthbm5vdGhAbWFydmVsbC5j b20+OyBUYW5tYXkgSmFnZGFsZSANCj4gPHRhbm1heUBtYXJ2ZWxsLmNvbT47IFNoaWppdGggVGhv dHRvbiA8c3Rob3R0b25AbWFydmVsbC5jb20+OyBBcnVuIA0KPiBFYXNpIDxhZWFzaUBtYXJ2ZWxs LmNvbT47IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGludXguY29tPjsgTG9yZW56byANCj4g UGllcmFsaXNpIDxsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tPjsgVGhvbWFzIFBldGF6em9uaSAN Cj4gPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+OyBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fh c0Bnb29nbGUuY29tPjsgDQo+IE1hcmVrIEJlaMO6biA8a2FiZWxAa2VybmVsLm9yZz47IFJlbWkg UG9tbWFyZWwgPHJlcGtAdHJpcGxlZmF1Lmx0PjsgDQo+IFhvZ2l1bSA8Y29udGFjdEB4b2dpdW0u bWU+OyBsaW51eC1wY2lAdmdlci5rZXJuZWwub3JnOyANCj4gbGludXgta2VybmVsQHZnZXIua2Vy bmVsLm9yZzsgbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnOyANCj4gQmhhcmF0 IEJodXNoYW4gPGJiaHVzaGFuMkBtYXJ2ZWxsLmNvbT47IFZlZXJhc2VuYXJlZGR5IEJ1cnJ1IA0K PiA8dmJ1cnJ1QG1hcnZlbGwuY29tPjsgV29qY2llY2ggQmFydGN6YWsgPHdiYXJ0Y3pha0BtYXJ2 ZWxsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtFWFRdIFJlOiBJc3N1ZXMgd2l0aCBBMzcyMCBQQ0ll IGNvbnRyb2xsZXIgZHJpdmVyIA0KPiBwY2ktYWFyZHZhcmsuYw0KPiANCj4gSGVsbG8gRWxhZCBh bmQgdGhhbmsgeW91IGZvciBpbmZvcm1hdGlvbiENCj4gDQo+IEkgaGF2ZSBsb29rZWQgYXQgcmVn aXN0ZXIgMHg0MDAwMDQwOCwgYnV0IGl0IGNhbm5vdCBiZSBhY2Nlc3NlZCBmcm9tDQo+IEEzNzIw IEFSTSBBNTMgY29yZSwgYmVjYXVzZSB0aGF0IHJlZ2lzdGVyIGlzIGluIGFkZHJlc3Mgc3BhY2Ug b2Ygc2VjdXJlIEFSTSBDTTMgY29yZSwgdG8gd2hpY2ggTGludXgga2VybmVsIGRvZXMgbm90IGFj Y2Vzcy4NCj4gDQo+IEkgbG9va2VkIGludG8gbXkgbm90ZXMgYW5kIGJpdCA2IG9mIHJlZ2lzdGVy IDB4NDAwMDA0MDggY29udHJvbHMgQVhJIA0KPiBTTFZFUlIgcHJvcGFnYXRpb24ganVzdCBmcm9t IEJDTSBzbGF2ZSB0byBDTTMgY29yZS4gQkNNIGlzIEJhc2UgDQo+IGNyeXB0b2dyYXBoaWMgbW9k dWxlLCB3aGljaCBpcyB1c2VkIGJ5IHRoZSBzZWN1cmUgZmlybXdhcmUgcnVubmluZyBvbg0KPiBD TTMgY29yZS4gU28gaXQgbG9va3MgbGlrZSBpdCBpcyBpcnJlbGV2YW50IHRvIEFSTSBBNTMgY29y ZXMgb24gd2hpY2ggaXMgcnVubmluZyBMaW51eCBrZXJuZWwgYW5kIHdoaWNoIHJlY2VpdmUgdGhl c2UgY3Jhc2hlcywgYW5kIGFsc28gZG9lcyBub3QgYXBwbHkgZm9yIFBDSWUgQVhJIHNsYXZlIHdo aWNoIGlzIGNvbm5lY3RlZCBBMzcyMCBTb3V0aCBGYWJyaWMuDQo+IEkgZ3Vlc3MgdGhhdCByZWdp c3RlciAweDQwMDAwNDA4IGNvbnRyb2xzIG9ubHkgRmFicmljIGRpcmVjdGx5IGNvbm5lY3RlZCB0 byBBUk0gQ00zIGNvcmUuDQo+IA0KPiBTbyBpdCBpcyBuZWVkZWQgdG8ga25vdyB3aGF0IGlzIGVx dWl2YWxlbnQgcmVnaXN0ZXIgZm9yIEE1MyBhbmQgQTM3MjAgU291dGggRmFicmljLiBPciByZWdp c3RlciBzcGVjaWZpYyBmb3IgQTM3MjAgUENJZSBibG9jaywgc28gZm9yIFVuc3VwcG9ydGVkIFJl cXVlc3QsIENvbXBsZXRlciBBYm9ydCwgQ29uZmlndXJhdGlvbiByZXF1ZXN0IHJldHJ5IHN0YXR1 cyBhbmQgQ29tcGxldGlvbiBUaW1lb3V0IGRvZXMgbm90IHRocm93IEFYSSBTTFZFUlIgdG8gQTUz IGNvcmUuDQo+IA0KPiBXaG9sZSBkZXNjcmlwdGlvbiBvZiBlcnJhdGEgaXMgaW1wb3J0YW50IGZv ciBrZXJuZWwgZGV2ZWxvcGVycyAvIG1haW50YWluZXJzIHdobyB3aWxsIGJlIHJldmlld2luZyBj b2RlLiBXZSBkbyBub3QgbmVlZCB3aG9sZSBkb2N1bWVudCwganVzdCB0aGF0IG9uZSBlcnJhdGEu IEl0IHdvdWxkIHJlYWxseSBoZWxwIGlmIE1hcnZlbGwgY291bGQgZ2V0IHBlcm1pc3Npb24gZm9y IHNoYXJpbmcgdGhpcyBlcnJhdGEgZm9yIGtlcm5lbCBkZXZlbG9wZXJzLiBCZWNhdXNlIGl0IGlz IHJlYWxseSBhIHBhaW4gaWYgZXZlcnkga2VybmVsIGRldmVsb3BlciBoYXMgdG8gZ28gdGhyb3cg TkRBL0xVTEEgcHJvY2VzcyBhbmQgd2FpdCBmb3IgU2FsZXMgdGVhbSBpZiB0aGV5IGFwcHJvdmUg YWNjZXNzIG9yIG5vdC4NCj4gDQo+IEluIHBhc3QgZG9jdW1lbnRhdGlvbiBmb3IgTWFydmVsbCBT b0NzIHdhcyBwdWJsaWMgYW5kIGV2ZXJ5IGRldmVsb3BlciB3YXMgYWJsZSB0byBkb3dubG9hZCBp dCBmcm9tIG1hcnZlbGwuY29tIHdlYnNpdGUgd2l0aG91dCByZWdpc3RyYXRpb24uDQo+IEJ1dCBu b3cgYWxsIGxpbmtzIHRvIHB1YmxpYyBkb2N1bWVudGF0aW9uIGRvIG5vdCB3b3JrIGFueW1vcmUu DQo+IFRoYW5rZnVsbHkgd2ViLmFyY2hpdmUub3JnIGNyZWF0ZWQgYmFja3VwIG9mIHNvbWUgb2Yg dGhlbSBhbmQgdGhleSBhcmUgbGlua2VkIGZyb20gS2VybmVsIGRvY3VtZW50YXRpb24gZmlsZToN Cj4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHBzLTNBX193 d3cua2VybmVsLm9yZ19kbw0KPiBjX2h0bWxfbGF0ZXN0X2FybV9tYXJ2ZWxsLmh0bWwmZD1Ed0lE YVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9ZVRlDQo+IE5UTEVLNS1UeFhjempPY0tQaEFO SUZ0bEI5cFA0bHE5cWhkbEZyd1EmbT1oakdNSHRaaDU5aGtmWEZ6RFhzNUQ0dkFUWUINCj4gRks5 cGNhYmx0NE5Gdm5pTTEyQjU2YjV0d0RrQzR1c0NVNWRBZCZzPWRSU0ZSWHpjam84U3RVa0o3QWdX MzNZMkt6WnUwNQ0KPiB0dUd5T3BiTFZiYi1jJmU9DQo+IChzZWUgaG93IG1hbnkgZG9jdW1lbnRz IHdlcmUgbG9zdC4uLikNCj4gDQo+IEFueXdheSwgSSBoYXZlIGFjY2VzcyB0byBNYXJ2ZWxsIHBv cnRhbCBhbmQgc29tZSBBMzcyMCBkb2N1bWVudHMsIGJ1dCBsb3Qgb2YgcGFydHMgaW4gdGhvc2Ug ZG9jdW1lbnRzIHRvIHdoaWNoIEkgaGF2ZSBhY2Nlc3MgYXJlIGluY29tcGxldGUgb3IgcmVnaXN0 ZXJzIHVuZG9jdW1lbnRlZC4NCj4gDQo+IFNvIHRvIHJlY2FwLCB3b3JrYXJvdW5kIHNob3VsZCBi ZSB0byBkaXNhYmxlIG9yZGVyaW5nIGNoZWNrcyB2aWEgRElTX09SRF9DSEsgYml0LCBhZGRpbmcg RFNCIGJhcnJpZXIgd2hlbiBlbnRlcmluZyBhYXJkdmFyayBzdW1tYXJ5IGlycSBoYW5kbGVyIGFu ZCBpZGVhbGx5IGFsc28gZW5hYmxlIHJlbGF4ZWQgb3JkZXJpbmcgYml0LCBzbyBpbml0aWF0ZWQg dHJhbnNhY3Rpb25zIGNvdWxkIHVzZSByZWxheGVkIG9yZGVyaW5nIHdoZW4gcmVxdWVzdGVkIChh cyBzdHJvbmcgb3JkZXJpbmcgZG9lcyBub3Qgd29yaykuDQo+IA0KPiBPbiBUdWVzZGF5IDE5IEp1 bHkgMjAyMiAxMDo1MDo1OSBFbGFkIE5hY2htYW4gd3JvdGU6DQo+ID4gSGkgUGFsaSwNCj4gPiAN Cj4gPiBSZWdhcmRpbmcgeW91ciByZXF1ZXN0IC0gd2hpbGUgSSB1bmRlcnN0YW5kIHRoZSBuZWVk LCBJIGFtIGJvdW5kIGJ5IHRoZSBpbnRlcm5hbCByZWd1bGF0aW9uIHNldCBmb3J0aCBieSBteSBl bXBsb3llci4NCj4gPiBQYXNzaW5nIG9mIGFueSBkb2N1bWVudCBtdXN0IGJ5IGRvbmUgdmlhIHRo ZSBNYXJ2ZWxsIFN1cHBvcnQgc2l0ZSBmb2xsb3dpbmcgYWNjb3VudCBjcmVhdGlvbiB3aXRoIHRo ZSBwcm9wZXIgTkRBIGFuZCBMVUxBIChMaW1pdGVkIFVzZSBMaWNlbnNlIEFncmVlbWVudCkgaW4g cGxhY2UuDQo+ID4gVW5mb3J0dW5hdGVseSBJIGRvIG5vdCBoYXZlIHRoZSBwb3dlciB0byBieXBh c3MgdGhpcyBpbnRlcm5hbCwgaGFyZCByZXF1aXJlbWVudC4NCj4gPiBBbnlvbmUgbmVlZGluZyB0 aGVzZSBkb2N1bWVudHMgc2hvdWxkIGFwcGx5IGZvciBhIE1hcnZlbGwgc3VwcG9ydCBzaXRlIGFj Y291bnQuDQo+ID4gSSBjYW4gdHJ5IHRvIGV4cGVkaXRlIHJlcXVlc3QgaW50ZXJuYWxseSBvciBp ZiBhbiBhY2NvdW50IGlzIHNldCBpbiBwbGFjZSwgcmVxdWVzdCBvbiB5b3VyIGJlaGFsZiBhY2Nl c3MgdG8gQXJhbWRhIDM3eHggZG9jdW1lbnRzLg0KPiA+IFRoZSBmaW5hbCBkZWNpc2lvbiBpcyBv ZiB0aGUgTWFydmVsbCBTdXBwb3J0IGFuZCBzYWxlcy4NCj4gPiANCj4gPiBSZWdhcmRpbmcgQVhJ IFNMVkVSUiwgdGhpcyBpcyB0aGUgcHJvcGFnYXRpb24gb2YgdGhlIGZvbGxvd2luZyBQQ0llIGVy cm9yczogVW5zdXBwb3J0ZWQgUmVxdWVzdCwgQ29tcGxldGVyIEFib3J0LCBDb25maWd1cmF0aW9u IHJlcXVlc3QgcmV0cnkgc3RhdHVzIGFuZCBDb21wbGV0aW9uIFRpbWVvdXQuDQo+ID4gDQo+ID4g VG8gcHJldmVudCBTTFZFUlIgZ2VuZXJhdGVkIGZvciBvdXQtb2YtcmFuZ2UgZXJyb3JzLCBjbGVh ciBiaXQgNiAoMHg0MCkgb2YgcmVnaXN0ZXIgMHg0MDAwMDQwOCAocGh5c2ljYWwgYWRkcmVzcyku DQo+ID4gDQo+ID4gUmVnYXJkaW5nIG9yZGVyaW5nIG1vZGVsLCBFcnJhdHVtIGlzIGEgZGVzY3Jp cHRpb24gb2YgdGhlIGZpbmFsIEhXIGJlaGF2aW9yIHdoaWNoIGRldmlhdGVzIGZyb20gdGhlIGRl c2lnbi4NCj4gPiBUaGUgZGVzaWduIHdhcyBtZWFudCB0byBzdXBwb3J0IHN0cm9uZyBvcmRlcmlu ZywgdW5mb3J0dW5hdGVseSBkdWUgdG8gc29tZSBraW5kIG9mIG1pcy1pbXBsZW1lbnRhdGlvbiwg dGhpcyBmZWF0dXJlIGRvZXMgbm90IHdvcmsgYXMgZGVzaWduZWQuIFRoZSBlcnJhdHVtIGlzIGRl c2lnbmVkIHRvIHByb3ZpZGUgYSB3b3JrYXJvdW5kLCB3aGljaCBwZXJoYXBzIGlzIG5vdCBwZXJm ZWN0ICh3aGljaCB3aHkgeW91IGFyZSBjb25mdXNlZCBhcyB0byB3aGF0IG9yZGVyaW5nIG1vZGVs IGlzIHN1cHBvcnRlZCksIGJ1dCBpcyB0aGUgYmVzdCBhdmFpbGFibGUgd2l0aCB0aGUgYWN0dWFs IHBoeXNpY2FsIEhXIGJlaGF2aW9yLg0KPiA+IA0KPiA+IFJlZ2FyZGluZyB0aGUgUmVsYXhlZCBv cmRlcmluZyBiaXQgeW91IGhhdmUgZGVzY3JpYmVkLCB0aGlzIGJpdCBvbmx5IGNvbnRyb2xzIHdo ZXRoZXIgdGhlIHJlbGF4ZWQgb3JkZXJpbmcgYml0IGNhbiBiZSBzZXQgaW4gdGhlIGF0dHJpYnV0 ZSBmaWVsZHMgb2YgdGhlIHRyYW5zYWN0aW9ucyBpbml0aWF0ZWQgYnkgaXQuIA0KPiA+IEkgYWdy ZWUsIGhvd2V2ZXIsIHRoYXQgdG8gYmUgZnVsbHkgY29oZXJlbnQgaW4gdGhlIGRyaXZlciBzb2Z0 d2FyZSBkZXNpZ24gd2l0aCB0aGUgd29ya2Fyb3VuZCBpbXBsZW1lbnRhdGlvbiwgSSB3b3VsZCBz ZXQgdGhpcyBiaXQsIGFsdGhvdWdoIGl0IGlzIG5vdCByZXF1aXJlZCBieSB0aGUgRXJyYXR1bSB3 b3JrYXJvdW5kLg0KPiA+IA0KPiA+IFJlZ2FyZGluZyB0aGUgbWVtb3J5IGJhcnJpZXIsIHlvdSB1 bmRlcnN0b29kIG1lIHBlcmZlY3RseS4gSSB0aGluayBEU0Igc2hvdWxkIGJlIGV4ZWN1dGVkIGJ5 IHRoZSBBYXJkdmFyayBJUlEgaGFuZGxlciBiZWZvcmUgaW52b2tpbmcgdGhlIFBDSSBFUCBJUlEg ZHJpdmVyIGhhbmRsZXIuDQo+ID4gDQo+ID4gRWxhZC4NCj4gPiANCj4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFBhbGkgUm9ow6FyIDxwYWxpQGtlcm5lbC5vcmc+DQo+ ID4gU2VudDogVHVlc2RheSwgSnVseSAxOSwgMjAyMiAxMjozMyBQTQ0KPiA+IFRvOiBFbGFkIE5h Y2htYW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPg0KPiA+IENjOiBSYXRoZWVzaCBLYW5ub3RoIDxy a2Fubm90aEBtYXJ2ZWxsLmNvbT47IFRhbm1heSBKYWdkYWxlIA0KPiA+IDx0YW5tYXlAbWFydmVs bC5jb20+OyBTaGlqaXRoIFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPjsgQXJ1biANCj4g PiBFYXNpIDxhZWFzaUBtYXJ2ZWxsLmNvbT47IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGlu dXguY29tPjsgDQo+ID4gTG9yZW56byBQaWVyYWxpc2kgPGxvcmVuem8ucGllcmFsaXNpQGFybS5j b20+OyBUaG9tYXMgUGV0YXp6b25pIA0KPiA+IDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29t PjsgQmpvcm4gSGVsZ2FhcyA8YmhlbGdhYXNAZ29vZ2xlLmNvbT47IA0KPiA+IE1hcmVrIEJlaMO6 biA8a2FiZWxAa2VybmVsLm9yZz47IFJlbWkgUG9tbWFyZWwgPHJlcGtAdHJpcGxlZmF1Lmx0Pjsg DQo+ID4gWG9naXVtIDxjb250YWN0QHhvZ2l1bS5tZT47IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5v cmc7IA0KPiA+IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZzsNCj4gPiBCaGFyYXQgQmh1c2hhbiA8YmJodXNoYW4yQG1hcnZl bGwuY29tPjsgVmVlcmFzZW5hcmVkZHkgQnVycnUgDQo+ID4gPHZidXJydUBtYXJ2ZWxsLmNvbT47 IFdvamNpZWNoIEJhcnRjemFrIDx3YmFydGN6YWtAbWFydmVsbC5jb20+DQo+ID4gU3ViamVjdDog UmU6IFtFWFRdIFJlOiBJc3N1ZXMgd2l0aCBBMzcyMCBQQ0llIGNvbnRyb2xsZXIgZHJpdmVyIA0K PiA+IHBjaS1hYXJkdmFyay5jDQo+ID4gDQo+ID4gSGVsbG8gRWxhZCENCj4gPiANCj4gPiBUaGFu ayB5b3UgdmVyeSBtdWNoIGZvciB5b3VyIHJlc3BvbnNlISBUb2dldGhlciB3aXRoIEtyenlzenRv ZiB3ZSB3ZXJlIHVuYWJsZSB0byBnZXQgYW55IHJlc3BvbnNlIHJlZ2FyZGluZyB0aGlzIGlzc3Vl IGZvciBtb3JlIHRoYW4geWVhci4NCj4gPiANCj4gPiBJIHdvdWxkIGtpbmRseSBhc2sgaWYgeW91 L01hcnZlbGwgY291bGQgcHVibGlzaCBkZXNjcmlwdGlvbiBvZiB0aGlzIGVycmF0YSB0byBMaW51 eCBrZXJuZWwgZGV2ZWxvcGVycywgc28gbW9yZSBrZXJuZWwgZGV2ZWxvcGVycyBjYW4gbG9vayBh dCBpdCBhbmQgdHJ5IHRvIGltcGxlbWVudCB3b3JrYXJvdW5kcy4NCj4gPiANCj4gPiBUb2dldGhl ciB3aXRoIEtyenlzenRvZiB3ZSBoYXZlIHJlYWxseSBhbiBpc3N1ZSB0byByZXRyaWV2ZSBhbnkg a2luZCBvZiBkb2N1bWVudGF0aW9uIG9yIHVzZXIgZ3VpZGUgZm9yIEFybWFkYSAzNzIwIGVycmF0 YXMvYnVncy4NCj4gPiANCj4gPiBSZXN0IG9mIG15IGNvbW1lbnRzIEknbSBwdXR0aW5nIGlubGlu ZSBiZWxvdy4NCj4gPiANCj4gPiBPbiBTdW5kYXkgMTcgSnVseSAyMDIyIDA5OjQ3OjE0IEVsYWQg TmFjaG1hbiB3cm90ZToNCj4gPiA+IEhpIFBhbGksDQo+ID4gPiANCj4gPiA+IENhbiB5b3UgcGxl YXNlIGluZGljYXRlIHdoYXQgaXMgdGhlIEhXIHNvdXJjZSAoZS5nLiB3aGljaCByZWdpc3RlciBp biB0aGUgUENJZSBjb250cm9sbGVyKSBiaXRzIGlzIHRyYW5zbGF0ZWQgdG8gdGhlIGZhdGFsIGFi b3J0Pw0KPiA+IA0KPiA+IEkgb2JzZXJ2ZWQgdGhpcyBmYXRhbCBhYm9ydCBvbiBDUFUgd2hlbiBl bmRwb2ludCBQQ0llIGNhcmQgc2VudCBpbnRlcnJ1cHQgdG8gQTM3MjAgUENJZSBjb250cm9sbGVy IGFuZCBpbnRlcnJ1cHQgaGFuZGxlciBpbiBkcml2ZXIgZm9yIGVuZHBvaW50IGNhcmQgZGlkIFBD SWUgbWVtb3J5IHdyaXRlIHRvIFBDSWUgY2FyZCBtZW1vcnkgc3BhY2UuDQo+ID4gDQo+ID4gV3Jp dGluZyB0byBQQ0llIGFkZHJlc3MgcmFuZ2UgZm9yIFBDSWUgTUVNIG9mIGVuZHBvaW50IGNhcmQg Y2F1c2UgDQo+ID4gdGhhdA0KPiA+IEEzNzIwIFBDSWUgY29udHJvbGxlciBzZW5kcyBmYXRhbCB1 bnJlY292ZXJhYmxlIGVycm9yIHRvIENQVS4NCj4gPiANCj4gPiBIZXJlIGlzIHRoZSBjcmFzaGxv ZyBmcm9tIG1lZGlhdGVrIHdpZmkgY2FyZCB3aGljaCBJIGNhcHR1cmVkIHllYXIgYWdvLg0KPiA+ IA0KPiA+IFsgICA3MS40NTcwMDddIEludGVybmFsIGVycm9yOiBzeW5jaHJvbm91cyBleHRlcm5h bCBhYm9ydDogOTYwMDAyMTAgWyMxXSBTTVANCj4gPiBbICAgNzEuNDY0MDIxXSBNb2R1bGVzIGxp bmtlZCBpbjogeHRfY29ubmxpbWl0IHBwcG9lIHBwcF9hc3luYyBuZl9jb25uY291bnQgaXB0YWJs ZV9uYXQgYXRoOWsgeHRfc3RhdGUgeHRfbmF0IHh0X2hlbHBlciB4dF9jb25udHJhY2sgeHRfY29u bm1hcmsgeHRfY29ubmJ5dGVzIHh0X1JFRElSRWwNCj4gPiBbICAgNzEuNDY0MTg3XSAgYnRpbnRl bCBicl9uZXRmaWx0ZXIgYm5lcCBibHVldG9vdGggYXRoOWtfaHcgYXRoMTBrX3BjaSBhdGgxMGtf Y29yZSBhdGggc2NoX3RiZiBzY2hfaW5ncmVzcyBzY2hfaHRiIHNjaF9oZnNjIGVtX3UzMiBjbHNf dTMyIGNsc190Y2luZGV4IGNsc19yb3V0ZSBjbHNfbWcNCj4gPiBbICAgNzEuNjI5NTg5XSBDUFU6 IDAgUElEOiAxMjk4IENvbW06IGt3b3JrZXIvdTU6MyBOb3QgdGFpbnRlZCA1LjQuMTE0ICMwDQo+ ID4gWyAgIDcxLjYzNjMxOV0gSGFyZHdhcmUgbmFtZTogQ1ouTklDIFR1cnJpcyBNb3ggQm9hcmQg KERUKQ0KPiA+IFsgICA3MS42NDE3MjVdIFdvcmtxdWV1ZTogbmFwaV93b3JrcSBuYXBpX3dvcmtm bg0KPiA+IFsgICA3MS42NDYyMjFdIHBzdGF0ZTogODA0MDAwODUgKE56Y3YgZGFJZiArUEFOIC1V QU8pDQo+ID4gWyAgIDcxLjY1MTE2OV0gcGMgOiBtdDc2X3NldF9pcnFfbWFzaysweDExOC8weDE1 MCBbbXQ3Nl0NCj4gPiBbICAgNzEuNjU2Mzg1XSBsciA6IG10NzkxNV9pbml0X2RlYnVnZnMrMHgz NTgvMHgzNjggW210NzkxNWVdDQo+ID4gWyAgIDcxLjY2MjAzOF0gc3AgOiBmZmZmZmZjMDEwMDAz Y2QwDQo+ID4gWyAgIDcxLjY2NTQ1MV0geDI5OiBmZmZmZmZjMDEwMDAzY2QwIHgyODogMDAwMDAw MDAwMDAwMDA2MCANCj4gPiBbICAgNzEuNjcwOTI5XSB4Mjc6IGZmZmZmZmMwMTBhNTZmOTggeDI2 OiBmZmZmZmZjMDEwYzBmYTlhIA0KPiA+IFsgICA3MS42NzY0MDddIHgyNTogZmZmZmZmYzAxMGJh ODc4OCB4MjQ6IGZmZmZmZjgwM2UwMWZlMDAgDQo+ID4gWyAgIDcxLjY4MTg4NV0geDIzOiAwMDAw MDAwMDAwMDAwMDMwIHgyMjogZmZmZmZmYzAxMDAwM2RjNCANCj4gPiBbICAgNzEuNjg3MzYxXSB4 MjE6IDAwMDAwMDAwMDAwMDAwMDAgeDIwOiBmZmZmZmY4MDNlMDFmZWE0IA0KPiA+IFsgICA3MS42 OTI4MzldIHgxOTogZmZmZmZmODAzY2I3MjVjMCB4MTg6IDAwMDAwMDAwMmQ2NjA3ODAgDQo+ID4g WyAgIDcxLjY5ODMxN10geDE3OiAwMDAwMDAwMDAwMDAwMDAwIHgxNjogMDAwMDAwMDAwMDAwMDAw MSANCj4gPiBbICAgNzEuNzAzNzk1XSB4MTU6IDAwMDAwMDAwMDAwMDVlZTAgeDE0OiBmZmZmZmZj MDEwZDFkMDAwIA0KPiA+IFsgICA3MS43MDkyNzJdIHgxMzogMDAwMDAwMDAwMDAwMmY3MCB4MTI6 IDAwMDAwMDAwMDAwMDAwMDAgDQo+ID4gWyAgIDcxLjcxNDc0OV0geDExOiAwMDAwMDAwMDAwMDAw MDAwIHgxMDogMDAwMDAwMDAwMDAwMDA0MCANCj4gPiBbICAgNzEuNzIwMjI2XSB4OSA6IGZmZmZm ZmMwMTBiYmU5ODAgeDggOiBmZmZmZmZjMDEwYmJlOTc4IA0KPiA+IFsgICA3MS43MjU3MDRdIHg3 IDogZmZmZmZmODAzZTQwMDNmMCB4NiA6IDAwMDAwMDAwMDAwMDAwMDAgDQo+ID4gWyAgIDcxLjcz MTE4MV0geDUgOiBmZmZmZmZjMDJmMjQwMDAwIHg0IDogZmZmZmZmYzAxMDAwM2UwMCANCj4gPiBb ICAgNzEuNzM2NjU4XSB4MyA6IDAwMDAwMDAwMDAwMDAwMDAgeDIgOiBmZmZmZmZjMDA4ZTNmMjMw IA0KPiA+IFsgICA3MS43NDIxMzVdIHgxIDogMDAwMDAwMDAwMDBkNzAxMCB4MCA6IGZmZmZmZmMw MTE0ZDcwMTAgDQo+ID4gWyAgIDcxLjc0NzYxM10gQ2FsbCB0cmFjZToNCj4gPiBbICAgNzEuNzUw MTM3XSAgbXQ3Nl9zZXRfaXJxX21hc2srMHgxMTgvMHgxNTAgW210NzZdDQo+ID4gWyAgIDcxLjc1 NDk5MF0gIG10NzkxNV9kdWFsX2hpZl9zZXRfaXJxX21hc2srMHgxMDgvMHhkYzAgW210NzkxNWVd DQo+ID4gWyAgIDcxLjc2MTA5OF0gIF9faGFuZGxlX2lycV9ldmVudF9wZXJjcHUrMHg2Yy8weDE3 MA0KPiA+IFsgICA3MS43NjU5NTBdICBoYW5kbGVfaXJxX2V2ZW50X3BlcmNwdSsweDM0LzB4ODgN Cj4gPiBbICAgNzEuNzcwNTMxXSAgaGFuZGxlX2lycV9ldmVudCsweDQwLzB4YjANCj4gPiBbICAg NzEuNzc0NDg2XSAgaGFuZGxlX2xldmVsX2lycSsweGUwLzB4MTcwDQo+ID4gWyAgIDcxLjc3ODUz MF0gIGdlbmVyaWNfaGFuZGxlX2lycSsweDI0LzB4MzgNCj4gPiBbICAgNzEuNzgyNjY3XSAgYWR2 a19wY2llX2lycV9oYW5kbGVyKzB4MTFjLzB4MjM4DQo+ID4gWyAgIDcxLjc4NzI0OV0gIF9faGFu ZGxlX2lycV9ldmVudF9wZXJjcHUrMHg2Yy8weDE3MA0KPiA+IFsgICA3MS43OTIwOTldICBoYW5k bGVfaXJxX2V2ZW50X3BlcmNwdSsweDM0LzB4ODgNCj4gPiBbICAgNzEuNzk2NjgwXSAgaGFuZGxl X2lycV9ldmVudCsweDQwLzB4YjANCj4gPiBbICAgNzEuODAwNjMzXSAgaGFuZGxlX2Zhc3Rlb2lf aXJxKzB4ZGMvMHgxOTANCj4gPiBbICAgNzEuODA0ODU1XSAgZ2VuZXJpY19oYW5kbGVfaXJxKzB4 MjQvMHgzOA0KPiA+IFsgICA3MS44MDg5ODhdICBfX2hhbmRsZV9kb21haW5faXJxKzB4NjAvMHhi OA0KPiA+IFsgICA3MS44MTMyMTNdICBnaWNfaGFuZGxlX2lycSsweDhjLzB4MTk4DQo+ID4gWyAg IDcxLjgxNzA3N10gIGVsMV9pcnErMHhmMC8weDFjMA0KPiA+IFsgICA3MS44MjAzMTRdICBlbDFf ZGErMHhjLzB4YzANCj4gPiBbICAgNzEuODIzMjg4XSAgbXQ3Nl9zZXRfaXJxX21hc2srMHgxMTgv MHgxNTAgW210NzZdDQo+ID4gWyAgIDcxLjgyODE0MV0gIG10NzkxNV9tYWNfdHhfZnJlZSsweDRj NC8weDgyOCBbbXQ3OTE1ZV0NCj4gPiBbICAgNzEuODMzMzUyXSAgbXQ3OTE1X3F1ZXVlX3J4X3Nr YisweDVjLzB4YTggW210NzkxNWVdDQo+ID4gWyAgIDcxLjgzODQ3M10gIG10NzZfZG1hX2NsZWFu dXArMHg4OWMvMHgxMjQ4IFttdDc2XQ0KPiA+IFsgICA3MS44NDMzMjldICBfX25hcGlfcG9sbCsw eDM4LzB4ZjgNCj4gPiBbICAgNzEuODQ2ODM1XSAgbmFwaV93b3JrZm4rMHg1OC8weGIwDQo+ID4g WyAgIDcxLjg1MDM0Ml0gIHByb2Nlc3Nfb25lX3dvcmsrMHgxZmMvMHgzOTANCj4gPiBbICAgNzEu ODU0NDc1XSAgd29ya2VyX3RocmVhZCsweDQ4LzB4NGQwDQo+ID4gWyAgIDcxLjg1ODI1Ml0gIGt0 aHJlYWQrMHgxMjAvMHgxMjgNCj4gPiBbICAgNzEuODYxNTgxXSAgcmV0X2Zyb21fZm9yaysweDEw LzB4MWMNCj4gPiBbICAgNzEuODY1MjczXSBDb2RlOiA1MjgwMDAwMCBkNjVmMDNjMCBmOTU2MmMw MCA4YjIxNDAwMCAoYjk0MDAwMDApIA0KPiA+IFsgICA3MS44NzE1NjBdIC0tLVsgZW5kIHRyYWNl IDFkNGUyOTk4NzAxMTQxMWIgXS0tLQ0KPiA+IFsgICA3MS44NzYzMjBdIEtlcm5lbCBwYW5pYyAt IG5vdCBzeW5jaW5nOiBGYXRhbCBleGNlcHRpb24gaW4gaW50ZXJydXB0DQo+ID4gWyAgIDcxLjg4 Mjg3NV0gU01QOiBzdG9wcGluZyBzZWNvbmRhcnkgQ1BVcw0KPiA+IFsgICA3MS44ODY5MjNdIEtl cm5lbCBPZmZzZXQ6IGRpc2FibGVkDQo+ID4gWyAgIDcxLjg5MDUxOV0gQ1BVIGZlYXR1cmVzOiAw eDAwMDIsMDAwMDIwMDgNCj4gPiBbICAgNzEuODk0NjQ5XSBNZW1vcnkgTGltaXQ6IG5vbmUNCj4g PiBbICAgNzEuODk3Nzk5XSBSZWJvb3RpbmcgaW4gMyBzZWNvbmRzLi4NCj4gPiANCj4gPiAoaW4g b3RoZXIgU29DL3N5c3RlbXMsIGluY2x1ZGluZyBNYXJ2ZWxsLCBpcyB0aGlzIGNhcmQgd29ya2lu ZyBmaW5lKQ0KPiA+IA0KPiA+IEl0IGlzIGZyb20gb2xkZXIga2VybmVsLCBidXQgaXNzdWUgaXMg c3RpbGwgdGhlcmUgYW5kIGhhcHBlbnMgYWxzbyB3aXRoIG5ldyBrZXJuZWxzLiBNZWRpYXRlayBk cml2ZXIgaW4gaXRzIGludGVycnVwdCBoYW5kbGVyIGlzIG1hc2tpbmcgc29tZSBpbnRlcnJ1cHRz IGluIGl0cyBpbnRlcnJ1cHQgaGFuZGxlciwgd2hpY2ggaXMgZG9uZSBieSB3cml0aW5nIHRvIFBD SWUgYWRkcmVzcyBzcGFjZSBvZiBlbmRwb2ludCBjYXJkLg0KPiA+IA0KPiA+IEFueXdheSwgSSBj YW4gcmVwcm9kdWNlIHNhbWUgY3Jhc2ggd2hlbiBJIHNldCBQQ0llIGxpbmsgZG93biBvciByZXNl dCBsaW5rIGFuZCB0cnlpbmcgdG8gcmVhZCBmcm9tIFBDSWUgTUVNIG9yIENGRyBzcGFjZS4gU2Vl bXMgdGhhdCBQQ0llIGNvbnRyb2xsZXIgaW5jb3JyZWN0bHkgcmVwb3J0cyBlcnJvcnMgdG8gQ1BV LCBpdCBzaG91bGQgcmV0dXJuIGFsbC1vbmVzIHdoZW4gUENJZSBkZXZpY2UgaXMgbm90IHByZXNl bnQgKGUuZy4gZHVyaW5nIGxpbmsgZG93bikgYW5kIG5vdCBzZW5kIGZhdGFsIGFib3J0IHRvIENQ VS4gSS5lLiBpbnN0ZWFkIG9mIEFYSSBPSyB3aXRoIDB4ZmZmZmZmZmYgZGF0YSwgaXQgc2VuZHMg QVhJIFNMVkVSUiB0byBDUFUgd2hpY2ggY2F1c2UgdGhhdCBjcmFzaC4NCj4gPiANCj4gPiBUaGlz IGlzIHNvbWV0aGluZyB3aGljaCBzaG91bGQgYmUgY29uZmlndXJhYmxlIGJ1dCBJJ20gbm90IGFi bGUgdG8gZmluZCBhbnkgQTM3MjAgZG9jdW1lbnRhdGlvbiB3aGljaCB3b3VsZCBkZXNjcmliZSBo b3cgdG8gY29uZmlndXJlIGl0Lg0KPiA+IA0KPiA+ID4gUmVnYXJkaW5nIHRoZSBFcnJhdHVtLCBi YXNpY2FsbHkgdG8gdGhlIGJlc3Qgb2YgbXkgdW5kZXJzdGFuZGluZywgaWYgdGhlIEVuZCBQb2lu dCBpcyBwb3N0aW5nIGEgUENJZSB3cml0ZSB0byB0aGUgaG9zdCwgYW5kIHRoZSBob3N0IGlzIHRy eWluZyB0byByZWFkIHRoZSBFbmQgUG9pbnQgcmVnaXN0ZXJzIHZpYSBQQ0llLCBDb21wbGV0aW9u IGRhdGEgaXMgZ2VuZXJhdGVkIC4gV2l0aCB0aGUgc3Ryb25nIG9yZGVyZWQgbW9kZSwgb25lIHdv dWxkIGV4cGVjdCB0aGF0IGZpcnN0IHRoZSBwb3N0IHdyaXRlIHdpbGwgZmluaXNoLCBhbmQgb25s eSB0aGVuIHRoZSBjb21wbGV0aW9uIGRhdGEgd2lsbCBiZSBwcm9jZXNzZWQuIFRoZSBFcnJhdHVt IG1lYW5zIHRoYXQgdGhpcyBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSBESVNfT1JEX0NISyBt dXN0IGJlIHNldCB0byBkaXNhYmxlIHRoaXMgZmVhdHVyZSwgd2hpY2ggaXMgbm90IHN1cHBvcnRl ZCBieSBIVy4NCj4gPiANCj4gPiBPaywgdGhhbmsgeW91IGZvciBleHBsYW5hdGlvbiENCj4gPiAN Cj4gPiA+IFJlZ2FyZGluZyBCam9ybiBjb21tZW50LCBub3QgZW5hYmxpbmcgdGhpcyBiaXQgd2ls bCBub3QgaGVscCBhcyB0aGUgc3Ryb25nLW9yZGVyIGZlYXR1cmUgaXMgbm90IGltcGxlbWVudGVk IGluIEhXLg0KPiA+ID4gTGVhdmluZyB0aGlzIGJpdCBkaXNhYmxlZCB3aWxsIG5vdCBtYWtlIHRo ZSBIVyBlbmZvcmNlIHN0cm9uZy1vcmRlci4gVGhlcmUgaXMgbm8gZGV0YWlsZWQgZGVzY3JpcHRp b24gb2YgdGhlIEhXIGJlaGF2aW9yIHdoZW4gdGhlIGJpdCBpcyBkaXNhYmxlZCBwZXIgdGhlIGRl ZmF1bHQsIGJ1dCBhcyBpcyBjbGVhcmx5IGV2aWRlbnQgZnJvbSB0aGUgRXJyYXR1bSBhbmQgZnJv bSB5b3VyIG93biBleHBlcmllbmNlLCBsZWF2aW5nIHRoaXMgYml0IGRpc2FibGVkIHdvdWxkIG5v dCBjcmVhdGUgdGhlIGNvcnJlY3QsIGV4cGVjdGVkIGJlaGF2aW9yIGZyb20gdGhlIEhXLCB3aGlj aCBpcyB3aHkgaXQgbXVzdCBiZSBlbmFibGVkIGZvciBjb3JyZWN0IGZ1bmN0aW9uYWxpdHkgb2Yg dGhlIHN5c3RlbSAoYm90aCBoYXJkd2FyZSBhbmQgc29mdHdhcmUpLg0KPiA+IA0KPiA+IFdoYXQg ZG9lcyBpdCBtZWFuIHRoYXQgc3Ryb25nLW9yZGVyIGZlYXR1cmUgaXMgbm90IGltcGxlbWVudGVk IGluIEhXPw0KPiA+IFN0cm9uZy1vcmRlciBtb2RlbCBpcyByZXF1aXJlbWVudCBpbiBQQ0llLiBU aGlzIGlzIHJlYWxseSBzdHJhbmdlIGlmIFBDSWUgY29yZSByZXF1aXJlbWVudCBkb2VzIG5vdCB3 b3JrIGluIEEzNzIwIEhXLg0KPiA+IA0KPiA+IEFueXdheSwgaW4gTWFydmVsbCBvcmlnaW5hbCBB MzcyMCBQQ0llIGRyaXZlciBpcyBleHBsaWNpdGx5IHR1cm5lZCBvZmYgUmVsYXhlZCBQQ0llIG9y ZGVyaW5nIChhbmQgc2FtZSBpcyBpbiBtYWlubGluZSBwY2ktYWFyZHZhcmsuYyBkcml2ZXIpOg0K PiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1odHRwcy0zQV9f Z2l0aHViLmNvbV9NYXJ2DQo+ID4gZWwNCj4gPiBsRW1iZWRkZWRQcm9jZXNzb3JzX2xpbnV4LTJE bWFydmVsbF9ibG9iX2YxMmIzNTU3MDk1ZmYxZDliN2JlNzhiZWY3YQ0KPiA+IDMyIA0KPiA+IDM3 ZTI3Yjc3NzhlX2RyaXZlcnNfcGNpX2hvc3RfcGNpLTJEYWR2ay0yRGFybTY0LmMtMjNMMzk3JmQ9 RHdJRGFRJmM9DQo+ID4gbksgDQo+ID4galdlYzJiNlIwbU95UGF6N3h0ZlEmcj1lVGVOVExFSzUt VHhYY3pqT2NLUGhBTklGdGxCOXBQNGxxOXFoZGxGcndRJm0NCj4gPiA9USANCj4gPiBvV0JWdGxt SzhkY25xZnFQdUxscllaVzlkTGtMQVhqUXNYblNUc3lMWHRBRzV4d1ZyVWozNHBzY3dkSG4wcXYm cz1kSg0KPiA+IE94IDlqU3RUTDc3cEZoZDVLQjdaakEtUUpyMWhyeUt5QmFPOGl5a0tRSSZlPQ0K PiA+IA0KPiA+IFNvIGlmIGJvdGggUmVsYXhlZCBhbmQgU3Ryb25nIG9yZGVyaW5nIGFyZSBnb2lu ZyB0byBiZSBkaXNhYmxlZCwgd2hhdCBraW5kIG9mIG9yZGVyaW5nIG1vZGVsIGlzIHRoZW4gdXNl ZD8gVGhpcyBpcyBzb21ldGhpbmcgd2hpY2ggSSBkbyBub3QgdW5kZXJzdGFuZCBoZXJlLg0KPiA+ IA0KPiA+ID4gUmVnYXJkaW5nIHRoZSBwYXRjaCAtIEkgd291bGQgYWxzbyBhZGQgYSBmdWxsIG1l bW9yeSBiYXJyaWVyIChpZiB5b3UgdXNlIGludGVycnVwdHMgb24gdGhlIGhvc3QgdG8gaGFuZGxl IHRoZSB3cml0ZSBjb21wbGV0aW9uIC0gdGhlbiBpbiB0aGUgUENJZSBkcml2ZXIgaW50ZXJydXB0 IGhhbmRsZXIsIG90aGVyd2lzZSB0aGlzIHdpbGwgcmVxdWlyZSBtb2RpZnlpbmcgdGhlIHNwZWNp ZmljIFdJRkkgZHJpdmVyKSBpbiBvcmRlciB0byBtaW5pbWl6ZSB0aGUgcmlzayBmb3IgdGhlIHJh Y2UgY29uZGl0aW9uIGRvY3VtZW50ZWQgaW4gdGhlIEVycmF0dW0gYmV0d2VlbiB0aGUgRE1BIGRv bmUgc3RhdHVzIHJlYWRpbmcgYW5kIHRoZSBjb21wbGV0aW9uIG9mIHdyaXRpbmcgdG8gdGhlIGhv c3QgbWVtb3J5LiBUaGlzIG9mIGNvdXJzZSBkb2VzIG5vdCBndWFyYW50ZWUgb3JkZXIsIGJ1dCBp dCBpcyBiZXR0ZXIgdGhhbiBsZWF2aW5nIGl0IHRoZSB3YXkgaXQgaXMuDQo+ID4gDQo+ID4gSSdt IG5vdCBzdXJlIGlmIEkgdW5kZXJzdGFuZCB5b3UgY29ycmVjdGx5LiBEbyB5b3UgbWVhbiB0byBj YWxsIEFSTSBEU0IgaW5zdHJ1Y3Rpb24gZm9yIERhdGEgU3luY2hyb25pemF0aW9uIEJhcnJpZXIg aW4gQTM3MjAgUENJZSBzdW1tYXJ5IGludGVycnVwdCBoYW5kbGVyIGluIHBjaS1hYXJkdmFyay5j IHByaW9yIGNoYWluaW5nIHRvIHdpZmkgZHJpdmVyIGludGVycnVwdCBoYW5kbGVyPw0KPiA+IA0K PiA+ID4gSG9wZWZ1bGx5IHRoaXMgaGVscHMsDQo+ID4gPiANCj4gPiA+IEVsYWQuDQo+ID4gPiAN Cj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBQYWxpIFJvaMOh ciA8cGFsaUBrZXJuZWwub3JnPg0KPiA+ID4gU2VudDogU3VuZGF5LCBKdWx5IDEwLCAyMDIyIDI6 MjEgUE0NCj4gPiA+IFRvOiBFbGFkIE5hY2htYW4gPGVuYWNobWFuQG1hcnZlbGwuY29tPjsgUmF0 aGVlc2ggS2Fubm90aCANCj4gPiA+IDxya2Fubm90aEBtYXJ2ZWxsLmNvbT47IFRhbm1heSBKYWdk YWxlIDx0YW5tYXlAbWFydmVsbC5jb20+OyANCj4gPiA+IFNoaWppdGggVGhvdHRvbiA8c3Rob3R0 b25AbWFydmVsbC5jb20+OyBBcnVuIEVhc2kgDQo+ID4gPiA8YWVhc2lAbWFydmVsbC5jb20+DQo+ ID4gPiBDYzogS3J6eXN6dG9mIFdpbGN6ecWEc2tpIDxrd0BsaW51eC5jb20+OyBMb3JlbnpvIFBp ZXJhbGlzaSANCj4gPiA+IDxsb3JlbnpvLnBpZXJhbGlzaUBhcm0uY29tPjsgVGhvbWFzIFBldGF6 em9uaSANCj4gPiA+IDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPjsgQmpvcm4gSGVsZ2Fh cyANCj4gPiA+IDxiaGVsZ2Fhc0Bnb29nbGUuY29tPjsgTWFyZWsgQmVow7puIDxrYWJlbEBrZXJu ZWwub3JnPjsgUmVtaSANCj4gPiA+IFBvbW1hcmVsIDxyZXBrQHRyaXBsZWZhdS5sdD47IFhvZ2l1 bSA8Y29udGFjdEB4b2dpdW0ubWU+OyANCj4gPiA+IGxpbnV4LXBjaUB2Z2VyLmtlcm5lbC5vcmc7 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IA0KPiA+ID4gbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnOw0KPiA+ID4gQmhhcmF0IEJodXNoYW4gPGJiaHVzaGFuMkBtYXJ2 ZWxsLmNvbT47IFZlZXJhc2VuYXJlZGR5IEJ1cnJ1IA0KPiA+ID4gPHZidXJydUBtYXJ2ZWxsLmNv bT47IFdvamNpZWNoIEJhcnRjemFrIDx3YmFydGN6YWtAbWFydmVsbC5jb20+DQo+ID4gPiBTdWJq ZWN0OiBbRVhUXSBSZTogSXNzdWVzIHdpdGggQTM3MjAgUENJZSBjb250cm9sbGVyIGRyaXZlciAN Cj4gPiA+IHBjaS1hYXJkdmFyay5jDQo+ID4gPiANCj4gPiA+IEV4dGVybmFsIEVtYWlsDQo+ID4g PiANCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gLS0NCj4gPiA+IC0tDQo+ID4gPiArIE90aGVyIHBl b3BsZSBmcm9tIE1hcnZlbGwgYWN0aXZlIG9uIExLTUwuDQo+ID4gPiANCj4gPiA+IENvdWxkIHlv dSBwbGVhc2UgbG9vayBhdCB0aGlzIGlzc3VlIGFuZCBnaXZlIHVzIHNvbWUgY29tbWVudD8gSXQg aXMgcmVhbGx5IGNyaXRpY2FsIGlzc3VlIHdoaWNoIG5lZWRzIHRvIGJlIHNvbHZlZC4NCj4gPiA+ IA0KPiA+ID4gT24gV2VkbmVzZGF5IDE2IEZlYnJ1YXJ5IDIwMjIgMjE6MDk6NDAgUGFsaSBSb2jD oXIgd3JvdGU6DQo+ID4gPiA+ICsgQmhhcmF0LCBWZWVyYXNlbmFyZWRkeSBhbmQgV29qY2llY2gg ZnJvbSBNYXJ2ZWxsDQo+ID4gPiA+IA0KPiA+ID4gPiBIZWxsbyEgQ291bGQgeW91IHBsZWFzZSBs b29rIGF0IHRoaXMgZW1haWwgYW5kIGhlbHAgdXMgd2l0aCB0aGlzIE1hcnZlbGwgSFcgaXNzdWU/ DQo+ID4gPiA+IA0KPiA+ID4gPiBPbiBTYXR1cmRheSAyNCBKdWx5IDIwMjEgMDA6MTc6MTAgUGFs aSBSb2jDoXIgd3JvdGU6DQo+ID4gPiA+ID4gSGVsbG8gS29uc3RhbnRpbiENCj4gPiA+ID4gPiAN Cj4gPiA+ID4gPiBUaGVyZSBhcmUgaXNzdWVzIHdpdGggTWFydmVsbCBBcm1hZGEgMzcyMCBQQ0ll IGNvbnRyb2xsZXIgd2hlbiANCj4gPiA+ID4gPiBoaWdoIHBlcmZvcm1hbmNlIFBDSWUgY2FyZCAo ZS5nLiBXaUZpIEFYKSBpcyBjb25uZWN0ZWQgdG8gdGhpcyANCj4gPiA+ID4gPiBTT0MuIFVuZGVy IGhlYXZ5IGxvYWQgUENJZSBjb250cm9sbGVyIHNlbmRzIGZhdGFsIGFib3J0IHRvIENQVSBhbmQg a2VybmVsIGNyYXNoLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEluIE1hcnZlbGwgQXJtYWRhIDM3 MDAgRnVuY3Rpb25hbCBFcnJhdGEsIEd1aWRlbGluZXMsIGFuZCANCj4gPiA+ID4gPiBSZXN0cmlj dGlvbnMgZG9jdW1lbnQgaXMgZGVzY3JpYmVkIGVycmF0dW0gMy4xMiBQQ0llIA0KPiA+ID4gPiA+ IENvbXBsZXRpb24gVGltZW91dCAoUmVmICM6IDI1MSkgd2hpY2ggbWF5IGJlIHJlbGV2YW50LiBC dXQgDQo+ID4gPiA+ID4gbmVpdGhlciBCam9ybiwgVGhvbWFzIG5vciBtZSB3ZXJlIGFibGUgdG8g dW5kZXJzdG9vZCB0ZXh0IG9mIA0KPiA+ID4gPiA+IHRoaXMgZXJyYXR1bS4gQW5kIHdlIGhhdmUg YWxyZWFkeSBzcGVudCBsb3Qgb2YgdGltZSBvbiB0aGlzIA0KPiA+ID4gPiA+IGVycmF0dW0uIE15 IGd1ZXNzIHRoYXQgaXMgdGhhdCBpbiBlcnJhdHVtIGl0c2VsZiBhcmUgbWlzdGFrZXMgYW5kIHRo ZXJlIGFyZSBtaXNzaW5nIHNvbWUgb3RoZXIgaW1wb3J0YW50IGRldGFpbHMuDQo+ID4gPiA+ID4g DQo+ID4gPiA+ID4gS29uc3RhbnRpbiwgYXJlIHlvdSBhYmxlIHRvIHVuZGVyc3RhbmQgdGhpcyBl cnJhdHVtPyBPciBkbyB5b3UgDQo+ID4gPiA+ID4ga25vdyBzb21lYm9keSBpbiBNYXJ2ZWxsIHdo byB1bmRlcnN0YW5kIHRoaXMgZXJyYXR1bSBhbmQgY2FuIA0KPiA+ID4gPiA+IGV4cGxhaW4gZGV0 YWlscyB0byB1cz8gT3IgZG8geW91IGtub3cgc29tZSBtb3JlIGRldGFpbHMgYWJvdXQgdGhpcyBl cnJhdHVtPw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEFsc28gaXQgd291bGQgYmUgdXNlZnVsIGlm IHlvdSAvIE1hcnZlbGwgY291bGQgc2hhcmUgdGV4dCBvZiANCj4gPiA+ID4gPiB0aGlzIGVycmF0 dW0gd2l0aCBsaW51eC1wY2kgcGVvcGxlIGFzIGN1cnJlbnRseSBpdCBpcyANCj4gPiA+ID4gPiBh dmFpbGFibGUgb25seSBvbiBNYXJ2ZWxsIEN1c3RvbWVyIFBvcnRhbCB3aGljaCByZXF1aXJlcyBy ZWdpc3RyYXRpb24gd2l0aCBzaWduZWQgTkRBLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEluIHBh c3QgVGhvbWFzIHdyb3RlIHBhdGNoICJhY2NvcmRpbmcgdG8gdGhpcyBlcnJhdHVtIiBhbmQgSSAN Cj4gPiA+ID4gPiBoYXZlIHJlYmFzZWQsIHJld3JpdHRlbiBhbmQgcmVzZW50IGl0IHRvIGxpbnV4 LXBjaSBtYWlsaW5nIGxpc3QgZm9yIHJldmlldzoNCj4gPiA+ID4gPiBodHRwczovL3VybGRlZmVu c2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtM0FfX2xvcmUua2Vybg0KPiA+ID4gPiA+ IGVsDQo+ID4gPiA+ID4gLm8NCj4gPiA+ID4gPiByZw0KPiA+ID4gPiA+IF9saW51eC0yRHBjaV8y MDIxMDYyNDIyMjYyMS40Nzc2LTJENi0yRHBhbGktNDBrZXJuZWwub3JnXyZkPUR3DQo+ID4gPiA+ ID4gSUQNCj4gPiA+ID4gPiBhUQ0KPiA+ID4gPiA+ICZjDQo+ID4gPiA+ID4gPW5LaldlYzJiNlIw bU95UGF6N3h0ZlEmcj1lVGVOVExFSzUtVHhYY3pqT2NLUGhBTklGdGxCOXBQNGxxOXENCj4gPiA+ ID4gPiBoZA0KPiA+ID4gPiA+IGxGDQo+ID4gPiA+ID4gcncNCj4gPiA+ID4gPiBRJm09b3BZc1Fz dl9zZlN2VHRBNW9Kd2MxcGFaclBBV01IVmhUeF85SjFWV0JWRGtzQkVUQ1hWc0MzclJEYg0KPiA+ ID4gPiA+IDVlDQo+ID4gPiA+ID4gamcNCj4gPiA+ID4gPiBnLSAmcz1BS2JFQldPSXhhNEEwUVNG WGlxNkhoS3BCeW4waFBKdVp2YnhzdTNtOG9vJmU9DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gU2lt aWxhciBwYXRjaCBpcyBhdmFpbGFibGUgYWxzbyBpbiBrZXJuZWwgd2hpY2ggaXMgcGFydCBvZiBN YXJ2ZWxsIFNESy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBCam9ybiBoYXMgb2JqZWN0aW9ucyBm b3IgdGhpcyBwYXRjaCBhcyBoZSB0aGlua3MgdGhhdCBiaXQgDQo+ID4gPiA+ID4gRElTX09SRF9D SEsgaW4gdGhhdCBwYXRjaCBzaG91bGQgYmUgZGlzYWJsZWQuIFNlZW1zIHRoYXQgDQo+ID4gPiA+ ID4gZW5hYmxpbmcgdGhpcyBiaXQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgUENJZSBzdHJvbmcgb3Jk ZXJpbmcgDQo+ID4gPiA+ID4gbW9kZWwuIFBDSWUga2VybmVsIGRyaXZlcnMgcmVseSBvbiBQQ0ll IHN0cm9uZyBvcmRlcmluZywgc28gaXQgDQo+ID4gPiA+ID4gd291bGQgaW1wbGljYXRlIHRoYXQg dGhhdCBiaXQgc2hvdWxkIG5vdCBiZSBlbmFibGVkLiBXaGljaCBpcyBvcHBvc2l0ZSBvZiB3aGF0 IGlzIG1lbnRpb25lZCBwYXRjaCBkb2luZy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBLb25zdGFu dGluLCBjb3VsZCB5b3UgaGVscCB1cyB3aXRoIHRoaXMgcHJvYmxlbT8NCg==