From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (EUR04-HE1-obe.outbound.protection.outlook.com [40.107.7.83]) by mx.groups.io with SMTP id smtpd.web12.8079.1619707837126936324 for ; Thu, 29 Apr 2021 07:50:38 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=zVHaKfBq; spf=pass (domain: arm.com, ip: 40.107.7.83, mailfrom: samer.el-haj-mahmoud@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RRph1z40pgoxKjdRSbtHbi/0RDTEqoGqvjYVOflYvPk=; b=zVHaKfBqNgK2SOuReOvXDUJ5yXlf2W5WME+ST4PYdmI4d6bOFrYaJgfoAieZKscr0sFzzVMt/SMnHQ0yuZWVxz4TKlSRRJ427dphsy30fLgAbbg4Ypcnh6uT/tlwV3crPXIgQIzjgG5HIOW3qMDpj+IrPrl6wg5zYfN58Mmr3Ts= Received: from DU2PR04CA0053.eurprd04.prod.outlook.com (2603:10a6:10:234::28) by VI1PR08MB3296.eurprd08.prod.outlook.com (2603:10a6:803:3e::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.24; Thu, 29 Apr 2021 14:50:31 +0000 Received: from DB5EUR03FT029.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:234:cafe::e) by DU2PR04CA0053.outlook.office365.com (2603:10a6:10:234::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Thu, 29 Apr 2021 14:50:31 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT029.mail.protection.outlook.com (10.152.20.131) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Thu, 29 Apr 2021 14:50:31 +0000 Received: ("Tessian outbound e566ed09e411:v91"); Thu, 29 Apr 2021 14:50:31 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: cc3e199ebe5c668b X-CR-MTA-TID: 64aa7808 Received: from 6fcc150d069e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9DD6727F-D56D-4169-B55C-710186D794EE.1; Thu, 29 Apr 2021 14:50:21 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 6fcc150d069e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 29 Apr 2021 14:50:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WajOy7ShDr7HhDZONy2/IMSh2sJZNrNwmmr6iTFXmI1HHfB7vBpHgsPvujMWrMIM4UU2tF3ywgDMINsaAIDK16yWIR3vZsl2xSTatGzJKOytQJQDzy4fhHz2PTCAV8npixK1JWXzaSMJA/iAIAtABdkzLFGPpZpVuCoOSLl0Rv+AmIbgSw23afJliA2Nw5wLRtyS+R2HJ200RpVFWBMkx8YNn9D+81H1YPYAh3AjdQ4r3/M7B8No5XO1zXywj56L9bnLYWtQi2lml8Zhcyprkki3gMqJJvB8btq/Qnn9OiW9t1iYYybGA7ZIRBPrXVIx1LWS6PeUHu4TpfTkZNMu6Q== 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-SenderADCheck; bh=RRph1z40pgoxKjdRSbtHbi/0RDTEqoGqvjYVOflYvPk=; b=XLX2J39XmpjOAzqeDreLSXa9ngVWGIw5nI0J4s7DsXZYpHM6l+ZcoHD3hmxrb83v8xBsxpjoE5yg+WUGY4TXVx7qN7jhuUStHp/Z2ryMBPDdlgzrVhhGkVbRcttFM9TOQAlEWR+09TcpS5Hv8fyFspzA5Otf+OQ8Ri7H5H1nYiK4Wzta7OavcTen7Kk4dxARCXHyp3esh1RSsewr/j8K6FSK9en8klMDVnbIk9e/GcoBdkqncIFApltEtulhUQcuKfCR3DXMkL/4T902XnYg0GRBf7mjX0+QM2lJV0PMs/C66XuTMwtaKe5FnZoGtEBfqPwgW4DVdPWE5P3NiSjgNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RRph1z40pgoxKjdRSbtHbi/0RDTEqoGqvjYVOflYvPk=; b=zVHaKfBqNgK2SOuReOvXDUJ5yXlf2W5WME+ST4PYdmI4d6bOFrYaJgfoAieZKscr0sFzzVMt/SMnHQ0yuZWVxz4TKlSRRJ427dphsy30fLgAbbg4Ypcnh6uT/tlwV3crPXIgQIzjgG5HIOW3qMDpj+IrPrl6wg5zYfN58Mmr3Ts= Received: from DB7PR08MB3260.eurprd08.prod.outlook.com (2603:10a6:5:21::23) by DBBPR08MB6057.eurprd08.prod.outlook.com (2603:10a6:10:1f5::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20; Thu, 29 Apr 2021 14:50:17 +0000 Received: from DB7PR08MB3260.eurprd08.prod.outlook.com ([fe80::7492:d3fd:d6f4:e187]) by DB7PR08MB3260.eurprd08.prod.outlook.com ([fe80::7492:d3fd:d6f4:e187%6]) with mapi id 15.20.4065.027; Thu, 29 Apr 2021 14:50:17 +0000 From: "Samer El-Haj-Mahmoud" To: "devel@edk2.groups.io" , Samer El-Haj-Mahmoud , "pete@akeo.ie" , Laszlo Ersek , Leif Lindholm , "Ni, Ray" , "zhichao.gao@intel.com" CC: "Andrei Warkentin (awarkentin@vmware.com)" , Ard Biesheuvel , Andrew Fish , Michael D Kinney , Jian J Wang , Hao A Wu , "Sunny.Hsuanwen.Wang@gmail.com" , Sunny Wang Subject: Re: [edk2-devel] [edk2][PATCH 1/1] MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery Thread-Topic: [edk2-devel] [edk2][PATCH 1/1] MdeModulePkg/UefiBootManagerLib: Signal ReadyToBoot on platform recovery Thread-Index: AQHXC2TP4I33BihWxkSAQl9u9yWIcKqzJCZAgBjSvVA= Date: Thu, 29 Apr 2021 14:50:17 +0000 Message-ID: References: <20200616095622.2820-1-pete@akeo.ie> <20200616095622.2820-2-pete@akeo.ie> <99904809-1e07-6bd8-f7ba-25e87b1fe543@akeo.ie> <161962620CFC252E.28613@groups.io> <20210217114237.GF1664@vanye> <1c551fb6-8b5b-286e-8f74-b28eb797a6ae@akeo.ie> <9eee055f-a391-7feb-259d-e73d1abc6cd4@akeo.ie> <167582A230C8C2FD.9378@groups.io> In-Reply-To: <167582A230C8C2FD.9378@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; x-originating-ip: [99.132.126.10] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 0e384555-dd12-4886-3679-08d90b1e232d x-ms-traffictypediagnostic: DBBPR08MB6057:|VI1PR08MB3296: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 1vjFh4Q7mZYRYFOWok/00nttWk3/zwQ1sZMEmW82Qo6sFZo2Dk5B/ESaeaxCxVB+eA2rmVuTwZA/97A/RRcn7btCNr/QjUgrnzggSNUi85HZ94if6z14LUUsXwPbfXXTUuay+jacyQMIIKbzBLZlvraWZRBTtpCLTCMbG2AXSH65lBjDiT+BwMbQlNEgP+7VG/nB5WLU/EkooYH8BiyxJTf45yQQvI5SRbmAKzSZbuwzBNKXXf5lCMUByJZcQXg2unzcNNf6cTv4FgBt69y8C13O/UHgs/bEbhkcCGY0ot+lZffm15MCaJKnzRaI/m/YXVtSjG6xR9QBDUEwMb/24OseE/axy5tZ9TS/1TbfUi7IrakukdOn8gh9kA2A+Dw9VS7WNSgvTqAxaO+dJzpgYegPr/pdtgkr6TF8WlTOguKleSlouponl4T8pjYorn0emvZg67OdwLrkNu9N+7lJ7xS9amMXllqWCTuTW7IFO710aI6v+ksvbUnW7bhSwNPL/yRLteJSihSG0m6z8n0SPtJMAuDP6zkT+WNSJpcdHusD3yYTKLdcSiw40JjYUBrbhIpN+5ZnkFIIk5QUNoZ0+OguAPuC+x0JFTO9u7WqCF53iqcA4K4Dp93Q4JGvqkybMelCgcJbNl7sJTHZljLlBf8v2cpDAVkKcnai1AXu9AmzPNASnx31NfdOTK93Dx5F X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR08MB3260.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(6029001)(4636009)(396003)(366004)(376002)(136003)(346002)(39860400002)(7416002)(66556008)(186003)(5660300002)(45080400002)(71200400001)(4326008)(66946007)(52536014)(122000001)(66476007)(66446008)(8936002)(966005)(110136005)(64756008)(8676002)(38100700002)(30864003)(7696005)(53546011)(6506007)(316002)(76116006)(83380400001)(9686003)(55016002)(86362001)(54906003)(478600001)(2906002)(26005)(33656002)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?b2kxR0xCeGFXeEJ2cENrc2RkQ1owUHF4eTdjbFIvQmxESEdvMWVmTkt6cFlH?= =?utf-8?B?U29YRFRET2pTRkhHenZxRW14YzkyVnpjQWoyb2FNMTR1MVA0ajRyZ0JPdjlL?= =?utf-8?B?d0xSK3ZkMTd0M0tYU0hHdzVmcDVXWFdXQ0RwbFN5ZHpSWlZRdmhGZG5CMkJF?= =?utf-8?B?UGsvNHhXWmF3NTN2b0ZNcm5TaVRSb2RwcjE4dnJNa24vRTl0OXU0eThQaTNT?= =?utf-8?B?bCtDcVJsaW5CTi9hSXZaK2hpa1NXRkVzc0F6L2F2ZExuUlF1a3cyemgrRk11?= =?utf-8?B?N3lYUitTNmUyZEVGVlZ3aHJHN0ptcS9WNTdMaHFFckMxd0dXY3luNFdUbXdk?= =?utf-8?B?MHRXcmg4cmc2Qk1WTWtIRkgyWkdFMXIrUHUrbHVRYURGd3piL2M3YW5sMkNa?= =?utf-8?B?RndaZWNEb2E2cHFOOE0wYmRSQ290ZVlxaHBLQlZQVkczNG9kdlgxWGFiQU5n?= =?utf-8?B?SUdubjdpWkp0NlBsVkp5N0dYVmoyNFA0RWQxZktNek5NWHNmbG9Lc1JCNXdV?= =?utf-8?B?V2tyV21hd2JOc0VWVk85ZXQ2aFVIei83cmRZSG52TFpzaGdjVys2eEZKSEZF?= =?utf-8?B?VzZkOW90SDRNZitpOUQwN1IyM2ozUys4N3RwUWRVTUNIelhPbTd1Q3padEVT?= =?utf-8?B?ZkNTODBYaURXOWhibmZScTQzUExiVXZmNVVYQTlsaGVPUnBmbVhUVjhXcG9z?= =?utf-8?B?ZmF6M25qMUVkbGUzc1BRaTZJWHU2bnhHOUhYMFdKUnJvSHRUMTJ2WjlPaU11?= =?utf-8?B?TmRMWlRiajlJb2p3cnh5RlpJMlRWRkRsR3NrKzdPSnVaVG9MM1BBbXptYWNk?= =?utf-8?B?c0pRdDFHejNZWGN6YnZuamJSd2VqMnN4TndWNE91bnJPMURKTzNkb0x1TmNZ?= =?utf-8?B?MDNPSUo1ZlhkaUxJVEtxcDFsRlY3cXgvdFNiWE9DRkxiaHRNRWtwOGFsM1RF?= =?utf-8?B?RUFIbzI2bllOMnlDcW1JOTRjQm1zWlBzM2NqNnpCbkwxaElQa0pxaGtGcXh5?= =?utf-8?B?T2Y5eVdJRFlrcGtUMno1MnVDRXFmTG1KT0VKWmdTL2hwSVRBd25tclA3Vnho?= =?utf-8?B?V3JRVUg4c3MwaG5pYks0Q01oaEoxVkxuZ3VzczRhd08wMXBJM1owc0cxVmVH?= =?utf-8?B?RmVkZXAwbjB5S2xBZFhQbFdSOGpTNXNHcUlWcUdFOG03TFVBRnhkbEZ4R3Bi?= =?utf-8?B?YndnZlFlV29uOUh1ekZqRFd3TnVnSzh6bUsyY1RHQ0RmOE5TdGdzWm1SUkNm?= =?utf-8?B?L25RQTlydnoxMTREcFpSbGx1d1JGWUVycjVGci9iTGErOUJCVXd0VmM1amdB?= =?utf-8?B?bDNwc05IbDBEMis2VUx6enZnR0xLcFVBcHJFUWJyaDNnVFNnbmhJYTNSayto?= =?utf-8?B?VGZBWHMvQUxpYzhBeHprQUpYMkRRR1hVZkdiRWt2bVJlVWozaXhpdHlLYUlY?= =?utf-8?B?ejZYOU9FaDM0YlAzbjQyU2Y4dXpYUW1DeXFIcXhRV0NwMFJLTG1BYkRlcFF6?= =?utf-8?B?UW9aV3BZbXpweEYrUFpwVTZ6SnhpaWE4Zlh2TEEyT3NHNEZ4M09GMlZRWkxh?= =?utf-8?B?bFA2NGVXVGhWcW9DNXpnM1N4NGZ0VmpmbmFGOVU2b3pLb3dBdGtrSjM0Ujlx?= =?utf-8?B?TGNTTHpBeTNqWHF3K2Rtb3o0YU1kMjhiK0E5SzF0dEdSWFdjaUNnNnVtSEJv?= =?utf-8?B?cUY5dEZWNXltT3VvcGczY0cvd2hpQU41RkVvc0Z3R0JhVExTeThDdEtEOHI5?= =?utf-8?Q?nYX4GRXsYY+ptZMue4alRjfZaetrWDZtlC3nkxd?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6057 Original-Authentication-Results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 6c05ce3f-2c51-434f-bc91-08d90b1e1aef X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: A5Vs2QeUz2pcrqFzrTiNLIQwwF+jK4apiBF7Hz9cTzA+0FeIEWTAIR/e2t0t083istsChUrh332rgxSc4ghYNGXdyraNCRk1Y+dpivhQe0BpNACubRNepgRQ0vnKNVgRo7mjhmFkrLoIwN7SD2nG6wF3vaMGO4NFNjSeiUTYqO/NASE/7NvrYAgDEaKgzwXTfBRiSMhAANp4sXFOR90W6M6Igdzy7jROOFqvvfvfePl/gABiIKp0dOpGfxWJJ7bfY9cQi3EMqe9qtzyNyIfgl+QDpjNoSxp74PKueobmTZbCDhiGNlu8DLwQzY9QnPu525zulLOA5T8+xnt9i5XbsXIJOKQ2ypDWwYsHHnkSkHbdnYL8JF8J4ACjcvMe8es6fNw9iyv0WqC89DfpY8SGVfVJT/QXP9FlyvTOLxUQNBwIUASsel/Z7+CzFp2Ap0BTDYxP9sxRoPJPXxPb4x893ekg0Feq4jYyt/GzZC1n3J6jUJYeIu8+xeLVcfHA/ERg9xKIi68PD5NrMxzcTESv25bwib32QhMfzhRqr173zQomvG9JsvmGVL+jvu/7eZQFT1mco2sUT4x1Pb8VxgdvtgoMEcucZIWwL5x7AcHns/3wLT9PimyQkgXL0lyIBm6Ux6gELkg92uPRCR21IWq6vAYvF8893FGMDc+6TINAjon+C1W1L7+N0QFMxByKBWToCAbzGZS34YYlJm9RpmNaLd8i8sVV8s8G6P4eNjyGjCV3qVARwNzidh8oosH/F3SmRBeF0D4NbmOwdm5sx8Wb0w== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(6029001)(4636009)(396003)(346002)(39860400002)(136003)(376002)(46966006)(36840700001)(336012)(316002)(45080400002)(54906003)(33656002)(478600001)(7696005)(30864003)(6506007)(110136005)(34020700004)(966005)(2906002)(5660300002)(52536014)(47076005)(9686003)(53546011)(8676002)(8936002)(26005)(70586007)(70206006)(82740400003)(81166007)(36860700001)(86362001)(55016002)(356005)(82310400003)(83380400001)(4326008)(186003)(579004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2021 14:50:31.6571 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e384555-dd12-4886-3679-08d90b1e232d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DB5EUR03FT029.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3296 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWxsLA0KDQpQbGVhc2UgdGFrZSBhIG1vbWVudCB0byBhZGQgYW55IGNvbW1lbnRzIHRvIHRoaXMg VUVGSSBFQ1IgQlouIFRoaXMgaXMgbmVlZGVkIHRvIFVFRkkgRm9ydW0gY2FuIG1ha2UgYSBkZWNp c2lvbiBhbmQgY2xvc2UgdGhlIEVDUi4NCmh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MzMzNg0KDQoNClRoYW5rcywNCi0tU2FtZXINCg0KDQoNCj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVs QGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgU2FtZXINCj4gRWwtSGFqLU1haG1vdWQgdmlh IGdyb3Vwcy5pbw0KPiBTZW50OiBUdWVzZGF5LCBBcHJpbCAxMywgMjAyMSAzOjQ4IFBNDQo+IFRv OiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgcGV0ZUBha2VvLmllOyBMYXN6bG8gRXJzZWsNCj4gPGxl cnNla0ByZWRoYXQuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWluYy5jb20+OyBOaSwg UmF5DQo+IDxyYXkubmlAaW50ZWwuY29tPjsgemhpY2hhby5nYW9AaW50ZWwuY29tDQo+IENjOiBB bmRyZWkgV2Fya2VudGluIChhd2Fya2VudGluQHZtd2FyZS5jb20pDQo+IDxhd2Fya2VudGluQHZt d2FyZS5jb20+OyBBcmQgQmllc2hldXZlbCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47DQo+ IEFuZHJldyBGaXNoIDxhZmlzaEBhcHBsZS5jb20+OyBNaWNoYWVsIEQgS2lubmV5DQo+IDxtaWNo YWVsLmQua2lubmV5QGludGVsLmNvbT47IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+OyBIYW8gQQ0KPiBXdSA8aGFvLmEud3VAaW50ZWwuY29tPjsgU3VubnkuSHN1YW53ZW4uV2Fu Z0BnbWFpbC5jb207IFNhbWVyIEVsLQ0KPiBIYWotTWFobW91ZCA8U2FtZXIuRWwtSGFqLU1haG1v dWRAYXJtLmNvbT47IFN1bm55IFdhbmcNCj4gPFN1bm55LldhbmdAYXJtLmNvbT4NCj4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbZWRrMl1bUEFUQ0ggMS8xXQ0KPiBNZGVNb2R1bGVQa2cvVWVm aUJvb3RNYW5hZ2VyTGliOiBTaWduYWwgUmVhZHlUb0Jvb3Qgb24gcGxhdGZvcm0NCj4gcmVjb3Zl cnkNCj4NCj4gSW4gb3JkZXIgdG8gbWFrZSBwcm9ncmVzcyBvbiB0aGlzLCBJIG9wZW5lZCBhIGNv ZGUtZmlyc3QgRUNSICBhZ2FpbnN0IHRoZSBVRUZJDQo+IHNwZWMgdG8gY2xhcmlmeSB0aGUgbGFu Z3VhZ2UgYXJvdW5kIHRoZSBCb290IyMjIyBvcHRpb25zIHByb2Nlc3NpbmcuDQo+DQo+IENvZGUg Rmlyc3QgRUNSOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lk PTMzMzYNCj4NCj4gRmVlZGJhY2sgb24gdGhlIHByb3Bvc2VkIGxhbmd1YWdlIGlzIGFwcHJlY2lh dGVkLiBQbGVhc2UgcHJvdmlkZSB0aGUNCj4gZmVlZGJhY2sgZGlyZWN0bHkgaW4gdGhlIEJaIGFi b3ZlLg0KPg0KPiBJIHdpbGwgdXBkYXRlIHRoZSB0aHJlYWQvQlogd2l0aCByZXN1bHRzIGZyb20g VVNXRy4NCj4NCj4gVGhhbmtzLA0KPiAtLVNhbWVyDQo+DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+IE9uIEJlaGFsZiBPZiBQZXRlDQo+ID4gQmF0YXJkIHZpYSBncm91cHMuaW8NCj4gPiBT ZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMjUsIDIwMjEgNTo1NSBBTQ0KPiA+IFRvOiBXYW5nLCBT dW5ueSAoSFBTIFNXKSA8c3Vubnl3YW5nQGhwZS5jb20+OyBMYXN6bG8gRXJzZWsNCj4gPiA8bGVy c2VrQHJlZGhhdC5jb20+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlhaW5jLmNvbT47DQo+ID4g ZGV2ZWxAZWRrMi5ncm91cHMuaW87IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+Ow0KPiA+IHpo aWNoYW8uZ2FvQGludGVsLmNvbQ0KPiA+IENjOiBTYW1lciBFbC1IYWotTWFobW91ZCA8U2FtZXIu RWwtSGFqLU1haG1vdWRAYXJtLmNvbT47IEFuZHJlaQ0KPiA+IFdhcmtlbnRpbiAoYXdhcmtlbnRp bkB2bXdhcmUuY29tKSA8YXdhcmtlbnRpbkB2bXdhcmUuY29tPjsgQXJkDQo+ID4gQmllc2hldXZl bCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IEFuZHJldyBGaXNoDQo+IDxhZmlzaEBhcHBs ZS5jb20+Ow0KPiA+IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgSmlhbiBKIFdhbmcNCj4gPiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgSGFvIEEgV3UgPGhh by5hLnd1QGludGVsLmNvbT47DQo+ID4gU3VubnkuSHN1YW53ZW4uV2FuZ0BnbWFpbC5jb20NCj4g PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyXVtQQVRDSCAxLzFdDQo+ID4gTWRlTW9k dWxlUGtnL1VlZmlCb290TWFuYWdlckxpYjogU2lnbmFsIFJlYWR5VG9Cb290IG9uIHBsYXRmb3Jt DQo+ID4gcmVjb3ZlcnkNCj4gPg0KPiA+IEhpIFN1bm55LA0KPiA+DQo+ID4gSSBhcHByZWNpYXRl IHRoZSBpbnB1dCwgYnV0IHNlZWluZyB0aGF0IGl0IGlzIGNsZWFyIHRoYXQgbm8gY29uc2Vuc3Vz DQo+ID4gaGFzIGJlZW4gcmVhY2hlZCB3aXRoIHJlZ2FyZHMgdG8gaG93IHRoZSBzcGVjcyBzaG91 bGQgYmUgaW50ZXJwcmV0ZWQsDQo+ID4gYW5kIHRoYXQgYXQgbGVhc3QgNCBzZXBhcmF0ZSBwZW9w bGUgaGF2ZSBub3cgaW5kaWNhdGVkIHRoYXQgdGhlaXINCj4gPiBpbnRlcnByZXRhdGlvbiBpcyBk aWZmZXJlbnQgZnJvbSB0aGUgb25lIHlvdSBhcmUgcHV0dGluZyBmb3J3YXJkIChpLmUuDQo+ID4g eW91IGFzc2VydCB0aGF0IHRoZSBjdXJyZW50IGNvZGUgaW1wbGVtZW50YXRpb24gaXMgc3BlY3Mg Y29tcGxpYW50DQo+ID4gd2hlcmVhcyB3ZSBhc3NlcnQgdGhhdCB0aGUgY3VycmVudCBjb2RlIGlt cGxlbWVudGF0aW9uIGlzIG5vdCBzcGVjcw0KPiA+IGNvbXBsaWFudCksIEkgYmVsaWV2ZSB0aGF0 IGFueSBmdXJ0aGVyIHdvcmsgb24gdGhpcyB3aWxsIGhhdmUgdG8gYmUNCj4gPiBjb25kaXRpb25l ZCwgZmlyc3QsIGJ5IGEgc3BlY3MgdXBkYXRlLCB0aGF0IHJlbW92ZXMgYW55IGFtYmlndWl0eSBh cw0KPiA+IHRvIHRoZSBzY29wZSBpbiB3aGljaCBSZWFkeVRvQm9vdCBzaG91bGQgYXBwbHkuDQo+ ID4NCj4gPiBVbnRpbCB0aGF0IGhhcyBoYXBwZW5lZCwgaXQgc2VlbXMgdmVyeSBwb2ludGxlc3Mg dG8gbWUgdG8gc3RhcnQNCj4gPiB0YWxraW5nIHBvc3NpYmxlIGNvZGUgd29ya2Fyb3VuZHMsIGJl Y2F1c2Ugd2Ugc3RpbGwgY2FuJ3QgYXBwZWFyIHRvIGJlDQo+ID4gaW4gYWdyZWVtZW50IGFzIHRv IHdoZXRoZXIgdGhlIGN1cnJlbnQgY29kZSBpbXBsZW1lbnRhdGlvbiBvZg0KPiA+IFJlYWR5VG9C b290IGlzIHNwZWNzIGNvbXBsaWFudCBvciBub3QuDQo+ID4NCj4gPiBOb3csIGV2ZW4gYXMgSSBh bSB0aGUgb25lIHByb3Bvc2luZyBpdCwgSSdtIGFmcmFpZCB0aGF0IEkgYW0gbm90DQo+ID4gcGxh bm5pbmcgdG8gYmUgdGhlIG9uZSBvcGVuaW5nIGEgZm9ybWFsIHNwZWNzIHVwZGF0ZSByZXF1ZXN0 LCBzaW5jZQ0KPiA+IHRoZXJlIHJlYWxseSBpcyBvbmx5IHNvIG11Y2ggbW9yZSB0aW1lIEkgYW0g d2lsbGluZyB0byBkZXZvdGUgdG8gdGhpcw0KPiA+IG1hdHRlci4gQnV0IEkgYW0gaG9waW5nIHNv bWVib2R5IGVsc2Ugd2lsbC4NCj4gPg0KPiA+IFJlZ2FyZHMsDQo+ID4NCj4gPiAvUGV0ZQ0KPiA+ DQo+ID4gT24gMjAyMS4wMi4yMiAwOToyOCwgV2FuZywgU3VubnkgKEhQUyBTVykgd3JvdGU6DQo+ ID4gPiBIaSBhbGwsDQo+ID4gPg0KPiA+ID4gSG93IGFib3V0IHdlIHNpZ25hbCBSZWFkeVRvQm9v dCBPTkxZIGZvciB0aGUgZGVmYXVsdCBwbGF0Zm9ybQ0KPiA+ID4gcmVjb3ZlcnkNCj4gPiBvcHRp b24/ICBUaGUgZGVmYXVsdCBwbGF0Zm9ybSByZWNvdmVyeSBvcHRpb24gaGVyZSBtZWFucyB0aGUg b25lDQo+ID4gY3JlYXRlZCBieSB0aGUgY29kZSBiZWxvdyBpbiBCZHNFbnRyeSgpLg0KPiA+ID4g ICAgU3RhdHVzID0gRWZpQm9vdE1hbmFnZXJJbml0aWFsaXplTG9hZE9wdGlvbiAoDQo+ID4gPiAg ICAgICAgICAgICAgICZQbGF0Zm9ybURlZmF1bHRCb290T3B0aW9uLA0KPiA+ID4gICAgICAgICAg ICAgICBMb2FkT3B0aW9uTnVtYmVyVW5hc3NpZ25lZCwNCj4gPiA+ICAgICAgICAgICAgICAgTG9h ZE9wdGlvblR5cGVQbGF0Zm9ybVJlY292ZXJ5LA0KPiA+ID4gICAgICAgICAgICAgICBMT0FEX09Q VElPTl9BQ1RJVkUsDQo+ID4gPiAgICAgICAgICAgICAgIEwiRGVmYXVsdCBQbGF0Zm9ybVJlY292 ZXJ5IiwNCj4gPiA+ICAgICAgICAgICAgICAgRmlsZVBhdGgsDQo+ID4gPiAgICAgICAgICAgICAg IE5VTEwsDQo+ID4gPiAgICAgICAgICAgICAgIDANCj4gPiA+ICAgICAgICAgICAgICAgKTsNCj4g PiA+DQo+ID4gPiBJbiBvdGhlciB3b3Jkcywgd2UganVzdCBuZWVkIHRvIHNsaWdodGx5IHVwZGF0 ZSBQZXRlJ3MgcGF0Y2ggYXMgdGhlDQo+ID4gZm9sbG93aW5nIChhZGRpbmcgdGhlIGNvZGUgYmVs b3cgdG8gRWZpQm9vdE1hbmFnZXJQcm9jZXNzTG9hZE9wdGlvbigpKToNCj4gPiA+DQo+ID4gPiAr ICAgaWYgKChMb2FkT3B0aW9uLT5PcHRpb25UeXBlID09IExvYWRPcHRpb25UeXBlUGxhdGZvcm1S ZWNvdmVyeSkNCj4gPiA+ICsgJiYNCj4gPiA+ICAgICAgICAgICAgU3RyQ21wIChMb2FkT3B0aW9u IC0+RGVzY3JpcHRpb24sIEwiRGVmYXVsdA0KPiA+ID4gUGxhdGZvcm1SZWNvdmVyeSIpKSB7DQo+ ID4gPiArICAgIC8vDQo+ID4gPiArICAgIC8vIFNpZ25hbCB0aGUgRVZUX1NJR05BTF9SRUFEWV9U T19CT09UIGV2ZW50IHdoZW4gd2UgYXJlDQo+IGFib3V0DQo+ID4gdG8gbG9hZCBhbmQgZXhlY3V0 ZSB0aGUgYm9vdCBvcHRpb24uDQo+ID4gPiArICAgIC8vDQo+ID4gPiArICAgIEVmaVNpZ25hbEV2 ZW50UmVhZHlUb0Jvb3QgKCk7DQo+ID4gPg0KPiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICAvLyBS ZXBvcnQgU3RhdHVzIENvZGUgdG8gaW5kaWNhdGUgUmVhZHlUb0Jvb3Qgd2FzIHNpZ25hbGxlZA0K PiA+ID4gKyAgICAvLw0KPiA+ID4gKyAgICBSRVBPUlRfU1RBVFVTX0NPREUgKEVGSV9QUk9HUkVT U19DT0RFLA0KPiA+ID4gKyAoRUZJX1NPRlRXQVJFX0RYRV9CU19EUklWRVIgfA0KPiA+ID4gKyBF RklfU1dfRFhFX0JTX1BDX1JFQURZX1RPX0JPT1RfRVZFTlQpKTsNCj4gPiA+ICsgIH0NCj4gPiA+ DQo+ID4gPiBJIHRoaW5rIHRoZSBleGlzdGluZyBwbGF0Zm9ybXMgdGhhdCBoYXZlIHRoZWlyIHBs YXRmb3JtLXNwZWNpZmljDQo+ID4gUGxhdGZvcm1SZWNvdmVyeSBvcHRpb24gbWF5IGFsc28gZG8g ZWl0aGVyIG9mIHRoZSBmb2xsb3dpbmcgdGhpbmdzIHRvDQo+ID4gbWFrZSB0aGUgc3lzdGVtIGhh dmUgbm8gY2hhbmNlIHRvIGxvYWQgdGhlIGRlZmF1bHQgcGxhdGZvcm0gcmVjb3ZlcnkNCj4gPiBv cHRpb24gYmVjYXVzZSB0aGV5IGRvIGhhdmUgYSBiZXR0ZXIgd2F5IHRvIHJlY292ZXIgdGhlIGJv b3Qgb3B0aW9uczoNCj4gPiA+ICAgICAgMS4gTWFrZSB0aGVpciBQbGF0Zm9ybVJlY292ZXJ5IG9w dGlvbiBoYXZlIGhpZ2hlciBwcmlvcml0eSB0aGFuDQo+ID4gPiB0aGUNCj4gPiBkZWZhdWx0IHBs YXRmb3JtIHJlY292ZXJ5IG9wdGlvbiAoaGFzIGEgbG93ZXIgbnVtYmVyICgjIyMjKSB0aGFuIHRo ZQ0KPiA+IGRlZmF1bHQgcGxhdGZvcm0gcmVjb3Zlcnkgb3B0aW9uKQ0KPiA+ID4gICAgICAyLiBS ZW1vdmUgdGhlIGRlZmF1bHQgcGxhdGZvcm0gcmVjb3Zlcnkgb3B0aW9uLg0KPiA+ID4gVGhlcmVm b3JlLCBpZiB3ZSBvbmx5IHNpZ25hbCBSZWFkeVRvQm9vdCBmb3IgdGhlIGRlZmF1bHQgcGxhdGZv cm0NCj4gPiA+IHJlY292ZXJ5DQo+ID4gb3B0aW9uLCB0aGlzIG1heSBub3QgYWZmZWN0IHRoZSBl eGlzdGluZyBwbGF0Zm9ybXMgYmVjYXVzZSB0aGUgY29kZQ0KPiA+IG1heSBuZXZlciBiZSBydW4g b24gdGhlc2UgcGxhdGZvcm1zLg0KPiA+ID4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ ID4gPiBJZiB0aGUgc29sdXRpb24gYWJvdmUgZG9lc24ndCB3b3JrLCBJIHRoaW5rIHRoZSBzdWdn ZXN0aW9uIChTb2x1dGlvbiAyOg0KPiA+IGFkZGluZyBhIG5ldyBhcHBsaWNhdGlvbiBhcyBhIFBs YXRmb3JtUmVjb3ZlcnkjIyMjKSBJIG1lbnRpb25lZCwgaW4NCj4gPiB0aGUgYmVnaW5uaW5nLCBj YW4gYmUgcmUtY29uc2lkZXJlZC4gVGhlIHN1Z2dlc3Rpb24gKHNvbHV0aW9uIDIpIGlzDQo+ID4g YmFzZWQgb24gdGhlIHRob3VnaHRzIGJlbG93Og0KPiA+ID4gICAgICAgMS4gIEkgdGhpbmsgdGhh dCBwcm9jZXNzaW5nL2V2YWx1YXRpbmcgdGhlIEJvb3QjIyMjIGNhbiBiZQ0KPiA+ID4gaW50ZXJw cmV0ZWQgYXMNCj4gPiB0aGUgY29kZSBhZnRlciB0aGUgY29tbWVudCAiIDYuIExvYWQgRUZJIGJv b3Qgb3B0aW9uIHRvIEltYWdlSGFuZGxlIg0KPiA+IGluDQo+ID4gRWZpQm9vdE1hbmFnZXJCb290 KCkgYmVjYXVzZSB0aGVzZSBjb2RlIGFyZSBzaW1pbGFyIHRvIHRoZSBjb2RlIGluDQo+ID4gRWZp Qm9vdE1hbmFnZXJQcm9jZXNzTG9hZE9wdGlvbigpLiBCYXNlZCBvbiB0aGlzLCBJIHRoaW5rIG91 ciBjdXJyZW50DQo+ID4gaW1wbGVtZW50YXRpb24gaXMgY29tcGxpYW50IHdpdGggdGhlIGRlc2Ny aXB0aW9uIGJlbG93IGluIHRoZSBVRUZJDQo+ID4gc3BlYy4gT2YgY291cnNlLCB3ZSBjYW4gaW1w cm92ZSBvdXIgaW1wbGVtZW50YXRpb24gYnkgbW92aW5nIHRoZSBjb2RlDQo+ID4gZm9yIHByb2Nl c3NpbmcvZXZhbHVhdGluZyB0aGUgQm9vdCMjIyMgZnJvbSBFZmlCb290TWFuYWdlckJvb3QoKSB0 bw0KPiA+IEVmaUJvb3RNYW5hZ2VyUHJvY2Vzc0xvYWRPcHRpb24oKSBhbmQgbWFrZSBFZmlCb290 TWFuYWdlckJvb3QoKSBjYWxsDQo+ID4gRWZpQm9vdE1hbmFnZXJQcm9jZXNzTG9hZE9wdGlvbigp Lg0KPiA+ID4gICAgICAgICAgICAgICAg4oCcQWZ0ZXIgYWxsIFN5c1ByZXAjIyMjIHZhcmlhYmxl cyBoYXZlIGJlZW4gbGF1bmNoZWQNCj4gPiA+IGFuZCBleGl0ZWQsDQo+ID4gdGhlIHBsYXRmb3Jt IHNoYWxsIG5vdGlmeSBFRklfRVZFTlRfR1JPVVBfUkVBRFlfVE9fQk9PVCBldmVudA0KPiBncm91 cA0KPiA+IGFuZCBiZWdpbiB0byBldmFsdWF0ZSBCb290IyMjIyB2YXJpYWJsZXMgd2l0aCBBdHRy aWJ1dGVzIHNldCB0bw0KPiA+IExPQURfT1BUSU9OX0NBVEVHT1JZX0JPT1QgYWNjb3JkaW5nIHRv IHRoZSBvcmRlciBkZWZpbmVkIGJ5DQo+IEJvb3RPcmRlci4NCj4gPiBUaGUgRmlsZVBhdGhMaXN0 IG9mIHZhcmlhYmxlcyBtYXJrZWQgTE9BRF9PUFRJT05fQ0FURUdPUllfQk9PVCBzaGFsbA0KPiA+ IG5vdCBiZSBldmFsdWF0ZWQgcHJpb3IgdG8gdGhlIGNvbXBsZXRpb24gb2YNCj4gPiBFRklfRVZF TlRfR1JPVVBfUkVBRFlfVE9fQk9PVCBldmVudCBncm91cCBwcm9jZXNzaW5nLiINCj4gPiA+ICAg ICAgIDIuIE1vcmVvdmVyLCBpdCBsb29rcyBsaWtlIHdlIHdhbnQgdG8gcHJvY2Vzcw0KPiA+ID4g UGxhdGZvcm1SZWNvdmVyeSMjIyMNCj4gPiBvcHRpb24gaW4gdGhlIHNhbWUgd2F5IGFzIEJvb3Qj IyMjIChkbyBtb3JlIHRoaW5ncyBsaWtlIHNldHRpbmcNCj4gPiBCb290Q3VycmVudCBmb3IgUGxh dGZvcm1SZWNvdmVyeSMjIyMpLiBJZiBzbywgSSB3b3VsZCBzdGlsbCBwcmVmZXIgdG8NCj4gPiBk byB3aGF0IEkgc3VnZ2VzdCBpbiB0aGUgYmVnaW5uaW5nIHRvIGNyZWF0ZSBhIG5ldyBhcHBsaWNh dGlvbiBhcyBhDQo+ID4gbmV3IFBsYXRmb3JtUmVjb3ZlcnkjIyMjIG9wdGlvbiBmb3IgZ2VuZXJh dGluZyBhbmQgbGF1bmNoaW5nIGEgYm9vdA0KPiA+IG9wdGlvbiBmb3IgdGhlIGJvb3RhYmxlIGlt YWdlIHRoYXQgaXMgZm91bmQgYnkgdXNpbmcgYSBzaG9ydC1mb3JtIEZpbGUNCj4gPiBQYXRoIE1l ZGlhIERldmljZSBQYXRoIHNvIHRoYXQgd2Ugd29uJ3QgcnVuIGludG8gb3RoZXIgZGlmZmljdWx0 aWVzLg0KPiA+IEF0IGxlYXN0LCBJIGFscmVhZHkgc2F3IHRoZSBkaWZmaWN1bHR5IG9mIG5vIGNv bm5lY3Rpb24gYmV0d2Vlbg0KPiA+IEJvb3RDdXJyZW50IHZhcmlhYmxlIGFuZCBQbGF0Zm9ybVJl Y292ZXJ5IyMjIyB2YXJpYWJsZS4gT2YgY291cnNlLA0KPiA+IHRoaXMgYXBwbGljYXRpb24gY2Fu IGJlIGltcGxlbWVudGVkIHdpdGhvdXQgcGxhdGZvcm0gc3BlY2lmaWMgc3R1ZmYsDQo+ID4gc28g aXQgY2FuIGJlIGNvbW1vbmx5IHVzZWQgYnkgYWxsIHBsYXRmb3JtcyB0aGF0IG5lZWQgdG8gbG9h ZCBhIGJvb3QgaW1hZ2UNCj4gZGlzY292ZXJlZCBieSB1c2luZyBzaG9ydC1mb3JtIEZpbGUgUGF0 aCBNZWRpYSBEZXZpY2UgUGF0aC4NCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBS ZWdhcmRzLA0KPiA+ID4gU3VubnkgV2FuZw0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0K PiA+ID4gU2VudDogV2VkbmVzZGF5LCBGZWJydWFyeSAxNywgMjAyMSAxMDoyNiBQTQ0KPiA+ID4g VG86IFBldGUgQmF0YXJkIDxwZXRlQGFrZW8uaWU+OyBMZWlmIExpbmRob2xtIDxsZWlmQG51dmlh aW5jLmNvbT47DQo+ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFNhbWVyIEVs LUhhai1NYWhtb3VkIDxTYW1lci5FbC1IYWotTWFobW91ZEBhcm0uY29tPjsgQW5kcmVpDQo+ID4g PiBXYXJrZW50aW4gKGF3YXJrZW50aW5Adm13YXJlLmNvbSkgPGF3YXJrZW50aW5Adm13YXJlLmNv bT47DQo+ID4gV2FuZywgU3VubnkNCj4gPiA+IChIUFMgU1cpIDxzdW5ueXdhbmdAaHBlLmNvbT47 IHpoaWNoYW8uZ2FvQGludGVsLmNvbTsNCj4gPiByYXkubmlAaW50ZWwuY29tOw0KPiA+ID4gQXJk IEJpZXNoZXV2ZWwgPGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc+OyBBbmRyZXcgRmlzaA0KPiA+ ID4gPGFmaXNoQGFwcGxlLmNvbT47IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsNCj4gPiA+IEppYW4gSiBXYW5nIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBI YW8gQSBXdSA8aGFvLmEud3VAaW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtFWFRFUk5B TF0gUmU6IFtlZGsyLWRldmVsXSBbZWRrMl1bUEFUQ0ggMS8xXQ0KPiA+ID4gTWRlTW9kdWxlUGtn L1VlZmlCb290TWFuYWdlckxpYjogU2lnbmFsIFJlYWR5VG9Cb290IG9uIHBsYXRmb3JtDQo+ID4g PiByZWNvdmVyeQ0KPiA+ID4NCj4gPiA+IE9uIDAyLzE3LzIxIDEzOjE4LCBQZXRlIEJhdGFyZCB3 cm90ZToNCj4gPiA+PiBIaSBMZWlmLA0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzIGZvciB0cnlpbmcg dG8gcmVzdXJyZWN0IHRoaXMgaXNzdWUuDQo+ID4gPj4NCj4gPiA+PiBBdCB0aGlzIHN0YWdlLCBh bmQgZGVzcGl0ZSBzb21lIGluaXRpYWwgcHVzaGJhY2sgaW4gdGhlIGJ1Z3ppbGxhDQo+ID4gPj4g dGlja2V0LCBJIGJlbGlldmUgd2UgY2FuIGFsbCBhZ3JlZSB3aXRoIHRoZSBjb25zZW5zdXMgdGhh dA0KPiA+ID4+IFVlZmlCb290TWFuYWdlckxpYiBpcyBub3QgaW4gZmFjdCBzcGVjcy1jb21wbGlh bnQgYW5kIHRoZXJlZm9yZQ0KPiA+ID4+IG5lZWRzIHRvIGJlIGZpeGVkLCBvbmUgd2F5IG9yIGFu b3RoZXIsIHRvIG1ha2UgaXQgc3BlY3MtY29tcGxpYW50Lg0KPiA+ID4+DQo+ID4gPj4gTXkgdGFr ZSBvbiB0aGlzIGlzIHRoYXQsIHJhdGhlciB0aGFuIHByb3Bvc2UgYSBuZXcgcGF0Y2gsIEknZCBt dWNoDQo+ID4gPj4gcmF0aGVyIGhhdmUgdGhlIGN1cnJlbnQgbWFpbnRhaW5lcnMgYWdyZWUgb24g dGhlIGNvdXJzZSBvZiBhY3Rpb24NCj4gPiA+PiB0byBmaXggdGhlIGxpYnJhcnkgKHdoaWNoLCBh cyBMZWlmIHN1Z2dlc3RzLCBtaWdodCB2ZXJ5IHdlbGwgYmUgdG8NCj4gPiA+PiBzcGxpdCB0aGUg bGlicmFyeSBpbnRvIGEgc3BlY3MtY29tcGxpYW50IGFuZCBub24tc3BlY3MtY29tcGxpYW50DQo+ ID4gPj4gdmVyc2lvbiksIGFzIGl0IHdvdWxkIG9mIGNvdXJzZSBiZSBiZXR0ZXIgaWYgdGhlIGZp eCBjYW1lIGZyb20NCj4gPiA+PiBwZW9wbGUgd2hvIGhhdmUgYmV0dGVyIHVuZGVyc3RhbmRpbmcg b2YgdGhlIHJhbWlmaWNhdGlvbnMgd2UgbWlnaHQNCj4gPiA+PiBmYWNlIHdpdGggdHJ5aW5nIHRv IGNvcnJlY3QgdGhlIGN1cnJlbnQgYmVoYXZpb3VyLCBhbmQgZXNwZWNpYWxseSwNCj4gPiA+PiB3 aG8gaGF2ZSBrbm93bGVkZ2Ugb2YgdGhlIHBsYXRmb3JtcyB0aGF0IG1pZ2h0IGJlIGltcGFjdGVk IGZyb20NCj4gPiA+PiBtYWtpbmcgdGhlIGxpYiBzcGVjcy0NCj4gPiBjb21wbGlhbnQuDQo+ID4g Pj4NCj4gPiA+PiBFc3BlY2lhbGx5LCBJIGRvbid0IHRoaW5rIHRoYXQgdGhlIHBhdGNoIHRoYXQg SSBvcmlnaW5hbGx5DQo+ID4gPj4gc3VibWl0dGVkIGZvciB0aGlzLCBvciB0aGUgYWRkaXRpb25h bCBwcm9wb3NhbHMgd2UgbWFkZSwgYXJlIHN0aWxsDQo+ID4gPj4gcmVjZWl2YWJsZSwgYXMgdGhl eSBzZWVtIHRvIGZhbGwgc2hvcnQgb2YgZml4aW5nIHRoZSBpc3N1ZSBpbiBhDQo+ID4gPj4gbWFu bmVyIHRoYXQgYWxsIHBsYXRmb3JtcyBjYW4gYmUgaGFwcHkgd2l0aC4gQW5kIHRoYXQgaXMgd2h5 IEknZA0KPiA+ID4+IGxpa2UgdG8gaGVhciBmcm9tIHRoZSBtYWludGFpbmVycyBvbiB3aGF0IHRo ZWlyIHByZWZlcnJlZCBhcHByb2FjaA0KPiB3b3VsZCBiZS4NCj4gPiA+DQo+ID4gPiBBIG5ldyBG ZWF0dXJlIFBDRCBjb3VsZCBzYXRpc2Z5IGJvdGggc2V0cyBvZiBwbGF0Zm9ybXMsIGNvdWxkIGl0 IG5vdD8NCj4gPiA+DQo+ID4gPiAoU29ycnkgaWYgdGhlIG9yaWdpbmFsIHBhdGNoIGFscmVhZHkg aGFkIHN1Y2ggYSBQQ0Q7IEkgZG9uJ3QNCj4gPiA+IHJlbWVtYmVyLikNCj4gPiA+DQo+ID4gPiBP ZiBjb3Vyc2UgdGhlbiB3ZSdkIGhhdmUgYSBkZWJhdGUgYXJvdW5kIHRoZSBERUMgZGVmYXVsdCBm b3IgdGhlIG5ldw0KPiA+ID4gUENEDQo+ID4gPiAtLSBJJ2Qgc2F5IHRoZSBkZWZhdWx0IHZhbHVl IG9mIHRoZSBQQ0Qgc2hvdWxkIG1hdGNoIHRoZQ0KPiA+ID4gc3BlYy1tYW5kYXRlZA0KPiA+IGJl aGF2aW9yLg0KPiA+ID4NCj4gPiA+IEkgZG9uJ3QgcmVjYWxsIGFueSBzcGVjaWZpY3MsIGJ1dCBh IGJ1Zy1jb21wYXQgcGF0dGVybiB0aGF0J3MNCj4gPiA+IHNvbWV0aW1lcyB1c2VkDQo+ID4gaXMg dGhpczoNCj4gPiA+DQo+ID4gPiAgICBpZiAoQnVnQ29tcGF0RW5hYmxlZCkgew0KPiA+ID4gICAg ICAvLw0KPiA+ID4gICAgICAvLyBkbyB0aGUgcmlnaHQgdGhpbmcgaW4gdGhlIHdyb25nIHBsYWNl LCBmb3IgbGVnYWN5IHBsYXRmb3Jtcycgc2FrZQ0KPiA+ID4gICAgICAvLw0KPiA+ID4gICAgIEZv byAoKTsNCj4gPiA+ICAgIH0NCj4gPiA+DQo+ID4gPiAgICAvLw0KPiA+ID4gICAgLy8gRG8gc29t ZSBzdHVmZi4NCj4gPiA+ICAgIC8vDQo+ID4gPiAgICBCYXIgKCk7DQo+ID4gPg0KPiA+ID4gICAg aWYgKCFCdWdDb21wYXRFbmFibGVkKSB7DQo+ID4gPiAgICAgIC8vDQo+ID4gPiAgICAgIC8vIGRv IHRoZSByaWdodCB0aGluZyBpbiB0aGUgcmlnaHQgcGxhY2UsIGZvciBjb25mb3JtYW50IHBsYXRm b3Jtcw0KPiA+ID4gICAgICAvLw0KPiA+ID4gICAgIEZvbyAoKTsNCj4gPiA+ICAgIH0NCj4gPiA+ DQo+ID4gPiBOb3Qgc3VyZSBpZiBpdCBhcHBsaWVzIGhlcmUuDQo+ID4gPg0KPiA+ID4gVGhhbmtz DQo+ID4gPiBMYXN6bG8NCj4gPiA+DQo+ID4gPg0KPiA+ID4+IE9uIDIwMjEuMDIuMTcgMTE6NDIs IExlaWYgTGluZGhvbG0gd3JvdGU6DQo+ID4gPj4+IEhpIFBldGUsICt2YXJpb3VzDQo+ID4gPj4+ DQo+ID4gPj4+IFJlc3VycmVjdGluZyB0aGlzIG9sZCB0aHJlYWQgc2luY2UgQXJkIHBvaW50ZWQg b3V0IGFuIGlzc3VlIEkgcmFuDQo+ID4gPj4+IGludG8gbXlzZWxmIGhhZCBhbHJlYWR5IGJlZW4g ZW5jb3VudGVyZWQgYnkgUGV0ZS4NCj4gPiA+Pj4gQW5kIHRoZSBidWd6aWxsYSB0aWNrZXQgKGRp cmVjdGx5IGJlbG93IHRoaXMgcmVwbHkpIGhhcyBoYWQgbm8NCj4gPiA+Pj4gcmVsZXZhbnQgcHJv Z3Jlc3Mgc2luY2UgQXVndXN0Lg0KPiA+ID4+Pg0KPiA+ID4+PiBFeGVjdXRpdmUgc3VtbWFyeToN Cj4gPiA+Pj4gVGhlIGN1cnJlbnQgVWVmaUJvb3RNYW5hZ2VyTGliIGltcGxlbWVudGF0aW9uIG9m IHRoZQ0KPiA+ID4+PiBQbGF0Zm9ybVJlY292ZXJ5IHBhdGggZG9lcyBub3Qgbm90aWZ5IHRoZQ0K PiA+IEVGSV9FVkVOVF9HUk9VUF9SRUFEWV9UT19CT09UIGV2ZW50Lg0KPiA+ID4+Pg0KPiA+ID4+ PiBUaGUgYXJndW1lbnQgaGFzIGJlZW4gbWFkZSB0aGF0IHNpbmNlIGNoYW5naW5nIHRoaXMgd291 bGQgYWZmZWN0DQo+ID4gPj4+IGFuIHVubmFtZWQgbnVtYmVyIG9mIG5vbi1wdWJsaWMgcGxhdGZv cm1zLCB0aGUgYmVoYXZpb3VyIGNhbm5vdCBiZQ0KPiA+ID4+PiBjaGFuZ2VkIGV2ZW4gdGhvdWdo IGl0IHZpb2xhdGVzIHRoZSBVRUZJIHNwZWNpZmljYXRpb24uDQo+ID4gPj4+DQo+ID4gPj4+IEkg ZGlzYWdyZWUgd2l0aCB0aGF0IHN0YXRlbWVudC4gSWYgd2Ugd2FudCB0byBmb3JrDQo+ID4gPj4+ IFVlZmlCb290TWFuYWdlckxpYiBpbnRvIGEgQnJva2VuTGVnYWN5VWVmaUJvb3RNYW5hZ2VyTGli IGFuZCBhbg0KPiA+ID4+PiBhY3R1YWxseSBjb3JyZWN0IG9uZSwgYW5kIGhhdmUgdGhvc2UgcGxh dGZvcm1zIG1vdmUgdG8gdGhlDQo+ID4gPj4+IEJyb2tlbkxlZ2FjeSB2YXJpYW50LCBJJ20gT0sg d2l0aCB0aGF0Lg0KPiA+ID4+Pg0KPiA+ID4+PiBCdXQgdXNpbmcgdGhlIGRlZmF1bHQgdmVyc2lv biBzaG91bGQgZ2l2ZSBzcGVjaWZpY2F0aW9uLWNvbXBsaWFudA0KPiA+ID4+PiBiZWhhdmlvdXIu DQo+ID4gPj4+DQo+ID4gPj4+IC8NCj4gPiA+Pj4gICAgICAgTGVpZg0KPiA+ID4+Pg0KPiA+ID4+ PiBPbiBUdWUsIEp1biAzMCwgMjAyMCBhdCAxODoxNzoxMCArMDEwMCwgUGV0ZSBCYXRhcmQgd3Jv dGU6DQo+ID4gPj4+PiBQbGVhc2Ugbm90ZSB0aGF0IEkgaGF2ZSBjcmVhdGVkIGEgYnVnIHJlcG9y dA0KPiA+ID4+Pj4gKGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MjgzMSkgdG8gYWRkcmVzcw0KPiA+ID4+Pj4gdGhlIG5vbi1jb21wbGlhbmNlIGlzc3VlIHdh cyByYWlzZWQgZHVyaW5nIHRoZSBjb3Vyc2Ugb2YgdGhlDQo+ID4gPj4+PiBkaXNjdXNzaW9uIGJl bG93Lg0KPiA+ID4+Pj4NCj4gPiA+Pj4+IFJlZ2FyZHMsDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gL1Bl dGUNCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4gT24gMjAyMC4wNi4xNyAxODowNiwgU2Ft ZXIgRWwtSGFqLU1haG1vdWQgd3JvdGU6DQo+ID4gPj4+Pj4gSSB3b3JrZWQgd2l0aCBQZXRlIG9m ZmxpbmUgb24gdGhpcy4uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGlzIGNvZGUgc2VlbXMgdG8g YmUgdmlvbGF0aW5nIHRoZSBVRUZJIFNwZWM6DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+Pg0KPiA+IGh0 dHBzOi8vZ2l0aHViLmNvbS90aWFub2NvcmUvZWRrMi9ibG9iL2E1NmFmMjNmMDY2ZTI4MTZjNjdi N2M2ZTY0ZA0KPiA+ID4+Pj4+IGUNCj4gPiA+Pj4+Pg0KPiA+DQo+IDdkZGVmY2Q3MDc4MC9NZGVN b2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Cb290LmMjTDE3Ng0KPiA+ID4+ Pj4+IDMNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gICAgICAvLw0KPiA+ID4+Pj4+ ICAgICAgLy8gMy4gU2lnbmFsIHRoZSBFVlRfU0lHTkFMX1JFQURZX1RPX0JPT1QgZXZlbnQgd2hl biB3ZQ0KPiBhcmUNCj4gPiA+Pj4+PiBhYm91dCB0byBsb2FkIGFuZCBleGVjdXRlDQo+ID4gPj4+ Pj4gICAgICAvLyAgICB0aGUgYm9vdCBvcHRpb24uDQo+ID4gPj4+Pj4gICAgICAvLw0KPiA+ID4+ Pj4+ICAgICAgaWYgKEJtSXNCb290TWFuYWdlck1lbnVGaWxlUGF0aCAoQm9vdE9wdGlvbi0+Rmls ZVBhdGgpKSB7DQo+ID4gPj4+Pj4gICAgICAgIERFQlVHICgoRUZJX0RfSU5GTywgIltCZHNdIEJv b3RpbmcgQm9vdCBNYW5hZ2VyIE1lbnUuXG4iKSk7DQo+ID4gPj4+Pj4gICAgICAgIEJtU3RvcEhv dGtleVNlcnZpY2UgKE5VTEwsIE5VTEwpOw0KPiA+ID4+Pj4+ICAgICAgfSBlbHNlIHsNCj4gPiA+ Pj4+PiAgICAgICAgRWZpU2lnbmFsRXZlbnRSZWFkeVRvQm9vdCgpOw0KPiA+ID4+Pj4+ICAgICAg ICAvLw0KPiA+ID4+Pj4+ICAgICAgICAvLyBSZXBvcnQgU3RhdHVzIENvZGUgdG8gaW5kaWNhdGUg UmVhZHlUb0Jvb3Qgd2FzIHNpZ25hbGxlZA0KPiA+ID4+Pj4+ICAgICAgICAvLw0KPiA+ID4+Pj4+ ICAgICAgICBSRVBPUlRfU1RBVFVTX0NPREUgKEVGSV9QUk9HUkVTU19DT0RFLA0KPiA+ID4+Pj4+ IChFRklfU09GVFdBUkVfRFhFX0JTX0RSSVZFUiB8DQo+ID4gPj4+Pj4gRUZJX1NXX0RYRV9CU19Q Q19SRUFEWV9UT19CT09UX0VWRU5UKSk7DQo+ID4gPj4+Pj4gICAgICAgIC8vDQo+ID4gPj4+Pj4g ICAgICAgIC8vIDQuIFJlcGFpciBzeXN0ZW0gdGhyb3VnaCBEcml2ZXJIZWFsdGggcHJvdG9jb2wN Cj4gPiA+Pj4+PiAgICAgICAgLy8NCj4gPiA+Pj4+PiAgICAgICAgQm1SZXBhaXJBbGxDb250cm9s bGVycyAoMCk7DQo+ID4gPj4+Pj4gICAgICB9DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGUgVUVG SSBTcGVjIHNlY3Rpb24gMy4xLjcgY2xlYXJseSBzdGF0ZXMgdGhhdCBCb290IE9wdGlvbnMNCj4g PiA+Pj4+PiAoYW5kIHRoZWlyIEZpbGVQYXRoTGlzdCkgKnNoYWxsIG5vdCogYmUgZXZhbHVhdGVk IHByaW9yIHRvIHRoZQ0KPiA+ID4+Pj4+IGNvbXBsZXRpb24gb2YgRUZJX0VWRU5UX0dST1VQX1JF QURZX1RPX0JPT1QgZXZlbnQgZ3JvdXANCj4gPiBwcm9jZXNzaW5nOg0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4gIkFmdGVyIGFsbCBTeXNQcmVwIyMjIyB2YXJpYWJsZXMgaGF2ZSBiZWVuIGxhdW5jaGVk IGFuZCBleGl0ZWQsDQo+ID4gPj4+Pj4gdGhlIHBsYXRmb3JtIHNoYWxsIG5vdGlmeSBFRklfRVZF TlRfR1JPVVBfUkVBRFlfVE9fQk9PVA0KPiBldmVudA0KPiA+ID4+Pj4+IGdyb3VwIGFuZCBiZWdp biB0byBldmFsdWF0ZSBCb290IyMjIyB2YXJpYWJsZXMgd2l0aCBBdHRyaWJ1dGVzDQo+ID4gPj4+ Pj4gc2V0IHRvIExPQURfT1BUSU9OX0NBVEVHT1JZX0JPT1QgYWNjb3JkaW5nIHRvIHRoZSBvcmRl cg0KPiBkZWZpbmVkDQo+ID4gYnkNCj4gPiA+Pj4+PiBCb290T3JkZXIuIFRoZSBGaWxlUGF0aExp c3Qgb2YgdmFyaWFibGVzIG1hcmtlZA0KPiA+ID4+Pj4+IExPQURfT1BUSU9OX0NBVEVHT1JZX0JP T1Qgc2hhbGwgbm90IGJlIGV2YWx1YXRlZCBwcmlvciB0bw0KPiB0aGUNCj4gPiA+Pj4+PiBjb21w bGV0aW9uIG9mIEVGSV9FVkVOVF9HUk9VUF9SRUFEWV9UT19CT09UIGV2ZW50IGdyb3VwDQo+ID4g cHJvY2Vzc2luZy4iDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGlzIGlzIGEgcHJlc2NyaXB0aXZl IGxhbmd1YWdlIHRoYXQgaXMgc3Ryb25nZXIgdGhhbiB0aGUNCj4gPiA+Pj4+PiBsYW5ndWFnZSBp biBzZWN0aW9uIDcuMSB3aGljaCBkZWZpbmVzIHRoZSBSZWFkeVRvQm9vdCBldmVudA0KPiA+ID4+ Pj4+IGdyb3VwIGluIGEgZ2VuZXJhbCB3YXk6DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAiRUZJX0VW RU5UX0dST1VQX1JFU0VUX1NZU1RFTQ0KPiA+ID4+Pj4+IFRoaXMgZXZlbnQgZ3JvdXAgaXMgbm90 aWZpZWQgYnkgdGhlIHN5c3RlbSB3aGVuIFJlc2V0U3lzdGVtKCkgaXMNCj4gPiA+Pj4+PiBpbnZv a2VkIGFuZCB0aGUgc3lzdGVtIGlzIGFib3V0IHRvIGJlIHJlc2V0LiBUaGUgZXZlbnQgZ3JvdXAg aXMNCj4gPiA+Pj4+PiBvbmx5IG5vdGlmaWVkIHByaW9yIHRvIEV4aXRCb290U2VydmljZXMoKSBp bnZvY2F0aW9uLiINCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFRoZSBFREsyIGNvZGUgaW4gdGhlIGVs c2UgYmxvY2sgYWJvdmUgKHRvIGNhbGwNCj4gPiA+Pj4+PiBFZmlTaWduYWxFdmVudFJlYWR5VG9C b290KCkgKSBuZWVkIHRvIG1vdmUgYmVmb3JlIHRoZSBjb2RlIHRoYXQNCj4gPiA+Pj4+PiBpcyBw cm9jZXNzaW5nIEJvb3RPcHRpb24tPkZpbGVQYXRoLiBJbiBmYWN0LCB3aHkgaXMgdGhpcw0KPiA+ ID4+Pj4+IHNpZ25hbGluZyBldmVuIGEgQm9vdE1hbmFnZXIgdGFzaz8gSXQgc2hvdWxkIGJlIGEg aGlnaGVyIGxldmVsDQo+ID4gPj4+Pj4gQkRTIHRhc2sgKGFmdGVyIHByb2Nlc3NpbmcgU3lzUHJw IGFuZCBiZWZvcmUgcHJvY2Vzc2luZyBCb290DQo+ID4gPj4+Pj4gb3B0aW9ucywgcGVyIHRoZQ0K PiA+IHNwZWMpLg0KPiA+ID4+Pj4+IFRoaXMgd291bGQgYmUgc29tZXdoZXJlIGFyb3VuZA0KPiA+ ID4+Pj4+DQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyL2Jsb2IvYjE1NjQ2 NDg0ZWFmZmNmN2NjNDY0ZmRlYTAyDQo+ID4gPj4+Pj4gMQ0KPiA+ID4+Pj4+IDQ0OThmMjZhZGRj Mi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Jkc0R4ZS9CZHNFbnRyeS5jI0wxMDA3DQo+ID4gPj4+ Pj4gd2hlcmUgU3lzUHJlcCBpcyBwcm9jZXNzZWQuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGlz IHNob3VsZCBhbHNvIHRha2UgY2FyZSBvZiB0aGUgaXNzdWUgUGV0ZSByZXBvcnRlZCBpbiB0aGlz DQo+ID4gPj4+Pj4gdGhyZWFkLCB3aXRob3V0IHRoZSBuZWVkIGZvciBleHBsaWNpdGx5IHNpZ25h bGluZyBSZWFkeVRvQm9vdA0KPiA+ID4+Pj4+IGZyb20gUGxhdGZvcm1SZWNvdmVyeSAob3IgY2hh bmdpbmcgdGhlIFVFRkkgc3BlYykuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGFua3MsDQo+ID4g Pj4+Pj4gLS1TYW1lcg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVo YWxmIE9mDQo+ID4gPj4+Pj4gU2FtZXIgRWwtSGFqLU1haG1vdWQgdmlhIGdyb3Vwcy5pbw0KPiA+ ID4+Pj4+IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAxNywgMjAyMCAxMjo0MiBQTQ0KPiA+ID4+Pj4+ IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgQW5kcmVpIFdhcmtlbnRpbg0KPiA+IChhd2Fya2Vu dGluQHZtd2FyZS5jb20pDQo+ID4gPj4+Pj4gPGF3YXJrZW50aW5Adm13YXJlLmNvbT47IFdhbmcs IFN1bm55IChIUFMgU1cpDQo+ID4gPHN1bm55d2FuZ0BocGUuY29tPjsNCj4gPiA+Pj4+PiBwZXRl QGFrZW8uaWUNCj4gPiA+Pj4+PiBDYzogemhpY2hhby5nYW9AaW50ZWwuY29tOyByYXkubmlAaW50 ZWwuY29tOyBBcmQgQmllc2hldXZlbA0KPiA+ID4+Pj4+IDxBcmQuQmllc2hldXZlbEBhcm0uY29t PjsgbGVpZkBudXZpYWluYy5jb207IFNhbWVyIEVsLUhhai0NCj4gPiBNYWhtb3VkDQo+ID4gPj4+ Pj4gPFNhbWVyLkVsLUhhai1NYWhtb3VkQGFybS5jb20+DQo+ID4gPj4+Pj4gU3ViamVjdDogUmU6 IFtlZGsyLWRldmVsXSBbZWRrMl1bUEFUQ0ggMS8xXQ0KPiA+ID4+Pj4+IE1kZU1vZHVsZVBrZy9V ZWZpQm9vdE1hbmFnZXJMaWI6IFNpZ25hbCBSZWFkeVRvQm9vdCBvbg0KPiA+IHBsYXRmb3JtDQo+ ID4gPj4+Pj4gcmVjb3ZlcnkNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFRoZSBVRUZJIHNwZWMgKDMu MS43KSBzYXlzOg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gIkFmdGVyIGFsbCBTeXNQcmVwIyMjIyB2 YXJpYWJsZXMgaGF2ZSBiZWVuIGxhdW5jaGVkIGFuZCBleGl0ZWQsDQo+ID4gPj4+Pj4gdGhlIHBs YXRmb3JtIHNoYWxsIG5vdGlmeSBFRklfRVZFTlRfR1JPVVBfUkVBRFlfVE9fQk9PVA0KPiBldmVu dA0KPiA+ID4+Pj4+IGdyb3VwIGFuZCBiZWdpbiB0byBldmFsdWF0ZSBCb290IyMjIyB2YXJpYWJs ZXMgd2l0aCBBdHRyaWJ1dGVzDQo+ID4gPj4+Pj4gc2V0IHRvIExPQURfT1BUSU9OX0NBVEVHT1JZ X0JPT1QgYWNjb3JkaW5nIHRvIHRoZSBvcmRlcg0KPiBkZWZpbmVkDQo+ID4gYnkNCj4gPiA+Pj4+ PiBCb290T3JkZXIuIFRoZSBGaWxlUGF0aExpc3Qgb2YgdmFyaWFibGVzIG1hcmtlZA0KPiA+ID4+ Pj4+IExPQURfT1BUSU9OX0NBVEVHT1JZX0JPT1Qgc2hhbGwgbm90IGJlIGV2YWx1YXRlZCBwcmlv ciB0bw0KPiB0aGUNCj4gPiA+Pj4+PiBjb21wbGV0aW9uIG9mIEVGSV9FVkVOVF9HUk9VUF9SRUFE WV9UT19CT09UIGV2ZW50IGdyb3VwDQo+ID4gcHJvY2Vzc2luZy4iDQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBUaGUgd2F5IEkgcmVhZCB0aGlzLCBJIGV4cGVjdCBSZWFkeVRvQm9vdCB0byBiZSBzaWdu YWxlZCBhZnRlcg0KPiA+ID4+Pj4+IFN5c1ByZXAjIyMjIChpZiBhbnkpIGFyZSBwcm9jZXNzZWQs IGJ1dCBiZWZvcmUgQm9vdCMjIyMgYXJlDQo+ID4gPj4+Pj4gcHJvY2Vzc2VkLiBJcyBteSB1bmRl cnN0YW5kaW5nIGNvcnJlY3QgdGhhdCB0aGlzIGxhbmd1YWdlDQo+ID4gPj4+Pj4gaW1wbGllcyBS ZWFkeVRvQm9vdCBuZWVkIHRvIGJlIHNpZ25hbGVkIGV2ZW4gaWYgQm9vdE9yZGVyIGRvZXMNCj4g PiA+Pj4+PiBub3QgY29udGFpbiBhbnkgQm9vdCMjIyMgb3B0aW9ucyBtYXJrZWQgYXMNCj4gTE9B RF9PUFRJT05fQ0FURUdPUllfQk9PVD8NCj4gPiBBbmQgaWYNCj4gPiA+Pj4+PiBzbywgaXMgRURL MiBub3QgZG9pbmcgdGhpcywgd2hpY2ggbGVhZHMgdXMgdG8gdGhpcyBwYXRjaA0KPiA+ID4+Pj4+ IChzaWduYWxpbmcgaXQgaW4gUGxhdGZvcm1SZWNvdmVyeT8pDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gRnJvbTogbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlv DQo+IDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW8+DQo+ID4gT24NCj4gPiA+Pj4+PiBCZWhh bGYgT2YgQW5kcmVpIFdhcmtlbnRpbiB2aWEgZ3JvdXBzLmlvDQo+ID4gPj4+Pj4gU2VudDogV2Vk bmVzZGF5LCBKdW5lIDE3LCAyMDIwIDEyOjM3IFBNDQo+ID4gPj4+Pj4gVG86IFdhbmcsIFN1bm55 IChIUFMgU1cpIDxtYWlsdG86c3Vubnl3YW5nQGhwZS5jb20+Ow0KPiA+ID4+Pj4+IG1haWx0bzpk ZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbWFpbHRvOnBldGVAYWtlby5pZQ0KPiA+ID4+Pj4+IENjOiBt YWlsdG86emhpY2hhby5nYW9AaW50ZWwuY29tOyBtYWlsdG86cmF5Lm5pQGludGVsLmNvbTsgQXJk DQo+ID4gPj4+Pj4gQmllc2hldXZlbCA8bWFpbHRvOkFyZC5CaWVzaGV1dmVsQGFybS5jb20+Ow0K PiA+ID4+Pj4+IG1haWx0bzpsZWlmQG51dmlhaW5jLmNvbQ0KPiA+ID4+Pj4+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW2VkazJdW1BBVENIIDEvMV0NCj4gPiA+Pj4+PiBNZGVNb2R1bGVQa2cv VWVmaUJvb3RNYW5hZ2VyTGliOiBTaWduYWwgUmVhZHlUb0Jvb3Qgb24NCj4gPiBwbGF0Zm9ybQ0K PiA+ID4+Pj4+IHJlY292ZXJ5DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBUaGFua3MgUGV0ZS4NCj4g PiA+Pj4+Pg0KPiA+ID4+Pj4+IEkgdGhpbmsgdGhlIHF1ZXN0aW9uIEkgaGF2ZSwgdGhhdCBJIGhv cGUgVGlhbm8gdmV0ZXJhbnMgY2FuDQo+ID4gPj4+Pj4gY2hpbWUgaW4sIGlzIHdoZXRoZXIgd2Ug YXJlIGRvaW5nIHRoZSByaWdodCB0aGluZywgb3IgaWYgd2UNCj4gPiA+Pj4+PiBzaG91bGQgYmUg b3ZlcnJpZGluZyB0aGUgYm9vdCBtb2RlPyBJLmUuIGlzIGl0IG5vcm1hbCB0aGF0IHdlDQo+ID4g Pj4+Pj4gYm9vdCB1cCBpbiByZWNvdmVyeSB1bnRpbCBvcHRpb25zIGFyZSBzYXZlZD8NCj4gPiA+ Pj4+Pg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gQQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPj4+Pj4g RnJvbTogbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IDxtYWlsdG86ZGV2ZWxAZWRrMi5n cm91cHMuaW8+DQo+ID4gb24NCj4gPiA+Pj4+PiBiZWhhbGYgb2YgUGV0ZSBCYXRhcmQgdmlhIGdy b3Vwcy5pbw0KPiA+ID4+Pj4+IDxtYWlsdG86cGV0ZT1ha2VvLmllQGdyb3Vwcy5pbz4NCj4gPiA+ Pj4+PiBTZW50OiBXZWRuZXNkYXksIEp1bmUgMTcsIDIwMjAgMTE6MzQgQU0NCj4gPiA+Pj4+PiBU bzogV2FuZywgU3VubnkgKEhQUyBTVykgPG1haWx0bzpzdW5ueXdhbmdAaHBlLmNvbT47DQo+ID4g Pj4+Pj4gbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvIDxtYWlsdG86ZGV2ZWxAZWRrMi5ncm91 cHMuaW8+DQo+ID4gPj4+Pj4gQ2M6IG1haWx0bzp6aGljaGFvLmdhb0BpbnRlbC5jb20gPG1haWx0 bzp6aGljaGFvLmdhb0BpbnRlbC5jb20+Ow0KPiA+ID4+Pj4+IG1haWx0bzpyYXkubmlAaW50ZWwu Y29tIDxtYWlsdG86cmF5Lm5pQGludGVsLmNvbT47DQo+ID4gPj4+Pj4gbWFpbHRvOmFyZC5iaWVz aGV1dmVsQGFybS5jb20NCj4gPG1haWx0bzphcmQuYmllc2hldXZlbEBhcm0uY29tPjsNCj4gPiA+ Pj4+PiBtYWlsdG86bGVpZkBudXZpYWluYy5jb20gPG1haWx0bzpsZWlmQG51dmlhaW5jLmNvbT4N Cj4gPiA+Pj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyXVtQQVRDSCAxLzFdDQo+ ID4gPj4+Pj4gTWRlTW9kdWxlUGtnL1VlZmlCb290TWFuYWdlckxpYjogU2lnbmFsIFJlYWR5VG9C b290IG9uDQo+ID4gcGxhdGZvcm0NCj4gPiA+Pj4+PiByZWNvdmVyeQ0KPiA+ID4+Pj4+DQo+ID4g Pj4+Pj4gT24gMjAyMC4wNi4xNyAxNDowNCwgV2FuZywgU3VubnkgKEhQUyBTVykgd3JvdGU6DQo+ ID4gPj4+Pj4+IFRoYW5rcyBmb3IgY2hlY2tpbmcgbXkgY29tbWVudHMsIFBldGUuDQo+ID4gPj4+ Pj4+DQo+ID4gPj4+Pj4+PiBPciBpcyB0aGUgIm9uZSBtb3JlIiB0aGUgaXNzdWUsIG1lYW5pbmcg dGhhdCBpdCB3b3VsZCBnZXQNCj4gPiA+Pj4+Pj4+IHNpZ25hbGVkIG1vcmUgdGhhbiBvbmNlPw0K PiA+ID4+Pj4+PiBbU3VubnldIFllYWgsIGl0IHdvdWxkIGdldCBzaWduYWxlZCBtb3JlIHRoYW4g b25jZSBpZiB0aGUNCj4gPiA+Pj4+Pj4gUGxhdGZvcm1SZWNvdmVyeSBvcHRpb24gKGEgVUVGSSBh cHBsaWNhdGlvbikgY2FsbHMNCj4gPiA+Pj4+Pj4gRWZpQm9vdE1hbmFnZXJCb290KCkgdG8gbGF1 bmNoIHRoZSByZWNvdmVyZWQgYm9vdCBvcHRpb24gaW5zaWRlDQo+ID4gPj4+Pj4+IG9mIHRoZSBh cHBsaWNhdGlvbi4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IE9rYXkuDQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBPbmUgZWxlbWVudCB0aGF0IEknbSBnb2luZyB0byBwb2ludCBvdXQgaXMgdGhhdCwgd2l0 aCB0aGUNCj4gPiA+Pj4+PiBjdXJyZW50DQo+ID4gPj4+Pj4gRURLMiBjb2RlIChpLmUuIHdpdGhv dXQgdGhpcyBwcm9wb3NhbCBhcHBsaWVkKSwgYW5kIGFmdGVyIGEgdXNlcg0KPiA+ID4+Pj4+IGdv ZXMgaW50byB0aGUgc2V0dXAgdG8gc2F2ZSB0aGVpciBib290IG9wdGlvbnMgaW4gb3JkZXIgZm9y DQo+ID4gPj4+Pj4gcmVndWxhciBib290IG9wdGlvbnMgdG8gZ2V0IGV4ZWN1dGVkIGluc3RlYWQg b2YgUGxhZm9ybVJlY292ZXJ5LA0KPiA+ID4+Pj4+IHRoZSBPblJlYWR5VG9Cb290IGV2ZW50IGlz IGFjdHVhbGx5IGNhbGxlZCB0d2ljZS4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFNvIG15IHVuZGVy c3RhbmRpbmcgaXMgdGhhdCwgd2hpbGUgd2Ugb2YgY291cnNlIHdhbnQgdG8gYXZvaWQNCj4gPiA+ Pj4+PiB0aGlzIGFuZCBhbnkgcGF0Y2ggcHJvcG9zYWwgc2hvdWxkIGFjdGl2ZWx5IHRyeSB0byBw cmV2ZW50IGl0LA0KPiA+ID4+Pj4+IGl0IHNlZW1zIHdlIGFscmVhZHkgaGF2ZSBiZWhhdmlvdXIg aW4gRURLMiB0aGF0IGNhbiBsZWFkIHRvDQo+ID4gPj4+Pj4gT25SZWFkeVRvQm9vdCBiZWluZyBz aWduYWxsZWQgbW9yZSB0aGFuIG9uY2UuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBBdCBsZWFzdCB0 aGUgY3VycmVudCBQaSA0IHBsYXRmb3JtIGRvZXMgZGVtb25zdHJhdGUgdGhpcyBiZWhhdmlvdXIu DQo+ID4gPj4+Pj4gRm9yIGluc3RhbmNlLCBpZiB5b3UgcnVuIERFQlVHLCB5b3Ugd2lsbCBzZWUg dHdvIGluc3RhbmNlcyBvZjoNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ICAgICAgIFJlbW92ZUR0U3Rk b3V0UGF0aDogY291bGQgbm90IHJldHJpZXZlIERUIGJsb2IgLSBOb3QgRm91bmQNCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+IHdoaWNoIGlzIGEgb25lLWluc3RhbmNlIG1lc3NhZ2UgZ2VuZXJhdGVkIGZy b20gdGhlDQo+ID4gPj4+Pj4gQ29uc29sZVByZWZEeGUncw0KPiA+ID4+Pj4+IE9uUmVhZHlUb0Jv b3QoKSBjYWxsLiBJJ3ZlIGFsc28gY29uZmlybWVkIG1vcmUgc3BlY2lmaWNhbGx5IHRoYXQNCj4g PiA+Pj4+PiBPblJlYWR5VG9Cb290KCkgaXMgaW5kZWVkIGNhbGxlZCB0d2ljZS4NCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+IEkgZG9uJ3QgcmVjYWxsIHVzIGRvaW5nIG11Y2ggb2YgYW55IHNwZWNpYWwg d2l0aCByZWdhcmRzIHRvIGJvb3QNCj4gPiA+Pj4+PiBvcHRpb25zIGZvciB0aGUgUGkgcGxhdGZv cm0sIHNvIG15IGd1ZXNzIGlzIHRoYXQgaXQncyBwcm9iYWJseQ0KPiA+ID4+Pj4+IG5vdCB0aGUg b25seSBwbGF0Zm9ybSB3aGVyZSBPblJlYWR5VG9Cb290IG1pZ2h0IGJlIHNpZ25hbGxlZA0KPiA+ ID4+Pj4+IG1vcmUNCj4gPiB0aGFuDQo+ID4gPj4+Pj4gb25jZSwgYW5kIHRoYXQgdGhpcyBtaWdo dCBiZSB0aWVkIHRvIGEgZGVmYXVsdCBFREsyIGJlaGF2aW91ci4NCj4gPiA+Pj4+PiBUaGVyZWZv cmUgSSBkb24ndCBzZWUgaGF2aW5nIGEgcmVwZWF0ZWQgZXZlbnQgYXMgYSBtYWpvciBkZWFsDQo+ ID4gPj4+Pj4gYnJlYWtlciAodGhvdWdoLCBhZ2FpbiwgaWYgd2UgY2FuIGF2b2lkIHRoYXQsIHdl IG9mIGNvdXJzZSB3aWxsDQo+ID4gPj4+Pj4gd2FudCB0bykuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ Pj4+IEkgZG9uJ3QgbWluZCB0cnlpbmcgYW4gYWx0ZXJuYXRpdmUgYXBwcm9hY2gsIGJ1dCBJIGRv bid0DQo+ID4gPj4+Pj4+PiB1bmRlcnN0YW5kIGhvdyB3aGF0IHlvdSBkZXNjcmliZSB3b3VsZCBo ZWxwLiBDYW4geW91IHBsZWFzZQ0KPiBiZQ0KPiA+ID4+Pj4+Pj4gbW9yZSBzcGVjaWZpYyBhYm91 dCB3aGF0IHlvdSBoYXZlIGluIG1pbmQ/DQo+ID4gPj4+Pj4+IFtTdW5ueV0gU3VyZS4gSSBhZGRl ZCBtb3JlIGluZm9ybWF0aW9uIGJlbG93LiBJZiBpdCBpcyBzdGlsbA0KPiA+ID4+Pj4+PiBub3Qg Y2xlYXIgZW5vdWdoLCBmZWVsIGZyZWUgdG8gbGV0IG1lIGtub3cuDQo+ID4gPj4+Pj4+ICAgICAg ICAgIDEuIENyZWF0ZSBhIFVFRkkgYXBwbGljYXRpb24gd2l0aCB0aGUgY29kZSB0byBzaWduYWwN Cj4gPiA+Pj4+Pj4gUmVhZHlUb0Jvb3QgYW5kIHBpY2sgL2VmaS9ib290L2Jvb3RhYTY0LmVmaSBm cm9tIGVpdGhlciBTRCBvcg0KPiA+ID4+Pj4+PiBVU0IgYW5kIHJ1biBpdC4NCj4gPiA+Pj4+Pg0K PiA+ID4+Pj4+IFNvIHRoYXQgd291bGQgYmFzaWNhbGx5IGJlIGFkZGluZyBjb2RlIHRoYXQgZHVw bGljYXRlcywgaW4gcGFydCwNCj4gPiA+Pj4+PiB3aGF0IFBsYXRmb3JtIFJlY292ZXJ5IGFscmVh ZHkgZG9lcy4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IEkgaGF2ZSB0byBiZSBob25lc3Q6IEV2ZW4g b3V0c2lkZSBvZiB0aGUgZXh0cmEgd29yayB0aGlzIHdvdWxkDQo+ID4gPj4+Pj4gcmVxdWlyZSwg SSBkb24ndCByZWFsbHkgbGlrZSB0aGUgaWRlYSBvZiBoYXZpbmcgdG8gd3JpdGUgb3VyIG93bg0K PiA+ID4+Pj4+IGFwcGxpY2F0aW9uLCBhcyBpdCB3aWxsIGludHJvZHVjZSBuZXcgcG9zc2libGUg cG9pbnRzIG9mDQo+ID4gPj4+Pj4gZmFpbHVyZXMgYW5kIHJlcXVpcmUgZXh0cmEgbWFpbnRlbmFu Y2UgKGVzcGVjaWFsbHkgYXMgd2Ugd2lsbA0KPiA+ID4+Pj4+IHdhbnQgdG8gYmUgYWJsZSB0byBo YW5kbGUgbmV0d29yayBib290IGFuZCBvdGhlciBvcHRpb25zLCBhbmQNCj4gPiA+Pj4+PiBiZWZv cmUgbG9uZywgSSBmZWFyIHRoYXQgd2UncmUgZ29pbmcgdG8gaGF2ZSB0byB3cml0ZSBvdXIgb3du IFBpDQo+ID4gPj4+Pj4gc3BlY2lmaWMgYm9vdCBtYW5hZ2VyKS4gRG9pbmcgc28gc2ltcGx5IGJl Y2F1c2UgdGhlIGN1cnJlbnQNCj4gPiA+Pj4+PiBQbGF0Zm9ybSBSZWNvdmVyeSwgd2hpY2ggZG9l cyBzdWl0IG91ciBuZWVkcyBvdGhlcndpc2UsIGlzIG5vdA0KPiA+ID4+Pj4+IGRlc2lnbmVkIHRv IGNhbGwgUmVhZHlUb0Jvb3QgZG9lcyBub3Qgc2VlbSBsaWtlIHRoZSBiZXN0IGNvdXJzZQ0KPiA+ ID4+Pj4+IG9mIGFjdGlvbiBpbiBteSBib29rLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gSW5zdGVh ZCwgSSBzdGlsbCBsb2dpY2FsbHkgYmVsaWV2ZSB0aGF0IGFueSBvcHRpb24gdGhhdCBjYWxscyBh DQo+ID4gPj4+Pj4gYm9vdCBsb2FkZXIgc2hvdWxkIHNpZ25hbCBSZWFkeVRvQm9vdCwgcmVnYXJk bGVzcyBvZiB3aGV0aGVyIGl0DQo+ID4gPj4+Pj4gd2FzIGxhdW5jaGVkIGZyb20gQm9vdCBNYW5h Z2VyIG9yIFBsYXRmb3JtIFJlY292ZXJ5LCBhbmQgdGhhdCBpdA0KPiA+ID4+Pj4+IHNob3VsZG4n dCBiZSBsZWZ0IHRvIGVhY2ggcGxhdGZvcm0gdG8gd29yayBhcm91bmQgdGhhdC4NCj4gPiA+Pj4+ Pg0KPiA+ID4+Pj4+IE9mIGNvdXJzZSwgSSB1bmRlcnN0YW5kIHRoYXQgdGhpcyB3b3VsZCByZXF1 aXJlIGEgc3BlY3MgY2hhbmdlLA0KPiA+ID4+Pj4+IGFuZCB0aGF0IGl0IGFsc28gbWF5IGhhdmUg cmFtaWZpY2F0aW9ucyBmb3IgZXhpc3RpbmcgcGxhdGZvcm1zDQo+ID4gPj4+Pj4gdGhhdCBpbnRl cnByZXQgdGhlIGN1cnJlbnQgc3BlY3MgcGVkYW50aWNhbGx5LiBCdXQgdG8gbWUsDQo+ID4gPj4+ Pj4gcmVnYXJkbGVzcyBvZiB3aGF0IHRoZSBzcGVjcyBhcHBlYXIgdG8gYmUgbGltaXRpbmcgaXQg dG8gcmlnaHQNCj4gPiA+Pj4+PiBub3csIHRoZSBsb2dpYyBvZiBhICJSZWFkeVRvQm9vdCINCj4g PiA+Pj4+PiBldmVudCBpcyB0aGF0IGl0IHNob3VsZCBiZSBzaWduYWxsZWQgd2hlbmV2ZXIgYSBi b290bG9hZGVyIGlzDQo+ID4gPj4+Pj4gYWJvdXQgdG8gYmUgZXhlY3V0ZWQsIHJhdGhlciB0aGFu IG9ubHkgd2hlbiBhIGJvb3Rsb2FkZXINCj4gPiA+Pj4+PiBoYXBwZW5lZCB0byBiZSBsYXVuY2hl ZCB0aHJvdWdoIGEgZm9ybWFsIEJvb3QgTWFuYWdlciBvcHRpb24uDQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBJIHdvdWxkIHRoZXJlZm9yZSBhcHByZWNpYXRlIGlmIG90aGVyIHBlb3BsZSBjb3VsZCB3 ZWlnaCBpbiBvbg0KPiA+ID4+Pj4+IHRoaXMgbWF0dGVyLCB0byBzZWUgaWYgSSdtIHRoZSBvbmx5 IG9uZSB3aG8gYmVsaWV2ZXMgdGhhdCB3ZQ0KPiA+ID4+Pj4+IGNvdWxkIHVsdGltYXRlbHkgaGF2 ZSBtb3JlIHRvIGdhaW4gZnJvbSBzaWduYWxsaW5nIFJlYWR5VG9Cb290DQo+ID4gPj4+Pj4gd2l0 aCBQbGF0Zm9ybVJlY292ZXJ5IG9wdGlvbnMgdGhhbiBsZWF2aW5nIHRoaW5ncyBhcyB0aGV5IHN0 YW5kDQo+ID4gPj4+Pj4gcmlnaHQgbm93Li4uDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+Pj4gICAgICAg ICAgMi4gVGhlbiwgY2FsbCBFZmlCb290TWFuYWdlckluaXRpYWxpemVMb2FkT3B0aW9uIGxpa2UN Cj4gPiA+Pj4+Pj4gdGhlIGZvbGxvd2luZyBpbiBhIERYRSBkcml2ZXIgb3Igb3RoZXIgcGxhY2Vz IGJlZm9yZSAiRGVmYXVsdA0KPiA+ID4+Pj4+PiBQbGF0Zm9ybVJlY292ZXJ5IiByZWdpc3RyYXRp b246DQo+ID4gPj4+Pj4+ICAgICAgIFN0YXR1cyA9IEVmaUJvb3RNYW5hZ2VySW5pdGlhbGl6ZUxv YWRPcHRpb24gKA0KPiA+ID4+Pj4+PiAgICAgICAgICAgICAgICAgICZMb2FkT3B0aW9uLA0KPiA+ ID4+Pj4+Pg0KPiA+ID4+Pj4+PiAwLA0KPiA+ID4+Pj4+PiAtPiAwIGlzIHRoZSBPcHRpb25OdW1i ZXIgdG8gbGV0IGFwcGxpY2F0aW9uIGJlIGxvYWQgYmVmb3JlICINCj4gPiA+Pj4+Pj4gRGVmYXVs dCBQbGF0Zm9ybVJlY292ZXJ5IiBvcHRpb24NCj4gPiA+Pj4+Pj4gICAgICAgICAgICAgICAgICBM b2FkT3B0aW9uVHlwZVBsYXRmb3JtUmVjb3ZlcnksDQo+ID4gPj4+Pj4+ICAgICAgICAgICAgICAg ICAgTE9BRF9PUFRJT05fQUNUSVZFLA0KPiA+ID4+Pj4+PiAgICAgICAgICAgICAgICAgIEwiQXBw bGljYXRpb24gZm9yIHJlY292ZXJpbmcgYm9vdCBvcHRpb25zIiwNCj4gPiA+Pj4+Pj4NCj4gPiA+ Pj4+Pj4gRmlsZVBhdGgsDQo+ID4gPj4+Pj4+IC0+IEZpbGVQYXRoIGlzIHRoZSBBcHBsaWNhdGlv bidzIGRldmljZSBwYXRoLA0KPiA+ID4+Pj4+PiAgICAgICAgICAgICAgICAgIE5VTEwsDQo+ID4g Pj4+Pj4+ICAgICAgICAgICAgICAgICAgMA0KPiA+ID4+Pj4+PiAgICAgICAgICAgICAgICAgICk7 DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+PiBNeSByZWFzb25pbmcgaXMgdGhh dCwgaWYgUGxhdGZvcm1SZWNvdmVyeSMjIyMgY2FuIGV4ZWN1dGUgYQ0KPiA+ID4+Pj4+Pj4gcmVn dWxhciBib290bG9hZGVyIGxpa2UgL2VmaS9ib290L2Jvb3QjIyMjLmVmaSBmcm9tDQo+ID4gPj4+ Pj4+PiBpbnN0YWxsYXRpb24gbWVkaWEsIHRoZW4gaXQgc2hvdWxkIGdvIHRocm91Z2ggdGhlIHNh bWUga2luZCBvZg0KPiA+ID4+Pj4+Pj4gaW5pdGlhbGl6YXRpb24gdGhhdCBoYXBwZW5zIGZvciBh IHJlZ3VsYXIgYm9vdCBvcHRpb24sIGFuZA0KPiA+ID4+Pj4+Pj4gdGhhdCBzaG91bGQgaW5jbHVk ZSBzaWduYWxpbmcgdGhlIFJlYWR5VG9Cb290IGV2ZW50Lg0KPiA+ID4+Pj4+PiBbU3VubnldIFRo YW5rcyBmb3IgY2xhcmlmeWluZyB0aGlzLCBhbmQgU29ycnkgYWJvdXQgdGhhdCBJDQo+ID4gPj4+ Pj4+IG1pc3NlZCB5b3VyIGNvdmVyIGxldHRlciBmb3IgdGhpcyBwYXRjaC4gIEkgd2FzIGp1c3Qg dGhpbmtpbmcNCj4gPiA+Pj4+Pj4gdGhhdCB3ZSBtYXkgbm90IHJlYWxseSBuZWVkIHRvIG1ha2Ug dGhpcyBiZWhhdmlvciBjaGFuZ2UgaW4NCj4gPiA+Pj4+Pj4gYm90aCBFREsgSUkgY29kZSBhbmQg VUVGSSBzcGVjaWZpY2F0aW9uIGZvciBzb2x2aW5nIHRoZSBwcm9ibGVtDQo+ID4gPj4+Pj4+IHNw ZWNpZmljIHRvIHRoZSBjYXNlIHRoYXQgT1MgaXMgbG9hZGVkIGJ5ICJEZWZhdWx0DQo+ID4gPj4+ Pj4+IFBsYXRmb3JtUmVjb3ZlcnkiIG9wdGlvbiwNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFRoZSB3 YXkgSSBzZWUgaXQgaXMgdGhhdCB0aGUgUGkgcGxhdGZvcm0gaXMgdW5saWtlbHkgdG8gYmUgdGhl DQo+ID4gPj4+Pj4gb25seSBvbmUgd2hlcmUgUGxhdGZvcm1SZWNvdmVyeSBpcyBzZWVuIGFzIGEg bWVhbnMgdG8gaW5zdGFsbCBhbg0KPiBPUy4NCj4gPiA+Pj4+PiBHcmFudGVkLCB0aGlzIG1heSBz ZWVtIGxpa2UgYWJ1c2luZyB0aGUgb3B0aW9uLCBidXQgc2luY2UgVUVGSQ0KPiA+ID4+Pj4+IGRv ZXNuJ3QgcHJvdmlkZSBhbiAiSW5pdGlhbCBPUyBJbnN0YWxsIiBtb2RlLCBJIHdvdWxkIGFzc2Vy dA0KPiA+ID4+Pj4+IHRoYXQgaXQgYXMgZ29vZCBhIHVzZSBvZiB0aGlzIG9wdGlvbiBhcyBhbnku DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBJbiBvdGhlciB3b3JkcywgSSBkb24ndCB0aGluayB0aGlz IGltcHJvdmVtZW50IHdvdWxkIG9ubHkNCj4gPiA+Pj4+PiBiZW5lZml0IHRoZSBQaSBwbGF0Zm9y bS4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+PiBhbmQgSSdtIGFsc28gbm90IHN1cmUgaWYgaXQgaXMg d29ydGggbWFraW5nIHRoaXMgY2hhbmdlIHRvDQo+ID4gPj4+Pj4+IGFmZmVjdCBzb21lIG9mIHRo ZSBzeXN0ZW0gb3IgQklPUyB2ZW5kb3JzIHdobyBoYXZlDQo+IGltcGxlbWVudGVkDQo+ID4gPj4+ Pj4+IHRoZWlyIFBsYXRmb3JtUmVjb3Zlcnkgb3B0aW9uLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4g VGhhdCdzIGEgbGVnaXRpbWF0ZSBjb25jZXJuLCBhbmQgSSB3b3VsZCBhZ3JlZSB0aGUgb25lIG1h am9yDQo+ID4gPj4+Pj4gcG90ZW50aWFsIHBpdGZhbGwgb2YgdGhpcyBwcm9wb3NhbCwgaWYgdGhl cmUgaGFwcGVucyB0byBleGlzdCBhDQo+ID4gPj4+Pj4gc3lzdGVtIHdoZXJlIGFuIE9uUmVhZHlU b0Jvb3QgZXZlbiBiZWZvcmUgcnVubmluZyB0aGUNCj4gcmVjb3ZlcnkNCj4gPiA+Pj4+PiBvcHRp b24gY2FuIGhhdmUgYWR2ZXJzZSBlZmZlY3RzLg0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gSSBkb24n dCByZWFsbHkgYmVsaWV2ZSB0aGF0IHN1Y2ggYSBzeXN0ZW0gZXhpc3RzLCBiZWNhdXNlIEkNCj4g PiA+Pj4+PiBleHBlY3QgbW9zdCByZWNvdmVyeSBib290IGxvYWRlcnMgdG8gYWxzbyB3b3JrIChv ciBhdCBsZWFzdCBoYXZlDQo+ID4gPj4+Pj4gYmVlbiBkZXNpZ25lZCB0bw0KPiA+ID4+Pj4+IHdv cmspIGFzIHJlZ3VsYXIgYm9vdCBvcHRpb25zLiBCdXQgSSBkb24ndCBoYXZlIGVub3VnaA0KPiA+ ID4+Pj4+IGV4cGVyaWVuY2Ugd2l0aCBwbGF0Zm9ybSByZWNvdmVyeSB0byBrbm93IGlmIHRoYXQn cyBhIGNvcnJlY3QNCj4gYXNzZXJ0aW9uIHRvIG1ha2UuLi4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ PiBJZiB0aGUgYWx0ZXJuYXRpdmUgYXBwcm9hY2ggSSBtZW50aW9uZWQgd29ya3MgZm9yIHlvdSwg SSB0aGluaw0KPiA+ID4+Pj4+PiB0aGF0IHdvdWxkIGJlIGFuIGVhc2llciBzb2x1dGlvbi4NCj4g PiA+Pj4+Pg0KPiA+ID4+Pj4+IFJpZ2h0IG5vdywgZXZlbiBhcyB0aGUgcGF0Y2ggcHJvcG9zYWwg aGFzIG11bHRpcGxlIGlzc3VlcyB0aGF0DQo+ID4gPj4+Pj4gcmVxdWlyZSBpdCB0byBiZSBhbWVu ZGVkIChEb24ndCBzaWduYWwgUmVhZHlUb0Jvb3QgZXhjZXB0IGZvcg0KPiA+ID4+Pj4+IFBsYXRm b3JtUmVjb3ZlcnkNCj4gPiA+Pj4+PiArIFByZXZlbnQgc2l0dWF0aW9ucyB3aGVyZSBSZWFkeVRv Qm9vdCBjb3VsZCBiZSBzaWduYWxsZWQNCj4gPiA+Pj4+PiArIG11bHRpcGxlDQo+ID4gPj4+Pj4g dGltZXMpIEkgc3RpbGwgc2VlIGl0IGFzIGJvdGggYW4gZWFzaWVyIHNvbHV0aW9uIHRoYW4gdGhl DQo+ID4gPj4+Pj4gYWx0ZXJuYXRpdmUsIGFzIHdlbGwgYXMgb25lIHRoYXQgKnNob3VsZCogYmVu ZWZpdCBwZW9wbGUgd2hvDQo+ID4gPj4+Pj4gZGVzaWduIFBsYXRmb3JtIFJlY292ZXJ5IFVFRkkg YXBwbGljYXRpb25zIGluIHRoZSBsb25nIHJ1bi4gU28NCj4gPiA+Pj4+PiB0aGF0IGlzIHdoeSBJ IGFtIHN0aWxsIHRyeWluZyB0byBhZHZvY2F0ZSBmb3IgaXQuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+ PiBCdXQgSSB2ZXJ5IG11Y2ggaGVhciB5b3VyIGNvbmNlcm5zLCBhbmQgSSBhZ3JlZSB0aGF0IHNw ZWNzDQo+ID4gPj4+Pj4gY2hhbmdlcyBhcmUgYmV0dGVyIGF2b2lkZWQgd2hlbiBwb3NzaWJsZS4N Cj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFRodXMsIGF0IHRoaXMgc3RhZ2UsIGV2ZW4gYXMgSSBkb24n dCB3YW50IHRvIGRyYWcgdGhpcw0KPiA+ID4+Pj4+IGRpc2N1c3Npb24gbXVjaCBmdXJ0aGVyLCBJ IGRvbid0IGZlZWwgbGlrZSBJIHdhbnQgdG8gY29tbWl0IHRvDQo+ID4gPj4+Pj4gb25lIHNvbHV0 aW9uIG9yIHRoZSBvdGhlciBiZWZvcmUgd2UgaGF2ZSBoYWQgYSBjaGFuY2UgdG8gaGVhcg0KPiA+ ID4+Pj4+IG90aGVyIHBlb3BsZSwgd2hvIG1heSBoYXZlIHRoZWlyIG93biBvcGluaW9uIG9uIHRo ZSBtYXR0ZXIsDQo+IGV4cHJlc3MgdGhlaXIgdmlld3MuDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBS ZWdhcmRzLA0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gL1BldGUNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFJlZ2FyZHMsDQo+ID4gPj4+Pj4+IFN1bm55IFdhbmcN Cj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ Pj4+Pj4gRnJvbTogUGV0ZSBCYXRhcmQgW21haWx0bzpwZXRlQGFrZW8uaWVdDQo+ID4gPj4+Pj4+ IFNlbnQ6IFdlZG5lc2RheSwgSnVuZSAxNywgMjAyMCA2OjU5IFBNDQo+ID4gPj4+Pj4+IFRvOiBX YW5nLCBTdW5ueSAoSFBTIFNXKSA8bWFpbHRvOnN1bm55d2FuZ0BocGUuY29tPjsNCj4gPiA+Pj4+ Pj4gbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPj4+Pj4+IENjOiBtYWlsdG86emhp Y2hhby5nYW9AaW50ZWwuY29tOyBtYWlsdG86cmF5Lm5pQGludGVsLmNvbTsNCj4gPiA+Pj4+Pj4g bWFpbHRvOmFyZC5iaWVzaGV1dmVsQGFybS5jb207IG1haWx0bzpsZWlmQG51dmlhaW5jLmNvbQ0K PiA+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtlZGsyXVtQQVRDSCAxLzFdDQo+ ID4gPj4+Pj4+IE1kZU1vZHVsZVBrZy9VZWZpQm9vdE1hbmFnZXJMaWI6IFNpZ25hbCBSZWFkeVRv Qm9vdCBvbg0KPiA+IHBsYXRmb3JtDQo+ID4gPj4+Pj4+IHJlY292ZXJ5DQo+ID4gPj4+Pj4+DQo+ ID4gPj4+Pj4+IEhpIFN1bm55LCB0aGFua3MgZm9yIGxvb2tpbmcgaW50byB0aGlzLg0KPiA+ID4+ Pj4+Pg0KPiA+ID4+Pj4+PiBPbiAyMDIwLjA2LjE3IDA5OjE2LCBXYW5nLCBTdW5ueSAoSFBTIFNX KSB3cm90ZToNCj4gPiA+Pj4+Pj4+IEhpIFBldGUuDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4g U2luY2UgdGhlIEVmaUJvb3RNYW5hZ2VyUHJvY2Vzc0xvYWRPcHRpb24gaXMgY2FsbGVkIGJ5DQo+ ID4gPj4+Pj4+PiBQcm9jZXNzTG9hZE9wdGlvbnMgYXMgd2VsbCwgeW91ciBjaGFuZ2Ugd291bGQg YWxzbyBjYXVzZSBzb21lDQo+ID4gPj4+Pj4+PiB1bmV4cGVjdGVkIGJlaGF2aW9yIGxpa2U6DQo+ ID4gPj4+Pj4+PiAxLiBTaWduYWwgb25lIG1vcmUgUmVhZHlUb0Jvb3QgZm9yIHRoZSBQbGF0Zm9y bVJlY292ZXJ5IG9wdGlvbg0KPiA+ID4+Pj4+Pj4gd2hpY2ggaXMgYW4gYXBwbGljYXRpb24gdGhh dCBjYWxscyBFZmlCb290TWFuYWdlckJvb3QoKSB0bw0KPiA+ID4+Pj4+Pj4gbGF1bmNoIGl0cyBy ZWNvdmVyZWQgYm9vdCBvcHRpb24uDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEknbSBub3Qgc3Vy ZSBJIHVuZGVyc3RhbmQgaG93IHRoaXMgcGFydCBpcyB1bndhbnRlZC4NCj4gPiA+Pj4+Pj4NCj4g PiA+Pj4+Pj4gVGhlIHBvaW50IG9mIHRoaXMgcGF0Y2ggaXMgdG8gZW5zdXJlIHRoYXQgUmVhZHlU b0Jvb3QgaXMNCj4gPiA+Pj4+Pj4gc2lnbmFsbGVkIGZvciB0aGUgUGxhdGZvcm1SZWNvdmVyeSBv cHRpb24sIHNvIGlzbid0IHdoYXQgeW91DQo+ID4gPj4+Pj4+IGRlc2NyaWJlIGFib3ZlIGV4YWN0 bHkgd2hhdCB3ZSB3YW50Pw0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBPciBpcyB0aGUgIm9uZSBt b3JlIiB0aGUgaXNzdWUsIG1lYW5pbmcgdGhhdCBpdCB3b3VsZCBnZXQNCj4gPiA+Pj4+Pj4gc2ln bmFsbGVkIG1vcmUgdGhhbiBvbmNlPw0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+ Pj4gMi4gU2lnbmFsIFJlYWR5VG9Cb290IGZvciBTeXNQcmVwIyMjIyBvciBEcml2ZXIjIyMjIHRo YXQgaXMNCj4gPiA+Pj4+Pj4+IG5vdCByZWFsbHkgYSAiYm9vdCIgb3B0aW9uLg0KPiA+ID4+Pj4+ Pg0KPiA+ID4+Pj4+PiBZZXMsIEkndmUgYmVlbiB3b25kZXJpbmcgYWJvdXQgdGhhdCwgYmVjYXVz ZSBCZHNFbnRyeS5jJ3MNCj4gPiA+Pj4+Pj4gUHJvY2Vzc0xvYWRPcHRpb25zKCksIHdoaWNoIGNh bGxzDQo+ID4gPj4+Pj4+IEVmaUJvb3RNYW5hZ2VyUHJvY2Vzc0xvYWRPcHRpb24oKSwNCj4gPiA+ Pj4+Pj4gbWVudGlvbnMgdGhhdCBpdCB3aWxsIGxvYWQgd2lsbCBsb2FkIGFuZCBzdGFydCBldmVy eQ0KPiA+ID4+Pj4+PiBEcml2ZXIjIyMjLCBTeXNQcmVwIyMjIyBvciBQbGF0Zm9ybVJlY292ZXJ5 IyMjIy4gQnV0IHRoZQ0KPiA+ID4+Pj4+PiBjb21tZW50IGFib3V0IHRoZQ0KPiA+ID4+Pj4+PiB3 aGlsZSgpIGxvb3AgaW4gRWZpQm9vdE1hbmFnZXJQcm9jZXNzTG9hZE9wdGlvbigpIG9ubHkgbWVu dGlvbnMNCj4gPiA+Pj4+Pj4gUGxhdGZvcm1SZWNvdmVyeSMjIyMuDQo+ID4gPj4+Pj4+DQo+ID4g Pj4+Pj4+IElmIG5lZWRlZCwgSSBndWVzcyB3ZSBjb3VsZCBhbWVuZCB0aGUgcGF0Y2ggdG8gZGV0 ZWN0IHRoZSB0eXBlDQo+ID4gPj4+Pj4+IG9mIG9wdGlvbiBhbmQgb25seSBzaWduYWwgUmVhZHlU b0Jvb3QgZm9yIFBsYXRmb3JtUmVjb3ZlcnkjIyMjLg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+Pj4g VG8gc29sdmUgeW91ciBwcm9ibGVtLCBjcmVhdGluZyBhIFBsYXRmb3JtUmVjb3Zlcnkgb3B0aW9u IHdpdGgNCj4gPiA+Pj4+Pj4+IHRoZSBzbWFsbGVzdCBvcHRpb24gbnVtYmVyIGFuZCB1c2luZyBp dCBpbnN0ZWFkIG9mIGRlZmF1bHQgb25lDQo+ID4gPj4+Pj4+PiAod2l0aCBzaG9ydC1mb3JtIEZp bGUgUGF0aCBNZWRpYSBEZXZpY2UgUGF0aCkgbG9va3MgbGlrZSBhDQo+ID4gPj4+Pj4+PiBzaW1w bGVyIHNvbHV0aW9uLg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBJIGRvbid0IG1pbmQgdHJ5aW5n IGFuIGFsdGVybmF0aXZlIGFwcHJvYWNoLCBidXQgSSBkb24ndA0KPiA+ID4+Pj4+PiB1bmRlcnN0 YW5kIGhvdyB3aGF0IHlvdSBkZXNjcmliZSB3b3VsZCBoZWxwLiBDYW4geW91IHBsZWFzZSBiZQ0K PiA+ID4+Pj4+PiBtb3JlIHNwZWNpZmljIGFib3V0IHdoYXQgeW91IGhhdmUgaW4gbWluZD8NCj4g PiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gT3VyIG1haW4gaXNzdWUgaGVyZSBpcyB0aGF0IHdlIG11c3Qg aGF2ZSBSZWFkeVRvQm9vdCBzaWduYWxsZWQNCj4gPiA+Pj4+Pj4gc28gdGhhdCB0aGUgUmVhZHlU b0Jvb3QoKSBmdW5jdGlvbiBjYWxsYmFjayBmcm9tDQo+ID4gPj4+Pj4+IEVtYmVkZGVkUGtnL0Ry aXZlcnMvQ29uc29sZVByZWZEeGUgZ2V0cyBleGVjdXRlZCBpbiBvcmRlciBmb3INCj4gPiB0aGUN Cj4gPiA+Pj4+Pj4gYm9vdCBsb2FkZXIgaW52b2tlZCBmcm9tIFBsYXRmb3JtUmVjb3ZlcnkjIyMj ICB0byB1c2UgYQ0KPiA+ID4+Pj4+PiBwcm9wZXJseSBpbml0aWFsaXplZCBncmFwaGljYWwgY29u c29sZS4gU28gSSdtIG5vdCBzdXJlIEkgcXVpdGUNCj4gPiA+Pj4+Pj4gZ2V0IGhvdyBzd2l0Y2hp bmcgZnJvbSBvbmUgUGxhdGZvcm1SZWNvdmVyeSMjIyMgb3B0aW9uIHRvDQo+ID4gPj4+Pj4+IGFu b3RoZXIgd291bGQgaW1wcm92ZSB0aGluZ3MuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IElmIGl0 IGhlbHBzLCBoZXJlIGlzIHdoYXQgd2UgY3VycmVudGx5IGRlZmF1bHQgdG8sIGluIHRlcm1zIG9m DQo+ID4gPj4+Pj4+IGJvb3Qgb3B0aW9ucywgb24gYSBSYXNwYmVycnkgUGkgNCBwbGF0Zm9ybSB3 aXRoIGEgbmV3bHkgYnVpbGQNCj4gPiBmaXJtd2FyZToNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4g W0Jkc109PT09PT09PT09PT09QmVnaW4gTG9hZCBPcHRpb25zIER1bXBpbmcNCj4gPiAuLi49PT09 PT09PT09PT09DQo+ID4gPj4+Pj4+ICAgICAgICBEcml2ZXIgT3B0aW9uczoNCj4gPiA+Pj4+Pj4g ICAgICAgIFN5c1ByZXAgT3B0aW9uczoNCj4gPiA+Pj4+Pj4gICAgICAgIEJvb3QgT3B0aW9uczoN Cj4gPiA+Pj4+Pj4gICAgICAgICAgQm9vdDAwMDA6IFVpQXBwICAgICAgICAgICAgICAweDAxMDkN Cj4gPiA+Pj4+Pj4gICAgICAgICAgQm9vdDAwMDE6IFVFRkkgU2hlbGwgICAgICAgICAgICAgICAg IDB4MDAwMA0KPiA+ID4+Pj4+PiAgICAgICAgUGxhdGZvcm1SZWNvdmVyeSBPcHRpb25zOg0KPiA+ ID4+Pj4+PiAgICAgICAgICBQbGF0Zm9ybVJlY292ZXJ5MDAwMDogRGVmYXVsdCBQbGF0Zm9ybVJl Y292ZXJ5DQo+ID4gPj4+Pj4+IDB4MDAwMSBbQmRzXT09PT09PT09PT09PT1FbmQgTG9hZCBPcHRp b25zDQo+ID4gRHVtcGluZz09PT09PT09PT09PT0NCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gV2l0 aCB0aGlzLCBQbGF0Zm9ybVJlY292ZXJ5MDAwMCBnZXRzIGV4ZWN1dGVkIGJ5IGRlZmF1bHQsIHdo aWNoDQo+ID4gPj4+Pj4+IGlzIHdoYXQgd2Ugd2FudCwgc2luY2UgaXQgd2lsbCBwaWNrIC9lZmkv Ym9vdC9ib290YWE2NC5lZmkgZnJvbQ0KPiA+ID4+Pj4+PiBlaXRoZXIgU0Qgb3IgVVNCIGFuZCBy dW4gaXQsIHRoZSBvbmx5IGlzc3VlIGJlaW5nIHRoYXQsIGJlY2F1c2UNCj4gPiA+Pj4+Pj4gUmVh ZHlUb0Jvb3QgaGFzIG5vdCBiZWVuIGV4ZWN1dGVkLCB0aGUgZ3JhcGhpY2FsIGNvbnNvbGUgaXMg bm90DQo+ID4gPj4+Pj4+IG9wZXJhdGl2ZSBzbyB1c2VycyBjYW4ndCBpbnRlcmFjdCB3aXRoIHRo ZSBPUyBpbnN0YWxsZXIuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFNvIEknbSByZWFsbHkgbm90 IHN1cmUgaG93IGFkZGluZyBhbiBleHRyYSBQbGF0Zm9ybVJlY292ZXJ5IyMjIw0KPiA+ID4+Pj4+ PiB3b3VsZCBoZWxwLiBBbmQgSSdtIGFsc28gbm90IHRvbyBmYW1pbGlhciB3aXRoIGhvdyBvbmUg d291bGQgZ28NCj4gPiA+Pj4+Pj4gYXJvdW5kIHRvIGFkZCBzdWNoIGFuIGVudHJ5Li4uDQo+ID4g Pj4+Pj4+DQo+ID4gPj4+Pj4+PiBCeSB0aGUgd2F5LCBJIGFsc28gY2hlY2tlZCB0aGUgVUVGSSBz cGVjaWZpY2F0aW9uLiBJdCBsb29rcw0KPiA+ID4+Pj4+Pj4gbWFraW5nIHNlbnNlIHRvIG9ubHkg c2lnbmFsIFJlYWR5VG9Cb290IGZvciBib290IG9wdGlvbg0KPiA+IChCb290IyMjIykuDQo+ID4g Pj4+Pj4+DQo+ID4gPj4+Pj4+IFRoYXQncyBzb21ldGhpbmcgSSBjb25zaWRlcmVkIHRvbywgYnV0 IEkgZGlzYWdyZWUgd2l0aCB0aGlzDQo+ID4gPj4+Pj4+IGNvbmNsdXNpb24uDQo+ID4gPj4+Pj4+ DQo+ID4gPj4+Pj4+IE15IHJlYXNvbmluZyBpcyB0aGF0LCBpZiBQbGF0Zm9ybVJlY292ZXJ5IyMj IyBjYW4gZXhlY3V0ZSBhDQo+ID4gPj4+Pj4+IHJlZ3VsYXIgYm9vdGxvYWRlciBsaWtlIC9lZmkv Ym9vdC9ib290IyMjIy5lZmkgZnJvbQ0KPiA+ID4+Pj4+PiBpbnN0YWxsYXRpb24gbWVkaWEsIHRo ZW4gaXQgc2hvdWxkIGdvIHRocm91Z2ggdGhlIHNhbWUga2luZCBvZg0KPiA+ID4+Pj4+PiBpbml0 aWFsaXphdGlvbiB0aGF0IGhhcHBlbnMgZm9yIGEgcmVndWxhciBib290IG9wdGlvbiwgYW5kIHRo YXQNCj4gPiA+Pj4+Pj4gc2hvdWxkIGluY2x1ZGUgc2lnbmFsbGluZyB0aGUgUmVhZHlUb0Jvb3Qg ZXZlbnQuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IElmIHRoZXJlIHdhcyBhIHNwZWNpYWwgYm9v dGxvYWRlciBmb3IgUGxhdGZvcm1SZWNvdmVyeSMjIyMgKGUuZy4NCj4gPiA+Pj4+Pj4gL2VmaS9i b290L3JlY292ZXJ5IyMjIy5lZmkpIHRoZW4gSSB3b3VsZCBhZ3JlZSB3aXRoIG9ubHkNCj4gPiA+ Pj4+Pj4gc2lnbmFsbGluZyBSZWFkeVRvQm9vdCBmb3IgYSBmb3JtYWwgQm9vdCMjIyMgb3B0aW9u LiBCdXQgdGhhdA0KPiA+ID4+Pj4+PiBpc24ndCB0aGUgY2FzZSwgc28gSSB0aGluayBpdCBpcyBy ZWFzb25hYmxlIHRvIHdhbnQgdG8gaGF2ZQ0KPiA+ID4+Pj4+PiBSZWFkeVRvQm9vdCBhbHNvIG9j Y3VyIHdoZW4gYSAvZWZpL2Jvb3QvYm9vdCMjIyMuZWZpDQo+IGJvb3Rsb2FkZXINCj4gPiA+Pj4+ Pj4gaXMgZXhlY3V0ZWQgZnJvbSBQbGF0Zm9ybVJlY292ZXJ5IyMjIy4sIGVzcGVjaWFsbHkgd2hl biB3ZQ0KPiBrbm93DQo+ID4gPj4+Pj4+IGl0IGNhbiBiZSBjcnVjaWFsIHRvIGVuc3VyaW5nIHRo YXQgdGhlIGVuZCB1c2VyIGNhbiBhY3R1YWxseQ0KPiA+ID4+Pj4+PiB1c2UgdGhlDQo+ID4gZ3Jh cGhpY2FsIGNvbnNvbGUuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+PiBUaGVyZWZvcmUsIHlvdXIg Y2hhbmdlIG1heSBhbHNvIHJlcXVpcmUgc3BlY2lmaWNhdGlvbiBjaGFuZ2UuDQo+ID4gPj4+Pj4+ DQo+ID4gPj4+Pj4+IFllcywgSSBtZW50aW9uZWQgdGhhdCBpbiB0aGUgY292ZXIgbGV0dGVyIGZv ciB0aGlzIHBhdGNoDQo+ID4gPj4+Pj4+DQo+ID4gKGh0dHBzOi8vbmFtMDQuc2FmZWxpbmtzLnBy b3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUNCj4gPiA+Pj4+Pj4gMg0KPiA+ ID4+Pj4+Pg0KPiA+DQo+IEZlZGsyLmdyb3Vwcy5pbyUyRmclMkZkZXZlbCUyRm1lc3NhZ2UlMkY2 MTMyNyZhbXA7ZGF0YT0wMiU3QzAxJQ0KPiA+IDdDDQo+ID4gPj4+Pj4+IGENCj4gPiA+Pj4+Pj4N Cj4gPg0KPiB3YXJrZW50aW4lNDB2bXdhcmUuY29tJTdDNWY5MGQwNzdiYzc5NDljMTEyMmYwOGQ4 MTJkYzQ4ZDMlN0NiMzkxDQo+ID4gMw0KPiA+ID4+Pj4+PiA4DQo+ID4gPj4+Pj4+DQo+ID4NCj4g Y2EzY2VlNGI0YWE0ZDZjZDgzZDlkZDYyZjAlN0MwJTdDMCU3QzYzNzI4MDA4NDYxMTc0OTMyNCZh bXA7c2RhdA0KPiA+IGENCj4gPiA+Pj4+Pj4gPQ0KPiA+ID4+Pj4+Pg0KPiA+DQo+IDIlMkIlMkZj dk1rcm1aR1RSUkxER1N1TXNLYml5RE9HdHdZd1o3cVNxTXlNaWNjJTNEJmFtcDtyZXMNCj4gPiBl cnZlZD0wDQo+ID4gPj4+Pj4+ICksIHdoaWNoIGFsc28gZGVzY3JpYmVzIHRoZSBpc3N1ZSB3ZSBh cmUgdHJ5aW5nIHRvIHNvbHZlIGluDQo+ID4gPj4+Pj4+IGdyZWF0ZXIgZGV0YWlscy4gVGhpcyBp cyB3aGF0IEkgd3JvdGU6DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4+Pj4+ PiAtLQ0KPiA+ID4+Pj4+PiAtDQo+ID4gPj4+Pj4+IC0tLS0tLQ0KPiA+ID4+Pj4+Pg0KPiA+ID4+ Pj4+PiBOb3RlIGhvd2V2ZXIgdGhhdCB0aGlzIG1heSByZXF1aXJlIGEgc3BlY3MgdXBkYXRlLCBh cyB0aGUNCj4gPiA+Pj4+Pj4gY3VycmVudCBVRUZJIHNwZWNzIGZvciBFRklfQk9PVF9TRVJWSUNF Uy5DcmVhdGVFdmVudEV4KCkgaGF2ZToNCj4gPiA+Pj4+Pj4NCj4gPiA+Pj4+Pj4gICAgICA+ICBF RklfRVZFTlRfR1JPVVBfUkVBRFlfVE9fQk9PVA0KPiA+ID4+Pj4+PiAgICAgID4gICAgVGhpcyBl dmVudCBncm91cCBpcyBub3RpZmllZCBieSB0aGUgc3lzdGVtIHdoZW4gdGhlDQo+ID4gPj4+Pj4+ IEJvb3QgTWFuYWdlcg0KPiA+ID4+Pj4+PiAgICAgID4gICAgaXMgYWJvdXQgdG8gbG9hZCBhbmQg ZXhlY3V0ZSBhIGJvb3Qgb3B0aW9uLg0KPiA+ID4+Pj4+Pg0KPiA+ID4+Pj4+PiBhbmQsIG9uY2Ug dGhpcyBwYXRjaCBoYXMgYmVlbiBhcHBsaWVkLCB3ZSBtYXkgd2FudCB0byB1cGRhdGUNCj4gPiA+ Pj4+Pj4gdGhpcyBzZWN0aW9uIHRvIG1lbnRpb24gdGhhdCBpdCBhcHBsaWVzIHRvIGJvdGggQm9v dCBNYW5hZ2VyDQo+ID4gPj4+Pj4+IGFuZCBQbGF0Zm9ybSBSZWNvdmVyeS4NCj4gPiA+Pj4+Pj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQo+ID4gPj4+Pj4+IC0tDQo+ID4gPj4+Pj4+IC0NCj4gPiA+Pj4+Pj4gLS0tLS0tDQo+ ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IEFnYWluLCBJIGRv bid0IGhhdmUgYW4gaXNzdWUgd2l0aCB0cnlpbmcgdG8gdXNlIGFuIGFsdGVybmF0ZQ0KPiA+ID4+ Pj4+PiBhcHByb2FjaCB0byBzb2x2ZSBvdXIgcHJvYmxlbSAodGhvdWdoIEkgdWx0aW1hdGVseSBi ZWxpZXZlDQo+ID4gPj4+Pj4+IHRoYXQsIGlmIFBsYXRmb3JtUmVjb3ZlcnkjIyMjIGNhbiBsYXVu Y2ggYQ0KPiA+ID4+Pj4+PiAvZWZpL2Jvb3QvYm9vdCMjIyMuZWZpIGJvb3Rsb2FkZXIgdGhlbiB3 ZSBtdXN0IHVwZGF0ZSB0aGUNCj4gc3BlY3MNCj4gPiA+Pj4+Pj4gYW5kIHRoZSBjb2RlIHRvIGhh dmUgUmVhZHlUb0Jvb3QgYWxzbyBzaWduYWxsZWQgdGhlbiwgYmVjYXVzZQ0KPiA+ID4+Pj4+PiB0 aGF0J3MgdGhlIGxvZ2ljYWwgdGhpbmcgdG8gZG8pLiBCdXQgcmlnaHQgbm93LCBJJ20gbm90IHNl ZWluZw0KPiA+ID4+Pj4+PiBob3cgdG8gYWNoaWV2ZSB0aGF0IHdoZW4gUGxhdGZvcm1SZWNvdmVy eSMjIyMgaXMgdGhlIG9wdGlvbg0KPiA+ID4+Pj4+PiB0aGF0IGlzIHVzZWQgdG8gbGF1bmNoIHRo ZSBPUyBpbnN0YWxsYXRpb24gdGhlIGJvb3Rsb2FkZXIuIFNvDQo+ID4gPj4+Pj4+IGlmIHlvdSBj YW4gcHJvdmlkZSBtb2RlIGRldGFpbHMgb24gaG93IGV4YWN0bHkgeW91IHRoaW5rDQo+ID4gPj4+ Pj4+IGNyZWF0aW5nIGFuIGFsdGVybmF0ZSBQbGF0Zm9ybVJlY292ZXJ5IG9wdGlvbiB3b3VsZCBo ZWxwLCBJIHdvdWxkDQo+IGFwcHJlY2lhdGUgaXQuDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IFJl Z2FyZHMsDQo+ID4gPj4+Pj4+DQo+ID4gPj4+Pj4+IC9QZXRlDQo+ID4gPj4+Pj4+DQo+ID4gPj4+ Pj4+Pg0KPiA+ID4+Pj4+Pj4gUmVnYXJkcywNCj4gPiA+Pj4+Pj4+IFN1bm55IFdhbmcNCj4gPiA+ Pj4+Pj4+DQo+ID4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+Pj4+ Pj4gRnJvbTogbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gW21haWx0bzpkZXZlbEBl ZGsyLmdyb3Vwcy5pb10NCj4gPiA+Pj4+Pj4+IE9uIEJlaGFsZiBPZiBQZXRlIEJhdGFyZA0KPiA+ ID4+Pj4+Pj4gU2VudDogVHVlc2RheSwgSnVuZSAxNiwgMjAyMCA1OjU2IFBNDQo+ID4gPj4+Pj4+ PiBUbzogbWFpbHRvOmRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPj4+Pj4+PiBDYzogbWFpbHRv OnpoaWNoYW8uZ2FvQGludGVsLmNvbTsgbWFpbHRvOnJheS5uaUBpbnRlbC5jb207DQo+ID4gPj4+ Pj4+PiBtYWlsdG86YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbTsgbWFpbHRvOmxlaWZAbnV2aWFpbmMu Y29tDQo+ID4gPj4+Pj4+PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW2VkazJdW1BBVENIIDEvMV0N Cj4gPiA+Pj4+Pj4+IE1kZU1vZHVsZVBrZy9VZWZpQm9vdE1hbmFnZXJMaWI6IFNpZ25hbCBSZWFk eVRvQm9vdCBvbg0KPiA+IHBsYXRmb3JtDQo+ID4gPj4+Pj4+PiByZWNvdmVyeQ0KPiA+ID4+Pj4+ Pj4NCj4gPiA+Pj4+Pj4+IEN1cnJlbnRseSwgdGhlIFJlYWR5VG9Cb290IGV2ZW50IGlzIG9ubHkg c2lnbmFsZWQgd2hlbiBhDQo+ID4gPj4+Pj4+PiBmb3JtYWwgQm9vdCBNYW5hZ2VyIG9wdGlvbiBp cyBleGVjdXRlZCAoaW4gQm1Cb290LmMgLT4NCj4gPiA+Pj4+Pj4+IEVmaUJvb3RNYW5hZ2VyQm9v dCAoKSkuDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gSG93ZXZlciwgd2l0aCB0aGUgaW50cm9k dWN0aW9uIG9mIFBsYXRmb3JtIFJlY292ZXJ5IGluIFVFRkkNCj4gPiA+Pj4+Pj4+IDIuNSwgd2hp Y2ggbWF5IGxlYWQgdG8gdGhlIGV4ZWN1dGlvbiBvZiBhIGJvb3QgbG9hZGVyIHRoYXQgaGFzDQo+ ID4gPj4+Pj4+PiBzaW1pbGFyIHJlcXVpcmVtZW50cyB0byBhIHJlZ3VsYXIgb25lLCB5ZXQgaXMg bm90IGxhdW5jaGVkIGFzDQo+ID4gPj4+Pj4+PiBhIEJvb3QgTWFuYWdlciBvcHRpb24sIGl0IGFs c28gYmVjb21lcyBuZWNlc3NhcnkgdG8gc2lnbmFsDQo+ID4gPj4+Pj4+PiBSZWFkeVRvQm9vdCB3 aGVuIGEgUGxhdGZvcm0gUmVjb3ZlcnkgYm9vdCBsb2FkZXIgcnVucy4NCj4gPiA+Pj4+Pj4+DQo+ ID4gPj4+Pj4+PiBFc3BlY2lhbGx5LCB0aGlzIGNhbiBiZSBjcml0aWNhbCB0byBlbnN1cmluZyB0 aGF0IHRoZQ0KPiA+ID4+Pj4+Pj4gZ3JhcGhpY2FsIGNvbnNvbGUgaXMgYWN0dWFsbHkgdXNhYmxl IGR1cmluZyBwbGF0Zm9ybSByZWNvdmVyeSwNCj4gPiA+Pj4+Pj4+IGFzIHNvbWUgcGxhdGZvcm1z IGRvIHJlbHkgb24gdGhlIENvbnNvbGVQcmVmRHhlIGRyaXZlciwgd2hpY2gNCj4gPiA+Pj4+Pj4+ IG9ubHkgcGVyZm9ybXMgY29uc29sZSBpbml0aWFsaXphdGlvbiBhZnRlciBSZWFkeVRvQm9vdCBp cw0KPiB0cmlnZ2VyZWQuDQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gVGhpcyBwYXRjaCBmaXhl cyB0aGF0IGJlaGF2aW91ciBieSBjYWxsaW5nDQo+ID4gPj4+Pj4+PiBFZmlTaWduYWxFdmVudFJl YWR5VG9Cb290ICgpIGluDQo+ID4gRWZpQm9vdE1hbmFnZXJQcm9jZXNzTG9hZE9wdGlvbg0KPiA+ ID4+Pj4+Pj4gKCksIHdoaWNoIGlzIHRoZSBmdW5jdGlvbiB0aGF0IHNldHMgdXAgdGhlIHBsYXRm b3JtIHJlY292ZXJ5DQo+ID4gPj4+Pj4+PiBib290IHByb2Nlc3MuDQo+ID4gPj4+Pj4+Pg0KPiA+ ID4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogUGV0ZSBCYXRhcmQgPG1haWx0bzpwZXRlQGFrZW8uaWU+ DQo+ID4gPj4+Pj4+PiAtLS0NCj4gPiA+Pj4+Pj4+DQo+IE1kZU1vZHVsZVBrZy9MaWJyYXJ5L1Vl ZmlCb290TWFuYWdlckxpYi9CbUxvYWRPcHRpb24uYw0KPiA+IHwgOQ0KPiA+ID4+Pj4+Pj4gKysr KysrKysrDQo+ID4gPj4+Pj4+PiAgICAgICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCsp DQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pj4gZGlmZiAtLWdpdA0KPiA+ID4+Pj4+Pj4gYS9NZGVN b2R1bGVQa2cvTGlicmFyeS9VZWZpQm9vdE1hbmFnZXJMaWIvQm1Mb2FkT3B0aW9uLmMNCj4gPiA+ Pj4+Pj4+IGIvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RNYW5hZ2VyTGliL0JtTG9hZE9w dGlvbi5jDQo+ID4gPj4+Pj4+PiBpbmRleCA4OTM3MmIzYjk3YjguLjExN2YxZjViMTI0YyAxMDA2 NDQNCj4gPiA+Pj4+Pj4+IC0tLQ0KPiA+IGEvTWRlTW9kdWxlUGtnL0xpYnJhcnkvVWVmaUJvb3RN YW5hZ2VyTGliL0JtTG9hZE9wdGlvbi5jDQo+ID4gPj4+Pj4+PiArKysNCj4gPiBiL01kZU1vZHVs ZVBrZy9MaWJyYXJ5L1VlZmlCb290TWFuYWdlckxpYi9CbUxvYWRPcHRpb24uYw0KPiA+ID4+Pj4+ Pj4gQEAgLTEzNzYsNiArMTM3NiwxNSBAQCBFZmlCb290TWFuYWdlclByb2Nlc3NMb2FkT3B0aW9u ICgNCj4gPiA+Pj4+Pj4+ICAgICAgICAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPj4+Pj4+ PiAgICAgICAgIH0NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+PiArICAvLw0KPiA+ID4+Pj4+Pj4g KyAgLy8gU2lnbmFsIHRoZSBFVlRfU0lHTkFMX1JFQURZX1RPX0JPT1QgZXZlbnQgd2hlbiB3ZQ0K PiBhcmUNCj4gPiA+Pj4+Pj4+ICthYm91dA0KPiA+ID4+Pj4+Pj4gdG8gbG9hZCBhbmQgZXhlY3V0 ZSB0aGUgYm9vdCBvcHRpb24uDQo+ID4gPj4+Pj4+PiArICAvLw0KPiA+ID4+Pj4+Pj4gKyAgRWZp U2lnbmFsRXZlbnRSZWFkeVRvQm9vdCAoKTsNCj4gPiA+Pj4+Pj4+ICsgIC8vDQo+ID4gPj4+Pj4+ PiArICAvLyBSZXBvcnQgU3RhdHVzIENvZGUgdG8gaW5kaWNhdGUgUmVhZHlUb0Jvb3Qgd2FzIHNp Z25hbGxlZA0KPiA+ID4+Pj4+Pj4gKy8vICBSRVBPUlRfU1RBVFVTX0NPREUgKEVGSV9QUk9HUkVT U19DT0RFLA0KPiA+ID4+Pj4+Pj4gKEVGSV9TT0ZUV0FSRV9EWEVfQlNfRFJJVkVSIHwNCj4gPiA+ Pj4+Pj4+ICsgRUZJX1NXX0RYRV9CU19QQ19SRUFEWV9UT19CT09UX0VWRU5UKSk7DQo+ID4gPj4+ Pj4+PiArDQo+ID4gPj4+Pj4+PiAgICAgICAgIC8vDQo+ID4gPj4+Pj4+PiAgICAgICAgIC8vIExv YWQgYW5kIHN0YXJ0IHRoZSBsb2FkIG9wdGlvbi4NCj4gPiA+Pj4+Pj4+ICAgICAgICAgLy8NCj4g PiA+Pj4+Pj4+IC0tDQo+ID4gPj4+Pj4+PiAyLjIxLjAud2luZG93cy4xDQo+ID4gPj4+Pj4+Pg0K PiA+ID4+Pj4+Pj4NCj4gPiA+Pj4+Pj4+DQo+ID4gPj4+Pj4+Pg0KPiA+ID4+Pj4+Pg0KPiA+ID4+ Pj4+DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBJTVBPUlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMg b2YgdGhpcyBlbWFpbCBhbmQgYW55DQo+IGF0dGFjaG1lbnRzDQo+ID4gPj4+Pj4gYXJlIGNvbmZp ZGVudGlhbCBhbmQgbWF5IGFsc28gYmUgcHJpdmlsZWdlZC4gSWYgeW91IGFyZSBub3QgdGhlDQo+ ID4gPj4+Pj4gaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1t ZWRpYXRlbHkgYW5kIGRvDQo+ID4gPj4+Pj4gbm90IGRpc2Nsb3NlIHRoZSBjb250ZW50cyB0byBh bnkgb3RoZXIgcGVyc29uLCB1c2UgaXQgZm9yIGFueQ0KPiA+ID4+Pj4+IHB1cnBvc2UsIG9yIHN0 b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGluIGFueSBtZWRpdW0uIFRoYW5rDQo+IHlvdS4N Cj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IElNUE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0 aGlzIGVtYWlsIGFuZCBhbnkNCj4gYXR0YWNobWVudHMNCj4gPiA+Pj4+PiBhcmUgY29uZmlkZW50 aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUNCj4gPiA+ Pj4+PiBpbnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBub3RpZnkgdGhlIHNlbmRlciBpbW1lZGlh dGVseSBhbmQgZG8NCj4gPiA+Pj4+PiBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvIGFueSBv dGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55DQo+ID4gPj4+Pj4gcHVycG9zZSwgb3Igc3RvcmUg b3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsNCj4geW91Lg0KPiA+ ID4+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+DQo+ ID4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4NCj4NCj4gSU1QT1JUQU5UIE5PVElDRTogVGhl IGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUNCj4gY29uZmlk ZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50 ZW5kZWQgcmVjaXBpZW50LA0KPiBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkg YW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55DQo+IG90aGVyIHBlcnNvbiwg dXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24g aW4gYW55DQo+IG1lZGl1bS4gVGhhbmsgeW91Lg0KPg0KPg0KPiANCj4NCg0KSU1QT1JUQU5UIE5P VElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUg Y29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0 aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRl bHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwg dXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24g aW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lg0K