ZGlmZiAtLWdpdCBhL2RvYy9oYXByb3h5LWVuLnR4dCBiL2RvYy9oYXByb3h5LWVuLnR4dAppbmRleCA4NjViZjhlLi43MzM3MmUzIDEwMDY0NAotLS0gYS9kb2MvaGFwcm94eS1lbi50eHQKKysrIGIvZG9jL2hhcHJveHktZW4udHh0CkBAIC0xMjgsNiArMTI4LDcgQEAKICAgLSBwaWRmaWxlIDxmaWxlPgogICAtIHVsaW1pdC1uIDxudW1iZXI+CiAgIC0gc3RhdHMKKyAgLSB0dW5lLm1heHBvbGxldmVudHMgPG51bWJlcj4KIAogCiAxLjEpIEV2ZW50IGxvZ2dpbmcKQEAgLTMzOCw2ICszMzksMTIgQEAKIFZlcnNpb24gMS4zLjkgaW50cm9kdWNlZCBrcXVldWUoKSBmb3IgRnJlZUJTRC9PcGVuQlNELCBhbmQgc3BlY3VsYXRpdmUgZXBvbGwoKQogd2hpY2ggY29uc2lzdHMgaW4gdHJ5aW5nIHRvIHBlcmZvcm0gSS9PIGJlZm9yZSBxdWV1aW5nIHRoZSBldmVudHMgdmlhIHN5c2NhbGxzLgogCitJbiBvcmRlciB0byBvcHRpbWl6ZSBsYXRlbmN5LCBpdCBpcyBub3cgcG9zc2libGUgdG8gbGltaXQgdGhlIG51bWJlciBvZiBldmVudHMKK3JldHVybmVkIGJ5IGEgc2luZ2xlIGNhbGwgdG8gcG9sbC4gVGhlIGxpbWl0IGlzIGZpeGVkIHRvIDIwMCBieSBkZWZhdWx0LiBJZiBhCitzbWFsbGVyIGxhdGVuY3kgaXMgc2Vla2VkLCBpdCBtYXkgYmUgdXNlZnVsIHRvIHJlZHVjZSB0aGlzIHZhbHVlIGJ5IHVzaW5nIHRoZQorJ3R1bmUubWF4cG9sbGV2ZW50cycgcGFyYW1ldGVyIGluIHRoZSAnZ2xvYmFsJyBzZWN0aW9uLiBJbmNyZWFzaW5nIGl0IHdpbGwKK3NsaWdodGx5IHNhdmUgQ1BVIGN5Y2xlcyBpbiBwcmVzZW5jZSBvZiBsYXJnZSBudW1iZXIgb2YgY29ubmVjdGlvbnMuCisKIEhhcHJveHkgd2lsbCB1c2Uga3F1ZXVlKCkgb3Igc3BlY3VsYXRpdmUgZXBvbGwoKSB3aGVuIGF2YWlsYWJsZSwgdGhlbiBlcG9sbCgpLAogYW5kIHdpbGwgZmFsbCBiYWNrIHRvIHBvbGwoKSwgdGhlbiB0byBzZWxlY3QoKS4gSG93ZXZlciwgaWYgZm9yIGFueSByZWFzb24geW91CiBuZWVkIHRvIGRpc2FibGUgZXBvbGwoKSBvciBwb2xsKCkgKGVnLiBiZWNhdXNlIG9mIGEgYnVnIG9yIGp1c3QgdG8gY29tcGFyZQpAQCAtMzUxLDYgKzM1OCw3IEBACiAgICAgICAgICMgdXNlIG9ubHkgc2VsZWN0KCkKICAgICAgICAgbm9lcG9sbAogICAgICAgICBub3BvbGwKKyAgICAgICAgdHVuZS5tYXhwb2xsZXZlbnRzIDEwMAogCiBOb3RlIDoKIC0tLS0tLQpkaWZmIC0tZ2l0IGEvZG9jL2hhcHJveHktZnIudHh0IGIvZG9jL2hhcHJveHktZnIudHh0CmluZGV4IDYzYWM5YTQuLmVjNzQ2MTEgMTAwNjQ0Ci0tLSBhL2RvYy9oYXByb3h5LWZyLnR4dAorKysgYi9kb2MvaGFwcm94eS1mci50eHQKQEAgLTEzNCw2ICsxMzQsNyBAQAogICAtIHF1aWV0CiAgIC0gcGlkZmlsZSA8ZmljaGllcj4KICAgLSB1bGltaXQtbiA8bm9tYnJlPgorICAtIHR1bmUubWF4cG9sbGV2ZW50cyA8bm9tYnJlPgogCiAKIDEuMSkgSm91cm5hbGlzYXRpb24gZGVzIOl26W5lbWVudHMKQEAgLTM2Miw2ICszNjMsMTMgQEAKIGxlcyBvcOlyYXRpb25zIGQnZW50cullcy9zb3J0aWVzIGF2YW50IGRlIGNoYe5uZXIgbGVzIOl26W5lbWVudHMgcGFyIGxlcyBhcHBlbHMKIHN5c3TobWUuCiAKK0FmaW4gZCdvcHRpbWlzZXIgbGEgbGF0ZW5jZSwgaWwgZXN0IGTpc29ybWFpcyBwb3NzaWJsZSBkZSBsaW1pdGVyIGxlIG5vbWJyZQorZCfpduluZW1lbnRzIHJlbW9udOlzIOAgY2hhcXVlIGFwcGVsLiBMYSBsaW1pdGUgcGFyIGTpZmF1dCBlc3QgZml46WUg4CAyMDAuIFNpCit1bmUgbGF0ZW5jZSBwbHVzIHBldGl0ZSBlc3QgcmVjaGVyY2jpZSwgaWwgcGV1dCDqdHJlIGp1c3RpZmnpIGQnYWJhaXNzZXIgY2V0dGUKK2xpbWl0ZSBwYXIgbCd1dGlsaXNhdGlvbiBkdSBwYXJhbeh0cmUgJ3R1bmUubWF4cG9sbGV2ZW50cycgZGFucyBsYSBzZWN0aW9uCisnZ2xvYmFsJy4gTCdhdWdtZW50ZXIgcGVybWV0dHJhIGQn6WNvbm9taXNlciB1biBwZXUgbGUgcHJvY2Vzc2V1ciBlbiBwculzZW5jZQorZGUgdHLocyBncmFuZHMgbm9tYnJlcyBkZSBjb25uZXhpb25zIHNpbXVsdGFu6WVzLgorCiBIYXByb3h5IHV0aWxpc2VyYSBrcXVldWUoKSBvdSBzcGVjdWxhdGl2ZSBlcG9sbCgpIGxvcnNxdWUgY2Ugc2VyYSBkaXNwb25pYmxlLAogcHVpcyBlcG9sbCgpLCBldCBzZSByZXBsaWVyYSBzdXIgcG9sbCgpLCBwdWlzIGVuIGRlcm5pZXIgbGlldSBzdXIgc2VsZWN0KCkuCiBDZXBlbmRhbnQsIHNpIHBvdXIgdW5lIHJhaXNvbiBxdWVsY29ucXVlIGlsIHMnYXbpcmFpdCBu6WNlc3NhaXJlIGRlIGTpc2FjdGl2ZXIKQEAgLTM3NSw2ICszODMsNyBAQAogICAgICAgICAjIHV0aWxpc2VyIHNldWxlbWVudCBzZWxlY3QoKQogICAgICAgICBub2Vwb2xsCiAgICAgICAgIG5vcG9sbAorICAgICAgICB0dW5lLm1heHBvbGxldmVudHMgMTAwCiAKIFJlbWFycXVlIDoKIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvY29tbW9uL2RlZmF1bHRzLmggYi9pbmNsdWRlL2NvbW1vbi9kZWZhdWx0cy5oCmluZGV4IGNmZTYwZTguLjE5ODI4OGYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvY29tbW9uL2RlZmF1bHRzLmgKKysrIGIvaW5jbHVkZS9jb21tb24vZGVmYXVsdHMuaApAQCAtMiw3ICsyLDcgQEAKICAgaW5jbHVkZS9jb21tb24vZGVmYXVsdHMuaAogICBNaXNjZWxsYW5lb3VzIGRlZmF1bHQgdmFsdWVzLgogCi0gIENvcHlyaWdodCAoQykgMjAwMC0yMDA2IFdpbGx5IFRhcnJlYXUgLSB3QDF3dC5ldQorICBDb3B5cmlnaHQgKEMpIDIwMDAtMjAwNyBXaWxseSBUYXJyZWF1IC0gd0Axd3QuZXUKICAgCiAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtNzgsNiArNzgsMTIgQEAKICNkZWZpbmUgTUlOX1JFVF9GT1JfUkVBRF9MT09QIDE0NjAKICNlbmRpZgogCisvLyB0aGUgbWF4IG51bWJlciBvZiBldmVudHMgcmV0dXJuZWQgaW4gb25lIGNhbGwgdG8gcG9sbC9lcG9sbC4gVG9vIHNtYWxsIGEKKy8vIHZhbHVlIHdpbGwgY2F1c2UgbG90cyBvZiBjYWxscywgYW5kIHRvbyBoaWdoIGEgdmFsdWUgbWF5IGNhdXNlIGhpZ2ggbGF0ZW5jeS4KKyNpZm5kZWYgTUFYX1BPTExfRVZFTlRTCisjZGVmaW5lIE1BWF9QT0xMX0VWRU5UUyAyMDAKKyNlbmRpZgorCiAvLyBjb29raWUgZGVsaW1pdG9yIGluICJwcmVmaXgiIG1vZGUuIFRoaXMgY2hhcmFjdGVyIGlzIGluc2VydGVkIGJldHdlZW4gdGhlCiAvLyBwZXJzaXN0ZW5jZSBjb29raWUgYW5kIHRoZSBvcmlnaW5hbCB2YWx1ZS4gVGhlICd+JyBpcyBhbGxvd2VkIGJ5IFJGQzI5NjUsCiAvLyBhbmQgc2hvdWxkIG5vdCBiZSB0b28gY29tbW9uIGluIHNlcnZlciBuYW1lcy4KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdHlwZXMvZ2xvYmFsLmggYi9pbmNsdWRlL3R5cGVzL2dsb2JhbC5oCmluZGV4IDIyMmQ0ZmUuLmIyNTk5NTQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdHlwZXMvZ2xvYmFsLmgKKysrIGIvaW5jbHVkZS90eXBlcy9nbG9iYWwuaApAQCAtNjAsNiArNjAsOSBAQAogCWludCBsb2dmYWMxLCBsb2dmYWMyOwogCWludCBsb2dsZXYxLCBsb2dsZXYyOwogCXN0cnVjdCBzb2NrYWRkcl9pbiBsb2dzcnYxLCBsb2dzcnYyOworCXN0cnVjdCB7CisJCWludCBtYXhwb2xsZXZlbnRzOyAvKiBtYXggbnVtYmVyIG9mIHBvbGwgZXZlbnRzIGF0IG9uY2UgKi8KKwl9IHR1bmU7CiB9OwogCiBleHRlcm4gc3RydWN0IGdsb2JhbCBnbG9iYWw7CmRpZmYgLS1naXQgYS9zcmMvY2ZncGFyc2UuYyBiL3NyYy9jZmdwYXJzZS5jCmluZGV4IDUwNDVlZDIuLjY5ZjExZTAgMTAwNjQ0Ci0tLSBhL3NyYy9jZmdwYXJzZS5jCisrKyBiL3NyYy9jZmdwYXJzZS5jCkBAIC0yNzYsNiArMjc2LDE3IEBACiAJZWxzZSBpZiAoIXN0cmNtcChhcmdzWzBdLCAic3RhdHMiKSkgewogCQlnbG9iYWwubW9kZSB8PSBNT0RFX1NUQVRTOwogCX0KKwllbHNlIGlmICghc3RyY21wKGFyZ3NbMF0sICJ0dW5lLm1heHBvbGxldmVudHMiKSkgeworCQlpZiAoZ2xvYmFsLnR1bmUubWF4cG9sbGV2ZW50cyAhPSAwKSB7CisJCQlBbGVydCgicGFyc2luZyBbJXM6JWRdIDogJyVzJyBhbHJlYWR5IHNwZWNpZmllZC4gQ29udGludWluZy5cbiIsIGZpbGUsIGxpbmVudW0sIGFyZ3NbMF0pOworCQkJcmV0dXJuIDA7CisJCX0KKwkJaWYgKCooYXJnc1sxXSkgPT0gMCkgeworCQkJQWxlcnQoInBhcnNpbmcgWyVzOiVkXSA6ICclcycgZXhwZWN0cyBhbiBpbnRlZ2VyIGFyZ3VtZW50LlxuIiwgZmlsZSwgbGluZW51bSwgYXJnc1swXSk7CisJCQlyZXR1cm4gLTE7CisJCX0KKwkJZ2xvYmFsLnR1bmUubWF4cG9sbGV2ZW50cyA9IGF0b2woYXJnc1sxXSk7CisJfQogCWVsc2UgaWYgKCFzdHJjbXAoYXJnc1swXSwgInVpZCIpKSB7CiAJCWlmIChnbG9iYWwudWlkICE9IDApIHsKIAkJCUFsZXJ0KCJwYXJzaW5nIFslczolZF0gOiB1c2VyL3VpZCBhbHJlYWR5IHNwZWNpZmllZC4gQ29udGludWluZy5cbiIsIGZpbGUsIGxpbmVudW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2V2X2Vwb2xsLmMgYi9zcmMvZXZfZXBvbGwuYwppbmRleCA5ZGNjYjM1Li5hMGM0OGIxIDEwMDY0NAotLS0gYS9zcmMvZXZfZXBvbGwuYworKysgYi9zcmMvZXZfZXBvbGwuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgPGNvbW1vbi9jb25maWcuaD4KICNpbmNsdWRlIDxjb21tb24vc3RhbmRhcmQuaD4KICNpbmNsdWRlIDxjb21tb24vdGltZS5oPgorI2luY2x1ZGUgPGNvbW1vbi90b29scy5oPgogCiAjaW5jbHVkZSA8dHlwZXMvZmQuaD4KICNpbmNsdWRlIDx0eXBlcy9nbG9iYWwuaD4KQEAgLTIzOCw3ICsyMzksOCBAQAogCWVsc2UKIAkJd2FpdF90aW1lID0gX190dl9tc19lbGFwc2VkKCZub3csIGV4cCkgKyAxOwogCi0Jc3RhdHVzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXBvbGxfZXZlbnRzLCBtYXhmZCwgd2FpdF90aW1lKTsKKwlmZCA9IE1JTihtYXhmZCwgZ2xvYmFsLnR1bmUubWF4cG9sbGV2ZW50cyk7CisJc3RhdHVzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXBvbGxfZXZlbnRzLCBmZCwgd2FpdF90aW1lKTsKIAl0dl9ub3coJm5vdyk7CiAKIAlmb3IgKGNvdW50ID0gMDsgY291bnQgPCBzdGF0dXM7IGNvdW50KyspIHsKQEAgLTI3OCw3ICsyODAsNyBAQAogCQlnb3RvIGZhaWxfZmQ7CiAKIAllcG9sbF9ldmVudHMgPSAoc3RydWN0IGVwb2xsX2V2ZW50KikKLQkJY2FsbG9jKDEsIHNpemVvZihzdHJ1Y3QgZXBvbGxfZXZlbnQpICogZ2xvYmFsLm1heHNvY2spOworCQljYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBlcG9sbF9ldmVudCkgKiBnbG9iYWwudHVuZS5tYXhwb2xsZXZlbnRzKTsKIAogCWlmIChlcG9sbF9ldmVudHMgPT0gTlVMTCkKIAkJZ290byBmYWlsX2VlOwpkaWZmIC0tZ2l0IGEvc3JjL2V2X2txdWV1ZS5jIGIvc3JjL2V2X2txdWV1ZS5jCmluZGV4IDg3NDAyMTcuLjc3M2RiNzQgMTAwNjQ0Ci0tLSBhL3NyYy9ldl9rcXVldWUuYworKysgYi9zcmMvZXZfa3F1ZXVlLmMKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlIDxjb21tb24vY29tcGF0Lmg+CiAjaW5jbHVkZSA8Y29tbW9uL2NvbmZpZy5oPgogI2luY2x1ZGUgPGNvbW1vbi90aW1lLmg+CisjaW5jbHVkZSA8Y29tbW9uL3Rvb2xzLmg+CiAKICNpbmNsdWRlIDx0eXBlcy9mZC5oPgogI2luY2x1ZGUgPHR5cGVzL2dsb2JhbC5oPgpAQCAtMTE4LDExICsxMTksMTIgQEAKIAkJdG9fcHRyID0gJnRpbWVvdXQ7CiAJfQogCisJZmQgPSBNSU4obWF4ZmQsIGdsb2JhbC50dW5lLm1heHBvbGxldmVudHMpOwogCXN0YXR1cyA9IGtldmVudChrcXVldWVfZmQsIC8vIGludCBrcQogCQkJTlVMTCwgICAgICAvLyBjb25zdCBzdHJ1Y3Qga2V2ZW50ICpjaGFuZ2VsaXN0CiAJCQkwLCAgICAgICAgIC8vIGludCBuY2hhbmdlcwogCQkJa2V2LCAgICAgICAvLyBzdHJ1Y3Qga2V2ZW50ICpldmVudGxpc3QKLQkJCW1heGZkLCAgICAgLy8gaW50IG5ldmVudHMKKwkJCWZkLCAgICAgICAgLy8gaW50IG5ldmVudHMKIAkJCXRvX3B0cik7ICAgLy8gY29uc3Qgc3RydWN0IHRpbWVzcGVjICp0aW1lb3V0CiAJdHZfbm93KCZub3cpOwogCkBAIC0xNjEsNyArMTYzLDcgQEAKIAlpZiAoa3F1ZXVlX2ZkIDwgMCkKIAkJZ290byBmYWlsX2ZkOwogCi0Ja2V2ID0gKHN0cnVjdCBrZXZlbnQqKWNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGtldmVudCkgKiBnbG9iYWwubWF4c29jayk7CisJa2V2ID0gKHN0cnVjdCBrZXZlbnQqKWNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGtldmVudCkgKiBnbG9iYWwudHVuZS5tYXhwb2xsZXZlbnRzKTsKIAogCWlmIChrZXYgPT0gTlVMTCkKIAkJZ290byBmYWlsX2tldjsKZGlmZiAtLWdpdCBhL3NyYy9ldl9zZXBvbGwuYyBiL3NyYy9ldl9zZXBvbGwuYwppbmRleCBkMzA0YzEyLi44NTI1NzdjIDEwMDY0NAotLS0gYS9zcmMvZXZfc2Vwb2xsLmMKKysrIGIvc3JjL2V2X3NlcG9sbC5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5jbHVkZSA8Y29tbW9uL2NvbmZpZy5oPgogI2luY2x1ZGUgPGNvbW1vbi9zdGFuZGFyZC5oPgogI2luY2x1ZGUgPGNvbW1vbi90aW1lLmg+CisjaW5jbHVkZSA8Y29tbW9uL3Rvb2xzLmg+CiAKICNpbmNsdWRlIDx0eXBlcy9mZC5oPgogI2luY2x1ZGUgPHR5cGVzL2dsb2JhbC5oPgpAQCAtMzg5LDcgKzM5MCw4IEBACiAJfQogCiAJLyogbm93IGxldCdzIHdhaXQgZm9yIHJlYWwgZXZlbnRzICovCi0Jc3RhdHVzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXBvbGxfZXZlbnRzLCBtYXhmZCwgd2FpdF90aW1lKTsKKwlmZCA9IE1JTihtYXhmZCwgZ2xvYmFsLnR1bmUubWF4cG9sbGV2ZW50cyk7CisJc3RhdHVzID0gZXBvbGxfd2FpdChlcG9sbF9mZCwgZXBvbGxfZXZlbnRzLCBmZCwgd2FpdF90aW1lKTsKIAogCXR2X25vdygmbm93KTsKIApAQCAtNDM5LDcgKzQ0MSw3IEBACiAJCWdvdG8gZmFpbF9mZDsKIAogCWVwb2xsX2V2ZW50cyA9IChzdHJ1Y3QgZXBvbGxfZXZlbnQqKQotCQljYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBlcG9sbF9ldmVudCkgKiBnbG9iYWwubWF4c29jayk7CisJCWNhbGxvYygxLCBzaXplb2Yoc3RydWN0IGVwb2xsX2V2ZW50KSAqIGdsb2JhbC50dW5lLm1heHBvbGxldmVudHMpOwogCiAJaWYgKGVwb2xsX2V2ZW50cyA9PSBOVUxMKQogCQlnb3RvIGZhaWxfZWU7CmRpZmYgLS1naXQgYS9zcmMvaGFwcm94eS5jIGIvc3JjL2hhcHJveHkuYwppbmRleCBhODZhYmViLi5lMGU0MmIyIDEwMDY0NAotLS0gYS9zcmMvaGFwcm94eS5jCisrKyBiL3NyYy9oYXByb3h5LmMKQEAgLTUyMCw2ICs1MjAsOSBAQAogCiAJZ2xvYmFsLm1heHNvY2sgKz0gZ2xvYmFsLm1heGNvbm4gKiAyOyAvKiBlYWNoIGNvbm5lY3Rpb24gbmVlZHMgdHdvIHNvY2tldHMgKi8KIAorCWlmIChnbG9iYWwudHVuZS5tYXhwb2xsZXZlbnRzIDw9IDApCisJCWdsb2JhbC50dW5lLm1heHBvbGxldmVudHMgPSBNQVhfUE9MTF9FVkVOVFM7CisKIAlpZiAoYXJnX21vZGUgJiAoTU9ERV9ERUJVRyB8IE1PREVfRk9SRUdST1VORCkpIHsKIAkJLyogY29tbWFuZCBsaW5lIGRlYnVnIG1vZGUgaW5oaWJpdHMgY29uZmlndXJhdGlvbiBtb2RlICovCiAJCWdsb2JhbC5tb2RlICY9IH4oTU9ERV9EQUVNT04gfCBNT0RFX1FVSUVUKTsK