From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: Re: [PATCH 5/5] drm/i915: add support for perf configuration queries Date: Thu, 23 May 2019 13:32:02 +0300 Message-ID: <20190523103202.GN19380@kadam> References: <20190521140855.3957-6-lionel.g.landwerlin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) by gabe.freedesktop.org (Postfix) with ESMTPS id 76AD489D86 for ; Thu, 23 May 2019 10:32:14 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190521140855.3957-6-lionel.g.landwerlin@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: kbuild@01.org, Lionel Landwerlin Cc: intel-gfx@lists.freedesktop.org, kbuild-all@01.org List-Id: intel-gfx@lists.freedesktop.org SGkgTGlvbmVsLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2ghIFBlcmhhcHMgc29tZXRoaW5nIHRv IGltcHJvdmU6Cgp1cmw6ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS8wZGF5LWNpL2xpbnV4L2NvbW1p dHMvTGlvbmVsLUxhbmR3ZXJsaW4vZHJtLWk5MTUtVnVsa2FuLXBlcmZvcm1hbmNlLXF1ZXJ5LXN1 cHBvcnQvMjAxOTA1MjItMDgzMTE1CmJhc2U6ICAgZ2l0Oi8vYW5vbmdpdC5mcmVlZGVza3RvcC5v cmcvZHJtLWludGVsIGZvci1saW51eC1uZXh0CgpJZiB5b3UgZml4IHRoZSBpc3N1ZSwga2luZGx5 IGFkZCBmb2xsb3dpbmcgdGFnClJlcG9ydGVkLWJ5OiBrYnVpbGQgdGVzdCByb2JvdCA8bGtwQGlu dGVsLmNvbT4KUmVwb3J0ZWQtYnk6IERhbiBDYXJwZW50ZXIgPGRhbi5jYXJwZW50ZXJAb3JhY2xl LmNvbT4KCnNtYXRjaCB3YXJuaW5nczoKZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9xdWVyeS5j OjI5MCBxdWVyeV9wZXJmX2NvbmZpZ19kYXRhKCkgd2FybjogaW5jb25zaXN0ZW50IHJldHVybnMg J211dGV4OiZpOTE1LT5wZXJmLm1ldHJpY3NfbG9jaycuCiAgTG9ja2VkIG9uOiAgIGxpbmUgMjIw CiAgVW5sb2NrZWQgb246IGxpbmUgMTcwCgojIGh0dHBzOi8vZ2l0aHViLmNvbS8wZGF5LWNpL2xp bnV4L2NvbW1pdC8yZGY1Yzc4NzQxYzQ0YWRhNGUwYjNiN2IwMTY5MjNjYmJiMzBhYjc2CmdpdCBy ZW1vdGUgYWRkIGxpbnV4LXJldmlldyBodHRwczovL2dpdGh1Yi5jb20vMGRheS1jaS9saW51eApn aXQgcmVtb3RlIHVwZGF0ZSBsaW51eC1yZXZpZXcKZ2l0IGNoZWNrb3V0IDJkZjVjNzg3NDFjNDRh ZGE0ZTBiM2I3YjAxNjkyM2NiYmIzMGFiNzYKdmltICsyOTAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9xdWVyeS5jCgoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAxODcg IAlpZiAoX19nZXRfdXNlcihmbGFncywgJnVzZXJfcXVlcnlfY29uZmlnX3B0ci0+ZmxhZ3MpKQoy ZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAxODggIAkJcmV0dXJuIC1FRkFV TFQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDE4OSAgCjJkZjVjNzg3 IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDE5MCAgCWlmIChmbGFncyAhPSAwKQoyZGY1 Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAxOTEgIAkJcmV0dXJuIC1FSU5WQUw7 CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDE5MiAgCjJkZjVjNzg3IExp b25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDE5MyAgCXJldCA9IG11dGV4X2xvY2tfaW50ZXJy dXB0aWJsZSgmaTkxNS0+cGVyZi5tZXRyaWNzX2xvY2spOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoKTG9jawoKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJs aW4gMjAxOS0wNS0yMSAgMTk0ICAJaWYgKHJldCkKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4g MjAxOS0wNS0yMSAgMTk1ICAJCXJldHVybiByZXQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGlu IDIwMTktMDUtMjEgIDE5NiAgCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEg IDE5NyAgCWlmICh1c2VfdXVpZCkgewoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1 LTIxICAxOTggIAkJY2hhciB1dWlkW1VVSURfU1RSSU5HX0xFTiArIDFdID0geyAwLCB9OwoyZGY1 Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAxOTkgIAkJc3RydWN0IGk5MTVfb2Ff Y29uZmlnICp0bXA7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIwMCAg CQlpbnQgaWQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIwMSAgCjJk ZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIwMiAgCQlCVUlMRF9CVUdfT04o c2l6ZW9mKHVzZXJfcXVlcnlfY29uZmlnX3B0ci0+dXVpZCkgPj0gc2l6ZW9mKHV1aWQpKTsKMmRm NWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjAzICAKMmRmNWM3ODcgTGlvbmVs IExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjA0ICAJCWlmIChfX2NvcHlfZnJvbV91c2VyKHV1aWQs IHVzZXJfcXVlcnlfY29uZmlnX3B0ci0+dXVpZCwKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4g MjAxOS0wNS0yMSAgMjA1ICAJCQkJICAgICBzaXplb2YodXNlcl9xdWVyeV9jb25maWdfcHRyLT51 dWlkKSkpIHsKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjA2ICAJCQly ZXQgPSAtRUZBVUxUOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMDcg IAkJCWdvdG8gb3V0OwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMDgg IAkJfQoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMDkgIAoyZGY1Yzc4 NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMTAgIAkJaWRyX2Zvcl9lYWNoX2VudHJ5 KCZpOTE1LT5wZXJmLm1ldHJpY3NfaWRyLCB0bXAsIGlkKSB7CjJkZjVjNzg3IExpb25lbCBMYW5k d2VybGluIDIwMTktMDUtMjEgIDIxMSAgCQkJaWYgKCFzdHJjbXAodG1wLT51dWlkLCB1dWlkKSkg ewoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMTIgIAkJCQlvYV9jb25m aWcgPSB0bXA7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIxMyAgCQkJ CWJyZWFrOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMTQgIAkJCX0K MmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjE1ICAJCX0KMmRmNWM3ODcg TGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjE2ICAJfSBlbHNlIHsKMmRmNWM3ODcgTGlv bmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjE3ICAJCXU2NCBjb25maWdfaWQ7CjJkZjVjNzg3 IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIxOCAgCjJkZjVjNzg3IExpb25lbCBMYW5k d2VybGluIDIwMTktMDUtMjEgIDIxOSAgCQlpZiAoX19nZXRfdXNlcihjb25maWdfaWQsICZ1c2Vy X3F1ZXJ5X2NvbmZpZ19wdHItPmNvbmZpZykpCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIw MTktMDUtMjEgIDIyMCAgCQkJcmV0dXJuIC1FRkFVTFQ7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXl5eXl5eXl5eXgpU aGlzIG5lZWRzIHRvIGJlICJnb3RvIG91dDsiCgoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAy MDE5LTA1LTIxICAyMjEgIAoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAy MjIgIAkJaWYgKGNvbmZpZ19pZCA9PSAxKQoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5 LTA1LTIxICAyMjMgIAkJCW9hX2NvbmZpZyA9ICZpOTE1LT5wZXJmLm9hLnRlc3RfY29uZmlnOwoy ZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMjQgIAkJZWxzZQoyZGY1Yzc4 NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMjUgIAkJCW9hX2NvbmZpZyA9IGlkcl9m aW5kKCZpOTE1LT5wZXJmLm1ldHJpY3NfaWRyLCBjb25maWdfaWQpOwoyZGY1Yzc4NyBMaW9uZWwg TGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMjYgIAl9CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGlu IDIwMTktMDUtMjEgIDIyNyAgCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEg IDIyOCAgCWlmICghb2FfY29uZmlnKSB7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTkt MDUtMjEgIDIyOSAgCQlyZXQgPSAtRU5PRU5UOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAy MDE5LTA1LTIxICAyMzAgIAkJZ290byBvdXQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIw MTktMDUtMjEgIDIzMSAgCX0KMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAg MjMyICAKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjMzICAJaWYgKF9f Y29weV9mcm9tX3VzZXIoJnVzZXJfY29uZmlnLCB1c2VyX2NvbmZpZ19wdHIsCjJkZjVjNzg3IExp b25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIzNCAgCQkJICAgICBzaXplb2YodXNlcl9jb25m aWcpKSkgewoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMzUgIAkJcmV0 ID0gLUVGQVVMVDsKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjM2ICAJ CWdvdG8gb3V0OwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyMzcgIAl9 CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIzOCAgCjJkZjVjNzg3IExp b25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDIzOSAgCXJldCA9IGNhbl9jb3B5X3BlcmZfY29u ZmlnX3JlZ2lzdGVyc19vcl9udW1iZXIodXNlcl9jb25maWcubl9ib29sZWFuX3JlZ3MsCjJkZjVj Nzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI0MCAgCQkJCQkJICAgICAgIHVzZXJf Y29uZmlnLmJvb2xlYW5fcmVnc19wdHIsCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTkt MDUtMjEgIDI0MSAgCQkJCQkJICAgICAgIG9hX2NvbmZpZy0+Yl9jb3VudGVyX3JlZ3NfbGVuKTsK MmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjQyICAJaWYgKHJldCkKMmRm NWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjQzICAJCWdvdG8gb3V0OwoyZGY1 Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNDQgIAoyZGY1Yzc4NyBMaW9uZWwg TGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNDUgIAlyZXQgPSBjYW5fY29weV9wZXJmX2NvbmZpZ19y ZWdpc3RlcnNfb3JfbnVtYmVyKHVzZXJfY29uZmlnLm5fZmxleF9yZWdzLAoyZGY1Yzc4NyBMaW9u ZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNDYgIAkJCQkJCSAgICAgICB1c2VyX2NvbmZpZy5m bGV4X3JlZ3NfcHRyLAoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNDcg IAkJCQkJCSAgICAgICBvYV9jb25maWctPmZsZXhfcmVnc19sZW4pOwoyZGY1Yzc4NyBMaW9uZWwg TGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNDggIAlpZiAocmV0KQoyZGY1Yzc4NyBMaW9uZWwgTGFu ZHdlcmxpbiAyMDE5LTA1LTIxICAyNDkgIAkJZ290byBvdXQ7CjJkZjVjNzg3IExpb25lbCBMYW5k d2VybGluIDIwMTktMDUtMjEgIDI1MCAgCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTkt MDUtMjEgIDI1MSAgCXJldCA9IGNhbl9jb3B5X3BlcmZfY29uZmlnX3JlZ2lzdGVyc19vcl9udW1i ZXIodXNlcl9jb25maWcubl9tdXhfcmVncywKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAx OS0wNS0yMSAgMjUyICAJCQkJCQkgICAgICAgdXNlcl9jb25maWcubXV4X3JlZ3NfcHRyLAoyZGY1 Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNTMgIAkJCQkJCSAgICAgICBvYV9j b25maWctPm11eF9yZWdzX2xlbik7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUt MjEgIDI1NCAgCWlmIChyZXQpCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEg IDI1NSAgCQlnb3RvIG91dDsKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAg MjU2ICAKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjU3ICAJcmV0ID0g Y29weV9wZXJmX2NvbmZpZ19yZWdpc3RlcnNfb3JfbnVtYmVyKG9hX2NvbmZpZy0+Yl9jb3VudGVy X3JlZ3MsCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI1OCAgCQkJCQkJ ICAgb2FfY29uZmlnLT5iX2NvdW50ZXJfcmVnc19sZW4sCjJkZjVjNzg3IExpb25lbCBMYW5kd2Vy bGluIDIwMTktMDUtMjEgIDI1OSAgCQkJCQkJICAgdXNlcl9jb25maWcuYm9vbGVhbl9yZWdzX3B0 ciwKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjYwICAJCQkJCQkgICAm dXNlcl9jb25maWcubl9ib29sZWFuX3JlZ3MpOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAy MDE5LTA1LTIxICAyNjEgIAlpZiAocmV0KQoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5 LTA1LTIxICAyNjIgIAkJZ290byBvdXQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTkt MDUtMjEgIDI2MyAgCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI2NCAg CXJldCA9IGNvcHlfcGVyZl9jb25maWdfcmVnaXN0ZXJzX29yX251bWJlcihvYV9jb25maWctPmZs ZXhfcmVncywKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjY1ICAJCQkJ CQkgICBvYV9jb25maWctPmZsZXhfcmVnc19sZW4sCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGlu IDIwMTktMDUtMjEgIDI2NiAgCQkJCQkJICAgdXNlcl9jb25maWcuZmxleF9yZWdzX3B0ciwKMmRm NWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjY3ICAJCQkJCQkgICAmdXNlcl9j b25maWcubl9mbGV4X3JlZ3MpOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIx ICAyNjggIAlpZiAocmV0KQoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAy NjkgIAkJZ290byBvdXQ7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI3 MCAgCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI3MSAgCXJldCA9IGNv cHlfcGVyZl9jb25maWdfcmVnaXN0ZXJzX29yX251bWJlcihvYV9jb25maWctPm11eF9yZWdzLAoy ZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAyNzIgIAkJCQkJCSAgIG9hX2Nv bmZpZy0+bXV4X3JlZ3NfbGVuLAoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIx ICAyNzMgIAkJCQkJCSAgIHVzZXJfY29uZmlnLm11eF9yZWdzX3B0ciwKMmRmNWM3ODcgTGlvbmVs IExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjc0ICAJCQkJCQkgICAmdXNlcl9jb25maWcubl9tdXhf cmVncyk7CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI3NSAgCWlmIChy ZXQpCjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI3NiAgCQlnb3RvIG91 dDsKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjc3ICAKMmRmNWM3ODcg TGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjc4ICAJbWVtY3B5KHVzZXJfY29uZmlnLnV1 aWQsIG9hX2NvbmZpZy0+dXVpZCwgc2l6ZW9mKHVzZXJfY29uZmlnLnV1aWQpKTsKMmRmNWM3ODcg TGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjc5ICAKMmRmNWM3ODcgTGlvbmVsIExhbmR3 ZXJsaW4gMjAxOS0wNS0yMSAgMjgwICAJaWYgKF9fY29weV90b191c2VyKHVzZXJfY29uZmlnX3B0 ciwgJnVzZXJfY29uZmlnLAoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAyMDE5LTA1LTIxICAy ODEgIAkJCSAgIHNpemVvZih1c2VyX2NvbmZpZykpKSB7CjJkZjVjNzg3IExpb25lbCBMYW5kd2Vy bGluIDIwMTktMDUtMjEgIDI4MiAgCQlyZXQgPSAtRUZBVUxUOwoyZGY1Yzc4NyBMaW9uZWwgTGFu ZHdlcmxpbiAyMDE5LTA1LTIxICAyODMgIAkJZ290byBvdXQ7CjJkZjVjNzg3IExpb25lbCBMYW5k d2VybGluIDIwMTktMDUtMjEgIDI4NCAgCX0KMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAx OS0wNS0yMSAgMjg1ICAKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjg2 ICAJcmV0ID0gdG90YWxfc2l6ZTsKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0y MSAgMjg3ICAKMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAgMjg4ICBvdXQ6 CjJkZjVjNzg3IExpb25lbCBMYW5kd2VybGluIDIwMTktMDUtMjEgIDI4OSAgCW11dGV4X3VubG9j aygmaTkxNS0+cGVyZi5tZXRyaWNzX2xvY2spOwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAy MDE5LTA1LTIxIEAyOTAgIAlyZXR1cm4gcmV0OwoyZGY1Yzc4NyBMaW9uZWwgTGFuZHdlcmxpbiAy MDE5LTA1LTIxICAyOTEgIH0KMmRmNWM3ODcgTGlvbmVsIExhbmR3ZXJsaW4gMjAxOS0wNS0yMSAg MjkyICAKCi0tLQowLURBWSBrZXJuZWwgdGVzdCBpbmZyYXN0cnVjdHVyZSAgICAgICAgICAgICAg ICBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpodHRwczovL2xpc3RzLjAxLm9yZy9waXBl cm1haWwva2J1aWxkLWFsbCAgICAgICAgICAgICAgICAgICBJbnRlbCBDb3Jwb3JhdGlvbgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=