Return-path: Received: from mail-qw0-f46.google.com ([209.85.216.46]:53587 "EHLO mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752651Ab0HVT6K (ORCPT ); Sun, 22 Aug 2010 15:58:10 -0400 Received: by qwh6 with SMTP id 6so4574888qwh.19 for ; Sun, 22 Aug 2010 12:58:10 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1282506589-8220-1-git-send-email-zajec5@gmail.com> <1282506589-8220-2-git-send-email-zajec5@gmail.com> Date: Sun, 22 Aug 2010 21:58:09 +0200 Message-ID: Subject: Re: [PATCH 2/2] b43: N-PHY: add sub calls of band width setting From: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= To: =?UTF-8?Q?G=C3=A1bor_Stefanik?= Cc: linux-wireless@vger.kernel.org, "John W. Linville" , b43-dev@lists.infradead.org Content-Type: text/plain; charset=UTF-8 Sender: linux-wireless-owner@vger.kernel.org List-ID: VyBkbml1IDIyIHNpZXJwbmlhIDIwMTAgMjE6NTIgdcW8eXRrb3duaWsgR8OhYm9yIFN0ZWZhbmlr CjxuZXRyb2xsbGVyLjNkQGdtYWlsLmNvbT4gbmFwaXNhxYI6Cj4gMjAxMC84LzIyIFJhZmHFgiBN acWCZWNraSA8emFqZWM1QGdtYWlsLmNvbT46Cj4+IFNpZ25lZC1vZmYtYnk6IFJhZmHFgiBNacWC ZWNraSA8emFqZWM1QGdtYWlsLmNvbT4KPj4gLS0tCj4+IMKgZHJpdmVycy9uZXQvd2lyZWxlc3Mv YjQzL2I0My5oIMKgIMKgIMKgIMKgfCDCoCDCoDEgKwo+PiDCoGRyaXZlcnMvbmV0L3dpcmVsZXNz L2I0My9waHlfY29tbW9uLmMgfCDCoDE1MCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0KPj4gwqBkcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvcGh5X2NvbW1vbi5oIHwgwqAgwqA3ICsr Cj4+IMKgMyBmaWxlcyBjaGFuZ2VkLCAxNTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkK Pj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaCBiL2RyaXZl cnMvbmV0L3dpcmVsZXNzL2I0My9iNDMuaAo+PiBpbmRleCA4Njc0YTk5Li43MzM3NmZmIDEwMDY0 NAo+PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvYjQzLmgKPj4gKysrIGIvZHJpdmVy cy9uZXQvd2lyZWxlc3MvYjQzL2I0My5oCj4+IEBAIC01Nyw2ICs1Nyw3IEBACj4+IMKgI2RlZmlu ZSBCNDNfTU1JT19UU0ZfQ0ZQX1JFUCDCoCDCoCDCoCDCoCDCoCAweDE4OAo+PiDCoCNkZWZpbmUg QjQzX01NSU9fVFNGX0NGUF9TVEFSVCDCoCDCoCDCoCDCoCAweDE4Qwo+PiDCoCNkZWZpbmUgQjQz X01NSU9fVFNGX0NGUF9NQVhEVVIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAweDE5MAo+PiArI2Rl ZmluZSBCNDNfTU1JT19DTEtDVEwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAw eDFFMCDCoCAvKiBjbG9jayBjb250cm9sIHN0YXR1cyAqLwo+Pgo+PiDCoC8qIDMyLWJpdCBETUEg Ki8KPj4gwqAjZGVmaW5lIEI0M19NTUlPX0RNQTMyX0JBU0UwIMKgIMKgIMKgIMKgIMKgIDB4MjAw Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvcGh5X2NvbW1vbi5jIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYjQzL3BoeV9jb21tb24uYwo+PiBpbmRleCBiMDZlM2YwLi4x MGI5ZTZmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9iNDMvcGh5X2NvbW1v bi5jCj4+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2I0My9waHlfY29tbW9uLmMKPj4gQEAg LTQ2NywxMCArNDY3LDE1OCBAQCBzdHJ1Y3QgYjQzX2MzMiBiNDNfY29yZGljKGludCB0aGV0YSkK Pj4gwqAgwqAgwqAgwqByZXR1cm4gcmV0Owo+PiDCoH0KPj4KPj4gKy8qIGh0dHA6Ly9iY20tdjQu c2lwc29sdXRpb25zLm5ldC84MDIuMTEvTmNDbGtDdGxDYyAqLwo+PiArc3RhdGljIGJvb2wgYjQz X25vX2NoZWNrX2Nsb2NrX2NvbnRyb2xfY2hpcF9jb21tb24oc3RydWN0IGI0M193bGRldiAqZGV2 LAo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHUzMiBtb2RlKQo+PiAr ewo+PiArIMKgIMKgIMKgIC8qIFRPRE86IHRoaXMgaXMgdGVtcG9yYXJ5IGhhY2sgKi8KPj4gKyDC oCDCoCDCoCByZXR1cm4gKG1vZGUgPT0gMCk7Cj4+ICt9Cj4+ICsKPj4gKy8qIGh0dHA6Ly9iY20t djQuc2lwc29sdXRpb25zLm5ldC84MDIuMTEvQ2xrQ3RsQ2MgKi8KPj4gK3N0YXRpYyBib29sIGI0 M19jbG9ja19jb250cm9sX2NoaXBfY29tbW9uKHN0cnVjdCBiNDNfd2xkZXYgKmRldiwgdTMyIG1v ZGUpCj4+ICt7Cj4+ICsgwqAgwqAgwqAgc3RydWN0IHNzYl9idXMgKmJ1cyA9IGRldi0+ZGV2LT5i dXM7Cj4+ICsgwqAgwqAgwqAgdTE2IGNoaXBfaWQgPSBidXMtPmNoaXBfaWQ7Cj4+ICsgwqAgwqAg wqAgdTE2IGNoaXBfcmV2ID0gYnVzLT5jaGlwX3JldjsKPj4gKyDCoCDCoCDCoCAvKiBUT0RPOiBz cGVjcyBkaXN0aW5ndWlzaCBQQ0kgYW5kIFBDSWUgKi8KPj4gKyDCoCDCoCDCoCBib29sIHBjaSA9 IChidXMtPmJ1c3R5cGUgPT0gU1NCX0JVU1RZUEVfUENJKTsKPj4gKwo+PiArIMKgIMKgIMKgIGlm IChkZXYtPmRldi0+aWQucmV2aXNpb24gPCA2KQo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJl dHVybiBmYWxzZTsKPj4gKyDCoCDCoCDCoCBpZiAocGNpICYmICgoY2hpcF9pZCA9PSAweDQzMTEg JiYgY2hpcF9yZXYgPCAyKSB8fAo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIChwY2kg JiYgY2hpcF9pZCA9PSAweDQzMjEpIHx8Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg KHBjaSAmJiBjaGlwX2lkID09IDB4NDcxNikpKQo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJl dHVybiAobW9kZSA9PSAwKTsKPj4gKyDCoCDCoCDCoCByZXR1cm4gYjQzX25vX2NoZWNrX2Nsb2Nr X2NvbnRyb2xfY2hpcF9jb21tb24oZGV2LCBtb2RlKTsKPj4gK30KPj4gKwo+PiArLyogaHR0cDov L2JjbS12NC5zaXBzb2x1dGlvbnMubmV0LzgwMi4xMS9QSFkvQm1hY1dhaXRGb3JXYWtlICovCj4+ ICtzdGF0aWMgdm9pZCBiNDNfcGh5X2JtYWNfd2FpdF9mb3Jfd2FrZShzdHJ1Y3QgYjQzX3dsZGV2 ICpkZXYpCj4+ICt7Cj4+ICsgwqAgwqAgwqAgdTggY29yZV9yZXYgPSBkZXYtPmRldi0+YnVzLT5w Y2ljb3JlLmRldi0+aWQucmV2aXNpb247Cj4+ICsgwqAgwqAgwqAgdTE2IHRtcCwgaTsKPj4gKwo+ PiArIMKgIMKgIMKgIGlmIChjb3JlX3JldiA9PSA0KSB7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgdWRlbGF5KDUpOwo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJldHVybjsKPj4gKyDCoCDC oCDCoCB9Cj4+ICsKPj4gKyDCoCDCoCDCoCBpZiAoZGV2LT5waHkudHlwZSA9PSBCNDNfUEhZVFlQ RV9HICYmIGNvcmVfcmV2ID09IDUpCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgdWRlbGF5KDIw MDApOwo+PiArIMKgIMKgIMKgIGVsc2UKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB1ZGVsYXko NDApOwo+PiArCj4+ICsgwqAgwqAgwqAgZm9yIChpID0gMDsgaSA8IDE1MDA7IGkrKykgewo+PiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHRtcCA9IGI0M19zaG1fcmVhZDE2KGRldiwgQjQzX1NITV9T SEFSRUQsCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgQjQzX1NITV9TSF9VQ09ERVNUQVQpOwo+PiArIMKgIMKgIMKgIMKgIMKgIMKg IMKgIGlmICh0bXAgPT0gQjQzX1NITV9TSF9VQ09ERVNUQVRfU0xFRVApIHsKPj4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpID0gMDsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCBicmVhazsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9Cj4+ICsgwqAg wqAgwqAgwqAgwqAgwqAgwqAgdWRlbGF5KDEwKTsKPj4gKyDCoCDCoCDCoCB9Cj4+ICsgwqAgwqAg wqAgaWYgKGkpCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYjQzZXJyKGRldi0+d2wsICJ1Y29k ZSB3YWtlIHVwIHRpbWVvdXRcbiIpOwo+PiArfQo+PiArCj4+ICsvKiBodHRwOi8vYmNtLXY0LnNp cHNvbHV0aW9ucy5uZXQvODAyLjExL1BIWS9NY3RybFdyaXRlICovCj4+ICtzdGF0aWMgdm9pZCBi NDNfcGh5X21hY19jb250cm9sX3dyaXRlKHN0cnVjdCBiNDNfd2xkZXYgKmRldikKPj4gK3sKPj4g KyDCoCDCoCDCoCB1MzIgdG1wID0gZGV2LT5waHkubWFjY29udHJvbDsKPj4gKyDCoCDCoCDCoCBp ZiAoZGV2LT5waHkud2FrZV9vdmVycmlkZSkKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0bXAg fD0gQjQzX01BQ0NUTF9BV0FLRTsKPj4gKyDCoCDCoCDCoCBpZiAoZGV2LT5waHkubXV0ZV9vdmVy cmlkZSkKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCB0bXAgJj0gfkI0M19NQUNDVExfQVA7Cj4+ ICsgwqAgwqAgwqAgdG1wIHw9IEI0M19NQUNDVExfSU5GUkE7Cj4+ICsgwqAgwqAgwqAgYjQzX3dy aXRlMzIoZGV2LCBCNDNfTU1JT19NQUNDVEwsIHRtcCk7Cj4+ICt9Cj4+ICsKPj4gKy8qIGh0dHA6 Ly9iY20tdjQuc2lwc29sdXRpb25zLm5ldC84MDIuMTEvUEhZL1Vjb2RlV2FrZU92ZXJyaWRlU2V0 ICovCj4+ICtzdGF0aWMgdm9pZCBiNDNfdWNvZGVfd2FrZV9vdmVycmlkZV9zZXQoc3RydWN0IGI0 M193bGRldiAqZGV2LCB1MzIgb3ZlcnJpZGUpCj4+ICt7Cj4+ICsgwqAgwqAgwqAgZGV2LT5waHku d2FrZV9vdmVycmlkZSB8PSBvdmVycmlkZTsKPj4gKyDCoCDCoCDCoCBpZiAoZGV2LT5waHkud2Fr ZV9vdmVycmlkZSB8fCBkZXYtPnBoeS5tYWNjb250cm9sICYgQjQzX01BQ0NUTF9BV0FLRSkKPj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXR1cm47Cj4+ICsgwqAgwqAgwqAgYjQzX3BoeV9tYWNf Y29udHJvbF93cml0ZShkZXYpOwo+PiArIMKgIMKgIMKgIGI0M19waHlfYm1hY193YWl0X2Zvcl93 YWtlKGRldik7Cj4+ICt9Cj4+ICsKPj4gKy8qIGh0dHA6Ly9iY20tdjQuc2lwc29sdXRpb25zLm5l dC84MDIuMTEvUEhZL1Vjb2RlV2FrZU92ZXJyaWRlQ2xlYXIgKi8KPj4gK3N0YXRpYyB2b2lkIGI0 M191Y29kZV93YWtlX292ZXJyaWRlX2NsZWFyKHN0cnVjdCBiNDNfd2xkZXYgKmRldiwgdTMyIG92 ZXJyaWRlKQo+PiArewo+PiArIMKgIMKgIMKgIGRldi0+cGh5Lndha2Vfb3ZlcnJpZGUgJj0gfm92 ZXJyaWRlOwo+PiArIMKgIMKgIMKgIGlmIChkZXYtPnBoeS53YWtlX292ZXJyaWRlICE9IChkZXYt PnBoeS5tYWNjb250cm9sICYgQjQzX01BQ0NUTF9BV0FLRSkpCj4+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgcmV0dXJuOwo+PiArIMKgIMKgIMKgIGI0M19waHlfbWFjX2NvbnRyb2xfd3JpdGUoZGV2 KTsKPj4gK30KPj4gKwo+PiDCoC8qIGh0dHA6Ly9iY20tdjQuc2lwc29sdXRpb25zLm5ldC84MDIu MTEvUEhZL0Nsa0N0bENsayAqLwo+PiDCoHN0YXRpYyB2b2lkIGI0M19jbG9ja19jb250cm9sKHN0 cnVjdCBiNDNfd2xkZXYgKmRldiwgdTMyIG1vZGUpCj4+IMKgewo+PiAtIMKgIMKgIMKgIDsgLyog VE9ETyAqLwo+PiArIMKgIMKgIMKgIHN0cnVjdCBiNDNfcGh5ICpwaHkgPSAmZGV2LT5waHk7Cj4+ ICsgwqAgwqAgwqAgc3RydWN0IHNzYl9idXMgKmJ1cyA9IGRldi0+ZGV2LT5idXM7Cj4+ICsgwqAg wqAgwqAgdTggY29yZV9yZXYgPSBidXMtPnBjaWNvcmUuZGV2LT5pZC5yZXZpc2lvbjsKPj4gKyDC oCDCoCDCoCB1MTYgaTsKPj4gKyDCoCDCoCDCoCB1MzIgY2xrY3RsOwo+PiArIMKgIMKgIMKgIGJv b2wgd2FrZXVwOwo+PiArCj4+ICsgwqAgwqAgwqAgaWYgKGJ1cy0+Y2hpcGNvLmNhcGFiaWxpdGll cyAmIFNTQl9DSElQQ09fQ0FQX1BNVSkgeyAvKiBQTVUgUHJlc2VudCAqLwo+PiArIMKgIMKgIMKg IMKgIMKgIMKgIMKgIEI0M19XQVJOX09OKGNvcmVfcmV2IDwgMjApOwo+PiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIGlmIChwaHktPmNsaykgewo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIGJvb2wgdG1wID0gKGJ1cy0+Y2hpcGNvLnBtdS5yZXYgPT0gMCAmJgo+PiArIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIChiNDNfcmVhZDMyKGRldiwg QjQzX01NSU9fQ0xLQ1RMKSAmIDB4MTIpKTsKPj4gKwo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIGlmIChtb2RlID09IDApIHsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGtjdGwgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9f Q0xLQ1RMKTsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCBjbGtjdGwgfD0gMHgyOwo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIGI0M193cml0ZTMyKGRldiwgQjQzX01NSU9fQ0xLQ1RMLCBjbGtjdGwpOwo+PiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVkZWxheSgzMyk7 Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+PiArCj4+ICsgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKG1vZGUgPT0gMCB8fCB0bXApIHsKPj4gKyDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBmb3IgKGkgPSAwOyBp IDwgMTUwMDsgaSsrKSB7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgY2xrY3RsID0gYjQzX3JlYWQzMihkZXYsIEI0M19NTUlPX0NM S0NUTCk7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgaWYgKChjbGtjdGwgJiAweDIwMDAwKSA9PSAwKSB7Cj4+ICsgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgaSA9IDA7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgYnJlYWs7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+PiArIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHVkZWxheSgxMCk7 Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+PiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmIChpKQo+PiAr IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGI0M2VycihkZXYtPndsLCAiY2xvY2sgdGltZW91dFxuIik7Cj4+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgfQo+PiArCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgaWYgKG1vZGUgIT0gMCAmJiB0bXApIHsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBjbGtjdGwgPSBiNDNfcmVhZDMyKGRldiwgQjQzX01NSU9f Q0xLQ1RMKTsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCBjbGtjdGwgJj0gfjB4MjsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCBiNDNfd3JpdGUzMihkZXYsIEI0M19NTUlPX0NMS0NUTCwgY2xrY3RsKTsKPj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB9Cj4+ICsgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfQo+PiArIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHBoeS0+Zm9yY2VmYXN0Y2xrID0gKG1v ZGUgPT0gMCk7Cj4+ICsgwqAgwqAgwqAgfSBlbHNlIHsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDC oCBCNDNfV0FSTl9PTihjb3JlX3JldiA+PSAyMCk7Cj4+ICsKPj4gKyDCoCDCoCDCoCDCoCDCoCDC oCDCoCB3YWtldXAgPSAoY29yZV9yZXYgPCA5KTsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCBp ZiAocGh5LT51cCAmJiB3YWtldXApCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgYjQzX3Vjb2RlX3dha2Vfb3ZlcnJpZGVfc2V0KGRldiwgMSk7Cj4+ICsKPj4gKyDCoCDCoCDC oCDCoCDCoCDCoCDCoCBwaHktPmZvcmNlZmFzdGNsayA9IGI0M19jbG9ja19jb250cm9sX2NoaXBf Y29tbW9uKGRldiwgbW9kZSk7Cj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaWYgKGNvcmVfcmV2 IDwgMTEpIHsKPj4gKyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBpZiAocGh5LT5m b3JjZWZhc3RjbGspCj4+ICsgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgOyAvKiBUT0RPOiBiNDNfbWhmKGRldiwgMCwgMHg0MDAsIDB4NDAwLCAzKTsgKi8KPj4g KyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBlbHNlCj4+ICsgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgOyAvKiBUT0RPOiBiNDNfbWhmKGRldiwg MCwgMHg0MDAsIDAsIDMpOyAqLwo+Cj4gV2UgZG8gaW1wbGVtZW50IG1oZiBhbHJlYWR5LCB0aG91 Z2ggaXQgaXMgZG9uZSBkaWZmZXJlbnRseSB0aGFuIGluIHdsLgo+IFNlZSBteSBlYXJsaWVyICJB ZGQgbWlzc2luZyBIRiB3cml0ZSIgcGF0Y2guCgpZZXMsIEkgbm90aWNlZCB0aGlzIGluIHlvdXIg cGF0Y2gsIHRoYW5rcywgaG93ZXZlciBJIGRvbid0IHVuZGVyc3RhbmQKcmVsYXRpb24gYmV0d2Vl biBvdXIgaW1wbGVtZW50YXRpb24gYW5kIHdsIHlldC4gSSdtIG5vdCAxMDAlIHN1cmUgaG93CnRv IHRyYW5zbGF0ZSB0aGlzLCBzbyBJIGRlY2lkZWQgdG8gbGVmdCB0aGlzIGFzIFRPRE8uIERpZG4n dCB3YW50IHRvCndhaXQgYW55bW9yZSBiZWZvcmUgcHVibGlzaGluZyB0aGlzLCB0byBhdm9pZCBz aXR1YXRpb24gb2YKaW1wbGVtZW50aW5nIHRoZSBzYW1lIGZ1bmN0aW9ucyBhbmQgd2FzdGluZyB5 b3VyIGFuZC9vciBtaW5lIHRpbWUuCgpDb3VsZCB5b3UgcG9zdCBhIHBhdGNoIG1ha2luZyByZWFs IGNhbGwgaW5zdGVhZCBvZiB0aGlzIGNvbW1lbnQsIHBsZWFzZT8KCi0tIApSYWZhxYIK