From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 5DBE8A568 for ; Thu, 19 Apr 2018 12:27:16 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2018 03:27:16 -0700 Message-Id: <0590c7$1er3kn@orsmga001.jf.intel.com> Date: 19 Apr 2018 03:27:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,468,1517904000"; d="scan'208";a="49122970" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 19 Apr 2018 03:27:14 -0700 Content-Type: multipart/alternative; boundary="===============7955819113140344821==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com Subject: [dpdk-test-report] |FAILURE| pw38507[dpdk-dev, v5, 08/16] ethdev: add hash function to RSS flow API action X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Apr 2018 10:27:17 -0000 --===============7955819113140344821== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM4NTA3CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0xOSAx MDoxNjo0MQpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiBl NjJmM2E4YTA0NzY4MzUyYmM3ODM4OWQ0OTliZTUwYzkyM2JmNmFhCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IGZlNWFiZDMxNTBiYzFjYWE4MzY5ZTc0M2MzOTVjMzlmNTMyNjU1 OTcKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDlmNDRiNjEyNjM3YzI5NzUyZDE1ODVl OGQxYWYyZTI5OTc1NmNkNjAKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IGIxYWY0 ODllNjQ4MmEyMjQ3ZWYzNjQxOGNlZTgwM2UzMmJjODRiMmUKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDhhZGJlN2U0ODQ3MDYwZDA5MWM0NmFiY2JlY2QzZGZlYTgzNjJiN2EKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglBQ1RJT05fRFJPUCwKCUFDVElPTl9D T1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJT05fUlNTX1RZUEVTLAoJQUNUSU9OX1JTU19UWVBFLAoJ QUNUSU9OX1JTU19LRVksCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGlu ZV9mbG93LmM6MTY1CmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0 LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkudHlwZXMgPSBzcmMucnNz LT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0g PSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQv Y29uZmlnLmM6MTEwMAplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0 Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogICArLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgfCBGaWVsZCAgICAg ICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICs9 PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09KwogICB8IGBgdHlwZXNgYCAgICAgfCBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcyAoc2VlIGBg RVRIX1JTU18qYGApIHwKICAgKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgYGBrZXlfbGVuYGAgICB8IGhhc2gga2V5IGxl bmd0aCBpbiBieXRlcyAgICAgICAgICAgICAgICAgICAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzE4CmVycm9yOiBkb2MvZ3VpZGVz L3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0Li4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLSBgYHJzc2BgOiBzcHJlYWQgcGFja2V0cyBhbW9uZyBz ZXZlcmFsIHF1ZXVlcy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBg OiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZAogICAgdG9rZW5zIGFyZSB0aGUgc2Ft ZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8sIGV4Y2VwdCB0aGF0IGFuIGVtcHR5IGxpc3QKICAg IGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1dCBpbnN0ZWFkIHJlcXVlc3RzIHVuc3BlY2lmaWVkICJi ZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBf dWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5OAplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQl9Cgl9CgoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gIT0gUlRFX0RJTShy c3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5P VFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6MTMxMAplcnJvcjogZHJpdmVycy9uZXQv ZTEwMDAvaWdiX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJTlZB TDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVzID0g aW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5x dWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0 eC5jOjI5MDUKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJ TShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRl X2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4t PmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTIwMzkKZXJyb3I6IGRyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCX0KCgkvKiBQYXJzZSBSU1MgcmVsYXRlZCBwYXJhbWV0ZXJzIGZyb20gY29uZmlndXJh dGlvbiAqLwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19j b25maWctPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RT VVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQzNzYKZXJyb3I6IGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CQl9Cgl9CgoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gIT0gUlRFX0RJTShyc3Nf Y29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNV UCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzoyNzc5CmVycm9yOiBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJ TlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVz ID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGlu LT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdi ZV9yeHR4LmM6NTY4MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSIgb2YgdGhlIGNvbnRleHQg c2l6ZSI7CgkJCQlnb3RvIGV4aXRfYWN0aW9uX25vdF9zdXBwb3J0ZWQ7CgkJCX0KCQkJcnRlX2Vy cm5vID0gMDsKCQkJZmllbGRzID0gbWx4NF9jb252X3Jzc190eXBlcyhwcml2LCByc3MtPnR5cGVz KTsKCQkJaWYgKGZpZWxkcyA9PSAodWludDY0X3QpLTEgJiYgcnRlX2Vycm5vKSB7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOjc5MAplcnJvcjogZHJp dmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKI2VuZGlmCgojaW5jbHVkZSA8cnRlX2NvbW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0 aGRldl9kcml2ZXIuaD4KI2luY2x1ZGUgPHJ0ZV9mbG93Lmg+CiNpbmNsdWRlIDxydGVfZmxvd19k cml2ZXIuaD4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93 LmM6MTgKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlyeHFfaHdfaW5kZXhfbWF4ID0gcnhxLT5od19pbmRl eDsKCX0KCglpZiAoKHJzcy0+dHlwZXMgJiB+U0ZDX1JTU19PRkZMT0FEUykgIT0gMCkKCQlyZXR1 cm4gLUVJTlZBTDsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zs b3cuYzoxMjYxCmVycm9yOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KSHVu ayAjMSBzdWNjZWVkZWQgYXQgMjA0NCAob2Zmc2V0IC0xMSBsaW5lcykuCkNoZWNraW5nIHBhdGNo IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zs b3dfYWN0aW9uX3Jzcyl7CgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVu ID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0s CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6MzMwCmVy cm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgpIdW5rICMxIHN1Y2Nl ZWRlZCBhdCAxNiAob2Zmc2V0IC0zIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CiAqIGJvdGggY2FuIGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNseS4KICovCnN0cnVjdCBydGVf Zmxvd19hY3Rpb25fcnNzIHsKCXVpbnQ2NF90IHR5cGVzOyAvKio8IFNwZWNpZmljIFJTUyBoYXNo IHR5cGVzIChzZWUgRVRIX1JTU18qKS4gKi8KCXVpbnQzMl90IGtleV9sZW47IC8qKjwgSGFzaCBr ZXkgbGVuZ3RoIGluIGJ5dGVzLiAqLwoJdWludDMyX3QgcXVldWVfbnVtOyAvKio8IE51bWJlciBv ZiBlbnRyaWVzIGluIEBwIHF1ZXVlLiAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0 ZV9ldGhlci9ydGVfZmxvdy5oOjEwNDQKZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cu aDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKKlJlcG86IGRwZGstbmV4dC1ldmVudGRldgpDaGVja2lu ZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CglBQ1RJT05fRFJPUCwKCUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJ T05fUlNTX1RZUEVTLAoJQUNUSU9OX1JTU19UWVBFLAoJQUNUSU9OX1JTU19LRVksCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6MTY1CmVycm9yOiBhcHAv dGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX3Jzcyl7CgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0g c3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6MTEwMAplcnJvcjogYXBw L3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk b2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgogICArLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSsKICAgfCBGaWVsZCAgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICs9PT09PT09PT09PT09PT0rPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KwogICB8IGBgdHlwZXNgYCAgICAg fCBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcyAoc2VlIGBgRVRIX1JTU18qYGApIHwKICAgKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r CiAgIHwgYGBrZXlfbGVuYGAgICB8IGhhc2gga2V5IGxlbmd0aCBpbiBieXRlcyAgICAgICAgICAg ICAgICAgICAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdDoxMzE4CmVycm9yOiBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0 OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Rlc3RwbWRf YXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoK LSBgYHJzc2BgOiBzcHJlYWQgcGFja2V0cyBhbW9uZyBzZXZlcmFsIHF1ZXVlcy4KCiAgLSBgYHR5 cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4uLl1dIGVuZGBgOiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBl cywgYWxsb3dlZAogICAgdG9rZW5zIGFyZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0 YF8sIGV4Y2VwdCB0aGF0IGFuIGVtcHR5IGxpc3QKICAgIGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1 dCBpbnN0ZWFkIHJlcXVlc3RzIHVuc3BlY2lmaWVkICJiZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5 OAplcnJvcjogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zs b3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl9Cgl9CgoJaWYgKHJzcy0+a2V5 X2xlbiAmJiByc3MtPmtleV9sZW4gIT0gUlRFX0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4g cnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQ RV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2ln Yl9mbG93LmM6MTMxMAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHgu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRF X0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0g aW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI5MDUKZXJyb3I6IGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4g LUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5 cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9 IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTIwMzkKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBl X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCX0KCgkvKiBQYXJzZSBSU1Mg cmVsYXRlZCBwYXJhbWV0ZXJzIGZyb20gY29uZmlndXJhdGlvbiAqLwoJaWYgKHJzcy0+a2V5X2xl biAmJiByc3MtPmtleV9sZW4gPiBSVEVfRElNKHJzc19jb25maWctPmtleSkpCgkJcmV0dXJuIHJ0 ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVf QUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVf Zmxvdy5jOjQzNzYKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQl9Cgl9CgoJaWYgKHJzcy0+a2V5X2xl biAmJiByc3MtPmtleV9sZW4gIT0gUlRFX0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRl X2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9B Q1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X2Zsb3cuYzoyNzc5CmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4g UlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVu ID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6NTY4MwplcnJvcjogZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJCQkJCSIgb2YgdGhlIGNvbnRleHQgc2l6ZSI7CgkJCQlnb3RvIGV4aXRfYWN0 aW9uX25vdF9zdXBwb3J0ZWQ7CgkJCX0KCQkJcnRlX2Vycm5vID0gMDsKCQkJZmllbGRzID0gbWx4 NF9jb252X3Jzc190eXBlcyhwcml2LCByc3MtPnR5cGVzKTsKCQkJaWYgKGZpZWxkcyA9PSAodWlu dDY0X3QpLTEgJiYgcnRlX2Vycm5vKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9tbHg0L21seDRfZmxvdy5jOjc5MAplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9t bHg1X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2VuZGlmCgojaW5jbHVk ZSA8cnRlX2NvbW1vbi5oPgojaW5jbHVkZSA8cnRlX2V0aGRldl9kcml2ZXIuaD4KI2luY2x1ZGUg PHJ0ZV9mbG93Lmg+CiNpbmNsdWRlIDxydGVfZmxvd19kcml2ZXIuaD4KCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6MTgKZXJyb3I6IGRyaXZlcnMvbmV0 L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJ CQlyeHFfaHdfaW5kZXhfbWF4ID0gcnhxLT5od19pbmRleDsKCX0KCglpZiAoKHJzcy0+dHlwZXMg JiB+U0ZDX1JTU19PRkZMT0FEUykgIT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsKCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzoxMjYxCmVycm9yOiBkcml2ZXJz L25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjA0NCAo b2Zmc2V0IC0xMSBsaW5lcykuCkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zs b3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3Qu cnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkudHlw ZXMgPSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJ CS5xdWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBs aWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6MzMwCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0 ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVf ZXRoZXIvcnRlX2Zsb3cuaC4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAxNiAob2Zmc2V0IC0zIGxp bmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqIGJvdGggY2FuIGJlIHJlcXVlc3Rl ZCBzaW11bHRhbmVvdXNseS4KICovCnN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIHsKCXVpbnQ2 NF90IHR5cGVzOyAvKio8IFNwZWNpZmljIFJTUyBoYXNoIHR5cGVzIChzZWUgRVRIX1JTU18qKS4g Ki8KCXVpbnQzMl90IGtleV9sZW47IC8qKjwgSGFzaCBrZXkgbGVuZ3RoIGluIGJ5dGVzLiAqLwoJ dWludDMyX3QgcXVldWVfbnVtOyAvKio8IE51bWJlciBvZiBlbnRyaWVzIGluIEBwIHF1ZXVlLiAq LwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOjEwNDQK ZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkK KlJlcG86IGRwZGstbmV4dC1uZXQKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NtZGxpbmVf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJQUNUSU9OX0RST1AsCglBQ1RJ T05fQ09VTlQsCglBQ1RJT05fUlNTLAoJQUNUSU9OX1JTU19UWVBFUywKCUFDVElPTl9SU1NfVFlQ RSwKCUFDVElPTl9SU1NfS0VZLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2Nt ZGxpbmVfZmxvdy5jOjE2NQplcnJvcjogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY29uZmlnLmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJb2ZmID0gMDsKCQlpZiAoZHN0LnJzcykKCQkJ KmRzdC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCQkJLnR5cGVzID0gc3Jj LnJzcy0+dHlwZXMsCgkJCQkua2V5X2xlbiA9IHNyYy5yc3MtPmtleV9sZW4sCgkJCQkucXVldWVf bnVtID0gc3JjLnJzcy0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3Qt cG1kL2NvbmZpZy5jOjExMDAKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93 LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICAgKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgRmllbGQg ICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAog ICArPT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PSsKICAgfCBgYHR5cGVzYGAgICAgIHwgc3BlY2lmaWMgUlNTIGhhc2ggdHlwZXMgKHNl ZSBgYEVUSF9SU1NfKmBgKSB8CiAgICstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICB8IGBga2V5X2xlbmBgICAgfCBoYXNoIGtl eSBsZW5ndGggaW4gYnl0ZXMgICAgICAgICAgICAgICAgICAgIHwKCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMxOAplcnJvcjogZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdC4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi0gYGByc3NgYDogc3ByZWFkIHBhY2tldHMgYW1v bmcgc2V2ZXJhbCBxdWV1ZXMuCgogIC0gYGB0eXBlcyBbe1JTUyBoYXNoIHR5cGV9IFsuLi5dXSBl bmRgYDogc3BlY2lmaWMgUlNTIGhhc2ggdHlwZXMsIGFsbG93ZWQKICAgIHRva2VucyBhcmUgdGhl IHNhbWUgYXMgYHNldF9oYXNoX2lucHV0X3NldGBfLCBleGNlcHQgdGhhdCBhbiBlbXB0eSBsaXN0 CiAgICBkb2VzIG5vdCBkaXNhYmxlIFJTUyBidXQgaW5zdGVhZCByZXF1ZXN0cyB1bnNwZWNpZmll ZCAiYmVzdC1lZmZvcnQiCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3Rlc3RwbWRf YXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OjMzOTgKZXJyb3I6IGRvYy9ndWlkZXMvdGVzdHBtZF9h cHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJfQoJfQoKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9E SU0ocnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3Is IEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEzMTAKZXJyb3I6IGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkgICAgaW4tPnF1ZXVlX251bSA+IFJURV9ESU0ob3V0LT5xdWV1ZSkpCgkJcmV0dXJuIC1F SU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS50eXBl cyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBp bi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdi X3J4dHguYzoyOTA1CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkgICAgaW4tPnF1ZXVlX251bSA+IFJU RV9ESU0ob3V0LT5xdWV1ZSkpCgkJcmV0dXJuIC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0 IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS50eXBlcyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9 IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0gPSBpbi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEyMDM5CmVycm9yOiBkcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cgl9CgoJLyogUGFyc2UgUlNTIHJlbGF0ZWQgcGFyYW1ldGVycyBmcm9tIGNvbmZp Z3VyYXRpb24gKi8KCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuID4gUlRFX0RJTShy c3NfY29uZmlnLT5rZXkpKQoJCXJldHVybiBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBF Tk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzo0Mzc2CmVycm9yOiBkcml2ZXJzL25l dC9pNDBlL2k0MGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CgkJfQoJfQoKCWlmIChyc3MtPmtleV9sZW4gJiYgcnNzLT5rZXlfbGVuICE9IFJURV9ESU0o cnNzX2NvbmYtPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJyb3IsIEVO T1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6Mjc3OQplcnJvcjogZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkgICAgaW4tPnF1ZXVlX251bSA+IFJURV9ESU0ob3V0LT5xdWV1ZSkpCgkJcmV0dXJu IC1FSU5WQUw7CglvdXQtPmNvbmYgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MpewoJCS50 eXBlcyA9IGluLT50eXBlcywKCQkua2V5X2xlbiA9IGluLT5rZXlfbGVuLAoJCS5xdWV1ZV9udW0g PSBpbi0+cXVldWVfbnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfcnh0eC5jOjU2ODMKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0 X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCQkiIG9mIHRoZSBjb250 ZXh0IHNpemUiOwoJCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9CgkJCXJ0 ZV9lcnJubyA9IDA7CgkJCWZpZWxkcyA9IG1seDRfY29udl9yc3NfdHlwZXMocHJpdiwgcnNzLT50 eXBlcyk7CgkJCWlmIChmaWVsZHMgPT0gKHVpbnQ2NF90KS0xICYmIHJ0ZV9lcnJubykgewoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3OTAKZXJyb3I6 IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CiNlbmRpZgoKI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4KI2luY2x1ZGUgPHJ0 ZV9ldGhkZXZfZHJpdmVyLmg+CiNpbmNsdWRlIDxydGVfZmxvdy5oPgojaW5jbHVkZSA8cnRlX2Zs b3dfZHJpdmVyLmg+CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVf Zmxvdy5jOjE4CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJcnhxX2h3X2luZGV4X21heCA9IHJ4cS0+aHdf aW5kZXg7Cgl9CgoJaWYgKChyc3MtPnR5cGVzICYgflNGQ19SU1NfT0ZGTE9BRFMpICE9IDApCgkJ cmV0dXJuIC1FSU5WQUw7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3Nm Y19mbG93LmM6MTI2MQplcnJvcjogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4u Ckh1bmsgIzEgc3VjY2VlZGVkIGF0IDIwNDQgKG9mZnNldCAtMTEgbGluZXMpLgpDaGVja2luZyBw YXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJb2ZmID0gMDsKCQlpZiAoZHN0LnJzcykKCQkJKmRzdC5yc3MgPSAoc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9yc3MpewoJCQkJLnR5cGVzID0gc3JjLnJzcy0+dHlwZXMsCgkJCQkua2V5 X2xlbiA9IHNyYy5yc3MtPmtleV9sZW4sCgkJCQkucXVldWVfbnVtID0gc3JjLnJzcy0+cXVldWVf bnVtLAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOjMz MAplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KSHVuayAjMSBz dWNjZWVkZWQgYXQgMTYgKG9mZnNldCAtMyBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgogKiBib3RoIGNhbiBiZSByZXF1ZXN0ZWQgc2ltdWx0YW5lb3VzbHkuCiAqLwpzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX3JzcyB7Cgl1aW50NjRfdCB0eXBlczsgLyoqPCBTcGVjaWZpYyBSU1Mg aGFzaCB0eXBlcyAoc2VlIEVUSF9SU1NfKikuICovCgl1aW50MzJfdCBrZXlfbGVuOyAvKio8IEhh c2gga2V5IGxlbmd0aCBpbiBieXRlcy4gKi8KCXVpbnQzMl90IHF1ZXVlX251bTsgLyoqPCBOdW1i ZXIgb2YgZW50cmllcyBpbiBAcCBxdWV1ZS4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGxpYi9s aWJydGVfZXRoZXIvcnRlX2Zsb3cuaDoxMDQ0CmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9m bG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CipSZXBvOiBkcGRrLW5leHQtY3J5cHRvCkNoZWNr aW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCUFDVElPTl9EUk9QLAoJQUNUSU9OX0NPVU5ULAoJQUNUSU9OX1JTUywKCUFD VElPTl9SU1NfVFlQRVMsCglBQ1RJT05fUlNTX1RZUEUsCglBQ1RJT05fUlNTX0tFWSwKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzoxNjUKZXJyb3I6IGFw cC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCW9mZiA9IDA7CgkJaWYgKGRzdC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxv d19hY3Rpb25fcnNzKXsKCQkJCS50eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJLmtleV9sZW4g PSBzcmMucnNzLT5rZXlfbGVuLAoJCQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBtZC9jb25maWcuYzoxMTAwCmVycm9yOiBh cHAvdGVzdC1wbWQvY29uZmlnLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiAgICstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKwogICB8IEZpZWxkICAgICAgICAgfCBWYWx1ZSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgKz09PT09PT09PT09PT09PSs9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCiAgIHwgYGB0eXBlc2BgICAg ICB8IHNwZWNpZmljIFJTUyBoYXNoIHR5cGVzIChzZWUgYGBFVEhfUlNTXypgYCkgfAogICArLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSsKICAgfCBgYGtleV9sZW5gYCAgIHwgaGFzaCBrZXkgbGVuZ3RoIGluIGJ5dGVzICAgICAgICAg ICAgICAgICAgICB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUv cnRlX2Zsb3cucnN0OjEzMTgKZXJyb3I6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5y c3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvdGVzdHBt ZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgotIGBgcnNzYGA6IHNwcmVhZCBwYWNrZXRzIGFtb25nIHNldmVyYWwgcXVldWVzLgoKICAtIGBg dHlwZXMgW3tSU1MgaGFzaCB0eXBlfSBbLi4uXV0gZW5kYGA6IHNwZWNpZmljIFJTUyBoYXNoIHR5 cGVzLCBhbGxvd2VkCiAgICB0b2tlbnMgYXJlIHRoZSBzYW1lIGFzIGBzZXRfaGFzaF9pbnB1dF9z ZXRgXywgZXhjZXB0IHRoYXQgYW4gZW1wdHkgbGlzdAogICAgZG9lcyBub3QgZGlzYWJsZSBSU1Mg YnV0IGluc3RlYWQgcmVxdWVzdHMgdW5zcGVjaWZpZWQgImJlc3QtZWZmb3J0IgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDoz Mzk4CmVycm9yOiBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0OiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCX0KCX0KCglpZiAocnNzLT5r ZXlfbGVuICYmIHJzcy0+a2V5X2xlbiAhPSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVy biBydGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9U WVBFX0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAv aWdiX2Zsb3cuYzoxMzEwCmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0 eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICAgIGluLT5xdWV1ZV9udW0gPiBS VEVfRElNKG91dC0+cXVldWUpKQoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVj dCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkudHlwZXMgPSBpbi0+dHlwZXMsCgkJLmtleV9sZW4g PSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1ZXVlX251bSwKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6MjkwNQplcnJvcjogZHJpdmVy cy9uZXQvZTEwMDAvaWdiX3J4dHguYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJICAgIGluLT5xdWV1ZV9udW0gPiBSVEVfRElNKG91dC0+cXVldWUpKQoJCXJldHVy biAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQku dHlwZXMgPSBpbi0+dHlwZXMsCgkJLmtleV9sZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVt ID0gaW4tPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMjAzOQplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJfQoKCS8qIFBhcnNlIFJT UyByZWxhdGVkIHBhcmFtZXRlcnMgZnJvbSBjb25maWd1cmF0aW9uICovCglpZiAocnNzLT5rZXlf bGVuICYmIHJzcy0+a2V5X2xlbiA+IFJURV9ESU0ocnNzX2NvbmZpZy0+a2V5KSkKCQlyZXR1cm4g cnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQ RV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9mbG93LmM6NDM3NgplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxv dy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCX0KCX0KCglpZiAocnNzLT5rZXlf bGVuICYmIHJzcy0+a2V5X2xlbiAhPSBSVEVfRElNKHJzc19jb25mLT5rZXkpKQoJCXJldHVybiBy dGVfZmxvd19lcnJvcl9zZXQKCQkJKGVycm9yLCBFTk9UU1VQLCBSVEVfRkxPV19FUlJPUl9UWVBF X0FDVElPTiwgYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfZmxvdy5jOjI3NzkKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf cnh0eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJICAgIGluLT5xdWV1ZV9udW0g PiBSVEVfRElNKG91dC0+cXVldWUpKQoJCXJldHVybiAtRUlOVkFMOwoJb3V0LT5jb25mID0gKHN0 cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkudHlwZXMgPSBpbi0+dHlwZXMsCgkJLmtleV9s ZW4gPSBpbi0+a2V5X2xlbiwKCQkucXVldWVfbnVtID0gaW4tPnF1ZXVlX251bSwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzo1NjgzCmVycm9yOiBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNr aW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNl YXJjaGluZyBmb3I6CgkJCQkJIiBvZiB0aGUgY29udGV4dCBzaXplIjsKCQkJCWdvdG8gZXhpdF9h Y3Rpb25fbm90X3N1cHBvcnRlZDsKCQkJfQoJCQlydGVfZXJybm8gPSAwOwoJCQlmaWVsZHMgPSBt bHg0X2NvbnZfcnNzX3R5cGVzKHByaXYsIHJzcy0+dHlwZXMpOwoJCQlpZiAoZmllbGRzID09ICh1 aW50NjRfdCktMSAmJiBydGVfZXJybm8pIHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L21seDQvbWx4NF9mbG93LmM6NzkwCmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxv dy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1 L21seDVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojZW5kaWYKCiNpbmNs dWRlIDxydGVfY29tbW9uLmg+CiNpbmNsdWRlIDxydGVfZXRoZGV2X2RyaXZlci5oPgojaW5jbHVk ZSA8cnRlX2Zsb3cuaD4KI2luY2x1ZGUgPHJ0ZV9mbG93X2RyaXZlci5oPgoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzoxOAplcnJvcjogZHJpdmVycy9u ZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6 CgkJCXJ4cV9od19pbmRleF9tYXggPSByeHEtPmh3X2luZGV4OwoJfQoKCWlmICgocnNzLT50eXBl cyAmIH5TRkNfUlNTX09GRkxPQURTKSAhPSAwKQoJCXJldHVybiAtRUlOVkFMOwoKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyNjEKZXJyb3I6IGRyaXZl cnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCAyMDQ0 IChvZmZzZXQgLTExIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVf Zmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCW9mZiA9IDA7CgkJaWYgKGRz dC5yc3MpCgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS50 eXBlcyA9IHNyYy5yc3MtPnR5cGVzLAoJCQkJLmtleV9sZW4gPSBzcmMucnNzLT5rZXlfbGVuLAoJ CQkJLnF1ZXVlX251bSA9IHNyYy5yc3MtPnF1ZXVlX251bSwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzozMzAKZXJyb3I6IGxpYi9saWJydGVfZXRoZXIv cnRlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggbGliL2xpYnJ0 ZV9ldGhlci9ydGVfZmxvdy5oLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0IDE2IChvZmZzZXQgLTMg bGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICogYm90aCBjYW4gYmUgcmVxdWVz dGVkIHNpbXVsdGFuZW91c2x5LgogKi8Kc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgewoJdWlu dDY0X3QgdHlwZXM7IC8qKjwgU3BlY2lmaWMgUlNTIGhhc2ggdHlwZXMgKHNlZSBFVEhfUlNTXyop LiAqLwoJdWludDMyX3Qga2V5X2xlbjsgLyoqPCBIYXNoIGtleSBsZW5ndGggaW4gYnl0ZXMuICov Cgl1aW50MzJfdCBxdWV1ZV9udW07IC8qKjwgTnVtYmVyIG9mIGVudHJpZXMgaW4gQHAgcXVldWUu ICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93Lmg6MTA0 NAplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQoqUmVwbzogZHBkay1uZXh0LXZpcnRpbwpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21k bGluZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglBQ1RJT05fRFJPUCwK CUFDVElPTl9DT1VOVCwKCUFDVElPTl9SU1MsCglBQ1RJT05fUlNTX1RZUEVTLAoJQUNUSU9OX1JT U19UWVBFLAoJQUNUSU9OX1JTU19LRVksCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1w bWQvY21kbGluZV9mbG93LmM6MTY1CmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNz KQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkudHlwZXMg PSBzcmMucnNzLT50eXBlcywKCQkJCS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5x dWV1ZV9udW0gPSBzcmMucnNzLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAv dGVzdC1wbWQvY29uZmlnLmM6MTEwMAplcnJvcjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRl X2Zsb3cucnN0Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogICArLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgfCBG aWVsZCAgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8CiAgICs9PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09KwogICB8IGBgdHlwZXNgYCAgICAgfCBzcGVjaWZpYyBSU1MgaGFzaCB0eXBl cyAoc2VlIGBgRVRIX1JTU18qYGApIHwKICAgKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgYGBrZXlfbGVuYGAgICB8IGhh c2gga2V5IGxlbmd0aCBpbiBieXRlcyAgICAgICAgICAgICAgICAgICAgfAoKZXJyb3I6IHBhdGNo IGZhaWxlZDogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzE4CmVycm9yOiBk b2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0 Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLSBgYHJzc2BgOiBzcHJlYWQgcGFja2V0 cyBhbW9uZyBzZXZlcmFsIHF1ZXVlcy4KCiAgLSBgYHR5cGVzIFt7UlNTIGhhc2ggdHlwZX0gWy4u Ll1dIGVuZGBgOiBzcGVjaWZpYyBSU1MgaGFzaCB0eXBlcywgYWxsb3dlZAogICAgdG9rZW5zIGFy ZSB0aGUgc2FtZSBhcyBgc2V0X2hhc2hfaW5wdXRfc2V0YF8sIGV4Y2VwdCB0aGF0IGFuIGVtcHR5 IGxpc3QKICAgIGRvZXMgbm90IGRpc2FibGUgUlNTIGJ1dCBpbnN0ZWFkIHJlcXVlc3RzIHVuc3Bl Y2lmaWVkICJiZXN0LWVmZm9ydCIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvdGVz dHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3Q6MzM5OAplcnJvcjogZG9jL2d1aWRlcy90ZXN0 cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQl9Cgl9CgoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gIT0g UlRFX0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShl cnJvciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6MTMxMAplcnJvcjogZHJp dmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1 cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJ LnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251 bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAw MC9pZ2Jfcnh0eC5jOjI5MDUKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVt ID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQlyZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlf bGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVlX251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTIwMzkKZXJyb3I6 IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCX0KCgkvKiBQYXJzZSBSU1MgcmVsYXRlZCBwYXJhbWV0ZXJzIGZyb20g Y29uZmlndXJhdGlvbiAqLwoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gPiBSVEVf RElNKHJzc19jb25maWctPmtleSkpCgkJcmV0dXJuIHJ0ZV9mbG93X2Vycm9yX3NldAoJCQkoZXJy b3IsIEVOT1RTVVAsIFJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLCBhY3QsCgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQzNzYKZXJyb3I6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCQl9Cgl9CgoJaWYgKHJzcy0+a2V5X2xlbiAmJiByc3MtPmtleV9sZW4gIT0gUlRF X0RJTShyc3NfY29uZi0+a2V5KSkKCQlyZXR1cm4gcnRlX2Zsb3dfZXJyb3Jfc2V0CgkJCShlcnJv ciwgRU5PVFNVUCwgUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sIGFjdCwKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzoyNzc5CmVycm9yOiBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCSAgICBpbi0+cXVldWVfbnVtID4gUlRFX0RJTShvdXQtPnF1ZXVlKSkKCQly ZXR1cm4gLUVJTlZBTDsKCW91dC0+Y29uZiA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7 CgkJLnR5cGVzID0gaW4tPnR5cGVzLAoJCS5rZXlfbGVuID0gaW4tPmtleV9sZW4sCgkJLnF1ZXVl X251bSA9IGluLT5xdWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9yeHR4LmM6NTY4MwplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0 eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0 L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJCSIgb2YgdGhl IGNvbnRleHQgc2l6ZSI7CgkJCQlnb3RvIGV4aXRfYWN0aW9uX25vdF9zdXBwb3J0ZWQ7CgkJCX0K CQkJcnRlX2Vycm5vID0gMDsKCQkJZmllbGRzID0gbWx4NF9jb252X3Jzc190eXBlcyhwcml2LCBy c3MtPnR5cGVzKTsKCQkJaWYgKGZpZWxkcyA9PSAodWludDY0X3QpLTEgJiYgcnRlX2Vycm5vKSB7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOjc5MApl cnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKI2VuZGlmCgojaW5jbHVkZSA8cnRlX2NvbW1vbi5oPgojaW5jbHVk ZSA8cnRlX2V0aGRldl9kcml2ZXIuaD4KI2luY2x1ZGUgPHJ0ZV9mbG93Lmg+CiNpbmNsdWRlIDxy dGVfZmxvd19kcml2ZXIuaD4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUv bWx4NV9mbG93LmM6MTgKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQlyeHFfaHdfaW5kZXhfbWF4ID0gcnhx LT5od19pbmRleDsKCX0KCglpZiAoKHJzcy0+dHlwZXMgJiB+U0ZDX1JTU19PRkZMT0FEUykgIT0g MCkKCQlyZXR1cm4gLUVJTlZBTDsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9z ZmMvc2ZjX2Zsb3cuYzoxMjYxCmVycm9yOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93 LmMuLi4KSHVuayAjMSBzdWNjZWVkZWQgYXQgMjA0NCAob2Zmc2V0IC0xMSBsaW5lcykuCkNoZWNr aW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1 Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkudHlwZXMgPSBzcmMucnNzLT50eXBlcywKCQkJ CS5rZXlfbGVuID0gc3JjLnJzcy0+a2V5X2xlbiwKCQkJCS5xdWV1ZV9udW0gPSBzcmMucnNzLT5x dWV1ZV9udW0sCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93 LmM6MzMwCmVycm9yOiBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4uLgpIdW5r ICMxIHN1Y2NlZWRlZCBhdCAxNiAob2Zmc2V0IC0zIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiAqIGJvdGggY2FuIGJlIHJlcXVlc3RlZCBzaW11bHRhbmVvdXNseS4KICovCnN0 cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIHsKCXVpbnQ2NF90IHR5cGVzOyAvKio8IFNwZWNpZmlj IFJTUyBoYXNoIHR5cGVzIChzZWUgRVRIX1JTU18qKS4gKi8KCXVpbnQzMl90IGtleV9sZW47IC8q KjwgSGFzaCBrZXkgbGVuZ3RoIGluIGJ5dGVzLiAqLwoJdWludDMyX3QgcXVldWVfbnVtOyAvKio8 IE51bWJlciBvZiBlbnRyaWVzIGluIEBwIHF1ZXVlLiAqLwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog bGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOjEwNDQKZXJyb3I6IGxpYi9saWJydGVfZXRoZXIv cnRlX2Zsb3cuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKCkRQREsgU1RWIHRlYW0= --===============7955819113140344821==--