From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.12825.1594784690731411502 for ; Tue, 14 Jul 2020 20:44:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=pKKHQILG; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: tzallVVWBvzFLZj8q6ftkFie2ixUCsfjGULGfdK5oqS0A+6J5vUnzP5qY2ist+ejfqK4uJK+/m lEykFqGY75ig== X-IronPort-AV: E=McAfee;i="6000,8403,9682"; a="147083105" X-IronPort-AV: E=Sophos;i="5.75,353,1589266800"; d="scan'208";a="147083105" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Jul 2020 20:44:50 -0700 IronPort-SDR: uME7VaUVZ69XkqsjWPT8BpYghWyuoYqx0rOJuy6+mKp20GwjfEtm+YExltduR0ACc1zEiHvFtz jrtDZLtXHN4w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,353,1589266800"; d="scan'208";a="429983089" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by orsmga004.jf.intel.com with ESMTP; 14 Jul 2020 20:44:49 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Jul 2020 20:44:49 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 14 Jul 2020 20:44:49 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 14 Jul 2020 20:44:49 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 14 Jul 2020 20:43:45 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mAsK+3KGpQfSoK75X6JOSKhl25qQa28g8xfSHwKZzf6m3jz6+yuziwMnzsQJ5DUNwdB6y14fB8BEya33WliMKeaLTh06bsW6OewI98Vm/kVRFfm3ldIH589pBvppkZ1eD2Vt3G99mGGkw2Ae6nf0qnuV7HHSniEkNbH/7egr1oKiSS8A25YaEM9IowkUCCLXMkzf7TwjkdgPsAXnlrMLQfGrgjg+RPxKIoPjCTZEwsi3I6UHZ2zREHisaamRzb2ecSTCDa6xzD/UKKWa6ZTMsu35tSyWfYdOfqshnGv5mOpG1RZM7vc7gSH6JH0yAme+qrt18MMt6AyN4CJCgtbLZA== 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=Z88tBhELnMN6u5kHNCsuO/K2Pe9t6MQ8DS4TyTZiZwE=; b=DJiX3pxVDrkwH3Eo/6QwEQo0BIZoaduJ6ANb/ac2hyIvi75vwC5W7BcFiNTykDR0YcCY4n0tEKtXDiE551k8o76EuW6eMQxuCTDIr4DpljwbYxzT/GmZ/z3syWRcN+8zg62UXmuAuCYt5xVBPcww9nuryH7SWH3SmzPwa8CQLrSTrGtGWWNrl/BHttdOWtQTtvAmdK7R19/skLM35Ul3nXjXVDjsHfcnf2edlGHtxrBZDysDlgsQyLaty3vvixmD8WKvgQOikqlAY/MLiByNbn/1SphzqvEBfEJZKMhand0zTKwkn2Iuet2oVeva+3yiWe50Rq4qhuDziqLQ/VyXjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z88tBhELnMN6u5kHNCsuO/K2Pe9t6MQ8DS4TyTZiZwE=; b=pKKHQILGwqZkdqS4+Ja7OREoBoEuySo5kun1HnKKI5mnAvBr7pBKsD5BM4zNlYP3G4u0LfO4n3omf6ar+FlIjcc4sR/grohMXmNts3XeMJyll1TzYhVk/yOCw2IYnapv8EFJL6pIujUy0Y0M2EBymdxIMUPEwVtSkNiIJIkB2UY= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by BL0PR11MB3282.namprd11.prod.outlook.com (2603:10b6:208:6a::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Wed, 15 Jul 2020 03:43:41 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.3174.025; Wed, 15 Jul 2020 03:43:41 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "Javeed, Ashraf" , "Kinney, Michael D" CC: "Gao, Liming" Subject: =?UTF-8?B?UmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8yXSDvu79NZGVQa2ctSW5kdXN0cnlTdGFuZGFyZDogQ1hMIDEuMSBTcGVjaWZpY2F0aW9uIHJlZ2lzdGVycw==?= Thread-Topic: =?utf-8?B?W2VkazItZGV2ZWxdIFtQQVRDSCBWMSAxLzJdIO+7v01kZVBrZy1JbmR1c3Ry?= =?utf-8?Q?yStandard:_CXL_1.1_Specification_registers?= Thread-Index: AQHWV3AewVhWcToXnUOTjAtsxbyUSKkIAQuA Date: Wed, 15 Jul 2020 03:43:41 +0000 Message-ID: References: <20200711104009.15296-1-ashraf.javeed@intel.com> <20200711104009.15296-2-ashraf.javeed@intel.com> In-Reply-To: <20200711104009.15296-2-ashraf.javeed@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [24.19.191.44] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f9f8ffb3-8955-448b-b209-08d828714441 x-ms-traffictypediagnostic: BL0PR11MB3282: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6430; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oIAMvsUGj+YhJ6MsWmQZp/T6CkPVLJ39u9GHLjYeFICImoNFkQo2sI6SnZwNt005vowE0SyOeL5K4WInqQbTOPPjDVg2xHEPKyNd1865eeUwisWVmcRe2Yyku7VtZlNNxRZZVU94EgV762Jv6mCSFOBTQAGsC66BFHnOTkzffK+v77XGrr/IU4ByLvM1V5zZY+5PH5bu48cDr14ZVM1dB9IDAGuWqE9SfKc00b/OKpBDtU90RLmsxmtNr82b27LptgFdcPLHRXQD69KMCkVLQlf2HjSeC7BuaBfHD1ilYy7exEokgfV4+Ptrflaa/vAcg5srN2FfhiRuoM8EtwqUeNVW9NwABQh+R54ISOLhILtg/Orc2sAviDErh+M51z7ZYA8ltIjJcUnYVEkm3y5QRQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(366004)(39860400002)(376002)(346002)(136003)(4326008)(478600001)(966005)(55016002)(107886003)(2906002)(110136005)(66946007)(66556008)(66446008)(64756008)(66476007)(76116006)(186003)(316002)(7696005)(9686003)(53546011)(6506007)(19627235002)(26005)(52536014)(8936002)(5660300002)(33656002)(30864003)(86362001)(83380400001)(71200400001)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: uCqKM/fbT87C8VRbTXWgnyQkMp7XTd8pu9btK8fjkim1uEA9YWqCN1mFxIFw5VJrFOxgHBZcVUKuxNalrd9whdFintpSdLec4yv/biUZX+F8loC3KMxftLs+ufZzVTDLzhbURoq0SPFQD/k7xUTJ0EbFzZEROl9KCeOB1LYx8x3jcKGeoXueGAH2PD10rxNa1/xWf72PRTLyt7ZUFz/+DBx75vlI2jCywm2NpsvbUHLV1komuG6NrFFGLZ0NPy37OmwiAVLph92CdkiRa3CrHMCLxr/9M2mUSZXGVTpDHKIo4tDBAkJxJoKfJK2zsatGI1RHbWqJvG7WTGhesiIH7rGFMAvnrxBBj0OgncM3MjjOq7l7qgEVhBR+mNaZEJXa3HF1zgbSzKlhycbfF6vEJer3O7O0+MBBauuxkukfThiRxQjIkrFTCT4ctjstOipG85n9PGFwCYtW8smKKjDIt9EIe3lhMYkzFZVTfWB4Rt0= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4461.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f9f8ffb3-8955-448b-b209-08d828714441 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jul 2020 03:43:41.0848 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RGbEq7RADE12EpB5G9SK0Q1nZpUAd8fCz866JTUM8TddZMJ5of7t3zuim0nvdk8q2wm+o/jlgJEScuRqEoqExRw1Me0yl90OW5DVza06+IA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR11MB3282 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgQXJzaGFmLA0KDQoxKSBQY2kuaCAtIENvcHlyaWdodCBzaG91bGQgYmUgdXBkYXRlZCB0byAy MDIwDQoyKSBXaHkgaXMgZGVmaW5lIGZvciBDWExfRFZTRUNfVkVORE9SX0lEIGxpc3RlZCBvbiBp dHMgb3duDQogICBpbiBDeGwuaD8gIFdhcyB0aGlzIGFkZGVkIHRvIHRoZSBzdGFuZGFyZCBhZnRl ciB0aGUgQ1hMIDEuMQ0KICAgc3BlY3M/DQozKSBUaGVyZSBhcmUgYSBmZXcgbWlub3IgZm9ybWF0 dGluZyBpc3N1ZXMgd2l0aCB0aGUgZmllbGQgDQogICBpbmRlbnRhdGlvbnMgZm9yIHNvbWUgb2Yg dGhlIGJpdGZpZWxkIHN0cnVjdHMuICBPbmUgZXhhbXBsZToNCg0KdHlwZWRlZiB1bmlvbiB7DQog IHN0cnVjdCB7DQogIFVJTlQxNiBDYWNoZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgMA0KICBVSU5UMTYgSW9FbmFibGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsgLy8gYml0IDENCiAg VUlOVDE2IE1lbUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IDE7IC8vIGJpdCAyDQogIFVJTlQxNiBDeGxTeW5jQnlwYXNzRW5hYmxlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgMw0KICBVSU5UMTYgRHJpZnRC dWZmZXJFbmFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsgLy8g Yml0IDQNCiAgVUlOVDE2IFJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IDM7IC8vIGJpdCA1Li43DQogIFVJTlQxNiBDeGxDb3JyZWN0YWJsZVBy b3RvY29sSWRGcmFtaW5nRXJyb3IgICAgICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgOA0KICBV SU5UMTYgQ3hsVW5jb3JyZWN0YWJsZVByb3RvY29sSWRGcmFtaW5nRXJyb3IgICAgICAgICAgICAg ICAgIDogMTsgLy8gYml0IDkNCiAgVUlOVDE2IEN4bFVuZXhwZWN0ZWRQcm90b2NvbElkRHJvcHBl ZCAgICAgICAgICAgICAgICAgICAgICAgICA6IDE7IC8vIGJpdCAxMA0KICBVSU5UMTYgUmVzZXJ2 ZWQyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogNTsgLy8g Yml0IDExLi4xNQ0KICB9Qml0czsNCiAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVaW50MTY7DQp9IENYTF8xXzFfRFZTRUNfRkxF WF9CVVNfUE9SVF9TVEFUVVM7DQoNClNob3VsZCBiZToNCg0KdHlwZWRlZiB1bmlvbiB7DQogIHN0 cnVjdCB7DQogICAgVUlOVDE2IENhY2hlRW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgMA0KICAgIFVJTlQxNiBJb0VuYWJsZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsgLy8gYml0IDENCiAgICBV SU5UMTYgTWVtRW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IDE7IC8vIGJpdCAyDQogICAgVUlOVDE2IEN4bFN5bmNCeXBhc3NFbmFibGUgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgMw0KICAgIFVJTlQxNiBEcmlmdEJ1 ZmZlckVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMTsgLy8gYml0 IDQNCiAgICBVSU5UMTYgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IDM7IC8vIGJpdCA1Li43DQogICAgVUlOVDE2IEN4bENvcnJlY3RhYmxlUHJv dG9jb2xJZEZyYW1pbmdFcnJvciAgICAgICAgICAgICAgICAgOiAxOyAvLyBiaXQgOA0KICAgIFVJ TlQxNiBDeGxVbmNvcnJlY3RhYmxlUHJvdG9jb2xJZEZyYW1pbmdFcnJvciAgICAgICAgICAgICAg IDogMTsgLy8gYml0IDkNCiAgICBVSU5UMTYgQ3hsVW5leHBlY3RlZFByb3RvY29sSWREcm9wcGVk ICAgICAgICAgICAgICAgICAgICAgICA6IDE7IC8vIGJpdCAxMA0KICAgIFVJTlQxNiBSZXNlcnZl ZDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogNTsgLy8gYml0 IDExLi4xNQ0KICB9Qml0czsNCiAgVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBVaW50MTY7DQp9IENYTF8xXzFfRFZTRUNfRkxFWF9C VVNfUE9SVF9TVEFUVVM7DQoNCjQpIFRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIHRoYXQgcHJvdmlk ZXMgYSBsb2cgbG9va3MgYSBsaXR0bGUgb2RkDQogICBiZWNhdXNlIGNvZGUgdGhhdCBhY2Nlc3Mg dGhlIGxvZyBhcnJheSB3b3VsZCBoYXZlIHRvIHVzZQ0KICAgSGVhZGVyTG9nLkhlYWRlckxvZ1tJ bmRleF0uDQoNCnR5cGVkZWYgc3RydWN0IHsNCiAgQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VSUk9S X1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJMb2dbMTZdOw0KfSBDWExf SEVBREVSX0xPRzsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KICBDWExfMV8xX1VOQ09SUkVDVEFCTEVf RVJST1JfU1RBVFVTICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuY29ycmVjdGFibGVFcnJv clN0YXR1czsgICAgIC8vIG9mZnNldCAwDQogIENYTF8xXzFfVU5DT1JSRUNUQUJMRV9FUlJPUl9N QVNLICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5jb3JyZWN0YWJsZUVycm9yTWFzazsg ICAgICAgLy8gb2Zmc2V0IDQNCiAgQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VSUk9SX1NFVkVSSVRZ ICAgICAgICAgICAgICAgICAgICAgICAgICBVbmNvcnJlY3RhYmxlRXJyb3JTZXZlcml0eTsgICAv LyBvZmZzZXQgOA0KICBDWExfQ09SUkVDVEFCTEVfRVJST1JfU1RBVFVTICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIENvcnJlY3RhYmxlRXJyb3JTdGF0dXM7ICAgICAgIC8vIG9mZnNl dCAxMg0KICBDWExfQ09SUkVDVEFCTEVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENvcnJlY3RhYmxlRXJyb3JNYXNrOyAgICAgICAgIC8vIG9mZnNldCAxNg0K ICBDWExfRVJST1JfQ0FQQUJJTElUSUVTX0FORF9DT05UUk9MICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEVycm9yQ2FwYWJpbGl0aWVzQW5kQ29udHJvbDsgIC8vIG9mZnNldCAyMA0KICBDWExf SEVBREVSX0xPRyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEhlYWRlckxvZzsgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCAyNA0KfSBDWExfMV8xX1JB U19DQVBBQklMSVRZX1NUUlVDVFVSRTsNCg0KSWYgdGhpcyB3YXMgY2hhbmdlZCB0byB0aGUgZm9s bG93aW5nLCBpdCBtYXkgYmUgZWFzaWVyDQp0byB1c2UgYW5kIHVuZGVyc3RhbmQ6DQoNCnR5cGVk ZWYgc3RydWN0IHsNCiAgQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VSUk9SX1NUQVRVUyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBVbmNvcnJlY3RhYmxlRXJyb3JTdGF0dXM7ICAgICAvLyBvZmZz ZXQgMA0KICBDWExfMV8xX1VOQ09SUkVDVEFCTEVfRVJST1JfTUFTSyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFVuY29ycmVjdGFibGVFcnJvck1hc2s7ICAgICAgIC8vIG9mZnNldCA0DQog IENYTF8xXzFfVU5DT1JSRUNUQUJMRV9FUlJPUl9TRVZFUklUWSAgICAgICAgICAgICAgICAgICAg ICAgICAgVW5jb3JyZWN0YWJsZUVycm9yU2V2ZXJpdHk7ICAgLy8gb2Zmc2V0IDgNCiAgQ1hMX0NP UlJFQ1RBQkxFX0VSUk9SX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBD b3JyZWN0YWJsZUVycm9yU3RhdHVzOyAgICAgICAvLyBvZmZzZXQgMTINCiAgQ1hMX0NPUlJFQ1RB QkxFX0VSUk9SX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JyZWN0 YWJsZUVycm9yTWFzazsgICAgICAgICAvLyBvZmZzZXQgMTYNCiAgQ1hMX0VSUk9SX0NBUEFCSUxJ VElFU19BTkRfQ09OVFJPTCAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJvckNhcGFiaWxp dGllc0FuZENvbnRyb2w7ICAvLyBvZmZzZXQgMjANCiAgQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VS Uk9SX1NUQVRVUyAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJMb2dbMTZdOyAgICAg ICAgICAgICAgICAvLyBvZmZzZXQgMjQNCn0gQ1hMXzFfMV9SQVNfQ0FQQUJJTElUWV9TVFJVQ1RV UkU7DQoNClRoYW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24NCj4g QmVoYWxmIE9mIEphdmVlZCwgQXNocmFmDQo+IFNlbnQ6IFNhdHVyZGF5LCBKdWx5IDExLCAyMDIw IDM6NDAgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBHYW8sDQo+IExpbWluZyA8bGltaW5n Lmdhb0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggVjEgMS8yXSDv u79NZGVQa2ctDQo+IEluZHVzdHJ5U3RhbmRhcmQ6IENYTCAxLjEgU3BlY2lmaWNhdGlvbiByZWdp c3RlcnMNCj4gDQo+IEJaOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTI2MTENCj4gDQo+IFJlZ2lzdGVyIGRlZmluaXRpb25zIGZyb20gY2hhcHRlciA3IG9m IENvbXB1dGUgRXhwcmVzcw0KPiBMaW5rIFNwZWNpZmljYXRpb24NCj4gUmV2aXNpb24gMS4xIGFy ZSBwb3J0ZWQgaW50byB0aGUgbmV3IEN4bDExLmguDQo+IFRoZSBDWEwgRmxleCBCdXMgcmVnaXN0 ZXJzIGFyZSBiYXNlZCBvbiB0aGUgUENJZQ0KPiBFeHRlbmRlZCBDYXBhYmlsaXR5DQo+IERWU0VD IHN0cnVjdHVyZSBoZWFkZXIsIGxlZCB0byB0aGUgaW5jbHVzaW9uIG9mIHVwZ3JhZGVkDQo+IFBj aS5oLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQXNocmFmIEphdmVlZCA8YXNocmFmLmphdmVlZEBp bnRlbC5jb20+DQo+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gQ2M6IExpbWluZyBHYW8gPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiAtLS0NCj4g IE1kZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvQ3hsMTEuaCB8IDU3Mw0KPiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysrKysrDQo+ICBNZGVQa2cvSW5jbHVkZS9J bmR1c3RyeVN0YW5kYXJkL1BjaS5oICAgfCAgIDQgKy0tLQ0KPiAgMiBmaWxlcyBjaGFuZ2VkLCA1 NzQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9NZGVQ a2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL0N4bDExLmgNCj4gYi9NZGVQa2cvSW5jbHVkZS9J bmR1c3RyeVN0YW5kYXJkL0N4bDExLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMC4uOTE4OTU0ZjE2Yg0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL01kZVBrZy9J bmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvQ3hsMTEuaA0KPiBAQCAtMCwwICsxLDU3MyBAQA0KPiAr LyoqIEBmaWxlDQo+ICsgIENYTCAxLjEgUmVnaXN0ZXIgZGVmaW5pdGlvbnMNCj4gKw0KPiArICBU aGlzIGZpbGUgY29udGFpbnMgdGhlIHJlZ2lzdGVyIGRlZmluaXRpb25zIGJhc2VkIG9uDQo+IHRo ZSBDb21wdXRlIEV4cHJlc3MgTGluaw0KPiArICAoQ1hMKSBTcGVjaWZpY2F0aW9uIFJldmlzaW9u IDEuMS4NCj4gKw0KPiArQ29weXJpZ2h0IChjKSAyMDIwLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cw0KPiByZXNlcnZlZC48QlI+DQo+ICtTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudA0KPiArDQo+ICsqKi8NCj4gKw0KPiArI2lmbmRlZiBfQ1hMMTFfSF8N Cj4gKyNkZWZpbmUgX0NYTDExX0hfDQo+ICsNCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJk L1BjaS5oPg0KPiArLy8NCj4gKy8vIERWU0VDIFZlbmRvciBJRA0KPiArLy8gQ29tcHV0ZSBFeHBy ZXNzIExpbmsgU3BlY2lmaWNhdGlvbiBSZXZpc2lvbjogMS4xIC0NCj4gQ2hhcHRlciA3LjEuMSAt IFRhYmxlIDU4DQo+ICsvLyAoc3ViamVjdCB0byBjaGFuZ2UgYXMgcGVyIENYTCBhc3NpZ25lZCBW ZW5kb3IgSUQpDQo+ICsvLw0KPiArI2RlZmluZSBJTlRFTF9DWExfRFZTRUNfVkVORE9SX0lEDQo+ IDB4ODA4Ng0KPiArDQo+ICsvLw0KPiArLy8gQ1hMIEZsZXggQnVzIERldmljZSBkZWZhdWx0IGRl dmljZSBhbmQgZnVuY3Rpb24NCj4gbnVtYmVyDQo+ICsvLyBDb21wdXRlIEV4cHJlc3MgTGluayBT cGVjaWZpY2F0aW9uIFJldmlzaW9uOiAxLjEgLQ0KPiBDaGFwdGVyIDcuMS4xDQo+ICsvLw0KPiAr I2RlZmluZSBDWExfREVWX0RFVg0KPiAwDQo+ICsjZGVmaW5lIENYTF9ERVZfRlVOQw0KPiAwDQo+ ICsNCj4gKy8vDQo+ICsvLyBFbnN1cmUgcHJvcGVyIHN0cnVjdHVyZSBmb3JtYXRzDQo+ICsvLw0K PiArI3ByYWdtYSBwYWNrKDEpDQo+ICsNCj4gKy8vLw0KPiArLy8vIFRoZSBQQ0llIERWU0VDIGZv ciBGbGV4IEJ1cyBEZXZpY2UNCj4gKy8vL0B7DQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3Ry dWN0IHsNCj4gKyAgICBVSU5UMTYgQ2FjaGVDYXBhYmxlDQo+IDogMTsgLy8gYml0IDANCj4gKyAg ICBVSU5UMTYgSW9DYXBhYmxlDQo+IDogMTsgLy8gYml0IDENCj4gKyAgICBVSU5UMTYgTWVtQ2Fw YWJsZQ0KPiA6IDE7IC8vIGJpdCAyDQo+ICsgICAgVUlOVDE2IE1lbUh3SW5pdE1vZGUNCj4gOiAx OyAvLyBiaXQgMw0KPiArICAgIFVJTlQxNiBIZG1Db3VudA0KPiA6IDI7IC8vIGJpdCA0Li41DQo+ ICsgICAgVUlOVDE2IFJlc2VydmVkMQ0KPiA6IDg7IC8vIGJpdCA2Li4xMw0KPiArICAgIFVJTlQx NiBWaXJhbENhcGFibGUNCj4gOiAxOyAvLyBiaXQgMTQNCj4gKyAgICBVSU5UMTYgUmVzZXJ2ZWQy DQo+IDogMTsgLy8gYml0IDE1DQo+ICsgIH1CaXRzOw0KPiArICBVSU5UMTYNCj4gVWludDE2Ow0K PiArfSBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX0NBUEFCSUxJVFk7DQo+ICsNCj4gK3R5cGVk ZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICAgIFVJTlQxNiBDYWNoZUVuYWJsZQ0KPiA6 IDE7IC8vIGJpdCAwDQo+ICsgICAgVUlOVDE2IElvRW5hYmxlDQo+IDogMTsgLy8gYml0IDENCj4g KyAgICBVSU5UMTYgTWVtRW5hYmxlDQo+IDogMTsgLy8gYml0IDINCj4gKyAgICBVSU5UMTYgQ2Fj aGVTZkNvdmVyYWdlDQo+IDogNTsgLy8gYml0IDMuLjcNCj4gKyAgICBVSU5UMTYgQ2FjaGVTZkdy YW51bGFyaXR5DQo+IDogMzsgLy8gYml0IDguLjEwDQo+ICsgICAgVUlOVDE2IENhY2hlQ2xlYW5F dmljdGlvbg0KPiA6IDE7IC8vIGJpdCAxMQ0KPiArICAgIFVJTlQxNiBSZXNlcnZlZDENCj4gOiAy OyAvLyBiaXQgMTIuLjEzDQo+ICsgICAgVUlOVDE2IFZpcmFsRW5hYmxlDQo+IDogMTsgLy8gYml0 IDE0DQo+ICsgICAgVUlOVDE2IFJlc2VydmVkMg0KPiA6IDE7IC8vIGJpdCAxNQ0KPiArICB9Qml0 czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hMX0RWU0VDX0ZMRVhfQlVTX0RFVklD RV9DT05UUk9MOw0KPiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAg ICBVSU5UMTYgUmVzZXJ2ZWQxDQo+IDogMTQ7IC8vIGJpdCAwLi4xMw0KPiArICAgIFVJTlQxNiBW aXJhbFN0YXR1cw0KPiA6IDE7ICAvLyBiaXQgMTQNCj4gKyAgICBVSU5UMTYgUmVzZXJ2ZWQyDQo+ IDogMTsgIC8vIGJpdCAxNQ0KPiArICB9Qml0czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4g K30gQ1hMX0RWU0VDX0ZMRVhfQlVTX0RFVklDRV9TVEFUVVM7DQo+ICsNCj4gK3R5cGVkZWYgdW5p b24gew0KPiArICBzdHJ1Y3Qgew0KPiArICAgIFVJTlQxNiBSZXNlcnZlZDENCj4gOiAxOyAgLy8g Yml0IDANCj4gKyAgICBVSU5UMTYgUmVzZXJ2ZWQyDQo+IDogMTsgIC8vIGJpdCAxDQo+ICsgICAg VUlOVDE2IFJlc2VydmVkMw0KPiA6IDE7ICAvLyBiaXQgMg0KPiArICAgIFVJTlQxNiBSZXNlcnZl ZDQNCj4gOiAxMzsgLy8gYml0IDMuLjE1DQo+ICsgIH1CaXRzOw0KPiArICBVSU5UMTYNCj4gVWlu dDE2Ow0KPiArfSBDWExfMV8xX0RWU0VDX0ZMRVhfQlVTX0RFVklDRV9DT05UUk9MMjsNCj4gKw0K PiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgICAgVUlOVDE2IFJlc2VydmVk MQ0KPiA6IDE7ICAvLyBiaXQgMA0KPiArICAgIFVJTlQxNiBSZXNlcnZlZDINCj4gOiAxOyAgLy8g Yml0IDENCj4gKyAgICBVSU5UMTYgUmVzZXJ2ZWQzDQo+IDogMTQ7IC8vIGJpdCAyLi4xNQ0KPiAr ICB9Qml0czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hMXzFfMV9EVlNFQ19GTEVY X0JVU19ERVZJQ0VfU1RBVFVTMjsNCj4gKw0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVj dCB7DQo+ICsgICAgVUlOVDE2IENvbmZpZ0xvY2sNCj4gOiAxOyAgLy8gYml0IDANCj4gKyAgICBV SU5UMTYgUmVzZXJ2ZWQxDQo+IDogMTU7IC8vIGJpdCAxLi4xNQ0KPiArICB9Qml0czsNCj4gKyAg VUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hMX0RWU0VDX0ZMRVhfQlVTX0RFVklDRV9MT0NLOw0K PiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAgICBVSU5UMzIgTWVt b3J5U2l6ZUhpZ2gNCj4gOiAzMjsgLy8gYml0IDAuLjMxDQo+ICsgIH1CaXRzOw0KPiArICBVSU5U MzINCj4gVWludDMyOw0KPiArfSBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX1JBTkdFMV9TSVpF X0hJR0g7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICAgIFVJ TlQzMiBNZW1vcnlJbmZvVmFsaWQNCj4gOiAxOyAgLy8gYml0IDANCj4gKyAgICBVSU5UMzIgTWVt b3J5QWN0aXZlDQo+IDogMTsgIC8vIGJpdCAxDQo+ICsgICAgVUlOVDMyIE1lZGlhVHlwZQ0KPiA6 IDM7ICAvLyBiaXQgMi4uNA0KPiArICAgIFVJTlQzMiBNZW1vcnlDbGFzcw0KPiA6IDM7ICAvLyBi aXQgNS4uNw0KPiArICAgIFVJTlQzMiBEZXNpcmVkSW50ZXJsZWF2ZQ0KPiA6IDM7ICAvLyBiaXQg OC4uMTANCj4gKyAgICBVSU5UMzIgUmVzZXJ2ZWQNCj4gOiAxNzsgLy8gYml0IDExLi4yNw0KPiAr ICAgIFVJTlQzMiBNZW1vcnlTaXplTG93DQo+IDogNDsgIC8vIGJpdCAyOC4uMzENCj4gKyAgfUJp dHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9IENYTF9EVlNFQ19GTEVYX0JVU19ERVZJ Q0VfUkFOR0UxX1NJWkVfTE9XOw0KPiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0 IHsNCj4gKyAgICBVSU5UMzIgTWVtb3J5QmFzZUhpZ2gNCj4gOiAzMjsgLy8gYml0IDAuLjMxDQo+ ICsgIH1CaXRzOw0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfRFZTRUNfRkxFWF9C VVNfREVWSUNFX1JBTkdFMV9CQVNFX0hJR0g7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiAr ICBzdHJ1Y3Qgew0KPiArICAgIFVJTlQzMiBSZXNlcnZlZA0KPiA6IDI4OyAvLyBiaXQgMC4uMjcN Cj4gKyAgICBVSU5UMzIgTWVtb3J5QmFzZUxvdw0KPiA6IDQ7ICAvLyBiaXQgMjguLjMxDQo+ICsg IH1CaXRzOw0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfRFZTRUNfRkxFWF9CVVNf REVWSUNFX1JBTkdFMV9CQVNFX0xPVzsNCj4gKw0KPiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4g KyAgc3RydWN0IHsNCj4gKyAgICBVSU5UMzIgTWVtb3J5U2l6ZUhpZ2gNCj4gOiAzMjsgLy8gYml0 IDAuLjMxDQo+ICsgIH1CaXRzOw0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfRFZT RUNfRkxFWF9CVVNfREVWSUNFX1JBTkdFMl9TSVpFX0hJR0g7DQo+ICsNCj4gK3R5cGVkZWYgdW5p b24gew0KPiArICBzdHJ1Y3Qgew0KPiArICAgIFVJTlQzMiBNZW1vcnlJbmZvVmFsaWQNCj4gOiAx OyAgLy8gYml0IDANCj4gKyAgICBVSU5UMzIgTWVtb3J5QWN0aXZlDQo+IDogMTsgIC8vIGJpdCAx DQo+ICsgICAgVUlOVDMyIE1lZGlhVHlwZQ0KPiA6IDM7ICAvLyBiaXQgMi4uNA0KPiArICAgIFVJ TlQzMiBNZW1vcnlDbGFzcw0KPiA6IDM7ICAvLyBiaXQgNS4uNw0KPiArICAgIFVJTlQzMiBEZXNp cmVkSW50ZXJsZWF2ZQ0KPiA6IDM7ICAvLyBiaXQgOC4uMTANCj4gKyAgICBVSU5UMzIgUmVzZXJ2 ZWQNCj4gOiAxNzsgLy8gYml0IDExLi4yNw0KPiArICAgIFVJTlQzMiBNZW1vcnlTaXplTG93DQo+ IDogNDsgIC8vIGJpdCAyOC4uMzENCj4gKyAgfUJpdHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7 DQo+ICt9IENYTF9EVlNFQ19GTEVYX0JVU19ERVZJQ0VfUkFOR0UyX1NJWkVfTE9XOw0KPiArDQo+ ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAgICBVSU5UMzIgTWVtb3J5QmFz ZUhpZ2gNCj4gOiAzMjsgLy8gYml0IDAuLjMxDQo+ICsgIH1CaXRzOw0KPiArICBVSU5UMzINCj4g VWludDMyOw0KPiArfSBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX1JBTkdFMl9CQVNFX0hJR0g7 DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICAgIFVJTlQzMiBS ZXNlcnZlZA0KPiA6IDI4OyAvLyBiaXQgMC4uMjcNCj4gKyAgICBVSU5UMzIgTWVtb3J5QmFzZUxv dw0KPiA6IDQ7ICAvLyBiaXQgMjguLjMxDQo+ICsgIH1CaXRzOw0KPiArICBVSU5UMzINCj4gVWlu dDMyOw0KPiArfSBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX1JBTkdFMl9CQVNFX0xPVzsNCj4g Kw0KPiArLy8NCj4gKy8vIEZsZXggQnVzIERldmljZSBEVlNFQyBJRA0KPiArLy8gQ29tcHV0ZSBF eHByZXNzIExpbmsgU3BlY2lmaWNhdGlvbiBSZXZpc2lvbjogMS4xIC0NCj4gQ2hhcHRlciA3LjEu MSwgVGFibGUgNTgNCj4gKy8vDQo+ICsjZGVmaW5lIEZMRVhfQlVTX0RFVklDRV9EVlNFQ19JRA0K PiAwDQo+ICsNCj4gKy8vDQo+ICsvLyBQQ0llIERWU0VDIGZvciBGbGV4IEJ1cyBEZXZpY2UNCj4g Ky8vIENvbXB1dGUgRXhwcmVzcyBMaW5rIFNwZWNpZmljYXRpb24gUmV2aXNpb246IDEuMSAtDQo+ IENoYXB0ZXIgNy4xLjEsIEZpZ3VyZSA5NQ0KPiArLy8NCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4g KyAgUENJX0VYUFJFU1NfRVhURU5ERURfQ0FQQUJJTElUSUVTX0hFQURFUg0KPiBIZWFkZXI7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IDANCj4gKyAgUENJX0VYUFJFU1NfREVT SUdOQVRFRF9WRU5ET1JfU1BFQ0lGSUNfSEVBREVSXzENCj4gRGVzaWduYXRlZFZlbmRvclNwZWNp ZmljSGVhZGVyMTsgIC8vIG9mZnNldCA0DQo+ICsgIFBDSV9FWFBSRVNTX0RFU0lHTkFURURfVkVO RE9SX1NQRUNJRklDX0hFQURFUl8yDQo+IERlc2lnbmF0ZWRWZW5kb3JTcGVjaWZpY0hlYWRlcjI7 ICAvLyBvZmZzZXQgOA0KPiArICBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX0NBUEFCSUxJVFkN Cj4gRGV2aWNlQ2FwYWJpbGl0eTsgICAgICAgICAgICAgICAgIC8vIG9mZnNldCAxMA0KPiArICBD WExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX0NPTlRST0wNCj4gRGV2aWNlQ29udHJvbDsgICAgICAg ICAgICAgICAgICAgIC8vIG9mZnNldCAxMg0KPiArICBDWExfRFZTRUNfRkxFWF9CVVNfREVWSUNF X1NUQVRVUw0KPiBEZXZpY2VTdGF0dXM7ICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IDE0 DQo+ICsgIENYTF8xXzFfRFZTRUNfRkxFWF9CVVNfREVWSUNFX0NPTlRST0wyDQo+IERldmljZUNv bnRyb2wyOyAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgMTYNCj4gKyAgQ1hMXzFfMV9EVlNF Q19GTEVYX0JVU19ERVZJQ0VfU1RBVFVTMg0KPiBEZXZpY2VTdGF0dXMyOyAgICAgICAgICAgICAg ICAgICAgLy8gb2Zmc2V0IDE4DQo+ICsgIENYTF9EVlNFQ19GTEVYX0JVU19ERVZJQ0VfTE9DSw0K PiBEZXZpY2VMb2NrOyAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IDIwDQo+ICsgIFVJ TlQxNg0KPiBSZXNlcnZlZDsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IDIyDQo+ ICsgIENYTF9EVlNFQ19GTEVYX0JVU19ERVZJQ0VfUkFOR0UxX1NJWkVfSElHSA0KPiBEZXZpY2VS YW5nZTFTaXplSGlnaDsgICAgICAgICAgICAgLy8gb2Zmc2V0IDI0DQo+ICsgIENYTF9EVlNFQ19G TEVYX0JVU19ERVZJQ0VfUkFOR0UxX1NJWkVfTE9XDQo+IERldmljZVJhbmdlMVNpemVMb3c7ICAg ICAgICAgICAgICAvLyBvZmZzZXQgMjgNCj4gKyAgQ1hMX0RWU0VDX0ZMRVhfQlVTX0RFVklDRV9S QU5HRTFfQkFTRV9ISUdIDQo+IERldmljZVJhbmdlMUJhc2VIaWdoOyAgICAgICAgICAgICAvLyBv ZmZzZXQgMzINCj4gKyAgQ1hMX0RWU0VDX0ZMRVhfQlVTX0RFVklDRV9SQU5HRTFfQkFTRV9MT1cN Cj4gRGV2aWNlUmFuZ2UxQmFzZUxvdzsgICAgICAgICAgICAgIC8vIG9mZnNldCAzNg0KPiArICBD WExfRFZTRUNfRkxFWF9CVVNfREVWSUNFX1JBTkdFMl9TSVpFX0hJR0gNCj4gRGV2aWNlUmFuZ2Uy U2l6ZUhpZ2g7ICAgICAgICAgICAgIC8vIG9mZnNldCA0MA0KPiArICBDWExfRFZTRUNfRkxFWF9C VVNfREVWSUNFX1JBTkdFMl9TSVpFX0xPVw0KPiBEZXZpY2VSYW5nZTJTaXplTG93OyAgICAgICAg ICAgICAgLy8gb2Zmc2V0IDQ0DQo+ICsgIENYTF9EVlNFQ19GTEVYX0JVU19ERVZJQ0VfUkFOR0Uy X0JBU0VfSElHSA0KPiBEZXZpY2VSYW5nZTJCYXNlSGlnaDsgICAgICAgICAgICAgLy8gb2Zmc2V0 IDQ4DQo+ICsgIENYTF9EVlNFQ19GTEVYX0JVU19ERVZJQ0VfUkFOR0UyX0JBU0VfTE9XDQo+IERl dmljZVJhbmdlMkJhc2VMb3c7ICAgICAgICAgICAgICAvLyBvZmZzZXQgNTINCj4gK30gQ1hMXzFf MV9EVlNFQ19GTEVYX0JVU19ERVZJQ0U7DQo+ICsvLy9AfQ0KPiArDQo+ICsvLy8NCj4gKy8vLyBQ Q0llIERWU0VDIGZvciBGTGV4IEJ1cyBQb3J0DQo+ICsvLy9Aew0KPiArdHlwZWRlZiB1bmlvbiB7 DQo+ICsgIHN0cnVjdCB7DQo+ICsgICAgVUlOVDE2IENhY2hlQ2FwYWJsZQ0KPiA6IDE7ICAvLyBi aXQgMA0KPiArICAgIFVJTlQxNiBJb0NhcGFibGUNCj4gOiAxOyAgLy8gYml0IDENCj4gKyAgICBV SU5UMTYgTWVtQ2FwYWJsZQ0KPiA6IDE7ICAvLyBiaXQgMg0KPiArICAgIFVJTlQxNiBSZXNlcnZl ZA0KPiA6IDEzOyAvLyBiaXQgMy4uMTUNCj4gKyAgfUJpdHM7DQo+ICsgIFVJTlQxNg0KPiBVaW50 MTY7DQo+ICt9IENYTF8xXzFfRFZTRUNfRkxFWF9CVVNfUE9SVF9DQVBBQklMSVRZOw0KPiArDQo+ ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAgICBVSU5UMTYgQ2FjaGVFbmFi bGUNCj4gOiAxOyAvLyBiaXQgMA0KPiArICAgIFVJTlQxNiBJb0VuYWJsZQ0KPiA6IDE7IC8vIGJp dCAxDQo+ICsgICAgVUlOVDE2IE1lbUVuYWJsZQ0KPiA6IDE7IC8vIGJpdCAyDQo+ICsgICAgVUlO VDE2IEN4bFN5bmNCeXBhc3NFbmFibGUNCj4gOiAxOyAvLyBiaXQgMw0KPiArICAgIFVJTlQxNiBE cmlmdEJ1ZmZlckVuYWJsZQ0KPiA6IDE7IC8vIGJpdCA0DQo+ICsgICAgVUlOVDE2IFJlc2VydmVk DQo+IDogMzsgLy8gYml0IDUuLjcNCj4gKyAgICBVSU5UMTYgUmV0aW1lcjFQcmVzZW50DQo+IDog MTsgLy8gYml0IDgNCj4gKyAgICBVSU5UMTYgUmV0aW1lcjJQcmVzZW50DQo+IDogMTsgLy8gYml0 IDkNCj4gKyAgICBVSU5UMTYgUmVzZXJ2ZWQyDQo+IDogNjsgLy8gYml0IDEwLi4xNQ0KPiArICB9 Qml0czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hMXzFfMV9EVlNFQ19GTEVYX0JV U19QT1JUX0NPTlRST0w7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0K PiArICBVSU5UMTYgQ2FjaGVFbmFibGUNCj4gOiAxOyAvLyBiaXQgMA0KPiArICBVSU5UMTYgSW9F bmFibGUNCj4gOiAxOyAvLyBiaXQgMQ0KPiArICBVSU5UMTYgTWVtRW5hYmxlDQo+IDogMTsgLy8g Yml0IDINCj4gKyAgVUlOVDE2IEN4bFN5bmNCeXBhc3NFbmFibGUNCj4gOiAxOyAvLyBiaXQgMw0K PiArICBVSU5UMTYgRHJpZnRCdWZmZXJFbmFibGUNCj4gOiAxOyAvLyBiaXQgNA0KPiArICBVSU5U MTYgUmVzZXJ2ZWQNCj4gOiAzOyAvLyBiaXQgNS4uNw0KPiArICBVSU5UMTYgQ3hsQ29ycmVjdGFi bGVQcm90b2NvbElkRnJhbWluZ0Vycm9yDQo+IDogMTsgLy8gYml0IDgNCj4gKyAgVUlOVDE2IEN4 bFVuY29ycmVjdGFibGVQcm90b2NvbElkRnJhbWluZ0Vycm9yDQo+IDogMTsgLy8gYml0IDkNCj4g KyAgVUlOVDE2IEN4bFVuZXhwZWN0ZWRQcm90b2NvbElkRHJvcHBlZA0KPiA6IDE7IC8vIGJpdCAx MA0KPiArICBVSU5UMTYgUmVzZXJ2ZWQyDQo+IDogNTsgLy8gYml0IDExLi4xNQ0KPiArICB9Qml0 czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hMXzFfMV9EVlNFQ19GTEVYX0JVU19Q T1JUX1NUQVRVUzsNCj4gKw0KPiArLy8NCj4gKy8vIEZsZXggQnVzIFBvcnQgRFZTRUMgSUQNCj4g Ky8vIENvbXB1dGUgRXhwcmVzcyBMaW5rIFNwZWNpZmljYXRpb24gUmV2aXNpb246IDEuMSAtDQo+ IENoYXB0ZXIgNy4yLjEuMywgVGFibGUgNjINCj4gKy8vDQo+ICsjZGVmaW5lIEZMRVhfQlVTX1BP UlRfRFZTRUNfSUQNCj4gNw0KPiArDQo+ICsvLw0KPiArLy8gUENJZSBEVlNFQyBmb3IgRmxleCBC dXMgUG9ydA0KPiArLy8gQ29tcHV0ZSBFeHByZXNzIExpbmsgU3BlY2lmaWNhdGlvbiBSZXZpc2lv bjogMS4xIC0NCj4gQ2hhcHRlciA3LjIuMS4zLCBGaWd1cmUgOTkNCj4gKy8vDQo+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ICsgIFBDSV9FWFBSRVNTX0VYVEVOREVEX0NBUEFCSUxJVElFU19IRUFERVIN Cj4gSGVhZGVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldCAwDQo+ICsgIFBD SV9FWFBSRVNTX0RFU0lHTkFURURfVkVORE9SX1NQRUNJRklDX0hFQURFUl8xDQo+IERlc2lnbmF0 ZWRWZW5kb3JTcGVjaWZpY0hlYWRlcjE7ICAvLyBvZmZzZXQgNA0KPiArICBQQ0lfRVhQUkVTU19E RVNJR05BVEVEX1ZFTkRPUl9TUEVDSUZJQ19IRUFERVJfMg0KPiBEZXNpZ25hdGVkVmVuZG9yU3Bl Y2lmaWNIZWFkZXIyOyAgLy8gb2Zmc2V0IDgNCj4gKyAgQ1hMXzFfMV9EVlNFQ19GTEVYX0JVU19Q T1JUX0NBUEFCSUxJVFkNCj4gUG9ydENhcGFiaWxpdHk7ICAgICAgICAgICAgICAgICAgIC8vIG9m ZnNldCAxMA0KPiArICBDWExfMV8xX0RWU0VDX0ZMRVhfQlVTX1BPUlRfQ09OVFJPTA0KPiBQb3J0 Q29udHJvbDsgICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0IDEyDQo+ICsgIENYTF8xXzFf RFZTRUNfRkxFWF9CVVNfUE9SVF9TVEFUVVMNCj4gUG9ydFN0YXR1czsgICAgICAgICAgICAgICAg ICAgICAgIC8vIG9mZnNldCAxNA0KPiArfSBDWExfMV8xX0RWU0VDX0ZMRVhfQlVTX1BPUlQ7DQo+ ICsvLy9AfQ0KPiArDQo+ICsvLy8NCj4gKy8vLyBDWEwgMS4xIFVwc3RyZWFtIGFuZCBEb3duc3Ry ZWFtIFBvcnQgU3Vic3lzdGVtDQo+IENvbXBvbmVudCByZWdpc3RlcnMNCj4gKy8vLw0KPiArDQo+ ICsvLy8gVGhlIENYTC5DYWNoZSBhbmQgQ1hMLk1lbW9yeSBBcmNoaXRlY3R1cmFsIHJlZ2lzdGVy DQo+IGRlZmluaXRpb25zDQo+ICsvLy8gQmFzZWQgb24gY2hhcHRlciA3LjIuMiBvZiBDb21wdXRl IEV4cHJlc3MgTGluaw0KPiBTcGVjaWZpY2F0aW9uIFJldmlzaW9uOiAxLjENCj4gKy8vL0B7DQo+ ICsNCj4gKyNkZWZpbmUgQ1hMX0NBUEFCSUxJVFlfSEVBREVSX09GRlNFVA0KPiAwDQo+ICt0eXBl ZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAgVUlOVDMyIEN4bENhcGFiaWxpdHlJZA0K PiA6IDE2OyAvLyBiaXQgMC4uMTUNCj4gKyAgVUlOVDMyIEN4bENhcGFiaWxpdHlWZXJzaW9uDQo+ IDogIDQ7IC8vIGJpdCAxNi4uMTkNCj4gKyAgVUlOVDMyIEN4bENhY2hlTWVtVmVyc2lvbg0KPiA6 ICA0OyAvLyBiaXQgMjAuLjIzDQo+ICsgIFVJTlQzMiBBcnJheVNpemUNCj4gOiAgODsgLy8gYml0 IDI0Li4zMQ0KPiArICB9IEJpdHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9IENYTF9D QVBBQklMSVRZX0hFQURFUjsNCj4gKw0KPiArI2RlZmluZSBDWExfUkFTX0NBUEFCSUxJVFlfSEVB REVSX09GRlNFVA0KPiA0DQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAg VUlOVDMyIEN4bENhcGFiaWxpdHlJZA0KPiA6IDE2OyAvLyBiaXQgMC4uMTUNCj4gKyAgVUlOVDMy IEN4bENhcGFiaWxpdHlWZXJzaW9uDQo+IDogIDQ7IC8vIGJpdCAxNi4uMTkNCj4gKyAgVUlOVDMy IEN4bFJhc0NhcGFiaWxpdHlQb2ludGVyDQo+IDogMTI7IC8vIGJpdCAyMC4uMzENCj4gKyAgfSBC aXRzOw0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfUkFTX0NBUEFCSUxJVFlfSEVB REVSOw0KPiArDQo+ICsjZGVmaW5lIENYTF9TRUNVUklUWV9DQVBBQklMSVRZX0hFQURFUl9PRkZT RVQNCj4gOA0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQzMiBD eGxDYXBhYmlsaXR5SWQNCj4gOiAxNjsgLy8gYml0IDAuLjE1DQo+ICsgIFVJTlQzMiBDeGxDYXBh YmlsaXR5VmVyc2lvbg0KPiA6ICA0OyAvLyBiaXQgMTYuLjE5DQo+ICsgIFVJTlQzMiBDeGxTZWN1 cml0eUNhcGFiaWxpdHlQb2ludGVyDQo+IDogMTI7IC8vIGJpdCAyMC4uMzENCj4gKyAgfSBCaXRz Ow0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfU0VDVVJJVFlfQ0FQQUJJTElUWV9I RUFERVI7DQo+ICsNCj4gKyNkZWZpbmUgQ1hMX0xJTktfQ0FQQUJJTElUWV9IRUFERVJfT0ZGU0VU DQo+IDB4Qw0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQzMiBD eGxDYXBhYmlsaXR5SWQNCj4gOiAxNjsgLy8gYml0IDAuLjE1DQo+ICsgIFVJTlQzMiBDeGxDYXBh YmlsaXR5VmVyc2lvbg0KPiA6ICA0OyAvLyBiaXQgMTYuLjE5DQo+ICsgIFVJTlQzMiBDeGxMaW5r Q2FwYWJpbGl0eVBvaW50ZXINCj4gOiAxMjsgLy8gYml0IDIwLi4zMQ0KPiArICB9IEJpdHM7DQo+ ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9IENYTF9MSU5LX0NBUEFCSUxJVFlfSEVBREVSOw0K PiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4gKyAgc3RydWN0IHsNCj4gKyAgVUlOVDMyIENhY2hl RGF0YVBhcml0eQ0KPiA6ICAxOyAvLyBiaXQgMC4uMA0KPiArICBVSU5UMzIgQ2FjaGVBZGRyZXNz UGFyaXR5DQo+IDogIDE7IC8vIGJpdCAxLi4xDQo+ICsgIFVJTlQzMiBDYWNoZUJ5dGVFbmFibGVQ YXJpdHkNCj4gOiAgMTsgLy8gYml0IDIuLjINCj4gKyAgVUlOVDMyIENhY2hlRGF0YUVjYw0KPiA6 ICAxOyAvLyBiaXQgMy4uMw0KPiArICBVSU5UMzIgTWVtRGF0YVBhcml0eQ0KPiA6ICAxOyAvLyBi aXQgNC4uNA0KPiArICBVSU5UMzIgTWVtQWRkcmVzc1Bhcml0eQ0KPiA6ICAxOyAvLyBiaXQgNS4u NQ0KPiArICBVSU5UMzIgTWVtQnl0ZUVuYWJsZVBhcml0eQ0KPiA6ICAxOyAvLyBiaXQgNi4uNg0K PiArICBVSU5UMzIgTWVtRGF0YUVjYw0KPiA6ICAxOyAvLyBiaXQgNy4uNw0KPiArICBVSU5UMzIg UmVJbml0VGhyZXNob2xkDQo+IDogIDE7IC8vIGJpdCA4Li44DQo+ICsgIFVJTlQzMiBSc3ZkRW5j b2RpbmdWaW9sYXRpb24NCj4gOiAgMTsgLy8gYml0IDkuLjkNCj4gKyAgVUlOVDMyIFBvaXNvblJl Y2VpdmVkDQo+IDogIDE7IC8vIGJpdCAxMC4uMTANCj4gKyAgVUlOVDMyIFJlY2VpdmVyT3ZlcmZs b3cNCj4gOiAgMTsgLy8gYml0IDExLi4xMQ0KPiArICBVSU5UMzIgUmVzZXJ2ZWQNCj4gOiAyMDsg Ly8gYml0IDEyLi4zMQ0KPiArICB9IEJpdHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9 IENYTF8xXzFfVU5DT1JSRUNUQUJMRV9FUlJPUl9TVEFUVVM7DQo+ICsNCj4gK3R5cGVkZWYgdW5p b24gew0KPiArICBzdHJ1Y3Qgew0KPiArICBVSU5UMzIgQ2FjaGVEYXRhUGFyaXR5TWFzaw0KPiA6 ICAxOyAvLyBiaXQgMC4uMA0KPiArICBVSU5UMzIgQ2FjaGVBZGRyZXNzUGFyaXR5TWFzaw0KPiA6 ICAxOyAvLyBiaXQgMS4uMQ0KPiArICBVSU5UMzIgQ2FjaGVCeXRlRW5hYmxlUGFyaXR5TWFzaw0K PiA6ICAxOyAvLyBiaXQgMi4uMg0KPiArICBVSU5UMzIgQ2FjaGVEYXRhRWNjTWFzaw0KPiA6ICAx OyAvLyBiaXQgMy4uMw0KPiArICBVSU5UMzIgTWVtRGF0YVBhcml0eU1hc2sNCj4gOiAgMTsgLy8g Yml0IDQuLjQNCj4gKyAgVUlOVDMyIE1lbUFkZHJlc3NQYXJpdHlNYXNrDQo+IDogIDE7IC8vIGJp dCA1Li41DQo+ICsgIFVJTlQzMiBNZW1CeXRlRW5hYmxlUGFyaXR5TWFzaw0KPiA6ICAxOyAvLyBi aXQgNi4uNg0KPiArICBVSU5UMzIgTWVtRGF0YUVjY01hc2sNCj4gOiAgMTsgLy8gYml0IDcuLjcN Cj4gKyAgVUlOVDMyIFJlSW5pdFRocmVzaG9sZE1hc2sNCj4gOiAgMTsgLy8gYml0IDguLjgNCj4g KyAgVUlOVDMyIFJzdmRFbmNvZGluZ1Zpb2xhdGlvbk1hc2sNCj4gOiAgMTsgLy8gYml0IDkuLjkN Cj4gKyAgVUlOVDMyIFBvaXNvblJlY2VpdmVkTWFzaw0KPiA6ICAxOyAvLyBiaXQgMTAuLjEwDQo+ ICsgIFVJTlQzMiBSZWNlaXZlck92ZXJmbG93TWFzaw0KPiA6ICAxOyAvLyBiaXQgMTEuLjExDQo+ ICsgIFVJTlQzMiBSZXNlcnZlZA0KPiA6IDIwOyAvLyBiaXQgMTIuLjMxDQo+ICsgIH0gQml0czsN Cj4gKyAgVUlOVDMyDQo+IFVpbnQzMjsNCj4gK30gQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VSUk9S X01BU0s7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICBVSU5U MzIgQ2FjaGVEYXRhUGFyaXR5U2V2ZXJpdHkNCj4gOiAgMTsgLy8gYml0IDAuLjANCj4gKyAgVUlO VDMyIENhY2hlQWRkcmVzc1Bhcml0eVNldmVyaXR5DQo+IDogIDE7IC8vIGJpdCAxLi4xDQo+ICsg IFVJTlQzMiBDYWNoZUJ5dGVFbmFibGVQYXJpdHlTZXZlcml0eQ0KPiA6ICAxOyAvLyBiaXQgMi4u Mg0KPiArICBVSU5UMzIgQ2FjaGVEYXRhRWNjU2V2ZXJpdHkNCj4gOiAgMTsgLy8gYml0IDMuLjMN Cj4gKyAgVUlOVDMyIE1lbURhdGFQYXJpdHlTZXZlcml0eQ0KPiA6ICAxOyAvLyBiaXQgNC4uNA0K PiArICBVSU5UMzIgTWVtQWRkcmVzc1Bhcml0eVNldmVyaXR5DQo+IDogIDE7IC8vIGJpdCA1Li41 DQo+ICsgIFVJTlQzMiBNZW1CeXRlRW5hYmxlUGFyaXR5U2V2ZXJpdHkNCj4gOiAgMTsgLy8gYml0 IDYuLjYNCj4gKyAgVUlOVDMyIE1lbURhdGFFY2NTZXZlcml0eQ0KPiA6ICAxOyAvLyBiaXQgNy4u Nw0KPiArICBVSU5UMzIgUmVJbml0VGhyZXNob2xkU2V2ZXJpdHkNCj4gOiAgMTsgLy8gYml0IDgu LjgNCj4gKyAgVUlOVDMyIFJzdmRFbmNvZGluZ1Zpb2xhdGlvblNldmVyaXR5DQo+IDogIDE7IC8v IGJpdCA5Li45DQo+ICsgIFVJTlQzMiBQb2lzb25SZWNlaXZlZFNldmVyaXR5DQo+IDogIDE7IC8v IGJpdCAxMC4uMTANCj4gKyAgVUlOVDMyIFJlY2VpdmVyT3ZlcmZsb3dTZXZlcml0eQ0KPiA6ICAx OyAvLyBiaXQgMTEuLjExDQo+ICsgIFVJTlQzMiBSZXNlcnZlZA0KPiA6IDIwOyAvLyBiaXQgMTIu LjMxDQo+ICsgIH0gQml0czsNCj4gKyAgVUlOVDMyDQo+IFVpbnQzMjsNCj4gK30gQ1hMXzFfMV9V TkNPUlJFQ1RBQkxFX0VSUk9SX1NFVkVSSVRZOw0KPiArDQo+ICt0eXBlZGVmIHVuaW9uIHsNCj4g KyAgc3RydWN0IHsNCj4gKyAgVUlOVDMyIENhY2hlRGF0YUVjYw0KPiA6ICAxOyAvLyBiaXQgMC4u MA0KPiArICBVSU5UMzIgTWVtb3J5RGF0YUVjYw0KPiA6ICAxOyAvLyBiaXQgMS4uMQ0KPiArICBV SU5UMzIgQ3JjVGhyZXNob2xkDQo+IDogIDE7IC8vIGJpdCAyLi4yDQo+ICsgIFVJTlQzMiBSZXRy eVRocmVzaG9sZA0KPiA6ICAxOyAvLyBiaXQgMy4uMw0KPiArICBVSU5UMzIgQ2FjaGVQb2lzb25S ZWNlaXZlZA0KPiA6ICAxOyAvLyBiaXQgNC4uNA0KPiArICBVSU5UMzIgTWVtb3J5UG9pc29uUmVj ZWl2ZWQNCj4gOiAgMTsgLy8gYml0IDUuLjUNCj4gKyAgVUlOVDMyIFBoeXNpY2FsTGF5ZXJFcnJv cg0KPiA6ICAxOyAvLyBiaXQgNi4uNg0KPiArICBVSU5UMzIgUmVzZXJ2ZWQNCj4gOiAyNTsgLy8g Yml0IDcuLjMxDQo+ICsgIH0gQml0czsNCj4gKyAgVUlOVDMyDQo+IFVpbnQzMjsNCj4gK30gQ1hM X0NPUlJFQ1RBQkxFX0VSUk9SX1NUQVRVUzsNCj4gKw0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsg IHN0cnVjdCB7DQo+ICsgIFVJTlQzMiBDYWNoZURhdGFFY2NNYXNrDQo+IDogIDE7IC8vIGJpdCAw Li4wDQo+ICsgIFVJTlQzMiBNZW1vcnlEYXRhRWNjTWFzaw0KPiA6ICAxOyAvLyBiaXQgMS4uMQ0K PiArICBVSU5UMzIgQ3JjVGhyZXNob2xkTWFzaw0KPiA6ICAxOyAvLyBiaXQgMi4uMg0KPiArICBV SU5UMzIgUmV0cnlUaHJlc2hvbGRNYXNrDQo+IDogIDE7IC8vIGJpdCAzLi4zDQo+ICsgIFVJTlQz MiBDYWNoZVBvaXNvblJlY2VpdmVkTWFzaw0KPiA6ICAxOyAvLyBiaXQgNC4uNA0KPiArICBVSU5U MzIgTWVtb3J5UG9pc29uUmVjZWl2ZWRNYXNrDQo+IDogIDE7IC8vIGJpdCA1Li41DQo+ICsgIFVJ TlQzMiBQaHlzaWNhbExheWVyRXJyb3JNYXNrDQo+IDogIDE7IC8vIGJpdCA2Li42DQo+ICsgIFVJ TlQzMiBSZXNlcnZlZA0KPiA6IDI1OyAvLyBiaXQgNy4uMzENCj4gKyAgfSBCaXRzOw0KPiArICBV SU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfQ09SUkVDVEFCTEVfRVJST1JfTUFTSzsNCj4gKw0K PiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQzMiBGaXJzdEVycm9y UG9pbnRlcg0KPiA6ICA0OyAvLyBiaXQgMC4uMw0KPiArICBVSU5UMzIgUmVzZXJ2ZWQxDQo+IDog IDU7IC8vIGJpdCA0Li44DQo+ICsgIFVJTlQzMiBNdWx0aXBsZUhlYWRlclJlY29yZGluZ0NhcGFi aWxpdHkNCj4gOiAgMTsgLy8gYml0IDkuLjkNCj4gKyAgVUlOVDMyIFJlc2VydmVkMg0KPiA6ICAz OyAvLyBiaXQgMTAuLjEyDQo+ICsgIFVJTlQzMiBQb2lzb25FbmFibGVkDQo+IDogIDE7IC8vIGJp dCAxMy4uMTMNCj4gKyAgVUlOVDMyIFJlc2VydmVkMw0KPiA6IDE4OyAvLyBiaXQgMTQuLjMxDQo+ ICsgIH0gQml0czsNCj4gKyAgVUlOVDMyDQo+IFVpbnQzMjsNCj4gK30gQ1hMX0VSUk9SX0NBUEFC SUxJVElFU19BTkRfQ09OVFJPTDsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgew0KPiArICBDWExf MV8xX1VOQ09SUkVDVEFCTEVfRVJST1JfU1RBVFVTDQo+IEhlYWRlckxvZ1sxNl07DQo+ICt9IENY TF9IRUFERVJfTE9HOw0KPiArDQo+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ICsgIENYTF8xXzFfVU5D T1JSRUNUQUJMRV9FUlJPUl9TVEFUVVMNCj4gVW5jb3JyZWN0YWJsZUVycm9yU3RhdHVzOyAgICAg Ly8gb2Zmc2V0IDANCj4gKyAgQ1hMXzFfMV9VTkNPUlJFQ1RBQkxFX0VSUk9SX01BU0sNCj4gVW5j b3JyZWN0YWJsZUVycm9yTWFzazsgICAgICAgLy8gb2Zmc2V0IDQNCj4gKyAgQ1hMXzFfMV9VTkNP UlJFQ1RBQkxFX0VSUk9SX1NFVkVSSVRZDQo+IFVuY29ycmVjdGFibGVFcnJvclNldmVyaXR5OyAg IC8vIG9mZnNldCA4DQo+ICsgIENYTF9DT1JSRUNUQUJMRV9FUlJPUl9TVEFUVVMNCj4gQ29ycmVj dGFibGVFcnJvclN0YXR1czsgICAgICAgLy8gb2Zmc2V0IDEyDQo+ICsgIENYTF9DT1JSRUNUQUJM RV9FUlJPUl9NQVNLDQo+IENvcnJlY3RhYmxlRXJyb3JNYXNrOyAgICAgICAgIC8vIG9mZnNldCAx Ng0KPiArICBDWExfRVJST1JfQ0FQQUJJTElUSUVTX0FORF9DT05UUk9MDQo+IEVycm9yQ2FwYWJp bGl0aWVzQW5kQ29udHJvbDsgIC8vIG9mZnNldCAyMA0KPiArICBDWExfSEVBREVSX0xPRw0KPiBI ZWFkZXJMb2c7ICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQgMjQNCj4gK30gQ1hMXzFfMV9S QVNfQ0FQQUJJTElUWV9TVFJVQ1RVUkU7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBz dHJ1Y3Qgew0KPiArICBVSU5UMzIgRGV2aWNlVHJ1c3RMZXZlbA0KPiA6ICAyOyAvLyBiaXQgMC4u MQ0KPiArICBVSU5UMzIgUmVzZXJ2ZWQNCj4gOiAzMDsgLy8gYml0IDIuLjMxDQo+ICsgIH0gQml0 czsNCj4gKyAgVUlOVDMyDQo+IFVpbnQzMjsNCj4gK30gQ1hMXzFfMV9TRUNVUklUWV9QT0xJQ1k7 DQo+ICsNCj4gK3R5cGVkZWYgc3RydWN0IHsNCj4gKyAgQ1hMXzFfMV9TRUNVUklUWV9QT0xJQ1kN Cj4gU2VjdXJpdHlQb2xpY3k7DQo+ICt9IENYTF8xXzFfU0VDVVJJVFlfQ0FQQUJJTElUWV9TVFJV Q1RVUkU7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICBVSU5U NjQgQ3hsTGlua1ZlcnNpb25TdXBwb3J0ZWQNCj4gOiAgNDsgLy8gYml0IDAuLjMNCj4gKyAgVUlO VDY0IEN4bExpbmtWZXJzaW9uUmVjZWl2ZWQNCj4gOiAgNDsgLy8gYml0IDQuLjcNCj4gKyAgVUlO VDY0IExscldyYXBWYWx1ZVN1cHBvcnRlZA0KPiA6ICA4OyAvLyBiaXQgOC4uMTUNCj4gKyAgVUlO VDY0IExscldyYXBWYWx1ZVJlY2VpdmVkDQo+IDogIDg7IC8vIGJpdCAxNi4uMjMNCj4gKyAgVUlO VDY0IE51bVJldHJ5UmVjZWl2ZWQNCj4gOiAgNTsgLy8gYml0IDI0Li4yOA0KPiArICBVSU5UNjQg TnVtUGh5UmVpbml0UmVjZWl2ZWQNCj4gOiAgNTsgLy8gYml0IDI5Li4zMw0KPiArICBVSU5UNjQg V3JQdHJSZWNlaXZlZA0KPiA6ICA4OyAvLyBiaXQgMzQuLjQxDQo+ICsgIFVJTlQ2NCBFY2hvRXNl cVJlY2VpdmVkDQo+IDogIDg7IC8vIGJpdCA0Mi4uNDkNCj4gKyAgVUlOVDY0IE51bUZyZWVCdWZS ZWNlaXZlZA0KPiA6ICA4OyAvLyBiaXQgNTAuLjU3DQo+ICsgIFVJTlQ2NCBSZXNlcnZlZA0KPiA6 ICA2OyAvLyBiaXQgNTguLjYzDQo+ICsgIH0gQml0czsNCj4gKyAgVUlOVDY0DQo+IFVpbnQ2NDsN Cj4gK30gQ1hMX0xJTktfTEFZRVJfQ0FQQUJJTElUWTsNCj4gKw0KPiArdHlwZWRlZiB1bmlvbiB7 DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQxNiBMbFJlc2V0DQo+IDogIDE7IC8vIGJpdCAwLi4w DQo+ICsgIFVJTlQxNiBMbEluaXRTdGFsbA0KPiA6ICAxOyAvLyBiaXQgMS4uMQ0KPiArICBVSU5U MTYgTGxDcmRTdGFsbA0KPiA6ICAxOyAvLyBiaXQgMi4uMg0KPiArICBVSU5UMTYgSW5pdFN0YXRl DQo+IDogIDI7IC8vIGJpdCAzLi40DQo+ICsgIFVJTlQxNiBMbFJldHJ5QnVmZmVyQ29uc3VtZWQN Cj4gOiAgODsgLy8gYml0IDUuLjEyDQo+ICsgIFVJTlQxNiBSZXNlcnZlZA0KPiA6ICAzOyAvLyBi aXQgMTMuLjE1DQo+ICsgIH0gQml0czsNCj4gKyAgVUlOVDE2DQo+IFVpbnQxNjsNCj4gK30gQ1hM X0xJTktfTEFZRVJfQ09OVFJPTF9BTkRfU1RBVFVTOw0KPiArDQo+ICt0eXBlZGVmIHVuaW9uIHsN Cj4gKyAgc3RydWN0IHsNCj4gKyAgVUlOVDY0IENhY2hlUmVxQ3JlZGl0cw0KPiA6IDEwOyAvLyBi aXQgMC4uOQ0KPiArICBVSU5UNjQgQ2FjaGVSc3BDcmVkaXRzDQo+IDogMTA7IC8vIGJpdCAxMC4u MTkNCj4gKyAgVUlOVDY0IENhY2hlRGF0YUNyZWRpdHMNCj4gOiAxMDsgLy8gYml0IDIwLi4yOQ0K PiArICBVSU5UNjQgTWVtUmVxUnNwQ3JlZGl0cw0KPiA6IDEwOyAvLyBiaXQgMzAuLjM5DQo+ICsg IFVJTlQ2NCBNZW1EYXRhQ3JlZGl0cw0KPiA6IDEwOyAvLyBiaXQgNDAuLjQ5DQo+ICsgIH0gQml0 czsNCj4gKyAgVUlOVDY0DQo+IFVpbnQ2NDsNCj4gK30gQ1hMX0xJTktfTEFZRVJfUlhfQ1JFRElU X0NPTlRST0w7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1Y3Qgew0KPiArICBV SU5UNjQgQ2FjaGVSZXFDcmVkaXRzDQo+IDogMTA7IC8vIGJpdCAwLi45DQo+ICsgIFVJTlQ2NCBD YWNoZVJzcENyZWRpdHMNCj4gOiAxMDsgLy8gYml0IDEwLi4xOQ0KPiArICBVSU5UNjQgQ2FjaGVE YXRhQ3JlZGl0cw0KPiA6IDEwOyAvLyBiaXQgMjAuLjI5DQo+ICsgIFVJTlQ2NCBNZW1SZXFSc3BD cmVkaXRzDQo+IDogMTA7IC8vIGJpdCAzMC4uMzkNCj4gKyAgVUlOVDY0IE1lbURhdGFDcmVkaXRz DQo+IDogMTA7IC8vIGJpdCA0MC4uNDkNCj4gKyAgfSBCaXRzOw0KPiArICBVSU5UNjQNCj4gVWlu dDY0Ow0KPiArfSBDWExfTElOS19MQVlFUl9SWF9DUkVESVRfUkVUVVJOX1NUQVRVUzsNCj4gKw0K PiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQ2NCBDYWNoZVJlcUNy ZWRpdHMNCj4gOiAxMDsgLy8gYml0IDAuLjkNCj4gKyAgVUlOVDY0IENhY2hlUnNwQ3JlZGl0cw0K PiA6IDEwOyAvLyBiaXQgMTAuLjE5DQo+ICsgIFVJTlQ2NCBDYWNoZURhdGFDcmVkaXRzDQo+IDog MTA7IC8vIGJpdCAyMC4uMjkNCj4gKyAgVUlOVDY0IE1lbVJlcVJzcENyZWRpdHMNCj4gOiAxMDsg Ly8gYml0IDMwLi4zOQ0KPiArICBVSU5UNjQgTWVtRGF0YUNyZWRpdHMNCj4gOiAxMDsgLy8gYml0 IDQwLi40OQ0KPiArICB9IEJpdHM7DQo+ICsgIFVJTlQ2NA0KPiBVaW50NjQ7DQo+ICt9IENYTF9M SU5LX0xBWUVSX1RYX0NSRURJVF9TVEFUVVM7DQo+ICsNCj4gK3R5cGVkZWYgdW5pb24gew0KPiAr ICBzdHJ1Y3Qgew0KPiArICBVSU5UMzIgQWNrRm9yY2VUaHJlc2hvbGQNCj4gOiAgODsgLy8gYml0 IDAuLjcNCj4gKyAgVUlOVDMyIEFja0ZMdXNoUmV0aW1lcg0KPiA6IDEwOyAvLyBiaXQgOC4uMTcN Cj4gKyAgfSBCaXRzOw0KPiArICBVSU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfTElOS19MQVlF Ul9BQ0tfVElNRVJfQ09OVFJPTDsNCj4gKw0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVj dCB7DQo+ICsgIFVJTlQzMiBNZGhEaXNhYmxlDQo+IDogIDE7IC8vIGJpdCAwLi4wDQo+ICsgIFVJ TlQzMiBSZXNlcnZlZA0KPiA6IDMxOyAvLyBiaXQgMS4uMzENCj4gKyAgfSBCaXRzOw0KPiArICBV SU5UMzINCj4gVWludDMyOw0KPiArfSBDWExfTElOS19MQVlFUl9ERUZFQVRVUkU7DQo+ICsNCj4g K3R5cGVkZWYgc3RydWN0IHsNCj4gKyAgQ1hMX0xJTktfTEFZRVJfQ0FQQUJJTElUWQ0KPiBMaW5r TGF5ZXJDYXBhYmlsaXR5OyAgICAgICAgICAgIC8vIG9mZnNldCAwDQo+ICsgIENYTF9MSU5LX0xB WUVSX0NPTlRST0xfQU5EX1NUQVRVUw0KPiBMaW5rTGF5ZXJDb250cm9sU3RhdHVzOyAgICAgICAg IC8vIG9mZnNldCA4DQo+ICsgIENYTF9MSU5LX0xBWUVSX1JYX0NSRURJVF9DT05UUk9MDQo+IExp bmtMYXllclJ4Q3JlZGl0Q29udHJvbDsgICAgICAgLy8gb2Zmc2V0IDEwDQo+ICsgIENYTF9MSU5L X0xBWUVSX1JYX0NSRURJVF9SRVRVUk5fU1RBVFVTDQo+IExpbmtMYXllclJ4Q3JlZGl0UmV0dXJu U3RhdHVzOyAgLy8gb2Zmc2V0IDE4DQo+ICsgIENYTF9MSU5LX0xBWUVSX1RYX0NSRURJVF9TVEFU VVMNCj4gTGlua0xheWVyVHhDcmVkaXRTdGF0dXM7ICAgICAgICAvLyBvZmZzZXQgMjYNCj4gKyAg Q1hMX0xJTktfTEFZRVJfQUNLX1RJTUVSX0NPTlRST0wNCj4gTGlua0xheWVyQWNrVGltZXJDb250 cm9sOyAgICAgICAvLyBvZmZzZXQgMzQNCj4gKyAgQ1hMX0xJTktfTEFZRVJfREVGRUFUVVJFDQo+ IExpbmtMYXllckRlZmVhdHVyZTsgICAgICAgICAgICAgLy8gb2Zmc2V0IDM4DQo+ICt9IENYTF8x XzFfTElOS19DQVBBQklMSVRZX1NUUlVDVFVSRTsNCj4gKw0KPiArI2RlZmluZSBDWExfSU9fQVJC SVRSQVRJT05fQ09OVFJPTF9PRkZTRVQNCj4gMHgxODANCj4gK3R5cGVkZWYgdW5pb24gew0KPiAr ICBzdHJ1Y3Qgew0KPiArICBVSU5UMzIgUmVzZXJ2ZWQxDQo+IDogIDQ7IC8vIGJpdCAwLi4zDQo+ ICsgIFVJTlQzMiBXZWlnaHRlZFJvdW5kUm9iaW5BcmJpdHJhdGlvbldlaWdodA0KPiA6ICA0OyAv LyBiaXQgNC4uNw0KPiArICBVSU5UMzIgUmVzZXJ2ZWQyDQo+IDogMjQ7IC8vIGJpdCA4Li4zMQ0K PiArICB9IEJpdHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9IENYTF9JT19BUkJJVFJB VElPTl9DT05UUk9MOw0KPiArDQo+ICsjZGVmaW5lIENYTF9DQUNIRV9NRU1PUllfQVJCSVRSQVRJ T05fQ09OVFJPTF9PRkZTRVQNCj4gMHgxQzANCj4gK3R5cGVkZWYgdW5pb24gew0KPiArICBzdHJ1 Y3Qgew0KPiArICBVSU5UMzIgUmVzZXJ2ZWQxDQo+IDogIDQ7IC8vIGJpdCAwLi4zDQo+ICsgIFVJ TlQzMiBXZWlnaHRlZFJvdW5kUm9iaW5BcmJpdHJhdGlvbldlaWdodA0KPiA6ICA0OyAvLyBiaXQg NC4uNw0KPiArICBVSU5UMzIgUmVzZXJ2ZWQyDQo+IDogMjQ7IC8vIGJpdCA4Li4zMQ0KPiArICB9 IEJpdHM7DQo+ICsgIFVJTlQzMg0KPiBVaW50MzI7DQo+ICt9IENYTF9DQUNIRV9NRU1PUllfQVJC SVRSQVRJT05fQ09OVFJPTDsNCj4gKy8vL0B9DQo+ICsNCj4gKy8vLyBUaGUgQ1hMLlJDUkIgYmFz ZSByZWdpc3RlciBkZWZpbml0aW9uDQo+ICsvLy8gQmFzZWQgb24gY2hhcHRlciA3LjMgb2YgQ29t cHV0ZSBFeHByZXNzIExpbmsNCj4gU3BlY2lmaWNhdGlvbiBSZXZpc2lvbjogMS4xDQo+ICsvLy9A ew0KPiArdHlwZWRlZiB1bmlvbiB7DQo+ICsgIHN0cnVjdCB7DQo+ICsgIFVJTlQ2NCBSY3JiRW5h YmxlDQo+IDogIDE7IC8vIGJpdCAwLi4wDQo+ICsgIFVJTlQ2NCBSZXNlcnZlZA0KPiA6IDEyOyAv LyBiaXQgMS4uMTINCj4gKyAgVUlOVDY0IFJjcmJCYXNlQWRkcmVzcw0KPiA6IDUxOyAvLyBiaXQg MTMuLjYzDQo+ICsgIH0gQml0czsNCj4gKyAgVUlOVDY0DQo+IFVpbnQ2NDsNCj4gK30gQ1hMX1JD UkJfQkFTRTsNCj4gKy8vL0B9DQo+ICsNCj4gKyNwcmFnbWEgcGFjaygpDQo+ICsNCj4gKy8vDQo+ ICsvLyBDWEwgRG93bnN0cmVhbSAvIFVwc3RyZWFtIFBvcnQgUkNSQiBzcGFjZSByZWdpc3Rlcg0K PiBvZmZzZXRzDQo+ICsvLyBDb21wdXRlIEV4cHJlc3MgTGluayBTcGVjaWZpY2F0aW9uIFJldmlz aW9uOiAxLjEgLQ0KPiBDaGFwdGVyIDcuMi4xLjEgLSBGaWd1cmUgOTcNCj4gKy8vDQo+ICsjZGVm aW5lIENYTF9QT1JUX1JDUkJfTUVNQkFSMF9MT1dfT0ZGU0VUDQo+IDB4MDEwDQo+ICsjZGVmaW5l IENYTF9QT1JUX1JDUkJfTUVNQkFSMF9ISUdIX09GRlNFVA0KPiAweDAxNA0KPiArI2RlZmluZSBD WExfUE9SVF9SQ1JCX0VYVEVOREVEX0NBUEFCSUxJVFlfQkFTRV9PRkZTRVQNCj4gMHgxMDANCj4g Kw0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5k YXJkL1BjaS5oDQo+IGIvTWRlUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9QY2kuaA0KPiBp bmRleCA4ZWQ5NmI5OTJhLi5iYmY3YzBjMDBjIDEwMDY0NA0KPiAtLS0gYS9NZGVQa2cvSW5jbHVk ZS9JbmR1c3RyeVN0YW5kYXJkL1BjaS5oDQo+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0luZHVzdHJ5 U3RhbmRhcmQvUGNpLmgNCj4gQEAgLTksOSArOSw3IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtDQo+IFBhdGVudA0KPiAgI2lmbmRlZiBfUENJX0hfDQo+ICAjZGVmaW5l IF9QQ0lfSF8NCj4gDQo+IC0jaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9QY2kzMC5oPg0KPiAt I2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvUGNpRXhwcmVzczIxLmg+DQo+IC0jaW5jbHVkZSA8 SW5kdXN0cnlTdGFuZGFyZC9QY2lFeHByZXNzMzAuaD4NCj4gKyNpbmNsdWRlIDxJbmR1c3RyeVN0 YW5kYXJkL1BjaUV4cHJlc3M1MC5oPg0KPiAgI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvUGNp Q29kZUlkLmg+DQo+IA0KPiAgI2VuZGlmDQo+IC0tDQo+IDIuMjEuMC53aW5kb3dzLjENCj4gDQo+ IA0KPiANCg0K