From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 625F56E9A4 for ; Wed, 23 Sep 2020 14:29:09 +0000 (UTC) From: Karthik B S Date: Wed, 23 Sep 2020 19:32:57 +0530 Message-Id: <20200923140258.7553-1-karthik.b.s@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v10 1/2] tests/kms_async_flips: Add test to validate asynchronous flips List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: michel@daenzer.net, daniel.vetter@intel.com, petri.latvala@intel.com List-ID: QXN5bmNocm9ub3VzIGZsaXBzIGFyZSBpc3N1ZWQgdXNpbmcgdGhlIHBhZ2UgZmxpcCBJT0NUTC4K VGhlIHRlc3QgY29uc2lzdHMgb2YgdHdvIHN1YnRlc3RzLiBUaGUgZmlyc3Qgc3VidGVzdCB3YWl0 cyBmb3IKdGhlIHBhZ2UgZmxpcCBldmVudCB0byBiZSByZWNlaXZlZCBiZWZvcmUgZ2l2aW5nIHRo ZSBuZXh0IGZsaXAsCmFuZCB0aGUgc2Vjb25kIHN1YnRlc3QgZG9lc24ndCB3YWl0IGZvciBwYWdl IGZsaXAgZXZlbnRzLgoKVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBJT0NUTCBpcyBzdWNjZXNzZnVs LgoKdjI6IC1BZGQgYXV0aG9ycyBpbiB0aGUgdGVzdCBmaWxlLiAoUGF1bG8pCiAgICAtUmVkdWNl IHRoZSBydW4gdGltZSBhbmQgdGltZW91dHMgdG8gc3VpdCBJR1QgbmVlZHMuIChQYXVsbykKICAg IC1SZXBsYWNlIGlndF9kZWJ1ZydzIHdpdGggaWd0X2Fzc2VydCdzIHRvIGNhdGNoIHNsb3cgZmxp cHMuIChQYXVsbykKICAgIC1Gb2xsb3cgSUdUIGNvZGluZyBzdHlsZSByZWdhcmRpbmcgc3BhY2Vz LiAoUGF1bG8pCiAgICAtTWFrZSBzZXQgdXAgY29kZSBwYXJ0IG9mIGlndF9maXh0dXJlLiAoUGF1 bG8pCiAgICAtU2tpcCB0aGUgdGVzdCBpZiBhc3luYyBmbGlwcyBhcmUgbm90IHN1cHBvcnRlZC4g KFBhdWxvKQogICAgLVJlcGxhY2Ugc3VnZ2VzdGVkLWJ5LiAoUGF1bG8pCiAgICAtQWRkZWQgZGVz Y3JpcHRpb24gZm9yIHRlc3QgYW5kIHN1YnRlc3RzLgoKdjM6IC1SZW5hbWUgdGhlIHRlc3QgdG8g a21zX2FzeW5jX2ZsaXBzLiAoUGF1bG8pCiAgICAtTW9kaWZ5IHRoZSBUT0RPIGNvbW1lbnQuIChQ YXVsbykKICAgIC1SZW1vdmUgaWd0X2RlYnVnIGluIGZsaXBfaGFuZGxlci4gKFBhdWxvKQogICAg LVVzZSBkcm1Jb2N0bCgpIGluIGhhc19hc3luYyBmdW5jdGlvbi4gKFBhdWxvKQogICAgLUFkZCBt b3JlIGRldGFpbHMgaW4gaWd0X2Fzc2VydCBpbiBmbGlwX2hhbmRsZXIuIChQYXVsbykKICAgIC1S ZW1vdmUgZmxhZyB2YXJpYWJsZSBpbiBmbGlwX2hhbmRsZXIuIChQYXVsbykKICAgIC1DYWxsIGln dF9hc3NlcnQgaW4gZmxpcF9oYW5kbGVyIGFmdGVyIHRoZSB3YXJtIHVwIHRpbWUuCgp2NDogLUNh bGN1bGF0ZSB0aGUgdGltZSBzdGFtcCBpbiBmbGlwX2hhbmRsZXIgZnJvbSB1c2Vyc3BhY2UsIGFz IHRoZQogICAgIGtlcm5lbCB3aWxsIHJldHVybiB2YmwgdGltZXN0YW1wcyBhbmQgdGhpcyBjYW5u b3QgYmUgdXNlZAogICAgIGZvciBhc3luYyBmbGlwcy4KICAgIC1BZGQgYSBuZXcgc3VidGVzdCB0 byB2ZXJpZnkgdGhhdCB0aGUgYXN5bmMgZmxpcCB0aW1lIHN0YW1wCiAgICAgbGllcyBpbiBiZXR3 ZWVuIHRoZSBwcmV2aW91cyBhbmQgbmV4dCB2YmxhbmsgdGltZSBzdGFtcC4gKERhbmllbCkKCnY1 OiAtQWRkIHRlc3QgdGhhdCBhbHRlcm5hdGVzIGJldHdlZW4gc3luYyBhbmQgYXN5bmMgZmxpcHMu IChWaWxsZSkKICAgIC1BZGQgdGVzdCB0byB2ZXJpZnkgaW52YWxpZCBhc3luYyBmbGlwcy4gKFZp bGxlKQogICAgLVJlbW92ZSB0aGUgc3VidGVzdCBhc3luYy1mbGlwLXdpdGhvdXQtcGFnZS1mbGlw LWV2ZW50cy4gKE1pY2hlbCkKICAgIC1SZW1vdmUgdGhlIGludGVsIGdwdSByZXN0cmljdGlvbiBh bmQgbWFrZSB0aGUgdGVzdCBnZW5lcmljLiAoTWljaGVsKQoKdjY6IC1DaGFuZ2UgdGhlIFRIUkVT SE9MRCBmcm9tIDEwIHRvIDggYXMgZmFpbHVyZXMgYXJlIHNlZW4gb24gQ0kKICAgICBvbiBwbGF0 Zm9ybXMgPD0gZ2VuMTAuCiAgICAtSW4gb2xkZXIgcGxhdGZvcm1zKDw9IGdlbjEwKSwgYXN5bmMg YWRkcmVzcyB1cGRhdGUgYml0IGluIHBsYW5lIGN0bAogICAgIGlzIGRvdWJsZSBidWZmZXJlZC4g TWFkZSBjaGFuZ2VzIGluIHN1YnRlc3RzIHRvIGFjY29tb2RhdGUgdGhpcy4KICAgIC1Nb3ZlZCB0 aGUgaWd0X2Fzc2VydCBmcm9tIGZsaXBfaGFuZGxlciB0byBpbmRpdmlkdWFsIHN1YnRlc3QgYXMg d2UKICAgICBub3cgaGF2ZSBmb3VyIHN1YnRlc3RzIGFuZCBhZGRpbmcgY29uZGl0aW9ucyBmb3Ig dGhlIGFzc2VydCBpbgogICAgIGZsaXAgaGFuZGxlciBpcyBtZXNzeS4KCnY3OiAtQ2hhbmdlIGZs aXBfaW50ZXJ2YWwgZnJvbSBpbnQgdG8gZmxvYXQgZm9yIG1vcmUgcHJlY2lzaW9uLgogICAgLVJl bW92ZSB0aGUgZmIgaGVpZ2h0IGNoYW5nZSBjYXNlIGluICdpbnZhbGlkJyBzdWJ0ZXN0IGFzIHBl ciB0aGUKICAgICBmZWVkYmFjayByZWNlaXZlZCBvbiB0aGUga2VybmVsIHBhdGNoZXMuCiAgICAt QWRkIHN1YnRlc3QgdG8gdmVyaWZ5IGxlZ2FjeSBjdXJzb3IgSU9DVEwuIChWaWxsZSkKCnY4OiAt QWRkIGEgY3Vyc29yIGZsaXAgYmVmb3JlIGFzeW5jIGZsaXAgaW4gY3Vyc29yIHRlc3QuIChWaWxs ZSkKICAgIC1NYWtlIGZsaXBfaW50ZXJ2YWwgZG91YmxlIGZvciBtb3JlIHByZWNpc2lvbiBhcyBm YWlsdXJlcyBhcmUgc2VlbgogICAgIG9uIG9sZGVyIHBsYXRmb3JtcyBvbiBDSS4KCnY5OiAtUmVw bGFjZSBCVUZTIG1hY3JvLiAoVmlsbGUpCiAgICAtUXVlcnkgY3Vyc29yIHJlc29sdXRpb24gZnJv bSB0aGUga2VybmVsLiAoVmlsbGUpCiAgICAtUmVuYW1lIFRIUkVTSE9MRCB0byBNSU5fRkxJUFNf UEVSX0ZSQU1FLiAoVmlsbGUpCiAgICAtVXNlIFhSR0I4ODg4IGluc3RlYWQgb2YgQVJHQjg4ODgu IChWaWxsZSkKICAgIC1SZW5hbWUgaGFzX21vbm90b25pY190aW1lc3RhbXAgdG8gcmVxdWlyZV9t b25vdG9uaWNfdGltZXN0YW1wLiAoVmlsbGUpCiAgICAtTWFrZSBsb2dpYyBpbiBhbHRlcm5hdGVf c3luY19hc3luYyBzdWJ0ZXN0IG1vcmUgcmVhZGFibGUuIChWaWxsZSkKICAgIC1SZW5hbWUgZ2V0 X3ZibF90aW1lc3RhbXBfdXMoKSBmdW5jdGlvbi4gKFZpbGxlKQogICAgLVJlbmFtZSBoYXNfYXN5 bmMoKSB0byBoYXNfYXN5bmNfZmxpcC4gKFZpbGxlKQogICAgLU1ha2UgZGF0YV90IHN0YXRpYy4g KFZpbGxlKQogICAgLUZpeCBsZWFraW5nIGZiIGFuZCByZXMgcG9pbnRlcnMuIChWaWxsZSkKICAg IC1SZW1vdmUgYXN5bmNfY2FwYWJsZSB2YXJpYWJsZS4gKFZpbGxlKQogICAgLU1vdmUgaW5pdGlh bGl6YXRpb24gdG8gYSBmdW5jdGlvbi4gKFZpbGxlKQogICAgLUhhdmUgYSBnZW5lcmljIGhhc19k cm1fY2FwKCkgaGVscGVyLiAoVmlsbGUpCiAgICAtV2FybSB1cCBsb2dpYyByZW1vdmVkLgogICAg LUFkZGVkIFRPRE8ncyBmb3IgZm9sbG93IHVwIHdvcmsuCgp2MTA6IC1Nb3ZlIGZsaXAgdGltZXN0 YW1wcyBpbnNpZGUgZGF0YV90LiAoVmlsbGUpCiAgICAgLVJlbW92ZSB0aGUgcmVkdW5kYW50IGZp cnN0IGZsaXAgaW4gaW52YWxpZCBzdWJ0ZXN0LiAoVmlsbGUpCgpTaWduZWQtb2ZmLWJ5OiBQYXVs byBaYW5vbmkgPHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogS2FydGhp ayBCIFMgPGthcnRoaWsuYi5zQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2Vz ICB8ICAgMSArCiB0ZXN0cy9rbXNfYXN5bmNfZmxpcHMuYyB8IDQyNyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgICB8ICAgMSAr CiAzIGZpbGVzIGNoYW5nZWQsIDQyOSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMva21zX2FzeW5jX2ZsaXBzLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCA2YWU5NTE1NS4uZjMyZWE5Y2YgMTAw NjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291 cmNlcwpAQCAtMzIsNiArMzIsNyBAQCBURVNUU19wcm9ncyA9IFwKIAlmZWF0dXJlX2Rpc2NvdmVy eSBcCiAJa21zXzNkIFwKIAlrbXNfYWRkZmJfYmFzaWMgXAorCWttc19hc3luY19mbGlwcyBcCiAJ a21zX2F0b21pYyBcCiAJa21zX2F0b21pY19pbnRlcnJ1cHRpYmxlIFwKIAlrbXNfYXRvbWljX3Ry YW5zaXRpb24gXApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2FzeW5jX2ZsaXBzLmMgYi90ZXN0cy9r bXNfYXN5bmNfZmxpcHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uZDVh OWM3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfYXN5bmNfZmxpcHMuYwpAQCAtMCww ICsxLDQyNyBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDIwIEludGVsIENvcnBvcmF0aW9uCisg KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIEF1dGhv cnM6CisgKiAgUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CisgKiAgS2Fy dGhpayBCIFMgPGthcnRoaWsuYi5zQGludGVsLmNvbT4KKyAqLworCisjaW5jbHVkZSAiaWd0Lmgi CisjaW5jbHVkZSAiaWd0X2F1eC5oIgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUg PHN5cy90aW1lLmg+CisjaW5jbHVkZSA8cG9sbC5oPgorCisjZGVmaW5lIENVUlNPUl9QT1MgMTI4 CisKKy8qCisgKiBUaGVzZSBjb25zdGFudHMgY2FuIGJlIHR1bmVkIGluIGNhc2Ugd2Ugc3RhcnQg Z2V0dGluZyB1bmV4cGVjdGVkCisgKiByZXN1bHRzIGluIENJLgorICovCisKKyNkZWZpbmUgUlVO X1RJTUUgMgorI2RlZmluZSBNSU5fRkxJUFNfUEVSX0ZSQU1FIDgKKworSUdUX1RFU1RfREVTQ1JJ UFRJT04oIlRlc3QgYXN5bmNocm9ub3VzIHBhZ2UgZmxpcHMuIik7CisKK3R5cGVkZWYgc3RydWN0 IHsKKwlpbnQgZHJtX2ZkOworCXVpbnQzMl90IGNydGNfaWQ7CisJdWludDMyX3QgcmVmcmVzaF9y YXRlOworCXN0cnVjdCBpZ3RfZmIgYnVmc1s0XTsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJ ZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3I7CisJdW5zaWduZWQgbG9uZyBmbGlwX3RpbWVz dGFtcF91czsKKwlkb3VibGUgZmxpcF9pbnRlcnZhbDsKK30gZGF0YV90OworCitzdGF0aWMgZHJt TW9kZUNvbm5lY3RvclB0ciBmaW5kX2Nvbm5lY3Rvcl9mb3JfbW9kZXNldChkYXRhX3QgKmRhdGEp Cit7CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZHJtTW9kZUNvbm5lY3RvclB0ciByZXQgPSBO VUxMOworCisJZm9yX2VhY2hfY29ubmVjdGVkX291dHB1dCgmZGF0YS0+ZGlzcGxheSwgb3V0cHV0 KSB7CisJCWlmIChvdXRwdXQtPmNvbmZpZy5jb25uZWN0b3ItPmNvdW50X21vZGVzID4gMCkgewor CQkJcmV0ID0gb3V0cHV0LT5jb25maWcuY29ubmVjdG9yOworCQkJYnJlYWs7CisJCX0KKwl9CisK KwlpZ3RfYXNzZXJ0X2YocmV0LCAiQ29ubmVjdG9yIE5PVCBmb3VuZFxuIik7CisJcmV0dXJuIHJl dDsKK30KKworc3RhdGljIHZvaWQgZmxpcF9oYW5kbGVyKGludCBmZF8sIHVuc2lnbmVkIGludCBz ZXF1ZW5jZSwgdW5zaWduZWQgaW50IHR2X3NlYywKKwkJCSB1bnNpZ25lZCBpbnQgdHZfdXNlYywg dm9pZCAqX2RhdGEpCit7CisJZGF0YV90ICpkYXRhID0gX2RhdGE7CisJc3RhdGljIGRvdWJsZSBs YXN0X21zOworCWRvdWJsZSBjdXJfbXM7CisJc3RydWN0IHRpbWVzcGVjIHRzOworCisJY2xvY2tf Z2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cyk7CisKKwljdXJfbXMgPSAgdHMudHZfc2VjICog MTAwMC4wICsgdHMudHZfbnNlYyAvIDEwMDAwMDAuMDsKKworCWlmIChsYXN0X21zKQorCQlkYXRh LT5mbGlwX2ludGVydmFsID0gY3VyX21zIC0gbGFzdF9tczsKKwllbHNlCisJCWRhdGEtPmZsaXBf aW50ZXJ2YWwgPSAwOworCisJbGFzdF9tcyA9IGN1cl9tczsKKworCWRhdGEtPmZsaXBfdGltZXN0 YW1wX3VzID0gdHMudHZfc2VjICogMTAwMDAwMCArIHRzLnR2X25zZWMgLyAxMDAwOworfQorCitz dGF0aWMgdm9pZCB3YWl0X2ZsaXBfZXZlbnQoZGF0YV90ICpkYXRhKQoreworCWludCByZXQ7CisJ ZHJtRXZlbnRDb250ZXh0IGV2Y3R4OworCXN0cnVjdCBwb2xsZmQgcGZkOworCisJZXZjdHgudmVy c2lvbiA9IDI7CisJZXZjdHgudmJsYW5rX2hhbmRsZXIgPSBOVUxMOworCWV2Y3R4LnBhZ2VfZmxp cF9oYW5kbGVyID0gZmxpcF9oYW5kbGVyOworCisJcGZkLmZkID0gZGF0YS0+ZHJtX2ZkOworCXBm ZC5ldmVudHMgPSBQT0xMSU47CisJcGZkLnJldmVudHMgPSAwOworCisJcmV0ID0gcG9sbCgmcGZk LCAxLCAyMDAwKTsKKworCXN3aXRjaCAocmV0KSB7CisJY2FzZSAwOgorCQlpZ3RfYXNzZXJ0X2Yo MCwgIkZsaXAgVGltZW91dFxuIik7CisJCWJyZWFrOworCWNhc2UgMToKKwkJcmV0ID0gZHJtSGFu ZGxlRXZlbnQoZGF0YS0+ZHJtX2ZkLCAmZXZjdHgpOworCQlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsK KwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJLyogdW5leHBlY3RlZCAqLworCQlpZ3RfYXNzZXJ0KDAp OworCX0KK30KKworc3RhdGljIHZvaWQgbWFrZV9mYihkYXRhX3QgKmRhdGEsIHN0cnVjdCBpZ3Rf ZmIgKmZiLAorCQkgICAgZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3IsIGludCBpbmRleCkK K3sKKwl1aW50MzJfdCB3aWR0aCwgaGVpZ2h0OworCWludCByZWNfd2lkdGg7CisKKwl3aWR0aCA9 IGNvbm5lY3Rvci0+bW9kZXNbMF0uaGRpc3BsYXk7CisJaGVpZ2h0ID0gY29ubmVjdG9yLT5tb2Rl c1swXS52ZGlzcGxheTsKKworCXJlY193aWR0aCA9IHdpZHRoIC8gKEFSUkFZX1NJWkUoZGF0YS0+ YnVmcykgKiAyKTsKKworCWlndF9jcmVhdGVfZmIoZGF0YS0+ZHJtX2ZkLCB3aWR0aCwgaGVpZ2h0 LCBEUk1fRk9STUFUX1hSR0I4ODg4LAorCQkgICAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9U SUxFRCwgZmIpOworCWlndF9kcmF3X2ZpbGxfZmIoZGF0YS0+ZHJtX2ZkLCBmYiwgMHg4OCk7CisJ aWd0X2RyYXdfcmVjdF9mYihkYXRhLT5kcm1fZmQsIE5VTEwsIE5VTEwsIGZiLCBJR1RfRFJBV19N TUFQX0NQVSwKKwkJCSByZWNfd2lkdGggKiAyICsgcmVjX3dpZHRoICogaW5kZXgsCisJCQkgaGVp Z2h0IC8gNCwgcmVjX3dpZHRoLAorCQkJIGhlaWdodCAvIDIsIHJhbmQoKSk7Cit9CisKK3N0YXRp YyB2b2lkIHJlcXVpcmVfbW9ub3RvbmljX3RpbWVzdGFtcChpbnQgZmQpCit7CisJc3RydWN0IGRy bV9nZXRfY2FwIGNhcCA9IHsgLmNhcGFiaWxpdHkgPSBEUk1fQ0FQX1RJTUVTVEFNUF9NT05PVE9O SUMgfTsKKworCWlndF9yZXF1aXJlX2YoaWd0X2hhc19kcm1fY2FwKGZkLCBjYXApLCAiTW9ub3Rv bmljIHRpbWVzdGFtcHMgbm90IHN1cHBvcnRlZFxuIik7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3Rf YXN5bmNfZmxpcChkYXRhX3QgKmRhdGEsIGJvb2wgYWx0ZXJuYXRlX3N5bmNfYXN5bmMpCit7CisJ aW50IHJldCwgZnJhbWU7CisJbG9uZyBsb25nIGludCBmcHM7CisJc3RydWN0IHRpbWV2YWwgc3Rh cnQsIGVuZCwgZGlmZjsKKworCXJlcXVpcmVfbW9ub3RvbmljX3RpbWVzdGFtcChkYXRhLT5kcm1f ZmQpOworCisJZ2V0dGltZW9mZGF5KCZzdGFydCwgTlVMTCk7CisJZnJhbWUgPSAxOworCWRvIHsK KwkJaW50IGZsYWdzID0gRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIHwgRFJNX01PREVfUEFHRV9G TElQX0VWRU5UOworCisJCWlmIChhbHRlcm5hdGVfc3luY19hc3luYykgeworCQkJZmxhZ3MgJj0g fkRSTV9NT0RFX1BBR0VfRkxJUF9BU1lOQzsKKworCQkJcmV0ID0gZHJtTW9kZVBhZ2VGbGlwKGRh dGEtPmRybV9mZCwgZGF0YS0+Y3J0Y19pZCwKKwkJCQkJICAgICAgZGF0YS0+YnVmc1tmcmFtZSAl IDRdLmZiX2lkLAorCQkJCQkgICAgICBmbGFncywgZGF0YSk7CisKKwkJCWlndF9hc3NlcnQocmV0 ID09IDApOworCisJCQl3YWl0X2ZsaXBfZXZlbnQoZGF0YSk7CisKKwkJCWZsYWdzIHw9IERSTV9N T0RFX1BBR0VfRkxJUF9BU1lOQzsKKworCQkJLyoKKwkJCSAqIEluIG9sZGVyIHBsYXRmb3JtcyAo PD0gR2VuMTApLCBhc3luYyBhZGRyZXNzIHVwZGF0ZSBiaXQgaXMgZG91YmxlIGJ1ZmZlcmVkLgor CQkJICogU28gZmxpcCB0aW1lc3RhbXAgY2FuIGJlIHZlcmlmaWVkIG9ubHkgZnJvbSB0aGUgc2Vj b25kIGZsaXAuCisJCQkgKiBUaGUgZmlyc3QgYXN5bmMgZmxpcCBqdXN0IGVuYWJsZXMgdGhlIGFz eW5jIGFkZHJlc3MgdXBkYXRlLgorCQkJICovCisJCQlpZiAoaXNfaTkxNV9kZXZpY2UoZGF0YS0+ ZHJtX2ZkKSkgeworCQkJCXVpbnQzMl90IGRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRh LT5kcm1fZmQpOworCisJCQkJaWYgKElTX0dFTjkoZGV2aWQpIHx8IElTX0dFTjEwKGRldmlkKSkg eworCQkJCQlyZXQgPSBkcm1Nb2RlUGFnZUZsaXAoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5jcnRjX2lk LAorCQkJCQkJCSAgICAgIGRhdGEtPmJ1ZnNbZnJhbWUgJSA0XS5mYl9pZCwKKwkJCQkJCQkgICAg ICBmbGFncywgZGF0YSk7CisKKwkJCQkJaWd0X2Fzc2VydChyZXQgPT0gMCk7CisKKwkJCQkJd2Fp dF9mbGlwX2V2ZW50KGRhdGEpOworCQkJCX0KKwkJCX0KKwkJfQorCisJCXJldCA9IGRybU1vZGVQ YWdlRmxpcChkYXRhLT5kcm1fZmQsIGRhdGEtPmNydGNfaWQsCisJCQkJICAgICAgZGF0YS0+YnVm c1tmcmFtZSAlIDRdLmZiX2lkLAorCQkJCSAgICAgIGZsYWdzLCBkYXRhKTsKKworCQlpZ3RfYXNz ZXJ0KHJldCA9PSAwKTsKKworCQl3YWl0X2ZsaXBfZXZlbnQoZGF0YSk7CisKKwkJZ2V0dGltZW9m ZGF5KCZlbmQsIE5VTEwpOworCQl0aW1lcnN1YigmZW5kLCAmc3RhcnQsICZkaWZmKTsKKworCQlp Z3RfYXNzZXJ0X2YoZGF0YS0+ZmxpcF9pbnRlcnZhbCA8IDEwMDAuMCAvIChkYXRhLT5yZWZyZXNo X3JhdGUgKiBNSU5fRkxJUFNfUEVSX0ZSQU1FKSwKKwkJCSAgICAgIkZsaXAgaW50ZXJ2YWwgbm90 IHNpZ25pZmljYW50bHkgc21hbGxlciB0aGFuIHZibGFuayBpbnRlcnZhbFxuIgorCQkJICAgICAi RmxpcCBpbnRlcnZhbDogJWxmbXMsIFJlZnJlc2ggUmF0ZSA9ICVkSHosIFRocmVzaG9sZCA9ICVk XG4iLAorCQkJICAgICBkYXRhLT5mbGlwX2ludGVydmFsLCBkYXRhLT5yZWZyZXNoX3JhdGUsIE1J Tl9GTElQU19QRVJfRlJBTUUpOworCisJCWZyYW1lKys7CisJfSB3aGlsZSAoZGlmZi50dl9zZWMg PCBSVU5fVElNRSk7CisKKwlpZiAoIWFsdGVybmF0ZV9zeW5jX2FzeW5jKSB7CisJCWZwcyA9IGZy YW1lICogMTAwMCAvIFJVTl9USU1FOworCQlpZ3RfYXNzZXJ0X2YoKGZwcyAvIDEwMDApID4gKGRh dGEtPnJlZnJlc2hfcmF0ZSAqIE1JTl9GTElQU19QRVJfRlJBTUUpLAorCQkJICAgICAiRlBTIHNo b3VsZCBiZSBzaWduaWZpY2FudGx5IGhpZ2hlciB0aGFuIHRoZSByZWZyZXNoIHJhdGVcbiIpOwor CX0KK30KKworc3RhdGljIHZvaWQgd2FpdF9mb3JfdmJsYW5rKGRhdGFfdCAqZGF0YSwgdW5zaWdu ZWQgbG9uZyAqdmJsX3RpbWUsIHVuc2lnbmVkIGludCAqc2VxKQoreworCWRybVZCbGFuayB3YWl0 X3ZibDsKKwl1aW50MzJfdCBwaXBlX2lkX2ZsYWc7CisJaW50IHBpcGU7CisKKwltZW1zZXQoJndh aXRfdmJsLCAwLCBzaXplb2Yod2FpdF92YmwpKTsKKwlwaXBlID0ga21zdGVzdF9nZXRfcGlwZV9m cm9tX2NydGNfaWQoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5jcnRjX2lkKTsKKwlwaXBlX2lkX2ZsYWcg PSBrbXN0ZXN0X2dldF92YmxfZmxhZyhwaXBlKTsKKworCXdhaXRfdmJsLnJlcXVlc3QudHlwZSA9 IERSTV9WQkxBTktfUkVMQVRJVkUgfCBwaXBlX2lkX2ZsYWc7CisJd2FpdF92YmwucmVxdWVzdC5z ZXF1ZW5jZSA9IDE7CisKKwlpZ3RfYXNzZXJ0KGRybUlvY3RsKGRhdGEtPmRybV9mZCwgRFJNX0lP Q1RMX1dBSVRfVkJMQU5LLCAmd2FpdF92YmwpID09IDApOworCSp2YmxfdGltZSA9IHdhaXRfdmJs LnJlcGx5LnR2YWxfc2VjICogMTAwMDAwMCArIHdhaXRfdmJsLnJlcGx5LnR2YWxfdXNlYzsKKwkq c2VxID0gd2FpdF92YmwucmVwbHkuc2VxdWVuY2U7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RfdGlt ZXN0YW1wKGRhdGFfdCAqZGF0YSkKK3sKKwlpbnQgZmxhZ3MgPSBEUk1fTU9ERV9QQUdFX0ZMSVBf QVNZTkMgfCBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQ7CisJdW5zaWduZWQgbG9uZyB2YmxfdGlt ZSwgdmJsX3RpbWUxOworCXVuc2lnbmVkIGludCBzZXEsIHNlcTE7CisJaW50IHJldDsKKworCXJl cXVpcmVfbW9ub3RvbmljX3RpbWVzdGFtcChkYXRhLT5kcm1fZmQpOworCisJLyoKKwkgKiBJbiBv bGRlciBwbGF0Zm9ybXMoPD0gZ2VuMTApLCBhc3luYyBhZGRyZXNzIHVwZGF0ZSBiaXQgaXMgZG91 YmxlIGJ1ZmZlcmVkLgorCSAqIFNvIGZsaXAgdGltZXN0YW1wIGNhbiBiZSB2ZXJpZmllZCBvbmx5 IGZyb20gdGhlIHNlY29uZCBmbGlwLgorCSAqIFRoZSBmaXJzdCBhc3luYyBmbGlwIGp1c3QgZW5h YmxlcyB0aGUgYXN5bmMgYWRkcmVzcyB1cGRhdGUuCisJICovCisJcmV0ID0gZHJtTW9kZVBhZ2VG bGlwKGRhdGEtPmRybV9mZCwgZGF0YS0+Y3J0Y19pZCwKKwkJCSAgICAgIGRhdGEtPmJ1ZnNbMF0u ZmJfaWQsCisJCQkgICAgICBmbGFncywgZGF0YSk7CisKKwlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsK KworCXdhaXRfZmxpcF9ldmVudChkYXRhKTsKKworCXdhaXRfZm9yX3ZibGFuayhkYXRhLCAmdmJs X3RpbWUsICZzZXEpOworCisJcmV0ID0gZHJtTW9kZVBhZ2VGbGlwKGRhdGEtPmRybV9mZCwgZGF0 YS0+Y3J0Y19pZCwKKwkJCSAgICAgIGRhdGEtPmJ1ZnNbMF0uZmJfaWQsCisJCQkgICAgICBmbGFn cywgZGF0YSk7CisKKwlpZ3RfYXNzZXJ0KHJldCA9PSAwKTsKKworCXdhaXRfZmxpcF9ldmVudChk YXRhKTsKKworCXdhaXRfZm9yX3ZibGFuayhkYXRhLCAmdmJsX3RpbWUxLCAmc2VxMSk7CisKKwkv KiBUT0RPOiBNYWtlIGNoYW5nZXMgdG8gZG8gYXMgbWFueSBmbGlwcyBhcyBwb3NzYmlsZSBiZXR3 ZWVuIHR3byB2YmxhbmtzICovCisKKwlpZ3RfYXNzZXJ0X2Yoc2VxMSA9PSBzZXEgKyAxLAorCQkg ICAgICJWYmxhbmsgc2VxdWVuY2UgaXMgZXhwZWN0ZWQgdG8gYmUgaW5jcmVtZW50ZWQgYnkgb25l KCVkICE9ICglZCArIDEpXG4iLCBzZXExLCBzZXEpOworCisJaWd0X2luZm8oInZibDFfdGltZXN0 YW1wID0gJWxkdXNcbmZsaXBfdGltZXN0YW1wID0gJWxkdXNcbnZibDJfdGltZXN0YW1wID0gJWxk dXNcbiIsCisJCSB2YmxfdGltZSwgZGF0YS0+ZmxpcF90aW1lc3RhbXBfdXMsIHZibF90aW1lMSk7 CisKKwlpZ3RfYXNzZXJ0X2YodmJsX3RpbWUgPCBkYXRhLT5mbGlwX3RpbWVzdGFtcF91cyAmJiB2 YmxfdGltZTEgPiBkYXRhLT5mbGlwX3RpbWVzdGFtcF91cywKKwkJICAgICAiQXN5bmMgZmxpcCB0 aW1lIHN0YW1wIGlzIGV4cGVjdGVkIHRvIGJlIGluIGJldHdlZW4gMiB2YmxhbmsgdGltZSBzdGFt cHNcbiIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2N1cnNvcihkYXRhX3QgKmRhdGEpCit7CisJ aW50IGZsYWdzID0gRFJNX01PREVfUEFHRV9GTElQX0FTWU5DIHwgRFJNX01PREVfUEFHRV9GTElQ X0VWRU5UOworCWludCByZXQ7CisJdWludDY0X3Qgd2lkdGgsIGhlaWdodDsKKwlzdHJ1Y3QgaWd0 X2ZiIGN1cnNvcl9mYjsKKwlzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yIGN1cjsKKworCWRvX29yX2Rp ZShkcm1HZXRDYXAoZGF0YS0+ZHJtX2ZkLCBEUk1fQ0FQX0NVUlNPUl9XSURUSCwgJndpZHRoKSk7 CisJZG9fb3JfZGllKGRybUdldENhcChkYXRhLT5kcm1fZmQsIERSTV9DQVBfQ1VSU09SX1dJRFRI LCAmaGVpZ2h0KSk7CisKKwlpZ3RfY3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgd2lkdGgs IGhlaWdodCwgRFJNX0ZPUk1BVF9BUkdCODg4OCwKKwkJCSAgICBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLCAxLiwgMS4sIDEuLCAmY3Vyc29yX2ZiKTsKKworCWN1ci5mbGFncyA9IERSTV9NT0RF X0NVUlNPUl9CTzsKKwljdXIuY3J0Y19pZCA9IGRhdGEtPmNydGNfaWQ7CisJY3VyLndpZHRoID0g d2lkdGg7CisJY3VyLmhlaWdodCA9IGhlaWdodDsKKwljdXIuaGFuZGxlID0gY3Vyc29yX2ZiLmdl bV9oYW5kbGU7CisKKwlkb19pb2N0bChkYXRhLT5kcm1fZmQsIERSTV9JT0NUTF9NT0RFX0NVUlNP UiwgJmN1cik7CisKKwlyZXQgPSBkcm1Nb2RlUGFnZUZsaXAoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5j cnRjX2lkLAorCQkJICAgICAgZGF0YS0+YnVmc1swXS5mYl9pZCwKKwkJCSAgICAgIGZsYWdzLCBk YXRhKTsKKworCWlndF9hc3NlcnQocmV0ID09IDApOworCisJd2FpdF9mbGlwX2V2ZW50KGRhdGEp OworCisJY3VyLmZsYWdzID0gRFJNX01PREVfQ1VSU09SX01PVkU7CisJY3VyLnggPSBDVVJTT1Jf UE9TOworCWN1ci55ID0gQ1VSU09SX1BPUzsKKworCWRvX2lvY3RsKGRhdGEtPmRybV9mZCwgRFJN X0lPQ1RMX01PREVfQ1VSU09SLCAmY3VyKTsKKworCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2Zk LCAmY3Vyc29yX2ZiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9pbnZhbGlkKGRhdGFfdCAqZGF0 YSkKK3sKKwlpbnQgZmxhZ3MgPSBEUk1fTU9ERV9QQUdFX0ZMSVBfQVNZTkMgfCBEUk1fTU9ERV9Q QUdFX0ZMSVBfRVZFTlQ7CisJaW50IHJldDsKKwl1aW50MzJfdCB3aWR0aCwgaGVpZ2h0OworCXN0 cnVjdCBpZ3RfZmIgZmI7CisKKwl3aWR0aCA9IGRhdGEtPmNvbm5lY3Rvci0+bW9kZXNbMF0uaGRp c3BsYXk7CisJaGVpZ2h0ID0gZGF0YS0+Y29ubmVjdG9yLT5tb2Rlc1swXS52ZGlzcGxheTsKKwor CWlndF9jcmVhdGVfZmIoZGF0YS0+ZHJtX2ZkLCB3aWR0aCwgaGVpZ2h0LCBEUk1fRk9STUFUX1hS R0I4ODg4LAorCQkgICAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWV9USUxFRCwgJmZiKTsKKwor CS8qIEZsaXAgd2l0aCBhIGRpZmZlcmVudCBmYiBtb2RpZmllciB3aGljaCBpcyBleHBlY3RlZCB0 byBiZSByZWplY3RlZCAqLworCXJldCA9IGRybU1vZGVQYWdlRmxpcChkYXRhLT5kcm1fZmQsIGRh dGEtPmNydGNfaWQsCisJCQkgICAgICBmYi5mYl9pZCwgZmxhZ3MsIGRhdGEpOworCisJaWd0X2Fz c2VydChyZXQgPT0gLUVJTlZBTCk7CisKKwkvKiBUT0RPOiBBZGQgdmVyaWZpY2F0aW9uIGZvciBj aGFuZ2VzIGluIHN0cmlkZSwgcGl4ZWwgZm9ybWF0ICovCisKKwlpZ3RfcmVtb3ZlX2ZiKGRhdGEt PmRybV9mZCwgJmZiKTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9pbml0KGRhdGFfdCAqZGF0YSkK K3sKKwlkcm1Nb2RlUmVzUHRyIHJlczsKKwlpbnQgaSwgcmV0OworCisJcmVzID0gZHJtTW9kZUdl dFJlc291cmNlcyhkYXRhLT5kcm1fZmQpOworCWlndF9hc3NlcnQocmVzKTsKKworCWttc3Rlc3Rf dW5zZXRfYWxsX2NydGNzKGRhdGEtPmRybV9mZCwgcmVzKTsKKworCWRhdGEtPmNvbm5lY3RvciA9 IGZpbmRfY29ubmVjdG9yX2Zvcl9tb2Rlc2V0KGRhdGEpOworCWRhdGEtPmNydGNfaWQgPSBrbXN0 ZXN0X2ZpbmRfY3J0Y19mb3JfY29ubmVjdG9yKGRhdGEtPmRybV9mZCwKKwkJCQkJCQlyZXMsIGRh dGEtPmNvbm5lY3RvciwgMCk7CisKKwlkYXRhLT5yZWZyZXNoX3JhdGUgPSBkYXRhLT5jb25uZWN0 b3ItPm1vZGVzWzBdLnZyZWZyZXNoOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0 YS0+YnVmcyk7IGkrKykKKwkJbWFrZV9mYihkYXRhLCAmZGF0YS0+YnVmc1tpXSwgZGF0YS0+Y29u bmVjdG9yLCBpKTsKKworCXJldCA9IGRybU1vZGVTZXRDcnRjKGRhdGEtPmRybV9mZCwgZGF0YS0+ Y3J0Y19pZCwgZGF0YS0+YnVmc1swXS5mYl9pZCwgMCwgMCwKKwkJCSAgICAgJmRhdGEtPmNvbm5l Y3Rvci0+Y29ubmVjdG9yX2lkLCAxLCAmZGF0YS0+Y29ubmVjdG9yLT5tb2Rlc1swXSk7CisKKwlp Z3RfYXNzZXJ0KHJldCA9PSAwKTsKKworCWRybU1vZGVGcmVlUmVzb3VyY2VzKHJlcyk7Cit9CisK K2lndF9tYWluCit7CisJc3RhdGljIGRhdGFfdCBkYXRhOworCWludCBpOworCisJaWd0X2ZpeHR1 cmUgeworCQlzdHJ1Y3QgZHJtX2dldF9jYXAgY2FwID0geyAuY2FwYWJpbGl0eSA9IERSTV9DQVBf QVNZTkNfUEFHRV9GTElQIH07CisKKwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFz dGVyKERSSVZFUl9BTlkpOworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7CisJCWln dF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOworCQlpZ3RfZGlz cGxheV9yZXF1aXJlX291dHB1dCgmZGF0YS5kaXNwbGF5KTsKKworCQlpZ3RfcmVxdWlyZV9mKGln dF9oYXNfZHJtX2NhcChkYXRhLmRybV9mZCwgY2FwKSwgIkFzeW5jIEZsaXAgaXMgbm90IHN1cHBv cnRlZFxuIik7CisJfQorCisJaWd0X2Rlc2NyaWJlKCJWZXJpZnkgdGhlIGFzeW5jIGZsaXAgZnVu Y3Rpb25hbGl0eSBhbmQgdGhlIGZwcyBkdXJpbmcgYXN5bmMgZmxpcHMiKTsKKwlpZ3Rfc3VidGVz dF9ncm91cCB7CisJCWlndF9maXh0dXJlCisJCQl0ZXN0X2luaXQoJmRhdGEpOworCisJCWlndF9k ZXNjcmliZSgiV2FpdCBmb3IgcGFnZSBmbGlwIGV2ZW50cyBpbiBiZXR3ZWVuIHN1Y2Nlc3NpdmUg YXN5bmNocm9ub3VzIGZsaXBzIik7CisJCWlndF9zdWJ0ZXN0KCJhc3luYy1mbGlwLXdpdGgtcGFn ZS1mbGlwLWV2ZW50cyIpCisJCQl0ZXN0X2FzeW5jX2ZsaXAoJmRhdGEsIGZhbHNlKTsKKworCQlp Z3RfZGVzY3JpYmUoIkFsdGVybmF0ZSBiZXR3ZWVuIHN5bmMgYW5kIGFzeW5jIGZsaXBzIik7CisJ CWlndF9zdWJ0ZXN0KCJhbHRlcm5hdGUtc3luYy1hc3luYy1mbGlwIikKKwkJCXRlc3RfYXN5bmNf ZmxpcCgmZGF0YSwgdHJ1ZSk7CisKKwkJaWd0X2Rlc2NyaWJlKCJWZXJpZnkgdGhhdCB0aGUgYXN5 bmMgZmxpcCB0aW1lc3RhbXAgZG9lcyBub3QgY29pbmNpZGUgd2l0aCBlaXRoZXIgcHJldmlvdXMg b3IgbmV4dCB2YmxhbmsiKTsKKwkJaWd0X3N1YnRlc3QoInRlc3QtdGltZS1zdGFtcCIpCisJCQl0 ZXN0X3RpbWVzdGFtcCgmZGF0YSk7CisKKwkJaWd0X2Rlc2NyaWJlKCJWZXJpZnkgdGhhdCB0aGUg RFJNX0lPQ1RMX01PREVfQ1VSU09SIHBhc3NlcyBhZnRlciBhc3luYyBmbGlwIik7CisJCWlndF9z dWJ0ZXN0KCJ0ZXN0LWN1cnNvciIpCisJCQl0ZXN0X2N1cnNvcigmZGF0YSk7CisKKwkJaWd0X2Rl c2NyaWJlKCJOZWdhdGl2ZSBjYXNlIHRvIHZlcmlmeSBpZiBjaGFuZ2VzIGluIGZiIGFyZSByZWpl Y3RlZCBmcm9tIGtlcm5lbCBhcyBleHBlY3RlZCIpOworCQlpZ3Rfc3VidGVzdCgiaW52YWxpZC1h c3luYy1mbGlwIikKKwkJCXRlc3RfaW52YWxpZCgmZGF0YSk7CisKKwkJaWd0X2ZpeHR1cmUgewor CQkJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZGF0YS5idWZzKTsgaSsrKQorCQkJCWlndF9y ZW1vdmVfZmIoZGF0YS5kcm1fZmQsICZkYXRhLmJ1ZnNbaV0pOworCQl9CisJfQorCisJaWd0X2Zp eHR1cmUKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsKK30KZGlmZiAtLWdpdCBh L3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQKaW5kZXggNWViMmQyZmMuLjUx NWY3NTI4IDEwMDY0NAotLS0gYS90ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5i dWlsZApAQCAtMTYsNiArMTYsNyBAQCB0ZXN0X3Byb2dzID0gWwogCSdmZWF0dXJlX2Rpc2NvdmVy eScsCiAJJ2ttc18zZCcsCiAJJ2ttc19hZGRmYl9iYXNpYycsCisJJ2ttc19hc3luY19mbGlwcycs CiAJJ2ttc19hdG9taWMnLAogCSdrbXNfYXRvbWljX2ludGVycnVwdGlibGUnLAogCSdrbXNfYXRv bWljX3RyYW5zaXRpb24nLAotLSAKMi4yMi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndC1kZXYK