From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 621D41B971 for ; Thu, 10 May 2018 10:10:55 +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 fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 May 2018 01:10:54 -0700 Message-Id: <0590c7$1k5bbr@orsmga001.jf.intel.com> Date: 10 May 2018 01:10:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,384,1520924400"; d="scan'208";a="54701438" Received: from unknown (HELO [127.0.1.1]) ([10.240.176.154]) by orsmga001.jf.intel.com with ESMTP; 10 May 2018 01:10:52 -0700 Content-Type: multipart/alternative; boundary="===============8090443707354008531==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org Cc: xinfengx.zhao@intel.com, zhaoyan.chen@intel.com, peipeix.lu@intel.com Subject: [dpdk-test-report] |FAILURE| pw37397[dpdk-dev, v2, 07/15] ethdev: flatten RSS configuration in flow API 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, 10 May 2018 08:10:55 -0000 --===============8090443707354008531== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKaHR0cDov L2RwZGsub3JnL3BhdGNoLzM3Mzk3CgpfYXBwbHkgaXNzdWVzXwoKU3VibWl0dGVyOiBBZHJpZW4g TWF6YXJndWlsIDxhZHJpZW4ubWF6YXJndWlsQDZ3aW5kLmNvbT4KRGF0ZTogMjAxOC0wNC0wNiAx MzoyNTo0MQpEUERLIGdpdCBiYXNlbGluZToKCVJlcG86ZHBkay1tYXN0ZXIsIENvbW1pdElEOiA4 ZWE0MTQzODgzMmEzNjBhZWQyYjdiYTQ5ZmI3NWUzMTBhMmZmMWRjCglSZXBvOmRwZGstbmV4dC1l dmVudGRldiwgQ29tbWl0SUQ6IDY0MGIwZDFlNTEwZTExMTY5NGMyNTE0NTQ2NmYzNzg2NzQ1Mzgz N2YKCVJlcG86ZHBkay1uZXh0LW5ldCwgQ29tbWl0SUQ6IDc3NGMxODkyYzQzNGRiYTA5OTk4Y2Nj NzZiOTU2ZmViNzIyMjQ1NzEKCVJlcG86ZHBkay1uZXh0LWNyeXB0bywgQ29tbWl0SUQ6IDcyOGNh OWIwZDVhYmVhODJjZDAxZGVlNjY0NTQ1NmE5ZDU2MjE1ZjcKCVJlcG86ZHBkay1uZXh0LXZpcnRp bywgQ29tbWl0SUQ6IDAzN2MwOTk2YmM5MjczNDJmMTU3NDI2NzM5ZTBjYjYzZjJkYjg2ODkKCipS ZXBvOiBkcGRrLW1hc3RlcgpDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBzdHJ1Y3Qg cnRlX2Zsb3dfYWN0aW9uX3JzcyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3RydWN0IGFj dGlvbl9yc3NfZGF0YSB7CglzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJdWludDE2 X3QgcXVldWVbQUNUSU9OX1JTU19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYg cnNzX2NvbmY7Cgl1aW50OF90IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07CgovKiog TWF4aW11bSBudW1iZXIgb2Ygc3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBvbiB0aGUg c3RhY2suICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93 LmM6MTkyCmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90 IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9 IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+bnVtLAoJ CQl9OwotLQoJCQl9CgkJCW9mZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjEwODQKZXJyb3I6IGFwcC90ZXN0LXBt ZC9jb25maWcuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRl cy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK Ci4uIHRhYmxlOjogUlNTCgogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCiAgIHwgRmllbGQgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAg ICAgICAgIHwKLS0KICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKwoKQWN0aW9uOiBgYFBGYGAKXl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRjaCBmYWls ZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjogZG9jL2d1 aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgojaWZuZGVmIF9FMTAwMF9FVEhERVZfSF8KI2RlZmluZSBfRTEwMDBf RVRIREVWX0hfCiNpbmNsdWRlIDxydGVfdGltZS5oPgojaW5jbHVkZSA8cnRlX3BjaS5oPgoKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oOjQKZXJy b3I6IGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oOiBwYXRjaCBkb2VzIG5vdCBhcHBs eQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgSUdCX0RFRkFVTFRfVFhfSFRIUkVTSCAgICAg IDEKI2RlZmluZSBJR0JfREVGQVVMVF9UWF9XVEhSRVNIICAgICAgKChody0+bWFjLnR5cGUgPT0g ZTEwMDBfODI1NzYpID8gMSA6IDE2KQoKI2RlZmluZSBJR0JfSEtFWV9NQVhfSU5ERVggMTAKCi8q IEJpdCBzaGlmdCBhbmQgbWFzayAqLwojZGVmaW5lIElHQl80X0JJVF9XSURUSCAgKENIQVJfQklU IC8gMikKI2RlZmluZSBJR0JfNF9CSVRfTUFTSyAgIFJURV9MRU4yTUFTSyhJR0JfNF9CSVRfV0lE VEgsIHVpbnQ4X3QpCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jf ZXRoZGV2LmM6NDEKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cu Yy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29uc3Qgc3RydWN0IHJ0 ZV9mbG93X2FjdGlvbl9yc3MgKilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwgIXJzcy0+bnVtKSB7 CgkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVfRkxPV19FUlJPUl9U WVBFX0FDVElPTiwKCQkJCWFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2Ux MDAwL2lnYl9mbG93LmM6MTI5MgplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdi X3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKfQoKaW50CmlnYl9jb25maWdf cnNzX2ZpbHRlcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKCQlzdHJ1Y3QgaWdiX3J0ZV9mbG93 X3Jzc19jb25mICpjb25mLCBib29sIGFkZCkKLS0KCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJz c19jb25mID0gY29uZi0+cnNzX2NvbmY7CglzdHJ1Y3QgZTEwMDBfZmlsdGVyX2luZm8gKmZpbHRl cl9pbmZvID0KCQlFMTAwMF9ERVZfUFJJVkFURV9UT19GSUxURVJfSU5GTyhkZXYtPmRhdGEtPmRl dl9wcml2YXRlKTsKCXN0cnVjdCBlMTAwMF9odyAqaHcgPSBFMTAwMF9ERVZfUFJJVkFURV9UT19I VyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9yeHR4LmM6Mjg5OAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4 dHguYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaW5jbHVkZSA8 aW50dHlwZXMuaD4KI2luY2x1ZGUgPGFzc2VydC5oPgoKI2luY2x1ZGUgPHJ0ZV9lYWwuaD4KI2lu Y2x1ZGUgPHJ0ZV9zdHJpbmdfZm5zLmg+CiNpbmNsdWRlIDxydGVfcGNpLmg+CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEKZXJyb3I6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcg cGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgojaWZuZGVmIF9JNDBFX0VUSERFVl9IXwojZGVmaW5lIF9JNDBFX0VUSERFVl9I XwoKI2luY2x1ZGUgPHJ0ZV9ldGhfY3RybC5oPgojaW5jbHVkZSA8cnRlX3RpbWUuaD4KLS0KCiNk ZWZpbmUgSTQwRV9WTEFOX1RBR19TSVpFICAgICAgICA0CgojZGVmaW5lIEk0MEVfQVFfTEVOICAg ICAgICAgICAgICAgMzIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuaDo1CmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2Lmg6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93 LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJaWYgKGFjdGlvbl9mbGFnKSB7CgkJ Zm9yIChuID0gMDsgbiA8IDY0OyBuKyspIHsKCQkJaWYgKHJzcy0+cnNzX2NvbmYtPnJzc19oZiAm IChoZl9iaXQgPDwgbikpIHsKCQkJCWNvbmZfaW5mby0+cmVnaW9uWzBdLmh3X2Zsb3d0eXBlWzBd ID0gbjsKCQkJCWNvbmZfaW5mby0+cmVnaW9uWzBdLmZsb3d0eXBlX251bSA9IDE7CgkJCQljb25m X2luZm8tPnF1ZXVlX3JlZ2lvbl9udW1iZXIgPSAxOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzo0MjA3CmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0 MGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9peGdiZS9peGdiZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCiNk ZWZpbmUgSVhHQkVfUVVFVUVfU1RBVF9DT1VOVEVSUyAoc2l6ZW9mKGh3X3N0YXRzLT5xcHJjKSAv IHNpemVvZihod19zdGF0cy0+cXByY1swXSkpCgojZGVmaW5lIElYR0JFX0hLRVlfTUFYX0lOREVY IDEwCgovKiBBZGRpdGlvbmFsIHRpbWVzeW5jIHZhbHVlcy4gKi8KI2RlZmluZSBOU0VDX1BFUl9T RUMgICAgICAgICAgICAgMTAwMDAwMDAwMEwKI2RlZmluZSBJWEdCRV9JTkNWQUxfMTBHQiAgICAg ICAgMHg2NjY2NjY2NgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfZXRoZGV2LmM6MTAwCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojaWZuZGVmIF9JWEdC RV9FVEhERVZfSF8KI2RlZmluZSBfSVhHQkVfRVRIREVWX0hfCiNpbmNsdWRlICJiYXNlL2l4Z2Jl X3R5cGUuaCIKI2luY2x1ZGUgImJhc2UvaXhnYmVfZGNiLmgiCiNpbmNsdWRlICJiYXNlL2l4Z2Jl X2RjYl84MjU5OS5oIgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfZXRoZGV2Lmg6NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2Lmg6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwgIXJzcy0+ bnVtKSB7CgkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVfRkxPV19F UlJPUl9UWVBFX0FDVElPTiwKCQkJCWFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzoyNzYxCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdi ZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1NzEwIChvZmZzZXQg MzUgbGluZXMpLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQxNl90IGo7Cgl1aW50 MTZfdCBzcF9yZXRhX3NpemU7Cgl1aW50MzJfdCByZXRhX3JlZzsKCXN0cnVjdCBydGVfZXRoX3Jz c19jb25mIHJzc19jb25mID0gY29uZi0+cnNzX2NvbmY7CglzdHJ1Y3QgaXhnYmVfZmlsdGVyX2lu Zm8gKmZpbHRlcl9pbmZvID0KCQlJWEdCRV9ERVZfUFJJVkFURV9UT19GSUxURVJfSU5GTyhkZXYt PmRhdGEtPmRldl9wcml2YXRlKTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9yeHR4LmM6NTY4NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0 eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0 L21seDQuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJICAgICAiIGZvciBVRFAg UlNTIGFuZCBpbm5lciBWWExBTiBSU1MiKTsKCQkJLyogRmFrZSBzdXBwb3J0IGZvciBhbGwgcG9z c2libGUgUlNTIGhhc2ggZmllbGRzLiAqLwoJCQlwcml2LT5od19yc3Nfc3VwID0gflVJTlQ2NF9D KDApOwoJCQlwcml2LT5od19yc3Nfc3VwID0gbWx4NF9jb252X3Jzc19oZihwcml2LCAtMSk7CgkJ CS8qIEZpbHRlciBvdXQga25vd24gdW5zdXBwb3J0ZWQgZmllbGRzLiAqLwoJCQlwcml2LT5od19y c3Nfc3VwICY9CgkJCQl+KHVpbnQ2NF90KShJQlZfUlhfSEFTSF9TUkNfUE9SVF9VRFAgfAoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0LmM6NTY5CmVycm9yOiBkcml2 ZXJzL25ldC9tbHg0L21seDQuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKfTsKCi8qKgogKiBDb252ZXJ0IERQREsgUlNTIGhhc2ggZmllbGRzIHRvIHRoZWlyIFZlcmJz IGVxdWl2YWxlbnQuCiAqCi0tCm1seDRfY29udl9yc3NfaGYoc3RydWN0IHByaXYgKnByaXYsIHVp bnQ2NF90IHJzc19oZikKewoJZW51bSB7IElQVjQsIElQVjYsIFRDUCwgVURQLCB9OwoJY29uc3Qg dWludDY0X3QgaW5bXSA9IHsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQv bWx4NF9mbG93LmM6NzYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93 LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgovKiBtbHg0X2Zsb3cuYyAqLwoKdWlu dDY0X3QgbWx4NF9jb252X3Jzc19oZihzdHJ1Y3QgcHJpdiAqcHJpdiwgdWludDY0X3QgcnNzX2hm KTsKaW50IG1seDRfZmxvd19zeW5jKHN0cnVjdCBwcml2ICpwcml2LCBzdHJ1Y3QgcnRlX2Zsb3df ZXJyb3IgKmVycm9yKTsKdm9pZCBtbHg0X2Zsb3dfY2xlYW4oc3RydWN0IHByaXYgKnByaXYpOwpp bnQgbWx4NF9maWx0ZXJfY3RybChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93Lmg6NDcKZXJyb3I6IGRyaXZlcnMv bmV0L21seDQvbWx4NF9mbG93Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKICovCnN0cnVjdCBtbHg0X3JzcyAqCm1seDRfcnNzX2dldChzdHJ1Y3QgcHJpdiAqcHJpdiwg dWludDY0X3QgZmllbGRzLAoJICAgICB1aW50OF90IGtleVtNTFg0X1JTU19IQVNIX0tFWV9TSVpF XSwKCSAgICAgdWludDE2X3QgcXVldWVzLCBjb25zdCB1aW50MTZfdCBxdWV1ZV9pZFtdKQp7Cglz dHJ1Y3QgbWx4NF9yc3MgKnJzczsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21s eDQvbWx4NF9yeHEuYzo4OAplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0 eC5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgppbnQgbWx4NF9yc3NfaW5pdChzdHJ1 Y3QgcHJpdiAqcHJpdik7CnZvaWQgbWx4NF9yc3NfZGVpbml0KHN0cnVjdCBwcml2ICpwcml2KTsK c3RydWN0IG1seDRfcnNzICptbHg0X3Jzc19nZXQoc3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90 IGZpZWxkcywKCQkJICAgICAgdWludDhfdCBrZXlbTUxYNF9SU1NfSEFTSF9LRVlfU0laRV0sCgkJ CSAgICAgIHVpbnQxNl90IHF1ZXVlcywgY29uc3QgdWludDE2X3QgcXVldWVfaWRbXSk7CnZvaWQg bWx4NF9yc3NfcHV0KHN0cnVjdCBtbHg0X3JzcyAqcnNzKTsKaW50IG1seDRfcnNzX2F0dGFjaChz dHJ1Y3QgbWx4NF9yc3MgKnJzcyk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9t bHg0L21seDRfcnh0eC5oOjEyNgplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4dHguaDog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1 X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCVRBSUxRX0VOVFJZKHJ0ZV9m bG93KSBuZXh0OyAvKio8IFBvaW50ZXIgdG8gdGhlIG5leHQgZmxvdyBzdHJ1Y3R1cmUuICovCgl1 aW50MzJfdCBtYXJrOjE7IC8qKjwgU2V0IGlmIHRoZSBmbG93IGlzIG1hcmtlZC4gKi8KCXVpbnQz Ml90IGRyb3A6MTsgLyoqPCBEcm9wIHF1ZXVlLiAqLwoJdWludDE2X3QgcXVldWVzX247IC8qKjwg TnVtYmVyIG9mIGVudHJpZXMgaW4gcXVldWVbXS4gKi8KCXVpbnQxNl90ICgqcXVldWVzKVtdOyAv Kio8IFF1ZXVlcyBpbmRleGVzIHRvIHVzZS4gKi8KCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJz c19jb25mOyAvKio8IFJTUyBjb25maWd1cmF0aW9uICovCgl1aW50OF90IHJzc19rZXlbNDBdOyAv Kio8IGNvcHkgb2YgdGhlIFJTUyBrZXkuICovCglzdHJ1Y3QgaWJ2X2NvdW50ZXJfc2V0ICpjczsg LyoqPCBIb2xkcyB0aGUgY291bnRlcnMgZm9yIHRoZSBydWxlLiAqLwoJc3RydWN0IG1seDVfZmxv d19jb3VudGVyX3N0YXRzIGNvdW50ZXJfc3RhdHM7LyoqPFRoZSBjb3VudGVyIHN0YXRzLiAqLwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzoyMTQKZXJy b3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKICogICBUaGUgVmVyYnMgb2JqZWN0IGluaXRpYWxpc2VkLCBOVUxMIG90 aGVyd2lzZSBhbmQgcnRlX2Vycm5vIGlzIHNldC4KICovCnN0cnVjdCBtbHg1X2luZF90YWJsZV9p YnYgKgptbHg1X2luZF90YWJsZV9pYnZfbmV3KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50 MTZfdCBxdWV1ZXNbXSwKCQkgICAgICAgdWludDE2X3QgcXVldWVzX24pCnsKCXN0cnVjdCBwcml2 ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsKCXN0cnVjdCBtbHg1X2luZF90YWJsZV9p YnYgKmluZF90Ymw7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVf cnhxLmM6MTIxOAplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jOiBwYXRjaCBkb2Vz IG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0eC5oLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJTElTVF9FTlRSWShtbHg1X2luZF90YWJsZV9p YnYpIG5leHQ7IC8qIFBvaW50ZXIgdG8gdGhlIG5leHQgZWxlbWVudC4gKi8KCXJ0ZV9hdG9taWMz Ml90IHJlZmNudDsgLyogUmVmZXJlbmNlIGNvdW50ZXIuICovCglzdHJ1Y3QgaWJ2X3J3cV9pbmRf dGFibGUgKmluZF90YWJsZTsgLyoqPCBJbmRpcmVjdGlvbiB0YWJsZS4gKi8KCXVpbnQxNl90IHF1 ZXVlc19uOyAvKio8IE51bWJlciBvZiBxdWV1ZXMgaW4gdGhlIGxpc3QuICovCgl1aW50MTZfdCBx dWV1ZXNbXTsgLyoqPCBRdWV1ZSBsaXN0LiAqLwp9OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L21seDUvbWx4NV9yeHR4Lmg6MTM0CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21s eDVfcnh0eC5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9zZmMvc2ZjX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBz ZmNfcnhxICpyeHE7Cgl1bnNpZ25lZCBpbnQgcnhxX2h3X2luZGV4X21pbjsKCXVuc2lnbmVkIGlu dCByeHFfaHdfaW5kZXhfbWF4OwoJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19j b25mID0gcnNzLT5yc3NfY29uZjsKCXVpbnQ2NF90IHJzc19oZjsKLS0KCWlmIChyc3MtPm51bSA9 PSAwKQoJCXJldHVybiAtRUlOVkFMOwoKCXJ4cV9zd19pbmRleCA9IHNhLT5yeHFfY291bnQgLSAx OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6MTIzNApl cnJvcjogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoJCQkJaWYgKGVycikKCQkJCQlnb3RvIGV4aXRfYWN0aW9uX25vdF9zdXBw b3J0ZWQ7CgkJCX0KCQkJaWYgKGZsb3cgJiYgcnNzKQoJCQkJZXJyID0gcnNzX2FkZF9hY3Rpb25z KGZsb3csIHBtZCwgcnNzLCBlcnJvcik7CgkJfSBlbHNlIHsKCQkJZ290byBleGl0X2FjdGlvbl9u b3Rfc3VwcG9ydGVkOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdGFwL3RhcF9m bG93LmM6MTIxNQplcnJvcjogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQkgICAgIGkgPCBldGhfZGV2LT5kYXRhLT5u Yl9yeF9xdWV1ZXM7ICsraSkKCQkJCQlpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW2ldKQoJ CQkJCQlxdWV1ZVtqKytdID0gaTsKCQkJCWFjdGlvbl9yc3MucnNzX2NvbmYgPSAmcnNzX2NvbmY7 CgkJCQlhY3Rpb25fcnNzLm51bSA9IGo7CgkJCQlhY3Rpb25fcnNzLnF1ZXVlID0gcXVldWU7CgkJ CQlyZXQgPSBydGVfZmxvd192YWxpZGF0ZShzYS0+cG9ydGlkLCAmc2EtPmF0dHIsCgkJCQkJCQlz YS0+cGF0dGVybiwgc2EtPmFjdGlvbiwKCQkJCQkJCSZlcnIpOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuYzoyMDIKZXJyb3I6IGV4YW1wbGVzL2lwc2Vj LXNlY2d3L2lwc2VjLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9s aWJydGVfZXRoZXIvcnRlX2Zsb3cuYy4uLgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxv dy5jOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVf ZXRoZXIvcnRlX2Zsb3cuaC4uLgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBO byBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CipSZXBvOiBkcGRrLW5leHQtZXZlbnRkZXYKQ2hlY2tp bmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgovKiogU3RvcmFnZSBmb3Igc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgaW5j bHVkaW5nIGV4dGVybmFsIGRhdGEuICovCnN0cnVjdCBhY3Rpb25fcnNzX2RhdGEgewoJc3RydWN0 IHJ0ZV9mbG93X2FjdGlvbl9yc3MgY29uZjsKCXVpbnQxNl90IHF1ZXVlW0FDVElPTl9SU1NfUVVF VUVfTlVNXTsKCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJzc19jb25mOwoJdWludDhfdCByc3Nf a2V5W1JTU19IQVNIX0tFWV9MRU5HVEhdOwp9OwoKLyoqIE1heGltdW0gbnVtYmVyIG9mIHN1YnNl cXVlbnQgdG9rZW5zIGFuZCBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiAqLwoKZXJyb3I6IHBhdGNo IGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jOjE5MgplcnJvcjogYXBwL3Rlc3Qt cG1kL2NtZGxpbmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBh cHAvdGVzdC1wbWQvY29uZmlnLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJb2Zm ID0gMDsKCQlpZiAoZHN0LnJzcykKCQkJKmRzdC5yc3MgPSAoc3RydWN0IHJ0ZV9mbG93X2FjdGlv bl9yc3MpewoJCQkJLm51bSA9IHNyYy5yc3MtPm51bSwKCQkJfTsKLS0KCQkJfQoJCQlvZmYgKz0g c2l6ZTsKCQl9CgkJc2l6ZSA9IG9mZjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBt ZC9jb25maWcuYzoxMDg0CmVycm9yOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6IHBhdGNoIGRvZXMg bm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5y c3QuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgouLiB0YWJsZTo6IFJTUwoKICAgKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICB8IEZpZWxk ICAgICAgICB8IFZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0tCiAgICstLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCkFjdGlvbjogYGBQRmBg Cl5eXl5eXl5eXl5eXl5eCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL3Byb2dfZ3Vp ZGUvcnRlX2Zsb3cucnN0OjEzMDkKZXJyb3I6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxv dy5yc3Q6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2Ux MDAwL2UxMDAwX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKI2lmbmRl ZiBfRTEwMDBfRVRIREVWX0hfCiNkZWZpbmUgX0UxMDAwX0VUSERFVl9IXwojaW5jbHVkZSA8cnRl X3RpbWUuaD4KI2luY2x1ZGUgPHJ0ZV9wY2kuaD4KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2 ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGhkZXYuaDo0CmVycm9yOiBkcml2ZXJzL25ldC9lMTAwMC9l MTAwMF9ldGhkZXYuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVy cy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoj ZGVmaW5lIElHQl9ERUZBVUxUX1RYX0hUSFJFU0ggICAgICAxCiNkZWZpbmUgSUdCX0RFRkFVTFRf VFhfV1RIUkVTSCAgICAgICgoaHctPm1hYy50eXBlID09IGUxMDAwXzgyNTc2KSA/IDEgOiAxNikK CiNkZWZpbmUgSUdCX0hLRVlfTUFYX0lOREVYIDEwCgovKiBCaXQgc2hpZnQgYW5kIG1hc2sgKi8K I2RlZmluZSBJR0JfNF9CSVRfV0lEVEggIChDSEFSX0JJVCAvIDIpCiNkZWZpbmUgSUdCXzRfQklU X01BU0sgICBSVEVfTEVOMk1BU0soSUdCXzRfQklUX1dJRFRILCB1aW50OF90KQoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0aGRldi5jOjQxCmVycm9yOiBkcml2 ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgoJcnNzID0gKGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzICopYWN0 LT5jb25mOwoKCWlmICghcnNzIHx8ICFyc3MtPm51bSkgewoJCXJ0ZV9mbG93X2Vycm9yX3NldChl cnJvciwgRUlOVkFMLAoJCQkJUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sCgkJCQlhY3QsCgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZmxvdy5jOjEyOTIKZXJy b3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6Cn0KCmludAppZ2JfY29uZmlnX3Jzc19maWx0ZXIoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsCgkJc3RydWN0IGlnYl9ydGVfZmxvd19yc3NfY29uZiAqY29uZiwgYm9vbCBh ZGQpCi0tCglzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiByc3NfY29uZiA9IGNvbmYtPnJzc19jb25m OwoJc3RydWN0IGUxMDAwX2ZpbHRlcl9pbmZvICpmaWx0ZXJfaW5mbyA9CgkJRTEwMDBfREVWX1BS SVZBVEVfVE9fRklMVEVSX0lORk8oZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CglzdHJ1Y3QgZTEw MDBfaHcgKmh3ID0gRTEwMDBfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2Jfcnh0eC5jOjI4 OTgKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFw cGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2luY2x1ZGUgPGludHR5cGVzLmg+CiNpbmNsdWRlIDxh c3NlcnQuaD4KCiNpbmNsdWRlIDxydGVfZWFsLmg+CiNpbmNsdWRlIDxydGVfc3RyaW5nX2Zucy5o PgojaW5jbHVkZSA8cnRlX3BjaS5oPgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExCmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2lmbmRlZiBfSTQw RV9FVEhERVZfSF8KI2RlZmluZSBfSTQwRV9FVEhERVZfSF8KCiNpbmNsdWRlIDxydGVfZXRoX2N0 cmwuaD4KI2luY2x1ZGUgPHJ0ZV90aW1lLmg+Ci0tCgojZGVmaW5lIEk0MEVfVkxBTl9UQUdfU0la RSAgICAgICAgNAoKI2RlZmluZSBJNDBFX0FRX0xFTiAgICAgICAgICAgICAgIDMyCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2Lmg6NQplcnJvcjogZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoKCWlmIChhY3Rpb25fZmxhZykgewoJCWZvciAobiA9IDA7IG4gPCA2NDsgbisr KSB7CgkJCWlmIChyc3MtPnJzc19jb25mLT5yc3NfaGYgJiAoaGZfYml0IDw8IG4pKSB7CgkJCQlj b25mX2luZm8tPnJlZ2lvblswXS5od19mbG93dHlwZVswXSA9IG47CgkJCQljb25mX2luZm8tPnJl Z2lvblswXS5mbG93dHlwZV9udW0gPSAxOwoJCQkJY29uZl9pbmZvLT5xdWV1ZV9yZWdpb25fbnVt YmVyID0gMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93 LmM6NDIwNwplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMu Li4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojZGVmaW5lIElYR0JFX1FVRVVFX1NUQVRf Q09VTlRFUlMgKHNpemVvZihod19zdGF0cy0+cXByYykgLyBzaXplb2YoaHdfc3RhdHMtPnFwcmNb MF0pKQoKI2RlZmluZSBJWEdCRV9IS0VZX01BWF9JTkRFWCAxMAoKLyogQWRkaXRpb25hbCB0aW1l c3luYyB2YWx1ZXMuICovCiNkZWZpbmUgTlNFQ19QRVJfU0VDICAgICAgICAgICAgIDEwMDAwMDAw MDBMCiNkZWZpbmUgSVhHQkVfSU5DVkFMXzEwR0IgICAgICAgIDB4NjY2NjY2NjYKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jOjEwMAplcnJvcjog ZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oLi4uCmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoKI2lmbmRlZiBfSVhHQkVfRVRIREVWX0hfCiNkZWZpbmUgX0lY R0JFX0VUSERFVl9IXwojaW5jbHVkZSAiYmFzZS9peGdiZV90eXBlLmgiCiNpbmNsdWRlICJiYXNl L2l4Z2JlX2RjYi5oIgojaW5jbHVkZSAiYmFzZS9peGdiZV9kY2JfODI1OTkuaCIKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oOjQKZXJyb3I6IGRy aXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVj a2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgoJcnNzID0gKGNvbnN0IHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNz ICopYWN0LT5jb25mOwoKCWlmICghcnNzIHx8ICFyc3MtPm51bSkgewoJCXJ0ZV9mbG93X2Vycm9y X3NldChlcnJvciwgRUlOVkFMLAoJCQkJUlRFX0ZMT1dfRVJST1JfVFlQRV9BQ1RJT04sCgkJCQlh Y3QsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6 Mjc2MQplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMuLi4K SHVuayAjMSBzdWNjZWVkZWQgYXQgNTcxMCAob2Zmc2V0IDM1IGxpbmVzKS4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6Cgl1aW50MTZfdCBqOwoJdWludDE2X3Qgc3BfcmV0YV9zaXplOwoJdWlu dDMyX3QgcmV0YV9yZWc7CglzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiByc3NfY29uZiA9IGNvbmYt PnJzc19jb25mOwoJc3RydWN0IGl4Z2JlX2ZpbHRlcl9pbmZvICpmaWx0ZXJfaW5mbyA9CgkJSVhH QkVfREVWX1BSSVZBVEVfVE9fRklMVEVSX0lORk8oZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOjU2ODQK ZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgkJCSAgICAgIiBmb3IgVURQIFJTUyBhbmQgaW5uZXIgVlhMQU4gUlNT Iik7CgkJCS8qIEZha2Ugc3VwcG9ydCBmb3IgYWxsIHBvc3NpYmxlIFJTUyBoYXNoIGZpZWxkcy4g Ki8KCQkJcHJpdi0+aHdfcnNzX3N1cCA9IH5VSU5UNjRfQygwKTsKCQkJcHJpdi0+aHdfcnNzX3N1 cCA9IG1seDRfY29udl9yc3NfaGYocHJpdiwgLTEpOwoJCQkvKiBGaWx0ZXIgb3V0IGtub3duIHVu c3VwcG9ydGVkIGZpZWxkcy4gKi8KCQkJcHJpdi0+aHdfcnNzX3N1cCAmPQoJCQkJfih1aW50NjRf dCkoSUJWX1JYX0hBU0hfU1JDX1BPUlRfVURQIHwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvbmV0L21seDQvbWx4NC5jOjU2OQplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0LmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9m bG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cn07CgovKioKICogQ29udmVydCBE UERLIFJTUyBoYXNoIGZpZWxkcyB0byB0aGVpciBWZXJicyBlcXVpdmFsZW50LgogKgotLQptbHg0 X2NvbnZfcnNzX2hmKHN0cnVjdCBwcml2ICpwcml2LCB1aW50NjRfdCByc3NfaGYpCnsKCWVudW0g eyBJUFY0LCBJUFY2LCBUQ1AsIFVEUCwgfTsKCWNvbnN0IHVpbnQ2NF90IGluW10gPSB7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOjc2CmVycm9yOiBk cml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5oLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoKLyogbWx4NF9mbG93LmMgKi8KCnVpbnQ2NF90IG1seDRfY29udl9yc3NfaGYo c3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90IHJzc19oZik7CmludCBtbHg0X2Zsb3dfc3luYyhz dHJ1Y3QgcHJpdiAqcHJpdiwgc3RydWN0IHJ0ZV9mbG93X2Vycm9yICplcnJvcik7CnZvaWQgbWx4 NF9mbG93X2NsZWFuKHN0cnVjdCBwcml2ICpwcml2KTsKaW50IG1seDRfZmlsdGVyX2N0cmwoc3Ry dWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9t bHg0L21seDRfZmxvdy5oOjQ3CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5oOiBw YXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRf cnhxLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqLwpzdHJ1Y3QgbWx4NF9yc3Mg KgptbHg0X3Jzc19nZXQoc3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90IGZpZWxkcywKCSAgICAg dWludDhfdCBrZXlbTUxYNF9SU1NfSEFTSF9LRVlfU0laRV0sCgkgICAgIHVpbnQxNl90IHF1ZXVl cywgY29uc3QgdWludDE2X3QgcXVldWVfaWRbXSkKewoJc3RydWN0IG1seDRfcnNzICpyc3M7Cgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmM6ODgKZXJyb3I6 IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4dHguaC4uLgplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKaW50IG1seDRfcnNzX2luaXQoc3RydWN0IHByaXYgKnByaXYpOwp2b2lkIG1s eDRfcnNzX2RlaW5pdChzdHJ1Y3QgcHJpdiAqcHJpdik7CnN0cnVjdCBtbHg0X3JzcyAqbWx4NF9y c3NfZ2V0KHN0cnVjdCBwcml2ICpwcml2LCB1aW50NjRfdCBmaWVsZHMsCgkJCSAgICAgIHVpbnQ4 X3Qga2V5W01MWDRfUlNTX0hBU0hfS0VZX1NJWkVdLAoJCQkgICAgICB1aW50MTZfdCBxdWV1ZXMs IGNvbnN0IHVpbnQxNl90IHF1ZXVlX2lkW10pOwp2b2lkIG1seDRfcnNzX3B1dChzdHJ1Y3QgbWx4 NF9yc3MgKnJzcyk7CmludCBtbHg0X3Jzc19hdHRhY2goc3RydWN0IG1seDRfcnNzICpyc3MpOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4dHguaDoxMjYKZXJy b3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHR4Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CglUQUlMUV9FTlRSWShydGVfZmxvdykgbmV4dDsgLyoqPCBQb2ludGVy IHRvIHRoZSBuZXh0IGZsb3cgc3RydWN0dXJlLiAqLwoJdWludDMyX3QgbWFyazoxOyAvKio8IFNl dCBpZiB0aGUgZmxvdyBpcyBtYXJrZWQuICovCgl1aW50MzJfdCBkcm9wOjE7IC8qKjwgRHJvcCBx dWV1ZS4gKi8KCXVpbnQxNl90IHF1ZXVlc19uOyAvKio8IE51bWJlciBvZiBlbnRyaWVzIGluIHF1 ZXVlW10uICovCgl1aW50MTZfdCAoKnF1ZXVlcylbXTsgLyoqPCBRdWV1ZXMgaW5kZXhlcyB0byB1 c2UuICovCglzdHJ1Y3QgcnRlX2V0aF9yc3NfY29uZiByc3NfY29uZjsgLyoqPCBSU1MgY29uZmln dXJhdGlvbiAqLwoJdWludDhfdCByc3Nfa2V5WzQwXTsgLyoqPCBjb3B5IG9mIHRoZSBSU1Mga2V5 LiAqLwoJc3RydWN0IGlidl9jb3VudGVyX3NldCAqY3M7IC8qKjwgSG9sZHMgdGhlIGNvdW50ZXJz IGZvciB0aGUgcnVsZS4gKi8KCXN0cnVjdCBtbHg1X2Zsb3dfY291bnRlcl9zdGF0cyBjb3VudGVy X3N0YXRzOy8qKjxUaGUgY291bnRlciBzdGF0cy4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6MjE0CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21s eDVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC9tbHg1L21seDVfcnhxLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqICAgVGhl IFZlcmJzIG9iamVjdCBpbml0aWFsaXNlZCwgTlVMTCBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBp cyBzZXQuCiAqLwpzdHJ1Y3QgbWx4NV9pbmRfdGFibGVfaWJ2ICoKbWx4NV9pbmRfdGFibGVfaWJ2 X25ldyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDE2X3QgcXVldWVzW10sCgkJICAgICAg IHVpbnQxNl90IHF1ZXVlc19uKQp7CglzdHJ1Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2 X3ByaXZhdGU7CglzdHJ1Y3QgbWx4NV9pbmRfdGFibGVfaWJ2ICppbmRfdGJsOwoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jOjEyMTgKZXJyb3I6IGRyaXZl cnMvbmV0L21seDUvbWx4NV9yeHEuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4dHguaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCUxJU1RfRU5UUlkobWx4NV9pbmRfdGFibGVfaWJ2KSBuZXh0OyAvKiBQb2ludGVyIHRv IHRoZSBuZXh0IGVsZW1lbnQuICovCglydGVfYXRvbWljMzJfdCByZWZjbnQ7IC8qIFJlZmVyZW5j ZSBjb3VudGVyLiAqLwoJc3RydWN0IGlidl9yd3FfaW5kX3RhYmxlICppbmRfdGFibGU7IC8qKjwg SW5kaXJlY3Rpb24gdGFibGUuICovCgl1aW50MTZfdCBxdWV1ZXNfbjsgLyoqPCBOdW1iZXIgb2Yg cXVldWVzIGluIHRoZSBsaXN0LiAqLwoJdWludDE2X3QgcXVldWVzW107IC8qKjwgUXVldWUgbGlz dC4gKi8KfTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0 eC5oOjEzNAplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4dHguaDogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglzdHJ1Y3Qgc2ZjX3J4cSAqcnhxOwoJdW5zaWduZWQg aW50IHJ4cV9od19pbmRleF9taW47Cgl1bnNpZ25lZCBpbnQgcnhxX2h3X2luZGV4X21heDsKCWNv bnN0IHN0cnVjdCBydGVfZXRoX3Jzc19jb25mICpyc3NfY29uZiA9IHJzcy0+cnNzX2NvbmY7Cgl1 aW50NjRfdCByc3NfaGY7Ci0tCglpZiAocnNzLT5udW0gPT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsK CglyeHFfc3dfaW5kZXggPSBzYS0+cnhxX2NvdW50IC0gMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOjEyMzQKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9z ZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25l dC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCWlmIChl cnIpCgkJCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoJCQl9CgkJCWlmIChmbG93 ICYmIHJzcykKCQkJCWVyciA9IHJzc19hZGRfYWN0aW9ucyhmbG93LCBwbWQsIHJzcywgZXJyb3Ip OwoJCX0gZWxzZSB7CgkJCWdvdG8gZXhpdF9hY3Rpb25fbm90X3N1cHBvcnRlZDsKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jOjEyMTUKZXJyb3I6IGRyaXZl cnMvbmV0L3RhcC90YXBfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJCQkJICAgICBpIDwgZXRoX2Rldi0+ZGF0YS0+bmJfcnhfcXVldWVzOyArK2kpCgkJCQkJ aWYgKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVlc1tpXSkKCQkJCQkJcXVldWVbaisrXSA9IGk7CgkJ CQlhY3Rpb25fcnNzLnJzc19jb25mID0gJnJzc19jb25mOwoJCQkJYWN0aW9uX3Jzcy5udW0gPSBq OwoJCQkJYWN0aW9uX3Jzcy5xdWV1ZSA9IHF1ZXVlOwoJCQkJcmV0ID0gcnRlX2Zsb3dfdmFsaWRh dGUoc2EtPnBvcnRpZCwgJnNhLT5hdHRyLAoJCQkJCQkJc2EtPnBhdHRlcm4sIHNhLT5hY3Rpb24s CgkJCQkJCQkmZXJyKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL2lwc2VjLXNlY2d3 L2lwc2VjLmM6MjAyCmVycm9yOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmMu Li4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuYzogTm8gc3VjaCBmaWxlIG9yIGRp cmVjdG9yeQpDaGVja2luZyBwYXRjaCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KZXJy b3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQoqUmVwbzogZHBkay1uZXh0LW5ldApDaGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGlu ZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3Ry dWN0IGFjdGlvbl9yc3NfZGF0YSB7CglzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJ dWludDE2X3QgcXVldWVbQUNUSU9OX1JTU19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNz X2NvbmYgcnNzX2NvbmY7Cgl1aW50OF90IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07 CgovKiogTWF4aW11bSBudW1iZXIgb2Ygc3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBv biB0aGUgc3RhY2suICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGlu ZV9mbG93LmM6MTkyCmVycm9yOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0 LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+ bnVtLAoJCQl9OwotLQoJCQl9CgkJCW9mZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJy b3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOjEwODQKZXJyb3I6IGFwcC90 ZXN0LXBtZC9jb25maWcuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9j L2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCi4uIHRhYmxlOjogUlNTCgogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwgRmllbGQgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAg ICAgICAgICAgICAgIHwKLS0KICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKwoKQWN0aW9uOiBgYFBGYGAKXl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjog ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojaWZuZGVmIF9FMTAwMF9FVEhERVZfSF8KI2RlZmluZSBf RTEwMDBfRVRIREVWX0hfCiNpbmNsdWRlIDxydGVfdGltZS5oPgojaW5jbHVkZSA8cnRlX3BjaS5o PgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5o OjQKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNkZWZpbmUgSUdCX0RFRkFVTFRfVFhfSFRIUkVT SCAgICAgIDEKI2RlZmluZSBJR0JfREVGQVVMVF9UWF9XVEhSRVNIICAgICAgKChody0+bWFjLnR5 cGUgPT0gZTEwMDBfODI1NzYpID8gMSA6IDE2KQoKI2RlZmluZSBJR0JfSEtFWV9NQVhfSU5ERVgg MTAKCi8qIEJpdCBzaGlmdCBhbmQgbWFzayAqLwojZGVmaW5lIElHQl80X0JJVF9XSURUSCAgKENI QVJfQklUIC8gMikKI2RlZmluZSBJR0JfNF9CSVRfTUFTSyAgIFJURV9MRU4yTUFTSyhJR0JfNF9C SVRfV0lEVEgsIHVpbnQ4X3QpCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAw MC9pZ2JfZXRoZGV2LmM6NDEKZXJyb3I6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdi X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29uc3Qgc3Ry dWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwgIXJzcy0+ bnVtKSB7CgkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVfRkxPV19F UlJPUl9UWVBFX0FDVElPTiwKCQkJCWFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9mbG93LmM6MTI5MgplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zs b3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEw MDAvaWdiX3J4dHguYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKfQoKaW50CmlnYl9j b25maWdfcnNzX2ZpbHRlcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKCQlzdHJ1Y3QgaWdiX3J0 ZV9mbG93X3Jzc19jb25mICpjb25mLCBib29sIGFkZCkKLS0KCXN0cnVjdCBydGVfZXRoX3Jzc19j b25mIHJzc19jb25mID0gY29uZi0+cnNzX2NvbmY7CglzdHJ1Y3QgZTEwMDBfZmlsdGVyX2luZm8g KmZpbHRlcl9pbmZvID0KCQlFMTAwMF9ERVZfUFJJVkFURV9UT19GSUxURVJfSU5GTyhkZXYtPmRh dGEtPmRldl9wcml2YXRlKTsKCXN0cnVjdCBlMTAwMF9odyAqaHcgPSBFMTAwMF9ERVZfUFJJVkFU RV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4LmM6Mjg5OAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAv aWdiX3J4dHguYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaW5j bHVkZSA8aW50dHlwZXMuaD4KI2luY2x1ZGUgPGFzc2VydC5oPgoKI2luY2x1ZGUgPHJ0ZV9lYWwu aD4KI2luY2x1ZGUgPHJ0ZV9zdHJpbmdfZm5zLmg+CiNpbmNsdWRlIDxydGVfcGNpLmg+CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEKZXJyb3I6 IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgojaWZuZGVmIF9JNDBFX0VUSERFVl9IXwojZGVmaW5lIF9JNDBFX0VU SERFVl9IXwoKI2luY2x1ZGUgPHJ0ZV9ldGhfY3RybC5oPgojaW5jbHVkZSA8cnRlX3RpbWUuaD4K LS0KCiNkZWZpbmUgSTQwRV9WTEFOX1RBR19TSVpFICAgICAgICA0CgojZGVmaW5lIEk0MEVfQVFf TEVOICAgICAgICAgICAgICAgMzIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuaDo1CmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2Lmg6 IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQw ZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgoJaWYgKGFjdGlvbl9mbGFn KSB7CgkJZm9yIChuID0gMDsgbiA8IDY0OyBuKyspIHsKCQkJaWYgKHJzcy0+cnNzX2NvbmYtPnJz c19oZiAmIChoZl9iaXQgPDwgbikpIHsKCQkJCWNvbmZfaW5mby0+cmVnaW9uWzBdLmh3X2Zsb3d0 eXBlWzBdID0gbjsKCQkJCWNvbmZfaW5mby0+cmVnaW9uWzBdLmZsb3d0eXBlX251bSA9IDE7CgkJ CQljb25mX2luZm8tPnF1ZXVlX3JlZ2lvbl9udW1iZXIgPSAxOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYzo0MjA3CmVycm9yOiBkcml2ZXJzL25ldC9p NDBlL2k0MGVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCiNkZWZpbmUgSVhHQkVfUVVFVUVfU1RBVF9DT1VOVEVSUyAoc2l6ZW9mKGh3X3N0YXRzLT5x cHJjKSAvIHNpemVvZihod19zdGF0cy0+cXByY1swXSkpCgojZGVmaW5lIElYR0JFX0hLRVlfTUFY X0lOREVYIDEwCgovKiBBZGRpdGlvbmFsIHRpbWVzeW5jIHZhbHVlcy4gKi8KI2RlZmluZSBOU0VD X1BFUl9TRUMgICAgICAgICAgICAgMTAwMDAwMDAwMEwKI2RlZmluZSBJWEdCRV9JTkNWQUxfMTBH QiAgICAgICAgMHg2NjY2NjY2NgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfZXRoZGV2LmM6MTAwCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhk ZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojaWZuZGVm IF9JWEdCRV9FVEhERVZfSF8KI2RlZmluZSBfSVhHQkVfRVRIREVWX0hfCiNpbmNsdWRlICJiYXNl L2l4Z2JlX3R5cGUuaCIKI2luY2x1ZGUgImJhc2UvaXhnYmVfZGNiLmgiCiNpbmNsdWRlICJiYXNl L2l4Z2JlX2RjYl84MjU5OS5oIgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfZXRoZGV2Lmg6NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2 Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2Jl L2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29u c3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3MgKilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwg IXJzcy0+bnVtKSB7CgkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVf RkxPV19FUlJPUl9UWVBFX0FDVElPTiwKCQkJCWFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRy aXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzoyNzYxCmVycm9yOiBkcml2ZXJzL25ldC9peGdi ZS9peGdiZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1NjU1IChv ZmZzZXQgLTIwIGxpbmVzKS4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl1aW50MTZfdCBq OwoJdWludDE2X3Qgc3BfcmV0YV9zaXplOwoJdWludDMyX3QgcmV0YV9yZWc7CglzdHJ1Y3QgcnRl X2V0aF9yc3NfY29uZiByc3NfY29uZiA9IGNvbmYtPnJzc19jb25mOwoJc3RydWN0IGl4Z2JlX2Zp bHRlcl9pbmZvICpmaWx0ZXJfaW5mbyA9CgkJSVhHQkVfREVWX1BSSVZBVEVfVE9fRklMVEVSX0lO Rk8oZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOjU2ODQKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4 Z2JlX3J4dHguYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvbWx4NC9tbHg0LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCSAgICAgIiBm b3IgVURQIFJTUyBhbmQgaW5uZXIgVlhMQU4gUlNTIik7CgkJCS8qIEZha2Ugc3VwcG9ydCBmb3Ig YWxsIHBvc3NpYmxlIFJTUyBoYXNoIGZpZWxkcy4gKi8KCQkJcHJpdi0+aHdfcnNzX3N1cCA9IH5V SU5UNjRfQygwKTsKCQkJcHJpdi0+aHdfcnNzX3N1cCA9IG1seDRfY29udl9yc3NfaGYocHJpdiwg LTEpOwoJCQkvKiBGaWx0ZXIgb3V0IGtub3duIHVuc3VwcG9ydGVkIGZpZWxkcy4gKi8KCQkJcHJp di0+aHdfcnNzX3N1cCAmPQoJCQkJfih1aW50NjRfdCkoSUJWX1JYX0hBU0hfU1JDX1BPUlRfVURQ IHwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NC5jOjU2OQplcnJv cjogZHJpdmVycy9uZXQvbWx4NC9tbHg0LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6Cn07CgovKioKICogQ29udmVydCBEUERLIFJTUyBoYXNoIGZpZWxkcyB0byB0aGVp ciBWZXJicyBlcXVpdmFsZW50LgogKgotLQptbHg0X2NvbnZfcnNzX2hmKHN0cnVjdCBwcml2ICpw cml2LCB1aW50NjRfdCByc3NfaGYpCnsKCWVudW0geyBJUFY0LCBJUFY2LCBUQ1AsIFVEUCwgfTsK CWNvbnN0IHVpbnQ2NF90IGluW10gPSB7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25l dC9tbHg0L21seDRfZmxvdy5jOjc2CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5j OiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21s eDRfZmxvdy5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKLyogbWx4NF9mbG93LmMg Ki8KCnVpbnQ2NF90IG1seDRfY29udl9yc3NfaGYoc3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90 IHJzc19oZik7CmludCBtbHg0X2Zsb3dfc3luYyhzdHJ1Y3QgcHJpdiAqcHJpdiwgc3RydWN0IHJ0 ZV9mbG93X2Vycm9yICplcnJvcik7CnZvaWQgbWx4NF9mbG93X2NsZWFuKHN0cnVjdCBwcml2ICpw cml2KTsKaW50IG1seDRfZmlsdGVyX2N0cmwoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5oOjQ3CmVycm9yOiBk cml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnhxLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CiAqLwpzdHJ1Y3QgbWx4NF9yc3MgKgptbHg0X3Jzc19nZXQoc3RydWN0IHByaXYg KnByaXYsIHVpbnQ2NF90IGZpZWxkcywKCSAgICAgdWludDhfdCBrZXlbTUxYNF9SU1NfSEFTSF9L RVlfU0laRV0sCgkgICAgIHVpbnQxNl90IHF1ZXVlcywgY29uc3QgdWludDE2X3QgcXVldWVfaWRb XSkKewoJc3RydWN0IG1seDRfcnNzICpyc3M7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9tbHg0L21seDRfcnhxLmM6ODgKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9t bHg0X3J4dHguaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKaW50IG1seDRfcnNzX2lu aXQoc3RydWN0IHByaXYgKnByaXYpOwp2b2lkIG1seDRfcnNzX2RlaW5pdChzdHJ1Y3QgcHJpdiAq cHJpdik7CnN0cnVjdCBtbHg0X3JzcyAqbWx4NF9yc3NfZ2V0KHN0cnVjdCBwcml2ICpwcml2LCB1 aW50NjRfdCBmaWVsZHMsCgkJCSAgICAgIHVpbnQ4X3Qga2V5W01MWDRfUlNTX0hBU0hfS0VZX1NJ WkVdLAoJCQkgICAgICB1aW50MTZfdCBxdWV1ZXMsIGNvbnN0IHVpbnQxNl90IHF1ZXVlX2lkW10p Owp2b2lkIG1seDRfcnNzX3B1dChzdHJ1Y3QgbWx4NF9yc3MgKnJzcyk7CmludCBtbHg0X3Jzc19h dHRhY2goc3RydWN0IG1seDRfcnNzICpyc3MpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvbWx4NC9tbHg0X3J4dHguaDoxMjYKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9y eHR4Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21s eDUvbWx4NV9mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglUQUlMUV9FTlRS WShydGVfZmxvdykgbmV4dDsgLyoqPCBQb2ludGVyIHRvIHRoZSBuZXh0IGZsb3cgc3RydWN0dXJl LiAqLwoJdWludDMyX3QgbWFyazoxOyAvKio8IFNldCBpZiB0aGUgZmxvdyBpcyBtYXJrZWQuICov Cgl1aW50MzJfdCBkcm9wOjE7IC8qKjwgRHJvcCBxdWV1ZS4gKi8KCXVpbnQxNl90IHF1ZXVlc19u OyAvKio8IE51bWJlciBvZiBlbnRyaWVzIGluIHF1ZXVlW10uICovCgl1aW50MTZfdCAoKnF1ZXVl cylbXTsgLyoqPCBRdWV1ZXMgaW5kZXhlcyB0byB1c2UuICovCglzdHJ1Y3QgcnRlX2V0aF9yc3Nf Y29uZiByc3NfY29uZjsgLyoqPCBSU1MgY29uZmlndXJhdGlvbiAqLwoJdWludDhfdCByc3Nfa2V5 WzQwXTsgLyoqPCBjb3B5IG9mIHRoZSBSU1Mga2V5LiAqLwoJc3RydWN0IGlidl9jb3VudGVyX3Nl dCAqY3M7IC8qKjwgSG9sZHMgdGhlIGNvdW50ZXJzIGZvciB0aGUgcnVsZS4gKi8KCXN0cnVjdCBt bHg1X2Zsb3dfY291bnRlcl9zdGF0cyBjb3VudGVyX3N0YXRzOy8qKjxUaGUgY291bnRlciBzdGF0 cy4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmM6 MjE0CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhxLmMuLi4KZXJyb3I6 IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqICAgVGhlIFZlcmJzIG9iamVjdCBpbml0aWFsaXNlZCwg TlVMTCBvdGhlcndpc2UgYW5kIHJ0ZV9lcnJubyBpcyBzZXQuCiAqLwpzdHJ1Y3QgbWx4NV9pbmRf dGFibGVfaWJ2ICoKbWx4NV9pbmRfdGFibGVfaWJ2X25ldyhzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgdWludDE2X3QgcXVldWVzW10sCgkJICAgICAgIHVpbnQxNl90IHF1ZXVlc19uKQp7CglzdHJ1 Y3QgcHJpdiAqcHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7CglzdHJ1Y3QgbWx4NV9pbmRf dGFibGVfaWJ2ICppbmRfdGJsOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4 NS9tbHg1X3J4cS5jOjEyMTgKZXJyb3I6IGRyaXZlcnMvbmV0L21seDUvbWx4NV9yeHEuYzogcGF0 Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4 dHguaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCUxJU1RfRU5UUlkobWx4NV9pbmRf dGFibGVfaWJ2KSBuZXh0OyAvKiBQb2ludGVyIHRvIHRoZSBuZXh0IGVsZW1lbnQuICovCglydGVf YXRvbWljMzJfdCByZWZjbnQ7IC8qIFJlZmVyZW5jZSBjb3VudGVyLiAqLwoJc3RydWN0IGlidl9y d3FfaW5kX3RhYmxlICppbmRfdGFibGU7IC8qKjwgSW5kaXJlY3Rpb24gdGFibGUuICovCgl1aW50 MTZfdCBxdWV1ZXNfbjsgLyoqPCBOdW1iZXIgb2YgcXVldWVzIGluIHRoZSBsaXN0LiAqLwoJdWlu dDE2X3QgcXVldWVzW107IC8qKjwgUXVldWUgbGlzdC4gKi8KfTsKCgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0eC5oOjEzNAplcnJvcjogZHJpdmVycy9uZXQv bWx4NS9tbHg1X3J4dHguaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJp dmVycy9uZXQvc2ZjL3NmY19mbG93LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglz dHJ1Y3Qgc2ZjX3J4cSAqcnhxOwoJdW5zaWduZWQgaW50IHJ4cV9od19pbmRleF9taW47Cgl1bnNp Z25lZCBpbnQgcnhxX2h3X2luZGV4X21heDsKCWNvbnN0IHN0cnVjdCBydGVfZXRoX3Jzc19jb25m ICpyc3NfY29uZiA9IHJzcy0+cnNzX2NvbmY7Cgl1aW50NjRfdCByc3NfaGY7Ci0tCglpZiAocnNz LT5udW0gPT0gMCkKCQlyZXR1cm4gLUVJTlZBTDsKCglyeHFfc3dfaW5kZXggPSBzYS0+cnhxX2Nv dW50IC0gMTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5j OjEyMzQKZXJyb3I6IGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCWlmIChlcnIpCgkJCQkJZ290byBleGl0X2FjdGlvbl9u b3Rfc3VwcG9ydGVkOwoJCQl9CgkJCWlmIChmbG93ICYmIHJzcykKCQkJCWVyciA9IHJzc19hZGRf YWN0aW9ucyhmbG93LCBwbWQsIHJzcywgZXJyb3IpOwoJCX0gZWxzZSB7CgkJCWdvdG8gZXhpdF9h Y3Rpb25fbm90X3N1cHBvcnRlZDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L3Rh cC90YXBfZmxvdy5jOjEyMTUKZXJyb3I6IGRyaXZlcnMvbmV0L3RhcC90YXBfZmxvdy5jOiBwYXRj aCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNl Yy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJICAgICBpIDwgZXRoX2Rldi0+ ZGF0YS0+bmJfcnhfcXVldWVzOyArK2kpCgkJCQkJaWYgKGV0aF9kZXYtPmRhdGEtPnJ4X3F1ZXVl c1tpXSkKCQkJCQkJcXVldWVbaisrXSA9IGk7CgkJCQlhY3Rpb25fcnNzLnJzc19jb25mID0gJnJz c19jb25mOwoJCQkJYWN0aW9uX3Jzcy5udW0gPSBqOwoJCQkJYWN0aW9uX3Jzcy5xdWV1ZSA9IHF1 ZXVlOwoJCQkJcmV0ID0gcnRlX2Zsb3dfdmFsaWRhdGUoc2EtPnBvcnRpZCwgJnNhLT5hdHRyLAoJ CQkJCQkJc2EtPnBhdHRlcm4sIHNhLT5hY3Rpb24sCgkJCQkJCQkmZXJyKTsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmM6MjAyCmVycm9yOiBleGFtcGxl cy9pcHNlYy1zZWNndy9pcHNlYy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRj aCBsaWIvbGlicnRlX2V0aGVyL3J0ZV9mbG93LmMuLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIv cnRlX2Zsb3cuYzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpDaGVja2luZyBwYXRjaCBsaWIv bGlicnRlX2V0aGVyL3J0ZV9mbG93LmguLi4KZXJyb3I6IGxpYi9saWJydGVfZXRoZXIvcnRlX2Zs b3cuaDogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQoqUmVwbzogZHBkay1uZXh0LWNyeXB0bwpD aGVja2luZyBwYXRjaCBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6Ci8qKiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jz cyBpbmNsdWRpbmcgZXh0ZXJuYWwgZGF0YS4gKi8Kc3RydWN0IGFjdGlvbl9yc3NfZGF0YSB7Cglz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyBjb25mOwoJdWludDE2X3QgcXVldWVbQUNUSU9OX1JT U19RVUVVRV9OVU1dOwoJc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgcnNzX2NvbmY7Cgl1aW50OF90 IHJzc19rZXlbUlNTX0hBU0hfS0VZX0xFTkdUSF07Cn07CgovKiogTWF4aW11bSBudW1iZXIgb2Yg c3Vic2VxdWVudCB0b2tlbnMgYW5kIGFyZ3VtZW50cyBvbiB0aGUgc3RhY2suICovCgplcnJvcjog cGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmM6MTkyCmVycm9yOiBhcHAv dGVzdC1wbWQvY21kbGluZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGFwcC90ZXN0LXBtZC9jb25maWcuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CQlvZmYgPSAwOwoJCWlmIChkc3QucnNzKQoJCQkqZHN0LnJzcyA9IChzdHJ1Y3QgcnRlX2Zsb3df YWN0aW9uX3Jzcyl7CgkJCQkubnVtID0gc3JjLnJzcy0+bnVtLAoJCQl9OwotLQoJCQl9CgkJCW9m ZiArPSBzaXplOwoJCX0KCQlzaXplID0gb2ZmOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogYXBwL3Rl c3QtcG1kL2NvbmZpZy5jOjEwODQKZXJyb3I6IGFwcC90ZXN0LXBtZC9jb25maWcuYzogcGF0Y2gg ZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9m bG93LnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi4uIHRhYmxlOjogUlNTCgog ICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgIHwg RmllbGQgICAgICAgIHwgVmFsdWUgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLS0KICAgKy0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKQWN0aW9uOiBg YFBGYGAKXl5eXl5eXl5eXl5eXl4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRvYy9ndWlkZXMvcHJv Z19ndWlkZS9ydGVfZmxvdy5yc3Q6MTMwOQplcnJvcjogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0 ZV9mbG93LnJzdDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvZTEwMDAvZTEwMDBfZXRoZGV2LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgoj aWZuZGVmIF9FMTAwMF9FVEhERVZfSF8KI2RlZmluZSBfRTEwMDBfRVRIREVWX0hfCiNpbmNsdWRl IDxydGVfdGltZS5oPgojaW5jbHVkZSA8cnRlX3BjaS5oPgoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2UxMDAwL2UxMDAwX2V0aGRldi5oOjQKZXJyb3I6IGRyaXZlcnMvbmV0L2Ux MDAwL2UxMDAwX2V0aGRldi5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CiNkZWZpbmUgSUdCX0RFRkFVTFRfVFhfSFRIUkVTSCAgICAgIDEKI2RlZmluZSBJR0JfREVG QVVMVF9UWF9XVEhSRVNIICAgICAgKChody0+bWFjLnR5cGUgPT0gZTEwMDBfODI1NzYpID8gMSA6 IDE2KQoKI2RlZmluZSBJR0JfSEtFWV9NQVhfSU5ERVggMTAKCi8qIEJpdCBzaGlmdCBhbmQgbWFz ayAqLwojZGVmaW5lIElHQl80X0JJVF9XSURUSCAgKENIQVJfQklUIC8gMikKI2RlZmluZSBJR0Jf NF9CSVRfTUFTSyAgIFJURV9MRU4yTUFTSyhJR0JfNF9CSVRfV0lEVEgsIHVpbnQ4X3QpCgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9lMTAwMC9pZ2JfZXRoZGV2LmM6NDEKZXJyb3I6 IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yc3Mg KilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwgIXJzcy0+bnVtKSB7CgkJcnRlX2Zsb3dfZXJyb3Jf c2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwKCQkJCWFj dCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9mbG93LmM6MTI5 MgplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKfQoKaW50CmlnYl9jb25maWdfcnNzX2ZpbHRlcihzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwKCQlzdHJ1Y3QgaWdiX3J0ZV9mbG93X3Jzc19jb25mICpjb25mLCBi b29sIGFkZCkKLS0KCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJzc19jb25mID0gY29uZi0+cnNz X2NvbmY7CglzdHJ1Y3QgZTEwMDBfZmlsdGVyX2luZm8gKmZpbHRlcl9pbmZvID0KCQlFMTAwMF9E RVZfUFJJVkFURV9UT19GSUxURVJfSU5GTyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKCXN0cnVj dCBlMTAwMF9odyAqaHcgPSBFMTAwMF9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9w cml2YXRlKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9yeHR4 LmM6Mjg5OAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYzogcGF0Y2ggZG9lcyBu b3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaW5jbHVkZSA8aW50dHlwZXMuaD4KI2luY2x1 ZGUgPGFzc2VydC5oPgoKI2luY2x1ZGUgPHJ0ZV9lYWwuaD4KI2luY2x1ZGUgPHJ0ZV9zdHJpbmdf Zm5zLmg+CiNpbmNsdWRlIDxydGVfcGNpLmg+CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5oLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgojaWZuZGVm IF9JNDBFX0VUSERFVl9IXwojZGVmaW5lIF9JNDBFX0VUSERFVl9IXwoKI2luY2x1ZGUgPHJ0ZV9l dGhfY3RybC5oPgojaW5jbHVkZSA8cnRlX3RpbWUuaD4KLS0KCiNkZWZpbmUgSTQwRV9WTEFOX1RB R19TSVpFICAgICAgICA0CgojZGVmaW5lIEk0MEVfQVFfTEVOICAgICAgICAgICAgICAgMzIKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuaDo1CmVycm9y OiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9mbG93LmMuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgoJaWYgKGFjdGlvbl9mbGFnKSB7CgkJZm9yIChuID0gMDsgbiA8IDY0 OyBuKyspIHsKCQkJaWYgKHJzcy0+cnNzX2NvbmYtPnJzc19oZiAmIChoZl9iaXQgPDwgbikpIHsK CQkJCWNvbmZfaW5mby0+cmVnaW9uWzBdLmh3X2Zsb3d0eXBlWzBdID0gbjsKCQkJCWNvbmZfaW5m by0+cmVnaW9uWzBdLmZsb3d0eXBlX251bSA9IDE7CgkJCQljb25mX2luZm8tPnF1ZXVlX3JlZ2lv bl9udW1iZXIgPSAxOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaTQwZS9pNDBl X2Zsb3cuYzo0MjA3CmVycm9yOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhk ZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCiNkZWZpbmUgSVhHQkVfUVVFVUVf U1RBVF9DT1VOVEVSUyAoc2l6ZW9mKGh3X3N0YXRzLT5xcHJjKSAvIHNpemVvZihod19zdGF0cy0+ cXByY1swXSkpCgojZGVmaW5lIElYR0JFX0hLRVlfTUFYX0lOREVYIDEwCgovKiBBZGRpdGlvbmFs IHRpbWVzeW5jIHZhbHVlcy4gKi8KI2RlZmluZSBOU0VDX1BFUl9TRUMgICAgICAgICAgICAgMTAw MDAwMDAwMEwKI2RlZmluZSBJWEdCRV9JTkNWQUxfMTBHQiAgICAgICAgMHg2NjY2NjY2NgoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmM6MTAwCmVy cm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmguLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgojaWZuZGVmIF9JWEdCRV9FVEhERVZfSF8KI2RlZmlu ZSBfSVhHQkVfRVRIREVWX0hfCiNpbmNsdWRlICJiYXNlL2l4Z2JlX3R5cGUuaCIKI2luY2x1ZGUg ImJhc2UvaXhnYmVfZGNiLmgiCiNpbmNsdWRlICJiYXNlL2l4Z2JlX2RjYl84MjU5OS5oIgoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2Lmg6NAplcnJv cjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5 CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCglyc3MgPSAoY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2FjdGlv bl9yc3MgKilhY3QtPmNvbmY7CgoJaWYgKCFyc3MgfHwgIXJzcy0+bnVtKSB7CgkJcnRlX2Zsb3df ZXJyb3Jfc2V0KGVycm9yLCBFSU5WQUwsCgkJCQlSVEVfRkxPV19FUlJPUl9UWVBFX0FDVElPTiwK CQkJCWFjdCwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2Zs b3cuYzoyNzYxCmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9mbG93LmM6IHBhdGNoIGRv ZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHgu Yy4uLgpIdW5rICMxIHN1Y2NlZWRlZCBhdCA1NzEwIChvZmZzZXQgMzUgbGluZXMpLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCXVpbnQxNl90IGo7Cgl1aW50MTZfdCBzcF9yZXRhX3NpemU7 Cgl1aW50MzJfdCByZXRhX3JlZzsKCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJzc19jb25mID0g Y29uZi0+cnNzX2NvbmY7CglzdHJ1Y3QgaXhnYmVfZmlsdGVyX2luZm8gKmZpbHRlcl9pbmZvID0K CQlJWEdCRV9ERVZfUFJJVkFURV9UT19GSUxURVJfSU5GTyhkZXYtPmRhdGEtPmRldl9wcml2YXRl KTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmM6 NTY4NAplcnJvcjogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jOiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDQuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJICAgICAiIGZvciBVRFAgUlNTIGFuZCBpbm5lciBWWExB TiBSU1MiKTsKCQkJLyogRmFrZSBzdXBwb3J0IGZvciBhbGwgcG9zc2libGUgUlNTIGhhc2ggZmll bGRzLiAqLwoJCQlwcml2LT5od19yc3Nfc3VwID0gflVJTlQ2NF9DKDApOwoJCQlwcml2LT5od19y c3Nfc3VwID0gbWx4NF9jb252X3Jzc19oZihwcml2LCAtMSk7CgkJCS8qIEZpbHRlciBvdXQga25v d24gdW5zdXBwb3J0ZWQgZmllbGRzLiAqLwoJCQlwcml2LT5od19yc3Nfc3VwICY9CgkJCQl+KHVp bnQ2NF90KShJQlZfUlhfSEFTSF9TUkNfUE9SVF9VRFAgfAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbWx4NC9tbHg0LmM6NTY5CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21seDQu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9t bHg0X2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKfTsKCi8qKgogKiBDb252 ZXJ0IERQREsgUlNTIGhhc2ggZmllbGRzIHRvIHRoZWlyIFZlcmJzIGVxdWl2YWxlbnQuCiAqCi0t Cm1seDRfY29udl9yc3NfaGYoc3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90IHJzc19oZikKewoJ ZW51bSB7IElQVjQsIElQVjYsIFRDUCwgVURQLCB9OwoJY29uc3QgdWludDY0X3QgaW5bXSA9IHsK CmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6NzYKZXJy b3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNo ZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93LmguLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgovKiBtbHg0X2Zsb3cuYyAqLwoKdWludDY0X3QgbWx4NF9jb252X3Jz c19oZihzdHJ1Y3QgcHJpdiAqcHJpdiwgdWludDY0X3QgcnNzX2hmKTsKaW50IG1seDRfZmxvd19z eW5jKHN0cnVjdCBwcml2ICpwcml2LCBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKTsKdm9p ZCBtbHg0X2Zsb3dfY2xlYW4oc3RydWN0IHByaXYgKnByaXYpOwppbnQgbWx4NF9maWx0ZXJfY3Ry bChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L21seDQvbWx4NF9mbG93Lmg6NDcKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9mbG93 Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDQv bWx4NF9yeHEuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICovCnN0cnVjdCBtbHg0 X3JzcyAqCm1seDRfcnNzX2dldChzdHJ1Y3QgcHJpdiAqcHJpdiwgdWludDY0X3QgZmllbGRzLAoJ ICAgICB1aW50OF90IGtleVtNTFg0X1JTU19IQVNIX0tFWV9TSVpFXSwKCSAgICAgdWludDE2X3Qg cXVldWVzLCBjb25zdCB1aW50MTZfdCBxdWV1ZV9pZFtdKQp7CglzdHJ1Y3QgbWx4NF9yc3MgKnJz czsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHEuYzo4OApl cnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgppbnQgbWx4NF9yc3NfaW5pdChzdHJ1Y3QgcHJpdiAqcHJpdik7CnZv aWQgbWx4NF9yc3NfZGVpbml0KHN0cnVjdCBwcml2ICpwcml2KTsKc3RydWN0IG1seDRfcnNzICpt bHg0X3Jzc19nZXQoc3RydWN0IHByaXYgKnByaXYsIHVpbnQ2NF90IGZpZWxkcywKCQkJICAgICAg dWludDhfdCBrZXlbTUxYNF9SU1NfSEFTSF9LRVlfU0laRV0sCgkJCSAgICAgIHVpbnQxNl90IHF1 ZXVlcywgY29uc3QgdWludDE2X3QgcXVldWVfaWRbXSk7CnZvaWQgbWx4NF9yc3NfcHV0KHN0cnVj dCBtbHg0X3JzcyAqcnNzKTsKaW50IG1seDRfcnNzX2F0dGFjaChzdHJ1Y3QgbWx4NF9yc3MgKnJz cyk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDRfcnh0eC5oOjEy NgplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4dHguaDogcGF0Y2ggZG9lcyBub3QgYXBw bHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYy4uLgplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCVRBSUxRX0VOVFJZKHJ0ZV9mbG93KSBuZXh0OyAvKio8IFBv aW50ZXIgdG8gdGhlIG5leHQgZmxvdyBzdHJ1Y3R1cmUuICovCgl1aW50MzJfdCBtYXJrOjE7IC8q KjwgU2V0IGlmIHRoZSBmbG93IGlzIG1hcmtlZC4gKi8KCXVpbnQzMl90IGRyb3A6MTsgLyoqPCBE cm9wIHF1ZXVlLiAqLwoJdWludDE2X3QgcXVldWVzX247IC8qKjwgTnVtYmVyIG9mIGVudHJpZXMg aW4gcXVldWVbXS4gKi8KCXVpbnQxNl90ICgqcXVldWVzKVtdOyAvKio8IFF1ZXVlcyBpbmRleGVz IHRvIHVzZS4gKi8KCXN0cnVjdCBydGVfZXRoX3Jzc19jb25mIHJzc19jb25mOyAvKio8IFJTUyBj b25maWd1cmF0aW9uICovCgl1aW50OF90IHJzc19rZXlbNDBdOyAvKio8IGNvcHkgb2YgdGhlIFJT UyBrZXkuICovCglzdHJ1Y3QgaWJ2X2NvdW50ZXJfc2V0ICpjczsgLyoqPCBIb2xkcyB0aGUgY291 bnRlcnMgZm9yIHRoZSBydWxlLiAqLwoJc3RydWN0IG1seDVfZmxvd19jb3VudGVyX3N0YXRzIGNv dW50ZXJfc3RhdHM7LyoqPFRoZSBjb3VudGVyIHN0YXRzLiAqLwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzoyMTQKZXJyb3I6IGRyaXZlcnMvbmV0L21s eDUvbWx4NV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L21seDUvbWx4NV9yeHEuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKICog ICBUaGUgVmVyYnMgb2JqZWN0IGluaXRpYWxpc2VkLCBOVUxMIG90aGVyd2lzZSBhbmQgcnRlX2Vy cm5vIGlzIHNldC4KICovCnN0cnVjdCBtbHg1X2luZF90YWJsZV9pYnYgKgptbHg1X2luZF90YWJs ZV9pYnZfbmV3KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MTZfdCBxdWV1ZXNbXSwKCQkg ICAgICAgdWludDE2X3QgcXVldWVzX24pCnsKCXN0cnVjdCBwcml2ICpwcml2ID0gZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZTsKCXN0cnVjdCBtbHg1X2luZF90YWJsZV9pYnYgKmluZF90Ymw7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhxLmM6MTIxOAplcnJvcjog ZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2lu ZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0eC5oLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoJTElTVF9FTlRSWShtbHg1X2luZF90YWJsZV9pYnYpIG5leHQ7IC8qIFBvaW50 ZXIgdG8gdGhlIG5leHQgZWxlbWVudC4gKi8KCXJ0ZV9hdG9taWMzMl90IHJlZmNudDsgLyogUmVm ZXJlbmNlIGNvdW50ZXIuICovCglzdHJ1Y3QgaWJ2X3J3cV9pbmRfdGFibGUgKmluZF90YWJsZTsg LyoqPCBJbmRpcmVjdGlvbiB0YWJsZS4gKi8KCXVpbnQxNl90IHF1ZXVlc19uOyAvKio8IE51bWJl ciBvZiBxdWV1ZXMgaW4gdGhlIGxpc3QuICovCgl1aW50MTZfdCBxdWV1ZXNbXTsgLyoqPCBRdWV1 ZSBsaXN0LiAqLwp9OwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L21seDUvbWx4 NV9yeHR4Lmg6MTM0CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnh0eC5oOiBwYXRjaCBk b2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYy4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXN0cnVjdCBzZmNfcnhxICpyeHE7Cgl1bnNp Z25lZCBpbnQgcnhxX2h3X2luZGV4X21pbjsKCXVuc2lnbmVkIGludCByeHFfaHdfaW5kZXhfbWF4 OwoJY29uc3Qgc3RydWN0IHJ0ZV9ldGhfcnNzX2NvbmYgKnJzc19jb25mID0gcnNzLT5yc3NfY29u ZjsKCXVpbnQ2NF90IHJzc19oZjsKLS0KCWlmIChyc3MtPm51bSA9PSAwKQoJCXJldHVybiAtRUlO VkFMOwoKCXJ4cV9zd19pbmRleCA9IHNhLT5yeHFfY291bnQgLSAxOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvc2ZjL3NmY19mbG93LmM6MTIzNAplcnJvcjogZHJpdmVycy9uZXQv c2ZjL3NmY19mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZl cnMvbmV0L3RhcC90YXBfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkJ aWYgKGVycikKCQkJCQlnb3RvIGV4aXRfYWN0aW9uX25vdF9zdXBwb3J0ZWQ7CgkJCX0KCQkJaWYg KGZsb3cgJiYgcnNzKQoJCQkJZXJyID0gcnNzX2FkZF9hY3Rpb25zKGZsb3csIHBtZCwgcnNzLCBl cnJvcik7CgkJfSBlbHNlIHsKCQkJZ290byBleGl0X2FjdGlvbl9ub3Rfc3VwcG9ydGVkOwoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6MTIxNQplcnJvcjog ZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5n IHBhdGNoIGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJj aGluZyBmb3I6CgkJCQkgICAgIGkgPCBldGhfZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7ICsraSkK CQkJCQlpZiAoZXRoX2Rldi0+ZGF0YS0+cnhfcXVldWVzW2ldKQoJCQkJCQlxdWV1ZVtqKytdID0g aTsKCQkJCWFjdGlvbl9yc3MucnNzX2NvbmYgPSAmcnNzX2NvbmY7CgkJCQlhY3Rpb25fcnNzLm51 bSA9IGo7CgkJCQlhY3Rpb25fcnNzLnF1ZXVlID0gcXVldWU7CgkJCQlyZXQgPSBydGVfZmxvd192 YWxpZGF0ZShzYS0+cG9ydGlkLCAmc2EtPmF0dHIsCgkJCQkJCQlzYS0+cGF0dGVybiwgc2EtPmFj dGlvbiwKCQkJCQkJCSZlcnIpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvaXBzZWMt c2VjZ3cvaXBzZWMuYzoyMDIKZXJyb3I6IGV4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLmM6IHBh dGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zs b3cuYy4uLgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jOiBObyBzdWNoIGZpbGUg b3IgZGlyZWN0b3J5CkNoZWNraW5nIHBhdGNoIGxpYi9saWJydGVfZXRoZXIvcnRlX2Zsb3cuaC4u LgplcnJvcjogbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CipSZXBvOiBkcGRrLW5leHQtdmlydGlvCkNoZWNraW5nIHBhdGNoIGFwcC90ZXN0LXBt ZC9jbWRsaW5lX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKLyoqIFN0b3Jh Z2UgZm9yIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzIGluY2x1ZGluZyBleHRlcm5hbCBkYXRh LiAqLwpzdHJ1Y3QgYWN0aW9uX3Jzc19kYXRhIHsKCXN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNz IGNvbmY7Cgl1aW50MTZfdCBxdWV1ZVtBQ1RJT05fUlNTX1FVRVVFX05VTV07CglzdHJ1Y3QgcnRl X2V0aF9yc3NfY29uZiByc3NfY29uZjsKCXVpbnQ4X3QgcnNzX2tleVtSU1NfSEFTSF9LRVlfTEVO R1RIXTsKfTsKCi8qKiBNYXhpbXVtIG51bWJlciBvZiBzdWJzZXF1ZW50IHRva2VucyBhbmQgYXJn dW1lbnRzIG9uIHRoZSBzdGFjay4gKi8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGFwcC90ZXN0LXBt ZC9jbWRsaW5lX2Zsb3cuYzoxOTIKZXJyb3I6IGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYzog cGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggYXBwL3Rlc3QtcG1kL2NvbmZpZy5j Li4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCW9mZiA9IDA7CgkJaWYgKGRzdC5yc3Mp CgkJCSpkc3QucnNzID0gKHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcnNzKXsKCQkJCS5udW0gPSBz cmMucnNzLT5udW0sCgkJCX07Ci0tCgkJCX0KCQkJb2ZmICs9IHNpemU7CgkJfQoJCXNpemUgPSBv ZmY7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBhcHAvdGVzdC1wbWQvY29uZmlnLmM6MTA4NAplcnJv cjogYXBwL3Rlc3QtcG1kL2NvbmZpZy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBw YXRjaCBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0Li4uCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoKLi4gdGFibGU6OiBSU1MKCiAgICstLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgfCBGaWVsZCAgICAgICAgfCBWYWx1ZSAgICAg ICAgICAgICAgICAgICAgICAgICAgfAotLQogICArLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rCgpBY3Rpb246IGBgUEZgYApeXl5eXl5eXl5eXl5eXgoKZXJy b3I6IHBhdGNoIGZhaWxlZDogZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdDoxMzA5 CmVycm9yOiBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0OiBwYXRjaCBkb2VzIG5v dCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9lMTAwMC9lMTAwMF9ldGhkZXYuaC4u LgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCiNpZm5kZWYgX0UxMDAwX0VUSERFVl9IXwoj ZGVmaW5lIF9FMTAwMF9FVEhERVZfSF8KI2luY2x1ZGUgPHJ0ZV90aW1lLmg+CiNpbmNsdWRlIDxy dGVfcGNpLmg+CgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBf ZXRoZGV2Lmg6NAplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvZTEwMDBfZXRoZGV2Lmg6IHBhdGNo IGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2UxMDAwL2lnYl9ldGhk ZXYuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2RlZmluZSBJR0JfREVGQVVMVF9U WF9IVEhSRVNIICAgICAgMQojZGVmaW5lIElHQl9ERUZBVUxUX1RYX1dUSFJFU0ggICAgICAoKGh3 LT5tYWMudHlwZSA9PSBlMTAwMF84MjU3NikgPyAxIDogMTYpCgojZGVmaW5lIElHQl9IS0VZX01B WF9JTkRFWCAxMAoKLyogQml0IHNoaWZ0IGFuZCBtYXNrICovCiNkZWZpbmUgSUdCXzRfQklUX1dJ RFRIICAoQ0hBUl9CSVQgLyAyKQojZGVmaW5lIElHQl80X0JJVF9NQVNLICAgUlRFX0xFTjJNQVNL KElHQl80X0JJVF9XSURUSCwgdWludDhfdCkKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L2UxMDAwL2lnYl9ldGhkZXYuYzo0MQplcnJvcjogZHJpdmVycy9uZXQvZTEwMDAvaWdiX2V0 aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9l MTAwMC9pZ2JfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXJzcyA9IChj b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAqKWFjdC0+Y29uZjsKCglpZiAoIXJzcyB8 fCAhcnNzLT5udW0pIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwKCQkJCVJU RV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoJCQkJYWN0LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvZTEwMDAvaWdiX2Zsb3cuYzoxMjkyCmVycm9yOiBkcml2ZXJzL25ldC9lMTAw MC9pZ2JfZmxvdy5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9lMTAwMC9pZ2Jfcnh0eC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgp9Cgpp bnQKaWdiX2NvbmZpZ19yc3NfZmlsdGVyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAoJCXN0cnVj dCBpZ2JfcnRlX2Zsb3dfcnNzX2NvbmYgKmNvbmYsIGJvb2wgYWRkKQotLQoJc3RydWN0IHJ0ZV9l dGhfcnNzX2NvbmYgcnNzX2NvbmYgPSBjb25mLT5yc3NfY29uZjsKCXN0cnVjdCBlMTAwMF9maWx0 ZXJfaW5mbyAqZmlsdGVyX2luZm8gPQoJCUUxMDAwX0RFVl9QUklWQVRFX1RPX0ZJTFRFUl9JTkZP KGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoJc3RydWN0IGUxMDAwX2h3ICpodyA9IEUxMDAwX0RF Vl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvZTEwMDAvaWdiX3J4dHguYzoyODk4CmVycm9yOiBkcml2ZXJzL25l dC9lMTAwMC9pZ2Jfcnh0eC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBk cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CiNpbmNsdWRlIDxpbnR0eXBlcy5oPgojaW5jbHVkZSA8YXNzZXJ0Lmg+CgojaW5jbHVkZSA8 cnRlX2VhbC5oPgojaW5jbHVkZSA8cnRlX3N0cmluZ19mbnMuaD4KI2luY2x1ZGUgPHJ0ZV9wY2ku aD4KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MQplcnJvcjogZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBh cHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmguLi4KZXJy b3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiNpZm5kZWYgX0k0MEVfRVRIREVWX0hfCiNkZWZpbmUg X0k0MEVfRVRIREVWX0hfCgojaW5jbHVkZSA8cnRlX2V0aF9jdHJsLmg+CiNpbmNsdWRlIDxydGVf dGltZS5oPgotLQoKI2RlZmluZSBJNDBFX1ZMQU5fVEFHX1NJWkUgICAgICAgIDQKCiNkZWZpbmUg STQwRV9BUV9MRU4gICAgICAgICAgICAgICAzMgoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5oOjUKZXJyb3I6IGRyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aTQwZS9pNDBlX2Zsb3cuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglpZiAoYWN0 aW9uX2ZsYWcpIHsKCQlmb3IgKG4gPSAwOyBuIDwgNjQ7IG4rKykgewoJCQlpZiAocnNzLT5yc3Nf Y29uZi0+cnNzX2hmICYgKGhmX2JpdCA8PCBuKSkgewoJCQkJY29uZl9pbmZvLT5yZWdpb25bMF0u aHdfZmxvd3R5cGVbMF0gPSBuOwoJCQkJY29uZl9pbmZvLT5yZWdpb25bMF0uZmxvd3R5cGVfbnVt ID0gMTsKCQkJCWNvbmZfaW5mby0+cXVldWVfcmVnaW9uX251bWJlciA9IDE7CgplcnJvcjogcGF0 Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9pNDBlL2k0MGVfZmxvdy5jOjQyMDcKZXJyb3I6IGRyaXZl cnMvbmV0L2k0MGUvaTQwZV9mbG93LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFy Y2hpbmcgZm9yOgoKI2RlZmluZSBJWEdCRV9RVUVVRV9TVEFUX0NPVU5URVJTIChzaXplb2YoaHdf c3RhdHMtPnFwcmMpIC8gc2l6ZW9mKGh3X3N0YXRzLT5xcHJjWzBdKSkKCiNkZWZpbmUgSVhHQkVf SEtFWV9NQVhfSU5ERVggMTAKCi8qIEFkZGl0aW9uYWwgdGltZXN5bmMgdmFsdWVzLiAqLwojZGVm aW5lIE5TRUNfUEVSX1NFQyAgICAgICAgICAgICAxMDAwMDAwMDAwTAojZGVmaW5lIElYR0JFX0lO Q1ZBTF8xMEdCICAgICAgICAweDY2NjY2NjY2CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9ldGhkZXYuYzoxMDAKZXJyb3I6IGRyaXZlcnMvbmV0L2l4Z2JlL2l4 Z2JlX2V0aGRldi5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9ldGhkZXYuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoK CiNpZm5kZWYgX0lYR0JFX0VUSERFVl9IXwojZGVmaW5lIF9JWEdCRV9FVEhERVZfSF8KI2luY2x1 ZGUgImJhc2UvaXhnYmVfdHlwZS5oIgojaW5jbHVkZSAiYmFzZS9peGdiZV9kY2IuaCIKI2luY2x1 ZGUgImJhc2UvaXhnYmVfZGNiXzgyNTk5LmgiCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9ldGhkZXYuaDo0CmVycm9yOiBkcml2ZXJzL25ldC9peGdiZS9peGdi ZV9ldGhkZXYuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaXhnYmUvaXhnYmVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXJz cyA9IChjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3JzcyAqKWFjdC0+Y29uZjsKCglpZiAo IXJzcyB8fCAhcnNzLT5udW0pIHsKCQlydGVfZmxvd19lcnJvcl9zZXQoZXJyb3IsIEVJTlZBTCwK CQkJCVJURV9GTE9XX0VSUk9SX1RZUEVfQUNUSU9OLAoJCQkJYWN0LAoKZXJyb3I6IHBhdGNoIGZh aWxlZDogZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZmxvdy5jOjI3NjEKZXJyb3I6IGRyaXZlcnMv bmV0L2l4Z2JlL2l4Z2JlX2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0 Y2ggZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jLi4uCkh1bmsgIzEgc3VjY2VlZGVkIGF0 IDU3MTAgKG9mZnNldCAzNSBsaW5lcykuCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdWlu dDE2X3QgajsKCXVpbnQxNl90IHNwX3JldGFfc2l6ZTsKCXVpbnQzMl90IHJldGFfcmVnOwoJc3Ry dWN0IHJ0ZV9ldGhfcnNzX2NvbmYgcnNzX2NvbmYgPSBjb25mLT5yc3NfY29uZjsKCXN0cnVjdCBp eGdiZV9maWx0ZXJfaW5mbyAqZmlsdGVyX2luZm8gPQoJCUlYR0JFX0RFVl9QUklWQVRFX1RPX0ZJ TFRFUl9JTkZPKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOwoKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYzo1Njg0CmVycm9yOiBkcml2ZXJzL25ldC9p eGdiZS9peGdiZV9yeHR4LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L21seDQvbWx4NC5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCQkg ICAgICIgZm9yIFVEUCBSU1MgYW5kIGlubmVyIFZYTEFOIFJTUyIpOwoJCQkvKiBGYWtlIHN1cHBv cnQgZm9yIGFsbCBwb3NzaWJsZSBSU1MgaGFzaCBmaWVsZHMuICovCgkJCXByaXYtPmh3X3Jzc19z dXAgPSB+VUlOVDY0X0MoMCk7CgkJCXByaXYtPmh3X3Jzc19zdXAgPSBtbHg0X2NvbnZfcnNzX2hm KHByaXYsIC0xKTsKCQkJLyogRmlsdGVyIG91dCBrbm93biB1bnN1cHBvcnRlZCBmaWVsZHMuICov CgkJCXByaXYtPmh3X3Jzc19zdXAgJj0KCQkJCX4odWludDY0X3QpKElCVl9SWF9IQVNIX1NSQ19Q T1JUX1VEUCB8CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg0L21seDQuYzo1 NjkKZXJyb3I6IGRyaXZlcnMvbmV0L21seDQvbWx4NC5jOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpD aGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9tbHg0L21seDRfZmxvdy5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgp9OwoKLyoqCiAqIENvbnZlcnQgRFBESyBSU1MgaGFzaCBmaWVsZHMg dG8gdGhlaXIgVmVyYnMgZXF1aXZhbGVudC4KICoKLS0KbWx4NF9jb252X3Jzc19oZihzdHJ1Y3Qg cHJpdiAqcHJpdiwgdWludDY0X3QgcnNzX2hmKQp7CgllbnVtIHsgSVBWNCwgSVBWNiwgVENQLCBV RFAsIH07Cgljb25zdCB1aW50NjRfdCBpbltdID0gewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuYzo3NgplcnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0 X2Zsb3cuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv bWx4NC9tbHg0X2Zsb3cuaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCi8qIG1seDRf Zmxvdy5jICovCgp1aW50NjRfdCBtbHg0X2NvbnZfcnNzX2hmKHN0cnVjdCBwcml2ICpwcml2LCB1 aW50NjRfdCByc3NfaGYpOwppbnQgbWx4NF9mbG93X3N5bmMoc3RydWN0IHByaXYgKnByaXYsIHN0 cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpOwp2b2lkIG1seDRfZmxvd19jbGVhbihzdHJ1Y3Qg cHJpdiAqcHJpdik7CmludCBtbHg0X2ZpbHRlcl9jdHJsKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LAoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuaDo0Nwpl cnJvcjogZHJpdmVycy9uZXQvbWx4NC9tbHg0X2Zsb3cuaDogcGF0Y2ggZG9lcyBub3QgYXBwbHkK Q2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jLi4uCmVycm9yOiB3aGls ZSBzZWFyY2hpbmcgZm9yOgogKi8Kc3RydWN0IG1seDRfcnNzICoKbWx4NF9yc3NfZ2V0KHN0cnVj dCBwcml2ICpwcml2LCB1aW50NjRfdCBmaWVsZHMsCgkgICAgIHVpbnQ4X3Qga2V5W01MWDRfUlNT X0hBU0hfS0VZX1NJWkVdLAoJICAgICB1aW50MTZfdCBxdWV1ZXMsIGNvbnN0IHVpbnQxNl90IHF1 ZXVlX2lkW10pCnsKCXN0cnVjdCBtbHg0X3JzcyAqcnNzOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDog ZHJpdmVycy9uZXQvbWx4NC9tbHg0X3J4cS5jOjg4CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0L21s eDRfcnhxLmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0 L21seDQvbWx4NF9yeHR4LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CmludCBtbHg0 X3Jzc19pbml0KHN0cnVjdCBwcml2ICpwcml2KTsKdm9pZCBtbHg0X3Jzc19kZWluaXQoc3RydWN0 IHByaXYgKnByaXYpOwpzdHJ1Y3QgbWx4NF9yc3MgKm1seDRfcnNzX2dldChzdHJ1Y3QgcHJpdiAq cHJpdiwgdWludDY0X3QgZmllbGRzLAoJCQkgICAgICB1aW50OF90IGtleVtNTFg0X1JTU19IQVNI X0tFWV9TSVpFXSwKCQkJICAgICAgdWludDE2X3QgcXVldWVzLCBjb25zdCB1aW50MTZfdCBxdWV1 ZV9pZFtdKTsKdm9pZCBtbHg0X3Jzc19wdXQoc3RydWN0IG1seDRfcnNzICpyc3MpOwppbnQgbWx4 NF9yc3NfYXR0YWNoKHN0cnVjdCBtbHg0X3JzcyAqcnNzKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6 IGRyaXZlcnMvbmV0L21seDQvbWx4NF9yeHR4Lmg6MTI2CmVycm9yOiBkcml2ZXJzL25ldC9tbHg0 L21seDRfcnh0eC5oOiBwYXRjaCBkb2VzIG5vdCBhcHBseQpDaGVja2luZyBwYXRjaCBkcml2ZXJz L25ldC9tbHg1L21seDVfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJVEFJ TFFfRU5UUlkocnRlX2Zsb3cpIG5leHQ7IC8qKjwgUG9pbnRlciB0byB0aGUgbmV4dCBmbG93IHN0 cnVjdHVyZS4gKi8KCXVpbnQzMl90IG1hcms6MTsgLyoqPCBTZXQgaWYgdGhlIGZsb3cgaXMgbWFy a2VkLiAqLwoJdWludDMyX3QgZHJvcDoxOyAvKio8IERyb3AgcXVldWUuICovCgl1aW50MTZfdCBx dWV1ZXNfbjsgLyoqPCBOdW1iZXIgb2YgZW50cmllcyBpbiBxdWV1ZVtdLiAqLwoJdWludDE2X3Qg KCpxdWV1ZXMpW107IC8qKjwgUXVldWVzIGluZGV4ZXMgdG8gdXNlLiAqLwoJc3RydWN0IHJ0ZV9l dGhfcnNzX2NvbmYgcnNzX2NvbmY7IC8qKjwgUlNTIGNvbmZpZ3VyYXRpb24gKi8KCXVpbnQ4X3Qg cnNzX2tleVs0MF07IC8qKjwgY29weSBvZiB0aGUgUlNTIGtleS4gKi8KCXN0cnVjdCBpYnZfY291 bnRlcl9zZXQgKmNzOyAvKio8IEhvbGRzIHRoZSBjb3VudGVycyBmb3IgdGhlIHJ1bGUuICovCglz dHJ1Y3QgbWx4NV9mbG93X2NvdW50ZXJfc3RhdHMgY291bnRlcl9zdGF0czsvKio8VGhlIGNvdW50 ZXIgc3RhdHMuICovCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9tbHg1L21seDVf Zmxvdy5jOjIxNAplcnJvcjogZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4cS5jLi4u CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgogKiAgIFRoZSBWZXJicyBvYmplY3QgaW5pdGlh bGlzZWQsIE5VTEwgb3RoZXJ3aXNlIGFuZCBydGVfZXJybm8gaXMgc2V0LgogKi8Kc3RydWN0IG1s eDVfaW5kX3RhYmxlX2lidiAqCm1seDVfaW5kX3RhYmxlX2lidl9uZXcoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIHVpbnQxNl90IHF1ZXVlc1tdLAoJCSAgICAgICB1aW50MTZfdCBxdWV1ZXNfbikK ewoJc3RydWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOwoJc3RydWN0IG1s eDVfaW5kX3RhYmxlX2lidiAqaW5kX3RibDsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMv bmV0L21seDUvbWx4NV9yeHEuYzoxMjE4CmVycm9yOiBkcml2ZXJzL25ldC9tbHg1L21seDVfcnhx LmM6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L21seDUv bWx4NV9yeHR4LmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglMSVNUX0VOVFJZKG1s eDVfaW5kX3RhYmxlX2lidikgbmV4dDsgLyogUG9pbnRlciB0byB0aGUgbmV4dCBlbGVtZW50LiAq LwoJcnRlX2F0b21pYzMyX3QgcmVmY250OyAvKiBSZWZlcmVuY2UgY291bnRlci4gKi8KCXN0cnVj dCBpYnZfcndxX2luZF90YWJsZSAqaW5kX3RhYmxlOyAvKio8IEluZGlyZWN0aW9uIHRhYmxlLiAq LwoJdWludDE2X3QgcXVldWVzX247IC8qKjwgTnVtYmVyIG9mIHF1ZXVlcyBpbiB0aGUgbGlzdC4g Ki8KCXVpbnQxNl90IHF1ZXVlc1tdOyAvKio8IFF1ZXVlIGxpc3QuICovCn07CgoKZXJyb3I6IHBh dGNoIGZhaWxlZDogZHJpdmVycy9uZXQvbWx4NS9tbHg1X3J4dHguaDoxMzQKZXJyb3I6IGRyaXZl cnMvbmV0L21seDUvbWx4NV9yeHR4Lmg6IHBhdGNoIGRvZXMgbm90IGFwcGx5CkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L3NmYy9zZmNfZmxvdy5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcg Zm9yOgoJc3RydWN0IHNmY19yeHEgKnJ4cTsKCXVuc2lnbmVkIGludCByeHFfaHdfaW5kZXhfbWlu OwoJdW5zaWduZWQgaW50IHJ4cV9od19pbmRleF9tYXg7Cgljb25zdCBzdHJ1Y3QgcnRlX2V0aF9y c3NfY29uZiAqcnNzX2NvbmYgPSByc3MtPnJzc19jb25mOwoJdWludDY0X3QgcnNzX2hmOwotLQoJ aWYgKHJzcy0+bnVtID09IDApCgkJcmV0dXJuIC1FSU5WQUw7CgoJcnhxX3N3X2luZGV4ID0gc2Et PnJ4cV9jb3VudCAtIDE7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9zZmMvc2Zj X2Zsb3cuYzoxMjM0CmVycm9yOiBkcml2ZXJzL25ldC9zZmMvc2ZjX2Zsb3cuYzogcGF0Y2ggZG9l cyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvdGFwL3RhcF9mbG93LmMuLi4K ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJCQlpZiAoZXJyKQoJCQkJCWdvdG8gZXhpdF9h Y3Rpb25fbm90X3N1cHBvcnRlZDsKCQkJfQoJCQlpZiAoZmxvdyAmJiByc3MpCgkJCQllcnIgPSBy c3NfYWRkX2FjdGlvbnMoZmxvdywgcG1kLCByc3MsIGVycm9yKTsKCQl9IGVsc2UgewoJCQlnb3Rv IGV4aXRfYWN0aW9uX25vdF9zdXBwb3J0ZWQ7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJz L25ldC90YXAvdGFwX2Zsb3cuYzoxMjE1CmVycm9yOiBkcml2ZXJzL25ldC90YXAvdGFwX2Zsb3cu YzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tpbmcgcGF0Y2ggZXhhbXBsZXMvaXBzZWMtc2Vj Z3cvaXBzZWMuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkJCSAgICAgaSA8IGV0 aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgKytpKQoJCQkJCWlmIChldGhfZGV2LT5kYXRhLT5y eF9xdWV1ZXNbaV0pCgkJCQkJCXF1ZXVlW2orK10gPSBpOwoJCQkJYWN0aW9uX3Jzcy5yc3NfY29u ZiA9ICZyc3NfY29uZjsKCQkJCWFjdGlvbl9yc3MubnVtID0gajsKCQkJCWFjdGlvbl9yc3MucXVl dWUgPSBxdWV1ZTsKCQkJCXJldCA9IHJ0ZV9mbG93X3ZhbGlkYXRlKHNhLT5wb3J0aWQsICZzYS0+ YXR0ciwKCQkJCQkJCXNhLT5wYXR0ZXJuLCBzYS0+YWN0aW9uLAoJCQkJCQkJJmVycik7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5jOjIwMgplcnJvcjog ZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuYzogcGF0Y2ggZG9lcyBub3QgYXBwbHkKQ2hlY2tp bmcgcGF0Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5jLi4uCmVycm9yOiBsaWIvbGlicnRl X2V0aGVyL3J0ZV9mbG93LmM6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKQ2hlY2tpbmcgcGF0 Y2ggbGliL2xpYnJ0ZV9ldGhlci9ydGVfZmxvdy5oLi4uCmVycm9yOiBsaWIvbGlicnRlX2V0aGVy L3J0ZV9mbG93Lmg6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKCkRQREsgU1RWIHRlYW0= --===============8090443707354008531==--