From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id D62F2CDB465 for ; Mon, 16 Oct 2023 10:26:43 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 7E8084168D; Mon, 16 Oct 2023 10:26:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 7E8084168D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=osuosl.org; s=default; t=1697452003; bh=fXXYUqUlbYIrY5336CvpoT1Cl025L2nKglGpQAtqeBQ=; h=From:To:Date:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:Cc:From; b=dm4SstATINSWq8r6LHa6KvH7Ibgzm744QIHe0X0TI5OJhVcdsWvyBXjoSgMx7XXgz elJNKd7L5wNB5BFE3V5MnYobv6aXkFPJIac4QVfYd7uG2mIeqLThs8Kun4l2TOhdU6 A9lolkfyuJYEPv07QRMKVrb5XvbHVffZ1ec/wZgRz3ZFZZh7rrgIWONugnEV2jxiWf X0QXR/UKxbD6o04b8BYgTUs7JVnSHPJ6QRMau9TVpy8dJG/pyF0wtFFbqAboaBnxKG nKmM3BlQ/pP0XYoTvbAelnmdkb7SltjD58wfRQv9DDfoPkEcwz2wKUGciN1Bb7xy1K q5Tlj3xL2eDqA== X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CfPrIHw8bJPD; Mon, 16 Oct 2023 10:26:42 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by smtp2.osuosl.org (Postfix) with ESMTP id B9D5E4151D; Mon, 16 Oct 2023 10:26:41 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org B9D5E4151D Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) by ash.osuosl.org (Postfix) with ESMTP id 2CF711BF327 for ; Mon, 16 Oct 2023 10:26:40 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 042AD60B0B for ; Mon, 16 Oct 2023 10:26:40 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 042AD60B0B X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wp3v2pEKN2cD for ; Mon, 16 Oct 2023 10:26:38 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.100]) by smtp3.osuosl.org (Postfix) with ESMTPS id 6551D60AF4 for ; Mon, 16 Oct 2023 10:26:38 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6551D60AF4 X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="451975435" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="451975435" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2023 03:26:37 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10863"; a="705572143" X-IronPort-AV: E=Sophos;i="6.03,229,1694761200"; d="scan'208";a="705572143" Received: from irvmail002.ir.intel.com ([10.43.11.120]) by orsmga003.jf.intel.com with ESMTP; 16 Oct 2023 03:26:33 -0700 Received: from kord.igk.intel.com (kord.igk.intel.com [10.123.220.9]) by irvmail002.ir.intel.com (Postfix) with ESMTP id 6F36F28794; Mon, 16 Oct 2023 11:26:31 +0100 (IST) From: Konrad Knitter To: intel-wired-lan@lists.osuosl.org Date: Mon, 16 Oct 2023 12:29:14 +0200 Message-Id: <20231016102913.898932-1-konrad.knitter@intel.com> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1697451998; x=1728987998; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=Rw0F61suE62EHHUKZa5H4pOYuK6MxIzKnXzMs5ums3U=; b=XSEtq4K0BlJf3eY8e9oWRCg0Yu/DznDMeWgx2rfbnhsyYZAKiXyS4imC uYzEWdGyEpMyja+3Fy2RE1MaktEx+1Xp2eOUMZxWBi2SlPen11gjOqj44 gyjVXxfJJAu4F20cedY4khsRmiPN6Wbm2RBxjv3pSG9fb6OiZrJC9umsb Hi1SNfDdML/6uvZUslFpJB4ELiFuem2FgcS7OpMicd301x40OWMiRztoq hck4cvBQ3bfQFWNi7o3DG1kQerHatsmPUHenVj4Awo75k2Y94gJTQMgwB wD8BbZFJfR2JiewO/ineAME8w1lM/RRvmNZHaGAUQtADAencnv835Zeuq g==; X-Mailman-Original-Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=XSEtq4K0 Subject: [Intel-wired-lan] [PATCH iwl-next v4] ice: read internal temperature sensor X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jdelvare@suse.com, netdev@vger.kernel.org, Konrad Knitter , Eric Joyner , Marcin Szycik , Marcin Domagala , Przemek Kitszel , linux@roeck-us.net Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" U2luY2UgNC4zMCBmaXJtd2FyZSBleHBvc2VzIGludGVybmFsIHRoZXJtYWwgc2Vuc29yIHJlYWRp bmcgdmlhIGFkbWluCnF1ZXVlIGNvbW1hbmRzLiBFeHBvc2UgdGhvc2UgcmVhZG91dHMgdmlhIGh3 bW9uIEFQSSB3aGVuIHN1cHBvcnRlZC4KCkRyaXZlciBwcm92aWRlcyBjdXJyZW50IHJlYWRpbmcg ZnJvbSBIVyBhcyB3ZWxsIGFzIGRldmljZSBzcGVjaWZpYwp0aHJlc2hvbGRzIGZvciB0aGVybWFs IGFsYXJtIChXYXJuaW5nLCBDcml0aWNhbCwgRmF0YWwpIGV2ZW50cy4KCiQgc2Vuc29ycwoKT3V0 cHV0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQppY2UtcGNpLWIxMDAKQWRhcHRlcjogUENJIGFkYXB0ZXIKdGVtcDE6ICAgICAgICArNjIu MMKwQyAgKGhpZ2ggPSArOTUuMMKwQywgY3JpdCA9ICsxMDUuMMKwQykKICAgICAgICAgICAgICAg ICAgICAgICAoZW1lcmcgPSArMTE1LjDCsEMpCgpDby1kZXZlbG9wZWQtYnk6IE1hcmNpbiBEb21h Z2FsYSA8bWFyY2lueC5kb21hZ2FsYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hcmNpbiBE b21hZ2FsYSA8bWFyY2lueC5kb21hZ2FsYUBpbnRlbC5jb20+CkNvLWRldmVsb3BlZC1ieTogRXJp YyBKb3luZXIgPGVyaWMuam95bmVyQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRXJpYyBKb3lu ZXIgPGVyaWMuam95bmVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IE1hcmNpbiBTenljaWsgPG1h cmNpbi5zenljaWtAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUHJ6ZW1layBLaXRzemVs IDxwcnplbXlzbGF3LmtpdHN6ZWxAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBLb25yYWQgS25p dHRlciA8a29ucmFkLmtuaXR0ZXJAaW50ZWwuY29tPgotLS0KdjQ6IGFkZGVkIGRlcGVuZGVuY3kg Y29uZmlnX2h3bW9uLCBjbGVhbnVwcwp2MzogYWRkIFNQRFggaWRlbnRpZmljYXRpb24gdG8gaWNl X2h3bW9uIGZpbGVzCnYyOiBmaXggZm9ybW1hdGluZyBpc3N1ZXMsIGFkZGVkIGh3bW9uIG1haW50 YWluZXJzIHRvIENjCi0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL01ha2VmaWxl ICAgICAgIHwgICAxICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2UuaCAgICAg ICAgICB8ICAgMSArCiAuLi4vbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfYWRtaW5xX2NtZC5o ICAgfCAgMjggKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9jb21tb24u YyAgIHwgIDU2ICsrKysrKystCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlX2Nv bW1vbi5oICAgfCAgIDIgKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9od21v bi5jICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWNlL2ljZV9od21vbi5oICAgIHwgIDE1ICsrKwogZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWNlL2ljZV9tYWluLmMgICAgIHwgICA1ICsKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVs L2ljZS9pY2VfdHlwZS5oICAgICB8ICAgNCArCiA5IGZpbGVzIGNoYW5nZWQsIDIzNyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9uZXQvZXRo ZXJuZXQvaW50ZWwvaWNlL2ljZV9od21vbi5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9od21vbi5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWNlL01ha2VmaWxlIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWNlL01ha2VmaWxlCmluZGV4IDg3NTdiZWMyM2ZiMy4uYzYwNzIwODBlNTQ4IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL01ha2VmaWxlCkBAIC01MSwzICs1MSw0IEBAIGljZS0k KENPTkZJR19SRlNfQUNDRUwpICs9IGljZV9hcmZzLm8KIGljZS0kKENPTkZJR19YRFBfU09DS0VU UykgKz0gaWNlX3hzay5vCiBpY2UtJChDT05GSUdfSUNFX1NXSVRDSERFVikgKz0gaWNlX2Vzd2l0 Y2gubyBpY2VfZXN3aXRjaF9ici5vCiBpY2UtJChDT05GSUdfR05TUykgKz0gaWNlX2duc3Mubwor aWNlLSQoQ09ORklHX0hXTU9OKSArPSBpY2VfaHdtb24ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwv aWNlL2ljZS5oCmluZGV4IGFkNTYxNGQ0NDQ5Yy4uNjFkMjZiZTUwMmIyIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlLmgKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvaW50ZWwvaWNlL2ljZS5oCkBAIC02NTAsNiArNjUwLDcgQEAgc3RydWN0IGljZV9wZiB7 CiAjZGVmaW5lIElDRV9NQVhfVkZfQUdHX05PREVTCQkzMgogCXN0cnVjdCBpY2VfYWdnX25vZGUg dmZfYWdnX25vZGVbSUNFX01BWF9WRl9BR0dfTk9ERVNdOwogCXN0cnVjdCBpY2VfZHBsbHMgZHBs bHM7CisJc3RydWN0IGRldmljZSAqaHdtb25fZGV2OwogfTsKIAogZXh0ZXJuIHN0cnVjdCB3b3Jr cXVldWVfc3RydWN0ICppY2VfbGFnX3dxOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvaW50ZWwvaWNlL2ljZV9hZG1pbnFfY21kLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRl bC9pY2UvaWNlX2FkbWlucV9jbWQuaAppbmRleCAxMjAyYWJmYjllYjMuLmRlMmU2NTA4ZjMzMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9hZG1pbnFfY21k LmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9hZG1pbnFfY21kLmgK QEAgLTExNyw2ICsxMTcsNyBAQCBzdHJ1Y3QgaWNlX2FxY19saXN0X2NhcHNfZWxlbSB7CiAjZGVm aW5lIElDRV9BUUNfQ0FQU19ORVRfVkVSCQkJCTB4MDA0QwogI2RlZmluZSBJQ0VfQVFDX0NBUFNf UEVORElOR19ORVRfVkVSCQkJMHgwMDRECiAjZGVmaW5lIElDRV9BUUNfQ0FQU19SRE1BCQkJCTB4 MDA1MQorI2RlZmluZSBJQ0VfQVFDX0NBUFNfU0VOU09SX1JFQURJTkcJCQkweDAwNjcKICNkZWZp bmUgSUNFX0FRQ19DQVBTX1BDSUVfUkVTRVRfQVZPSURBTkNFCQkweDAwNzYKICNkZWZpbmUgSUNF X0FRQ19DQVBTX1BPU1RfVVBEQVRFX1JFU0VUX1JFU1RSSUNUCQkweDAwNzcKICNkZWZpbmUgSUNF X0FRQ19DQVBTX05WTV9NR01UCQkJCTB4MDA4MApAQCAtMTM5Myw2ICsxMzk0LDMwIEBAIHN0cnVj dCBpY2VfYXFjX2dldF9waHlfcmVjX2Nsa19vdXQgewogCV9fbGUxNiBub2RlX2hhbmRsZTsKIH07 CiAKKy8qIEdldCBzZW5zb3IgcmVhZGluZyAoZGlyZWN0IDB4MDYzMikgKi8KK3N0cnVjdCBpY2Vf YXFjX2dldF9zZW5zb3JfcmVhZGluZyB7CisJdTggc2Vuc29yOworCXU4IGZvcm1hdDsKKwl1OCBy ZXNlcnZlZFs2XTsKKwlfX2xlMzIgYWRkcl9oaWdoOworCV9fbGUzMiBhZGRyX2xvdzsKK307CisK Ky8qIEdldCBzZW5zb3IgcmVhZGluZyByZXNwb25zZSAoZGlyZWN0IDB4MDYzMikgKi8KK3N0cnVj dCBpY2VfYXFjX2dldF9zZW5zb3JfcmVhZGluZ19yZXNwIHsKKwl1bmlvbiB7CisJCXU4IHJhd1s4 XTsKKwkJLyogT3V0cHV0IGRhdGEgZm9yIHNlbnNvciAweDAwLCBmb3JtYXQgMHgwMCAqLworCQlz dHJ1Y3QgX3BhY2tlZCB7CisJCQlzOCB0ZW1wOworCQkJdTggdGVtcF93YXJuaW5nX3RocmVzaG9s ZDsKKwkJCXU4IHRlbXBfY3JpdGljYWxfdGhyZXNob2xkOworCQkJdTggdGVtcF9mYXRhbF90aHJl c2hvbGQ7CisJCQl1OCByZXNlcnZlZFs0XTsKKwkJfSBzMGYwOworCX0gZGF0YTsKK307CisKIHN0 cnVjdCBpY2VfYXFjX2xpbmtfdG9wb19wYXJhbXMgewogCXU4IGxwb3J0X251bTsKIAl1OCBscG9y dF9udW1fdmFsaWQ7CkBAIC0yNDM4LDYgKzI0NjMsOCBAQCBzdHJ1Y3QgaWNlX2FxX2Rlc2Mgewog CQlzdHJ1Y3QgaWNlX2FxY19yZXN0YXJ0X2FuIHJlc3RhcnRfYW47CiAJCXN0cnVjdCBpY2VfYXFj X3NldF9waHlfcmVjX2Nsa19vdXQgc2V0X3BoeV9yZWNfY2xrX291dDsKIAkJc3RydWN0IGljZV9h cWNfZ2V0X3BoeV9yZWNfY2xrX291dCBnZXRfcGh5X3JlY19jbGtfb3V0OworCQlzdHJ1Y3QgaWNl X2FxY19nZXRfc2Vuc29yX3JlYWRpbmcgZ2V0X3NlbnNvcl9yZWFkaW5nOworCQlzdHJ1Y3QgaWNl X2FxY19nZXRfc2Vuc29yX3JlYWRpbmdfcmVzcCBnZXRfc2Vuc29yX3JlYWRpbmdfcmVzcDsKIAkJ c3RydWN0IGljZV9hcWNfZ3BpbyByZWFkX3dyaXRlX2dwaW87CiAJCXN0cnVjdCBpY2VfYXFjX3Nm Zl9lZXByb20gcmVhZF93cml0ZV9zZmZfcGFyYW07CiAJCXN0cnVjdCBpY2VfYXFjX3NldF9wb3J0 X2lkX2xlZCBzZXRfcG9ydF9pZF9sZWQ7CkBAIC0yNjE3LDYgKzI2NDQsNyBAQCBlbnVtIGljZV9h ZG1pbnFfb3BjIHsKIAlpY2VfYXFjX29wY19zZXRfbWFjX2xiCQkJCT0gMHgwNjIwLAogCWljZV9h cWNfb3BjX3NldF9waHlfcmVjX2Nsa19vdXQJCQk9IDB4MDYzMCwKIAlpY2VfYXFjX29wY19nZXRf cGh5X3JlY19jbGtfb3V0CQkJPSAweDA2MzEsCisJaWNlX2FxY19vcGNfZ2V0X3NlbnNvcl9yZWFk aW5nCQkJPSAweDA2MzIsCiAJaWNlX2FxY19vcGNfZ2V0X2xpbmtfdG9wbwkJCT0gMHgwNkUwLAog CWljZV9hcWNfb3BjX3JlYWRfaTJjCQkJCT0gMHgwNkUyLAogCWljZV9hcWNfb3BjX3dyaXRlX2ky YwkJCQk9IDB4MDZFMywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lj ZS9pY2VfY29tbW9uLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlX2NvbW1v bi5jCmluZGV4IDI4MzQ5MjMxNDIxNS4uNjU2NDAzOGUyNjY1IDEwMDY0NAotLS0gYS9kcml2ZXJz L25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlX2NvbW1vbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2ludGVsL2ljZS9pY2VfY29tbW9uLmMKQEAgLTI0NjIsNiArMjQ2MiwyNiBAQCBpY2Vf cGFyc2VfZmRpcl9kZXZfY2FwcyhzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0IGljZV9od19kZXZf Y2FwcyAqZGV2X3AsCiAJCSAgZGV2X3AtPm51bV9mbG93X2RpcmVjdG9yX2ZsdHIpOwogfQogCisv KioKKyAqIGljZV9wYXJzZV9zZW5zb3JfcmVhZGluZ19jYXAgLSBQYXJzZSBJQ0VfQVFDX0NBUFNf U0VOU09SX1JFQURJTkcgY2FwCisgKiBAaHc6IHBvaW50ZXIgdG8gdGhlIEhXIHN0cnVjdAorICog QGRldl9wOiBwb2ludGVyIHRvIGRldmljZSBjYXBhYmlsaXRpZXMgc3RydWN0dXJlCisgKiBAY2Fw OiBjYXBhYmlsaXR5IGVsZW1lbnQgdG8gcGFyc2UKKyAqCisgKiBQYXJzZSBJQ0VfQVFDX0NBUFNf U0VOU09SX1JFQURJTkcgZm9yIGRldmljZSBjYXBhYmlsaXR5IGZvciByZWFkaW5nCisgKiBlbmFi bGVkIHNlbnNvcnMuCisgKi8KK3N0YXRpYyB2b2lkCitpY2VfcGFyc2Vfc2Vuc29yX3JlYWRpbmdf Y2FwKHN0cnVjdCBpY2VfaHcgKmh3LCBzdHJ1Y3QgaWNlX2h3X2Rldl9jYXBzICpkZXZfcCwKKwkJ CSAgICAgc3RydWN0IGljZV9hcWNfbGlzdF9jYXBzX2VsZW0gKmNhcCkKK3sKKwlkZXZfcC0+c3Vw cG9ydGVkX3NlbnNvcnMgPSBsZTMyX3RvX2NwdShjYXAtPm51bWJlcik7CisKKwlpY2VfZGVidWco aHcsIElDRV9EQkdfSU5JVCwKKwkJICAiZGV2IGNhcHM6IHN1cHBvcnRlZCBzZW5zb3JzIChiaXRt YXApID0gMHgleFxuIiwKKwkJICBkZXZfcC0+c3VwcG9ydGVkX3NlbnNvcnMpOworfQorCiAvKioK ICAqIGljZV9wYXJzZV9kZXZfY2FwcyAtIFBhcnNlIGRldmljZSBjYXBhYmlsaXRpZXMKICAqIEBo dzogcG9pbnRlciB0byB0aGUgSFcgc3RydWN0CkBAIC0yNTA3LDkgKzI1MjcsMTIgQEAgaWNlX3Bh cnNlX2Rldl9jYXBzKHN0cnVjdCBpY2VfaHcgKmh3LCBzdHJ1Y3QgaWNlX2h3X2Rldl9jYXBzICpk ZXZfcCwKIAkJY2FzZSBJQ0VfQVFDX0NBUFNfMTU4ODoKIAkJCWljZV9wYXJzZV8xNTg4X2Rldl9j YXBzKGh3LCBkZXZfcCwgJmNhcF9yZXNwW2ldKTsKIAkJCWJyZWFrOwotCQljYXNlICBJQ0VfQVFD X0NBUFNfRkQ6CisJCWNhc2UgSUNFX0FRQ19DQVBTX0ZEOgogCQkJaWNlX3BhcnNlX2ZkaXJfZGV2 X2NhcHMoaHcsIGRldl9wLCAmY2FwX3Jlc3BbaV0pOwogCQkJYnJlYWs7CisJCWNhc2UgSUNFX0FR Q19DQVBTX1NFTlNPUl9SRUFESU5HOgorCQkJaWNlX3BhcnNlX3NlbnNvcl9yZWFkaW5nX2NhcCho dywgZGV2X3AsICZjYXBfcmVzcFtpXSk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIERv bid0IGxpc3QgY29tbW9uIGNhcGFiaWxpdGllcyBhcyB1bmtub3duICovCiAJCQlpZiAoIWZvdW5k KQpAQCAtNTI5Miw2ICs1MzE1LDM3IEBAIGljZV9hcV9nZXRfcGh5X3JlY19jbGtfb3V0KHN0cnVj dCBpY2VfaHcgKmh3LCB1OCAqcGh5X291dHB1dCwgdTggKnBvcnRfbnVtLAogCXJldHVybiBzdGF0 dXM7CiB9CiAKKy8qKgorICogaWNlX2FxX2dldF9zZW5zb3JfcmVhZGluZworICogQGh3OiBwb2lu dGVyIHRvIHRoZSBIVyBzdHJ1Y3QKKyAqIEBzZW5zb3I6IHNlbnNvciB0eXBlCisgKiBAZm9ybWF0 OiByZXF1ZXN0ZWQgcmVzcG9uc2UgZm9ybWF0CisgKiBAZGF0YTogcG9pbnRlciB0byBkYXRhIHRv IGJlIHJlYWQgZnJvbSB0aGUgc2Vuc29yCisgKgorICogR2V0IHNlbnNvciByZWFkaW5nICgweDA2 MzIpCisgKi8KK2ludCBpY2VfYXFfZ2V0X3NlbnNvcl9yZWFkaW5nKHN0cnVjdCBpY2VfaHcgKmh3 LAorCQkJICAgICAgc3RydWN0IGljZV9hcWNfZ2V0X3NlbnNvcl9yZWFkaW5nX3Jlc3AgKmRhdGEp Cit7CisJc3RydWN0IGljZV9hcWNfZ2V0X3NlbnNvcl9yZWFkaW5nICpjbWQ7CisJc3RydWN0IGlj ZV9hcV9kZXNjIGRlc2M7CisJaW50IHN0YXR1czsKKworCWljZV9maWxsX2RmbHRfZGlyZWN0X2Nt ZF9kZXNjKCZkZXNjLCBpY2VfYXFjX29wY19nZXRfc2Vuc29yX3JlYWRpbmcpOworCWNtZCA9ICZk ZXNjLnBhcmFtcy5nZXRfc2Vuc29yX3JlYWRpbmc7CisjZGVmaW5lIElDRV9JTlRFUk5BTF9URU1Q X1NFTlNPUl9GT1JNQVQJMAorI2RlZmluZSBJQ0VfSU5URVJOQUxfVEVNUF9TRU5TT1IJMAorCWNt ZC0+c2Vuc29yID0gSUNFX0lOVEVSTkFMX1RFTVBfU0VOU09SOworCWNtZC0+Zm9ybWF0ID0gSUNF X0lOVEVSTkFMX1RFTVBfU0VOU09SX0ZPUk1BVDsKKworCXN0YXR1cyA9IGljZV9hcV9zZW5kX2Nt ZChodywgJmRlc2MsIE5VTEwsIDAsIE5VTEwpOworCWlmICghc3RhdHVzKQorCQltZW1jcHkoZGF0 YSwgJmRlc2MucGFyYW1zLmdldF9zZW5zb3JfcmVhZGluZ19yZXNwLAorCQkgICAgICAgc2l6ZW9m KCpkYXRhKSk7CisKKwlyZXR1cm4gc3RhdHVzOworfQorCiAvKioKICAqIGljZV9yZXBsYXlfcHJl X2luaXQgLSByZXBsYXkgcHJlIGluaXRpYWxpemF0aW9uCiAgKiBAaHc6IHBvaW50ZXIgdG8gdGhl IEhXIHN0cnVjdApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2lj ZV9jb21tb24uaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfY29tbW9uLmgK aW5kZXggNGE3NWMwYzg5MzAxLi45Njk2ZWQ1OWQxYTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfY29tbW9uLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvaW50ZWwvaWNlL2ljZV9jb21tb24uaApAQCAtMjQwLDYgKzI0MCw4IEBAIGljZV9hcV9zZXRf cGh5X3JlY19jbGtfb3V0KHN0cnVjdCBpY2VfaHcgKmh3LCB1OCBwaHlfb3V0cHV0LCBib29sIGVu YWJsZSwKIGludAogaWNlX2FxX2dldF9waHlfcmVjX2Nsa19vdXQoc3RydWN0IGljZV9odyAqaHcs IHU4ICpwaHlfb3V0cHV0LCB1OCAqcG9ydF9udW0sCiAJCQkgICB1OCAqZmxhZ3MsIHUxNiAqbm9k ZV9oYW5kbGUpOworaW50IGljZV9hcV9nZXRfc2Vuc29yX3JlYWRpbmcoc3RydWN0IGljZV9odyAq aHcsCisJCQkgICAgICBzdHJ1Y3QgaWNlX2FxY19nZXRfc2Vuc29yX3JlYWRpbmdfcmVzcCAqZGF0 YSk7CiB2b2lkCiBpY2Vfc3RhdF91cGRhdGU0MChzdHJ1Y3QgaWNlX2h3ICpodywgdTMyIHJlZywg Ym9vbCBwcmV2X3N0YXRfbG9hZGVkLAogCQkgIHU2NCAqcHJldl9zdGF0LCB1NjQgKmN1cl9zdGF0 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24u YyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24uYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE0YjQwNzA2NjNkYgotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24uYwpAQCAtMCww ICsxLDEyNiBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKKy8qIENvcHly aWdodCAoQykgMjAyMywgSW50ZWwgQ29ycG9yYXRpb24uICovCisKKyNpbmNsdWRlICJpY2UuaCIK KyNpbmNsdWRlICJpY2VfaHdtb24uaCIKKyNpbmNsdWRlICJpY2VfYWRtaW5xX2NtZC5oIgorCisj aW5jbHVkZSA8bGludXgvaHdtb24uaD4KKworI2RlZmluZSBURU1QX0ZST01fUkVHKHJlZykgKChy ZWcpICogMTAwMCkKKworc3RhdGljIGNvbnN0IHN0cnVjdCBod21vbl9jaGFubmVsX2luZm8gKmlj ZV9od21vbl9pbmZvW10gPSB7CisJSFdNT05fQ0hBTk5FTF9JTkZPKHRlbXAsCisJCQkgICBIV01P Tl9UX0lOUFVUIHwgSFdNT05fVF9NQVggfAorCQkJICAgSFdNT05fVF9DUklUIHwgSFdNT05fVF9F TUVSR0VOQ1kpLAorCU5VTEwKK307CisKK3N0YXRpYyBpbnQgaWNlX2h3bW9uX3JlYWQoc3RydWN0 IGRldmljZSAqZGV2LCBlbnVtIGh3bW9uX3NlbnNvcl90eXBlcyB0eXBlLAorCQkJICB1MzIgYXR0 ciwgaW50IGNoYW5uZWwsIGxvbmcgKnZhbCkKK3sKKwlzdHJ1Y3QgaWNlX2FxY19nZXRfc2Vuc29y X3JlYWRpbmdfcmVzcCByZXNwOworCXN0cnVjdCBpY2VfcGYgKnBmID0gZGV2X2dldF9kcnZkYXRh KGRldik7CisJaW50IHJldDsKKworCWlmICh0eXBlICE9IGh3bW9uX3RlbXApCisJCXJldHVybiAt RU9QTk9UU1VQUDsKKworCXJldCA9IGljZV9hcV9nZXRfc2Vuc29yX3JlYWRpbmcoJnBmLT5odywg JnJlc3ApOworCWlmIChyZXQpIHsKKwkJZGV2X3dhcm5fcmF0ZWxpbWl0ZWQoZGV2LAorCQkJCSAg ICAgIiVzIEhXIHJlYWQgZmFpbHVyZSAoJWQpXG4iLAorCQkJCSAgICAgX19mdW5jX18sCisJCQkJ ICAgICByZXQpOworCQlyZXR1cm4gcmV0OworCX0KKworCXN3aXRjaCAoYXR0cikgeworCWNhc2Ug aHdtb25fdGVtcF9pbnB1dDoKKwkJKnZhbCA9IFRFTVBfRlJPTV9SRUcocmVzcC5kYXRhLnMwZjAu dGVtcCk7CisJCWJyZWFrOworCWNhc2UgaHdtb25fdGVtcF9tYXg6CisJCSp2YWwgPSBURU1QX0ZS T01fUkVHKHJlc3AuZGF0YS5zMGYwLnRlbXBfd2FybmluZ190aHJlc2hvbGQpOworCQlicmVhazsK KwljYXNlIGh3bW9uX3RlbXBfY3JpdDoKKwkJKnZhbCA9IFRFTVBfRlJPTV9SRUcocmVzcC5kYXRh LnMwZjAudGVtcF9jcml0aWNhbF90aHJlc2hvbGQpOworCQlicmVhazsKKwljYXNlIGh3bW9uX3Rl bXBfZW1lcmdlbmN5OgorCQkqdmFsID0gVEVNUF9GUk9NX1JFRyhyZXNwLmRhdGEuczBmMC50ZW1w X2ZhdGFsX3RocmVzaG9sZCk7CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCWRldl9kYmcoZGV2LCAi JXMgdW5zdXBwb3J0ZWQgYXR0cmlidXRlICglZClcbiIsCisJCQlfX2Z1bmNfXywgYXR0cik7CisJ CXJldHVybiAtRU9QTk9UU1VQUDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHVtb2Rl X3QgaWNlX2h3bW9uX2lzX3Zpc2libGUoY29uc3Qgdm9pZCAqZGF0YSwKKwkJCQkgICAgZW51bSBo d21vbl9zZW5zb3JfdHlwZXMgdHlwZSwgdTMyIGF0dHIsCisJCQkJICAgIGludCBjaGFubmVsKQor eworCWlmICh0eXBlICE9IGh3bW9uX3RlbXApCisJCXJldHVybiAwOworCisJc3dpdGNoIChhdHRy KSB7CisJY2FzZSBod21vbl90ZW1wX2lucHV0OgorCWNhc2UgaHdtb25fdGVtcF9jcml0OgorCWNh c2UgaHdtb25fdGVtcF9tYXg6CisJY2FzZSBod21vbl90ZW1wX2VtZXJnZW5jeToKKwkJcmV0dXJu IDA0NDQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaHdtb25f b3BzIGljZV9od21vbl9vcHMgPSB7CisJLmlzX3Zpc2libGUgPSBpY2VfaHdtb25faXNfdmlzaWJs ZSwKKwkucmVhZCA9IGljZV9od21vbl9yZWFkCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGh3 bW9uX2NoaXBfaW5mbyBpY2VfY2hpcF9pbmZvID0geworCS5vcHMgPSAmaWNlX2h3bW9uX29wcywK KwkuaW5mbyA9IGljZV9od21vbl9pbmZvCit9OworCitzdGF0aWMgYm9vbCBpY2VfaXNfaW50ZXJu YWxfcmVhZGluZ19zdXBwb3J0ZWQoc3RydWN0IGljZV9wZiAqcGYpCit7CisJLyogT25seSB0aGUg Zmlyc3QgUEYgd2lsbCByZXBvcnQgdGVtcGVyYXR1cmUgZm9yIGEgY2hpcC4KKwkgKiBOb3RlIHRo YXQgaW50ZXJuYWwgdGVtcCByZWFkaW5nIGFyZSBub3Qgc3VwcG9ydGVkCisJICogZm9yIG9sZGVy IEZXICg8IHY0LjMwKS4KKwkgKi8KKwlpZiAocGYtPmh3LnBmX2lkKQorCQlyZXR1cm4gZmFsc2U7 CisKKwl1bnNpZ25lZCBsb25nIHNlbnNvcnMgPSBwZi0+aHcuZGV2X2NhcHMuc3VwcG9ydGVkX3Nl bnNvcnM7CisKKwlyZXR1cm4gX3Rlc3RfYml0KElDRV9TRU5TT1JfU1VQUE9SVF9FODEwX0lOVF9U RU1QX0JJVCwgJnNlbnNvcnMpOworfTsKKwordm9pZCBpY2VfaHdtb25faW5pdChzdHJ1Y3QgaWNl X3BmICpwZikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBpY2VfcGZfdG9fZGV2KHBmKTsKKwlz dHJ1Y3QgZGV2aWNlICpoZGV2OworCisJaWYgKCFpY2VfaXNfaW50ZXJuYWxfcmVhZGluZ19zdXBw b3J0ZWQocGYpKQorCQlyZXR1cm47CisKKwloZGV2ID0gaHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dp dGhfaW5mbyhkZXYsICJpY2UiLCBwZiwgJmljZV9jaGlwX2luZm8sCisJCQkJCSAgICAgICBOVUxM KTsKKwlpZiAoSVNfRVJSKGhkZXYpKSB7CisJCWRldl93YXJuKGRldiwKKwkJCSAiaHdtb25fZGV2 aWNlX3JlZ2lzdGVyX3dpdGhfaW5mbyByZXR1cm5zIGVycm9yICglbGQpIiwKKwkJCSBQVFJfRVJS KGhkZXYpKTsKKwkJcmV0dXJuOworCX0KKwlwZi0+aHdtb25fZGV2ID0gaGRldjsKK30KKwordm9p ZCBpY2VfaHdtb25fZXhpdChzdHJ1Y3QgaWNlX3BmICpwZikKK3sKKwlpZiAoIXBmLT5od21vbl9k ZXYpCisJCXJldHVybjsKKwlod21vbl9kZXZpY2VfdW5yZWdpc3RlcihwZi0+aHdtb25fZGV2KTsK K30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24u aCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24uaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ3YWQ1NGUxMjEzNgotLS0gL2Rldi9udWxs CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfaHdtb24uaApAQCAtMCww ICsxLDE1IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCAqLworLyogQ29w eXJpZ2h0IChDKSAyMDIzLCBJbnRlbCBDb3Jwb3JhdGlvbi4gKi8KKworI2lmbmRlZiBfSUNFX0hX TU9OX0hfCisjZGVmaW5lIF9JQ0VfSFdNT05fSF8KKworI2lmIElTX0VOQUJMRUQoQ09ORklHX0hX TU9OKQordm9pZCBpY2VfaHdtb25faW5pdChzdHJ1Y3QgaWNlX3BmICpwZik7Cit2b2lkIGljZV9o d21vbl9leGl0KHN0cnVjdCBpY2VfcGYgKnBmKTsKKyNlbHNlCitzdGF0aWMgdm9pZCBpY2VfaHdt b25faW5pdChzdHJ1Y3QgaWNlX3BmICpwZikgeyB9CitzdGF0aWMgdm9pZCBpY2VfaHdtb25fZXhp dChzdHJ1Y3QgaWNlX3BmICpwZikgeyB9CisjZW5kaWYKKworI2VuZGlmIC8qIF9JQ0VfSFdNT05f SF8gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2ljZS9pY2VfbWFp bi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2ljZV9tYWluLmMKaW5kZXggYTU4 ZGEwMDI0ZmU1Li4wNzFhN2RhNGIzYjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2ludGVsL2ljZS9pY2VfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2lj ZS9pY2VfbWFpbi5jCkBAIC0xNCw2ICsxNCw3IEBACiAjaW5jbHVkZSAiaWNlX2RjYl9saWIuaCIK ICNpbmNsdWRlICJpY2VfZGNiX25sLmgiCiAjaW5jbHVkZSAiaWNlX2RldmxpbmsuaCIKKyNpbmNs dWRlICJpY2VfaHdtb24uaCIKIC8qIEluY2x1ZGluZyBpY2VfdHJhY2UuaCB3aXRoIENSRUFURV9U UkFDRV9QT0lOVFMgZGVmaW5lZCB3aWxsIGdlbmVyYXRlIHRoZQogICogaWNlIHRyYWNlcG9pbnQg ZnVuY3Rpb25zLiBUaGlzIG11c3QgYmUgZG9uZSBleGFjdGx5IG9uY2UgYWNyb3NzIHRoZQogICog aWNlIGRyaXZlci4KQEAgLTQ3ODUsNiArNDc4Niw4IEBAIHN0YXRpYyB2b2lkIGljZV9pbml0X2Zl YXR1cmVzKHN0cnVjdCBpY2VfcGYgKnBmKQogCiAJaWYgKGljZV9pbml0X2xhZyhwZikpCiAJCWRl dl93YXJuKGRldiwgIkZhaWxlZCB0byBpbml0IGxpbmsgYWdncmVnYXRpb24gc3VwcG9ydFxuIik7 CisKKwlpY2VfaHdtb25faW5pdChwZik7CiB9CiAKIHN0YXRpYyB2b2lkIGljZV9kZWluaXRfZmVh dHVyZXMoc3RydWN0IGljZV9wZiAqcGYpCkBAIC01MzEwLDYgKzUzMTMsOCBAQCBzdGF0aWMgdm9p ZCBpY2VfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlpY2VfZnJlZV92ZnMocGYpOwog CX0KIAorCWljZV9od21vbl9leGl0KHBmKTsKKwogCWljZV9zZXJ2aWNlX3Rhc2tfc3RvcChwZik7 CiAJaWNlX2FxX2NhbmNlbF93YWl0aW5nX3Rhc2tzKHBmKTsKIAlzZXRfYml0KElDRV9ET1dOLCBw Zi0+c3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaWNlL2lj ZV90eXBlLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pY2UvaWNlX3R5cGUuaAppbmRl eCA4NzdhOTIwOTllZjAuLjBiNTQyNWQzM2FkZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvaW50ZWwvaWNlL2ljZV90eXBlLmgKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50 ZWwvaWNlL2ljZV90eXBlLmgKQEAgLTM3OCw2ICszNzgsOCBAQCBzdHJ1Y3QgaWNlX2h3X2Z1bmNf Y2FwcyB7CiAJc3RydWN0IGljZV90c19mdW5jX2luZm8gdHNfZnVuY19pbmZvOwogfTsKIAorI2Rl ZmluZSBJQ0VfU0VOU09SX1NVUFBPUlRfRTgxMF9JTlRfVEVNUF9CSVQJMAorCiAvKiBEZXZpY2Ug d2lkZSBjYXBhYmlsaXRpZXMgKi8KIHN0cnVjdCBpY2VfaHdfZGV2X2NhcHMgewogCXN0cnVjdCBp Y2VfaHdfY29tbW9uX2NhcHMgY29tbW9uX2NhcDsKQEAgLTM4Niw2ICszODgsOCBAQCBzdHJ1Y3Qg aWNlX2h3X2Rldl9jYXBzIHsKIAl1MzIgbnVtX2Zsb3dfZGlyZWN0b3JfZmx0cjsJLyogTnVtYmVy IG9mIEZEIGZpbHRlcnMgYXZhaWxhYmxlICovCiAJc3RydWN0IGljZV90c19kZXZfaW5mbyB0c19k ZXZfaW5mbzsKIAl1MzIgbnVtX2Z1bmNzOworCS8qIGJpdG1hcCBvZiBzdXBwb3J0ZWQgc2Vuc29y cyAqLworCXUzMiBzdXBwb3J0ZWRfc2Vuc29yczsKIH07CiAKIC8qIE1BQyBpbmZvICovCgpiYXNl LWNvbW1pdDogYWM0ZGVjM2ZkNjNjN2RhNzAzYzI0NDY5OGZjOTJlZmI0MTFmZjBkNAotLSAKMi4z NS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC13aXJlZC1sYW4gbWFpbGluZyBsaXN0CkludGVsLXdpcmVkLWxhbkBvc3Vvc2wub3JnCmh0dHBz Oi8vbGlzdHMub3N1b3NsLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLXdpcmVkLWxhbgo=