Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp6077pxa; Mon, 3 Aug 2020 20:43:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy7k2HOD6wBqfpIDgzmnB25KyuiIBw4q/0s6VMBaJMVr58nbm7SwHvThk5cder6n2BHofGL X-Received: by 2002:a05:6402:d07:: with SMTP id eb7mr929460edb.160.1596512629697; Mon, 03 Aug 2020 20:43:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596512629; cv=none; d=google.com; s=arc-20160816; b=LlKa5WumxgDkOyuW9GugpYMEtXx9amBPpGad7aoTZOW4U2Gdhzhjj2/PnuUuj81a1E cM0qc/1V7RCkzDHWHoorEhfM7mpkGDNdRjk6SHmLI0c8dHgwkNx2cS9oQSlUD1z1HPQY lAXsCzDrzmp9CBjTJfl3pMJ9Nrj+WZrafw+CCS7NAAz6RQ2QGhX+06NZrgOKwzUeG62f ymElzCyq5GhCazn8V7f+GMu+wolGUjLyy2TA3pcC5YZhzx/Y4ErlDaaZ2NchaFgGvouP SascrvNa0QtJ3gsHMHxsMeG4lRUUbDV3CL9tSBq1uNeHMTkaB0JSE98KuzVlaqphA66T 6Uaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ZAzPLOCQMIWAnEc/1YDks5kRlRw/ah528UHXVF9qNNY=; b=nP90NPon+g79nnSmVFvIqGKaGGJlJ1vG+FmxuBNQC/5i6+4/2vmio0TIjpABrvolP8 41nrUaShcOQ5YuULKkZ+7/AHTJqbYWLJJR0x2cmYRxLLl51g/nHb/f25SlJSb6aN76Ge QDK54cHhSsXWre/2vdv/GK6H53wZnXnfRv7fOslxJ8N+GWMtEaD8wtWpDBW3H61jwquf w7akdJSmDHnxAq193eTsuy8us1IUxgUgpxb18PcQmx1oLxxiQKpN9Ec3sRd4di3/Q99b WMlIwuODUeQbgsKvrOophC5wD99IeQ7QVCQCqSOO3KDZn1v80YUzSwLzJrYxhs+iHGQv eQnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=VujzgLmW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id za3si1512017ejb.312.2020.08.03.20.43.27; Mon, 03 Aug 2020 20:43:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=VujzgLmW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730557AbgHDDmp (ORCPT + 99 others); Mon, 3 Aug 2020 23:42:45 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:43361 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1729854AbgHDDmZ (ORCPT ); Mon, 3 Aug 2020 23:42:25 -0400 X-UUID: a631d87cb40240b2b28042039f82e57d-20200804 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZAzPLOCQMIWAnEc/1YDks5kRlRw/ah528UHXVF9qNNY=; b=VujzgLmWW/eu8n3AU8ZKTEzRqyeHzLsg0aYkZsYJiSyEvfBaXScVNTfe79tgzpA6MOpNklcggDHOb2v7cKxHQhOt+TRAPTuyAT00Nb5NEUhbuSz2hGvCJNxMAkULL0RPVBqDtxcUVVxfw/eQGwPyQtId39oOfoVp9jW95CdTHdQ=; X-UUID: a631d87cb40240b2b28042039f82e57d-20200804 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1164252531; Tue, 04 Aug 2020 11:42:16 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 4 Aug 2020 11:42:14 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 4 Aug 2020 11:42:13 +0800 From: Xia Jiang To: Hans Verkuil , Mauro Carvalho Chehab , Rob Herring , Matthias Brugger , Rick Chang CC: , , , , , Marek Szyprowski , Tomasz Figa , , , , , , Xia Jiang Subject: [PATCH v11 27/28] media: platform: Using the variant structure to contain the varability between dec and enc Date: Tue, 4 Aug 2020 11:41:01 +0800 Message-ID: <20200804034102.22983-28-xia.jiang@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20200804034102.22983-1-xia.jiang@mediatek.com> References: <20200804034102.22983-1-xia.jiang@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org QWRkIHZhcmFiaWxpdHkgd2hpY2ggd291bGQgYmUgdXNlZCBiZXR3ZWVuIGpwZWcgZGVjIGFuZCBl bmMgdG8gYSBtYXRjaA0KZGF0YSBzdHJ1Y3R1cmUsIGl0IHdpbGwgbWFrZSB0aGUgY29kZSBsaW5l YXIuDQoNClJldmlld2VkLWJ5OiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPg0KU2ln bmVkLW9mZi1ieTogWGlhIEppYW5nIDx4aWEuamlhbmdAbWVkaWF0ZWsuY29tPg0KLS0tDQp2MTE6 IG5vIGNoYW5nZXMNCi0tLQ0KIC4uLi9tZWRpYS9wbGF0Zm9ybS9tdGstanBlZy9tdGtfanBlZ19j b3JlLmMgICB8IDExMyArKysrKysrKysrKy0tLS0tLS0NCiAuLi4vbWVkaWEvcGxhdGZvcm0vbXRr LWpwZWcvbXRrX2pwZWdfY29yZS5oICAgfCAgMzYgKysrKystDQogMiBmaWxlcyBjaGFuZ2VkLCAx MDQgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9kcml2ZXJz L21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2NvcmUuYyBiL2RyaXZlcnMvbWVkaWEv cGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5jDQppbmRleCAzZDEzODNkMmVhYzQuLjNk OTVjN2YwYTIyZCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcv bXRrX2pwZWdfY29yZS5jDQorKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210 a19qcGVnX2NvcmUuYw0KQEAgLTgwLDggKzgwLDggQEAgc3RhdGljIGludCBtdGtfanBlZ19xdWVy eWNhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9pZCAqcHJpdiwNCiB7DQogCXN0cnVjdCBtdGtfanBl Z19kZXYgKmpwZWcgPSB2aWRlb19kcnZkYXRhKGZpbGUpOw0KIA0KLQlzdHJzY3B5KGNhcC0+ZHJp dmVyLCBNVEtfSlBFR19OQU1FICIgZGVjb2RlciIsIHNpemVvZihjYXAtPmRyaXZlcikpOw0KLQlz dHJzY3B5KGNhcC0+Y2FyZCwgTVRLX0pQRUdfTkFNRSAiIGRlY29kZXIiLCBzaXplb2YoY2FwLT5j YXJkKSk7DQorCXN0cnNjcHkoY2FwLT5kcml2ZXIsIGpwZWctPnZhcmlhbnQtPmRldl9uYW1lLCBz aXplb2YoY2FwLT5kcml2ZXIpKTsNCisJc3Ryc2NweShjYXAtPmNhcmQsIGpwZWctPnZhcmlhbnQt PmRldl9uYW1lLCBzaXplb2YoY2FwLT5jYXJkKSk7DQogCXNucHJpbnRmKGNhcC0+YnVzX2luZm8s IHNpemVvZihjYXAtPmJ1c19pbmZvKSwgInBsYXRmb3JtOiVzIiwNCiAJCSBkZXZfbmFtZShqcGVn LT5kZXYpKTsNCiANCkBAIC0xMTIsMTUgKzExMiwyMyBAQCBzdGF0aWMgaW50IG10a19qcGVnX2Vu dW1fZm10KHN0cnVjdCBtdGtfanBlZ19mbXQgKm10a19qcGVnX2Zvcm1hdHMsIGludCBuLA0KIHN0 YXRpYyBpbnQgbXRrX2pwZWdfZW51bV9mbXRfdmlkX2NhcChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9p ZCAqcHJpdiwNCiAJCQkJICAgICBzdHJ1Y3QgdjRsMl9mbXRkZXNjICpmKQ0KIHsNCi0JcmV0dXJu IG10a19qcGVnX2VudW1fZm10KG10a19qcGVnX2RlY19mb3JtYXRzLCBNVEtfSlBFR19ERUNfTlVN X0ZPUk1BVFMsDQotCQkJCSBmLCBNVEtfSlBFR19GTVRfRkxBR19DQVBUVVJFKTsNCisJc3RydWN0 IG10a19qcGVnX2N0eCAqY3R4ID0gbXRrX2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KKwlzdHJ1Y3Qg bXRrX2pwZWdfZGV2ICpqcGVnID0gY3R4LT5qcGVnOw0KKw0KKwlyZXR1cm4gbXRrX2pwZWdfZW51 bV9mbXQoanBlZy0+dmFyaWFudC0+Zm9ybWF0cywNCisJCQkJIGpwZWctPnZhcmlhbnQtPm51bV9m b3JtYXRzLCBmLA0KKwkJCQkgTVRLX0pQRUdfRk1UX0ZMQUdfQ0FQVFVSRSk7DQogfQ0KIA0KIHN0 YXRpYyBpbnQgbXRrX2pwZWdfZW51bV9mbXRfdmlkX291dChzdHJ1Y3QgZmlsZSAqZmlsZSwgdm9p ZCAqcHJpdiwNCiAJCQkJICAgICBzdHJ1Y3QgdjRsMl9mbXRkZXNjICpmKQ0KIHsNCi0JcmV0dXJu IG10a19qcGVnX2VudW1fZm10KG10a19qcGVnX2RlY19mb3JtYXRzLCBNVEtfSlBFR19ERUNfTlVN X0ZPUk1BVFMsDQotCQkJCSBmLCBNVEtfSlBFR19GTVRfRkxBR19PVVRQVVQpOw0KKwlzdHJ1Y3Qg bXRrX2pwZWdfY3R4ICpjdHggPSBtdGtfanBlZ19maF90b19jdHgocHJpdik7DQorCXN0cnVjdCBt dGtfanBlZ19kZXYgKmpwZWcgPSBjdHgtPmpwZWc7DQorDQorCXJldHVybiBtdGtfanBlZ19lbnVt X2ZtdChqcGVnLT52YXJpYW50LT5mb3JtYXRzLA0KKwkJCQkganBlZy0+dmFyaWFudC0+bnVtX2Zv cm1hdHMsIGYsDQorCQkJCSBNVEtfSlBFR19GTVRfRkxBR19PVVRQVVQpOw0KIH0NCiANCiBzdGF0 aWMgc3RydWN0IG10a19qcGVnX3FfZGF0YSAqbXRrX2pwZWdfZ2V0X3FfZGF0YShzdHJ1Y3QgbXRr X2pwZWdfY3R4ICpjdHgsDQpAQCAtMjQ0LDEwICsyNTIsMTEgQEAgc3RhdGljIGludCBtdGtfanBl Z190cnlfZm10X3ZpZF9jYXBfbXBsYW5lKHN0cnVjdCBmaWxlICpmaWxlLCB2b2lkICpwcml2LA0K IAkJCQkJICAgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KIHsNCiAJc3RydWN0IG10a19qcGVnX2N0 eCAqY3R4ID0gbXRrX2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KKwlzdHJ1Y3QgbXRrX2pwZWdfZGV2 ICpqcGVnID0gY3R4LT5qcGVnOw0KIAlzdHJ1Y3QgbXRrX2pwZWdfZm10ICpmbXQ7DQogDQotCWZt dCA9IG10a19qcGVnX2ZpbmRfZm9ybWF0KG10a19qcGVnX2RlY19mb3JtYXRzLA0KLQkJCQkgICBN VEtfSlBFR19ERUNfTlVNX0ZPUk1BVFMsDQorCWZtdCA9IG10a19qcGVnX2ZpbmRfZm9ybWF0KGpw ZWctPnZhcmlhbnQtPmZvcm1hdHMsDQorCQkJCSAgIGpwZWctPnZhcmlhbnQtPm51bV9mb3JtYXRz LA0KIAkJCQkgICBmLT5mbXQucGl4X21wLnBpeGVsZm9ybWF0LA0KIAkJCQkgICBNVEtfSlBFR19G TVRfRkxBR19DQVBUVVJFKTsNCiAJaWYgKCFmbXQpDQpAQCAtMjcyLDEwICsyODEsMTEgQEAgc3Rh dGljIGludCBtdGtfanBlZ190cnlfZm10X3ZpZF9vdXRfbXBsYW5lKHN0cnVjdCBmaWxlICpmaWxl LCB2b2lkICpwcml2LA0KIAkJCQkJICAgc3RydWN0IHY0bDJfZm9ybWF0ICpmKQ0KIHsNCiAJc3Ry dWN0IG10a19qcGVnX2N0eCAqY3R4ID0gbXRrX2pwZWdfZmhfdG9fY3R4KHByaXYpOw0KKwlzdHJ1 Y3QgbXRrX2pwZWdfZGV2ICpqcGVnID0gY3R4LT5qcGVnOw0KIAlzdHJ1Y3QgbXRrX2pwZWdfZm10 ICpmbXQ7DQogDQotCWZtdCA9IG10a19qcGVnX2ZpbmRfZm9ybWF0KG10a19qcGVnX2RlY19mb3Jt YXRzLA0KLQkJCQkgICBNVEtfSlBFR19ERUNfTlVNX0ZPUk1BVFMsDQorCWZtdCA9IG10a19qcGVn X2ZpbmRfZm9ybWF0KGpwZWctPnZhcmlhbnQtPmZvcm1hdHMsDQorCQkJCSAgIGpwZWctPnZhcmlh bnQtPm51bV9mb3JtYXRzLA0KIAkJCQkgICBmLT5mbXQucGl4X21wLnBpeGVsZm9ybWF0LA0KIAkJ CQkgICBNVEtfSlBFR19GTVRfRkxBR19PVVRQVVQpOw0KIAlpZiAoIWZtdCkNCkBAIC0zMTYsOSAr MzI2LDggQEAgc3RhdGljIGludCBtdGtfanBlZ19zX2ZtdF9tcGxhbmUoc3RydWN0IG10a19qcGVn X2N0eCAqY3R4LA0KIAkJcmV0dXJuIC1FQlVTWTsNCiAJfQ0KIA0KLQ0KLQlxX2RhdGEtPmZtdCA9 IG10a19qcGVnX2ZpbmRfZm9ybWF0KG10a19qcGVnX2RlY19mb3JtYXRzLA0KLQkJCQkJICAgTVRL X0pQRUdfREVDX05VTV9GT1JNQVRTLA0KKwlxX2RhdGEtPmZtdCA9IG10a19qcGVnX2ZpbmRfZm9y bWF0KGpwZWctPnZhcmlhbnQtPmZvcm1hdHMsDQorCQkJCQkgICBqcGVnLT52YXJpYW50LT5udW1f Zm9ybWF0cywNCiAJCQkJCSAgIHBpeF9tcC0+cGl4ZWxmb3JtYXQsIGZtdF90eXBlKTsNCiAJcV9k YXRhLT5waXhfbXAud2lkdGggPSBwaXhfbXAtPndpZHRoOw0KIAlxX2RhdGEtPnBpeF9tcC5oZWln aHQgPSBwaXhfbXAtPmhlaWdodDsNCkBAIC01MTksOSArNTI4LDEwIEBAIHN0YXRpYyBib29sIG10 a19qcGVnX2NoZWNrX3Jlc29sdXRpb25fY2hhbmdlKHN0cnVjdCBtdGtfanBlZ19jdHggKmN0eCwN CiAJfQ0KIA0KIAlxX2RhdGEgPSAmY3R4LT5jYXBfcTsNCi0JaWYgKHFfZGF0YS0+Zm10ICE9IG10 a19qcGVnX2ZpbmRfZm9ybWF0KG10a19qcGVnX2RlY19mb3JtYXRzLA0KLQkJCU1US19KUEVHX0RF Q19OVU1fRk9STUFUUywgcGFyYW0tPmRzdF9mb3VyY2MsDQotCQkJTVRLX0pQRUdfRk1UX0ZMQUdf Q0FQVFVSRSkpIHsNCisJaWYgKHFfZGF0YS0+Zm10ICE9DQorCSAgICBtdGtfanBlZ19maW5kX2Zv cm1hdChqcGVnLT52YXJpYW50LT5mb3JtYXRzLA0KKwkJCQkganBlZy0+dmFyaWFudC0+bnVtX2Zv cm1hdHMsIHBhcmFtLT5kc3RfZm91cmNjLA0KKwkJCQkgTVRLX0pQRUdfRk1UX0ZMQUdfQ0FQVFVS RSkpIHsNCiAJCXY0bDJfZGJnKDEsIGRlYnVnLCAmanBlZy0+djRsMl9kZXYsICJmb3JtYXQgY2hh bmdlXG4iKTsNCiAJCXJldHVybiB0cnVlOw0KIAl9DQpAQCAtNTQyLDggKzU1Miw4IEBAIHN0YXRp YyB2b2lkIG10a19qcGVnX3NldF9xdWV1ZV9kYXRhKHN0cnVjdCBtdGtfanBlZ19jdHggKmN0eCwN CiAJcV9kYXRhID0gJmN0eC0+Y2FwX3E7DQogCXFfZGF0YS0+cGl4X21wLndpZHRoID0gcGFyYW0t PmRlY193Ow0KIAlxX2RhdGEtPnBpeF9tcC5oZWlnaHQgPSBwYXJhbS0+ZGVjX2g7DQotCXFfZGF0 YS0+Zm10ID0gbXRrX2pwZWdfZmluZF9mb3JtYXQobXRrX2pwZWdfZGVjX2Zvcm1hdHMsDQotCQkJ CQkgICBNVEtfSlBFR19ERUNfTlVNX0ZPUk1BVFMsDQorCXFfZGF0YS0+Zm10ID0gbXRrX2pwZWdf ZmluZF9mb3JtYXQoanBlZy0+dmFyaWFudC0+Zm9ybWF0cywNCisJCQkJCSAgIGpwZWctPnZhcmlh bnQtPm51bV9mb3JtYXRzLA0KIAkJCQkJICAgcGFyYW0tPmRzdF9mb3VyY2MsDQogCQkJCQkgICBN VEtfSlBFR19GTVRfRkxBR19DQVBUVVJFKTsNCiANCkBAIC03NDksMTMgKzc1OSwxNCBAQCBzdGF0 aWMgaW50IG10a19qcGVnX3F1ZXVlX2luaXQodm9pZCAqcHJpdiwgc3RydWN0IHZiMl9xdWV1ZSAq c3JjX3ZxLA0KIAkJCSAgICAgICBzdHJ1Y3QgdmIyX3F1ZXVlICpkc3RfdnEpDQogew0KIAlzdHJ1 Y3QgbXRrX2pwZWdfY3R4ICpjdHggPSBwcml2Ow0KKwlzdHJ1Y3QgbXRrX2pwZWdfZGV2ICpqcGVn ID0gY3R4LT5qcGVnOw0KIAlpbnQgcmV0Ow0KIA0KIAlzcmNfdnEtPnR5cGUgPSBWNEwyX0JVRl9U WVBFX1ZJREVPX09VVFBVVF9NUExBTkU7DQogCXNyY192cS0+aW9fbW9kZXMgPSBWQjJfRE1BQlVG IHwgVkIyX01NQVA7DQogCXNyY192cS0+ZHJ2X3ByaXYgPSBjdHg7DQogCXNyY192cS0+YnVmX3N0 cnVjdF9zaXplID0gc2l6ZW9mKHN0cnVjdCBtdGtfanBlZ19zcmNfYnVmKTsNCi0Jc3JjX3ZxLT5v cHMgPSAmbXRrX2pwZWdfZGVjX3FvcHM7DQorCXNyY192cS0+b3BzID0ganBlZy0+dmFyaWFudC0+ cW9wczsNCiAJc3JjX3ZxLT5tZW1fb3BzID0gJnZiMl9kbWFfY29udGlnX21lbW9wczsNCiAJc3Jj X3ZxLT50aW1lc3RhbXBfZmxhZ3MgPSBWNEwyX0JVRl9GTEFHX1RJTUVTVEFNUF9DT1BZOw0KIAlz cmNfdnEtPmxvY2sgPSAmY3R4LT5qcGVnLT5sb2NrOw0KQEAgLTc2OCw3ICs3NzksNyBAQCBzdGF0 aWMgaW50IG10a19qcGVnX3F1ZXVlX2luaXQodm9pZCAqcHJpdiwgc3RydWN0IHZiMl9xdWV1ZSAq c3JjX3ZxLA0KIAlkc3RfdnEtPmlvX21vZGVzID0gVkIyX0RNQUJVRiB8IFZCMl9NTUFQOw0KIAlk c3RfdnEtPmRydl9wcml2ID0gY3R4Ow0KIAlkc3RfdnEtPmJ1Zl9zdHJ1Y3Rfc2l6ZSA9IHNpemVv ZihzdHJ1Y3QgdjRsMl9tMm1fYnVmZmVyKTsNCi0JZHN0X3ZxLT5vcHMgPSAmbXRrX2pwZWdfZGVj X3FvcHM7DQorCWRzdF92cS0+b3BzID0ganBlZy0+dmFyaWFudC0+cW9wczsNCiAJZHN0X3ZxLT5t ZW1fb3BzID0gJnZiMl9kbWFfY29udGlnX21lbW9wczsNCiAJZHN0X3ZxLT50aW1lc3RhbXBfZmxh Z3MgPSBWNEwyX0JVRl9GTEFHX1RJTUVTVEFNUF9DT1BZOw0KIAlkc3RfdnEtPmxvY2sgPSAmY3R4 LT5qcGVnLT5sb2NrOw0KQEAgLTc4NiwxNCArNzk3LDE2IEBAIHN0YXRpYyB2b2lkIG10a19qcGVn X2Nsa19vbihzdHJ1Y3QgbXRrX2pwZWdfZGV2ICpqcGVnKQ0KIAlpZiAocmV0KQ0KIAkJZGV2X2Vy cihqcGVnLT5kZXYsICJtdGtfc21pX2xhcmJfZ2V0IGxhcmJ2ZGVjIGZhaWwgJWRcbiIsIHJldCk7 DQogDQotCXJldCA9IGNsa19idWxrX3ByZXBhcmVfZW5hYmxlKGpwZWctPm51bV9jbGtzLCBqcGVn LT5jbGtzKTsNCisJcmV0ID0gY2xrX2J1bGtfcHJlcGFyZV9lbmFibGUoanBlZy0+dmFyaWFudC0+ bnVtX2Nsa3MsDQorCQkJCSAgICAgIGpwZWctPnZhcmlhbnQtPmNsa3MpOw0KIAlpZiAocmV0KQ0K IAkJZGV2X2VycihqcGVnLT5kZXYsICJGYWlsZWQgdG8gb3BlbiBqcGVnIGNsazogJWRcbiIsIHJl dCk7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIG10a19qcGVnX2Nsa19vZmYoc3RydWN0IG10a19qcGVn X2RldiAqanBlZykNCiB7DQotCWNsa19idWxrX2Rpc2FibGVfdW5wcmVwYXJlKGpwZWctPm51bV9j bGtzLCBqcGVnLT5jbGtzKTsNCisJY2xrX2J1bGtfZGlzYWJsZV91bnByZXBhcmUoanBlZy0+dmFy aWFudC0+bnVtX2Nsa3MsDQorCQkJCSAgIGpwZWctPnZhcmlhbnQtPmNsa3MpOw0KIAltdGtfc21p X2xhcmJfcHV0KGpwZWctPmxhcmIpOw0KIH0NCiANCkBAIC04NDcsMjQgKzg2MCwyNSBAQCBzdGF0 aWMgaXJxcmV0dXJuX3QgbXRrX2pwZWdfZGVjX2lycShpbnQgaXJxLCB2b2lkICpwcml2KQ0KIHN0 YXRpYyB2b2lkIG10a19qcGVnX3NldF9kZWZhdWx0X3BhcmFtcyhzdHJ1Y3QgbXRrX2pwZWdfY3R4 ICpjdHgpDQogew0KIAlzdHJ1Y3QgbXRrX2pwZWdfcV9kYXRhICpxID0gJmN0eC0+b3V0X3E7DQor CXN0cnVjdCBtdGtfanBlZ19kZXYgKmpwZWcgPSBjdHgtPmpwZWc7DQogDQogCXEtPnBpeF9tcC5j b2xvcnNwYWNlID0gVjRMMl9DT0xPUlNQQUNFX1NSR0I7DQogCXEtPnBpeF9tcC55Y2Jjcl9lbmMg PSBWNEwyX1lDQkNSX0VOQ182MDE7DQogCXEtPnBpeF9tcC5xdWFudGl6YXRpb24gPSBWNEwyX1FV QU5USVpBVElPTl9GVUxMX1JBTkdFOw0KIAlxLT5waXhfbXAueGZlcl9mdW5jID0gVjRMMl9YRkVS X0ZVTkNfU1JHQjsNCiANCi0JcS0+Zm10ID0gbXRrX2pwZWdfZmluZF9mb3JtYXQobXRrX2pwZWdf ZGVjX2Zvcm1hdHMsDQotCQkJCSAgICAgIE1US19KUEVHX0RFQ19OVU1fRk9STUFUUywNCi0JCQkJ ICAgICAgVjRMMl9QSVhfRk1UX0pQRUcsDQorCXEtPmZtdCA9IG10a19qcGVnX2ZpbmRfZm9ybWF0 KGpwZWctPnZhcmlhbnQtPmZvcm1hdHMsDQorCQkJCSAgICAgIGpwZWctPnZhcmlhbnQtPm51bV9m b3JtYXRzLA0KKwkJCQkgICAgICBqcGVnLT52YXJpYW50LT5vdXRfcV9kZWZhdWx0X2ZvdXJjYywN CiAJCQkJICAgICAgTVRLX0pQRUdfRk1UX0ZMQUdfT1VUUFVUKTsNCiAJcS0+cGl4X21wLndpZHRo ID0gTVRLX0pQRUdfTUlOX1dJRFRIOw0KIAlxLT5waXhfbXAuaGVpZ2h0ID0gTVRLX0pQRUdfTUlO X0hFSUdIVDsNCiAJbXRrX2pwZWdfdHJ5X2ZtdF9tcGxhbmUoJnEtPnBpeF9tcCwgcS0+Zm10KTsN CiANCiAJcSA9ICZjdHgtPmNhcF9xOw0KLQlxLT5mbXQgPSBtdGtfanBlZ19maW5kX2Zvcm1hdCht dGtfanBlZ19kZWNfZm9ybWF0cywNCi0JCQkJICAgICAgTVRLX0pQRUdfREVDX05VTV9GT1JNQVRT LA0KLQkJCQkgICAgICBWNEwyX1BJWF9GTVRfWVVWNDIwTSwNCisJcS0+Zm10ID0gbXRrX2pwZWdf ZmluZF9mb3JtYXQoanBlZy0+dmFyaWFudC0+Zm9ybWF0cywNCisJCQkJICAgICAganBlZy0+dmFy aWFudC0+bnVtX2Zvcm1hdHMsDQorCQkJCSAgICAgIGpwZWctPnZhcmlhbnQtPmNhcF9xX2RlZmF1 bHRfZm91cmNjLA0KIAkJCQkgICAgICBNVEtfSlBFR19GTVRfRkxBR19DQVBUVVJFKTsNCiAJcS0+ cGl4X21wLmNvbG9yc3BhY2UgPSBWNEwyX0NPTE9SU1BBQ0VfU1JHQjsNCiAJcS0+cGl4X21wLnlj YmNyX2VuYyA9IFY0TDJfWUNCQ1JfRU5DXzYwMTsNCkBAIC05NjMsOSArOTc3LDggQEAgc3RhdGlj IGludCBtdGtfanBlZ19jbGtfaW5pdChzdHJ1Y3QgbXRrX2pwZWdfZGV2ICpqcGVnKQ0KIA0KIAlq cGVnLT5sYXJiID0gJnBkZXYtPmRldjsNCiANCi0JanBlZy0+Y2xrcyA9IG10ODE3M19qcGVnX2Rl Y19jbG9ja3M7DQotCWpwZWctPm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxNzNfanBlZ19kZWNf Y2xvY2tzKTsNCi0JcmV0ID0gZGV2bV9jbGtfYnVsa19nZXQoanBlZy0+ZGV2LCBqcGVnLT5udW1f Y2xrcywganBlZy0+Y2xrcyk7DQorCXJldCA9IGRldm1fY2xrX2J1bGtfZ2V0KGpwZWctPmRldiwg anBlZy0+dmFyaWFudC0+bnVtX2Nsa3MsDQorCQkJCWpwZWctPnZhcmlhbnQtPmNsa3MpOw0KIAlp ZiAocmV0KSB7DQogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWlsZWQgdG8gZ2V0IGpwZWcgY2xv Y2s6JWRcbiIsIHJldCk7DQogCQlyZXR1cm4gcmV0Ow0KQEAgLTk4NSw3ICs5OTgsNyBAQCBzdGF0 aWMgdm9pZCBtdGtfanBlZ19qb2JfdGltZW91dF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29y aykNCiAJc3JjX2J1ZiA9IHY0bDJfbTJtX3NyY19idWZfcmVtb3ZlKGN0eC0+ZmgubTJtX2N0eCk7 DQogCWRzdF9idWYgPSB2NGwyX20ybV9kc3RfYnVmX3JlbW92ZShjdHgtPmZoLm0ybV9jdHgpOw0K IA0KLQltdGtfanBlZ19kZWNfcmVzZXQoanBlZy0+cmVnX2Jhc2UpOw0KKwlqcGVnLT52YXJpYW50 LT5od19yZXNldChqcGVnLT5yZWdfYmFzZSk7DQogDQogCXBtX3J1bnRpbWVfcHV0KGpwZWctPmRl dik7DQogDQpAQCAtMTAwNyw2ICsxMDIwLDcgQEAgc3RhdGljIGludCBtdGtfanBlZ19wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAltdXRleF9pbml0KCZqcGVnLT5sb2NrKTsN CiAJc3Bpbl9sb2NrX2luaXQoJmpwZWctPmh3X2xvY2spOw0KIAlqcGVnLT5kZXYgPSAmcGRldi0+ ZGV2Ow0KKwlqcGVnLT52YXJpYW50ID0gb2ZfZGV2aWNlX2dldF9tYXRjaF9kYXRhKGpwZWctPmRl dik7DQogCUlOSVRfREVMQVlFRF9XT1JLKCZqcGVnLT5qb2JfdGltZW91dF93b3JrLCBtdGtfanBl Z19qb2JfdGltZW91dF93b3JrKTsNCiANCiAJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBk ZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCkBAIC0xMDIyLDggKzEwMzYsOCBAQCBzdGF0aWMgaW50 IG10a19qcGVnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQlyZXR1cm4g anBlZ19pcnE7DQogCX0NCiANCi0JcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ZGV2LCBq cGVnX2lycSwgbXRrX2pwZWdfZGVjX2lycSwgMCwNCi0JCQkgICAgICAgcGRldi0+bmFtZSwganBl Zyk7DQorCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwganBlZ19pcnEsDQorCQkJ ICAgICAgIGpwZWctPnZhcmlhbnQtPmlycV9oYW5kbGVyLCAwLCBwZGV2LT5uYW1lLCBqcGVnKTsN CiAJaWYgKHJldCkgew0KIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIHJlcXVlc3Qg anBlZ19pcnEgJWQgKCVkKVxuIiwNCiAJCQlqcGVnX2lycSwgcmV0KTsNCkBAIC0xMDQzLDcgKzEw NTcsOCBAQCBzdGF0aWMgaW50IG10a19qcGVnX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpDQogCQlnb3RvIGVycl9kZXZfcmVnaXN0ZXI7DQogCX0NCiANCi0JanBlZy0+bTJtX2Rl diA9IHY0bDJfbTJtX2luaXQoJm10a19qcGVnX2RlY19tMm1fb3BzKTsNCisJanBlZy0+bTJtX2Rl diA9IHY0bDJfbTJtX2luaXQoanBlZy0+dmFyaWFudC0+bTJtX29wcyk7DQorDQogCWlmIChJU19F UlIoanBlZy0+bTJtX2RldikpIHsNCiAJCXY0bDJfZXJyKCZqcGVnLT52NGwyX2RldiwgIkZhaWxl ZCB0byBpbml0IG1lbTJtZW0gZGV2aWNlXG4iKTsNCiAJCXJldCA9IFBUUl9FUlIoanBlZy0+bTJt X2Rldik7DQpAQCAtMTA1Niw5ICsxMDcxLDkgQEAgc3RhdGljIGludCBtdGtfanBlZ19wcm9iZShz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KIAkJZ290byBlcnJfdmZkX2pwZWdfYWxsb2M7 DQogCX0NCiAJc25wcmludGYoanBlZy0+dmRldi0+bmFtZSwgc2l6ZW9mKGpwZWctPnZkZXYtPm5h bWUpLA0KLQkJICIlcy1kZWMiLCBNVEtfSlBFR19OQU1FKTsNCisJCSAiJXMiLCBqcGVnLT52YXJp YW50LT5kZXZfbmFtZSk7DQogCWpwZWctPnZkZXYtPmZvcHMgPSAmbXRrX2pwZWdfZm9wczsNCi0J anBlZy0+dmRldi0+aW9jdGxfb3BzID0gJm10a19qcGVnX2RlY19pb2N0bF9vcHM7DQorCWpwZWct PnZkZXYtPmlvY3RsX29wcyA9IGpwZWctPnZhcmlhbnQtPmlvY3RsX29wczsNCiAJanBlZy0+dmRl di0+bWlub3IgPSAtMTsNCiAJanBlZy0+dmRldi0+cmVsZWFzZSA9IHZpZGVvX2RldmljZV9yZWxl YXNlOw0KIAlqcGVnLT52ZGV2LT5sb2NrID0gJmpwZWctPmxvY2s7DQpAQCAtMTA3NSw4ICsxMDkw LDkgQEAgc3RhdGljIGludCBtdGtfanBlZ19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KIA0KIAl2aWRlb19zZXRfZHJ2ZGF0YShqcGVnLT52ZGV2LCBqcGVnKTsNCiAJdjRsMl9p bmZvKCZqcGVnLT52NGwyX2RldiwNCi0JCSAgImRlY29kZXIgZGV2aWNlIHJlZ2lzdGVyZWQgYXMg L2Rldi92aWRlbyVkICglZCwlZClcbiIsDQotCQkgIGpwZWctPnZkZXYtPm51bSwgVklERU9fTUFK T1IsIGpwZWctPnZkZXYtPm1pbm9yKTsNCisJCSAgIiVzIGRldmljZSByZWdpc3RlcmVkIGFzIC9k ZXYvdmlkZW8lZCAoJWQsJWQpXG4iLA0KKwkJICBqcGVnLT52YXJpYW50LT5kZXZfbmFtZSwganBl Zy0+dmRldi0+bnVtLA0KKwkJICBWSURFT19NQUpPUiwganBlZy0+dmRldi0+bWlub3IpOw0KIA0K IAlwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBqcGVnKTsNCiANCkBAIC0xMTU5LDE0ICsxMTc1 LDI5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBtdGtfanBlZ19wbV9vcHMgPSB7 DQogCVNFVF9SVU5USU1FX1BNX09QUyhtdGtfanBlZ19wbV9zdXNwZW5kLCBtdGtfanBlZ19wbV9y ZXN1bWUsIE5VTEwpDQogfTsNCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19qcGVnX3Zhcmlh bnQgbXQ4MTczX2pwZWdfZHJ2ZGF0YSA9IHsNCisJLmNsa3MgPSBtdDgxNzNfanBlZ19kZWNfY2xv Y2tzLA0KKwkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10ODE3M19qcGVnX2RlY19jbG9ja3MpLA0K KwkuZm9ybWF0cyA9IG10a19qcGVnX2RlY19mb3JtYXRzLA0KKwkubnVtX2Zvcm1hdHMgPSBNVEtf SlBFR19ERUNfTlVNX0ZPUk1BVFMsDQorCS5xb3BzID0gJm10a19qcGVnX2RlY19xb3BzLA0KKwku aXJxX2hhbmRsZXIgPSBtdGtfanBlZ19kZWNfaXJxLA0KKwkuaHdfcmVzZXQgPSBtdGtfanBlZ19k ZWNfcmVzZXQsDQorCS5tMm1fb3BzID0gJm10a19qcGVnX2RlY19tMm1fb3BzLA0KKwkuZGV2X25h bWUgPSAibXRrLWpwZWctZGVjIiwNCisJLmlvY3RsX29wcyA9ICZtdGtfanBlZ19kZWNfaW9jdGxf b3BzLA0KKwkub3V0X3FfZGVmYXVsdF9mb3VyY2MgPSBWNEwyX1BJWF9GTVRfSlBFRywNCisJLmNh cF9xX2RlZmF1bHRfZm91cmNjID0gVjRMMl9QSVhfRk1UX1lVVjQyME0sDQorfTsNCisNCiBzdGF0 aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfanBlZ19tYXRjaFtdID0gew0KIAl7DQog CQkuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtanBnZGVjIiwNCi0JCS5kYXRhICAgICAg ID0gTlVMTCwNCisJCS5kYXRhID0gJm10ODE3M19qcGVnX2RydmRhdGEsDQogCX0sDQogCXsNCiAJ CS5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcwMS1qcGdkZWMiLA0KLQkJLmRhdGEgICAgICAg PSBOVUxMLA0KKwkJLmRhdGEgPSAmbXQ4MTczX2pwZWdfZHJ2ZGF0YSwNCiAJfSwNCiAJe30sDQog fTsNCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVn X2NvcmUuaCBiL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5o DQppbmRleCAwZjI3NDgwZGQ5MGQuLmQxMWQzNjZhMjQ3ZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMv bWVkaWEvcGxhdGZvcm0vbXRrLWpwZWcvbXRrX2pwZWdfY29yZS5oDQorKysgYi9kcml2ZXJzL21l ZGlhL3BsYXRmb3JtL210ay1qcGVnL210a19qcGVnX2NvcmUuaA0KQEAgLTQxLDYgKzQxLDM2IEBA IGVudW0gbXRrX2pwZWdfY3R4X3N0YXRlIHsNCiAJTVRLX0pQRUdfU09VUkNFX0NIQU5HRSwNCiB9 Ow0KIA0KKy8qKg0KKyAqIG10a19qcGVnX3ZhcmlhbnQgLSBtdGsganBlZyBkcml2ZXIgdmFyaWFu dA0KKyAqIEBjbGtzOgkJCWNsb2NrIG5hbWVzDQorICogQG51bV9jbGtzOgkJCW51bWJlcnMgb2Yg Y2xvY2sNCisgKiBAZm9ybWF0OgkJCWpwZWcgZHJpdmVyJ3MgaW50ZXJuYWwgY29sb3IgZm9ybWF0 DQorICogQG51bV9mb3JtYXQ6CQkJbnVtYmVyIG9mIGZvcm1hdA0KKyAqIEBxb3BzOgkJCXRoZSBj YWxsYmFjayBvZiBqcGVnIHZiMl9vcHMNCisgKiBAaXJxX2hhbmRsZXI6CQlqcGVnIGlycSBoYW5k bGVyIGNhbGxiYWNrDQorICogQGh3X3Jlc2V0OgkJCWpwZWcgaGFyZHdhcmUgcmVzZXQgY2FsbGJh Y2sNCisgKiBAbTJtX29wczoJCQl0aGUgY2FsbGJhY2sgb2YganBlZyB2NGwyX20ybV9vcHMNCisg KiBAZGV2X25hbWU6CQkJanBlZyBkZXZpY2UgbmFtZQ0KKyAqIEBpb2N0bF9vcHM6CQkJdGhlIGNh bGxiYWNrIG9mIGpwZWcgdjRsMl9pb2N0bF9vcHMNCisgKiBAb3V0X3FfZGVmYXVsdF9mb3VyY2M6 CW91dHB1dCBxdWV1ZSBkZWZhdWx0IGZvdXJjYw0KKyAqIEBjYXBfcV9kZWZhdWx0X2ZvdXJjYzoJ Y2FwdHVyZSBxdWV1ZSBkZWZhdWx0IGZvdXJjYw0KKyAqLw0KK3N0cnVjdCBtdGtfanBlZ192YXJp YW50IHsNCisJc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3M7DQorCWludCBudW1fY2xrczsNCisJ c3RydWN0IG10a19qcGVnX2ZtdCAqZm9ybWF0czsNCisJaW50IG51bV9mb3JtYXRzOw0KKwljb25z dCBzdHJ1Y3QgdmIyX29wcyAqcW9wczsNCisJaXJxcmV0dXJuX3QgKCppcnFfaGFuZGxlcikoaW50 IGlycSwgdm9pZCAqcHJpdik7DQorCXZvaWQgKCpod19yZXNldCkodm9pZCBfX2lvbWVtICpiYXNl KTsNCisJY29uc3Qgc3RydWN0IHY0bDJfbTJtX29wcyAqbTJtX29wczsNCisJY29uc3QgY2hhciAq ZGV2X25hbWU7DQorCWNvbnN0IHN0cnVjdCB2NGwyX2lvY3RsX29wcyAqaW9jdGxfb3BzOw0KKwl1 MzIgb3V0X3FfZGVmYXVsdF9mb3VyY2M7DQorCXUzMiBjYXBfcV9kZWZhdWx0X2ZvdXJjYzsNCit9 Ow0KKw0KIC8qKg0KICAqIHN0cnVjdCBtdF9qcGVnIC0gSlBFRyBJUCBhYnN0cmFjdGlvbg0KICAq IEBsb2NrOgkJdGhlIG11dGV4IHByb3RlY3RpbmcgdGhpcyBzdHJ1Y3R1cmUNCkBAIC01MiwxMCAr ODIsOSBAQCBlbnVtIG10a19qcGVnX2N0eF9zdGF0ZSB7DQogICogQGFsbG9jX2N0eDoJCXZpZGVv YnVmMiBtZW1vcnkgYWxsb2NhdG9yJ3MgY29udGV4dA0KICAqIEB2ZGV2OgkJdmlkZW8gZGV2aWNl IG5vZGUgZm9yIGpwZWcgbWVtMm1lbSBtb2RlDQogICogQHJlZ19iYXNlOgkJSlBFRyByZWdpc3Rl cnMgbWFwcGluZw0KLSAqIEBjbGtzOgkJY2xvY2sgbmFtZXMNCi0gKiBAbnVtX2Nsa3M6CQludW1i ZXJzIG9mIGNsb2NrDQogICogQGxhcmI6CQlTTUkgZGV2aWNlDQogICogQGpvYl90aW1lb3V0X3dv cms6CUlSUSB0aW1lb3V0IHN0cnVjdHVyZQ0KKyAqIEB2YXJpYW50OgkJZHJpdmVyIHZhcmlhbnQg dG8gYmUgdXNlZA0KICAqLw0KIHN0cnVjdCBtdGtfanBlZ19kZXYgew0KIAlzdHJ1Y3QgbXV0ZXgJ CWxvY2s7DQpAQCAtNjcsMTAgKzk2LDkgQEAgc3RydWN0IG10a19qcGVnX2RldiB7DQogCXZvaWQJ CQkqYWxsb2NfY3R4Ow0KIAlzdHJ1Y3QgdmlkZW9fZGV2aWNlCSp2ZGV2Ow0KIAl2b2lkIF9faW9t ZW0JCSpyZWdfYmFzZTsNCi0Jc3RydWN0IGNsa19idWxrX2RhdGEgKmNsa3M7DQotCWludCBudW1f Y2xrczsNCiAJc3RydWN0IGRldmljZQkJKmxhcmI7DQogCXN0cnVjdCBkZWxheWVkX3dvcmsgam9i X3RpbWVvdXRfd29yazsNCisJY29uc3Qgc3RydWN0IG10a19qcGVnX3ZhcmlhbnQgKnZhcmlhbnQ7 DQogfTsNCiANCiAvKioNCi0tIA0KMi4xOC4wDQo=