From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR01-VE1-obe.outbound.protection.outlook.com (EUR01-VE1-obe.outbound.protection.outlook.com [40.107.14.73]) by mx.groups.io with SMTP id smtpd.web09.21320.1621853859729539917 for ; Mon, 24 May 2021 03:57:40 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=SD6APfbj; spf=pass (domain: arm.com, ip: 40.107.14.73, 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=aBfy9eJsJEQrTndLcJy5HWjd9Ihr2NTWFvyA5UugpVc=; b=SD6APfbjmLeaSaR+LT2o1Lw1R+8RhLvPlbI6QpDPvmhFIO7CdkA2KgtodZvcR1TIr0bSQEXgyvib70Qb5QJ6FNWdbsAR7AHcmxrudATQNJEG8v8Jb5WBnFEAI5Ig1giAcV/ibYzZC8118i2e2W4f6S5FzD8XU8b7ZdFtECjukbA= Received: from AM6P192CA0029.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::42) by AM0PR08MB3315.eurprd08.prod.outlook.com (2603:10a6:208:5c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.23; Mon, 24 May 2021 10:57:29 +0000 Received: from AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:83:cafe::f9) by AM6P192CA0029.outlook.office365.com (2603:10a6:209:83::42) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.23 via Frontend Transport; Mon, 24 May 2021 10:57:29 +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 AM5EUR03FT035.mail.protection.outlook.com (10.152.16.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Mon, 24 May 2021 10:57:29 +0000 Received: ("Tessian outbound 3c287b285c95:v92"); Mon, 24 May 2021 10:57:28 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 98ce026774c4595e X-CR-MTA-TID: 64aa7808 Received: from 679e5fc8043d.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 07388FE0-ABFD-4650-B055-74466D43CDD3.1; Mon, 24 May 2021 10:57:20 +0000 Received: from FRA01-PR2-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 679e5fc8043d.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 24 May 2021 10:57:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WuJ0a6CMGClUgGJqyEiYaLgafwaVjghBZfqcHoFKARhwHbJYflFr76RImo/RaBMFpeWJsoAfHTesBvopuxHno4HZY8WLMBjkTOEg97n9v1eg/AauHpBhbOZkrmXNwF2EC6nkO36ycOtdf21cUJr4+GVY1kSg+5mWY0o3pty4iaykze9WanlNouQxDh2dK2+LpQCi1MfymLyjrTERXu1xv/Pnykf/rkcQTuyZUjhLGCCX+y+M/bFlNQNMrfxgnCRg2HOg27Kb8/9beFwoNp54jvr9SxBGNVeA73VX8mtHE5PuSjLzKzRVwb5Lk5FmRfZ0e+Id3vWeTmXW7jAwE0Pkyg== 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=aBfy9eJsJEQrTndLcJy5HWjd9Ihr2NTWFvyA5UugpVc=; b=mzmvkw3D3gmrEcBifW9pyksS8aCGs1fcROCciHF/1c7oV6zEo4bGD/5Al+TMSu5fFhpynrYoBWTe4kC5i98r7iA81eAQyX6q9uDO16x3hn0tK7vDzaa5JCWiZdyyXwo7QcjQ9LOW+vgI2g8U4srijtyDn8FFj+ly+wZqZ1fumdU1HjcuNYQs/xHO6SjpnAz2saPO8B4xiTojVY4dCAwsD51v+m9oA5MRHuHT8iFA5NG0tE2Qqx7JEk57hqgh0pRAkMaSxQ0jhz8O+vURDnA4AEbhsEXjPXPpOk6XG3pLXdB4aLb1yjTJm6XcUroLhjq0JMQpNznB1EccztQ90F0TpA== 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=aBfy9eJsJEQrTndLcJy5HWjd9Ihr2NTWFvyA5UugpVc=; b=SD6APfbjmLeaSaR+LT2o1Lw1R+8RhLvPlbI6QpDPvmhFIO7CdkA2KgtodZvcR1TIr0bSQEXgyvib70Qb5QJ6FNWdbsAR7AHcmxrudATQNJEG8v8Jb5WBnFEAI5Ig1giAcV/ibYzZC8118i2e2W4f6S5FzD8XU8b7ZdFtECjukbA= Received: from PAXPR08MB6987.eurprd08.prod.outlook.com (2603:10a6:102:1df::15) by PR2PR08MB4732.eurprd08.prod.outlook.com (2603:10a6:101:26::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.26; Mon, 24 May 2021 10:57:18 +0000 Received: from PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::7c65:78c4:8d03:62ad]) by PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::7c65:78c4:8d03:62ad%7]) with mapi id 15.20.4150.027; Mon, 24 May 2021 10:57:18 +0000 From: "Samer El-Haj-Mahmoud" To: Marcin Wojtas , edk2-devel-groups-io , "gaoliming@byosoft.com.cn" CC: Sunny Wang , "Kinney, Michael D" , Leif Lindholm , Ard Biesheuvel , Grzegorz Bernacki , "upstream@semihalf.com" , Samer El-Haj-Mahmoud Subject: Re: [edk2-devel] [PATCH 1/1] MdePkg: Add new 16550-compatible Serial Port Subtypes to DBG2 Thread-Topic: [edk2-devel] [PATCH 1/1] MdePkg: Add new 16550-compatible Serial Port Subtypes to DBG2 Thread-Index: AQHXT7TqTEJ2jh8urU+cmYBoh7tFbqrx5ECAgAADRgCAABCfgIAAWfSAgAACP4CAACMuEA== Date: Mon, 24 May 2021 10:57:18 +0000 Message-ID: References: <20210523091512.2348586-1-mw@semihalf.com> <000701d75078$c2e69d30$48b3d790$@byosoft.com.cn> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: semihalf.com; dkim=none (message not signed) header.d=none;semihalf.com; 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: 7835b2db-a915-4137-5ba6-08d91ea2b93e x-ms-traffictypediagnostic: PR2PR08MB4732:|AM0PR08MB3315: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8882;OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: FrZpEi9/4QpdmwLTZV7u3RX9uKiKUtN+3470p1FLdNxagaO2cZogI64avU8eIGPc8U0EuRlrMlUR5/Oztg95dAP0dmv1VnyeEzcd3eCZ4TygxfIXnc2y5ygMVr9cbjIhid0Y/6jRNw4e7RYloC5WVclzJ3xbKKQY30z1hvnq05KMHIFGsOXLT6Oll58aX/N5hHlUZwd9RMYTmYrmkLUxC5iO1Yw1ANuhb41n/nOapl1FektmJrHJwfI144YBsAPzGSIr5UZMaaaMnBd3ju5opwF5w7Rdom24s8sgg6yU39+BPaR+TAA5PXDDOLVZvWTKfqpals9VwfvFLE67ZcZNzjMzGad8xVVJHsMLXlFyDi3kpWW91NZPKSVgigYMdEGP6kA/jGdH7TKy2gIxB2pG79A+EUbx7mwy8zLVqtlQeBLJ5boRFT1Vs1m+Z4ewmNScXKFKDabwsVJ7bpv4xC+MpfB98KjAZtF+3eKR1ZULAPZd7zqF587b8h2XMe3nceCfLMHrOxX2rrS8BLrdK05IVrKnZ/HPryWd9glYcftBjKvf+uKsSEmCOPVwEVsp8/F9tr9AL2IT6916Zm0vyad5yGVHVPe83Z2CnMvca+Xb+PC0u2bgrNizO7+gNhn4SzY8pyP23RCQWmLvrjZgyDOf49QonldqCql9vyyOXpHpa56O4wMgoarj+WypQ+pRhJswR95wzWiWaE1Sw6tLm53iyw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(366004)(136003)(346002)(39860400002)(396003)(376002)(316002)(8936002)(110136005)(4326008)(54906003)(76116006)(71200400001)(83380400001)(38100700002)(55016002)(52536014)(5660300002)(122000001)(8676002)(9686003)(86362001)(26005)(966005)(66556008)(33656002)(66446008)(7696005)(19627235002)(64756008)(478600001)(53546011)(6506007)(186003)(66476007)(66946007)(2906002)(45080400002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?RUJvN1FWS05vK2JMQXFIbXVlVGNNVVUvcEIxMkpGNmNGVlVuM2dDU0lOdW5D?= =?utf-8?B?T1B6VGc2bDFxcFZQYUdHRUwyV3BjU3FpRS9nb0pqSDlCQlhkcTBOQWl4aXNL?= =?utf-8?B?WXJXNkUzZjFlRGVleWliQ3JsWTBTT3BRT2ZPSWh2bEtFTnhSVzJMeS85cE1j?= =?utf-8?B?SkU2cnZGTXNsVkVHbXlsVVpwdHlkK2xLQ09mQzBVVUF6cWM2UTkyem4wYk9z?= =?utf-8?B?Y2FwanVEdEExU0ZXZ1VOT1hFUVZvajBabi85dGs2ZVJxN2dpTm9rNVFKSFg2?= =?utf-8?B?SUVRNjJ6MHAwdk1Ya3UvVDZDcGFSUkFtaEUzYjdGTmJibUFWTVEyQ3BuajRx?= =?utf-8?B?WTM5VDE4OGlpaHVRSmdnNjNqdjhJb1liRDJ5WThza3FGbkladkV4bksxd3JE?= =?utf-8?B?RVZZZ1g3TlNHcG1mSkx1c09mbjVEQlhPM3VDcGpzVlJINklxQWx4cktRYXFk?= =?utf-8?B?OVFSRFMycklnbnV5TXlDUEdaRlhCNkRUYlJ6VE91cDNCMlA3YVF6bUtjNW5F?= =?utf-8?B?Z1UyTGs2NzdmOVJjM2tLUUk2UDczeXNNcVlQOURzcnA3MHI2TDd6SWhVLzIy?= =?utf-8?B?Uy9sVmJLb2NQRnVGdzcxWktsLzNqMjNNZnlCMG02SHlCVWpXK00zOFNINjRK?= =?utf-8?B?WWhCV1RkUGlhTE9uZW0yT1hIOE4yc2M2VmJ0U1cvVWtLaWRlUWQzRFVnQStG?= =?utf-8?B?ODU0N2UrT0NpWjI2dWZ5QVZCQ2lSWHdaUVJDU1JlK1QyN2pxVVdUc3NGaTFw?= =?utf-8?B?VVZ5ZUxEQzBPaUpFM3c1aGtwcElYbkI1d0FBeHJyM0Rqd1FGeDMvTlBHd1My?= =?utf-8?B?aGdDallIcFpwUWpDSHE2bVAvVWhLWlNMcGJCQk5LczUxclJZUkZ0b0p2VldT?= =?utf-8?B?STVIcytISXlsL1QrYlBCODU5Rk1JbjQrNXFhOEVqdzlYYnNkMzFrcmlHREVW?= =?utf-8?B?eXhscm5LZVZrVk9yZFVTQ3B2RE5tdXRGT0lQTGdnWGJhN2V4MlZjOUJBZ0pU?= =?utf-8?B?TWJrZkt4MUVJcGx2Y1pLRWpXUUswUlY4WTFuRkZPcE03T1hoSUtWZ214MGpO?= =?utf-8?B?UG5Cbi9PZkJSejYrL0h4WVkrb2RLZFJNNVZnZDNOTzZzKzNnK2lRRmE4UnlD?= =?utf-8?B?MDRoUThyakdvRllHcjRSRXFzckJ4c2ZDeVpDbEJmcTZuOXVXUmt4UXlrMGpp?= =?utf-8?B?U3B4UkdZTklNNzl2UktWSEhKTVlDdWFJZzlaNU5VcDIyd24yRHZMQ09kclI0?= =?utf-8?B?a21vdENqdDhMbEF3NW41a3U5RU5GblRNbDd5c0pGTERYRGpIZXRiMXJDU0dR?= =?utf-8?B?T29pcXlVUTk1MXZkc2ZTeGJwaEhScFlQRTRBSzBVNTZzMXJjMXUzN1EwQm92?= =?utf-8?B?TERROTJKTGkzN2I3YUFhU1RCZkVmOFRaR3ZabVIxRmFsaXB5cjh4SXVRdzVu?= =?utf-8?B?dkVPQWdDak5FMkxKRHlxQjZHMmljL0FpU3RaNW9ZODd5OEhJQW8zKzZ0SDdt?= =?utf-8?B?V1VBN2U3VVhTd3lWeThJVjhlbVRqeVNENnFENDFBd3JqQ2dvUnlhZzliL3NK?= =?utf-8?B?QU1BUG9jK0JtSlRONm5KSU5ocjJYWFZ4Z0J0bmxvR29GWlJWUTFvcVZZVnlo?= =?utf-8?B?Y3FLTW9FNnowR3BZSkh5ZXdScFdvQ2h5OU96YVdJNENFYkFtdVJKNzMvaTYx?= =?utf-8?B?ZVc5VUwycjF5dzV2eSt5T0VXY1lnNmdodkQ1VlFFYWxKOW5HUkVwZ0s5WDhq?= =?utf-8?Q?IGYzv2zTwdwWKuqrM8qeiKzEM5HeR38raZAsfJx?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4732 Original-Authentication-Results: semihalf.com; dkim=none (message not signed) header.d=none;semihalf.com; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 6e278cc1-3a1e-4ef4-fc45-08d91ea2b2b3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qqHx9KXdy/fijovJA6KNua7p9VF8LX5+Ct1BG6jYy0jTctBLViekOd/P+PknsXqDDTWTwRRYmnt0ietqWq1KdfL+ZG7nCzg/u4NuHSj39P827qhD1VnEhCqiljA8Yz4ime1HYblHLobbuLYdCbo66Lf2EMXVX2zl3ztw8HCFQ/r9AI5YxPs2R23da6R8BxyQKeyJV6nhes2WkUpGkObKoz4LhNaEZLtnwrTvh09SLJGvH1aBN1TrzGO/O07wwjdMXHYxq5vnCNH0KEFwdn+no3iaE8rVTGxsJDsAZ5kWH65gEFQC2u+lczvRgLD7IP2I8+GuGE6LD5QIOppMoRSzDm9dMTHRpZOoef73S0J5tc1eiVpA1ilSht43vGViCC0imR9/jxpJnmE2QqF6DNKdNWUCyKojguT435aPe2K81uba/3N4M4UxFVDZ/Vm2FikPHVPdB1mbmnhxjOPqvQs0LjQCmkTz/Bi/PrS5nWu11xLI/sisNLrl60P+VRW+ql8SFgN9KnqJxmRmxIo/1YgDJG7voLgMkFt51+IeKQ5CuVkPKWEMb6laaaGPMODAw+DCC49ZyGnMwLNSrBiVruSNVA6vCCXyweNEkHn/WVKIE085nXkaYjwBKg6PoqNN/sDo2RHgiOMGm7+eJA7A92YQgqPDOVQHtelvmdSAVpk5KnXwXOPCb7AZR+1mD8MUAtOD3Pk/jt6AmJMTNiTCWGtqxicDd2GSBM7oV/TU0/UwF5AEhteT5Cbxf8U4zns4cuF2R2UuRwCRoO6LZsyYFh4p+Q== 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:(4636009)(136003)(376002)(39860400002)(346002)(396003)(46966006)(36840700001)(8676002)(55016002)(9686003)(7696005)(6506007)(82310400003)(53546011)(52536014)(19627235002)(83380400001)(70586007)(45080400002)(966005)(478600001)(26005)(5660300002)(70206006)(336012)(356005)(47076005)(54906003)(36860700001)(110136005)(33656002)(4326008)(82740400003)(81166007)(186003)(86362001)(8936002)(2906002)(316002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2021 10:57:29.0303 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7835b2db-a915-4137-5ba6-08d91ea2b93e 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: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB3315 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U3VubnksDQoNCkkgdGhpbmsgdGhlIGlzc3VlIGlzIG91dGxvb2sgcmVtb3ZpbmcgdGhlIGV4dHJh IGxpbmUgYnJlYWtzLiBUbyBkaXNhYmxlIHRoaXMgZG8gdGhlIGZvbGxvd2luZyAocGVyIGh0dHBz Oi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL291dGxvb2svdHJvdWJsZXNob290L21lc3NhZ2Ut Ym9keS9saW5lLWJyZWFrcy1hcmUtcmVtb3ZlZC1pbi1wb3N0cy1tYWRlLWluLXBsYWluLXRleHQp DQoNCk9wZW4gT3V0bG9vay4NCk9uIHRoZSBGaWxlIHRhYiwgc2VsZWN0IE9wdGlvbnMuDQpJbiB0 aGUgT3B0aW9ucyBkaWFsb2csIHNlbGVjdCBNYWlsLg0KSW4gdGhlIE1lc3NhZ2UgZm9ybWF0IHNl Y3Rpb24sIGNsZWFyIHRoZSBSZW1vdmUgZXh0cmEgbGluZSBicmVha3MgaW4gcGxhaW4gdGV4dCBt ZXNzYWdlcyBjaGVjayBib3guDQpTZWxlY3QgT0suDQoNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBNYXJjaW4gV29qdGFzIDxtd0BzZW1paGFsZi5jb20+DQo+IFNlbnQ6 IE1vbmRheSwgTWF5IDI0LCAyMDIxIDQ6NTEgQU0NCj4gVG86IGVkazItZGV2ZWwtZ3JvdXBzLWlv IDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz47DQo+IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbg0KPiBD YzogU3VubnkgV2FuZyA8U3VubnkuV2FuZ0Bhcm0uY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4g PG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgTGVpZiBMaW5kaG9sbSA8bGVpZkBudXZpYWlu Yy5jb20+OyBBcmQNCj4gQmllc2hldXZlbCA8YXJkYit0aWFub2NvcmVAa2VybmVsLm9yZz47IFNh bWVyIEVsLUhhai1NYWhtb3VkDQo+IDxTYW1lci5FbC1IYWotTWFobW91ZEBhcm0uY29tPjsgR3J6 ZWdvcnogQmVybmFja2kNCj4gPGdqYkBzZW1paGFsZi5jb20+OyB1cHN0cmVhbUBzZW1paGFsZi5j b20NCj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6IEFkZCBu ZXcgMTY1NTAtY29tcGF0aWJsZQ0KPiBTZXJpYWwgUG9ydCBTdWJ0eXBlcyB0byBEQkcyDQo+DQo+ IEhpIExpbWluZywNCj4NCj4gcG9uLiwgMjQgbWFqIDIwMjEgbyAxMDo0MiBnYW9saW1pbmcgPGdh b2xpbWluZ0BieW9zb2Z0LmNvbS5jbj4gbmFwaXNhxYIoYSk6DQo+ID4NCj4gPiBZb3UgY2FuIHJ1 biBCYXNlVG9vbHNcU2NyaXB0c1xQYXRjaENoZWNrLnB5IC0xIHRvIGNoZWNrIHRoZSBwYXRjaCBm b3JtYXQuDQo+ID4NCj4NCj4gU3VyZSwgSSByYW4gaXQgcHJpb3IgdG8gc3VibWlzc2lvbi4NCj4N Cj4gQmVzdCByZWdhcmRzLA0KPiBNYXJjaW4NCj4NCj4gPiBUaGFua3MNCj4gPiBMaW1pbmcNCj4g PiA+IC0tLS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiA+IOWPkeS7tuS6ujogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiDku6PooaggU3VubnkNCj4gV2FuZw0KPiA+ ID4g5Y+R6YCB5pe26Ze0OiAyMDIx5bm0NeaciDI05pelIDExOjIxDQo+ID4gPiDmlLbku7bkuro6 IE1hcmNpbiBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT4NCj4gPiA+IOaKhOmAgTogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tOw0KPiA+ID4gbGVpZkBudXZp YWluYy5jb207IGFyZGIrdGlhbm9jb3JlQGtlcm5lbC5vcmc7IFNhbWVyIEVsLUhhai1NYWhtb3Vk DQo+ID4gPiA8U2FtZXIuRWwtSGFqLU1haG1vdWRAYXJtLmNvbT47IGdqYkBzZW1paGFsZi5jb207 DQo+ID4gPiB1cHN0cmVhbUBzZW1paGFsZi5jb207IGdhb2xpbWluZ0BieW9zb2Z0LmNvbS5jbjsg U3VubnkgV2FuZw0KPiA+ID4gPFN1bm55LldhbmdAYXJtLmNvbT4NCj4gPiA+IOS4u+mimDogUmU6 IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6IEFkZCBuZXcgMTY1NTAtY29tcGF0aWJs ZQ0KPiA+ID4gU2VyaWFsIFBvcnQgU3VidHlwZXMgdG8gREJHMg0KPiA+ID4NCj4gPiA+IEFkZCBM aW1pbmcncyBuZXcgZW1haWwuDQo+ID4gPg0KPiA+ID4gSGkgTWFyY2luLA0KPiA+ID4NCj4gPiA+ IFRoZXJlIHNlZW1zIG5vIExGICgwQSkuDQo+ID4gPiAxLiBGcm9tIHRoZSBwYXRjaCBJIGdvdCBi ZWxvdyBpbiB0aGlzIGVtYWlsLCBzZXZlcmFsIGxpbmVzIGdvdCBtZXJnZWQgaW50bw0KPiBvbmUN Cj4gPiA+IGxpbmUuDQo+ID4gPiA+ICAjZGVmaW5lDQo+ID4gPiBFRklfQUNQSV9EQkcyX1BPUlRf U1VCVFlQRV9TRVJJQUxfQVJNX1NCU0FfR0VORVJJQ19VQVJUDQo+ID4gPiAweDAwMGUgI2RlZmlu ZSAgIEVGSV9BQ1BJX0RCRzJfUE9SVF9TVUJUWVBFX1NFUklBTF9EQ0MNCj4gPiA+IDB4MDAwZiAj ZGVmaW5lDQo+IEVGSV9BQ1BJX0RCRzJfUE9SVF9TVUJUWVBFX1NFUklBTF9CQ00yODM1X1VBUlQN Cj4gPiA+IDB4MDAxMCsjZGVmaW5lDQo+ID4gPiBFRklfQUNQSV9EQkcyX1BPUlRfU1VCVFlQRV9T RVJJQUxfMTY1NTBfV0lUSF9HQVMNCj4gPiA+IDB4MDAxMiAjZGVmaW5lIEVGSV9BQ1BJX0RCRzJf UE9SVF9UWVBFXzEzOTQNCj4gPiA+IDB4ODAwMSAjZGVmaW5lICAgRUZJX0FDUElfREJHMl9QT1JU X1NVQlRZUEVfMTM5NF9TVEFOREFSRA0KPiA+ID4gMHgwMDAwICNkZWZpbmUgRUZJX0FDUElfREJH Ml9QT1JUX1RZUEVfVVNCDQo+ID4gPg0KPiA+ID4gMi4gSW4NCj4gPiA+DQo+IGh0dHBzOi8vZWRr Mi5ncm91cHMuaW8vZy9kZXZlbC90b3BpYy9wYXRjaF8xXzFfbWRlcGtnX2FkZF9uZXcvODMwMjQ5 DQo+ID4gPiAwMz9wPSwsLDIwLDAsMCwwOjpyZWNlbnRwb3N0ZGF0ZSUyRnN0aWNreSwsLDIwLDIs MCw4MzAyNDkwMywgSSBzYXcgIj0wRCINCj4gPiA+IGFwcGVuZGluZyB0byBlYWNoIGxpbmUuIEkn bSBub3Qgc3VyZSBpZiB0aGlzIGlzIHJlbGV2YW50Lg0KPiA+ID4NCj4gPiA+IE1vcmVvdmVyLCBJ IGRvbid0IHNlZSAjMSBhbmQgIzIgaW4gYW5vdGhlciBzaW1pbGFyIGNvZGUgY2hhbmdlDQo+ID4g Pg0KPiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS83NTI4Mz9wPSwsLDIw LDAsMCwwOjpyZWxldmFuY2UsLE0NCj4gZA0KPiA+ID4NCj4gZVBrZyUzQStVcGRhdGUrREJHMith bmQrU1BDUitoZWFkZXIrd2l0aCtOVklESUErMTY1NTArU3VidHlwZSwNCj4gMg0KPiA+ID4gMCwy LDAsODI5MTkwMzIuDQo+ID4gPg0KPiA+ID4gT2YgY291cnNlLCBpZiB0aGlzIHdvbid0IGNhdXNl IGFueSBpc3N1ZSB3aXRoIHB1c2hpbmcgdGhlIHBhdGNoLCBJJ20gdG90YWxseQ0KPiBmaW5lDQo+ ID4gPiB3aXRoIHRoaXMuDQo+ID4gPg0KPiA+ID4gUmV2aWV3ZWQtYnk6IFN1bm55IFdhbmcgPHN1 bm55LndhbmdAYXJtLmNvbT4NCj4gPiA+DQo+ID4gPg0KPiA+ID4gQmVzdCBSZWdhcmRzLA0KPiA+ ID4gU3VubnkgV2FuZw0KPiA+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiBGcm9tOiBNYXJjaW4gV29qdGFzIDxtd0BzZW1paGFsZi5jb20+DQo+ID4gPiBTZW50OiBN b25kYXksIE1heSAyNCwgMjAyMSAxMDoyMSBBTQ0KPiA+ID4gVG86IFN1bm55IFdhbmcgPFN1bm55 LldhbmdAYXJtLmNvbT4NCj4gPiA+IENjOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgbWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb207DQo+IGxlaWZAbnV2aWFpbmMuY29tOw0KPiA+ID4gYXJkYit0aWFu b2NvcmVAa2VybmVsLm9yZzsgU2FtZXIgRWwtSGFqLU1haG1vdWQNCj4gPiA+IDxTYW1lci5FbC1I YWotTWFobW91ZEBhcm0uY29tPjsgZ2piQHNlbWloYWxmLmNvbTsNCj4gPiA+IHVwc3RyZWFtQHNl bWloYWxmLmNvbQ0KPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBN ZGVQa2c6IEFkZCBuZXcgMTY1NTAtDQo+IGNvbXBhdGlibGUNCj4gPiA+IFNlcmlhbCBQb3J0IFN1 YnR5cGVzIHRvIERCRzINCj4gPiA+DQo+ID4gPiBIaSBTdW5ueSwNCj4gPiA+DQo+ID4gPg0KPiA+ ID4gcG9uLiwgMjQgbWFqIDIwMjEgbyAwNDowOSBTdW5ueSBXYW5nIDxTdW5ueS5XYW5nQGFybS5j b20+DQo+IG5hcGlzYcWCKGEpOg0KPiA+ID4gPg0KPiA+ID4gPiBMb29rcyBnb29kLCBNYXJjaW4u DQo+ID4gPiA+IEhvd2V2ZXIsIGl0IGxvb2tzIGxpa2Ugc29tZXRoaW5nIHdyb25nIHdpdGggdGhl IGxpbmUtZW5kaW5nLiBDb3VsZCB5b3UNCj4gPiA+IGNoZWNrIGlmIHlvdXIgbGluZS1lbmRpbmcg c2V0dGluZyBpcyBDUi9MRj8gRGlkIHlvdSB1c2UNCj4gPiA+IC9lZGsyL0Jhc2VUb29scy9TY3Jp cHRzL1BhdGNoQ2hlY2sucHkgdG9vbCB0byBjaGVjayB5b3VyIHBhdGNoPyBJZiBub3QsDQo+IGNv dWxkDQo+ID4gPiB5b3UgdXNlIGl0PyBJIGV4cGVjdCB0aGlzIHRvb2wgY2FuIGNhdGNoIHRoZSBs aW5lLWVuZGluZyBwcm9ibGVtLg0KPiA+ID4NCj4gPiA+IFRoZSBsaW5lIGVuZGluZ3MgYXJlIGZp bmUgaW4gbXkgcmVwbywgSSBnZW5lcmF0ZWQgYW5kIHNlbnQgdGhlIHBhdGNoIGFzDQo+IHVzdWFs Lg0KPiA+ID4NCj4gPiA+IEFuZCBvZiBjb3Vyc2UgcHJpb3IgdG8gc2VuZGluZyBJIHJhbiBQYXRj aENoZWNrLnB5IC0gaXQgY29tcGxhaW5zIG9ubHkNCj4gYWJvdXQNCj4gPiA+IHRvbyBsb25nIFVS TCBsaW5lIGluIHRoZSBjb21taXQgbWVzc2FnZSwgYnV0IHRoZSBsaW5lLWVuZGluZ3MgYXJlIG9r Lg0KPiA+ID4NCj4gPiA+ICQgcHl0aG9uMw0KPiA+ID4gL2hvbWUvbXcvZ2l0L2VkazItd29ya3Nw YWNlL2VkazIvQmFzZVRvb2xzL1NjcmlwdHMvUGF0Y2hDaGVjay5weQ0KPiAtMQ0KPiA+ID4gQ2hl Y2tpbmcgZ2l0IGNvbW1pdDogSEVBRA0KPiA+ID4gTWRlUGtnOiBBZGQgbmV3IDE2NTUwLWNvbXBh dGlibGUgU2VyaWFsIFBvcnQgU3VidHlwZXMgdG8gREJHMg0KPiBXQVJOSU5HDQo+ID4gPiAtIExp bmUgOSBvZiBjb21taXQgbWVzc2FnZSBpcyB0b28gbG9uZyAoOTEgPj0gNzYpLg0KPiA+ID4gWzFd DQo+ID4gPiBodHRwczovL2RvY3MubWljcm9zb2Z0LmNvbS9lbi11cy93aW5kb3dzLQ0KPiBoYXJk d2FyZS9kcml2ZXJzL2JyaW5ndXAvYWNwaS1kDQo+ID4gPiBlYnVnLXBvcnQtdGFibGUNCj4gPiA+ IFRoZSBjb21taXQgbWVzc2FnZSBmb3JtYXQgcGFzc2VkIGFsbCBjaGVja3MuDQo+ID4gPiBUaGUg Y29kZSBwYXNzZWQgYWxsIGNoZWNrcy4NCj4gPiA+DQo+ID4gPiBEbyB5b3UgY2hlY2sgdGhlIGxp bmUgZW5kaW5ncyBpbiBhIGRpZmZlcmVudCB3YXk/DQo+ID4gPg0KPiA+ID4gQmVzdCByZWdhcmRz LA0KPiA+ID4gTWFyY2luDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0IFJlZ2FyZHMsDQo+ ID4gPiA+IFN1bm55IFdhbmcNCj4gPiA+ID4NCj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gTWFyY2luDQo+ID4gPiA+IFdvanRhcyB2aWEgZ3JvdXBz LmlvDQo+ID4gPiA+IFNlbnQ6IFN1bmRheSwgTWF5IDIzLCAyMDIxIDU6MTUgUE0NCj4gPiA+ID4g VG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+IENjOiBsaW1pbmcuZ2FvQGludGVsLmNv bTsgbWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb207DQo+ID4gPiA+IGxlaWZAbnV2aWFpbmMuY29t OyBhcmRiK3RpYW5vY29yZUBrZXJuZWwub3JnOyBTYW1lciBFbC1IYWotDQo+IE1haG1vdWQNCj4g PiA+ID4gPFNhbWVyLkVsLUhhai1NYWhtb3VkQGFybS5jb20+OyBTdW5ueSBXYW5nDQo+ID4gPiA8 U3VubnkuV2FuZ0Bhcm0uY29tPjsNCj4gPiA+ID4gZ2piQHNlbWloYWxmLmNvbTsgdXBzdHJlYW1A c2VtaWhhbGYuY29tOyBNYXJjaW4gV29qdGFzDQo+ID4gPiA+IDxtd0BzZW1paGFsZi5jb20+DQo+ ID4gPiA+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMS8xXSBNZGVQa2c6IEFkZCBuZXcg MTY1NTAtY29tcGF0aWJsZQ0KPiA+ID4gPiBTZXJpYWwgUG9ydCBTdWJ0eXBlcyB0byBEQkcyDQo+ ID4gPiA+DQo+ID4gPiA+IFRoZSBNaWNyb3NvZnQgRGVidWcgUG9ydCBUYWJsZSAyIChEQkcyKSBz cGVjaWZpY2F0aW9uIHJldmlzaW9uIE1heSAzMSwNCj4gPiA+ID4gMjAxNyBhZGRzIHN1cHBvcnQg Zm9yIDE2NTUwLWNvbXBhdGlibGUgU2VyaWFsIFBvcnQgU3VidHlwZSB3aXRoDQo+ID4gPiA+IHBh cmFtZXRlcnMgZGVmaW5lZCBpbiBHZW5lcmljIEFkZHJlc3MgU3RydWN0dXJlIChHQVMpIFsxXQ0K PiA+ID4gPg0KPiA+ID4gPiBSZWZsZWN0IHRoYXQgaW4gdGhlIEVESzIgaGVhZGVycy4NCj4gPiA+ ID4NCj4gPiA+ID4gWzFdDQo+ID4gPiA+IGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVz L3dpbmRvd3MtDQo+IGhhcmR3YXJlL2RyaXZlcnMvYnJpbmd1cC9hY3BpDQo+ID4gPiA+IC1kZWJ1 Zy1wb3J0LXRhYmxlDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmNpbiBXb2p0 YXMgPG13QHNlbWloYWxmLmNvbT4NCj4gPiA+ID4gLS0tDQo+ID4gPiA+ICBNZGVQa2cvSW5jbHVk ZS9JbmR1c3RyeVN0YW5kYXJkL0RlYnVnUG9ydDJUYWJsZS5oDQo+ID4gPiB8IDEgKw0KPiA+ID4g Pg0KPiBNZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1NlcmlhbFBvcnRDb25zb2xlUmVk aXJlY3Rpb25UYWJsZS5oIHwNCj4gPiA+ID4gNSArKysrKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFu Z2VkLCA2IGluc2VydGlvbnMoKykNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL01kZVBr Zy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvRGVidWdQb3J0MlRhYmxlLmgNCj4gPiA+ID4gYi9N ZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL0RlYnVnUG9ydDJUYWJsZS5oDQo+ID4gPiA+ IGluZGV4IDNmYWEzMGI3NmEuLjljY2ZjMWIxZWUgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL01kZVBr Zy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvRGVidWdQb3J0MlRhYmxlLmgNCj4gPiA+ID4gKysr IGIvTWRlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9EZWJ1Z1BvcnQyVGFibGUuaA0KPiA+ ID4gPiBAQCAtNDcsNiArNDcsNyBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiA+ICAjZGVmaW5l DQo+ID4gPiBFRklfQUNQSV9EQkcyX1BPUlRfU1VCVFlQRV9TRVJJQUxfQVJNX1NCU0FfR0VORVJJ Q19VQVJUDQo+ID4gPiAweDAwMGUgI2RlZmluZSAgIEVGSV9BQ1BJX0RCRzJfUE9SVF9TVUJUWVBF X1NFUklBTF9EQ0MNCj4gPiA+IDB4MDAwZiAjZGVmaW5lDQo+IEVGSV9BQ1BJX0RCRzJfUE9SVF9T VUJUWVBFX1NFUklBTF9CQ00yODM1X1VBUlQNCj4gPiA+IDB4MDAxMCsjZGVmaW5lDQo+ID4gPiBF RklfQUNQSV9EQkcyX1BPUlRfU1VCVFlQRV9TRVJJQUxfMTY1NTBfV0lUSF9HQVMNCj4gPiA+IDB4 MDAxMiAjZGVmaW5lIEVGSV9BQ1BJX0RCRzJfUE9SVF9UWVBFXzEzOTQNCj4gPiA+IDB4ODAwMSAj ZGVmaW5lICAgRUZJX0FDUElfREJHMl9QT1JUX1NVQlRZUEVfMTM5NF9TVEFOREFSRA0KPiA+ID4g MHgwMDAwICNkZWZpbmUgRUZJX0FDUElfREJHMl9QT1JUX1RZUEVfVVNCDQo+ID4gPiAweDgwMDJk aWZmIC0tZ2l0DQo+ID4gPg0KPiBhL01kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvU2Vy aWFsUG9ydENvbnNvbGVSZWRpcmVjdGlvblRhYmxlLmgNCj4gPiA+DQo+IGIvTWRlUGtnL0luY2x1 ZGUvSW5kdXN0cnlTdGFuZGFyZC9TZXJpYWxQb3J0Q29uc29sZVJlZGlyZWN0aW9uVGFibGUuaA0K PiA+ID4gPiBpbmRleCAyMDY2Yzc4OTVlLi43Nzk2Nzk2YWZlIDEwMDY0NA0KPiA+ID4gPiAtLS0N Cj4gPiA+ID4NCj4gYS9NZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1NlcmlhbFBvcnRD b25zb2xlUmVkaXJlY3Rpb25UYWJsZS5oDQo+ID4gPiA+ICsrKw0KPiA+ID4NCj4gYi9NZGVQa2cv SW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1NlcmlhbFBvcnRDb25zb2xlUmVkaXJlY3Rpb25UYWJs ZS4NCj4gPiA+ID4gKysrIGgNCj4gPiA+ID4gQEAgLTEwMCw2ICsxMDAsMTEgQEAgdHlwZWRlZiBz dHJ1Y3Qgew0KPiA+ID4gPiAgLy8vICNkZWZpbmUNCj4gPiA+DQo+IEVGSV9BQ1BJX1NFUklBTF9Q T1JUX0NPTlNPTEVfUkVESVJFQ1RJT05fVEFCTEVfSU5URVJGQUNFX1RZUEVfDQo+ID4gPiBCQ00y ODM1X1VBUlQgICAgICAgICAgICAgIDB4MTAgKy8vLysvLy8gMTY1NTAtY29tcGF0aWJsZSB3aXRo DQo+ID4gPiBwYXJhbWV0ZXJzIGRlZmluZWQgaW4gR2VuZXJpYyBBZGRyZXNzIFN0cnVjdHVyZSsv Ly8rI2RlZmluZQ0KPiA+ID4NCj4gRUZJX0FDUElfU0VSSUFMX1BPUlRfQ09OU09MRV9SRURJUkVD VElPTl9UQUJMRV9JTlRFUkZBQ0VfVFlQRV8NCj4gPiA+IDE2NTUwX1dJVEhfR0FTICAgICAgICAg ICAgMHgxMisgLy8gLy8gSW50ZXJydXB0IFR5cGUgLy8tLQ0KPiA+ID4gPiAyLjI5LjANCj4gPiA+ ID4NCj4gPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gLT0tPS09LT0tPS09DQo+ID4gPiA+IEdyb3Vw cy5pbyBMaW5rczogWW91IHJlY2VpdmUgYWxsIG1lc3NhZ2VzIHNlbnQgdG8gdGhpcyBncm91cC4N Cj4gPiA+ID4gVmlldy9SZXBseSBPbmxpbmUgKCM3NTQ2NCk6DQo+ID4gPiA+IGh0dHBzOi8vZWRr Mi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzc1NDY0DQo+ID4gPiA+IE11dGUgVGhpcyBUb3Bp YzogaHR0cHM6Ly9ncm91cHMuaW8vbXQvODMwMjQ5MDMvNTk4NTA5Nw0KPiA+ID4gPiBHcm91cCBP d25lcjogZGV2ZWwrb3duZXJAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gVW5zdWJzY3JpYmU6IGh0 dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC91bnN1Yg0KPiA+ID4gW1N1bm55LldhbmdAYXJt LmNvbV0NCj4gPiA+ID4gLT0tPS09LT0tPS09DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+IElN UE9SVEFOVCBOT1RJQ0U6IFRoZSBjb250ZW50cyBvZiB0aGlzIGVtYWlsIGFuZCBhbnkgYXR0YWNo bWVudHMNCj4gYXJlDQo+ID4gPiBjb25maWRlbnRpYWwgYW5kIG1heSBhbHNvIGJlIHByaXZpbGVn ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZA0KPiByZWNpcGllbnQsDQo+ID4gPiBwbGVh c2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUg Y29udGVudHMgdG8NCj4gYW55DQo+ID4gPiBvdGhlciBwZXJzb24sIHVzZSBpdCBmb3IgYW55IHB1 cnBvc2UsIG9yIHN0b3JlIG9yIGNvcHkgdGhlIGluZm9ybWF0aW9uIGluDQo+IGFueQ0KPiA+ID4g bWVkaXVtLiBUaGFuayB5b3UuDQo+ID4gPiBJTVBPUlRBTlQgTk9USUNFOiBUaGUgY29udGVudHMg b2YgdGhpcyBlbWFpbCBhbmQgYW55IGF0dGFjaG1lbnRzIGFyZQ0KPiA+ID4gY29uZmlkZW50aWFs IGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQN Cj4gcmVjaXBpZW50LA0KPiA+ID4gcGxlYXNlIG5vdGlmeSB0aGUgc2VuZGVyIGltbWVkaWF0ZWx5 IGFuZCBkbyBub3QgZGlzY2xvc2UgdGhlIGNvbnRlbnRzIHRvDQo+IGFueQ0KPiA+ID4gb3RoZXIg cGVyc29uLCB1c2UgaXQgZm9yIGFueSBwdXJwb3NlLCBvciBzdG9yZSBvciBjb3B5IHRoZSBpbmZv cm1hdGlvbiBpbg0KPiBhbnkNCj4gPiA+IG1lZGl1bS4gVGhhbmsgeW91Lg0KPiA+ID4NCj4gPiA+ DQo+ID4gPg0KPiA+ID4NCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4gDQo+ID4NCj4gPg0K SU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZW1haWwgYW5kIGFueSBhdHRh Y2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBiZSBwcml2aWxlZ2VkLiBJZiB5 b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5k ZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUgY29udGVudHMgdG8gYW55IG90 aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Igc3RvcmUgb3IgY29weSB0aGUg aW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lg0K