From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web09.2175.1662590446405785831 for ; Wed, 07 Sep 2022 15:40:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=fh5oOd1K; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.151, mailfrom: isaac.w.oram@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662590446; x=1694126446; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=bB4f9XYReLFYiWZZ7RLyLDT35i7ZQosSDUziOYaW4tk=; b=fh5oOd1KPs1kAwdYaUz9JNGBnsJiyk5TFXxNIs6fn9156uNbus7hZKqa 7JPJuuwSrJab/4Nsg4DTYvcYa1HZM7r2vPgqADC+bDdkchhD4E4NzddWp G8d/k1gfCu4ZYFmB2yPwE3rTXLU3sx3OZNZLK86Rxxz4Scfk0MjzMx7Lp bgYiJfgzmt4Hvsi9PZmmjGZ2SqRnObvuGrYZ3Q864Ftajm9mbYaeQ31Cm bkMNkg+GYFA6rH1Vrijru5S7r3jkkCkAS6v5JKUr4JmwmFvoYWctdGaSH HkWQNICi0+BA2QbLiMKk5b8CO5fB0fq7d0KsrBmT2Xgj0RxHfbY2eFZXr g==; X-IronPort-AV: E=McAfee;i="6500,9779,10463"; a="277404600" X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208";a="277404600" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Sep 2022 15:40:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,298,1654585200"; d="scan'208";a="703782182" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 07 Sep 2022 15:40:45 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 7 Sep 2022 15:40:44 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 7 Sep 2022 15:40:44 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 7 Sep 2022 15:40:44 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.49) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 7 Sep 2022 15:40:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UQq+fw4fQ2CifCRxurfYpZ3N1SoF8Zq6CaDr1G8RJAN68xXEj66105D6EjE2+Nry/mHIji/y87vwO0wfWbM0G1fg+P27q9Wgwcb+ylrRrNBDIetpp0SVdOEU3MxceF5j6CpsBIMXpXi0geBtezs5y0gqvYOeP9marVPbwYkY7Y974hrJKwhn3Et85+gb3ZBJvoBDNu3pIehmVuGd3MXelt1BO6Jyw6KAc2GgfvQbU8jJYgQOLJzNhTHjS8cZG80gZc97gcDP0qFZ5cT9dWKuuvqRtTrBgpaP47G0H/GNDObOZ4xHjlRiwzuvtgpxCEVc230hxL481XHnWg4AaYxxig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bB4f9XYReLFYiWZZ7RLyLDT35i7ZQosSDUziOYaW4tk=; b=JWhUb9QYKEGEpeqzDIKao7xYes1KvCvWaVTrYaCq85QLn3DyVHNgblLr3hanIrCxI7H+8ahHG4LjBYfR6vqto0qIzNcaEsUqc2iqveYrrF5g/DldkMVnKYgcCznULaawdYj8ty3ZLOnjP6ZDkD+L9JINYGz6PIvEAZ71XVjRZ3RXAsEmHtfN1RaYbPbbUTNnuGc7CNLIfs4dlQqkkkPZ3I3JVl2OsDz6p9DgqDI9kZFVI40u9kkyb1yuSkSZjEZJF0LOOWlv4ef0JFBMtdmFFAA0iLw4Ar076GAaGN6RXN2t9UKeXA8HmVmJSDeFUFI1TW8zG09FGE2C5L/icjaEdQ== 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 Received: from SA1PR11MB5801.namprd11.prod.outlook.com (2603:10b6:806:23d::13) by DM4PR11MB5312.namprd11.prod.outlook.com (2603:10b6:5:393::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.11; Wed, 7 Sep 2022 22:40:26 +0000 Received: from SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::4149:e96e:480e:e1c3]) by SA1PR11MB5801.namprd11.prod.outlook.com ([fe80::4149:e96e:480e:e1c3%5]) with mapi id 15.20.5588.010; Wed, 7 Sep 2022 22:40:26 +0000 From: "Isaac Oram" To: "devel@edk2.groups.io" , "Oram, Isaac W" , =?utf-8?B?Q3J5c3RhbExlZSBb5p2O5oCh6JCxXQ==?= CC: "Chaganty, Rangasai V" , "Desimone, Nathaniel L" , "Gao, Liming" , =?utf-8?B?RGF2aWRIc2llaCBb6Kyd5Z2k5pm6XQ==?= Subject: Re: [edk2-devel] [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Topic: [edk2-devel] [PATCH v2 1/1] Features/Intel/OutOfBandManagement/AsfFeaturePkg: Add initial package Thread-Index: AQHYwSEpN612sKVjEE2w0iYpje4GYa3UkidQgAABLyA= Date: Wed, 7 Sep 2022 22:40:26 +0000 Message-ID: References: <175c6ce10ac73a4f0b60d366bcd67b1511f3ab63.1662378708.git.CrystalLee@ami.com> <1712B4FC5186ABBC.20240@groups.io> In-Reply-To: <1712B4FC5186ABBC.20240@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d76c4be7-a870-471f-f75b-08da9121f5af x-ms-traffictypediagnostic: DM4PR11MB5312:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oN6yb0ZPq2E6ugeSpq8SABTawUc+JBOC6D9Qkhk3XfLTebR9v/x5LJA+h7byCblWPMwUqBtcYQVr9qpy5p89EmWqNU5C2NrT3vlW2pg+kE7tqMaIFvK73lIW15/mD3k+Ci2zG2UEuJ10D2JdNuYv6FvaWGXgHMGw/goesVbiBuwn/cUbqd2rf4Tjh1GBMKR69nGPB5h7t1wLdA7WuLFsIx3lqw2f1L44kugSyTbOKq9Ss/Nkwkgkj45Lf8Y/RkgQxNm/Xo16oxmB6j/2lHRapsqQv+qfG0htGpcTd9qgNtuEWtZtYVmoxnA47Sajga9isbZJ/L0htbHYv0nmK453fNoIBdeRFD2eUn2qhyP6uhqcbjBCU8phbjPYj79CMuj8i0Nj9dBNTPYuWqCIT0TbV7G3rNfhAAvLQkCcXOWQJl/gmUugu1vZ6JSChsfbBQQdvXHv4lffnXDT1FkHzcMe/CG8qZsegtU/prW/itPY2XGTfH+6WoOAtXyqVdIhbxLkyLE82JgRcL3/0tKJwiIKvdvq/aeWJkh57YXSC+Wsk2R+A17UcbW2o6WqQWl0BzzlhJktzMgsKO5FW1g6vUHA9lVajcWWkmaqn//ZU6qda+TTwCIQUtJu8Pyw+PkgTQxWrupAJjixAlVMgcaY0whRw0e7PPV2YLo/L/ZFVE+WyauHB7ipIeDo0uEf5NIK1IXjevczIT3mXXCzoeqO+pU7yUCkWIK2XB+erIpfyvsRp5koNMzcPItHwK2b/KmjEcx6Dk4VeNpZCGky5SSE7WFeV+a2SR8KS4URIa0Li/oR/KbcbnuSxEtAEB4IqnZim1RdmI2CeAEBopDOTLG9aocN2A== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB5801.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(6029001)(136003)(39860400002)(376002)(366004)(346002)(396003)(83380400001)(66946007)(66476007)(64756008)(478600001)(19627235002)(8676002)(71200400001)(966005)(66556008)(316002)(4326008)(54906003)(110136005)(66446008)(55016003)(82960400001)(8936002)(52536014)(2906002)(30864003)(76116006)(38100700002)(5660300002)(122000001)(33656002)(40140700001)(38070700005)(86362001)(26005)(9686003)(186003)(53546011)(41300700001)(7696005)(6506007)(559001)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ajNmZHhpV1pXYXJHSFQ2azd3OG9HTFhya2ZUTzlFNnFtcnN2ZnNkbEhYTkY5?= =?utf-8?B?L2EzTnFwRG1BZzNtMHN0WkwxSldnVmNXeGdEbTBKLzdlRDIrVnJ5empPQ0NC?= =?utf-8?B?L2hCbGdoVnVPZFVVbXVGQVdKRytlNFpQOGlYb29mQTFiSEUwYlN5ZFVNSXQ2?= =?utf-8?B?WFRJeUt6TFErM0VaUklPRUxteFp3NzQ0cSsvOTh0aEtnZ3J4cFhhTlg4NERF?= =?utf-8?B?a0NwK3VUbER5VDVTTTJGVjlHNkcxV3BTaEFtMFd3ZWpEc284cW9qaWlXRlBV?= =?utf-8?B?ZVlUS3kzRzMwNTQwcG5hYTBWVEIwVXAyRnlYSXRUVGRNWjRqVUoxWU5DMWFD?= =?utf-8?B?QTRrWG91V3ZMZVptV25XSFRqZEpQRi82Z2Q4V096V0hZTXBhNWlIWU1naXpE?= =?utf-8?B?UG5RZXZpODZqRGJWaURhNUpvM3lKbEFETVJYTS9XTS9RVjBSQVlTbVpJYU50?= =?utf-8?B?KzhBOGUyNHI1UVZMZEVGdWFZTXFFT3ZvUlM3ZURJb01SajJMemVIaEpJYjFs?= =?utf-8?B?dHNRY0tlRUVPZjdwNi9XSUpCZlJSZk5rem0zL0RTT05rclRhaW1IbDNEOUZV?= =?utf-8?B?Z21jeitmak0wKzBPTXk3a1QzY3I2bFJub0lYKzZoTzJDU2gzNDFiS1VxcFR0?= =?utf-8?B?a0VPbEtTcFJBaDFyMDJpZW5NMEtmU1JiTUd4VGowVmc0QUdRMGcxYmJnMTZa?= =?utf-8?B?c0g1bmxrVnA1RmVWRWNCME9ScGVrZTcrUWk1Y3k3Vkk2cEpUMHNsZURYc1py?= =?utf-8?B?ai9xMlU1ZGMwMUtCWTZvVFhmRVBnWWsydHd0UWFPSVRJeUM2S0hTTXc5eGJv?= =?utf-8?B?VXp0MkF6RjVOdlVBNkl4dHFFZDY1UUh0RlNZSk82bnBJUlhKOG9SbVFzYnVF?= =?utf-8?B?emdWb0IrRStXd0NWb1lqRnZjTWFmQlF2MXE0RHN3d0JJdGpmTzFLaU9LSEpw?= =?utf-8?B?T2tYazF4cEVyWVVjNHlQbGlKNll2WUd5UzdMMXQyWmlqTXBOZUwzYi93V2ky?= =?utf-8?B?TTBpYUQyeVY2YldJZU4wSnhEcHVPdXlPZVlPRmhWNlViMTlTVUF4NXpwRGMy?= =?utf-8?B?bTdyb3ZVTG9WR28zaVY4RnlzdjRZNUxHeVJING9STmxQUjRzR2phUk1xcmlq?= =?utf-8?B?bms1UGtVZHQxT3AzalRGYXByd0lSQmR6RWZtUkhEdFV4VUZtajByT0V2MGhz?= =?utf-8?B?bWQ4bERwaUhQL3FLL21iRFgyT3RhQ0lZbWRXeWllQjhtdUYyV2pBVUNWOFJB?= =?utf-8?B?aDVFby9DTTR1cVJ5WFZBdUVwNVlCSTRSNXVqeHJwdE5TVlpwQzIwcExEWmxK?= =?utf-8?B?MGJodG9BaUdycWlrN1A5Q2Q4N2dQQU5mRU5xN2hYZ3QyMGpxRm5LSDNBdyt3?= =?utf-8?B?S1FrRGl6ZWJ0TFdMMUhXNERvU2RHaGltekIvaEFpa1IrYTJxaDJFR0VkNTc0?= =?utf-8?B?dmdwakRMOXZFVElLT3U1RTNxam1QaGhib0R0Rzh4d1Qzd0M4b0lKY0hlT3p0?= =?utf-8?B?MFBVbEhuOWhiMWlNZW5yRXlwS2lxeUIrYjdUUkRwaUVWR2cwWW5vempQeEF4?= =?utf-8?B?dUo2dlR5VlcxUFk3eFNJNG9vMHhpSENObGtqN01KclIreGhDUk03UHhqSjdy?= =?utf-8?B?bytMemNQZTlwSnh6L2o1TUJhbkhob3NXQnV6ejRlakduVWo4UzFEQmcrdGdE?= =?utf-8?B?aEQ4MitMb0FPcEVDTG9PRnJzNTN1cndKUVVTT1QrRjlKM2lVNm9GWkRyQ0hE?= =?utf-8?B?cXhSYTR2WGFOTHdHckx3bzRtTS9uc3M5YkgxdHYrNUhYdjFQZUd6L2ZiejJS?= =?utf-8?B?aktPeURVekQ2UjI4L2psVUxhcXBGKzlCTVpOdEQrK2Q3Q2hRYVhJdzBzNlBD?= =?utf-8?B?eGdUVEtLSlhwZCtUSEZFbWt0Y2kvYkVIUHh3alc2RTR5WFE3QStacnI2OVpy?= =?utf-8?B?SWNZV1ZvM0Q5bXdQVVFSNWJpTHlnSXlWRHZWVm4xSHp3b3hWWlNmSkFYRUNs?= =?utf-8?B?cmFMYWlSYzVqRmRtWS9nMGQxNFdXNEdpeThYaHJHbjhpR2JGM2xuMlBSQy8r?= =?utf-8?B?S2VnZWZZdG43MHZoVkh4ZTU4cnZUNHdvazh5dUdFVHZpaUtYY3VmUVpBWFpR?= =?utf-8?Q?qU+8MjjxXBjhWtO6+lCSV20Yk?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB5801.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d76c4be7-a870-471f-f75b-08da9121f5af X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Sep 2022 22:40:26.8088 (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: O8tbgZFCHUkpypePTDEGQzJmrMKKfpE95nLB68XjX9oYf0fiGBKiIp4ymIeMW5XbkxngLDqE92E7dv3hoaqAxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB5312 Return-Path: isaac.w.oram@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UHVzaGVkIGFzIGE4MTYxNGU0NTYuLjM0MWQ0MWFjNDANCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCkZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4g T24gQmVoYWxmIE9mIElzYWFjIE9yYW0NClNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDcsIDIw MjIgMzozNyBQTQ0KVG86IENyeXN0YWxMZWUgW+adjuaAoeiQsV0gPENyeXN0YWxMZWVAYW1pLmNv bT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQpDYzogQ2hhZ2FudHksIFJhbmdhc2FpIFYgPHJhbmdh c2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPjsgRGVzaW1vbmUsIE5hdGhhbmllbCBMIDxuYXRoYW5p ZWwubC5kZXNpbW9uZUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8Z2FvbGltaW5nQGJ5b3NvZnQu Y29tLmNuPjsgRGF2aWRIc2llaCBb6Kyd5Z2k5pm6XSA8RGF2aWRIc2llaEBhbWkuY29tPg0KU3Vi amVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjIgMS8xXSBGZWF0dXJlcy9JbnRlbC9PdXRP ZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2c6IEFkZCBpbml0aWFsIHBhY2thZ2UNCg0KUmV2 aWV3ZWQtYnk6IElzYWFjIE9yYW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQoNCkxvb2tzIGdv b2QsIHRoYW5rIHlvdS4NCg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IENyeXN0 YWxMZWUgW+adjuaAoeiQsV0gPENyeXN0YWxMZWVAYW1pLmNvbT4gDQpTZW50OiBNb25kYXksIFNl cHRlbWJlciA1LCAyMDIyIDU6MTUgQU0NClRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KQ2M6IE9y YW0sIElzYWFjIFcgPGlzYWFjLncub3JhbUBpbnRlbC5jb20+OyBDaGFnYW50eSwgUmFuZ2FzYWkg ViA8cmFuZ2FzYWkudi5jaGFnYW50eUBpbnRlbC5jb20+OyBEZXNpbW9uZSwgTmF0aGFuaWVsIEwg PG5hdGhhbmllbC5sLmRlc2ltb25lQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdA Ynlvc29mdC5jb20uY24+OyBEYXZpZEhzaWVoIFvorJ3lnaTmmbpdIDxEYXZpZEhzaWVoQGFtaS5j b20+OyBDcnlzdGFsTGVlIFvmnY7mgKHokLFdIDxDcnlzdGFsTGVlQGFtaS5jb20+DQpTdWJqZWN0 OiBbUEFUQ0ggdjIgMS8xXSBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZl YXR1cmVQa2c6IEFkZCBpbml0aWFsIHBhY2thZ2UNCg0KQWRkIGEgbmV3IGZlYXR1cmUgcGFja2Fn ZSBmb3IgQWxlcnQgc3RhbmRhcmQgZm9ybWF0IHN1cHBvcnQuDQoNCkFsZXJ0IFN0YW5kYXJkIGZv cm1hdCBzcGVjaWZpY2F0aW9uKERTUDAxMzYpDQpSRUY6aHR0cHM6Ly93d3cuZG10Zi5vcmcvc2l0 ZXMvZGVmYXVsdC9maWxlcy9zdGFuZGFyZHMvZG9jdW1lbnRzL0RTUDAxMzYucGRmDQoNCkNjOiBT YWkgQ2hhZ2FudHkgPHJhbmdhc2FpLnYuY2hhZ2FudHlAaW50ZWwuY29tPg0KQ2M6IElzYWFjIE9y YW0gPGlzYWFjLncub3JhbUBpbnRlbC5jb20+DQpDYzogTmF0ZSBEZVNpbW9uZSA8bmF0aGFuaWVs LmwuZGVzaW1vbmVAaW50ZWwuY29tPg0KQ2M6IExpbWluZyBHYW8gPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbj4NClNpZ25lZC1vZmYtYnk6IENyeXN0YWxMZWUgPENyeXN0YWxMZWVAYW1pLmNvbT4N Ci0tLQ0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9B c2ZEeGUvQXNmQWNwaVRhYmxlLmMgICAgICAgICAgfCAyMzQgKysrKysrKysrKysrDQogRmVhdHVy ZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUu YyAgICAgICAgICAgICAgICB8IDM0MCArKysrKysrKysrKysrKysrKw0KIEZlYXR1cmVzL0ludGVs L091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXZlbnQuYyAg ICAgICAgICAgfCAzMTkgKysrKysrKysrKysrKysrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFu ZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmMgICAgICAgICAgICAgICAg fCAzODQgKysrKysrKysrKysrKysrKysrKysNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1 cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAx ICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZl YXR1cmVzLmRzYyAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZh bmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzUGNkLmRzYyAgICAgICAgICAg ICAgIHwgICAyICsNCiBGZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9Q b3N0TWVtb3J5LmZkZiAgICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9J bnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA0ICsNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5oICAgICAgICAgICAgICAgIHwgIDY2ICsrKysN CiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhl L0FzZkR4ZS5pbmYgICAgICAgICAgICAgIHwgIDUxICsrKw0KIEZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaSAgICAgICAgICAg ICAgfCAgMTUgKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVy ZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0cmEudW5pICAgICAgICAgfCAgMTMgKw0KIEZlYXR1cmVzL0lu dGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZGZWF0dXJlUGtnLmRlYyAg ICAgICAgICAgICAgfCAgNDcgKysrDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVu dC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjICAgICAgICAgICAgICB8ICA0MCArKw0K IEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkv QXNmUGVpLmluZiAgICAgICAgICAgICAgfCAgNTEgKysrDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZC YW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pICAgICAgICAgICAg ICB8ICAxNSArDQogRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJl UGtnL0FzZlBlaS9Bc2ZQZWlFeHRyYS51bmkgICAgICAgICB8ICAxMyArDQogRmVhdHVyZXMvSW50 ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvQXNmRmVhdHVyZS5k c2MgICAgICAgICB8ICA1MiArKysNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Bc2ZNZXNzYWdlcy5oICAgICAgICAgIHwgMTA0ICsrKysr Kw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNs dWRlL0luZHVzdHJ5U3RhbmRhcmQvQXNmLmggfCAxNDUgKysrKysrKysNCiBGZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZk ZiAgICAgICAgIHwgICA4ICsNCiBGZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmICAgICAgICAgIHwgICA4ICsNCiBGZWF0 dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qcm90 b2NvbC9Bc2ZQcm90b2NvbC5oIHwgIDU3ICsrKw0KIEZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1h bmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQgICAgICAgICAgICAgICAgICAgICAgfCAg NjMgKysrKw0KIDI1IGZpbGVzIGNoYW5nZWQsIDIwNDAgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0t Z2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0Fz ZkR4ZS9Bc2ZBY3BpVGFibGUuYyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQv QXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmQWNwaVRhYmxlLmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQppbmRleCAwMDAwMDAwMDAwLi43ZDRhODY0ZTJjDQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0 dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkFj cGlUYWJsZS5jDQpAQCAtMCwwICsxLDIzNCBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgQWNwaSB0 YWJsZQ0KDQorDQoNCisgIEluc3RhbGwgQXNmIEFjcGkgdGFibGUNCg0KKw0KDQorICBDb3B5cmln aHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoNCisN Cg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1VlZmlCb290U2VydmljZXNUYWJsZUxpYi5oPg0KDQorI2lu Y2x1ZGUgPExpYnJhcnkvRGVidWdMaWIuaD4NCg0KKyNpbmNsdWRlIDxQcm90b2NvbC9BY3BpU3lz dGVtRGVzY3JpcHRpb25UYWJsZS5oPg0KDQorI2luY2x1ZGUgPEluZHVzdHJ5U3RhbmRhcmQvQWxl cnRTdGFuZGFyZEZvcm1hdFRhYmxlLmg+DQoNCisjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9B Y3BpLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvQWNwaVRhYmxlLmg+DQoNCisjaW5jbHVkZSA8 TGlicmFyeS9CYXNlTWVtb3J5TGliLmg+DQoNCisNCg0KKy8vIEFTRiBUYWJsZSBEZWZpbml0aW9u cw0KDQorLy8gQmVsb3cgYXJyYXkgc2l6ZSBkZWZpbmUgc2hvdWxkIGZvbGxvdyBtQXNmQWNwaVRh YmxlIHNldHRpbmcNCg0KKyNkZWZpbmUgQVNGX1JDVExfREVWSUNFU19BUlJBWV9MRU5HVEggIDQN Cg0KKyNkZWZpbmUgQVNGX0FERFJfREVWSUNFX0FSUkFZX0xFTkdUSCAgIDExDQoNCisNCg0KKyNw cmFnbWEgcGFjayhwdXNoLDEpDQoNCisNCg0KKy8vDQoNCisvLyBBbGVydCBSZW1vdGUgQ29udHJv bCBTeXN0ZW0gQWN0aW9ucy4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEVGSV9B Q1BJX0FTRl9SQ1RMICAgICAgICAgICBBc2ZSY3RsOw0KDQorICBFRklfQUNQSV9BU0ZfQ09OVFJP TERBVEEgICAgQ29udHJvbERhdGFBcnJheVtBU0ZfUkNUTF9ERVZJQ0VTX0FSUkFZX0xFTkdUSF07 DQoNCit9IEFDUElfQVNGX1JDVExfQUxMOw0KDQorDQoNCisvLw0KDQorLy8gU21CdXMgRGV2aWNl cyB3aXRoIGZpeGVkIGFkZHJlc3Nlcy4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisg IEVGSV9BQ1BJX0FTRl9BRERSICAgIEFzZkFkZHI7DQoNCisgIFVJTlQ4ICAgICAgICAgICAgICAg IEZpeGVkU21CdXNBZGRyZXNzZXNbQVNGX0FERFJfREVWSUNFX0FSUkFZX0xFTkdUSF07DQoNCit9 IEFDUElfQVNGX0FERFJfQUxMOw0KDQorDQoNCisvLw0KDQorLy8gQUNQSSAxLjAgU3RydWN0dXJl IGZvciBBU0YgRGVzY3JpcHRvciBUYWJsZS4NCg0KKy8vDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoN CisgIEVGSV9BQ1BJX1NEVF9IRUFERVIgICAgSGVhZGVyOw0KDQorICBFRklfQUNQSV9BU0ZfSU5G TyAgICAgIEFzZkluZm87DQoNCisgIEFDUElfQVNGX1JDVExfQUxMICAgICAgQXNmUmN0bEFsbDsN Cg0KKyAgRUZJX0FDUElfQVNGX1JNQ1AgICAgICBBc2ZSbWNwOw0KDQorICBBQ1BJX0FTRl9BRERS X0FMTCAgICAgIEFzZkFkZHJBbGw7DQoNCit9IEFTRl9ERVNDUklQVElPTl9UQUJMRTsNCg0KKw0K DQorI3ByYWdtYSBwYWNrKHBvcCkNCg0KKw0KDQorI2RlZmluZSBFRklfQUNQSV8xXzBfQVNGX0RF U0NSSVBUSU9OX1RBQkxFX1JFVklTSU9OICAweDIwDQoNCisNCg0KK0FTRl9ERVNDUklQVElPTl9U QUJMRSAgbUFzZkFjcGlUYWJsZSA9IHsNCg0KKyAgew0KDQorICAgIEVGSV9BQ1BJX0FTRl9ERVND UklQVElPTl9UQUJMRV9TSUdOQVRVUkUsDQoNCisgICAgc2l6ZW9mIChBU0ZfREVTQ1JJUFRJT05f VEFCTEUpLA0KDQorICAgIEVGSV9BQ1BJXzFfMF9BU0ZfREVTQ1JJUFRJT05fVEFCTEVfUkVWSVNJ T04sDQoNCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLy8gIENoZWNrc3VtDQoNCisNCg0KKyAgICAvLyBPRU0gaWRlbnRpZmljYXRpb24NCg0KKyAg ICB7ICdPJywgICdFJywgICdNJywgICdfJywgJ0knLCAnRCcgfSwNCg0KKw0KDQorICAgIC8vIE9F TSB0YWJsZSBpZGVudGlmaWNhdGlvbg0KDQorICAgIHsgJ0QnLCAgJzgnLCAgJzYnLCAgJzUnLCAn RycsICdDJywgJ0gnLCAnICd9LCAgIC8vIE9FTSB0YWJsZSBpZGVudGlmaWNhdGlvbg0KDQorDQoN CisgICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g T0VNIHJldmlzaW9uIG51bWJlcg0KDQorICAgICgoKCgoJ00nIDw8IDgpICsgJ1MnKSA8PCA4KSAr ICdGJykgPDwgOCkgKyAnVCcsIC8vIEFTTCBjb21waWxlciB2ZW5kb3IgSUQNCg0KKyAgICAxMDAw MDAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBU0wgY29tcGls ZXIgcmV2aXNpb24gbnVtYmVyDQoNCisgIH0sDQoNCisgIHsNCg0KKyAgICAvLw0KDQorICAgIC8v IEVGSV9BQ1BJX0FTRl9JTkZPDQoNCisgICAgLy8NCg0KKyAgICB7DQoNCisgICAgICAweDAwLCAg ICAgICAgICAgICAgICAgICAgICAvLyBUeXBlICJBU0ZfSU5GTyINCg0KKyAgICAgIDB4MDAsICAg ICAgICAgICAgICAgICAgICAgIC8vIFJlc2VydmVkDQoNCisgICAgICBzaXplb2YgKEVGSV9BQ1BJ X0FTRl9JTkZPKSAvLyBMZW5ndGgNCg0KKyAgICB9LA0KDQorICAgIDB4MDUsICAgICAgICAgICAg ICAgLy8gTWluIFdhdGNoZG9nIFJlc2V0IFZhbHVlDQoNCisgICAgMHhGRiwgICAgICAgICAgICAg ICAvLyBNaW4gQVNGIFNlbnNvciBwb2xsIFdhaXQgVGltZQ0KDQorICAgIDB4MDAwMSwgICAgICAg ICAgICAgLy8gU3lzdGVtIElEDQoNCisgICAgMHg1NzAxMDAwMCwgICAgICAgICAvLyBJQU5BIE1h bnVmYWN0dXJlIElEIGZvciBJbnRlbA0KDQorICAgIDB4MDAsICAgICAgICAgICAgICAgLy8gRmVh dHVyZSBGbGFnDQoNCisgICAgew0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgLy8gUmVzZXJ2 ZWQNCg0KKyAgICAgIDB4MDAsDQoNCisgICAgICAweDAwDQoNCisgICAgfSAvLyBSZXNlcnZlZA0K DQorICB9LA0KDQorICB7DQoNCisgICAgLy8NCg0KKyAgICAvLyBBQ1BJX0FTRl9SQ1RMX0FMTA0K DQorICAgIC8vDQoNCisgICAgew0KDQorICAgICAgLy8NCg0KKyAgICAgIC8vIEVGSV9BQ1BJX0FT Rl9SQ1RMDQoNCisgICAgICAvLw0KDQorICAgICAgew0KDQorICAgICAgICAweDAyLCAgICAgICAg ICAgICAgICAgICAgICAvLyBUeXBlICJBU0ZfUkNUTCINCg0KKyAgICAgICAgMHgwMCwgICAgICAg ICAgICAgICAgICAgICAgLy8gUmVzZXJ2ZWQNCg0KKyAgICAgICAgc2l6ZW9mIChBQ1BJX0FTRl9S Q1RMX0FMTCkgLy8gTGVuZ3RoDQoNCisgICAgICB9LA0KDQorICAgICAgMHgwNCwgICAgICAgICAg ICAgLy8gTnVtYmVyIG9mIENvbnRyb2xzDQoNCisgICAgICAweDA0LCAgICAgICAgICAgICAvLyBB cnJheSBFbGVtZW50IExlbmd0aA0KDQorICAgICAgMHgwMDAwICAgICAgICAgICAgLy8gUmVzZXJ2 ZWQNCg0KKyAgICB9LA0KDQorICAgIHsNCg0KKyAgICAgIC8vDQoNCisgICAgICAvLyBFRklfQUNQ SV9BU0ZfQ09OVFJPTERBVEENCg0KKyAgICAgIC8vDQoNCisgICAgICB7IDB4MDAsIDB4ODgsIDB4 MDAsIDB4MDMgfSwgLy8gQ29udHJvbCAwIC0tPiBSZXNldCBzeXN0ZW0NCg0KKyAgICAgIHsgMHgw MSwgMHg4OCwgMHgwMCwgMHgwMiB9LCAvLyBDb250cm9sIDEgLS0+IFBvd2VyIE9mZiBzeXN0ZW0N Cg0KKyAgICAgIHsgMHgwMiwgMHg4OCwgMHgwMCwgMHgwMSB9LCAvLyBDb250cm9sIDIgLS0+IFBv d2VyIE9uIHN5c3RlbQ0KDQorICAgICAgeyAweDAzLCAweDg4LCAweDAwLCAweDA0IH0gIC8vIENv bnRyb2wgMyAtLT4gUG93ZXIgQ3ljbGUgUmVzZXQgKG9mZiB0aGVuIG9uKQ0KDQorICAgIH0NCg0K KyAgfSwNCg0KKyAgew0KDQorICAgIC8vDQoNCisgICAgLy8gRUZJX0FDUElfQVNGX1JNQ1ANCg0K KyAgICAvLw0KDQorICAgIHsNCg0KKyAgICAgIDB4MDMsICAgICAgICAgICAgICAgICAgICAgIC8v IFR5cGUgIkFTRl9STUNQIg0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgLy8g UmVzZXJ2ZWQNCg0KKyAgICAgIHNpemVvZiAoRUZJX0FDUElfQVNGX1JNQ1ApIC8vIExlbmd0aA0K DQorICAgIH0sDQoNCisgICAgew0KDQorICAgICAgLy8gUmVtb3RlIENvbnRyb2wgQ2FwYWJpbGl0 aWVzIHN1cHBvcnRlZCBCaXQgTWFza3MNCg0KKyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAg ICAgICAvLyBTeXN0ZW0gRmlybXdhcmUgQ2FwYWJpbGl0aWVzIEJpdCBNYXNrIGJ5dGUgMQ0KDQor ICAgICAgMHgwMCwgICAgICAgICAgICAgICAgICAgICAgIC8vIFN5c3RlbSBGaXJtd2FyZSBDYXBh YmlsaXRpZXMgQml0IE1hc2sgYnl0ZSAyDQoNCisgICAgICAweDAwLCAgICAgICAgICAgICAgICAg ICAgICAgLy8gU3lzdGVtIEZpcm13YXJlIENhcGFiaWxpdGllcyBCaXQgTWFzayBieXRlIDMNCg0K KyAgICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0gRmlybXdhcmUgQ2Fw YWJpbGl0aWVzIEJpdCBNYXNrIGJ5dGUgNA0KDQorICAgICAgMHgwMCwgICAgICAgICAgICAgICAg ICAgICAgIC8vIFNwZWNpYWwgQ29tbWFuZHMgQml0IE1hc2sgYnl0ZSAxDQoNCisgICAgICAweDAw LCAgICAgICAgICAgICAgICAgICAgICAgLy8gU3BlY2lhbCBDb21tYW5kcyBCaXQgTWFzayBieXRl IDINCg0KKyAgICAgIDB4RjAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTeXN0ZW0gQ2FwYWJp bGl0aWVzIEJpdCBNYXNrIChTdXBwb3J0cyBSZXNldCwNCg0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvLyBQb3dlci1VcCwgUG93ZXItRG93biwgUG93ZXItQ3ljbGUgUmVzZXQg Zm9yDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29tcGF0IGFuZCBz ZWN1cmUgcG9ydC4NCg0KKyAgICB9LA0KDQorICAgIDB4MDAsICAgICAgICAgICAgICAgICAgICAg ICAvLyBCb290IE9wdGlvbiBDb21wbGV0ZSBDb2RlDQoNCisgICAgMHg1NzAxMDAwMCwgICAgICAg ICAgICAgICAgIC8vIElBTkEgSUQgZm9yIEludGVsIE1hbnVmYWN0dXJlcg0KDQorICAgIDB4MDAs ICAgICAgICAgICAgICAgICAgICAgICAvLyBTcGVjaWFsIENvbW1hbmQNCg0KKyAgICB7IDB4MDAs IDB4MDAgfSwgICAgICAgICAgICAgLy8gU3BlY2lhbCBDb21tYW5kIFBhcmFtZXRlcg0KDQorICAg IHsgMHgwMCwgMHgwMCB9LCAgICAgICAgICAgICAvLyBCb290IE9wdGlvbnMNCg0KKyAgICB7IDB4 MDAsIDB4MDAgfSAgICAgICAgICAgICAgLy8gT0VNIFBhcmFtZXRlcnMNCg0KKyAgfSwNCg0KKyAg ew0KDQorICAgIC8vDQoNCisgICAgLy8gQUNQSV9BU0ZfQUREUl9BTEwNCg0KKyAgICAvLw0KDQor ICAgIHsNCg0KKyAgICAgIC8vDQoNCisgICAgICAvLyBFRklfQUNQSV9BU0ZfQUREUg0KDQorICAg ICAgLy8NCg0KKyAgICAgIHsNCg0KKyAgICAgICAgMHg4NCwgICAgICAgICAgICAgICAgICAgICAg Ly8gVHlwZSAiQVNGX0FERFIiLCBsYXN0IHJlY29yZA0KDQorICAgICAgICAweDAwLCAgICAgICAg ICAgICAgICAgICAgICAvLyBSZXNlcnZlZA0KDQorICAgICAgICBzaXplb2YgKEFDUElfQVNGX0FE RFJfQUxMKSAvLyBMZW5ndGgNCg0KKyAgICAgIH0sDQoNCisgICAgICAweDAwLCAgICAgICAgICAg ICAgICAgICAgICAgIC8vIFNFRVBST00gQWRkcmVzcw0KDQorICAgICAgQVNGX0FERFJfREVWSUNF X0FSUkFZX0xFTkdUSCAvLyBOdW1iZXIgT2YgRGV2aWNlcw0KDQorICAgIH0sDQoNCisgICAgLy8N Cg0KKyAgICAvLyBGaXhlZCBTTUJ1cyBBZGRyZXNzDQoNCisgICAgLy8NCg0KKyAgICB7DQoNCisg ICAgICAweDVDLCAweDY4LCAweDg4LCAweEMyLCAweEQyLA0KDQorICAgICAgMHhEQywgMHhBMCwg MHhBMiwgMHhBNCwgMHhBNiwNCg0KKyAgICAgIDB4QzgNCg0KKyAgICB9DQoNCisgIH0NCg0KK307 DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIGluc3RhbGwgdGhlIEFTRiBhY3BpIFRh YmxlLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gIEV2ZW50ICAgICBBIHBvaW50ZXIgdG8gdGhlIEV2 ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBjYWxsYmFjay4NCg0KKyAgQHBhcmFtW2luXSAgQ29udGV4 dCAgIEEgcG9pbnRlciB0byBwcml2YXRlIGRhdGEgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjYWxsYmFj ayBmdW5jdGlvbi4NCg0KKyoqLw0KDQorVk9JRA0KDQorRUZJQVBJDQoNCitJbnN0YWxsQXNmQWNw aVRhYmxlRXZlbnQgICgNCg0KKyAgSU4gRUZJX0VWRU5UICBFdmVudCwNCg0KKyAgSU4gVk9JRCAg ICAgICAqQ29udGV4dA0KDQorICApDQoNCit7DQoNCisgIEVGSV9TVEFUVVMgICAgICAgICAgICAg ICBTdGF0dXM7DQoNCisgIFVJTlROICAgICAgICAgICAgICAgICAgICBUYWJsZUhhbmRsZSA9IDA7 DQoNCisgIEVGSV9BQ1BJX1RBQkxFX1BST1RPQ09MICAqQWNwaVRhYmxlUHJvdG9jb2w7DQoNCisg IFVJTlQ4ICAgICAgICAgICAgICAgICAgICAqQ29udHJvbERhdGFBcnJheXM7DQoNCisgIFVJTlRO ICAgICAgICAgICAgICAgICAgICBDb250cm9sRGF0YUFycmF5c1NpemU7DQoNCisNCg0KKyAgU3Rh dHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoJmdFZmlBY3BpVGFibGVQcm90b2NvbEd1aWQsIE5V TEwsIChWT0lEICoqKSZBY3BpVGFibGVQcm90b2NvbCk7DQoNCisNCg0KKyAgaWYgKCBFRklfRVJS T1IgKFN0YXR1cykpIHsNCg0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiTG9jYXRlIEFjcGkg cHJvdG9jb2wgJXIgRXJyb3JcbiIsIFN0YXR1cykpOw0KDQorICAgIHJldHVybjsNCg0KKyAgfQ0K DQorDQoNCisgIGlmIChFdmVudCAhPSBOVUxMKSB7DQoNCisgICAgZ0JTLT5DbG9zZUV2ZW50IChF dmVudCk7DQoNCisgIH0NCg0KKw0KDQorICBDb250cm9sRGF0YUFycmF5cyA9IChVSU5UOCAqKVBj ZEdldFB0ciAoUGNkQ29udHJvbERhdGFBcnJheXMpOw0KDQorICBDb250cm9sRGF0YUFycmF5c1Np emUgPSBQY2RHZXRTaXplIChQY2RDb250cm9sRGF0YUFycmF5cyk7DQoNCisNCg0KKyAgaWYgKENv bnRyb2xEYXRhQXJyYXlzU2l6ZSA9PSAoc2l6ZW9mKEVGSV9BQ1BJX0FTRl9DT05UUk9MREFUQSkg KiBBU0ZfUkNUTF9ERVZJQ0VTX0FSUkFZX0xFTkdUSCkpIHsNCg0KKyAgICAvLyBDdXJyZW50bHkg QXNmIDIuMCBzcGVjIG9ubHkgc3VwcG9ydCBmb3VyIHR5cGUgb2YgY29udHJvbCBmdW5jdGlvbiwg c28gV2Ugc3VwcG9ydCA0IGFycmF5cyBvZg0KDQorICAgIC8vIEVGSV9BQ1BJX0FTRl9DT05UUk9M REFUQSB0aGF0IHNob3VsZCBiZSBkZWZpbmVkIGluIHRoZSBQY2RDb250cm9sRGF0YUFycmF5cw0K DQorICAgIENvcHlNZW0oKFZPSUQgKikoVUlOVE4pbUFzZkFjcGlUYWJsZS5Bc2ZSY3RsQWxsLkNv bnRyb2xEYXRhQXJyYXksIChWT0lEICopKFVJTlROKUNvbnRyb2xEYXRhQXJyYXlzLCBDb250cm9s RGF0YUFycmF5c1NpemUpOw0KDQorICB9DQoNCisNCg0KK3sNCg0KKyAgVUlOVE4gIEluZGV4Ow0K DQorDQoNCisgIERFQlVHICgoREVCVUdfRVJST1IsICJjcnlzdGFsIENvbnRyb2xEYXRhQXJyYXlz U2l6ZSA9ICV4XG4iLCBDb250cm9sRGF0YUFycmF5c1NpemUpKTsNCg0KKyAgREVCVUcgKChERUJV R19FUlJPUiwgIkNvbnRyb2xEYXRhQXJyYXlzID0gXG4iKSk7DQoNCisgIGZvciAoSW5kZXggPSAw OyBJbmRleCA8IENvbnRyb2xEYXRhQXJyYXlzU2l6ZTsgSW5kZXgrKykgew0KDQorICAgIGlmICgo SW5kZXggIT0gMCkgJiYgKEluZGV4ICUgNCkgPT0gMCkgREVCVUcgKChERUJVR19FUlJPUiwgIlxu IikpOw0KDQorICAgIERFQlVHICgoREVCVUdfRVJST1IsICIlMDJ4ICIsIENvbnRyb2xEYXRhQXJy YXlzW0luZGV4XSkpOw0KDQorICB9DQoNCisgIERFQlVHICgoREVCVUdfRVJST1IsICJcbiIpKTsN Cg0KK30NCg0KKw0KDQorICBBY3BpVGFibGVQcm90b2NvbC0+SW5zdGFsbEFjcGlUYWJsZSAoDQoN CisgICAgICAgICAgICAgICAgICAgICAgIEFjcGlUYWJsZVByb3RvY29sLA0KDQorICAgICAgICAg ICAgICAgICAgICAgICAmbUFzZkFjcGlUYWJsZSwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAg bUFzZkFjcGlUYWJsZS5IZWFkZXIuTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAgICAm VGFibGVIYW5kbGUNCg0KKyAgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKw0KDQorICByZXR1 cm47DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZS5jIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZC YW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuYw0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjdkNjgwNDA0YmENCi0tLSAvZGV2L251bGwNCisr KyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZE eGUvQXNmRHhlLmMNCkBAIC0wLDAgKzEsMzQwIEBADQorLyoqIEBmaWxlDQoNCisgIEFzZiBEeGUg ZHJpdmVyIHdoaWNoIGlzIHVzZWQgZm9yIHNlbmRpbmcgZXZlbnQgcmVjb3JkIGxvZyB0byBOSUMg b3IgcmVjZWl2aW5nDQoNCisgIGJvb3Qgb3B0aW9uIGNvbW1hbmQgZnJvbSBOSUMgYW5kIHByb3Zp ZGUgaW4gQXNmIER4ZSBwcm90b2NvbC4NCg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAy MDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoNCisNCg0KKyNpbmNsdWRlIDxB c2ZEeGUuaD4NCg0KKw0KDQorQVNGX0JPT1RfT1BUSU9OICAgICAgICAgICBnQXNmQm9vdE9wdGlv biA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Ow0KDQorQVNGX1BST1RPQ09MICAgICAgICAgICAg ICBnQXNmUHJvdG9jb2wgICA9IHsgQXNmUHVzaEV2ZW50LCBOVUxMIH07DQoNCitFRklfU01CVVNf REVWSUNFX0FERFJFU1MgIG1GaXhlZFRhcmdldEFkZHJlc3M7DQoNCitFRklfU01CVVNfSENfUFJP VE9DT0wgICAgICptU21CdXMgPSBOVUxMOw0KDQorDQoNCisvKioNCg0KKyAgU2VuZCBtZXNzYWdl IHRocm91Z2ggU21CdXMgdG8gbGFuIGNhcmQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBDb21tYW5k ICAgICAgQ29tbWFuZCBvZiBTeXN0ZW0gRmlybXdhcmUgRXZlbnRzLg0KDQorICBAcGFyYW1baW5d IExlbmd0aCAgICAgICBMZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIEBwYXJhbVtp bl0gQXNmRXZlbnQgICAgIE1lc3NhZ2UgZGF0YS4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUND RVNTICAgICBQdXNoIEV2ZW50IHN1Y2Nlc3NmdWxseS4NCg0KKyAgQHJldHZhbCBPdGhlcnMgICAg ICAgICAgUHVzaCBFdmVudCBlcnJvci4NCg0KKyoqLw0KDQorRUZJX1NUQVRVUw0KDQorRUZJQVBJ DQoNCitBc2ZQdXNoRXZlbnQgICgNCg0KKyAgSU4gIFVJTlQ4ICBDb21tYW5kLA0KDQorICBJTiAg VUlOVE4gIExlbmd0aCwNCg0KKyAgSU4gIFVJTlQ4ICAqQXNmRXZlbnQNCg0KKyAgKQ0KDQorew0K DQorICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisNCg0KKyAgaWYgKG1TbUJ1cyA9PSBOVUxMKSB7 DQoNCisgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1 cyA9IG1TbUJ1cy0+RXhlY3V0ZSAoDQoNCisgICAgICAgICAgICAgICAgICAgICBtU21CdXMsDQoN CisgICAgICAgICAgICAgICAgICAgICBtRml4ZWRUYXJnZXRBZGRyZXNzLA0KDQorICAgICAgICAg ICAgICAgICAgICAgQ29tbWFuZCwNCg0KKyAgICAgICAgICAgICAgICAgICAgIEVmaVNtYnVzV3Jp dGVCbG9jaywNCg0KKyAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisgICAgICAgICAgICAg ICAgICAgICAmTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAgQXNmRXZlbnQNCg0KKyAg ICAgICAgICAgICAgICAgICAgICk7DQoNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCg0K KyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiQXNmUHVzaEV2ZW50IFN0YXR1cyA9ICVyXG4iLCBT dGF0dXMpKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBTdGF0dXM7DQoNCit9DQoNCisNCg0K Ky8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0aGUgU3lzdGVtIEZpcm13YXJlIFN0YXRl IEV2ZW50cy4NCg0KKw0KDQorICBAcGFyYW1baW5dIFN5c3RlbVN0YXRlICAgIFN5c3RlbSBGaXJt d2FyZSBTdGF0ZS4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlB1c2hT eXN0ZW1TdGF0ZSAgKA0KDQorICBJTiAgVUlOVDggIFN5c3RlbVN0YXRlDQoNCisgICkNCg0KK3sN Cg0KKyAgbUFzZlN5c3RlbVN0YXRlLkV2ZW50U2Vuc29yVHlwZSA9IFN5c3RlbVN0YXRlOw0KDQor ICBBc2ZQdXNoRXZlbnQgKA0KDQorICAgIG1Bc2ZTeXN0ZW1TdGF0ZS5Db21tYW5kLA0KDQorICAg IG1Bc2ZTeXN0ZW1TdGF0ZS5CeXRlQ291bnQsDQoNCisgICAgKFVJTlQ4ICopJihtQXNmU3lzdGVt U3RhdGUuU3ViQ29tbWFuZCkNCg0KKyAgICApOw0KDQorICByZXR1cm47DQoNCit9DQoNCisNCg0K Ky8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHByb2Nlc3NlcyB0aGUgU3lzdGVtIEZpcm13YXJlIFBy b2dyZXNzL0Vycm9yIEV2ZW50cy4NCg0KKw0KDQorICBAcGFyYW1baW5dIE1lc3NhZ2VFcnJvckxl dmVsICAgUHJvZ3Jlc3Mgb3IgZXJyb3Igb3Igc3lzdGVtIG1hbmFnZW1lbnQgbWVzc2FnZSBUeXBl Lg0KDQorICBAcGFyYW1baW5dIE1lc3NhZ2VUeXBlICAgICAgICAgU3BlY2lmaWMgQVNGIG1lc3Nh Z2UgdHlwZS4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlB1c2hTeXN0 ZW1FcnJvclByb2dyZXNzRXZlbnQgICgNCg0KKyAgSU4gVUlOVDMyICAgICAgICAgICAgTWVzc2Fn ZUVycm9yTGV2ZWwsDQoNCisgIElOIEFTRl9NRVNTQUdFX1RZUEUgIE1lc3NhZ2VUeXBlDQoNCisg ICkNCg0KK3sNCg0KKyAgVUlOVE4gIGk7DQoNCisNCg0KKyAgaWYgKChNZXNzYWdlRXJyb3JMZXZl bCAmIFBjZEdldDMyIChQY2RBc2ZNZXNzYWdlRXJyb3JMZXZlbCkpIHx8DQoNCisgICAgICAoKGdB c2ZCb290T3B0aW9uLkJvb3RPcHRpb25CaXQgJiBBU0ZfQk9QX0JJVF9GT1JDRV9QUk9HUkVTU19F VkVOVCkpKQ0KDQorICB7DQoNCisgICAgZm9yICggaSA9IDA7IGkgPCBtQXNmTWVzc2FnZXNTaXpl OyBpKysgKSB7DQoNCisgICAgICBpZiAoIG1Bc2ZNZXNzYWdlc1tpXS5UeXBlID09IE1lc3NhZ2VU eXBlICkgew0KDQorICAgICAgICBBc2ZQdXNoRXZlbnQgKA0KDQorICAgICAgICAgIG1Bc2ZNZXNz YWdlc1tpXS5NZXNzYWdlLkNvbW1hbmQsDQoNCisgICAgICAgICAgbUFzZk1lc3NhZ2VzW2ldLk1l c3NhZ2UuQnl0ZUNvdW50LA0KDQorICAgICAgICAgIChVSU5UOCAqKSYobUFzZk1lc3NhZ2VzW2ld Lk1lc3NhZ2UuU3ViQ29tbWFuZCkNCg0KKyAgICAgICAgICApOw0KDQorICAgICAgICBicmVhazsN Cg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm47DQoNCit9DQoN CisNCg0KKy8qKg0KDQorICBTZW5kIHJlbGF0ZSBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRv IGxhbiBjYXJkDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgQ29kZVR5cGUgICAgICAgICBJbmRpY2F0 ZXMgdGhlIHR5cGUgb2Ygc3RhdHVzIGNvZGUgYmVpbmcgcmVwb3J0ZWQuDQoNCisgIEBwYXJhbVtp bl0gIFZhbHVlICAgICAgICAgICAgRGVzY3JpYmVzIHRoZSBjdXJyZW50IHN0YXR1cyBvZiBhIGhh cmR3YXJlIG9yIHNvZnR3YXJlIGVudGl0eS4NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaGlzIGluY2x1ZGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjbGFzcyBhbmQgc3ViY2xh c3MgdGhhdCBpcyB1c2VkIHRvDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NpZnkgdGhlIGVudGl0eSBhcyB3ZWxsIGFzIGFuIG9wZXJhdGlvbi4NCg0KKyAgQHBhcmFtW2lu XSAgSW5zdGFuY2UgICAgICAgICBUaGUgZW51bWVyYXRpb24gb2YgYSBoYXJkd2FyZSBvciBzb2Z0 d2FyZSBlbnRpdHkgd2l0aGluDQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl IHN5c3RlbS4gVmFsaWQgaW5zdGFuY2UgbnVtYmVycyBzdGFydCB3aXRoIDEuDQoNCisgIEBwYXJh bVtpbl0gIENhbGxlcklkICAgICAgICAgVGhpcyBvcHRpb25hbCBwYXJhbWV0ZXIgbWF5IGJlIHVz ZWQgdG8gaWRlbnRpZnkgdGhlIGNhbGxlci4NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhlIHN0YXR1cyBjb2RlIGRyaXZlciB0byBhcHBs eSBkaWZmZXJlbnQgcnVsZXMgdG8NCg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk aWZmZXJlbnQgY2FsbGVycy4NCg0KKyAgQHBhcmFtW2luXSAgRGF0YSAgICAgICAgICAgICBUaGlz IG9wdGlvbmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0byBwYXNzIGFkZGl0aW9uYWwgZGF0YS4N Cg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgIFJlcG9ydGVkIGFsbCB0aGUg cHJvZ3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Ygc3VjY2Vzc2Z1bGx5Lg0KDQorKiovDQoN CitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlJzY0hhbmRsZXJDYWxsYmFjayAoDQoNCisg IElOIEVGSV9TVEFUVVNfQ09ERV9UWVBFICAgQ29kZVR5cGUsDQoNCisgIElOIEVGSV9TVEFUVVNf Q09ERV9WQUxVRSAgVmFsdWUsDQoNCisgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgSW5zdGFu Y2UsDQoNCisgIElOIEVGSV9HVUlEICAgICAgICAgICAgICAgKkNhbGxlcklkLA0KDQorICBJTiBF RklfU1RBVFVTX0NPREVfREFUQSAgICpEYXRhDQoNCisgICkNCg0KK3sNCg0KKyAgVUlOVE4gIElu ZGV4Ow0KDQorDQoNCisgIGlmICgoQ29kZVR5cGUgJiBFRklfU1RBVFVTX0NPREVfVFlQRV9NQVNL KSA9PSBFRklfUFJPR1JFU1NfQ09ERSkgew0KDQorICAgIGZvciAoSW5kZXggPSAwOyBJbmRleCA8 IG1Nc2dQcm9ncmVzc01hcFNpemU7IEluZGV4KyspIHsNCg0KKyAgICAgIGlmIChtTXNnUHJvZ3Jl c3NNYXBbSW5kZXhdLlN0YXR1c0NvZGUgPT0gVmFsdWUpIHsNCg0KKyAgICAgICAgQXNmUHVzaFN5 c3RlbUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgbU1z Z1Byb2dyZXNzTWFwW0luZGV4XS5NZXNzYWdlVHlwZSk7DQoNCisgICAgICAgIGJyZWFrOw0KDQor ICAgICAgfQ0KDQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmICgoQ29kZVR5cGUgJiBFRklf U1RBVFVTX0NPREVfVFlQRV9NQVNLKSA9PSBFRklfRVJST1JfQ09ERSkgew0KDQorICAgIGZvciAo IEluZGV4ID0gMDsgSW5kZXggPCBtTXNnRXJyb3JNYXBTaXplOyBJbmRleCsrICkgew0KDQorICAg ICAgaWYgKCBtTXNnRXJyb3JNYXBbSW5kZXhdLlN0YXR1c0NvZGUgPT0gVmFsdWUgKSB7DQoNCisg ICAgICAgIEFzZlB1c2hTeXN0ZW1FcnJvclByb2dyZXNzRXZlbnQgKE1FU1NBR0VfRVJST1JfTEVW RUxfRVJST1IsIG1Nc2dFcnJvck1hcFtJbmRleF0uTWVzc2FnZVR5cGUpOw0KDQorICAgICAgICBi cmVhazsNCg0KKyAgICAgIH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQoNCit9DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIGlzc3VlcyB0 aGUgQVNGIEdldC9DbGVhciBCb290IE9wdGlvbiBjb21tYW5kLg0KDQorDQoNCisgIEBwYXJhbVtp bl0gIEFzZlNsYXZlQWRkcmVzcyAgU3BlY2lmeSB0aGUgRGFzaCBsYW4gU21CdXMgc2xhdmUgYWRk cmVzcy4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTIFJlcG9ydGVkIGFsbCB0aGUgcHJv Z3Jlc3MgYW5kIGVycm9yIGNvZGVzIGZvciBBc2Ygc3VjY2Vzc2Z1bGx5Lg0KDQorICBAcmV0dmFs IE90aGVycyAgICAgIFNtYnVzIEV4ZWN1dGUgZnVuY3Rpb24gcmV0dXJuIGVycm9yLg0KDQorKiov DQoNCitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZkdldEJvb3RPcHRpb24gKA0KDQorICBJ TiAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBBc2ZTbGF2ZUFkZHJlc3MNCg0KKyAgKQ0KDQor ew0KDQorICBFRklfU1RBVFVTICAgICAgIFN0YXR1czsNCg0KKyAgVUlOVE4gICAgICAgICAgICBM ZW5ndGggPSBzaXplb2YgKEFTRl9CT09UX09QVElPTik7DQoNCisgIEFTRl9CT09UX09QVElPTiAg Qm9vdE9wdGlvbjsNCg0KKw0KDQorICAvLyBJbml0aWFsaXplIGdldCBib290IG9wdGlvbiBCdWZm ZXIuDQoNCisgIFNldE1lbSAoJkJvb3RPcHRpb24sIHNpemVvZiAoQVNGX0JPT1RfT1BUSU9OKSwg MCk7DQoNCisNCg0KKyAgLy8gRXhlY3V0ZSBBU0ZNU0dfQ01EX0NPTkZJRyBjb21tYW5kLg0KDQor ICBTdGF0dXMgPSBtU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICAgICAgICAgbVNt QnVzLA0KDQorICAgICAgICAgICAgICAgICAgICAgQXNmU2xhdmVBZGRyZXNzLA0KDQorICAgICAg ICAgICAgICAgICAgICAgQVNGTVNHX0NNRF9DT05GSUcsDQoNCisgICAgICAgICAgICAgICAgICAg ICBFZmlTbWJ1c1JlYWRCbG9jaywNCg0KKyAgICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisg ICAgICAgICAgICAgICAgICAgICAmTGVuZ3RoLA0KDQorICAgICAgICAgICAgICAgICAgICAgJkJv b3RPcHRpb24NCg0KKyAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgIGlmICggRUZJX0VSUk9S IChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIFN0YXR1czsNCg0KKyAgfQ0KDQorDQoNCisgIGlm ICggQm9vdE9wdGlvbi5TdWJDb21tYW5kID09IEFTRk1TR19TVUJDTURfUkVUX0JPT1RfT1BUSU9O ICkgew0KDQorICAgIC8vIGNvcHkgUmV0dXJuIEJvb3QgT3B0aW9uIHRvIGdsb2JhbCBBU0YgQm9v dCBPcHRpb24gYnVmZmVyLg0KDQorICAgIENvcHlNZW0gKCZnQXNmQm9vdE9wdGlvbiwgJkJvb3RP cHRpb24sIHNpemVvZiAoQVNGX0JPT1RfT1BUSU9OKSk7DQoNCisgICAgZ0FzZlByb3RvY29sLkJv b3RPcHRpb24gPSAmZ0FzZkJvb3RPcHRpb247DQoNCisgICAgLy8gRXhlY3V0ZSBDbGVhciBCb290 IE9wdGlvbiBjb21tYW5kLg0KDQorICAgIEJvb3RPcHRpb24uU3ViQ29tbWFuZCA9IEFTRk1TR19T VUJDTURfQ0xSX0JPT1RfT1BUSU9OOw0KDQorICAgIEJvb3RPcHRpb24uVmVyc2lvbiAgICA9IDB4 MTA7DQoNCisgICAgTGVuZ3RoICAgICAgICAgICAgICAgID0gMjsNCg0KKyAgICBtU21CdXMtPkV4 ZWN1dGUgKA0KDQorICAgICAgICAgICAgICBtU21CdXMsDQoNCisgICAgICAgICAgICAgIEFzZlNs YXZlQWRkcmVzcywNCg0KKyAgICAgICAgICAgICAgQVNGTVNHX0NNRF9DT05GSUcsDQoNCisgICAg ICAgICAgICAgIEVmaVNtYnVzV3JpdGVCbG9jaywNCg0KKyAgICAgICAgICAgICAgVFJVRSwNCg0K KyAgICAgICAgICAgICAgJkxlbmd0aCwNCg0KKyAgICAgICAgICAgICAgJkJvb3RPcHRpb24NCg0K KyAgICAgICAgICAgICAgKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBTdGF0dXM7DQoNCit9 DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIEV2ZW50IENhbGxiYWNrIHByb2Nlc3NlcyB0aGUgcmVx dWVzdHMgYXQgRUZJIFJlYWR5IHRvIEJvb3QgRXZlbnQgdHJpZ2dlcmVkLg0KDQorDQoNCisgIEBw YXJhbVtpbl0gIEV2ZW50ICAgICAgQSBwb2ludGVyIHRvIHRoZSBFdmVudCB0aGF0IHRyaWdnZXJl ZCB0aGUgY2FsbGJhY2suDQoNCisgIEBwYXJhbVtpbl0gIENvbnRleHQgICAgQSBwb2ludGVyIHRv IHByaXZhdGUgZGF0YSByZWdpc3RlcmVkIHdpdGggdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLg0KDQor KiovDQoNCitWT0lEDQoNCitFRklBUEkNCg0KK0FzZlJlYWR5VG9Cb290RXZlbnQgKA0KDQorICBJ TiAgRUZJX0VWRU5UICBFdmVudCwNCg0KKyAgSU4gIFZPSUQgICAgICAgKkNvbnRleHQNCg0KKyAg KQ0KDQorew0KDQorICAvLyBQdXNoIFN5c3RlbSBTdGF0ZSBTMCAtICJXb3JraW5nIi4NCg0KKyAg QXNmUHVzaFN5c3RlbVN0YXRlIChBU0ZNU0dfU1lTVEVNX1NUQVRFX1MwKTsNCg0KKw0KDQorICBn QlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCg0KKyAgcmV0dXJuOw0KDQorfQ0KDQorDQoNCisvKioN Cg0KKyAgICBSZWdpc3RlciBjYWxsYmFjayBpZiBBY3BpIHByb3RvY29sIGlzIG5vdCByZWFkeSwg ZWxzZSBpbnN0YWxsIEFTRiBhY3BpIHRhYmxlIGRpcmVjdGx5Lg0KDQorDQoNCisqKi8NCg0KK1ZP SUQNCg0KK0VGSUFQSQ0KDQorSW5zdGFsbEFzZkFjcGlUYWJsZSAoDQoNCisgIFZPSUQNCg0KKyAg KQ0KDQorew0KDQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgU3RhdHVzOw0KDQorICBFRklf RVZFTlQgICAgICAgICAgICAgICAgRXZlbnQ7DQoNCisgIFZPSUQgICAgICAgICAgICAgICAgICAg ICAqUmVnaXN0cmF0aW9uOw0KDQorICBFRklfQUNQSV9UQUJMRV9QUk9UT0NPTCAgKkFjcGlUYWJs ZVByb3RvY29sOw0KDQorDQoNCisgIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKCZnRWZp QWNwaVRhYmxlUHJvdG9jb2xHdWlkLCBOVUxMLCAoVk9JRCAqKikmQWNwaVRhYmxlUHJvdG9jb2wp Ow0KDQorICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAgIEluc3RhbGxBc2ZBY3Bp VGFibGVFdmVudCAoTlVMTCwgTlVMTCk7DQoNCisgIH0gZWxzZSB7DQoNCisgICAgU3RhdHVzID0g Z0JTLT5DcmVhdGVFdmVudCAoDQoNCisgICAgICAgICAgICAgICAgICAgIEVWVF9OT1RJRllfU0lH TkFMLA0KDQorICAgICAgICAgICAgICAgICAgICBUUExfQ0FMTEJBQ0ssDQoNCisgICAgICAgICAg ICAgICAgICAgIEluc3RhbGxBc2ZBY3BpVGFibGVFdmVudCwNCg0KKyAgICAgICAgICAgICAgICAg ICAgTlVMTCwNCg0KKyAgICAgICAgICAgICAgICAgICAgJkV2ZW50DQoNCisgICAgICAgICAgICAg ICAgICAgICk7DQoNCisNCg0KKyAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQorICAg ICAgU3RhdHVzID0gZ0JTLT5SZWdpc3RlclByb3RvY29sTm90aWZ5ICgNCg0KKyAgICAgICAgICAg ICAgICAgICAgICAmZ0VmaUFjcGlUYWJsZVByb3RvY29sR3VpZCwNCg0KKyAgICAgICAgICAgICAg ICAgICAgICBFdmVudCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAmUmVnaXN0cmF0aW9uDQoN CisgICAgICAgICAgICAgICAgICAgICAgKTsNCg0KKw0KDQorICAgICAgaWYgKEVGSV9FUlJPUiAo U3RhdHVzKSkgew0KDQorICAgICAgICBnQlMtPkNsb3NlRXZlbnQgKEV2ZW50KTsNCg0KKyAgICAg IH0NCg0KKyAgICB9DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm47DQoNCit9DQoNCisNCg0KKy8q Kg0KDQorICBUaGlzIGlzIHRoZSBzdGFuZGFyZCBFRkkgZHJpdmVyIGVudHJ5IHBvaW50IGZvciBE WEUgcGhhc2Ugb2YgQVNGLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gSW1hZ2VIYW5kbGUgICBJbWFn ZSBoYW5kbGUgb2YgdGhlIGxvYWRlZCBkcml2ZXINCg0KKyAgQHBhcmFtW2luXSBTeXN0ZW1UYWJs ZSAgIFBvaW50ZXIgdG8gdGhlIFN5c3RlbSBUYWJsZQ0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICBUaGlzIGRyaXZlciBpbml0aWFsIGNvcnJlY3RseQ0KDQorICBAcmV0dmFsIE90 aGVycyAgICAgICAgICAgVGhpcyBkcml2ZXIgaW5pdGlhbCBmYWlsDQoNCisqKi8NCg0KK0VGSV9T VEFUVVMNCg0KK0VGSUFQSQ0KDQorQXNmRHhlRW50cnkgKA0KDQorICBJTiBFRklfSEFORExFICAg ICAgICBJbWFnZUhhbmRsZSwNCg0KKyAgSU4gRUZJX1NZU1RFTV9UQUJMRSAgKlN5c3RlbVRhYmxl DQoNCisgICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQoN CisgIEVGSV9SU0NfSEFORExFUl9QUk9UT0NPTCAgKlJzY0hhbmRsZXI7DQoNCisgIEVGSV9FVkVO VCAgICAgICAgICAgICAgICAgQXNmRWZpUmVhZHlUb0Jvb3RFdmVudDsNCg0KKw0KDQorICBTdGF0 dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgmZ0VmaVNtYnVzSGNQcm90b2NvbEd1aWQsIE5VTEws IChWT0lEICoqKSZtU21CdXMpOw0KDQorICBpZiAoIEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KDQor ICAgIHJldHVybiBTdGF0dXM7DQoNCisgIH0NCg0KKw0KDQorICBtRml4ZWRUYXJnZXRBZGRyZXNz LlNtYnVzRGV2aWNlQWRkcmVzcyA9IFBjZEdldDggKFBjZFNtYnVzU2xhdmVBZGRyZXNzRm9yRGFz aExhbikgPj4gMTsNCg0KKyAgaWYgKG1GaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VBZGRy ZXNzID09IDApIHsNCg0KKyAgICByZXR1cm4gRUZJX1VOU1VQUE9SVEVEOw0KDQorICB9DQoNCisN Cg0KKyAgU3RhdHVzID0gQXNmR2V0Qm9vdE9wdGlvbiAobUZpeGVkVGFyZ2V0QWRkcmVzcyk7DQoN CisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoNCisgICAgcmV0dXJuIFN0YXR1czsNCg0K KyAgfQ0KDQorDQoNCisgIEluc3RhbGxBc2ZBY3BpVGFibGUgKCk7DQoNCisNCg0KKyAgLy8gU2Vu ZCBtb3RoZXIgYm9hcmQgaW5pdGlhbGl6YXRpb24gbWVzc2FnZS4NCg0KKyAgQXNmUHVzaFN5c3Rl bUVycm9yUHJvZ3Jlc3NFdmVudCAoTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgTXNnTW90 aGVyQm9hcmRJbml0KTsNCg0KKw0KDQorICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgm Z0VmaVJzY0hhbmRsZXJQcm90b2NvbEd1aWQsIE5VTEwsIChWT0lEICoqKSZSc2NIYW5kbGVyKTsN Cg0KKyAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICBSc2NIYW5kbGVyLT5SZWdp c3RlciAoQXNmUnNjSGFuZGxlckNhbGxiYWNrLCBUUExfQ0FMTEJBQ0spOw0KDQorICB9DQoNCisN Cg0KKyAgRWZpQ3JlYXRlRXZlbnRSZWFkeVRvQm9vdEV4ICgNCg0KKyAgICBUUExfQ0FMTEJBQ0ss DQoNCisgICAgQXNmUmVhZHlUb0Jvb3RFdmVudCwNCg0KKyAgICBOVUxMLA0KDQorICAgICZBc2ZF ZmlSZWFkeVRvQm9vdEV2ZW50DQoNCisgICAgKTsNCg0KKw0KDQorICBnQlMtPkluc3RhbGxQcm90 b2NvbEludGVyZmFjZSAoDQoNCisgICAgICAgICAmSW1hZ2VIYW5kbGUsDQoNCisgICAgICAgICAm Z0FzZlByb3RvY29sR3VpZCwNCg0KKyAgICAgICAgIEVGSV9OQVRJVkVfSU5URVJGQUNFLA0KDQor ICAgICAgICAgJmdBc2ZQcm90b2NvbA0KDQorICAgICAgICAgKTsNCg0KKw0KDQorICByZXR1cm4g RUZJX1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJh bmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50LmMgYi9GZWF0dXJl cy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2 ZW50LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42NDI2NWM2ZDVj DQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV2ZW50LmMNCkBAIC0wLDAgKzEsMzE5IEBADQor LyoqIEBmaWxlDQoNCisgIEFzZiBtZXNzYWdlcyBkZWZpbmUNCg0KKw0KDQorICBDb3B5cmlnaHQg KGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorICBTUERY LUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorKiovDQoNCisNCg0K KyNpbmNsdWRlIDxBc2ZEeGUuaD4NCg0KKw0KDQorTUVTU0FHRV9EQVRBX0hVQl9NQVAgIG1Nc2dQ cm9ncmVzc01hcFtdID0gew0KDQorICB7IE1zZ0hkZEluaXQsICAgICAgICAgICBFRklfUEVSSVBI RVJBTF9GSVhFRF9NRURJQSB8IEVGSV9QX1BDX0VOQUJMRSAgICAgICAgICAgICB9LA0KDQorICB7 IE1zZ0FwSW5pdCwgICAgICAgICAgICBFRklfQ09NUFVUSU5HX1VOSVRfSE9TVF9QUk9DRVNTT1Ig fCBFRklfQ1VfSFBfUENfQVBfSU5JVCB9LA0KDQorICB7IE1zZ1VzZXJJbml0U2V0dXAsICAgICBF RklfU09GVFdBUkVfRFhFX0JTX0RSSVZFUiB8IEVGSV9TV19QQ19VU0VSX1NFVFVQICAgICAgICB9 LA0KDQorICB7IE1zZ1VzYlJlc291cmNlQ29uZmlnLCBFRklfSU9fQlVTX1VTQiB8IEVGSV9QX1BD X0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ1BjaVJlc291cmNl Q29uZmlnLCBFRklfSU9fQlVTX1BDSSB8IEVGSV9JT0JfUENJX0JVU19FTlVNICAgICAgICAgICAg ICAgICAgICB9LA0KDQorICB7IE1zZ1ZpZGVvSW5pdCwgICAgICAgICBFRklfUEVSSVBIRVJBTF9M T0NBTF9DT05TT0xFIHwgRUZJX1BfUENfRU5BQkxFICAgICAgICAgICB9LA0KDQorICB7IE1zZ0ti Y0luaXQsICAgICAgICAgICBFRklfUEVSSVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX1BDX0VOQUJM RSAgICAgICAgICAgICAgICB9LA0KDQorICB7IE1zZ0tiY1Rlc3QsICAgICAgICAgICBFRklfUEVS SVBIRVJBTF9LRVlCT0FSRCB8IEVGSV9QX0tFWUJPQVJEX1BDX1NFTEZfVEVTVCAgICB9DQoNCit9 Ow0KDQorDQoNCitNRVNTQUdFX0RBVEFfSFVCX01BUCAgbU1zZ0Vycm9yTWFwW10gPSB7DQoNCisg IHsgTXNnTm9WaWRlbywgICAgRUZJX1BFUklQSEVSQUxfTE9DQUxfQ09OU09MRSB8IEVGSV9QX0VD X05PVF9ERVRFQ1RFRCB9LA0KDQorICB7IE1zZ0tiZEZhaWx1cmUsIEVGSV9QRVJJUEhFUkFMX0tF WUJPQVJEIHwgRUZJX1BfRUNfTk9UX0RFVEVDVEVEICAgICAgfSwNCg0KKyAgeyBNc2dIZGRGYWls dXJlLCBFRklfUEVSSVBIRVJBTF9GSVhFRF9NRURJQSB8IEVGSV9QX0VDX05PVF9ERVRFQ1RFRCAg IH0NCg0KK307DQoNCisNCg0KK0FTRl9NRVNTQUdFICBtQXNmTWVzc2FnZXNbXSA9IHsNCg0KKyAg ew0KDQorICAgIE1zZ0hkZEluaXQsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRf TUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0df U1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVS XzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNT LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAgICAg QVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJ VFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJ RUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19FTlRJVFlfRElTSywNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5T UEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfREFUQV9IQVJEX0RJU0tfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0sDQoN CisgIHsNCg0KKyAgICBNc2dBcEluaXQsDQoNCisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1B TkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZN U0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVN QkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dS RVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAg ICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBB U0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VW RVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SLA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNU QU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9EQVRBX0FQX0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9LA0K DQorICB7DQoNCisgICAgTXNnVXNlckluaXRTZXR1cCwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZN U0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAg ICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVS U0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJS T1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMs DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19F VkVOVF9TRVZFUklUWV9OT05fQ1JJVElDQUwsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklD RV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVE LA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9CSU9TLA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9J TlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9EQVRBX1NFVFVQX0lOSVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQor ICB9LA0KDQorICB7DQoNCisgICAgTXNnVXNiUmVzb3VyY2VDb25maWcsDQoNCisgICAgew0KDQor ICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwgLy8gQnl0ZUNv dW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICAgICAg QVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFTlNPUl9U WVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09S X1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldfUFJPR1JFU1Nf RU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAg ICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NF TlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9V TlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfQklPUywNCg0KKyAgICAgIEFTRk1T R19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFU QTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9VU0JfUkVTT1VSQ0VfQ09ORklHDQoNCisg ICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnUGNpUmVzb3VyY2VDb25maWcsDQoNCisg ICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgwZCwg Ly8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0K DQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X1NFTlNPUl9UWVBFX0ZXX0VSUk9SX1BST0dSRVNTLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1RZ UEVfU0VOU09SX1NQRUNJRklDLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNfRldf UFJPR1JFU1NfRU5UUlksDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAs DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAg QVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09S X05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfQklPUywNCg0KKyAg ICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9QQ0lfUkVTT1VSQ0VfQ09O RklHDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnVmlkZW9Jbml0LA0KDQor ICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQs IC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwN Cg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVO VF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9U WVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZX X1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEw LA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9DUklUSUNBTCwNCg0KKyAgICAg IEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX1NFTlNP Ul9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0FERF9JTl9DQVJE LA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBX1ZJREVPX0lO SVRJQUxJWkFUSU9ODQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnS2JjSW5p dCwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcsDQoNCisgICAg ICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19TVUJDT01NQU5EX05PX1JFVFJB TlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1MsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VU X1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQ RV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fQ1JJVElDQUwsDQoN CisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1T R19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9TWVNU RU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lGSUVELA0K DQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEFf S0VZQk9BUkRfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsNCg0KKyAg ICBNc2dLYmNUZXN0LA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01FU1NBR0lO RywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NVQkNPTU1B TkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8xMCwNCg0K KyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFTRk1TR19F VkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9D UklUSUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0KDQor ICAgICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0df RU5USVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5T UEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0df RVZFTlRfREFUQV9LRVlCT0FSRF9URVNUDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisg ICAgTXNnTW90aGVyQm9hcmRJbml0LA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5E X01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNH X1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJF Ul8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVT UywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAg IEFTRk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX1BST0dSRVNTX0VOVFJZLA0KDQorICAgICAgQVNG TVNHX0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVS SVRZX01PTklUT1IsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwN Cg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNG TVNHX0VOVElUWV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNF X1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAgICAgQVNG TVNHX0VWRU5UX0RBVEFfQk9BUkRfSU5JVElBTElaQVRJT04NCg0KKyAgICB9DQoNCisgIH0sDQoN CisgIHsNCg0KKyAgICBNc2dOb1ZpZGVvLA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01N QU5EX01FU1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNG TVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05V TUJFUl8xMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9H UkVTUywNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAg ICAgIEFTRk1TR19FVkVOVF9PRkZTRVRfTk9fQk9PVEFCTEVfTUVESUEsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VWRVJJ VFlfTk9OX0NSSVRJQ0FMLA0KDQorICAgICAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJ RUQsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX05VTUJFUl9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19FTlRJVFlfQUREX0lOX0NBUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RB TkNFX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICAgICAg QVNGTVNHX0VWRU5UX0RBVEFfTk9fVklERU8NCg0KKyAgICB9DQoNCisgIH0sDQoNCisgIHsNCg0K KyAgICBNc2dLYmRGYWlsdXJlLA0KDQorICAgIHsNCg0KKyAgICAgIEFTRk1TR19DT01NQU5EX01F U1NBR0lORywNCg0KKyAgICAgIDB4MGQsIC8vIEJ5dGVDb3VudA0KDQorICAgICAgQVNGTVNHX1NV QkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgICAgIEFTRk1TR19WRVJTSU9OX05VTUJFUl8x MCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywN Cg0KKyAgICAgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgICAgIEFT Rk1TR19FVkVOVF9PRkZTRVRfU1lTX0ZXX0VSUk9SLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NP VVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9DUklU SUNBTCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfREVWSUNFX1VOU1BFQ0lGSUVELA0KDQorICAg ICAgQVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRU5U SVRZX1NZU1RFTV9CT0FSRCwNCg0KKyAgICAgIEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVD SUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZF TlRfREFUQV9LRVlCT0FSRF9GQUlMVVJFDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisg ICAgTXNnSGRkRmFpbHVyZSwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9NRVNT QUdJTkcsDQoNCisgICAgICAweDBkLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19TVUJD T01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAs DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1MsDQoN CisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VS Q0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TRVZFUklUWV9OT05fUkVDT1ZF UkFCTEUsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAg ICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VO VElUWV9ESVNLLA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwN Cg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRBMSwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9EQVRB X0hBUkRfRElTS19GQUlMVVJFDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNn Q2hhc3Npc0ludHJ1c2lvbiwNCg0KKyAgICB7DQoNCisgICAgICBBU0ZNU0dfQ09NTUFORF9NRVNT QUdJTkcsDQoNCisgICAgICAweDBiLCAvLyBCeXRlQ291bnQNCg0KKyAgICAgIEFTRk1TR19TVUJD T01NQU5EX05PX1JFVFJBTlNNSVQsDQoNCisgICAgICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAs DQoNCisgICAgICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfQ0hBU1NJU19JTlRSVVNJT04sDQoN CisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9TRU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZN U0dfRVZFTlRfT0ZGU0VUX0NIQVNTSVNfSU5UUlVTSU9OLA0KDQorICAgICAgQVNGTVNHX0VWRU5U X1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICAgICAgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX01PTklU T1IsDQoNCisgICAgICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElU WV9TWVNURU1fQk9BUkQsDQoNCisgICAgICBBU0ZNU0dfRU5USVRZX0lOU1RBTkNFX1VOU1BFQ0lG SUVEDQoNCisgICAgfQ0KDQorICB9LA0KDQorICB7DQoNCisgICAgTXNnTm9Cb290TWVkaWEsDQoN CisgICAgew0KDQorICAgICAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAgICAgMHgw ZCwgLy8gQnl0ZUNvdW50DQoNCisgICAgICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlU LA0KDQorICAgICAgQVNGTVNHX1ZFUlNJT05fTlVNQkVSXzEwLA0KDQorICAgICAgQVNGTVNHX0VW RU5UX1NFTlNPUl9UWVBFX0JPT1RfRVJST1IsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfVFlQRV9T RU5TT1JfU1BFQ0lGSUMsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJP UiwNCg0KKyAgICAgIEFTRk1TR19FVkVOVF9TT1VSQ0VfVFlQRV9BU0YxMCwNCg0KKyAgICAgIEFT Rk1TR19FVkVOVF9TRVZFUklUWV9OT05fUkVDT1ZFUkFCTEUsDQoNCisgICAgICBBU0ZNU0dfU0VO U09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgICAgIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VO U1BFQ0lGSUVELA0KDQorICAgICAgQVNGTVNHX0VOVElUWV9VTlNQRUNJRklFRCwNCg0KKyAgICAg IEFTRk1TR19FTlRJVFlfSU5TVEFOQ0VfVU5TUEVDSUZJRUQsDQoNCisgICAgICBBU0ZNU0dfRVZF TlRfREFUQTEsDQoNCisgICAgICBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRA0KDQorICAg IH0NCg0KKyAgfQ0KDQorfTsNCg0KKw0KDQorVUlOVE4gIG1Nc2dQcm9ncmVzc01hcFNpemUgPSBz aXplb2YgKG1Nc2dQcm9ncmVzc01hcCkgLyBzaXplb2YgKE1FU1NBR0VfREFUQV9IVUJfTUFQKTsN Cg0KK1VJTlROICBtTXNnRXJyb3JNYXBTaXplICAgID0gc2l6ZW9mIChtTXNnRXJyb3JNYXApIC8g c2l6ZW9mIChNRVNTQUdFX0RBVEFfSFVCX01BUCk7DQoNCitVSU5UTiAgbUFzZk1lc3NhZ2VzU2l6 ZSAgICA9IHNpemVvZiAobUFzZk1lc3NhZ2VzKSAvIHNpemVvZiAoQVNGX01FU1NBR0UpOw0KDQor DQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbUFzZlN5c3RlbVN0YXRlID0NCg0KK3sNCg0KKyAg QVNGTVNHX0NPTU1BTkRfU1lTVEVNX1NUQVRFLA0KDQorICAweDMsICAgIC8vIEJ5dGVDb3VudA0K DQorICBBU0ZNU0dfU1VCQ09NTUFORF9TRVRfU1lTVEVNX1NUQVRFLA0KDQorICBBU0ZNU0dfVkVS U0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19TWVNURU1fU1RBVEVfUzANCg0KK307DQoNCmRp ZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQ a2cvQXNmUGVpL0FzZlBlaS5jIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9B c2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAwMDAuLjhiNDRjZDI2ZTANCi0tLSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0lu dGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmMNCkBA IC0wLDAgKzEsMzg0IEBADQorLyoqIEBmaWxlDQoNCisgIEFzZiBQZWkgSW5pdGlhbGl6YXRpb24g RHJpdmVyLg0KDQorDQoNCisgIEZvbGxvdyBBc2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVy cm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAxOTg1 IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyoqLw0KDQorDQoNCisjaW5jbHVk ZSA8QXNmTWVzc2FnZXMuaD4NCg0KKyNpbmNsdWRlIDxCYXNlLmg+DQoNCisjaW5jbHVkZSA8UHBp L1JlcG9ydFN0YXR1c0NvZGVIYW5kbGVyLmg+DQoNCisjaW5jbHVkZSA8UHBpL01lbW9yeURpc2Nv dmVyZWQuaD4NCg0KKyNpbmNsdWRlIDxQcGkvU21idXMyLmg+DQoNCisjaW5jbHVkZSA8TGlicmFy eS9EZWJ1Z0xpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvUGVpU2VydmljZXNMaWIuaD4NCg0K KyNpbmNsdWRlIDxQaS9QaVN0YXR1c0NvZGUuaD4NCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgRXZl bnQgTm90aWZ5IHByb2Nlc3NlcyB0aGUgQVNGIHJlcXVlc3QgYXQgTWVtb3J5IEluaXRpYWwgQ29t cGxldGVkLg0KDQorDQoNCisgIEBwYXJhbVtpbl0gUGVpU2VydmljZXMgICAgICAgICAgR2VuZXJh bCBwdXJwb3NlIHNlcnZpY2VzIGF2YWlsYWJsZSB0byBldmVyeSBQRUlNLg0KDQorICBAcGFyYW1b aW5dIE5vdGlmeURlc2NyaXB0b3IgICAgIFRoZSBub3RpZmljYXRpb24gc3RydWN0dXJlIHRoaXMg UEVJTSByZWdpc3RlcmVkIG9uIGluc3RhbGwuDQoNCisgIEBwYXJhbVtpbl0gUHBpICAgICAgICAg ICAgICAgICAgVGhlIG1lbW9yeSBkaXNjb3ZlcmVkIFBQSS4gIE5vdCB1c2VkLg0KDQorDQoNCisg IEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgU3VjY2VlZHMuDQoNCisgIEByZXR2YWwg RUZJX1VOU1VQUE9SVEVEICAgICAgICAgUHVzaCBFdmVudCBlcnJvci4NCg0KKw0KDQorKiovDQoN CitFRklfU1RBVFVTDQoNCitFRklBUEkNCg0KK01zZ01lbW9yeUluaXRDb21wbGV0ZWQgKA0KDQor ICBJTiBFRklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KDQorICBJTiBF RklfUEVJX05PVElGWV9ERVNDUklQVE9SICAqTm90aWZ5RGVzY3JpcHRvciwNCg0KKyAgSU4gVk9J RCAgICAgICAgICAgICAgICAgICAgICAgKlBwaQ0KDQorICApOw0KDQorDQoNCitTVEFUSUMgRUZJ X1BFSV9OT1RJRllfREVTQ1JJUFRPUiAgbU1lbW9yeURpc2NvdmVyZWROb3RpZnlEZXMgPSB7DQoN CisgIEVGSV9QRUlfUFBJX0RFU0NSSVBUT1JfTk9USUZZX0NBTExCQUNLIHwgRUZJX1BFSV9QUElf REVTQ1JJUFRPUl9URVJNSU5BVEVfTElTVCwNCg0KKyAgJmdFZmlQZWlNZW1vcnlEaXNjb3ZlcmVk UHBpR3VpZCwNCg0KKyAgTXNnTWVtb3J5SW5pdENvbXBsZXRlZA0KDQorfTsNCg0KKw0KDQorQVNG X01TR19OT1JFVFJBTlNNSVQgIG1Bc2ZTeXN0ZW1TdGF0ZVdvcmtpbmcgPSBcDQoNCit7DQoNCisg IEFTRk1TR19DT01NQU5EX1NZU1RFTV9TVEFURSwNCg0KKyAgMHgzLCAgICAvLyBCeXRlQ291bnQN Cg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU0VUX1NZU1RFTV9TVEFURSwNCg0KKyAgQVNGTVNHX1ZF UlNJT05fTlVNQkVSXzEwLA0KDQorICBBU0ZNU0dfU1lTVEVNX1NUQVRFX1MwDQoNCit9Ow0KDQor DQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbU1zZ1N0b3BUaW1lciA9DQoNCit7DQoNCisgIEFT Rk1TR19DT01NQU5EX01BTkFHRU1FTlRfQ09OVFJPTCwNCg0KKyAgMHgyLCAgICAvLyBCeXRlQ291 bnQNCg0KKyAgQVNGTVNHX1NVQkNPTU1BTkRfU1RPUF9XQVRDSF9ET0csDQoNCisgIEFTRk1TR19W RVJTSU9OX05VTUJFUl8xMA0KDQorfTsNCg0KKw0KDQorLy8gMy4xLjUuMyBTeXN0ZW0gRmlybXdh cmUgUHJvZ3Jlc3MgRXZlbnRzDQoNCitBU0ZfTVNHX05PUkVUUkFOU01JVCAgbU1zZ0Jpb3NQcmVz ZW50ID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAg IC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQor ICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQ RV9FTlRJVFlfUFJFU0VOQ0UsDQoNCisgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJ QywNCg0KKyAgQVNGTVNHX0VWRU5UX09GRlNFVF9FTlRJVFlfUFJFU0VOVCwNCg0KKyAgQVNGTVNH X0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9O X0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAg QVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfQklP UywNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNH X0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRA0KDQorfTsN Cg0KKw0KDQorLy8gU3RhcnRpbmcgbWVtb3J5IGluaXRpYWxpemF0aW9uIGFuZCB0ZXN0Lg0KDQor QVNGX01TR19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJbml0ID0NCg0KK3sNCg0KKyAgQVNGTVNH X0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5dGVDb3VudA0KDQorICBBU0ZN U0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJf MTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJPUl9QUk9HUkVTUywNCg0K KyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQorICBBU0ZNU0dfRVZFTlRf T0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9U WVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQor ICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9O VU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfTUVNT1JZX0RFVklDRSwNCg0K KyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VWRU5U X0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElBTElaQVRJT04NCg0K K307DQoNCisNCg0KKy8vIE1lbW9yeSBpbml0aWFsaXplZCBhbmQgdGVzdGVkLg0KDQorQVNGX01T R19OT1JFVFJBTlNNSVQgIG1Nc2dNZW1vcnlJbml0aWFsaXplZCA9DQoNCit7DQoNCisgIEFTRk1T R19DT01NQU5EX01FU1NBR0lORywNCg0KKyAgMHhkLCAgICAvLyBCeXRlQ291bnQNCg0KKyAgQVNG TVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCwNCg0KKyAgQVNGTVNHX1ZFUlNJT05fTlVNQkVS XzEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VOU09SX1RZUEVfRldfRVJST1JfUFJPR1JFU1MsDQoN CisgIEFTRk1TR19FVkVOVF9UWVBFX1NFTlNPUl9TUEVDSUZJQywNCg0KKyAgQVNGTVNHX0VWRU5U X09GRlNFVF9TWVNfRldfUFJPR1JFU1NfRVhJVCwNCg0KKyAgQVNGTVNHX0VWRU5UX1NPVVJDRV9U WVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMLA0KDQor ICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX1NFTlNPUl9O VU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfTUVNT1JZX0RFVklDRSwNCg0K KyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNHX0VWRU5U X0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElBTElaQVRJT04NCg0K K307DQoNCisNCg0KK0FTRl9NU0dfTk9SRVRSQU5TTUlUICBtQXNmbXNnQ2FjaGVJbml0ID0NCg0K K3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAgIC8vIEJ5dGVD b3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQorICBBU0ZNU0df VkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9GV19FUlJP Ul9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJRklDLA0KDQor ICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19QUk9HUkVTU19FTlRSWSwNCg0KKyAgQVNGTVNH X0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTU9O SVRPUiwNCg0KKyAgQVNGTVNHX1NFTlNPUl9ERVZJQ0VfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1T R19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVELA0KDQorICBBU0ZNU0dfRU5USVRZX1BST0NFU1NP UiwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0KKyAgQVNGTVNH X0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9DQUNIRV9JTklUSUFMSVpBVElP Tg0KDQorfTsNCg0KKw0KDQorQVNGX01TR19OT1JFVFJBTlNNSVQgIG1Bc2Ztc2dNZW1vcnlNaXNz aW5nID0NCg0KK3sNCg0KKyAgQVNGTVNHX0NPTU1BTkRfTUVTU0FHSU5HLA0KDQorICAweGQsICAg IC8vIEJ5dGVDb3VudA0KDQorICBBU0ZNU0dfU1VCQ09NTUFORF9OT19SRVRSQU5TTUlULA0KDQor ICBBU0ZNU0dfVkVSU0lPTl9OVU1CRVJfMTAsDQoNCisgIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQ RV9GV19FUlJPUl9QUk9HUkVTUywNCg0KKyAgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJ RklDLA0KDQorICBBU0ZNU0dfRVZFTlRfT0ZGU0VUX1NZU19GV19FUlJPUiwNCg0KKyAgQVNGTVNH X0VWRU5UX1NPVVJDRV9UWVBFX0FTRjEwLA0KDQorICBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9O X0NSSVRJQ0FMLA0KDQorICBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCwNCg0KKyAg QVNGTVNHX1NFTlNPUl9OVU1CRVJfVU5TUEVDSUZJRUQsDQoNCisgIEFTRk1TR19FTlRJVFlfTUVN T1JZX0RFVklDRSwNCg0KKyAgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCwNCg0K KyAgQVNGTVNHX0VWRU5UX0RBVEExLA0KDQorICBBU0ZNU0dfRVZFTlRfREFUQV9OT19NRU1PUlkN Cg0KK307DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9uIHB1c2hlcyB0aGUgUEVJIFN5 c3RlbSBGaXJtd2FyZSBQcm9ncmVzcyBFdmVudHMuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBTbUJ1 cyAgICAgICAgICAgICAgIFBvaW50ZXIgdG8gdGhlIFNtQnVzIFBQSS4NCg0KKyAgQHBhcmFtW2lu XSBGaXhlZFRhcmdldEFkZHJlc3MgIERldmljZSBhZGRyZXNzDQoNCisgIEBwYXJhbVtpbl0gTWVz c2FnZUVycm9yTGV2ZWwgICBQcm9ncmVzcyBvciBlcnJvciBvciBzeXN0ZW0gbWFuYWdlbWVudCBt ZXNzYWdlIFR5cGUuDQoNCisgIEBwYXJhbVtpbl0gTWVzc2FnZUJ1ZmZlciAgICAgICBQb2ludGVy IHRvIHRoZSBFdmVudCBEYXRhIEJ1ZmZlci4NCg0KKw0KDQorKiovDQoNCitWT0lEDQoNCitFRklB UEkNCg0KK0FzZlB1c2hQcm9ncmVzc01lc3NhZ2UgKA0KDQorICBJTiBFRklfUEVJX1NNQlVTMl9Q UEkgICAgICAgICpTbUJ1cywNCg0KKyAgSU4gRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBGaXhl ZFRhcmdldEFkZHJlc3MsDQoNCisgIElOIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgTWVzc2Fn ZUVycm9yTGV2ZWwsDQoNCisgIElOIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgKk1lc3NhZ2VC dWZmZXINCg0KKyAgKQ0KDQorew0KDQorICBFRklfU1RBVFVTICBTdGF0dXM7DQoNCisgIFVJTlRO ICAgICAgIExlbmd0aDsNCg0KKw0KDQorICBpZiAoTWVzc2FnZUVycm9yTGV2ZWwgJiBQY2RHZXQz MiAoUGNkQXNmTWVzc2FnZUVycm9yTGV2ZWwpKSB7DQoNCisgICAgTGVuZ3RoID0gKChBU0ZfTVNH X05PUkVUUkFOU01JVCAqKU1lc3NhZ2VCdWZmZXIpLT5CeXRlQ291bnQ7DQoNCisgICAgU3RhdHVz ID0gU21CdXMtPkV4ZWN1dGUgKA0KDQorICAgICAgICAgICAgICAgICAgICAgIFNtQnVzLA0KDQor ICAgICAgICAgICAgICAgICAgICAgIEZpeGVkVGFyZ2V0QWRkcmVzcywNCg0KKyAgICAgICAgICAg ICAgICAgICAgICAoKEFTRl9NU0dfTk9SRVRSQU5TTUlUICopTWVzc2FnZUJ1ZmZlciktPkNvbW1h bmQsDQoNCisgICAgICAgICAgICAgICAgICAgICAgRWZpU21idXNXcml0ZUJsb2NrLA0KDQorICAg ICAgICAgICAgICAgICAgICAgIFRSVUUsDQoNCisgICAgICAgICAgICAgICAgICAgICAgJkxlbmd0 aCwNCg0KKyAgICAgICAgICAgICAgICAgICAgICAoVUlOVDggKikoTWVzc2FnZUJ1ZmZlcisyKQ0K DQorICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVz KSkgew0KDQorICAgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlB1c2ggYWxlcnQgbWVzc2FnZSBm YWlsLCBzdGF0dXMgPSAlclxuIiwgU3RhdHVzKSk7DQoNCisgICAgfQ0KDQorICB9DQoNCisNCg0K KyAgcmV0dXJuOw0KDQorfQ0KDQorDQoNCisvKioNCg0KKyAgVGhpcyBjYWxsYmFjayByZWdpc3Rl cmVkIGJ5IFJlcG9ydCBTdGF0dXMgQ29kZSBQcGkgZm9yIE1lbW9yeSBNaXNzaW5nIFBFVC4NCg0K Kw0KDQorICBAcGFyYW1baW5dIFBlaVNlcnZpY2VzICAgICAgICBHZW5lcmFsIHB1cnBvc2Ugc2Vy dmljZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5IFBFSU0uDQoNCisgIEBwYXJhbVtpbl0gVHlwZSAgICAg ICAgICAgICAgIEluZGljYXRlcyB0aGUgdHlwZSBvZiBzdGF0dXMgY29kZSBiZWluZyByZXBvcnRl ZC4NCg0KKyAgQHBhcmFtW2luXSBWYWx1ZSAgICAgICAgICAgICAgRGVzY3JpYmVzIHRoZSBjdXJy ZW50IHN0YXR1cyBvZiBhIGhhcmR3YXJlIG9yIHNvZnR3YXJlIGVudGl0eS4NCg0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpbmNsdWRlZCBpbmZvcm1hdGlvbiBhYm91dCB0 aGUgY2xhc3MgYW5kIHN1YmNsYXNzIHRoYXQgaXMNCg0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXNlZCB0byBjbGFzc2lmeSB0aGUgZW50aXR5IGFzIHdlbGwgYXMgYW4gb3BlcmF0 aW9uLg0KDQorICBAcGFyYW1baW5dIEluc3RhbmNlICAgICAgICAgICBUaGUgZW51bWVyYXRpb24g b2YgYSBoYXJkd2FyZSBvciBzb2Z0d2FyZSBlbnRpdHkgd2l0aGluIHRoZSBzeXN0ZW0uDQoNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkIGluc3RhbmNlIG51bWJlcnMgc3Rh cnQgd2l0aCAxLg0KDQorICBAcGFyYW1baW5dIENhbGxlcklkICAgICAgICAgICBUaGlzIG9wdGlv bmFsIHBhcmFtZXRlciBtYXkgYmUgdXNlZCB0byBpZGVudGlmeSB0aGUgY2FsbGVyLg0KDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBhbGxvd3MgdGhlIHN0 YXR1cyBjb2RlIGRyaXZlciB0byBhcHBseSBkaWZmZXJlbnQNCg0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcnVsZXMgdG8gZGlmZmVyZW50IGNhbGxlcnMuDQoNCisgIEBwYXJhbVtp bl0gRGF0YSAgICAgICAgICAgICAgIFRoaXMgb3B0aW9uYWwgcGFyYW1ldGVyIG1heSBiZSB1c2Vk IHRvIHBhc3MgYWRkaXRpb25hbCBkYXRhLg0KDQorDQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1Mg ICAgICAgICAgIEFsd2F5cyByZXR1cm4gRUZJX1NVQ0NFU1MNCg0KKw0KDQorKiovDQoNCitFRklf U1RBVFVTDQoNCitFRklBUEkNCg0KK0FzZlBlaVN0YXR1c0NvZGVDYWxsQmFjayAoDQoNCisgIElO ICBFRklfUEVJX1NFUlZJQ0VTICAgICAgICoqUGVpU2VydmljZXMsDQoNCisgIElOICBFRklfU1RB VFVTX0NPREVfVFlQRSAgIFR5cGUsDQoNCisgIElOICBFRklfU1RBVFVTX0NPREVfVkFMVUUgIFZh bHVlLA0KDQorICBJTiAgVUlOVDMyICAgICAgICAgICAgICAgICBJbnN0YW5jZSwNCg0KKyAgSU4g IEVGSV9HVUlEICAgICAgICAgICAgICAgKkNhbGxlcklkLA0KDQorICBJTiAgRUZJX1NUQVRVU19D T0RFX0RBVEEgICAqRGF0YQ0KDQorICApDQoNCit7DQoNCisgIEVGSV9TVEFUVVMgICAgICAgICAg ICAgICAgU3RhdHVzOw0KDQorICBFRklfUEVJX1NNQlVTMl9QUEkgICAgICAgICpTbUJ1czsNCg0K KyAgRUZJX1NNQlVTX0RFVklDRV9BRERSRVNTICBGaXhlZFRhcmdldEFkZHJlc3M7DQoNCisNCg0K KyAgRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9IFBjZEdldDggKFBjZFNt YnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbikgPj4gMTsNCg0KKyAgaWYgKEZpeGVkVGFyZ2V0QWRk cmVzcy5TbWJ1c0RldmljZUFkZHJlc3MgPT0gMCkgew0KDQorICAgIHJldHVybiBFRklfU1VDQ0VT UzsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgNCg0K KyAgICAgICAgICAgICAmZ0VmaVBlaVNtYnVzMlBwaUd1aWQsDQoNCisgICAgICAgICAgICAgMCwN Cg0KKyAgICAgICAgICAgICBOVUxMLA0KDQorICAgICAgICAgICAgIChWT0lEICoqKSZTbUJ1cw0K DQorICAgICAgICAgICAgICk7DQoNCisgIGlmICggRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoNCisg ICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoNCisNCg0KKyAgaWYgKChUeXBlICYgRUZJ X1NUQVRVU19DT0RFX1RZUEVfTUFTSykgPT0gRUZJX0VSUk9SX0NPREUpIHsNCg0KKyAgICBpZiAo KFZhbHVlID09IChFRklfU09GVFdBUkVfUEVJX0NPUkUgfCBFRklfU1dfUEVJX0NPUkVfRUNfTUVN T1JZX05PVF9JTlNUQUxMRUQpKSB8fA0KDQorICAgICAgICAoVmFsdWUgPT0gKEVGSV9DT01QVVRJ TkdfVU5JVF9NRU1PUlkgfCBFRklfQ1VfTUVNT1JZX0VDX05PTkVfREVURUNURUQpKSkNCg0KKyAg ICB7DQoNCisgICAgICAvLyBFcnJvciBtZXNzYWdlIC0gTWVtb3J5IE1pc3NpbmcuDQoNCisgICAg ICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNT QUdFX0VSUk9SX0xFVkVMX0VSUk9SLCAoVUlOVDggKikmbUFzZm1zZ01lbW9yeU1pc3NpbmcpOw0K DQorICAgIH0NCg0KKyAgfQ0KDQorDQoNCisgIGlmICgoKFR5cGUgJiBFRklfU1RBVFVTX0NPREVf VFlQRV9NQVNLKSA9PSBFRklfUFJPR1JFU1NfQ09ERSkgJiYNCg0KKyAgICAgIChWYWx1ZSA9PSAo RUZJX0NPTVBVVElOR19VTklUX0hPU1RfUFJPQ0VTU09SIHwgRUZJX0NVX0hQX1BDX0NBQ0hFX0lO SVQpKSkNCg0KKyAgew0KDQorICAgIC8vIFByb2dyZXNzIG1lc3NhZ2UgLSBDYWNoZSBpbml0aWFs aXphdGlvbi4NCg0KKyAgICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJn ZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xFVkVMX1BST0dSRVNTLCAoVUlOVDggKikmbUFzZm1z Z0NhY2hlSW5pdCk7DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCit9 DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIHNlbmQgbWVtb3J5IGluaXRpYWxpemVkIG1lc3NhZ2Ug YWZ0ZXIgbWVtb3J5IGRpc2NvdmVyZWQuDQoNCisNCg0KKyAgQHBhcmFtW2luXSBQZWlTZXJ2aWNl cyAgICAgICAgICBHZW5lcmFsIHB1cnBvc2Ugc2VydmljZXMgYXZhaWxhYmxlIHRvIGV2ZXJ5IFBF SU0uDQoNCisgIEBwYXJhbVtpbl0gTm90aWZ5RGVzY3JpcHRvciAgICAgVGhlIG5vdGlmaWNhdGlv biBzdHJ1Y3R1cmUgdGhpcyBQRUlNIHJlZ2lzdGVyZWQgb24gaW5zdGFsbC4NCg0KKyAgQHBhcmFt W2luXSBQcGkgICAgICAgICAgICAgICAgICBUaGUgbWVtb3J5IGRpc2NvdmVyZWQgUFBJLg0KDQor DQoNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgQWx3YXlzIHJldHVybiBFRklf U1VDQ0VTUw0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorTXNnTWVt b3J5SW5pdENvbXBsZXRlZCAoDQoNCisgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAgICoq UGVpU2VydmljZXMsDQoNCisgIElOIEVGSV9QRUlfTk9USUZZX0RFU0NSSVBUT1IgICpOb3RpZnlE ZXNjcmlwdG9yLA0KDQorICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICAqUHBpDQoNCisg ICkNCg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQoNCisgIEVG SV9QRUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0KDQorICBFRklfQk9PVF9NT0RFICAgICAg ICAgICAgIEJvb3RNb2RlOw0KDQorICBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIEZpeGVkVGFy Z2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VBZGRy ZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJlc3NGb3JEYXNoTGFuKSA+PiAxOw0KDQor ICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9PSAwKSB7DQoNCisg ICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KDQorICB9DQoNCisNCg0KKyAgU3RhdHVzID0gUGVpU2Vy dmljZXNMb2NhdGVQcGkgKA0KDQorICAgICAgICAgICAgICZnRWZpUGVpU21idXMyUHBpR3VpZCwN Cg0KKyAgICAgICAgICAgICAwLA0KDQorICAgICAgICAgICAgIE5VTEwsDQoNCisgICAgICAgICAg ICAgKFZPSUQgKiopJlNtQnVzDQoNCisgICAgICAgICAgICAgKTsNCg0KKyAgaWYgKCBFRklfRVJS T1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4gRUZJX1NVQ0NFU1M7DQoNCisgIH0NCg0KKw0K DQorICAvLyBQcm9ncmVzcyBtZXNzYWdlIC0gQ29tcGxldGVkIG1lbW9yeSBpbml0aWFsaXphdGlv biBhbmQgdGVzdC4NCg0KKyAgQXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoU21CdXMsIEZpeGVkVGFy Z2V0QWRkcmVzcywgTUVTU0FHRV9FUlJPUl9MRVZFTF9QUk9HUkVTUywgKFVJTlQ4ICopJm1Nc2dN ZW1vcnlJbml0aWFsaXplZCk7DQoNCisNCg0KKyAgLy8gR2V0IEJvb3QgUGF0aC4NCg0KKyAgU3Rh dHVzID0gUGVpU2VydmljZXNHZXRCb290TW9kZSAoJkJvb3RNb2RlKTsNCg0KKyAgaWYgKCFFRklf RVJST1IgKFN0YXR1cykgJiYgKEJvb3RNb2RlID09IEJPT1RfT05fUzNfUkVTVU1FKSkgew0KDQor ICAgIC8vIFB1c2ggU3lzdGVtIFN0YXRlIFdvcmtpbmcgaWYgUzMgcmVzdW1pbmcuDQoNCisgICAg QXNmUHVzaFByb2dyZXNzTWVzc2FnZSAoDQoNCisgICAgICBTbUJ1cywNCg0KKyAgICAgIEZpeGVk VGFyZ2V0QWRkcmVzcywNCg0KKyAgICAgIE1FU1NBR0VfRVJST1JfTEVWRUxfU1lTVEVNX01BTkFH RU1FTlQsDQoNCisgICAgICAoVUlOVDggKikmbUFzZlN5c3RlbVN0YXRlV29ya2luZw0KDQorICAg ICAgKTsNCg0KKyAgfQ0KDQorDQoNCisgIHJldHVybiBFRklfU1VDQ0VTUzsNCg0KK30NCg0KKw0K DQorLyoqDQoNCisgIEFzZiBQRUkgbW9kdWxlIGVudHJ5IHBvaW50DQoNCisNCg0KKyAgQHBhcmFt W2luXSAgRmlsZUhhbmRsZSAgICAgICAgICAgRmlsZUhhbmRsZSAgSGFuZGxlIG9mIHRoZSBmaWxl IGJlaW5nIGludm9rZWQuDQoNCisgIEBwYXJhbVtpbl0gIFBlaVNlcnZpY2VzICAgICAgICAgIERl c2NyaWJlcyB0aGUgbGlzdCBvZiBwb3NzaWJsZSBQRUkgU2VydmljZXMuDQoNCisNCg0KKyAgQHJl dHZhbCAgICAgRUZJX1NVQ0NFU1MgICAgICAgICAgVGhlIFBFSU0gaW5pdGlhbGl6ZWQgc3VjY2Vz c2Z1bGx5Lg0KDQorDQoNCisqKi8NCg0KK0VGSV9TVEFUVVMNCg0KK0VGSUFQSQ0KDQorQXNmUGVp RW50cnkgKA0KDQorICBJTiAgICAgICBFRklfUEVJX0ZJTEVfSEFORExFICBGaWxlSGFuZGxlLA0K DQorICBJTiBDT05TVCBFRklfUEVJX1NFUlZJQ0VTICAgICAqKlBlaVNlcnZpY2VzDQoNCisgICkN Cg0KK3sNCg0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICBTdGF0dXM7DQoNCisgIEVGSV9Q RUlfU01CVVMyX1BQSSAgICAgICAgKlNtQnVzOw0KDQorICBFRklfUEVJX1JTQ19IQU5ETEVSX1BQ SSAgICpSc2NIbmRyUHBpOw0KDQorICBFRklfU01CVVNfREVWSUNFX0FERFJFU1MgIEZpeGVkVGFy Z2V0QWRkcmVzczsNCg0KKw0KDQorICBGaXhlZFRhcmdldEFkZHJlc3MuU21idXNEZXZpY2VBZGRy ZXNzID0gUGNkR2V0OCAoUGNkU21idXNTbGF2ZUFkZHJlc3NGb3JEYXNoTGFuKSA+PiAxOw0KDQor ICBpZiAoRml4ZWRUYXJnZXRBZGRyZXNzLlNtYnVzRGV2aWNlQWRkcmVzcyA9PSAwKSB7DQoNCisg ICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCg0KKyAgfQ0KDQorDQoNCisgIFN0YXR1cyA9IFBl aVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAgICAgICAgICAgICAmZ0VmaVBlaVNtYnVzMlBwaUd1 aWQsDQoNCisgICAgICAgICAgICAgMCwNCg0KKyAgICAgICAgICAgICBOVUxMLA0KDQorICAgICAg ICAgICAgIChWT0lEICoqKSZTbUJ1cw0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmIChFRklf RVJST1IgKFN0YXR1cykpIHsNCg0KKyAgICByZXR1cm4gU3RhdHVzOw0KDQorICB9DQoNCisNCg0K KyAgLy8NCg0KKyAgLy8gSWYgdGhlIG1hbmFnZWQgY2xpZW50J3MgZmlybXdhcmUgc3VwcG9ydHMg YSBzeXN0ZW0gYm9vdC1mYWlsdXJlIHdhdGNoZG9nIHRpbWVyLA0KDQorICAvLyB0aGUgZmlybXdh cmUgaXNzdWVzIHRoZSBTdG9wIFdhdGNoZG9nIFRpbWVyIGNvbW1hbmQgdG8gc3RvcCB0aGUgdGlt ZXIgdGhhdCBpcw0KDQorICAvLyBhdXRvbWF0aWNhbGx5IHN0YXJ0ZWQgYnkgdGhlIGFsZXJ0LXNl bmRpbmcgZGV2aWNlIGF0IHBvd2VyLW9uIHJlc2V0Lg0KDQorICAvLw0KDQorICBBc2ZQdXNoUHJv Z3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBNRVNTQUdFX0VSUk9SX0xF VkVMX1NZU1RFTV9NQU5BR0VNRU5ULCAoVUlOVDggKikmbU1zZ1N0b3BUaW1lcik7DQoNCisNCg0K KyAgLy8gUHJvZ3Jlc3MgbWVzc2FnZSAtIEJJT1MgUHJlc2VudC4NCg0KKyAgQXNmUHVzaFByb2dy ZXNzTWVzc2FnZSAoU21CdXMsIEZpeGVkVGFyZ2V0QWRkcmVzcywgTUVTU0FHRV9FUlJPUl9MRVZF TF9QUk9HUkVTUywgKFVJTlQ4ICopJm1Nc2dCaW9zUHJlc2VudCk7DQoNCisNCg0KKyAgLy8gUHJv Z3Jlc3MgbWVzc2FnZSAtIFN0YXJ0ZWQgbWVtb3J5IGluaXRpYWxpemF0aW9uIGFuZCB0ZXN0Lg0K DQorICBBc2ZQdXNoUHJvZ3Jlc3NNZXNzYWdlIChTbUJ1cywgRml4ZWRUYXJnZXRBZGRyZXNzLCBN RVNTQUdFX0VSUk9SX0xFVkVMX1BST0dSRVNTLCAoVUlOVDggKikmbU1zZ01lbW9yeUluaXQpOw0K DQorDQoNCisgIFBlaVNlcnZpY2VzTm90aWZ5UHBpICgmbU1lbW9yeURpc2NvdmVyZWROb3RpZnlE ZXMpOw0KDQorDQoNCisgIFN0YXR1cyA9IFBlaVNlcnZpY2VzTG9jYXRlUHBpICgNCg0KKyAgICAg ICAgICAgICAmZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlkLA0KDQorICAgICAgICAgICAgIDAsDQoN CisgICAgICAgICAgICAgTlVMTCwNCg0KKyAgICAgICAgICAgICAoVk9JRCAqKikmUnNjSG5kclBw aQ0KDQorICAgICAgICAgICAgICk7DQoNCisgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQoN CisgICAgUnNjSG5kclBwaS0+UmVnaXN0ZXIgKChFRklfUEVJX1JTQ19IQU5ETEVSX0NBTExCQUNL KUFzZlBlaVN0YXR1c0NvZGVDYWxsQmFjayk7DQoNCisgIH0NCg0KKw0KDQorICByZXR1cm4gRUZJ X1NVQ0NFU1M7DQoNCit9DQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZl YXR1cmVQa2cvQWR2YW5jZWRGZWF0dXJlUGtnLmRzYyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2Vk RmVhdHVyZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNjDQppbmRleCBmMGYxZTA0MzVmLi5jZTBl YWM3YTU2IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0Fk dmFuY2VkRmVhdHVyZVBrZy5kc2MNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVy ZVBrZy9BZHZhbmNlZEZlYXR1cmVQa2cuZHNjDQpAQCAtNjMsNiArNjMsNyBAQA0KICAgIw0KDQog ICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RJcG1pRmVhdHVyZUVuYWJsZSAgICAg ICAgICAgICAgICAgICAgICAgIHxUUlVFDQoNCiAgIGdTcGNyRmVhdHVyZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZFNwY3JGZWF0dXJlRW5hYmxlICAgICAgICAgICAgICAgICAgICAgICAgfFRSVUUNCg0K KyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc2ZGZWF0dXJlRW5hYmxlICAgICAg ICAgICAgICAgICAgICAgICAgICB8VFJVRQ0KDQoNCg0KICAgIw0KDQogICAjIFBvd2VyTWFuYWdl bWVudCBmZWF0dXJlcw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0 dXJlUGtnL0luY2x1ZGUvQWR2YW5jZWRGZWF0dXJlcy5kc2MgYi9GZWF0dXJlcy9JbnRlbC9BZHZh bmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzLmRzYw0KaW5kZXggODA0YWFi ODliYy4uODVhMDY3ZDZhMCAxMDA2NDQNCi0tLSBhL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVh dHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVyZXMuZHNjDQorKysgYi9GZWF0dXJlcy9JbnRl bC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzLmRzYw0KQEAgLTQ3 LDYgKzQ3LDEwIEBADQogICAhaW5jbHVkZSBTcGNyRmVhdHVyZVBrZy9JbmNsdWRlL1NwY3JGZWF0 dXJlLmRzYw0KDQogIWVuZGlmDQoNCg0KDQorIWlmIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkQXNmRmVhdHVyZUVuYWJsZSA9PSBUUlVFDQoNCisgICFpbmNsdWRlIEFzZkZlYXR1cmVQ a2cvSW5jbHVkZS9Bc2ZGZWF0dXJlLmRzYw0KDQorIWVuZGlmDQoNCisNCg0KICMNCg0KICMgUG93 ZXJNYW5hZ2VtZW50IGZlYXR1cmVzDQoNCiAjDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRl bC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9BZHZhbmNlZEZlYXR1cmVzUGNkLmRzYyBiL0Zl YXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFuY2VkRmVhdHVyZXNQ Y2QuZHNjDQppbmRleCAwYWY1YThiZmJjLi5lYmY4ZDFmOWI4IDEwMDY0NA0KLS0tIGEvRmVhdHVy ZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0luY2x1ZGUvQWR2YW5jZWRGZWF0dXJlc1BjZC5k c2MNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9JbmNsdWRlL0FkdmFu Y2VkRmVhdHVyZXNQY2QuZHNjDQpAQCAtMzUsNiArMzUsNyBAQA0KICAgIw0KDQogICBJcG1pRmVh dHVyZVBrZy9JcG1pRmVhdHVyZVBrZy5kZWMNCg0KICAgU3BjckZlYXR1cmVQa2cvU3BjckZlYXR1 cmVQa2cuZGVjDQoNCisgIEFzZkZlYXR1cmVQa2cvQXNmRmVhdHVyZVBrZy5kZWMNCg0KDQoNCiAg ICMNCg0KICAgIyBQb3dlck1hbmFnZW1lbnQgZmVhdHVyZXMNCg0KQEAgLTczLDYgKzc0LDcgQEAN Cg0KDQogICBnSXBtaUZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RJcG1pRmVhdHVyZUVuYWJs ZSAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0KDQogICBnU3BjckZlYXR1cmVQa2dUb2tl blNwYWNlR3VpZC5QY2RTcGNyRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAgIHxG QUxTRQ0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFzZkZlYXR1cmVFbmFi bGUgICAgICAgICAgICAgICAgICAgICAgICAgIHxGQUxTRQ0KDQoNCg0KICAgZ1MzRmVhdHVyZVBr Z1Rva2VuU3BhY2VHdWlkLlBjZFMzRmVhdHVyZUVuYWJsZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8RkFMU0UNCg0KDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZl YXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2Vk RmVhdHVyZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQppbmRleCAzNDliZGNjNDkxLi5hY2Zi YjBlMjA5IDEwMDY0NA0KLS0tIGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0lu Y2x1ZGUvUG9zdE1lbW9yeS5mZGYNCisrKyBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVy ZVBrZy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpAQCAtNDgsNiArNDgsMTAgQEANCiAgICFpbmNs dWRlIFNwY3JGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYNCg0KICFlbmRpZg0KDQoN Cg0KKyFpZiBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEFzZkZlYXR1cmVFbmFibGUg PT0gVFJVRQ0KDQorICAhaW5jbHVkZSBBc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5m ZGYNCg0KKyFlbmRpZg0KDQorDQoNCiAjDQoNCiAjIFBvd2VyTWFuYWdlbWVudCBmZWF0dXJlcw0K DQogIw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvQWR2YW5jZWRGZWF0dXJlUGtnL0lu Y2x1ZGUvUHJlTWVtb3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL0FkdmFuY2VkRmVhdHVyZVBrZy9J bmNsdWRlL1ByZU1lbW9yeS5mZGYNCmluZGV4IGI5OTFhNWFhYmYuLjkwYjAzZTYxMDggMTAwNjQ0 DQotLS0gYS9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1v cnkuZmRmDQorKysgYi9GZWF0dXJlcy9JbnRlbC9BZHZhbmNlZEZlYXR1cmVQa2cvSW5jbHVkZS9Q cmVNZW1vcnkuZmRmDQpAQCAtNDgsNiArNDgsMTAgQEANCiAgICFpbmNsdWRlIFNwY3JGZWF0dXJl UGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZkZg0KDQogIWVuZGlmDQoNCg0KDQorIWlmIGdBc2ZGZWF0 dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJsZSA9PSBUUlVFDQoNCisgICFp bmNsdWRlIEFzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmDQoNCishZW5kaWYNCg0K Kw0KDQogIw0KDQogIyBQb3dlck1hbmFnZW1lbnQgZmVhdHVyZXMNCg0KICMNCg0KZGlmZiAtLWdp dCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZE eGUvQXNmRHhlLmggYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1 cmVQa2cvQXNmRHhlL0FzZkR4ZS5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAw MDAwMC4uOWNkZTM1OGI5Mw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGUuaA0KQEAgLTAsMCAr MSw2NiBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgRHhlIGRyaXZlciB3aGljaCBpcyB1c2VkIGZv ciBzZW5kaW5nIGV2ZW50IHJlY29yZCBsb2cgdG8gTklDIG9yIHJlY2VpdmluZw0KDQorICBib290 IG9wdGlvbiBjb21tYW5kIGZyb20gTklDIGFuZCBwcm92aWRlIGluIEFzZiBEeGUgcHJvdG9jb2wu DQoNCisNCg0KKyAgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJl c2VydmVkLjxCUj4NCg0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQNCg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9fQVNGX0RYRV9IX18NCg0KKyNkZWZpbmUg X19BU0ZfRFhFX0hfXw0KDQorDQoNCisjaW5jbHVkZSA8UGkvUGlTdGF0dXNDb2RlLmg+DQoNCisj aW5jbHVkZSA8UHJvdG9jb2wvQXNmUHJvdG9jb2wuaD4NCg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0 YW5kYXJkL1NtQnVzLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wvU21idXNIYy5oPg0KDQorI2lu Y2x1ZGUgPFByb3RvY29sL1JlcG9ydFN0YXR1c0NvZGVIYW5kbGVyLmg+DQoNCisjaW5jbHVkZSA8 TGlicmFyeS9CYXNlTGliLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9VZWZpTGliLmg+DQoNCisj aW5jbHVkZSA8TGlicmFyeS9EZWJ1Z0xpYi5oPg0KDQorI2luY2x1ZGUgPExpYnJhcnkvVWVmaUJv b3RTZXJ2aWNlc1RhYmxlTGliLmg+DQoNCisjaW5jbHVkZSA8TGlicmFyeS9VZWZpUnVudGltZVNl cnZpY2VzVGFibGVMaWIuaD4NCg0KKyNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4N Cg0KKyNpbmNsdWRlIDxMaWJyYXJ5L1ByaW50TGliLmg+DQoNCisjaW5jbHVkZSA8UHJvdG9jb2wv QWNwaVRhYmxlLmg+DQoNCisjaW5jbHVkZSA8QXNmTWVzc2FnZXMuaD4NCg0KKw0KDQorZXh0ZXJu IE1FU1NBR0VfREFUQV9IVUJfTUFQICAgICBtTXNnUHJvZ3Jlc3NNYXBbXTsNCg0KK2V4dGVybiBN RVNTQUdFX0RBVEFfSFVCX01BUCAgICAgbU1zZ0Vycm9yTWFwW107DQoNCitleHRlcm4gQVNGX01F U1NBR0UgICAgICAgICAgICAgIG1Bc2ZNZXNzYWdlc1tdOw0KDQorZXh0ZXJuIFVJTlROICAgICAg ICAgICAgICAgICAgICBtTXNnUHJvZ3Jlc3NNYXBTaXplOw0KDQorZXh0ZXJuIFVJTlROICAgICAg ICAgICAgICAgICAgICBtTXNnRXJyb3JNYXBTaXplOw0KDQorZXh0ZXJuIFVJTlROICAgICAgICAg ICAgICAgICAgICBtQXNmTWVzc2FnZXNTaXplOw0KDQorZXh0ZXJuIEFTRl9NU0dfTk9SRVRSQU5T TUlUICAgICBtQXNmU3lzdGVtU3RhdGU7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGZ1bmN0aW9u IHB1c2hlcyB0aGUgRFhFIFN5c3RlbSBGaXJtd2FyZSBFdmVudHMuDQoNCisNCg0KKyAgQHBhcmFt W2luXSBDb21tYW5kICAgICAgQ29tbWFuZCBvZiBTeXN0ZW0gRmlybXdhcmUgRXZlbnRzLg0KDQor ICBAcGFyYW1baW5dIExlbmd0aCAgICAgICBMZW5ndGggb2YgdGhlIGRhdGEgaW4gYnl0ZXMuDQoN CisgIEBwYXJhbVtpbl0gQXNmRXZlbnQgICAgIFN5c3RlbSBGaXJtd2FyZSBFdmVudHMgQ29tbWFu ZC4NCg0KKw0KDQorICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICBQdXNoIEV2ZW50IHN1Y2Nlc3Nm dWxseS4NCg0KKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgUHVzaCBFdmVudCBlcnJvci4NCg0K KyoqLw0KDQorRUZJX1NUQVRVUw0KDQorRUZJQVBJDQoNCitBc2ZQdXNoRXZlbnQgICgNCg0KKyAg SU4gIFVJTlQ4ICBDb21tYW5kLA0KDQorICBJTiAgVUlOVE4gIExlbmd0aCwNCg0KKyAgSU4gIFVJ TlQ4ICAqQXNmRXZlbnQNCg0KKyAgKTsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgZnVuY3Rpb24g aW5zdGFsbCB0aGUgQVNGIGFjcGkgVGFibGUuDQoNCisNCg0KKyAgQHBhcmFtW2luXSAgRXZlbnQg ICAgIEEgcG9pbnRlciB0byB0aGUgRXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNhbGxiYWNrLg0K DQorICBAcGFyYW1baW5dICBDb250ZXh0ICAgQSBwb2ludGVyIHRvIHByaXZhdGUgZGF0YSByZWdp c3RlcmVkIHdpdGggdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLg0KDQorKiovDQoNCitWT0lEDQoNCitF RklBUEkNCg0KK0luc3RhbGxBc2ZBY3BpVGFibGVFdmVudCAgKA0KDQorICBJTiBFRklfRVZFTlQg IEV2ZW50LA0KDQorICBJTiBWT0lEICAgICAgICpDb250ZXh0DQoNCisgICk7DQoNCisNCg0KKyNl bmRpZiAvL19fQVNGX0RYRV9IX18NCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZiBiL0ZlYXR1cmVz L0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmlu Zg0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjQ0NTE3Y2ZkMjcNCi0t LSAvZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNm RmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0KQEAgLTAsMCArMSw1MSBAQA0KKyMjIEBmaWxl DQoNCisjICBBc2YgRHhlIGRyaXZlciB3aGljaCBpcyB1c2VkIGZvciBzZW5kaW5nIGV2ZW50IHJl Y29yZCBsb2cgdG8gTklDIG9yIHJlY2VpdmluZw0KDQorIyAgYm9vdCBvcHRpb24gY29tbWFuZCBm cm9tIE5JQyBhbmQgcHJvdmlkZSBpbiBBc2YgRHhlIHByb3RvY29sLg0KDQorIw0KDQorIyAgQ29w eXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0K KyMgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisjIw0K DQorDQoNCitbRGVmaW5lc10NCg0KKyAgSU5GX1ZFUlNJT04gICAgICAgICAgID0gMHgwMDAxMDAw NQ0KDQorICBCQVNFX05BTUUgICAgICAgICAgICAgPSBBc2ZEeGUNCg0KKyAgTU9EVUxFX1VOSV9G SUxFICAgICAgID0gQXNmRHhlLnVuaQ0KDQorICBGSUxFX0dVSUQgICAgICAgICAgICAgPSBFRDdB RDFBMi0xNDI3LTQxRUMtQTcxRS0zMkVDOUExNTQ5RTgNCg0KKyAgTU9EVUxFX1RZUEUgICAgICAg ICAgID0gRFhFX0RSSVZFUg0KDQorICBWRVJTSU9OX1NUUklORyAgICAgICAgPSAxLjANCg0KKyAg RU5UUllfUE9JTlQgICAgICAgICAgID0gQXNmRHhlRW50cnkNCg0KKw0KDQorW1NvdXJjZXNdDQoN CisgIEFzZkR4ZS5jDQoNCisgIEFzZkR4ZS5oDQoNCisgIEFzZkR4ZUV2ZW50LmMNCg0KKyAgQXNm QWNwaVRhYmxlLmMNCg0KKw0KDQorW1BhY2thZ2VzXQ0KDQorICBNZGVQa2cvTWRlUGtnLmRlYw0K DQorICBBc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQoNCisNCg0KK1tMaWJyYXJ5Q2xh c3Nlc10NCg0KKyAgVWVmaURyaXZlckVudHJ5UG9pbnQNCg0KKyAgVWVmaVJ1bnRpbWVTZXJ2aWNl c1RhYmxlTGliDQoNCisgIERlYnVnTGliDQoNCisgIEJhc2VNZW1vcnlMaWINCg0KKyAgUHJpbnRM aWINCg0KKyAgVWVmaUxpYg0KDQorDQoNCitbUHJvdG9jb2xzXQ0KDQorICBnRWZpUnNjSGFuZGxl clByb3RvY29sR3VpZCAgICAjIyBDT05TVU1FUw0KDQorICBnQXNmUHJvdG9jb2xHdWlkICAgICAg ICAgICAgICAjIyBQUk9EVUNFUw0KDQorICBnRWZpQWNwaVRhYmxlUHJvdG9jb2xHdWlkICAgICAj IyBDT05TVU1FUw0KDQorICBnRWZpU21idXNIY1Byb3RvY29sR3VpZCAgICAgICAjIyBDT05TVU1F Uw0KDQorDQoNCitbUGNkXQ0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZFNt YnVzU2xhdmVBZGRyZXNzRm9yRGFzaExhbg0KDQorICBnQXNmRmVhdHVyZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZEFzZk1lc3NhZ2VFcnJvckxldmVsDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXMNCg0KKw0KDQorW0RlcGV4XQ0KDQorICBUUlVFDQoN CisNCg0KK1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4dHJhRmlsZXMiXQ0KDQorICBBc2ZE eGVFeHRyYS51bmkNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFn ZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaSBiL0ZlYXR1cmVzL0ludGVsL091 dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLnVuaQ0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjAyZmYxZjcyOTMNCi0tLSAvZGV2L251 bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBr Zy9Bc2ZEeGUvQXNmRHhlLnVuaQ0KQEAgLTAsMCArMSwxNSBAQA0KKy8vIC8qKiBAZmlsZQ0KDQor Ly8gQXNmIERYRSBNb2R1bGUNCg0KKy8vDQoNCisvLyBGb2xsb3cgQXNmIHNwZWMgdG8gc2VuZCBw cm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRldmljZQ0KDQorLy8NCg0KKy8vIENv cHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoN CisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorLy8N Cg0KKy8vICoqLw0KDQorDQoNCisNCg0KKyNzdHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAgICAg ICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkFzZiBEWEUgTW9kdWxlIg0KDQorDQoNCisjc3RyaW5n IFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJGb2xsb3cg QXNmIHNwZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRldmlj ZS4iDQoNCisNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlRXh0cmEudW5pIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkR4ZS9Bc2ZEeGVFeHRyYS51bmkN Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5kYmM3NDcyNTdjDQotLS0g L2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZl YXR1cmVQa2cvQXNmRHhlL0FzZkR4ZUV4dHJhLnVuaQ0KQEAgLTAsMCArMSwxMyBAQA0KKy8vIC8q KiBAZmlsZQ0KDQorLy8gQXNmIER4ZSBNb2R1bGUNCg0KKy8vDQoNCisvLyBGb2xsb3cgQXNmIHNw ZWMgdG8gc2VuZCBwcm9ncmVzcyBvciBlcnJvciBtZXNzYWdlIHRvIFNtYnVzIGRldmljZQ0KDQor Ly8NCg0KKy8vIENvcHlyaWdodCAoYykgMTk4NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQoNCisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KDQorLy8NCg0KKy8vICoqLw0KDQorDQoNCisjc3RyaW5nIFNUUl9QUk9QRVJUSUVTX01P RFVMRV9OQU1FDQoNCisjbGFuZ3VhZ2UgZW4tVVMNCg0KKyJBc2YgRFhFIg0KDQpkaWZmIC0tZ2l0 IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZl YXR1cmVQa2cuZGVjIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0 dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMC4uZDVkZjBjYjYyZg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZGVjDQpAQCAt MCwwICsxLDQ3IEBADQorIyMgQGZpbGUNCg0KKyMgVGhpcyBwYWNrYWdlIGRlZmluZXMgQXNmIHNw ZWNpZmljIGludGVyZmFjZXMgYW5kIGxpYnJhcnkgY2xhc3Nlcy4NCg0KKyMNCg0KKyMgQ29weXJp Z2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisN Cg0KK1tEZWZpbmVzXQ0KDQorICBERUNfU1BFQ0lGSUNBVElPTiAgICAgICAgICAgICAgICAgICA9 IDB4MDAwMTAwMDUNCg0KKyAgUEFDS0FHRV9OQU1FICAgICAgICAgICAgICAgICAgICAgICAgPSBB c2ZGZWF0dXJlUGtnDQoNCisgIFBBQ0tBR0VfR1VJRCAgICAgICAgICAgICAgICAgICAgICAgID0g MDI1QkU5QkQtNTBCMy00MTM5LTlBNzAtNDMzNkUyNzczMzlBDQoNCisgIFBBQ0tBR0VfVkVSU0lP TiAgICAgICAgICAgICAgICAgICAgID0gMS4wDQoNCisNCg0KK1tJbmNsdWRlc10NCg0KKyAgSW5j bHVkZQ0KDQorDQoNCitbR3VpZHNdDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQg ICAgPSB7IDB4YTEyZDlhYTQsIDB4ZTY5YiwgMHg0MjVjLCB7IDB4OTYsIDB4YzUsIDB4NDEsIDB4 OGQsIDB4YjEsIDB4ZDAsIDB4YjksIDB4NGYgfX0NCg0KKw0KDQorW1BwaXNdDQoNCisNCg0KK1tQ cm90b2NvbHNdDQoNCisgICMjIEFzZiBwcm90b2NvbCBHVUlEDQoNCisgICMgSW5jbHVkZS9Qcm90 b2NvbC9BbWlBc2ZQcm90b2NvbC5oDQoNCisgIGdBc2ZQcm90b2NvbEd1aWQgICAgICAgICAgICAg ICAgICA9ICB7IDB4ZGVjODk4MjcsIDB4OGE3ZSwgMHg0NWUwLCB7IDB4YmMsIDB4YjUsIDB4ZDUs IDB4M2IsIDB4NDYsIDB4MTQsIDB4YWQsIDB4YjggfSB9DQoNCisNCg0KK1tQY2RzRmVhdHVyZUZs YWddDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFjZUd1aWQuUGNkQXNmRmVhdHVyZUVuYWJs ZXxGQUxTRXxCT09MRUFOfDB4MDAwMDAwMDENCg0KKw0KDQorW1BjZHNGaXhlZEF0QnVpbGQsIFBj ZHNQYXRjaGFibGVJbk1vZHVsZSwgUGNkc0R5bmFtaWMsIFBjZHNEeW5hbWljRXhdDQoNCisgICMj IFNwZWNpZmllcyB0aGUgRGFzaCBsYW4gU21CdXMgc2xhdmUgYWRkcmVzcy4NCg0KKyAgIyBAUHJv bXB0IFNsYXZlIGFkZHJlc3Mgb2YgRGFzaCBsYW4NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNw YWNlR3VpZC5QY2RTbWJ1c1NsYXZlQWRkcmVzc0ZvckRhc2hMYW58MHgwfFVJTlQ4fDB4OTAwMDAw MDENCg0KKw0KDQorICAjIyBUaGlzIGZsYWcgaXMgdXNlZCB0byBjb250cm9sIHdoaWNoIG1lc3Nh Z2Ugd291bGQgYmUgc2VuZC4NCg0KKyAgIyAgSWYgZW5hYmxlZCwgQXNmIGRyaXZlciB3aWxsIHNl bmQgbWVzc2FnZSB0byBkZXZpY2UuPEJSPjxCUj4NCg0KKyAgIyAgIEJJVDAgIC0gUHJvZ3Jlc3Mg bWVzc2FnZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIEJJVDEgIC0gRXJyb3IgbWVzc2FnZSBp cyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIEJJVDIgIC0gU3lzdGVtIG1lbmFnZW1lbnQgbWVzc2Fn ZSBpcyBlbmFibGVkLjxCUj4NCg0KKyAgIyAgIE90aGVyIC0gcmVzZXJ2ZWQNCg0KKyAgIyBAUHJv bXB0IE1lc3NhZ2UgbGV2ZWwNCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RB c2ZNZXNzYWdlRXJyb3JMZXZlbHwweDd8VUlOVDMyfDB4OTAwMDAwMDINCg0KKw0KDQorICAjIyBT cGVjaWZpZXMgdGhlIGZvdXIgYXJyYXlzIG9mIGNvbnRyb2wgZGF0YXMgaW4gdGhlIEFTRl9SQ1RM IEFjcGkgdGFibGUuDQoNCisgICMgQFByb21wdCB0aGUgZm91ciBhcnJheXMgb2YgY29udHJvbCBk YXRhcyB0aGF0IHVzZWQgaW4gQVNGX1JDVEwuDQoNCisgIGdBc2ZGZWF0dXJlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkQ29udHJvbERhdGFBcnJheXN8ezB4MDAsIDB4ODgsIDB4MDAsIDB4MDMsIDB4MDEs IDB4ODgsIDB4MDAsIDB4MDIsIDB4MDIsIDB4ODgsIDB4MDAsIDB4MDEsIDB4MDMsIDB4ODgsIDB4 MDAsIDB4MDR9fFZPSUQqfDB4OTAwMDAwMDMNCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMv SW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNj IGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZl YXR1cmVQa2cuZHNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uMDA2 ZjM4OTJiYQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFu YWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZkZlYXR1cmVQa2cuZHNjDQpAQCAtMCwwICsxLDQwIEBA DQorIyMgQGZpbGUNCg0KKyMgQXNmIFBhY2thZ2UNCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChjKSAx OTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNl bnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK1tEZWZp bmVzXQ0KDQorICBQTEFURk9STV9OQU1FICAgICAgICAgICAgICAgICA9IEFzZkZlYXR1cmVQa2cN Cg0KKyAgUExBVEZPUk1fR1VJRCAgICAgICAgICAgICAgICAgPSA3OUQyMkUxMy0zRjMwLTQ3MEEt QUY5RC1CODBDQjQzMjQzNzkNCg0KKyAgUExBVEZPUk1fVkVSU0lPTiAgICAgICAgICAgICAgPSAw LjENCg0KKyAgRFNDX1NQRUNJRklDQVRJT04gICAgICAgICAgICAgPSAweDAwMDEwMDA1DQoNCisg IE9VVFBVVF9ESVJFQ1RPUlkgICAgICAgICAgICAgID0gQnVpbGQvJChQTEFURk9STV9OQU1FKQ0K DQorICBTVVBQT1JURURfQVJDSElURUNUVVJFUyAgICAgICA9IElBMzJ8WDY0DQoNCisgIEJVSUxE X1RBUkdFVFMgICAgICAgICAgICAgICAgID0gREVCVUd8UkVMRUFTRXxOT09QVA0KDQorICBTS1VJ RF9JREVOVElGSUVSICAgICAgICAgICAgICA9IERFRkFVTFQNCg0KKyAgUEVJX0FSQ0ggICAgICAg ICAgICAgICAgICAgICAgPSBJQTMyDQoNCisgIERYRV9BUkNIICAgICAgICAgICAgICAgICAgICAg ID0gWDY0DQoNCisNCg0KK1tQYWNrYWdlc10NCg0KKyAgTWluUGxhdGZvcm1Qa2cvTWluUGxhdGZv cm1Qa2cuZGVjDQoNCisNCg0KKyMNCg0KKyMgTWluUGxhdGZvcm0gY29tbW9uIGluY2x1ZGUgZm9y IHJlcXVpcmVkIGZlYXR1cmUgUENEDQoNCisjIFRoZXNlIFBDRCBtdXN0IGJlIHNldCBiZWZvcmUg dGhlIGNvcmUgaW5jbHVkZSBmaWxlcywgQ29yZUNvbW1vbkxpYiwNCg0KKyMgQ29yZVBlaUxpYiwg YW5kIENvcmVEeGVMaWIuDQoNCisjDQoNCishaW5jbHVkZSBNaW5QbGF0Zm9ybVBrZy9JbmNsdWRl L0RzYy9NaW5QbGF0Zm9ybUZlYXR1cmVzUGNkLmRzYy5pbmMNCg0KKw0KDQorIw0KDQorIyBJbmNs dWRlIGNvbW1vbiBsaWJyYXJpZXMNCg0KKyMNCg0KKyFpbmNsdWRlIE1pblBsYXRmb3JtUGtnL0lu Y2x1ZGUvRHNjL0NvcmVDb21tb25MaWIuZHNjDQoNCishaW5jbHVkZSBNaW5QbGF0Zm9ybVBrZy9J bmNsdWRlL0RzYy9Db3JlUGVpTGliLmRzYw0KDQorIWluY2x1ZGUgTWluUGxhdGZvcm1Qa2cvSW5j bHVkZS9Ec2MvQ29yZUR4ZUxpYi5kc2MNCg0KKw0KDQorIw0KDQorIyBUaGlzIHBhY2thZ2UgYWx3 YXlzIGJ1aWxkcyB0aGUgZmVhdHVyZS4NCg0KKyMNCg0KKyFpbmNsdWRlIEluY2x1ZGUvQXNmRmVh dHVyZS5kc2MNCg0KZGlmZiAtLWdpdCBhL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZiBiL0ZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9Bc2ZQZWkvQXNmUGVpLmluZg0KbmV3IGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmEwMjM5ZjE5OTANCi0tLSAvZGV2L251bGwN CisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9B c2ZQZWkvQXNmUGVpLmluZg0KQEAgLTAsMCArMSw1MSBAQA0KKyMjIEBmaWxlDQoNCisjICBBc2Yg UEVJTQ0KDQorIw0KDQorIyAgRm9sbG93IEFzZiBzcGVjIHRvIHNlbmQgcHJvZ3Jlc3Mgb3IgZXJy b3IgbWVzc2FnZSB0byBTbWJ1cyBkZXZpY2UNCg0KKyMNCg0KKyMgIENvcHlyaWdodCAoYykgMTk4 NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisjICBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorIyMNCg0KKw0KDQorW0RlZmlu ZXNdDQoNCisgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDUNCg0K KyAgQkFTRV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gQXNmUGVpDQoNCisgIE1PRFVMRV9V TklfRklMRSAgICAgICAgICAgICAgICA9IEFzZlBlaS51bmkNCg0KKyAgRklMRV9HVUlEICAgICAg ICAgICAgICAgICAgICAgID0gRDI2MDNCMDktQjhBMi00ODM3LUFBMUUtRUFFOEU0REY3OEU3DQoN CisgIE1PRFVMRV9UWVBFICAgICAgICAgICAgICAgICAgICA9IFBFSU0NCg0KKyAgVkVSU0lPTl9T VFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQoNCisgIEVOVFJZX1BPSU5UICAgICAgICAgICAg ICAgICAgICA9IEFzZlBlaUVudHJ5DQoNCisNCg0KKyMNCg0KKyMgVGhlIGZvbGxvd2luZyBpbmZv cm1hdGlvbiBpcyBmb3IgcmVmZXJlbmNlIG9ubHkgYW5kIG5vdCByZXF1aXJlZCBieSB0aGUgYnVp bGQgdG9vbHMuDQoNCisjDQoNCisjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElB MzIgWDY0DQoNCisjDQoNCisNCg0KK1tTb3VyY2VzXQ0KDQorICBBc2ZQZWkuYw0KDQorDQoNCitb UGFja2FnZXNdDQoNCisgIE1kZVBrZy9NZGVQa2cuZGVjDQoNCisgIEFzZkZlYXR1cmVQa2cvQXNm RmVhdHVyZVBrZy5kZWMNCg0KKw0KDQorW0xpYnJhcnlDbGFzc2VzXQ0KDQorICBQZWltRW50cnlQ b2ludA0KDQorICBQZWlTZXJ2aWNlc0xpYg0KDQorICBEZWJ1Z0xpYg0KDQorDQoNCitbUHBpc10N Cg0KKyAgZ0VmaVBlaVJzY0hhbmRsZXJQcGlHdWlkICAgICAgICAjIyBDT05TVU1FUw0KDQorICBn RWZpUGVpTWVtb3J5RGlzY292ZXJlZFBwaUd1aWQgICMjIENPTlNVTUVTDQoNCisgIGdFZmlQZWlT bWJ1czJQcGlHdWlkICAgICAgICAgICAgIyMgQ09OU1VNRVMNCg0KKw0KDQorW1BjZF0NCg0KKyAg Z0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RTbWJ1c1NsYXZlQWRkcmVzc0ZvckRhc2hM YW4NCg0KKyAgZ0FzZkZlYXR1cmVQa2dUb2tlblNwYWNlR3VpZC5QY2RBc2ZNZXNzYWdlRXJyb3JM ZXZlbA0KDQorDQoNCitbRGVwZXhdDQoNCisgIGdFZmlQZWlTbWJ1czJQcGlHdWlkDQoNCisNCg0K K1tVc2VyRXh0ZW5zaW9ucy5UaWFub0NvcmUuIkV4dHJhRmlsZXMiXQ0KDQorICBBc2ZQZWlFeHRy YS51bmkNCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdl bWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pIGIvRmVhdHVyZXMvSW50ZWwvT3V0 T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWkudW5pDQpuZXcgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uNjQ2NzEyOTE3ZQ0KLS0tIC9kZXYvbnVs bA0KKysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtn L0FzZlBlaS9Bc2ZQZWkudW5pDQpAQCAtMCwwICsxLDE1IEBADQorLy8gLyoqIEBmaWxlDQoNCisv LyBBc2YgUEVJIE1vZHVsZQ0KDQorLy8NCg0KKy8vIEZvbGxvdyBBc2Ygc3BlYyB0byBzZW5kIHBy b2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisvLw0KDQorLy8gQ29w eXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCg0K Ky8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisvLw0K DQorLy8gKiovDQoNCisNCg0KKw0KDQorI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAg ICAgICAgICNsYW5ndWFnZSBlbi1VUyAiQXNmIFBFSSBNb2R1bGUiDQoNCisNCg0KKyNzdHJpbmcg U1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIkZvbGxvdyBB c2Ygc3BlYyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNl LiINCg0KKw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVu dC9Bc2ZGZWF0dXJlUGtnL0FzZlBlaS9Bc2ZQZWlFeHRyYS51bmkgYi9GZWF0dXJlcy9JbnRlbC9P dXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaUV4dHJhLnVuaQ0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLjcyODE5ZjQ5ODYNCi0tLSAv ZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVh dHVyZVBrZy9Bc2ZQZWkvQXNmUGVpRXh0cmEudW5pDQpAQCAtMCwwICsxLDEzIEBADQorLy8gLyoq IEBmaWxlDQoNCisvLyBBc2YgUEVJIE1vZHVsZQ0KDQorLy8NCg0KKy8vIEZvbGxvdyBBc2Ygc3Bl YyB0byBzZW5kIHByb2dyZXNzIG9yIGVycm9yIG1lc3NhZ2UgdG8gU21idXMgZGV2aWNlDQoNCisv Lw0KDQorLy8gQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCg0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQoNCisvLw0KDQorLy8gKiovDQoNCisNCg0KKyNzdHJpbmcgU1RSX1BST1BFUlRJRVNfTU9E VUxFX05BTUUNCg0KKyNsYW5ndWFnZSBlbi1VUw0KDQorIkFzZiBQRUkiDQoNCmRpZmYgLS1naXQg YS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVk ZS9Bc2ZGZWF0dXJlLmRzYyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNm RmVhdHVyZVBrZy9JbmNsdWRlL0FzZkZlYXR1cmUuZHNjDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMDAwMDAwMDAwMC4uZDc2YWIzMDAwOA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVy ZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvQXNmRmVh dHVyZS5kc2MNCkBAIC0wLDAgKzEsNTIgQEANCisjIyBAZmlsZQ0KDQorIyBBc2YgUGFja2FnZQ0K DQorIw0KDQorIyBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KDQorIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KDQorIyMNCg0KKw0KDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KKyMNCg0KKyMg RGVmaW5lcyBTZWN0aW9uIC0gc3RhdGVtZW50cyB0aGF0IHdpbGwgYmUgcHJvY2Vzc2VkIHRvIGNy ZWF0ZSBhIE1ha2VmaWxlLg0KDQorIw0KDQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCg0KK1tE ZWZpbmVzXQ0KDQorIWlmbmRlZiAkKFBFSV9BUkNIKQ0KDQorICAhZXJyb3IgIlBFSV9BUkNIIG11 c3QgYmUgc3BlY2lmaWVkIHRvIGJ1aWxkIHRoaXMgZmVhdHVyZSEiDQoNCishZW5kaWYNCg0KKyFp Zm5kZWYgJChEWEVfQVJDSCkNCg0KKyAgIWVycm9yICJEWEVfQVJDSCBtdXN0IGJlIHNwZWNpZmll ZCB0byBidWlsZCB0aGlzIGZlYXR1cmUhIg0KDQorIWVuZGlmDQoNCisNCg0KKw0KDQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMNCg0KKyMNCg0KKyMgQ29tcG9uZW50IHNlY3Rpb24gLSBsaXN0IG9m IGFsbCBjb21wb25lbnRzIHRoYXQgbmVlZCBidWlsdCBmb3IgdGhpcyBmZWF0dXJlLg0KDQorIw0K DQorIyBOb3RlOiBUaGUgRURLIElJIERTQyBmaWxlIGlzIG5vdCB1c2VkIHRvIHNwZWNpZnkgaG93 IGNvbXBpbGVkIGJpbmFyeSBpbWFnZXMgZ2V0IHBsYWNlZA0KDQorIyAgICAgICBpbnRvIGZpcm13 YXJlIHZvbHVtZSBpbWFnZXMuIFRoaXMgc2VjdGlvbiBpcyBqdXN0IGEgbGlzdCBvZiBtb2R1bGVz IHRvIGNvbXBpbGUgZnJvbQ0KDQorIyAgICAgICBzb3VyY2UgaW50byBVRUZJLWNvbXBsaWFudCBi aW5hcmllcy4NCg0KKyMgICAgICAgSXQgaXMgdGhlIEZERiBmaWxlIHRoYXQgY29udGFpbnMgaW5m b3JtYXRpb24gb24gY29tYmluaW5nIGJpbmFyeSBmaWxlcyBpbnRvIGZpcm13YXJlDQoNCisjICAg ICAgIHZvbHVtZSBpbWFnZXMsIHdob3NlIGNvbmNlcHQgaXMgYmV5b25kIFVFRkkgYW5kIGlzIGRl c2NyaWJlZCBpbiBQSSBzcGVjaWZpY2F0aW9uLg0KDQorIyAgICAgICBUaGVyZSBtYXkgYWxzbyBi ZSBtb2R1bGVzIGxpc3RlZCBpbiB0aGlzIHNlY3Rpb24gdGhhdCBhcmUgbm90IHJlcXVpcmVkIGlu IHRoZSBGREYgZmlsZSwNCg0KKyMgICAgICAgV2hlbiBhIG1vZHVsZSBsaXN0ZWQgaGVyZSBpcyBl eGNsdWRlZCBmcm9tIEZERiBmaWxlLCB0aGVuIFVFRkktY29tcGxpYW50IGJpbmFyeSB3aWxsIGJl DQoNCisjICAgICAgIGdlbmVyYXRlZCBmb3IgaXQsIGJ1dCB0aGUgYmluYXJ5IHdpbGwgbm90IGJl IHB1dCBpbnRvIGFueSBmaXJtd2FyZSB2b2x1bWUuDQoNCisjDQoNCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIw0KDQorIw0KDQorIyBGZWF0dXJlIFBFSSBDb21wb25lbnRzDQoNCisjDQoNCisNCg0K KyMgQHRvZG86IENoYW5nZSBiZWxvdyBsaW5lIHRvIFtDb21wb25lbnRzLiQoUEVJX0FSQ0gpXSBh ZnRlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDgN Cg0KKyMgICAgICAgIGlzIGNvbXBsZXRlZC4NCg0KK1tDb21wb25lbnRzLklBMzJdDQoNCisgIEFz ZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5pbmYNCg0KKw0KDQorIw0KDQorIyBGZWF0dXJlIERY RSBDb21wb25lbnRzDQoNCisjDQoNCisNCg0KKyMgQHRvZG86IENoYW5nZSBiZWxvdyBsaW5lIHRv IFtDb21wb25lbnRzLiQoRFhFX0FSQ0gpXSBhZnRlciBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29y ZS5vcmcvc2hvd19idWcuY2dpP2lkPTIzMDgNCg0KKyMgICAgICAgIGlzIGNvbXBsZXRlZC4NCg0K K1tDb21wb25lbnRzLlg2NF0NCg0KKyAgQXNmRmVhdHVyZVBrZy9Bc2ZEeGUvQXNmRHhlLmluZg0K DQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0 dXJlUGtnL0luY2x1ZGUvQXNmTWVzc2FnZXMuaCBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1h bmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0FzZk1lc3NhZ2VzLmgNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi42ZTc5ZjQ5OTNmDQotLS0gL2Rldi9udWxsDQor KysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5j bHVkZS9Bc2ZNZXNzYWdlcy5oDQpAQCAtMCwwICsxLDEwNCBAQA0KKy8qKiBAZmlsZQ0KDQorICBB c2YgbWVzc2FnZSBmb3JtYXQgZGVmaW5lLg0KDQorDQoNCisgIENvcHlyaWdodCAoYykgMTk4NSAt IDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGljZW5zZS1J ZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisNCg0KKyAgQHBhciBSZXZpc2lvbiBS ZWZlcmVuY2U6DQoNCisgIEZvcm1hdCBkZWZpbmVkIGluIEFzZiAyLjAgU3BlY2lmaWNhdGlvbi4N Cg0KKyoqLw0KDQorDQoNCisjaWZuZGVmIF9fQVNGX01FU1NBR0VTX0hfXw0KDQorI2RlZmluZSBf X0FTRl9NRVNTQUdFU19IX18NCg0KKw0KDQorI2luY2x1ZGUgPEJhc2UuaD4NCg0KKyNpbmNsdWRl IDxJbmR1c3RyeVN0YW5kYXJkL0FzZi5oPg0KDQorDQoNCisjZGVmaW5lIE1FU1NBR0VfRVJST1Jf TEVWRUxfUFJPR1JFU1MgICAgICAgICAgIEJJVDANCg0KKyNkZWZpbmUgTUVTU0FHRV9FUlJPUl9M RVZFTF9FUlJPUiAgICAgICAgICAgICAgQklUMQ0KDQorI2RlZmluZSBNRVNTQUdFX0VSUk9SX0xF VkVMX1NZU1RFTV9NQU5BR0VNRU5UICBCSVQyDQoNCisNCg0KKyNwcmFnbWEgcGFjayhwdXNoLDEp DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIG1lc3NhZ2UgY2F1c2VzIHRoZSBhbGVydC1zZW5kaW5n IGRldmljZSB0byB0cmFuc21pdCBhIHNpbmdsZSwNCg0KKyAgdW4tcmV0cmFuc21pdHRlZCBQRVQg ZnJhbWUuIElmIHRoZSBhbGVydC1zZW5kaW5nIGRldmljZSBpcyBlaXRoZXIgdGVtcG9yYXJpbHkN Cg0KKyAgdW5hYmxlIHRvIGhhbmRsZSB0aGUgbWVzc2FnZSBvciB1bmFibGUgdG8gc2VuZCB0aGUg cmVxdWVzdGVkIFBFVCBmcmFtZQ0KDQorICBiZWNhdXNlIHRoZSBkZXZpY2UncyB0cmFuc3BvcnQg bWVkaWEgaXMgZG93biwgdGhlIGRldmljZSBtdXN0IE5BQ0sgdGhlIG1lc3NhZ2UNCg0KKyAgYWNj b3JkaW5nIHRvIFNNQlVTXzIuMCBkZWZpbml0aW9uczsgb3RoZXJ3aXNlLCB0aGUgZGV2aWNlIHNl bmRzIHRoZQ0KDQorICBzaW5nbGUtZnJhbWUgdHJhbnNtaXNzaW9uLg0KDQorKiovDQoNCit0eXBl ZGVmIHN0cnVjdCB7DQoNCisgIFVJTlQ4ICAgIENvbW1hbmQ7ICAgICAgICAgLy8vPCBNZXNzYWdl IENvbW1hbmQuDQoNCisgIFVJTlQ4ICAgIEJ5dGVDb3VudDsgICAgICAgLy8vPCBMZW5ndGggb2Yg dGhlIGRhdGEgaW4gYnl0ZXMuDQoNCisgIFVJTlQ4ICAgIFN1YkNvbW1hbmQ7ICAgICAgLy8vPCBT dWJDb21tYW5kIE5vIFJldHJhbnNtaXQuDQoNCisgIFVJTlQ4ICAgIFZlcnNpb247ICAgICAgICAg Ly8vPCBWZXJzaW9uIE51bWJlci4NCg0KKyAgVUlOVDggICAgRXZlbnRTZW5zb3JUeXBlOyAvLy88 IEV2ZW50IFNlbnNvciBUeXBlLg0KDQorICBVSU5UOCAgICBFdmVudFR5cGU7ICAgICAgIC8vLzwg RXZlbnQgVHlwZS4NCg0KKyAgVUlOVDggICAgRXZlbnRPZmZzZXQ7ICAgICAvLy88IEV2ZW50IE9m ZnNldC4NCg0KKyAgVUlOVDggICAgRXZlbnRTb3VyY2VUeXBlOyAvLy88IERlc2NyaWJlcyB0aGUg b3JpZ2luYXRvciBvZiB0aGUgZXZlbnQuDQoNCisgIFVJTlQ4ICAgIEV2ZW50U2V2ZXJpdHk7ICAg Ly8vPCBUaGUgc2V2ZXJpdHkgb2YgdGhlIGV2ZW50DQoNCisgIFVJTlQ4ICAgIFNlbnNvckRldmlj ZTsgICAgLy8vPCBUaGUgU2Vuc29yIERldmljZSB0aGF0IGNhdXNlZCB0aGUgZXZlbnQNCg0KKyAg VUlOVDggICAgU2Vuc29yTnVtYmVyOyAgICAvLy88IElkZW50aWZ5IGEgZ2l2ZW4gaW5zdGFuY2Ug b2YgYSBzZW5zb3IgcmVsYXRpdmUgdG8gdGhlIFNlbnNvciBEZXZpY2UuDQoNCisgIFVJTlQ4ICAg IEVudGl0eTsgICAgICAgICAgLy8vPCBJbmRpY2F0ZXMgdGhlIHBsYXRmb3JtIGRldmljZSBvciBz dWJzeXN0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC4NCg0KKyAgVUlOVDggICAgRW50aXR5 SW5zdGFuY2U7ICAvLy88IElkZW50aWZpZXMgd2hpY2ggdW5pcXVlIGRldmljZSBpcyBhc3NvY2lh dGVkIHdpdGggdGhlIGV2ZW50Lg0KDQorICBVSU5UOCAgICBFdmVudERhdGExOw0KDQorICBVSU5U OCAgICBFdmVudERhdGEyOw0KDQorICBVSU5UOCAgICBFdmVudERhdGEzOw0KDQorICBVSU5UOCAg ICBFdmVudERhdGE0Ow0KDQorICBVSU5UOCAgICBFdmVudERhdGE1Ow0KDQorfSBBU0ZfTVNHX05P UkVUUkFOU01JVDsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgaXMgdGhlIEFTRiBTVEFSVCBXYXRj aERvZyBUaW1lciBEYXRhIHN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoNCit0eXBlZGVmIHN0cnVj dCB7DQoNCisgIFVJTlQ4ICAgIENvbW1hbmQ7DQoNCisgIFVJTlQ4ICAgIEJ5dGVDb3VudDsNCg0K KyAgVUlOVDggICAgU3ViQ29tbWFuZDsNCg0KKyAgVUlOVDggICAgVmVyc2lvbjsNCg0KK30gQVNG X1NUT1BfV0FUQ0hET0c7DQoNCisNCg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBBU0YgTWVzc2Fn ZSBUeXBlIHN0cnVjdHVyZS4NCg0KKw0KDQorKiovDQoNCit0eXBlZGVmIGVudW0gew0KDQorICBN c2dIZGRJbml0LA0KDQorICBNc2dBcEluaXQsDQoNCisgIE1zZ1VzZXJJbml0U2V0dXAsDQoNCisg IE1zZ1VzYlJlc291cmNlQ29uZmlnLA0KDQorICBNc2dQY2lSZXNvdXJjZUNvbmZpZywNCg0KKyAg TXNnVmlkZW9Jbml0LA0KDQorICBNc2dLYmNJbml0LA0KDQorICBNc2dLYmNUZXN0LA0KDQorICBN c2dNb3RoZXJCb2FyZEluaXQsDQoNCisgIE1zZ05vVmlkZW8sDQoNCisgIE1zZ0tiZEZhaWx1cmUs DQoNCisgIE1zZ0hkZEZhaWx1cmUsDQoNCisgIE1zZ0NoYXNzaXNJbnRydXNpb24sDQoNCisgIE1z Z05vQm9vdE1lZGlhDQoNCit9IEFTRl9NRVNTQUdFX1RZUEU7DQoNCisNCg0KKy8qKg0KDQorICBU aGlzIGlzIHRoZSBNZXNzYWdlIERhdGEgSHViIE1hcCBTdHJ1Y3R1cmUuDQoNCisNCg0KKyoqLw0K DQordHlwZWRlZiBzdHJ1Y3Qgew0KDQorICBBU0ZfTUVTU0FHRV9UWVBFICAgICAgICAgTWVzc2Fn ZVR5cGU7DQoNCisgIEVGSV9TVEFUVVNfQ09ERV9WQUxVRSAgICBTdGF0dXNDb2RlOw0KDQorfSBN RVNTQUdFX0RBVEFfSFVCX01BUDsNCg0KKw0KDQorLyoqDQoNCisgIFRoaXMgaXMgdGhlIEFTRiBT eXN0ZW0gRmlybXdhcmUgRXZlbnQgU3RydWN0dXJlLg0KDQorDQoNCisqKi8NCg0KK3R5cGVkZWYg c3RydWN0IHsNCg0KKyAgQVNGX01FU1NBR0VfVFlQRSAgICAgICAgVHlwZTsNCg0KKyAgQVNGX01T R19OT1JFVFJBTlNNSVQgICAgTWVzc2FnZTsNCg0KK30gQVNGX01FU1NBR0U7DQoNCisNCg0KKyNw cmFnbWEgcGFjayhwb3ApDQoNCisNCg0KKyNlbmRpZiAvL19fQVNGX01FU1NBR0VTX0hfXw0KDQpk aWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJl UGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9Bc2YuaCBiL0ZlYXR1cmVzL0ludGVsL091dE9m QmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvQXNm LmgNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwLi5mNjYwZmUwYjcyDQot LS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0Fz ZkZlYXR1cmVQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL0FzZi5oDQpAQCAtMCwwICsxLDE0 NSBAQA0KKy8qKiBAZmlsZQ0KDQorICBBc2YgbWVzc2FnZSBjb21tYW5kcyBieXRlIGRlZmluZS4N Cg0KKw0KDQorICBDb3B5cmlnaHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVz ZXJ2ZWQuPEJSPg0KDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBh dGVudA0KDQorDQoNCisgIEBwYXIgUmV2aXNpb24gUmVmZXJlbmNlOg0KDQorICBEYXRhIGRlZmlu ZWQgaW4gQXNmIDIuMCBTcGVjaWZpY2F0aW9uLg0KDQorKiovDQoNCisNCg0KKyNpZm5kZWYgX19B U0ZfSF9fDQoNCisjZGVmaW5lIF9fQVNGX0hfXw0KDQorDQoNCisjaW5jbHVkZSA8QmFzZS5oPg0K DQorDQoNCisvLw0KDQorLy8gQm9vdCBvcHRpb24gbWVzc2FnZXMNCg0KKy8vDQoNCisjZGVmaW5l IEFTRk1TR19DTURfQ09ORklHICAgICAgICAgICAgICAweDMgICAvLyBBU0YgQ29uZmlndXJhdGlv bg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ01EX0NMUl9CT09UX09QVElPTiAgMHgxNSAgLy8gQ2xl YXIgQm9vdCBPcHRpb25zDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDTURfUkVUX0JPT1RfT1BUSU9O ICAweDE2ICAvLyBSZXR1cm4gQm9vdCBPcHRpb25zDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDTURf Tk9fQk9PVF9PUFRJT04gICAweDE3ICAvLyBObyBCb290IE9wdGlvbnMNCg0KKw0KDQorLy8NCg0K Ky8vIFN5c3RlbSBzdGF0ZXMNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19TWVNURU1fU1RBVEVf UzAgIDAgICAgICAgICAgICAgLy8gUzAvRzAgIldvcmtpbmciDQoNCisjZGVmaW5lIEFTRk1TR19T WVNURU1fU1RBVEVfUzEgIDEgICAgICAgICAgICAgLy8gUzENCg0KKyNkZWZpbmUgQVNGTVNHX1NZ U1RFTV9TVEFURV9TMiAgMiAgICAgICAgICAgICAvLyBTMg0KDQorI2RlZmluZSBBU0ZNU0dfU1lT VEVNX1NUQVRFX1MzICAzICAgICAgICAgICAgIC8vIFMzDQoNCisjZGVmaW5lIEFTRk1TR19TWVNU RU1fU1RBVEVfUzQgIDQgICAgICAgICAgICAgLy8gUzQNCg0KKyNkZWZpbmUgQVNGTVNHX1NZU1RF TV9TVEFURV9TNSAgNSAgICAgICAgICAgICAvLyBTNS9HMiAiU29mdC1vZmYiDQoNCisNCg0KKy8v DQoNCisvLyBBc2YgdmVyc2lvbg0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX1ZFUlNJT05fTlVN QkVSXzEwICAgICAgMHgxMA0KDQorDQoNCisvLw0KDQorLy8gU3lzdGVtIGZpcm13YXJlIGNhcGFi aWxpdGllcyBCaXQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRl9CT1BfQklUX0ZPUkNFX1BST0dSRVNT X0VWRU5UICAgICAgICBCSVQxMg0KDQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgY29tbWFu ZA0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0NPTU1BTkRfU1lTVEVNX1NUQVRFICAgICAgICAg ICAgICAgMHgxDQoNCisjZGVmaW5lIEFTRk1TR19DT01NQU5EX01BTkFHRU1FTlRfQ09OVFJPTCAg ICAgICAgIDB4Mg0KDQorI2RlZmluZSBBU0ZNU0dfQ09NTUFORF9NRVNTQUdJTkcgICAgICAgICAg ICAgICAgICAweDQNCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIHN1YmNvbW1hbmQNCg0K Ky8vDQoNCisjZGVmaW5lIEFTRk1TR19TVUJDT01NQU5EX1NUT1BfV0FUQ0hfRE9HICAgICAgICAg IDB4MTQNCg0KKyNkZWZpbmUgQVNGTVNHX1NVQkNPTU1BTkRfTk9fUkVUUkFOU01JVCAgICAgICAg ICAgMHgxNg0KDQorI2RlZmluZSBBU0ZNU0dfU1VCQ09NTUFORF9TRVRfU1lTVEVNX1NUQVRFICAg ICAgICAweDE4DQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBldmVudCBzZW5zb3IgdHlw ZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0NIQVNTSVNfSU5U UlVTSU9OICAweDUNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0ZXX0VSUk9S X1BST0dSRVNTICAweEYNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1NFTlNPUl9UWVBFX0JPT1Rf RVJST1IgICAgICAgICAweDFFDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9TRU5TT1JfVFlQRV9F TlRJVFlfUFJFU0VOQ0UgICAgMHgyNQ0KDQorDQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgZXZl bnQgdHlwZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX1RZUEVfU0VOU09SX1NQRUNJ RklDICAgICAgICAgICAweDZGDQoNCisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBldmVudCBv ZmZzZXQNCg0KKy8vDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9PRkZTRVRfRU5USVRZX1BSRVNF TlQgICAgICAgICAgMHgwDQoNCisNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNFVF9TWVNf RldfUFJPR1JFU1NfRU5UUlkgICAweDINCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX09GRlNFVF9T WVNfRldfUFJPR1JFU1NfRVhJVCAgICAweDgyDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9PRkZT RVRfU1lTX0ZXX0VSUk9SICAgICAgICAgICAgMHgwDQoNCisNCg0KKyNkZWZpbmUgQVNGTVNHX0VW RU5UX09GRlNFVF9OT19CT09UQUJMRV9NRURJQSAgICAgICAweDANCg0KKyNkZWZpbmUgQVNGTVNH X0VWRU5UX09GRlNFVF9DSEFTU0lTX0lOVFJVU0lPTiAgICAgICAweDANCg0KKw0KDQorLy8NCg0K Ky8vIEFzZiBtZXNzYWdlIGV2ZW50IHNvdXJjZSB0eXBlDQoNCisvLw0KDQorI2RlZmluZSBBU0ZN U0dfRVZFTlRfU09VUkNFX1RZUEVfQVNGMTAgICAgICAgICAgICAgIDB4NjgNCg0KKw0KDQorLy8N Cg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IHNldmVyaXR5DQoNCisvLw0KDQorI2RlZmluZSBBU0ZN U0dfRVZFTlRfU0VWRVJJVFlfTU9OSVRPUiAgICAgICAgICAgICAgIDB4MQ0KDQorI2RlZmluZSBB U0ZNU0dfRVZFTlRfU0VWRVJJVFlfTk9OX0NSSVRJQ0FMICAgICAgICAgIDB4OA0KDQorI2RlZmlu ZSBBU0ZNU0dfRVZFTlRfU0VWRVJJVFlfQ1JJVElDQUwgICAgICAgICAgICAgIDB4MTANCg0KKyNk ZWZpbmUgQVNGTVNHX0VWRU5UX1NFVkVSSVRZX05PTl9SRUNPVkVSQUJMRSAgICAgICAweDIwDQoN CisNCg0KKy8vDQoNCisvLyBBc2YgbWVzc2FnZSBzZW5zb3IgZGV2aWNlDQoNCisvLw0KDQorI2Rl ZmluZSBBU0ZNU0dfU0VOU09SX0RFVklDRV9VTlNQRUNJRklFRCAgICAgICAgICAgIDB4RkYNCg0K Kw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIHNlbnNvciBudW1iZXINCg0KKy8vDQoNCisjZGVm aW5lIEFTRk1TR19TRU5TT1JfTlVNQkVSX1VOU1BFQ0lGSUVEICAgICAgICAgICAgMHhGRg0KDQor DQoNCisvLw0KDQorLy8gQXNmIG1lc3NhZ2UgRW50aXR5DQoNCisvLw0KDQorDQoNCisjZGVmaW5l IEFTRk1TR19FTlRJVFlfVU5TUEVDSUZJRUQgICAgICAgICAgICAgICAgICAgMHgwDQoNCisjZGVm aW5lIEFTRk1TR19FTlRJVFlfUFJPQ0VTU09SICAgICAgICAgICAgICAgICAgICAgMHgzDQoNCisj ZGVmaW5lIEFTRk1TR19FTlRJVFlfRElTSyAgICAgICAgICAgICAgICAgICAgICAgICAgMHg0DQoN CisjZGVmaW5lIEFTRk1TR19FTlRJVFlfU1lTVEVNX0JPQVJEICAgICAgICAgICAgICAgICAgMHg3 DQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQUREX0lOX0NBUkQgICAgICAgICAgICAgICAgICAg MHhCDQoNCisjZGVmaW5lIEFTRk1TR19FTlRJVFlfQklPUyAgICAgICAgICAgICAgICAgICAgICAg ICAgMHgyMg0KDQorI2RlZmluZSBBU0ZNU0dfRU5USVRZX01FTU9SWV9ERVZJQ0UgICAgICAgICAg ICAgICAgIDB4MjANCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGVudGl0eSBpbnN0YW5j ZQ0KDQorLy8NCg0KKyNkZWZpbmUgQVNGTVNHX0VOVElUWV9JTlNUQU5DRV9VTlNQRUNJRklFRCAg ICAgICAgICAweDANCg0KKw0KDQorLy8NCg0KKy8vIEFzZiBtZXNzYWdlIGV2ZW50IGRhdGENCg0K Ky8vDQoNCisjZGVmaW5lIEFTRk1TR19FVkVOVF9EQVRBMSAgICAgICAgICAgICAgICAgICAgICAg ICAgMHg0MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9VTlNQRUNJRklFRCAgICAgICAg ICAgICAgIDB4MA0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9NRU1PUllfSU5JVElBTEla QVRJT04gICAgIDB4MQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9IQVJEX0RJU0tfSU5J VElBTElaQVRJT04gIDB4Mg0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9BUF9JTklUSUFM SVpBVElPTiAgICAgICAgIDB4Mw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9TRVRVUF9J TklUSUFMSVpBVElPTiAgICAgIDB4NQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9VU0Jf UkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Ng0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFUQV9Q Q0lfUkVTT1VSQ0VfQ09ORklHICAgICAgIDB4Nw0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRfREFU QV9WSURFT19JTklUSUFMSVpBVElPTiAgICAgIDB4OQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZFTlRf REFUQV9DQUNIRV9JTklUSUFMSVpBVElPTiAgICAgIDB4QQ0KDQorI2RlZmluZSBBU0ZNU0dfRVZF TlRfREFUQV9LRVlCT0FSRF9JTklUSUFMSVpBVElPTiAgIDB4Qw0KDQorI2RlZmluZSBBU0ZNU0df RVZFTlRfREFUQV9CT0FSRF9JTklUSUFMSVpBVElPTiAgICAgIDB4MTQNCg0KKyNkZWZpbmUgQVNG TVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfVEVTVCAgICAgICAgICAgICAweDE3DQoNCisNCg0KKyNk ZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfTk9fTUVNT1JZICAgICAgICAgICAgICAgICAweDENCg0K KyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfSEFSRF9ESVNLX0ZBSUxVUkUgICAgICAgICAweDMN Cg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfS0VZQk9BUkRfRkFJTFVSRSAgICAgICAgICAw eDcNCg0KKyNkZWZpbmUgQVNGTVNHX0VWRU5UX0RBVEFfTk9fVklERU8gICAgICAgICAgICAgICAg ICAweEENCg0KKw0KDQorI2VuZGlmIC8vX19BU0ZfSF9fDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJl cy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qb3N0TWVt b3J5LmZkZiBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBr Zy9JbmNsdWRlL1Bvc3RNZW1vcnkuZmRmDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMDAwMC4uMTAzOGU3N2I1ZA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUG9zdE1lbW9yeS5mZGYN CkBAIC0wLDAgKzEsOCBAQA0KKyMjIEBmaWxlDQoNCisjICBGREYgZmlsZSBmb3IgcG9zdC1tZW1v cnkgbW9kdWxlcyB0aGF0IGVuYWJsZSBJbnRlbGxpZ2VudCBQbGF0Zm9ybSBNYW5hZ2VtZW50IElu dGVyZmFjZS4NCg0KKyMNCg0KKyMgQ29weXJpZ2h0IChjKSAxOTg1IC0gMjAyMiwgQU1JLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCg0KKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCg0KKyMjDQoNCisNCg0KK0lORiBBc2ZGZWF0dXJlUGtnL0FzZkR4ZS9B c2ZEeGUuaW5mDQoNCmRpZmYgLS1naXQgYS9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2Vt ZW50L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9QcmVNZW1vcnkuZmRmIGIvRmVhdHVyZXMvSW50ZWwv T3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0luY2x1ZGUvUHJlTWVtb3J5LmZkZg0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAuLmE3MjM1NDQ4NTUNCi0tLSAv ZGV2L251bGwNCisrKyBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVh dHVyZVBrZy9JbmNsdWRlL1ByZU1lbW9yeS5mZGYNCkBAIC0wLDAgKzEsOCBAQA0KKyMjIEBmaWxl DQoNCisjICBGREYgZmlsZSBmb3IgcHJlLW1lbW9yeSBtb2R1bGVzIHRoYXQgZW5hYmxlIEludGVs bGlnZW50IFBsYXRmb3JtIE1hbmFnZW1lbnQgSW50ZXJmYWNlLg0KDQorIw0KDQorIyBDb3B5cmln aHQgKGMpIDE5ODUgLSAyMDIyLCBBTUkuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KDQorIyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KDQorIyMNCg0KKw0K DQorSU5GIEFzZkZlYXR1cmVQa2cvQXNmUGVpL0FzZlBlaS5pbmYNCg0KZGlmZiAtLWdpdCBhL0Zl YXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1lbnQvQXNmRmVhdHVyZVBrZy9JbmNsdWRlL1By b3RvY29sL0FzZlByb3RvY29sLmggYi9GZWF0dXJlcy9JbnRlbC9PdXRPZkJhbmRNYW5hZ2VtZW50 L0FzZkZlYXR1cmVQa2cvSW5jbHVkZS9Qcm90b2NvbC9Bc2ZQcm90b2NvbC5oDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMC4uZDNhZjBmYmE3Mw0KLS0tIC9kZXYvbnVsbA0K KysrIGIvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9Bc2ZGZWF0dXJlUGtnL0lu Y2x1ZGUvUHJvdG9jb2wvQXNmUHJvdG9jb2wuaA0KQEAgLTAsMCArMSw1NyBAQA0KKy8qKiBAZmls ZQ0KDQorICBBc2YgcHJvdG9jb2wgZGVmaW5lLg0KDQorDQoNCisgIENvcHlyaWdodCAoYykgMTk4 NSAtIDIwMjIsIEFNSS4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQoNCisgIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQoNCisqKi8NCg0KKw0KDQorI2lmbmRl ZiBfX0FTRl9QUk9UT0NPTF9IX18NCg0KKyNkZWZpbmUgX19BU0ZfUFJPVE9DT0xfSF9fDQoNCisN Cg0KKyNpbmNsdWRlIDxJbmR1c3RyeVN0YW5kYXJkL1NtQnVzLmg+DQoNCisNCg0KKyNkZWZpbmUg QVNGX1BST1RPQ09MX0dVSUQgXA0KDQorICB7IFwNCg0KKyAgICAweGRlYzg5ODI3LCAweDhhN2Us IDB4NDVlMCwgeyAweGJjLCAweGI1LCAweGQ1LCAweDNiLCAweDQ2LCAweDE0LCAweGFkLCAweGI4 IH0gXA0KDQorICB9DQoNCisNCg0KKyNwcmFnbWEgcGFjayhwdXNoLCAxKQ0KDQorDQoNCisvKioN Cg0KKyAgVGhpcyBpcyB0aGUgQVNGIEJvb3QgT3B0aW9uIGRhdGEgc3RydWN0dXJlLg0KDQorDQoN CisqKi8NCg0KK3R5cGVkZWYgc3RydWN0IHsNCg0KKyAgVUlOVDggICAgIFN1YkNvbW1hbmQ7DQoN CisgIFVJTlQ4ICAgICBWZXJzaW9uOw0KDQorICBVSU5UMzIgICAgSWFuYUlkOw0KDQorICBVSU5U OCAgICAgU3BlY2lhbENvbW1hbmQ7DQoNCisgIFVJTlQxNiAgICBTcGVjQ21kUGFyYW1ldGVyOw0K DQorICBVSU5UMTYgICAgQm9vdE9wdGlvbkJpdDsNCg0KKyAgVUlOVDE2ICAgIE9lbVBhcmFtZXRl cjsNCg0KK30gQVNGX0JPT1RfT1BUSU9OOw0KDQorDQoNCisvKioNCg0KKyAgVGhpcyBpcyB0aGUg QVNGIFBVU0ggRVZFTlQgU3RydWN0dXJlLg0KDQorDQoNCisqKi8NCg0KK3R5cGVkZWYgRUZJX1NU QVRVUyAoRUZJQVBJICpBU0ZfUFVTSF9FVkVOVCkoDQoNCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElOIFVJTlQ4IENvbW1hbmQsDQoNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElOIFVJTlROIExlbmd0aCwNCg0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU4gVUlOVDggKkFTRkV2ZW50 DQoNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQoNCisN Cg0KKy8qKg0KDQorICBUaGlzIGlzIHRoZSBBTUkgQVNGIFByb3RvY29sIFN0cnVjdHVyZS4NCg0K Kw0KDQorKiovDQoNCit0eXBlZGVmIHN0cnVjdCB7DQoNCisgIEFTRl9QVVNIX0VWRU5UICAgICBQ dXNoRXZlbnQ7DQoNCisgIEFTRl9CT09UX09QVElPTiAgICAqQm9vdE9wdGlvbjsNCg0KK30gQVNG X1BST1RPQ09MOw0KDQorDQoNCisjcHJhZ21hIHBhY2socG9wKQ0KDQorDQoNCitleHRlcm4gRUZJ X0dVSUQgIGdBc2ZQcm90b2NvbEd1aWQ7DQoNCisNCg0KKyNlbmRpZiAvL19fQVNGX1BST1RPQ09M X0hfXw0KDQpkaWZmIC0tZ2l0IGEvRmVhdHVyZXMvSW50ZWwvT3V0T2ZCYW5kTWFuYWdlbWVudC9B c2ZGZWF0dXJlUGtnL1JlYWRtZS5tZCBiL0ZlYXR1cmVzL0ludGVsL091dE9mQmFuZE1hbmFnZW1l bnQvQXNmRmVhdHVyZVBrZy9SZWFkbWUubWQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAw MDAwMDAwMDAwLi5mMThiMWJmYjA3DQotLS0gL2Rldi9udWxsDQorKysgYi9GZWF0dXJlcy9JbnRl bC9PdXRPZkJhbmRNYW5hZ2VtZW50L0FzZkZlYXR1cmVQa2cvUmVhZG1lLm1kDQpAQCAtMCwwICsx LDYzIEBADQorIyBPdmVydmlldw0KDQorKiAqKkZlYXR1cmUgTmFtZToqKiBBbGVydCBTdGFuZGFy ZCBGb3JtYXQgKEFTRikNCg0KKyogKipQSSBQaGFzZShzKSBTdXBwb3J0ZWQ6KiogUEVJLCBEWEUN Cg0KKyogKipTTU0gUmVxdWlyZWQ/KiogTm8NCg0KKw0KDQorTW9yZSBJbmZvcm1hdGlvbjoNCg0K KyogW0FTRiBTcGVjaWZpY2F0aW9uIHYyLjBdKGh0dHBzOi8vd3d3LmRtdGYub3JnL3NpdGVzL2Rl ZmF1bHQvZmlsZXMvc3RhbmRhcmRzL2RvY3VtZW50cy9EU1AwMTM2LnBkZikNCg0KKw0KDQorIyMg UHVycG9zZQ0KDQorVGhlIEFTRiBmZWF0dXJlIHByb3ZpZGVzIGZpcm13YXJlIGZ1bmN0aW9uYWxp dHkgdGhhdCBpbXBsZW1lbnRzIGJlaGF2aW9yIGRlc2NyaWJlZCBpbiB0aGUgQVNGIHNwZWNpZmlj YXRpb24uDQoNCitBbGVydGluZyB0ZWNobm9sb2dpZXMgcHJvdmlkZSBhZHZhbmNlIHdhcm5pbmcg YW5kIHN5c3RlbSBmYWlsdXJlIGluZGljYXRpb24gZnJvbSBtYW5hZ2VkIGNsaWVudHMgdG8gcmVt b3RlIG1hbmFnZW1lbnQgY29uc29sZXMuIE9uY2UgYSBzeXN0ZW0gYWxlcnQgcHJvdmlkZXMgaXRz IHdhcm5pbmcgb3IgZXJyb3IgcmVwb3J0LCB0aGUgbmV4dCBzdGVwIGluIHJlbW90ZSBzeXN0ZW0g bWFuYWdlYWJpbGl0eSBpcyB0byBhbGxvdyBjb3JyZWN0aXZlIGFjdGlvbiB0byBiZSB0YWtlbiDi gJQgdGhlc2UgYWN0aW9ucyBpbmNsdWRlIHRoZSBhYmlsaXR5IHRvIHJlbW90ZWx5IHJlc2V0IG9y IHBvd2VyLW9uIG9yIC1vZmYgdGhlIGNsaWVudCBzeXN0ZW0uDQoNCisNCg0KKyMgSGlnaC1MZXZl bCBUaGVvcnkgb2YgT3BlcmF0aW9uDQoNCitCYXNlcyBvbiB0aGUgc3lzdGVtIHJlcG9ydGVkIHN0 YXR1cyBjb2RlLCB0aGUgZHJpdmVyIHdpbGwgc2VuZCB3YXJuaW5nIG9yIHN5c3RlbSBmYWlsdXJl IGluZGljYXRpb24gZnJvbSBtYW5hZ2VkIGNsaWVudHMgdG8gcmVtb3RlIG1hbmFnZW1lbnQgY29u c29sZXMuDQoNCisNCg0KKyMjIEZpcm13YXJlIFZvbHVtZXMNCg0KKyogQXNmUGVpOiBQcmVNZW1v cnkNCg0KKyogQXNmRHhlOiBQb3N0TWVtb3J5DQoNCisNCg0KKyMjIE1vZHVsZXMNCg0KKyogQXNm UGVpDQoNCisqIEFzZkR4ZQ0KDQorDQoNCisjIyBBc2ZQZWkNCg0KK0FzZiBpbml0aWFsaXplIGFu ZCBzZW5kIHN0YW5kYXJkIHByb2dyZXNzIG1lc3NhZ2VzIHRvIE5JQy4NCg0KKw0KDQorIyMgQXNm RHhlDQoNCitJbnN0YWxsIEFzZiBBY3BpIHRhYmxlIGFuZCByZWdpc3RlciBSU0MgaGFuZGxlIHRv IHNlbmQgcHJvZ3Jlc3MvZXJyb3IgZXZlbnQgbG9ncyB0byBOSUMuDQoNCitQcm9kdWNlIEFzZiBE eGUgcHJvdG9jb2wuDQoNCisNCg0KKyMjIDxMaWJyYXJ5IE5hbWU+DQoNCitOL0Egbm93Lg0KDQor DQoNCisjIyBLZXkgRnVuY3Rpb25zDQoNCitBc2ZQdXNoRXZlbnQ6IFRoaXMgZnVuY3Rpb24gaXMg cHJvdmlkZWQgaW4gcHJvdG9jb2wsIGNhbGwgdGhpcyBmdW5jdGlvbiB0byBzZW5kIG1lc3NhZ2Vz IHRvIE5JQy4NCg0KKw0KDQorIyMgQ29uZmlndXJhdGlvbg0KDQorRm9yIFBjZENvbnRyb2xEYXRh QXJyYXlzIHN0cnVjdHVyZSBpbmZvcm1hdGlvbiwgcGxlYXNlIGNoZWNrIEFzZjIuMCBzcGVjIGNo YXB0ZXIgNC4xLjIuNSBBU0ZfQ09OVFJPTERBVEEuDQoNCisNCg0KKyMjIERhdGEgRmxvd3MNCg0K K0FzZlB1c2hFdmVudCgpIC0+IHRocm91Z2ggU21CdXMgLT4gTklDIC0+IFJlbW90ZSBtYW5hZ2Vt ZW50IGNvbnNvbGVzDQoNCisNCg0KKyMjIENvbnRyb2wgRmxvd3MNCg0KK04vQSBub3cuDQoNCisN Cg0KKyMjIEJ1aWxkIEZsb3dzDQoNCitUaGVyZSBpcyBub3Qgc3BlY2lhbCBidWlsZCBmbG93Lg0K DQorDQoNCisjIyBUZXN0IFBvaW50IFJlc3VsdHMNCg0KK1RoZXJlIGFyZSBub3QgdGVzdCBwb2lu dHMgaW1wbGVtZW50ZWQuDQoNCisNCg0KKyMjIEZ1bmN0aW9uYWwgRXhpdCBDcml0ZXJpYQ0KDQor Q2hlY2sgQXNmIEFjcGkgdGFibGUNCg0KK0NoZWNrIHRoZSBldmVudCBsb2cgaW4gcmVtb3RlIG1h bmFnZW1lbnQgY29uc29sZXMNCg0KKw0KDQorIyMgRmVhdHVyZSBFbmFibGluZyBDaGVja2xpc3QN Cg0KK1BjZEFzZkZlYXR1cmVFbmFibGUgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4NCg0KKw0KDQor IyMgUGVyZm9ybWFuY2UgSW1wYWN0DQoNCitUaGVyZSBpcyBubyBwZXJmb3JtYW5jZSBpbXBhY3Qu DQoNCisNCg0KKyMjIENvbW1vbiBPcHRpbWl6YXRpb25zDQoNCitOL0Egbm93Lg0KDQotLQ0KMi4z Ni4wLndpbmRvd3MuMQ0KLVRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaW4gdGhpcyBtZXNzYWdl IG1heSBiZSBjb25maWRlbnRpYWwgYW5kIHByb3ByaWV0YXJ5IHRvIEFtZXJpY2FuIE1lZ2F0cmVu ZHMgKEFNSSkuIFRoaXMgY29tbXVuaWNhdGlvbiBpcyBpbnRlbmRlZCB0byBiZSByZWFkIG9ubHkg YnkgdGhlIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gaXQgaXMgYWRkcmVzc2VkIG9yIGJ5 IHRoZWlyIGRlc2lnbmVlLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhl IGludGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBvbiBub3RpY2UgdGhhdCBhbnkgZGlzdHJpYnV0 aW9uIG9mIHRoaXMgbWVzc2FnZSwgaW4gYW55IGZvcm0sIGlzIHN0cmljdGx5IHByb2hpYml0ZWQu IFBsZWFzZSBwcm9tcHRseSBub3RpZnkgdGhlIHNlbmRlciBieSByZXBseSBlLW1haWwgb3IgYnkg dGVsZXBob25lIGF0IDc3MC0yNDYtODYwMCwgYW5kIHRoZW4gZGVsZXRlIG9yIGRlc3Ryb3kgYWxs IGNvcGllcyBvZiB0aGUgdHJhbnNtaXNzaW9uLg0KDQoNCg0KDQoNCg==