From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,08/10] hikey960: Support usb functionality of Hikey960 From: Chunfeng Yun Message-Id: <1550544615.2210.27.camel@mhfsdcap03> Date: Tue, 19 Feb 2019 10:50:15 +0800 To: Yu Chen Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, john.stultz@linaro.org, suzhuangluan@hisilicon.com, kongfei@hisilicon.com, liuyu712@hisilicon.com, wanghu17@hisilicon.com, butao@hisilicon.com, chenyao11@huawei.com, fangshengzhou@hisilicon.com, lipengcheng8@huawei.com, songxiaowei@hisilicon.com, xuyiping@hisilicon.com, xuyoujun4@huawei.com, yudongbin@hisilicon.com, zangleigang@hisilicon.com, Andy Shevchenko , Arnd Bergmann , Greg Kroah-Hartman , Binghui Wang , Heikki Krogerus List-ID: SGksCk9uIE1vbiwgMjAxOS0wMi0xOCBhdCAxOToyMyArMDgwMCwgWXUgQ2hlbiB3cm90ZToKPiBU aGlzIGRyaXZlciBoYW5kbGVzIHVzYiBodWIgcG93ZXIgb24gYW5kIHR5cGVDIHBvcnQgZXZlbnQg b2YgSGlLZXk5NjAgYm9hcmQ6Cj4gMSlEUCZETSBzd2l0Y2hpbmcgYmV0d2VlbiB1c2IgaHViIGFu ZCB0eXBlQyBwb3J0IGJhc2Ugb24gdHlwZUMgcG9ydAo+IHN0YXRlCj4gMilDb250cm9sIHBvd2Vy IG9mIHVzYiBodWIgb24gSGlrZXk5NjAKPiAzKUNvbnRyb2wgdmJ1cyBvZiB0eXBlQyBwb3J0Cj4g Cj4gQ2M6IEFuZHkgU2hldmNoZW5rbyA8YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4KPiBDYzog QXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KPiBDYzogR3JlZyBLcm9haC1IYXJ0bWFuIDxn cmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KPiBDYzogSm9obiBTdHVsdHogPGpvaG4uc3R1bHR6 QGxpbmFyby5vcmc+Cj4gQ2M6IEJpbmdodWkgV2FuZyA8d2FuZ2JpbmdodWlAaGlzaWxpY29uLmNv bT4KPiBDYzogSGVpa2tpIEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29t Pgo+IFNpZ25lZC1vZmYtYnk6IFl1IENoZW4gPGNoZW55dTU2QGh1YXdlaS5jb20+Cj4gCj4gLS0t Cj4gdjE6Cj4gKiBVc2luZyBncGlvZCBBUEkgd2l0aCB0aGUgZ3Bpb3MuCj4gKiBSZW1vdmluZyBy ZWdpc3RlcmluZyB1c2Igcm9sZSBzd2l0Y2guCj4gKiBSZWdpc3RlcmluZyB1c2Igcm9sZSBzd2l0 Y2ggbm90aWZpZXIuCj4gdjI6Cj4gKiBGaXggbGljZW5zZSBkZWNsYXJhdGlvbi4KPiAqIEFkZCBj b25maWd1cmF0aW9uIG9mICBncGlvIGRpcmVjdGlvbi4KPiAqIFJlbW92ZSBzb21lIGxvZyBwcmlu dC4KPiAtLS0KPiAtLS0KPiAgZHJpdmVycy9taXNjL0tjb25maWcgICAgICAgICAgfCAgIDYgKysK PiAgZHJpdmVycy9taXNjL01ha2VmaWxlICAgICAgICAgfCAgIDEgKwo+ICBkcml2ZXJzL21pc2Mv aGlzaV9oaWtleV91c2IuYyB8IDE4MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9ucygrKQo+ICBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9taXNjL2hpc2lfaGlrZXlfdXNiLmMKPiAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9taXNjL0tjb25maWcgYi9kcml2ZXJzL21pc2MvS2NvbmZpZwo+IGluZGV4IGY0 MTdiMDZlMTFjNS4uOGQ4YjcxNzc1OWUyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWlzYy9LY29u ZmlnCj4gKysrIGIvZHJpdmVycy9taXNjL0tjb25maWcKPiBAQCAtNTIxLDYgKzUyMSwxMiBAQCBj b25maWcgUFZQQU5JQwo+ICAJICBhIHBhcmF2aXJ0dWFsaXplZCBkZXZpY2UgcHJvdmlkZWQgYnkg UUVNVTsgaXQgbGV0cyBhIHZpcnR1YWwgbWFjaGluZQo+ICAJICAoZ3Vlc3QpIGNvbW11bmljYXRl IHBhbmljIGV2ZW50cyB0byB0aGUgaG9zdC4KPiAgCj4gK2NvbmZpZyBISVNJX0hJS0VZX1VTQgo+ ICsJdHJpc3RhdGUgIlVTQiBmdW5jdGlvbmFsaXR5IG9mIEhpU2lsaWNvbiBIaWtleSBQbGF0Zm9y bSIKPiArCWRlcGVuZHMgb24gT0YgJiYgR1BJT0xJQgo+ICsJaGVscAo+ICsJICBJZiB5b3Ugc2F5 IHllcyBoZXJlIHlvdSBnZXQgc3VwcG9ydCBmb3IgdXNiIGZ1bmN0aW9uYWxpdHkgb2YgSGlTaWxp Y29uIEhpa2V5IFBsYXRmb3JtLgo+ICsKPiAgc291cmNlICJkcml2ZXJzL21pc2MvYzJwb3J0L0tj b25maWciCj4gIHNvdXJjZSAiZHJpdmVycy9taXNjL2VlcHJvbS9LY29uZmlnIgo+ICBzb3VyY2Ug ImRyaXZlcnMvbWlzYy9jYjcxMC9LY29uZmlnIgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2Mv TWFrZWZpbGUgYi9kcml2ZXJzL21pc2MvTWFrZWZpbGUKPiBpbmRleCBlMzljY2JiYzFiM2EuLmRj ODg5MmIxM2ExYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21pc2MvTWFrZWZpbGUKPiArKysgYi9k cml2ZXJzL21pc2MvTWFrZWZpbGUKPiBAQCAtNTksMyArNTksNCBAQCBvYmotJChDT05GSUdfUENJ X0VORFBPSU5UX1RFU1QpCSs9IHBjaV9lbmRwb2ludF90ZXN0Lm8KPiAgb2JqLSQoQ09ORklHX09D WEwpCQkrPSBvY3hsLwo+ICBvYmoteQkJCQkrPSBjYXJkcmVhZGVyLwo+ICBvYmotJChDT05GSUdf UFZQQU5JQykgICAJKz0gcHZwYW5pYy5vCj4gK29iai0kKENPTkZJR19ISVNJX0hJS0VZX1VTQikJ Kz0gaGlzaV9oaWtleV91c2Iubwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21pc2MvaGlzaV9oaWtl eV91c2IuYyBiL2RyaXZlcnMvbWlzYy9oaXNpX2hpa2V5X3VzYi5jCj4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwMDAuLjcwMDEzZjhlNzZmMAo+IC0tLSAvZGV2L251bGwK PiArKysgYi9kcml2ZXJzL21pc2MvaGlzaV9oaWtleV91c2IuYwo+IEBAIC0wLDAgKzEsMTgxIEBA Cj4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gKy8qCj4gKyAqIFN1cHBv cnQgZm9yIHVzYiBmdW5jdGlvbmFsaXR5IG9mIEhpa2V5IHNlcmllcyBib2FyZHMKPiArICogYmFz ZWQgb24gSGlzaWxpY29uIEtpcmluIFNvYy4KPiArICoKPiArICogQ29weXJpZ2h0IChDKSAyMDE3 LTIwMTggSGlsaXNpY29uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgo+ICsgKgkJaHR0cDovL3d3dy5o dWF3ZWkuY29tCj4gKyAqCj4gKyAqIEF1dGhvcnM6IFl1IENoZW4gPGNoZW55dTU2QGh1YXdlaS5j b20+Cj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L2dwaW8vY29uc3VtZXIuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNp bmNsdWRlIDxsaW51eC9ub3RpZmllci5oPgo+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5o Pgo+ICsjaW5jbHVkZSA8bGludXgvdXNiL3JvbGUuaD4KPiArCj4gKyNkZWZpbmUgREVWSUNFX0RS SVZFUl9OQU1FICJoaXNpX2hpa2V5X3VzYiIKPiArCj4gKyNkZWZpbmUgSFVCX1ZCVVNfUE9XRVJf T04gMQo+ICsjZGVmaW5lIEhVQl9WQlVTX1BPV0VSX09GRiAwCj4gKyNkZWZpbmUgVVNCX1NXSVRD SF9UT19IVUIgMQo+ICsjZGVmaW5lIFVTQl9TV0lUQ0hfVE9fVFlQRUMgMAo+ICsKPiArc3RydWN0 IGhpc2lfaGlrZXlfdXNiIHsKPiArCXN0cnVjdCBncGlvX2Rlc2MgKm90Z19zd2l0Y2g7Cj4gKwlz dHJ1Y3QgZ3Bpb19kZXNjICp0eXBlY192YnVzOwo+ICsJc3RydWN0IGdwaW9fZGVzYyAqaHViX3Zi dXM7Cj4gKwlpbnQgdHlwZWNfdmJ1c19lbmFibGVfdmFsOwo+ICsKPiArCXN0cnVjdCB1c2Jfcm9s ZV9zd2l0Y2ggKnJvbGVfc3c7Cj4gKwlzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgbmI7Cj4gK307Cj4g Kwo+ICtzdGF0aWMgdm9pZCBodWJfcG93ZXJfY3RybChzdHJ1Y3QgaGlzaV9oaWtleV91c2IgKmhp c2lfaGlrZXlfdXNiLCBpbnQgdmFsdWUpCj4gK3sKPiArCWdwaW9kX3NldF92YWx1ZV9jYW5zbGVl cChoaXNpX2hpa2V5X3VzYi0+aHViX3ZidXMsIHZhbHVlKTsKPiArfQo+ICsKPiArc3RhdGljIHZv aWQgdXNiX3N3aXRjaF9jdHJsKHN0cnVjdCBoaXNpX2hpa2V5X3VzYiAqaGlzaV9oaWtleV91c2Is Cj4gKwkJaW50IHN3aXRjaF90bykKPiArewo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVwKGhp c2lfaGlrZXlfdXNiLT5vdGdfc3dpdGNoLCBzd2l0Y2hfdG8pOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCB1c2JfdHlwZWNfcG93ZXJfY3RybChzdHJ1Y3QgaGlzaV9oaWtleV91c2IgKmhpc2lfaGlr ZXlfdXNiLAo+ICsJCWludCB2YWx1ZSkKPiArewo+ICsJZ3Bpb2Rfc2V0X3ZhbHVlX2NhbnNsZWVw KGhpc2lfaGlrZXlfdXNiLT50eXBlY192YnVzLCB2YWx1ZSk7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgaGlzaV9oaWtleV9yb2xlX3N3aXRjaChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAo+ICsJ CQl1bnNpZ25lZCBsb25nIHN0YXRlLCB2b2lkICpkYXRhKQo+ICt7Cj4gKwlzdHJ1Y3QgaGlzaV9o aWtleV91c2IgKmhpc2lfaGlrZXlfdXNiOwo+ICsKPiArCWhpc2lfaGlrZXlfdXNiID0gY29udGFp bmVyX29mKG5iLCBzdHJ1Y3QgaGlzaV9oaWtleV91c2IsIG5iKTsKPiArCj4gKwlzd2l0Y2ggKHN0 YXRlKSB7Cj4gKwljYXNlIFVTQl9ST0xFX05PTkU6Cj4gKwkJdXNiX3R5cGVjX3Bvd2VyX2N0cmwo aGlzaV9oaWtleV91c2IsCj4gKwkJCQkhaGlzaV9oaWtleV91c2ItPnR5cGVjX3ZidXNfZW5hYmxl X3ZhbCk7Cj4gKwkJdXNiX3N3aXRjaF9jdHJsKGhpc2lfaGlrZXlfdXNiLCBVU0JfU1dJVENIX1RP X0hVQik7Cj4gKwkJaHViX3Bvd2VyX2N0cmwoaGlzaV9oaWtleV91c2IsIEhVQl9WQlVTX1BPV0VS X09OKTsKPiArCQlicmVhazsKPiArCWNhc2UgVVNCX1JPTEVfSE9TVDoKPiArCQl1c2Jfc3dpdGNo X2N0cmwoaGlzaV9oaWtleV91c2IsIFVTQl9TV0lUQ0hfVE9fVFlQRUMpOwo+ICsJCXVzYl90eXBl Y19wb3dlcl9jdHJsKGhpc2lfaGlrZXlfdXNiLAo+ICsJCQkJaGlzaV9oaWtleV91c2ItPnR5cGVj X3ZidXNfZW5hYmxlX3ZhbCk7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIFVTQl9ST0xFX0RFVklDRToK PiArCQlodWJfcG93ZXJfY3RybChoaXNpX2hpa2V5X3VzYiwgSFVCX1ZCVVNfUE9XRVJfT0ZGKTsK PiArCQl1c2JfdHlwZWNfcG93ZXJfY3RybChoaXNpX2hpa2V5X3VzYiwKPiArCQkJCSFoaXNpX2hp a2V5X3VzYi0+dHlwZWNfdmJ1c19lbmFibGVfdmFsKTsKPiArCQl1c2Jfc3dpdGNoX2N0cmwoaGlz aV9oaWtleV91c2IsIFVTQl9TV0lUQ0hfVE9fVFlQRUMpOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVs dDoKPiArCQlicmVhazsKPiArCX0KPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGlj IGludCBoaXNpX2hpa2V5X3VzYl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ ICt7Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+ICsJc3RydWN0IGRldmlj ZV9ub2RlICpyb290ID0gZGV2LT5vZl9ub2RlOwo+ICsJc3RydWN0IGhpc2lfaGlrZXlfdXNiICpo aXNpX2hpa2V5X3VzYjsKPiArCWludCByZXQ7Cj4gKwo+ICsJaGlzaV9oaWtleV91c2IgPSBkZXZt X2t6YWxsb2MoZGV2LCBzaXplb2YoKmhpc2lfaGlrZXlfdXNiKSwgR0ZQX0tFUk5FTCk7Cj4gKwlp ZiAoIWhpc2lfaGlrZXlfdXNiKQo+ICsJCXJldHVybiAtRU5PTUVNOwo+ICsKPiArCWhpc2lfaGlr ZXlfdXNiLT5uYi5ub3RpZmllcl9jYWxsID0gaGlzaV9oaWtleV9yb2xlX3N3aXRjaDsKPiArCj4g KwlyZXQgPSBvZl9wcm9wZXJ0eV9yZWFkX3UzMihyb290LCAidHlwZWMtdmJ1cy1lbmFibGUtdmFs IiwKPiArCQkJCSAgICZoaXNpX2hpa2V5X3VzYi0+dHlwZWNfdmJ1c19lbmFibGVfdmFsKTsKPiAr CWlmIChyZXQpCj4gKwkJaGlzaV9oaWtleV91c2ItPnR5cGVjX3ZidXNfZW5hYmxlX3ZhbCA9IDE7 Cj4gKwo+ICsJaGlzaV9oaWtleV91c2ItPnR5cGVjX3ZidXMgPSBkZXZtX2dwaW9kX2dldChkZXYs ICJ0eXBlYy12YnVzIiwKPiArCQkJaGlzaV9oaWtleV91c2ItPnR5cGVjX3ZidXNfZW5hYmxlX3Zh bCA/Cj4gKwkJCUdQSU9EX09VVF9MT1cgOiBHUElPRF9PVVRfSElHSCk7Cj4gKwlpZiAoIWhpc2lf aGlrZXlfdXNiLT50eXBlY192YnVzKQo+ICsJCXJldHVybiAtRU5PRU5UOwo+ICsJZWxzZSBpZiAo SVNfRVJSKGhpc2lfaGlrZXlfdXNiLT50eXBlY192YnVzKSkKPiArCQlyZXR1cm4gUFRSX0VSUiho aXNpX2hpa2V5X3VzYi0+dHlwZWNfdmJ1cyk7Cj4gKwo+ICsJZ3Bpb2RfZGlyZWN0aW9uX291dHB1 dChoaXNpX2hpa2V5X3VzYi0+dHlwZWNfdmJ1cywKPiArCQkJIWhpc2lfaGlrZXlfdXNiLT50eXBl Y192YnVzX2VuYWJsZV92YWwpOwptYXliZSBhIHNpbXBsZSB3YXkgaWYgdXNlIGZpeGVkIHJlZ3Vs YXRvcj8KCj4gKwo+ICsJaGlzaV9oaWtleV91c2ItPm90Z19zd2l0Y2ggPSBkZXZtX2dwaW9kX2dl dChkZXYsICJvdGctc3dpdGNoIiwgR1BJT0RfSU4pOwo+ICsJaWYgKCFoaXNpX2hpa2V5X3VzYi0+ b3RnX3N3aXRjaCkKPiArCQlyZXR1cm4gLUVOT0VOVDsKPiArCWVsc2UgaWYgKElTX0VSUihoaXNp X2hpa2V5X3VzYi0+b3RnX3N3aXRjaCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIoaGlzaV9oaWtleV91 c2ItPm90Z19zd2l0Y2gpOwo+ICsKPiArCWdwaW9kX2RpcmVjdGlvbl9vdXRwdXQoaGlzaV9oaWtl eV91c2ItPm90Z19zd2l0Y2gsIFVTQl9TV0lUQ0hfVE9fSFVCKTsKPiArCj4gKwkvKiBodWItdmRk MzMtZW4gaXMgb3B0aW9uYWwgKi8KPiArCWhpc2lfaGlrZXlfdXNiLT5odWJfdmJ1cyA9IGRldm1f Z3Bpb2RfZ2V0KGRldiwgImh1Yi12ZGQzMy1lbiIsCj4gKwkJCUdQSU9EX09VVF9MT1cpOwo+ICsJ aWYgKElTX0VSUihoaXNpX2hpa2V5X3VzYi0+aHViX3ZidXMpKQo+ICsJCXJldHVybiBQVFJfRVJS KGhpc2lfaGlrZXlfdXNiLT5odWJfdmJ1cyk7Cj4gKwo+ICsJZ3Bpb2RfZGlyZWN0aW9uX291dHB1 dChoaXNpX2hpa2V5X3VzYi0+aHViX3ZidXMsIEhVQl9WQlVTX1BPV0VSX09OKTsKZGl0dG8KPiAr Cj4gKwloaXNpX2hpa2V5X3VzYi0+cm9sZV9zdyA9IHVzYl9yb2xlX3N3aXRjaF9nZXQoZGV2KTsK PiArCWlmICghaGlzaV9oaWtleV91c2ItPnJvbGVfc3cpCj4gKwkJcmV0dXJuIC1FUFJPQkVfREVG RVI7Cj4gKwllbHNlIGlmIChJU19FUlIoaGlzaV9oaWtleV91c2ItPnJvbGVfc3cpKQo+ICsJCXJl dHVybiBQVFJfRVJSKGhpc2lfaGlrZXlfdXNiLT5yb2xlX3N3KTsKPiArCj4gKwlyZXQgPSB1c2Jf cm9sZV9zd2l0Y2hfcmVnaXN0ZXJfbm90aWZpZXIoaGlzaV9oaWtleV91c2ItPnJvbGVfc3csCj4g KwkJCSZoaXNpX2hpa2V5X3VzYi0+bmIpOwo+ICsJaWYgKHJldCkgewo+ICsJCXVzYl9yb2xlX3N3 aXRjaF9wdXQoaGlzaV9oaWtleV91c2ItPnJvbGVfc3cpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9 Cj4gKwo+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgaGlzaV9oaWtleV91c2IpOwo+ICsK PiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50ICBoaXNpX2hpa2V5X3VzYl9yZW1v dmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArewo+ICsJc3RydWN0IGhpc2lfaGlr ZXlfdXNiICpoaXNpX2hpa2V5X3VzYiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ICsK PiArCXVzYl9yb2xlX3N3aXRjaF91bnJlZ2lzdGVyX25vdGlmaWVyKGhpc2lfaGlrZXlfdXNiLT5y b2xlX3N3LAo+ICsJCQkmaGlzaV9oaWtleV91c2ItPm5iKTsKPiArCj4gKwl1c2Jfcm9sZV9zd2l0 Y2hfcHV0KGhpc2lfaGlrZXlfdXNiLT5yb2xlX3N3KTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaWRfdGFibGVfaGlzaV9oaWtl eV91c2JbXSA9IHsKPiArCXsuY29tcGF0aWJsZSA9ICJoaXNpbGljb24sZ3Bpb19odWJ2MSJ9LAo+ ICsJey5jb21wYXRpYmxlID0gImhpc2lsaWNvbixoaWtleTk2MF91c2IifSwKPiArCXt9Cj4gK307 Cj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBoaXNpX2hpa2V5X3VzYl9kcml2 ZXIgPSB7Cj4gKwkucHJvYmUgPSBoaXNpX2hpa2V5X3VzYl9wcm9iZSwKPiArCS5yZW1vdmUgPSBo aXNpX2hpa2V5X3VzYl9yZW1vdmUsCj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gREVWSUNF X0RSSVZFUl9OQU1FLAo+ICsJCS5vZl9tYXRjaF90YWJsZSA9IGlkX3RhYmxlX2hpc2lfaGlrZXlf dXNiLAo+ICsJfSwKPiArfTsKPiArCj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoaGlzaV9oaWtl eV91c2JfZHJpdmVyKTsKPiArCj4gK01PRFVMRV9BVVRIT1IoIll1IENoZW4gPGNoZW55dTU2QGh1 YXdlaS5jb20+Iik7Cj4gK01PRFVMRV9ERVNDUklQVElPTigiRHJpdmVyIFN1cHBvcnQgZm9yIFVT QiBmdW5jdGlvbmFsaXR5IG9mIEhpa2V5Iik7Cj4gK01PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsK