From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Ic0kd-0007gM-BH for qemu-devel@nongnu.org; Sun, 30 Sep 2007 11:30:35 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Ic0kc-0007eN-8a for qemu-devel@nongnu.org; Sun, 30 Sep 2007 11:30:34 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ic0kc-0007e9-3K for qemu-devel@nongnu.org; Sun, 30 Sep 2007 11:30:34 -0400 Received: from mu-out-0910.google.com ([209.85.134.188]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Ic0kb-00065L-1Q for qemu-devel@nongnu.org; Sun, 30 Sep 2007 11:30:33 -0400 Received: by mu-out-0910.google.com with SMTP id w8so4680949mue for ; Sun, 30 Sep 2007 08:30:29 -0700 (PDT) Message-ID: Date: Sun, 30 Sep 2007 18:30:23 +0300 From: "Blue Swirl" Subject: Re: [Qemu-devel] Updated >2G memory patch In-Reply-To: <1191155477.29900.123.camel@rapid> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_2162_24059825.1191166228959" References: <1191072882.29900.39.camel@rapid> <200709292343.19562.paul@codesourcery.com> <1191107818.29900.53.camel@rapid> <1191155477.29900.123.camel@rapid> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "J. Mayer" Cc: qemu-devel@nongnu.org ------=_Part_2162_24059825.1191166228959 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On 9/30/07, J. Mayer wrote: > About the design, my opinion is: > - to support wider physical address spaces: > * full 32 bits targets (ie 32 bits virtual & physical address spaces) > should stay 32 bits. > * for 32 bits targets with a few more bits for their physical address > space (like the ppcemb target, which has 36 bits of physical address > space and I guess x86 with PAE extension), it seems acceptable to only > adjust the L1_BITS constants. Thanks for the comments, I updated the patch to reflect these. Can the ppcemb target be detected somehow so that the address space can be adjusted? > * for 64 bits targets, a multiple level table has to be used to avoid > the need of huge l1_xxx tables. This includes the alpha target (42 bits > of physical address space), for which I recognize the quick hack I did > commit is not really acceptable. IIRC HP's PA CPU used a hash table based TLB or MMU, maybe similar could be used so that we avoid tables after tables? > - to support more than 2 GB of RAM: > I still think you should have to use a consistent type here, not just > unsigned long. > Do you really need another new type ? It seems to me that one of > physical_addr_t or ram_addr_t could be used ? In my opinion target_phys_addr_t is specific to target, what we want should be fixed to the host. Maybe ram_addr_t is OK, I have to check where it's used. ------=_Part_2162_24059825.1191166228959 Content-Type: text/x-diff; name="qemu_ram_patch.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff"; filename="qemu_ram_patch.diff" X-Attachment-Id: f_f77pd54r SW5kZXg6IHFlbXUvY3B1LWFsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9jcHUtYWxsLmgJ MjAwNy0wOS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvY3B1LWFsbC5oCTIw MDctMDktMzAgMDc6NDE6NDUuMDAwMDAwMDAwICswMDAwCkBAIC03NzEsNyArNzcxLDcgQEAKIAog LyogbWVtb3J5IEFQSSAqLwogCi1leHRlcm4gaW50IHBoeXNfcmFtX3NpemU7CitleHRlcm4gdW5z aWduZWQgbG9uZyBwaHlzX3JhbV9zaXplOwogZXh0ZXJuIGludCBwaHlzX3JhbV9mZDsKIGV4dGVy biB1aW50OF90ICpwaHlzX3JhbV9iYXNlOwogZXh0ZXJuIHVpbnQ4X3QgKnBoeXNfcmFtX2RpcnR5 OwpAQCAtNzk3LDggKzc5Nyw4IEBACiB2b2lkIGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnko dGFyZ2V0X3BoeXNfYWRkcl90IHN0YXJ0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGxvbmcgcGh5c19vZmZzZXQpOwotdWludDMyX3QgY3B1X2dldF9waHlz aWNhbF9wYWdlX2Rlc2ModGFyZ2V0X3BoeXNfYWRkcl90IGFkZHIpOwotcmFtX2FkZHJfdCBxZW11 X3JhbV9hbGxvYyh1bnNpZ25lZCBpbnQgc2l6ZSk7Cit1bnNpZ25lZCBsb25nIGNwdV9nZXRfcGh5 c2ljYWxfcGFnZV9kZXNjKHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKTsKK3JhbV9hZGRyX3QgcWVt dV9yYW1fYWxsb2ModW5zaWduZWQgbG9uZyBzaXplKTsKIHZvaWQgcWVtdV9yYW1fZnJlZShyYW1f YWRkcl90IGFkZHIpOwogaW50IGNwdV9yZWdpc3Rlcl9pb19tZW1vcnkoaW50IGlvX2luZGV4LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1BVUmVhZE1lbW9yeUZ1bmMgKiptZW1fcmVhZCwK SW5kZXg6IHFlbXUvZXhlYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9leGVjLmMJMjAwNy0w OS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvZXhlYy5jCTIwMDctMDktMzAg MDc6NTE6NTAuMDAwMDAwMDAwICswMDAwCkBAIC03Miw5ICs3MiwxMSBAQAogI2RlZmluZSBUQVJH RVRfVklSVF9BRERSX1NQQUNFX0JJVFMgNDIKICNlbGlmIGRlZmluZWQoVEFSR0VUX1BQQzY0KQog I2RlZmluZSBUQVJHRVRfUEhZU19BRERSX1NQQUNFX0JJVFMgNDIKLSNlbHNlCisjZWxpZiBkZWZp bmVkKFVTRV9LUUVNVSkgfHwgSE9TVF9MT05HX0JJVFMgPCA2NCB8fCAhZGVmaW5lZChUQVJHRVRf STM4NikKIC8qIE5vdGU6IGZvciBjb21wYXRpYmlsaXR5IHdpdGgga3FlbXUsIHdlIHVzZSAzMiBi aXRzIGZvciB4ODZfNjQgKi8KICNkZWZpbmUgVEFSR0VUX1BIWVNfQUREUl9TUEFDRV9CSVRTIDMy CisjZWxzZQorI2RlZmluZSBUQVJHRVRfUEhZU19BRERSX1NQQUNFX0JJVFMgMzYKICNlbmRpZgog CiBUcmFuc2xhdGlvbkJsb2NrIHRic1tDT0RFX0dFTl9NQVhfQkxPQ0tTXTsKQEAgLTg2LDcgKzg4 LDcgQEAKIHVpbnQ4X3QgY29kZV9nZW5fYnVmZmVyW0NPREVfR0VOX0JVRkZFUl9TSVpFXSBfX2F0 dHJpYnV0ZV9fKChhbGlnbmVkICgzMikpKTsKIHVpbnQ4X3QgKmNvZGVfZ2VuX3B0cjsKIAotaW50 IHBoeXNfcmFtX3NpemU7Cit1bnNpZ25lZCBsb25nIHBoeXNfcmFtX3NpemU7CiBpbnQgcGh5c19y YW1fZmQ7CiB1aW50OF90ICpwaHlzX3JhbV9iYXNlOwogdWludDhfdCAqcGh5c19yYW1fZGlydHk7 CkBAIC0xMTEsNyArMTEzLDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgUGh5c1BhZ2VEZXNjIHsKICAg ICAvKiBvZmZzZXQgaW4gaG9zdCBtZW1vcnkgb2YgdGhlIHBhZ2UgKyBpb19pbmRleCBpbiB0aGUg bG93IDEyIGJpdHMgKi8KLSAgICB1aW50MzJfdCBwaHlzX29mZnNldDsKKyAgICB1bnNpZ25lZCBs b25nIHBoeXNfb2Zmc2V0OwogfSBQaHlzUGFnZURlc2M7CiAKICNkZWZpbmUgTDJfQklUUyAxMApA QCAtMTIyLDcgKzEyNCw3IEBACiAgKi8KICNkZWZpbmUgTDFfQklUUyAoVEFSR0VUX1ZJUlRfQURE Ul9TUEFDRV9CSVRTIC0gTDJfQklUUyAtIFRBUkdFVF9QQUdFX0JJVFMpCiAjZWxzZQotI2RlZmlu ZSBMMV9CSVRTICgzMiAtIEwyX0JJVFMgLSBUQVJHRVRfUEFHRV9CSVRTKQorI2RlZmluZSBMMV9C SVRTIChUQVJHRVRfUEhZU19BRERSX1NQQUNFX0JJVFMgLSBMMl9CSVRTIC0gVEFSR0VUX1BBR0Vf QklUUykKICNlbmRpZgogCiAjZGVmaW5lIEwxX1NJWkUgKDEgPDwgTDFfQklUUykKQEAgLTIxMSw3 ICsyMTMsNyBAQAogICAgIG1lbXNldChsMV9waHlzX21hcCwgMCwgTDFfU0laRSAqIHNpemVvZih2 b2lkICopKTsKIH0KIAotc3RhdGljIGlubGluZSBQYWdlRGVzYyAqcGFnZV9maW5kX2FsbG9jKHVu c2lnbmVkIGludCBpbmRleCkKK3N0YXRpYyBpbmxpbmUgUGFnZURlc2MgKnBhZ2VfZmluZF9hbGxv Yyh1bnNpZ25lZCBsb25nIGluZGV4KQogewogICAgIFBhZ2VEZXNjICoqbHAsICpwOwogCkBAIC0x OTM4LDcgKzE5NDAsNyBAQAogCiBzdGF0aWMgaW50IHN1YnBhZ2VfcmVnaXN0ZXIgKHN1YnBhZ2Vf dCAqbW1pbywgdWludDMyX3Qgc3RhcnQsIHVpbnQzMl90IGVuZCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW50IG1lbW9yeSk7Ci1zdGF0aWMgdm9pZCAqc3VicGFnZV9pbml0ICh0YXJn ZXRfcGh5c19hZGRyX3QgYmFzZSwgdWludDMyX3QgKnBoeXMsCitzdGF0aWMgdm9pZCAqc3VicGFn ZV9pbml0ICh0YXJnZXRfcGh5c19hZGRyX3QgYmFzZSwgdW5zaWduZWQgbG9uZyAqcGh5cywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcmlnX21lbW9yeSk7CiAjZGVmaW5lIENIRUNL X1NVQlBBR0UoYWRkciwgc3RhcnRfYWRkciwgc3RhcnRfYWRkcjIsIGVuZF9hZGRyLCBlbmRfYWRk cjIsIFwKICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3N1YnBhZ2UpICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTIwMzEsNyArMjAzMyw3IEBACiB9CiAKIC8qIFhY WDogdGVtcG9yYXJ5IHVudGlsIG5ldyBtZW1vcnkgbWFwcGluZyBBUEkgKi8KLXVpbnQzMl90IGNw dV9nZXRfcGh5c2ljYWxfcGFnZV9kZXNjKHRhcmdldF9waHlzX2FkZHJfdCBhZGRyKQordW5zaWdu ZWQgbG9uZyBjcHVfZ2V0X3BoeXNpY2FsX3BhZ2VfZGVzYyh0YXJnZXRfcGh5c19hZGRyX3QgYWRk cikKIHsKICAgICBQaHlzUGFnZURlc2MgKnA7CiAKQEAgLTIwNDIsMTEgKzIwNDQsMTEgQEAKIH0K IAogLyogWFhYOiBiZXR0ZXIgdGhhbiBub3RoaW5nICovCi1yYW1fYWRkcl90IHFlbXVfcmFtX2Fs bG9jKHVuc2lnbmVkIGludCBzaXplKQorcmFtX2FkZHJfdCBxZW11X3JhbV9hbGxvYyh1bnNpZ25l ZCBsb25nIHNpemUpCiB7CiAgICAgcmFtX2FkZHJfdCBhZGRyOwogICAgIGlmICgocGh5c19yYW1f YWxsb2Nfb2Zmc2V0ICsgc2l6ZSkgPj0gcGh5c19yYW1fc2l6ZSkgewotICAgICAgICBmcHJpbnRm KHN0ZGVyciwgIk5vdCBlbm91Z2ggbWVtb3J5IChyZXF1ZXN0ZWRfc2l6ZSA9ICV1LCBtYXggbWVt b3J5ID0gJWQpXG4iLAorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk5vdCBlbm91Z2ggbWVtb3J5 IChyZXF1ZXN0ZWRfc2l6ZSA9ICVsdSwgbWF4IG1lbW9yeSA9ICVsdSlcbiIsCiAgICAgICAgICAg ICAgICAgc2l6ZSwgcGh5c19yYW1fc2l6ZSk7CiAgICAgICAgIGFib3J0KCk7CiAgICAgfQpAQCAt MjM4Miw3ICsyMzg0LDcgQEAKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgKnN1YnBh Z2VfaW5pdCAodGFyZ2V0X3BoeXNfYWRkcl90IGJhc2UsIHVpbnQzMl90ICpwaHlzLAorc3RhdGlj IHZvaWQgKnN1YnBhZ2VfaW5pdCAodGFyZ2V0X3BoeXNfYWRkcl90IGJhc2UsIHVuc2lnbmVkIGxv bmcgKnBoeXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3JpZ19tZW1vcnkpCiB7 CiAgICAgc3VicGFnZV90ICptbWlvOwpJbmRleDogcWVtdS92bC5jCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFl bXUub3JpZy92bC5jCTIwMDctMDktMzAgMDc6NDA6MzAuMDAwMDAwMDAwICswMDAwCisrKyBxZW11 L3ZsLmMJMjAwNy0wOS0zMCAwNzo1NToxMy4wMDAwMDAwMDAgKzAwMDAKQEAgLTEyNiw3ICsxMjYs MTIgQEAKIC8vI2RlZmluZSBERUJVR19VTlVTRURfSU9QT1JUCiAvLyNkZWZpbmUgREVCVUdfSU9Q T1JUCiAKKyNpZiBkZWZpbmVkKFVTRV9LUUVNVSkgfHwgSE9TVF9MT05HX0JJVFMgPCA2NCB8fCBc CisgICAgIShkZWZpbmVkKFRBUkdFVF9JMzg2KSB8fCBkZWZpbmVkKFRBUkdFVF9TUEFSQykpCiAj ZGVmaW5lIFBIWVNfUkFNX01BWF9TSVpFICgyMDQ3ICogMTAyNCAqIDEwMjQpCisjZWxzZQorI2Rl ZmluZSBQSFlTX1JBTV9NQVhfU0laRSAoNjQgKiAxMDI0ICogMTAyNCAqIDEwMjRVTEwpCisjZW5k aWYKIAogI2lmZGVmIFRBUkdFVF9QUEMKICNkZWZpbmUgREVGQVVMVF9SQU1fU0laRSAxNDQKQEAg LTE2MSw3ICsxNjYsNyBAQAogY29uc3QgY2hhcioga2V5Ym9hcmRfbGF5b3V0ID0gTlVMTDsKIGlu dDY0X3QgdGlja3NfcGVyX3NlYzsKIGludCBib290X2RldmljZSA9ICdjJzsKLWludCByYW1fc2l6 ZTsKK3Vuc2lnbmVkIGxvbmcgcmFtX3NpemU7CiBpbnQgcGl0X21pbl90aW1lcl9jb3VudCA9IDA7 CiBpbnQgbmJfbmljczsKIE5JQ0luZm8gbmRfdGFibGVbTUFYX05JQ1NdOwpAQCAtNzg1MywxMiAr Nzg1OCwxMiBAQAogICAgICAgICAgICAgICAgIGhlbHAoMCk7CiAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICBjYXNlIFFFTVVfT1BUSU9OX206Ci0gICAgICAgICAgICAgICAgcmFt X3NpemUgPSBhdG9pKG9wdGFyZykgKiAxMDI0ICogMTAyNDsKKyAgICAgICAgICAgICAgICByYW1f c2l6ZSA9IGF0b2wob3B0YXJnKSAqIDEwMjQgKiAxMDI0OwogICAgICAgICAgICAgICAgIGlmIChy YW1fc2l6ZSA8PSAwKQogICAgICAgICAgICAgICAgICAgICBoZWxwKDEpOwogICAgICAgICAgICAg ICAgIGlmIChyYW1fc2l6ZSA+IFBIWVNfUkFNX01BWF9TSVpFKSB7CiAgICAgICAgICAgICAgICAg ICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogYXQgbW9zdCAlZCBNQiBSQU0gY2FuIGJlIHNpbXVs YXRlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSFlTX1JBTV9NQVhfU0laRSAv ICgxMDI0ICogMTAyNCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFBIWVNf UkFNX01BWF9TSVpFIC8gKDEwMjQgKiAxMDI0KSkpOwogICAgICAgICAgICAgICAgICAgICBleGl0 KDEpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKSW5kZXg6IHFl bXUvdmwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvdmwuaAkyMDA3LTA5LTMwIDA3OjQwOjMw LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS92bC5oCTIwMDctMDktMzAgMDc6NDE6NDUuMDAwMDAw MDAwICswMDAwCkBAIC0xNjIsNyArMTYyLDcgQEAKIAogdm9pZCBtYWluX2xvb3Bfd2FpdChpbnQg dGltZW91dCk7CiAKLWV4dGVybiBpbnQgcmFtX3NpemU7CitleHRlcm4gdW5zaWduZWQgbG9uZyBy YW1fc2l6ZTsKIGV4dGVybiBpbnQgYmlvc19zaXplOwogZXh0ZXJuIGludCBydGNfdXRjOwogZXh0 ZXJuIGludCBjaXJydXNfdmdhX2VuYWJsZWQ7CkBAIC03MjMsNyArNzIzLDcgQEAKIAogI2lmbmRl ZiBRRU1VX1RPT0wKIAotdHlwZWRlZiB2b2lkIFFFTVVNYWNoaW5lSW5pdEZ1bmMoaW50IHJhbV9z aXplLCBpbnQgdmdhX3JhbV9zaXplLAordHlwZWRlZiB2b2lkIFFFTVVNYWNoaW5lSW5pdEZ1bmMo dW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICBEaXNwbGF5 U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAg ICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9j bWRsaW5lLApJbmRleDogcWVtdS9ody9wYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9w Yy5jCTIwMDctMDktMzAgMDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3BjLmMJ MjAwNy0wOS0zMCAxNToxMTowMC4wMDAwMDAwMDAgKzAwMDAKQEAgLTE1Miw3ICsxNTIsNyBAQAog fQogCiAvKiBoZF90YWJsZSBtdXN0IGNvbnRhaW4gNCBibG9jayBkcml2ZXJzICovCi1zdGF0aWMg dm9pZCBjbW9zX2luaXQoaW50IHJhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsIEJsb2NrRHJpdmVy U3RhdGUgKipoZF90YWJsZSkKK3N0YXRpYyB2b2lkIGNtb3NfaW5pdCh1bnNpZ25lZCBsb25nIHJh bV9zaXplLCB1bnNpZ25lZCBsb25nIGFib3ZlX2Jpb3NfcmFtX3NpemUsIGludCBib290X2Rldmlj ZSwgQmxvY2tEcml2ZXJTdGF0ZSAqKmhkX3RhYmxlKQogewogICAgIFJUQ1N0YXRlICpzID0gcnRj X3N0YXRlOwogICAgIGludCB2YWw7CkBAIC0xNzQsNiArMTc0LDEzIEBACiAgICAgcnRjX3NldF9t ZW1vcnkocywgMHgzMCwgdmFsKTsKICAgICBydGNfc2V0X21lbW9yeShzLCAweDMxLCB2YWwgPj4g OCk7CiAKKyAgICB2YWwgPSAodW5zaWduZWQgaW50KWFib3ZlX2Jpb3NfcmFtX3NpemUgLyA2NTUz NjsKKyAgICBpZiAoYWJvdmVfYmlvc19yYW1fc2l6ZSkgeworICAgICAgICBydGNfc2V0X21lbW9y eShzLCAweDViLCAodW5zaWduZWQgaW50KWFib3ZlX2Jpb3NfcmFtX3NpemUgPj4gMTYpOworICAg ICAgICBydGNfc2V0X21lbW9yeShzLCAweDVjLCAodW5zaWduZWQgaW50KWFib3ZlX2Jpb3NfcmFt X3NpemUgPj4gMjQpOworICAgICAgICBydGNfc2V0X21lbW9yeShzLCAweDVkLCBhYm92ZV9iaW9z X3JhbV9zaXplID4+IDMyKTsKKyAgICB9CisKICAgICBpZiAocmFtX3NpemUgPiAoMTYgKiAxMDI0 ICogMTAyNCkpCiAgICAgICAgIHZhbCA9IChyYW1fc2l6ZSAvIDY1NTM2KSAtICgoMTYgKiAxMDI0 ICogMTAyNCkgLyA2NTUzNik7CiAgICAgZWxzZQpAQCAtNjYyLDcgKzY2OSw3IEBACiB9CiAKIC8q IFBDIGhhcmR3YXJlIGluaXRpYWxpc2F0aW9uICovCi1zdGF0aWMgdm9pZCBwY19pbml0MShpbnQg cmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lk IHBjX2luaXQxKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBi b290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0 IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwK ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwKQEAgLTY3 MCw3ICs2NzcsNyBAQAogewogICAgIGNoYXIgYnVmWzEwMjRdOwogICAgIGludCByZXQsIGxpbnV4 X2Jvb3QsIGk7Ci0gICAgcmFtX2FkZHJfdCByYW1fYWRkciwgdmdhX3JhbV9hZGRyLCBiaW9zX29m ZnNldCwgdmdhX2Jpb3Nfb2Zmc2V0OworICAgIHJhbV9hZGRyX3QgcmFtX2FkZHIsIHZnYV9yYW1f YWRkciwgYmlvc19vZmZzZXQsIHZnYV9iaW9zX29mZnNldCwgYWJvdmVfYmlvc19tZW1fc2l6ZSA9 IDA7CiAgICAgaW50IGJpb3Nfc2l6ZSwgaXNhX2Jpb3Nfc2l6ZSwgdmdhX2Jpb3Nfc2l6ZTsKICAg ICBQQ0lCdXMgKnBjaV9idXM7CiAgICAgaW50IHBpaXgzX2RldmZuID0gLTE7CkBAIC02NzksNiAr Njg2LDEwIEBACiAgICAgcWVtdV9pcnEgKmNwdV9pcnE7CiAgICAgcWVtdV9pcnEgKmk4MjU5Owog CisgICAgaWYgKHJhbV9zaXplID49IDB4ZjAwMDAwMDApIHsKKyAgICAgICAgYWJvdmVfYmlvc19t ZW1fc2l6ZSA9IHJhbV9zaXplIC0gMHhmMDAwMDAwMDsKKyAgICAgICAgcmFtX3NpemUgPSAweGYw MDAwMDAwOworICAgIH0KICAgICBsaW51eF9ib290ID0gKGtlcm5lbF9maWxlbmFtZSAhPSBOVUxM KTsKIAogICAgIC8qIGluaXQgQ1BVcyAqLwpAQCAtNjk5LDggKzcxMCwxMCBAQAogICAgIH0KIAog ICAgIC8qIGFsbG9jYXRlIFJBTSAqLwotICAgIHJhbV9hZGRyID0gcWVtdV9yYW1fYWxsb2MocmFt X3NpemUpOworICAgIHJhbV9hZGRyID0gcWVtdV9yYW1fYWxsb2MocmFtX3NpemUgKyBhYm92ZV9i aW9zX21lbV9zaXplKTsKICAgICBjcHVfcmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KDAsIHJhbV9z aXplLCByYW1fYWRkcik7CisgICAgaWYoYWJvdmVfYmlvc19tZW1fc2l6ZSA+IDApCisgICAgICAg IGNwdV9yZWdpc3Rlcl9waHlzaWNhbF9tZW1vcnkoMHgxMDAwMDAwMDAsIGFib3ZlX2Jpb3NfbWVt X3NpemUsIHJhbV9hZGRyICsgcmFtX3NpemUpOwogCiAgICAgLyogYWxsb2NhdGUgVkdBIFJBTSAq LwogICAgIHZnYV9yYW1fYWRkciA9IHFlbXVfcmFtX2FsbG9jKHZnYV9yYW1fc2l6ZSk7CkBAIC04 OTgsNyArOTExLDcgQEAKIAogICAgIGZsb3BweV9jb250cm9sbGVyID0gZmRjdHJsX2luaXQoaTgy NTlbNl0sIDIsIDAsIDB4M2YwLCBmZF90YWJsZSk7CiAKLSAgICBjbW9zX2luaXQocmFtX3NpemUs IGJvb3RfZGV2aWNlLCBic190YWJsZSk7CisgICAgY21vc19pbml0KHJhbV9zaXplLCBhYm92ZV9i aW9zX21lbV9zaXplLCBib290X2RldmljZSwgYnNfdGFibGUpOwogCiAgICAgaWYgKHBjaV9lbmFi bGVkICYmIHVzYl9lbmFibGVkKSB7CiAgICAgICAgIHVzYl91aGNpX3BpaXgzX2luaXQocGNpX2J1 cywgcGlpeDNfZGV2Zm4gKyAyKTsKQEAgLTkzNyw3ICs5NTAsNyBAQAogI2VuZGlmCiB9CiAKLXN0 YXRpYyB2b2lkIHBjX2luaXRfcGNpKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50 IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgcGNfaW5pdF9wY2kodW5zaWduZWQgbG9uZyByYW1f c2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAg ICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLApAQCAtOTUxLDcgKzk2NCw3IEBACiAgICAg ICAgICAgICAgaW5pdHJkX2ZpbGVuYW1lLCAxKTsKIH0KIAotc3RhdGljIHZvaWQgcGNfaW5pdF9p c2EoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0 aWMgdm9pZCBwY19pbml0X2lzYSh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9z aXplLCBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3Rh dGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJu ZWxfZmlsZW5hbWUsCkluZGV4OiBxZW11L2h3L3ZnYS5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3Jp Zy9ody92Z2EuYwkyMDA3LTA5LTMwIDA3OjQwOjA5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9o dy92Z2EuYwkyMDA3LTA5LTMwIDE1OjA0OjQxLjAwMDAwMDAwMCArMDAwMApAQCAtMTQxNSwxMCAr MTQxNSwxMSBAQAogc3RhdGljIHZvaWQgdmdhX2RyYXdfZ3JhcGhpYyhWR0FTdGF0ZSAqcywgaW50 IGZ1bGxfdXBkYXRlKQogewogICAgIGludCB5MSwgeSwgdXBkYXRlLCBwYWdlX21pbiwgcGFnZV9t YXgsIGxpbmVzaXplLCB5X3N0YXJ0LCBkb3VibGVfc2NhbiwgbWFzazsKLSAgICBpbnQgd2lkdGgs IGhlaWdodCwgc2hpZnRfY29udHJvbCwgbGluZV9vZmZzZXQsIHBhZ2UwLCBwYWdlMSwgYndpZHRo OworICAgIGludCB3aWR0aCwgaGVpZ2h0LCBzaGlmdF9jb250cm9sLCBsaW5lX29mZnNldCwgYndp ZHRoOwogICAgIGludCBkaXNwX3dpZHRoLCBtdWx0aV9zY2FuLCBtdWx0aV9ydW47CiAgICAgdWlu dDhfdCAqZDsKICAgICB1aW50MzJfdCB2LCBhZGRyMSwgYWRkcjsKKyAgICBsb25nIHBhZ2UwLCBw YWdlMTsKICAgICB2Z2FfZHJhd19saW5lX2Z1bmMgKnZnYV9kcmF3X2xpbmU7CiAKICAgICBmdWxs X3VwZGF0ZSB8PSB1cGRhdGVfYmFzaWNfcGFyYW1zKHMpOwpJbmRleDogcWVtdS9ody9zdW40bS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zdW40bS5jCTIwMDctMDktMzAgMDc6NDA6MDku MDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3N1bjRtLmMJMjAwNy0wOS0zMCAwNzo0MTo0NS4w MDAwMDAwMDAgKzAwMDAKQEAgLTE1OCw3ICsxNTgsNyBAQAogZXh0ZXJuIGludCBub2dyYXBoaWM7 CiAKIHN0YXRpYyB2b2lkIG52cmFtX2luaXQobTQ4dDU5X3QgKm52cmFtLCB1aW50OF90ICptYWNh ZGRyLCBjb25zdCBjaGFyICpjbWRsaW5lLAotCQkgICAgICAgaW50IGJvb3RfZGV2aWNlLCB1aW50 MzJfdCBSQU1fc2l6ZSwKKwkJICAgICAgIGludCBib290X2RldmljZSwgdW5zaWduZWQgbG9uZyBS QU1fc2l6ZSwKIAkJICAgICAgIHVpbnQzMl90IGtlcm5lbF9zaXplLAogCQkgICAgICAgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBpbnQgZGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBt YWNoaW5lX2lkKQpAQCAtMTc0LDcgKzE3NCw3IEBACiAgICAgbTQ4dDU5X3dyaXRlKG52cmFtLCAw eDJELCBzbXBfY3B1cyAmIDB4ZmYpOwogICAgIG00OHQ1OV93cml0ZShudnJhbSwgMHgyRSwgMCk7 CiAgICAgbTQ4dDU5X3dyaXRlKG52cmFtLCAweDJGLCBub2dyYXBoaWMgJiAweGZmKTsKLSAgICBu dnJhbV9zZXRfbHdvcmQobnZyYW0sICAweDMwLCBSQU1fc2l6ZSk7CisgICAgbnZyYW1fc2V0X2x3 b3JkKG52cmFtLCAgMHgzMCwgUkFNX3NpemUgJiAweGZmZmZmZmZmKTsKICAgICBtNDh0NTlfd3Jp dGUobnZyYW0sIDB4MzQsIGJvb3RfZGV2aWNlICYgMHhmZik7CiAgICAgbnZyYW1fc2V0X2x3b3Jk KG52cmFtLCAgMHgzOCwgS0VSTkVMX0xPQURfQUREUik7CiAgICAgbnZyYW1fc2V0X2x3b3JkKG52 cmFtLCAgMHgzQywga2VybmVsX3NpemUpOwpAQCAtMTg3LDYgKzE4Nyw3IEBACiAgICAgbnZyYW1f c2V0X3dvcmQobnZyYW0sICAgMHg1NCwgd2lkdGgpOwogICAgIG52cmFtX3NldF93b3JkKG52cmFt LCAgIDB4NTYsIGhlaWdodCk7CiAgICAgbnZyYW1fc2V0X3dvcmQobnZyYW0sICAgMHg1OCwgZGVw dGgpOworICAgIG52cmFtX3NldF9sd29yZChudnJhbSwgIDB4NWMsIFJBTV9zaXplID4+IDMyKTsK IAogICAgIC8vIE9wZW5CSU9TIG52cmFtIHZhcmlhYmxlcwogICAgIC8vIFZhcmlhYmxlIHBhcnRp dGlvbgpAQCAtMzA2LDcgKzMwNyw3IEBACiAgICAgZW52LT5oYWx0ZWQgPSAxOwogfQogCi1zdGF0 aWMgdm9pZCAqc3VuNG1faHdfaW5pdChjb25zdCBzdHJ1Y3QgaHdkZWYgKmh3ZGVmLCBpbnQgUkFN X3NpemUsCitzdGF0aWMgdm9pZCAqc3VuNG1faHdfaW5pdChjb25zdCBzdHJ1Y3QgaHdkZWYgKmh3 ZGVmLCB1bnNpZ25lZCBsb25nIFJBTV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg RGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqY3B1X21vZGVsKQogCiB7CkBAIC00MTEsNyAr NDEyLDggQEAKICAgICByZXR1cm4gbnZyYW07CiB9CiAKLXN0YXRpYyB2b2lkIHN1bjRtX2xvYWRf a2VybmVsKGxvbmcgdnJhbV9zaXplLCBpbnQgUkFNX3NpemUsIGludCBib290X2RldmljZSwKK3N0 YXRpYyB2b2lkIHN1bjRtX2xvYWRfa2VybmVsKGxvbmcgdnJhbV9zaXplLCB1bnNpZ25lZCBsb25n IFJBTV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNl LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVu YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2Nt ZGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRf ZmlsZW5hbWUsCkBAIC01NDYsMTcgKzU0OCwxOSBAQAogICAgIH0sCiB9OwogCi1zdGF0aWMgdm9p ZCBzdW40bV9jb21tb25faW5pdChpbnQgUkFNX3NpemUsIGludCBib290X2RldmljZSwgRGlzcGxh eVN0YXRlICpkcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtl cm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIg KmNwdV9tb2RlbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBt YWNoaW5lLCBpbnQgbWF4X3JhbSkKK3N0YXRpYyB2b2lkIHN1bjRtX2NvbW1vbl9pbml0KHVuc2ln bmVkIGxvbmcgUkFNX3NpemUsIGludCBib290X2RldmljZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBtYWNoaW5lLCB1bnNpZ25lZCBsb25nIG1heF9yYW0pCiB7CiAg ICAgdm9pZCAqbnZyYW07CiAKLSAgICBpZiAoKHVuc2lnbmVkIGludClSQU1fc2l6ZSA+ICh1bnNp Z25lZCBpbnQpbWF4X3JhbSkgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInFlbXU6IFRvbyBt dWNoIG1lbW9yeSBmb3IgdGhpcyBtYWNoaW5lOiAlZCwgbWF4aW11bSAlZFxuIiwKLSAgICAgICAg ICAgICAgICAodW5zaWduZWQgaW50KVJBTV9zaXplIC8gKDEwMjQgKiAxMDI0KSwKLSAgICAgICAg ICAgICAgICAodW5zaWduZWQgaW50KW1heF9yYW0gLyAoMTAyNCAqIDEwMjQpKTsKKyAgICBpZiAo UkFNX3NpemUgPiBtYXhfcmFtKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicWVtdTogVG9v IG11Y2ggbWVtb3J5IGZvciB0aGlzIG1hY2hpbmU6ICVsZCwgbWF4aW11bSAlbGRcbiIsCisgICAg ICAgICAgICAgICAgUkFNX3NpemUgLyAoMTAyNCAqIDEwMjQpLCBtYXhfcmFtIC8gKDEwMjQgKiAx MDI0KSk7CiAgICAgICAgIGV4aXQoMSk7CiAgICAgfQogICAgIG52cmFtID0gc3VuNG1faHdfaW5p dCgmaHdkZWZzW21hY2hpbmVdLCBSQU1fc2l6ZSwgZHMsIGNwdV9tb2RlbCk7CkBAIC01NjcsMTAg KzU3MSwxMCBAQAogfQogCiAvKiBTUEFSQ3N0YXRpb24gNSBoYXJkd2FyZSBpbml0aWFsaXNhdGlv biAqLwotc3RhdGljIHZvaWQgc3M1X2luaXQoaW50IFJBTV9zaXplLCBpbnQgdmdhX3JhbV9zaXpl LCBpbnQgYm9vdF9kZXZpY2UsCi0gICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAq ZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAotICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5l bF9jbWRsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmls ZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKK3N0YXRpYyB2b2lkIHNzNV9pbml0KHVuc2ln bmVkIGxvbmcgUkFNX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKKyAg ICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxl bmFtZSwgaW50IHNuYXBzaG90LAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2Vy bmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKKyAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVs KQogewogICAgIGlmIChjcHVfbW9kZWwgPT0gTlVMTCkKICAgICAgICAgY3B1X21vZGVsID0gIkZ1 aml0c3UgTUI4NjkwNCI7CkBAIC01ODAsMTYgKzU4NCwxNiBAQAogfQogCiAvKiBTUEFSQ3N0YXRp b24gMTAgaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gKi8KLXN0YXRpYyB2b2lkIHNzMTBfaW5pdChp bnQgUkFNX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmls ZW5hbWUsIGludCBzbmFwc2hvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3Qg Y2hhciAqY3B1X21vZGVsKQorc3RhdGljIHZvaWQgc3MxMF9pbml0KHVuc2lnbmVkIGxvbmcgUkFN X3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKKyAgICAgICAgICAgICAg ICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBz bmFwc2hvdCwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5h bWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAorICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsKQogewogICAg IGlmIChjcHVfbW9kZWwgPT0gTlVMTCkKICAgICAgICAgY3B1X21vZGVsID0gIlRJIFN1cGVyU3Bh cmMgSUkiOwogICAgIHN1bjRtX2NvbW1vbl9pbml0KFJBTV9zaXplLCBib290X2RldmljZSwgZHMs IGtlcm5lbF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICBrZXJuZWxfY21kbGluZSwg aW5pdHJkX2ZpbGVuYW1lLCBjcHVfbW9kZWwsCi0gICAgICAgICAgICAgICAgICAgICAgMSwgMHhm ZmZmZmZmZik7IC8vIFhYWCBhY3R1YWxseSBmaXJzdCA2MkdCIG9rCisgICAgICAgICAgICAgICAg ICAgICAgMSwgMHhlMDAwMDAwMDAwVUxMKTsKIH0KIAogUUVNVU1hY2hpbmUgc3M1X21hY2hpbmUg PSB7CkluZGV4OiBxZW11L3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBx ZW11Lm9yaWcvdGFyZ2V0LXNwYXJjL29wX2hlbHBlci5jCTIwMDctMDktMzAgMDc6NDA6MDkuMDAw MDAwMDAwICswMDAwCisrKyBxZW11L3RhcmdldC1zcGFyYy9vcF9oZWxwZXIuYwkyMDA3LTA5LTMw IDA4OjU4OjU2LjAwMDAwMDAwMCArMDAwMApAQCAtMjUxLDggKzI1MSw3IEBACiAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBicmVhazsKLSAgICBjYXNlIDB4MmU6IC8qIE1N VSBwYXNzdGhyb3VnaCwgMHhleHh4eHh4eHggKi8KLSAgICBjYXNlIDB4MmY6IC8qIE1NVSBwYXNz dGhyb3VnaCwgMHhmeHh4eHh4eHggKi8KKyAgICBjYXNlIDB4MjEgLi4uIDB4MmY6IC8qIE1NVSBw YXNzdGhyb3VnaCwgMHgxeHh4eHh4eHggLi4gMHhmeHh4eHh4eHggLi4gKi8KICAgICAgICAgc3dp dGNoKHNpemUpIHsKICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgcmV0ID0gbGR1Yl9waHlz KCh0YXJnZXRfcGh5c19hZGRyX3QpVDAKQEAgLTI3NSw3ICsyNzQsNiBAQAogICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSAweDIxIC4uLiAweDJk OiAvKiBNTVUgcGFzc3Rocm91Z2gsIHVuYXNzaWduZWQgKi8KICAgICBkZWZhdWx0OgogICAgICAg ICBkb191bmFzc2lnbmVkX2FjY2VzcyhUMCwgMCwgMCwgMSk7CiAgICAgICAgIHJldCA9IDA7Cklu ZGV4OiBxZW11L2h3L2FuNTIwNi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9hbjUyMDYu YwkyMDA3LTA5LTMwIDA3OjQwOjA5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9hbjUyMDYu YwkyMDA3LTA5LTMwIDA3OjQxOjQ1LjAwMDAwMDAwMCArMDAwMApAQCAtMjcsNyArMjcsOCBAQAog CiAvKiBCb2FyZCBpbml0LiAgKi8KIAotc3RhdGljIHZvaWQgYW41MjA2X2luaXQoaW50IHJhbV9z aXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCBhbjUy MDZfaW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAg ICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgRGlz cGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNo YXIgKmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5p dHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkluZGV4OiBxZW11L2h3L2ludGVn cmF0b3JjcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9pbnRlZ3JhdG9yY3AuYwkyMDA3 LTA5LTMwIDA3OjQwOjA5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9pbnRlZ3JhdG9yY3Au YwkyMDA3LTA5LTMwIDA3OjQxOjQ1LjAwMDAwMDAwMCArMDAwMApAQCAtNDYyLDcgKzQ2Miw4IEBA CiAKIC8qIEJvYXJkIGluaXQuICAqLwogCi1zdGF0aWMgdm9pZCBpbnRlZ3JhdG9yY3BfaW5pdChp bnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2 b2lkIGludGVncmF0b3JjcF9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFt X3NpemUsCisgICAgICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAg ICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGlu dCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxl bmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6 IHFlbXUvaHcvbWNmNTIwOC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9tY2Y1MjA4LmMJ MjAwNy0wOS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvbWNmNTIwOC5j CTIwMDctMDktMzAgMDc6NDE6NDUuMDAwMDAwMDAwICswMDAwCkBAIC0xOTcsNyArMTk3LDggQEAK ICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIG1jZjUyMDhldmJfaW5pdChpbnQgcmFtX3NpemUsIGlu dCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIG1jZjUyMDhldmJf aW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAgICAg ICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgRGlzcGxh eVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIg Kmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJk X2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkluZGV4OiBxZW11L2h3L21pcHNfbWFs dGEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvbWlwc19tYWx0YS5jCTIwMDctMDktMzAg MDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L21pcHNfbWFsdGEuYwkyMDA3LTA5 LTMwIDA3OjQxOjQ1LjAwMDAwMDAwMCArMDAwMApAQCAtNzQwLDcgKzc0MCw3IEBACiB9CiAKIHN0 YXRpYwotdm9pZCBtaXBzX21hbHRhX2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6 ZSwgaW50IGJvb3RfZGV2aWNlLAordm9pZCBtaXBzX21hbHRhX2luaXQgKHVuc2lnbmVkIGxvbmcg cmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKICAgICAgICAgICAg ICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGlu dCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmls ZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsKQpJbmRl eDogcWVtdS9ody9taXBzX3BpY2E2MS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9taXBz X3BpY2E2MS5jCTIwMDctMDktMzAgMDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3 L21pcHNfcGljYTYxLmMJMjAwNy0wOS0zMCAwNzo0MTo0NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTU1 LDcgKzU1LDggQEAKIH0KIAogc3RhdGljCi12b2lkIG1pcHNfcGljYTYxX2luaXQgKGludCByYW1f c2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAordm9pZCBtaXBzX3BpY2E2 MV9pbml0ICh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAg ICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgIERpc3Bs YXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIg Kmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRf ZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvbWlwc19yNGsu Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBxZW11Lm9yaWcvaHcvbWlwc19yNGsuYwkyMDA3LTA5LTMwIDA3OjQw OjA5LjAwMDAwMDAwMCArMDAwMAorKysgcWVtdS9ody9taXBzX3I0ay5jCTIwMDctMDktMzAgMDc6 NDE6NDUuMDAwMDAwMDAwICswMDAwCkBAIC0xMzYsNyArMTM2LDcgQEAKIH0KIAogc3RhdGljCi12 b2lkIG1pcHNfcjRrX2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJv b3RfZGV2aWNlLAordm9pZCBtaXBzX3I0a19pbml0ICh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBp bnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgIERp c3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAog ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNo YXIgKmtlcm5lbF9jbWRsaW5lLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0 cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvcGFsbS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wYWxtLmMJMjAwNy0wOS0zMCAwNzo0MDowOS4w MDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcGFsbS5jCTIwMDctMDktMzAgMDc6NDE6NDUuMDAw MDAwMDAwICswMDAwCkBAIC02MSw3ICs2MSw4IEBACiB7CiB9CiAKLXN0YXRpYyB2b2lkIHBhbG10 ZV9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAor c3RhdGljIHZvaWQgcGFsbXRlX2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9y YW1fc2l6ZSwKKyAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAg ICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNo b3QsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBj aGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRf ZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvcHBjNDA1X2Jv YXJkcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wcGM0MDVfYm9hcmRzLmMJMjAwNy0w OS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvcHBjNDA1X2JvYXJkcy5j CTIwMDctMDktMzAgMDc6NDE6NDUuMDAwMDAwMDAwICswMDAwCkBAIC0xNzEsNyArMTcxLDggQEAK ICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHJlZjQwNWVwX2luaXQgKGludCByYW1fc2l6ZSwgaW50 IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgcmVmNDA1ZXBfaW5p dCAodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCBib290X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwKQEAgLTQ5NCw3ICs0OTUsOCBAQAogICAg IH0KIH0KIAotc3RhdGljIHZvaWQgdGFpaHVfNDA1ZXBfaW5pdChpbnQgcmFtX3NpemUsIGludCB2 Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHRhaWh1XzQwNWVwX2lu aXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLApJbmRleDogcWVtdS9ody9w cGNfY2hycC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9wcGNfY2hycC5jCTIwMDctMDkt MzAgMDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3BwY19jaHJwLmMJMjAwNy0w OS0zMCAwNzo0MTo0NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTMwMCw3ICszMDAsOCBAQAogfQogCiAv KiBQb3dlclBDIENIUlAgaGFyZHdhcmUgaW5pdGlhbGlzYXRpb24gKi8KLXN0YXRpYyB2b2lkIHBw Y19jaHJwX2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2 aWNlLAorc3RhdGljIHZvaWQgcHBjX2NocnBfaW5pdCAodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwg aW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBib290X2Rl dmljZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0 IGNoYXIgKipmZF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBzbmFw c2hvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxl bmFtZSwKQEAgLTU2Nyw3ICs1NjgsOCBAQAogICAgIHJlZ2lzdGVyX2lvcG9ydF93cml0ZSgweDBG MDAsIDQsIDEsICZQUENfZGVidWdfd3JpdGUsIE5VTEwpOwogfQogCi1zdGF0aWMgdm9pZCBwcGNf Y29yZTk5X2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2 aWNlLAorc3RhdGljIHZvaWQgcHBjX2NvcmU5OV9pbml0ICh1bnNpZ25lZCBsb25nIHJhbV9zaXpl LCBpbnQgdmdhX3JhbV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYm9v dF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMs IGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpr ZXJuZWxfZmlsZW5hbWUsCkBAIC01ODEsNyArNTgzLDggQEAKICAgICAgICAgICAgICAgICAgIGlu aXRyZF9maWxlbmFtZSwgY3B1X21vZGVsLCAwKTsKIH0KIAotc3RhdGljIHZvaWQgcHBjX2hlYXRo cm93X2luaXQgKGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNl LAorc3RhdGljIHZvaWQgcHBjX2hlYXRocm93X2luaXQgKHVuc2lnbmVkIGxvbmcgcmFtX3NpemUs IGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJv b3RfZGV2aWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAq ZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg Y2hhciAqa2VybmVsX2ZpbGVuYW1lLApJbmRleDogcWVtdS9ody9wcGNfcHJlcC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHFlbXUub3JpZy9ody9wcGNfcHJlcC5jCTIwMDctMDktMzAgMDc6NDA6MDkuMDAwMDAw MDAwICswMDAwCisrKyBxZW11L2h3L3BwY19wcmVwLmMJMjAwNy0wOS0zMCAwNzo0MTo0NS4wMDAw MDAwMDAgKzAwMDAKQEAgLTUxNCw3ICs1MTQsOCBAQAogI2RlZmluZSBOVlJBTV9TSVpFICAgICAg ICAweDIwMDAKIAogLyogUG93ZXJQQyBQUkVQIGhhcmR3YXJlIGluaXRpYWxpc2F0aW9uICovCi1z dGF0aWMgdm9pZCBwcGNfcHJlcF9pbml0IChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUs IGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHBwY19wcmVwX2luaXQgKHVuc2lnbmVkIGxv bmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3Rh dGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgc25hcHNob3QsIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLApJbmRleDogcWVt dS9ody9yZWFsdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9yZWFsdmlldy5jCTIw MDctMDktMzAgMDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3L3JlYWx2aWV3LmMJ MjAwNy0wOS0zMCAwNzo0MTo0NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTEyLDcgKzEyLDggQEAKIAog LyogQm9hcmQgaW5pdC4gICovCiAKLXN0YXRpYyB2b2lkIHJlYWx2aWV3X2luaXQoaW50IHJhbV9z aXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCByZWFs dmlld19pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAg ICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICBE aXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwK ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3Qg Y2hhciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpp bml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvaHcvc2hp eC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9zaGl4LmMJMjAwNy0wOS0zMCAwNzo0MDow OS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvc2hpeC5jCTIwMDctMDktMzAgMDc6NDE6NDUu MDAwMDAwMDAwICswMDAwCkBAIC02Miw3ICs2Miw3IEBACiAgICAgLyogWFhYWFggKi8KIH0KIAot dm9pZCBzaGl4X2luaXQoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9k ZXZpY2UsCit2b2lkIHNoaXhfaW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3Jh bV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCiAJICAgICAgIERpc3BsYXlTdGF0ZSAqIGRzLCBjb25z dCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKIAkgICAgICAgY29uc3QgY2hhciAq a2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKIAkgICAgICAgY29u c3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkluZGV4OiBx ZW11L2h3L3NwaXR6LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3NwaXR6LmMJMjAwNy0w OS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvc3BpdHouYwkyMDA3LTA5 LTMwIDA3OjQxOjQ1LjAwMDAwMDAwMCArMDAwMApAQCAtMTE2Nyw3ICsxMTY3LDcgQEAKIC8qIEJv YXJkIGluaXQuICAqLwogZW51bSBzcGl0el9tb2RlbF9lIHsgc3BpdHosIGFraXRhLCBib3J6b2ks IHRlcnJpZXIgfTsKIAotc3RhdGljIHZvaWQgc3BpdHpfY29tbW9uX2luaXQoaW50IHJhbV9zaXpl LCBpbnQgdmdhX3JhbV9zaXplLAorc3RhdGljIHZvaWQgc3BpdHpfY29tbW9uX2luaXQodW5zaWdu ZWQgbG9uZyAgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCiAgICAgICAgICAgICAgICAgRGlz cGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLAogICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLCBjb25zdCBjaGFyICppbml0cmRfZmlsZW5h bWUsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY3B1X21vZGVsLCBlbnVtIHNwaXR6X21v ZGVsX2UgbW9kZWwsIGludCBhcm1faWQpCkBAIC0xMjI0LDcgKzEyMjQsOCBAQAogICAgIHNsX2Jv b3RwYXJhbV93cml0ZShTTF9QWEFfUEFSQU1fQkFTRSAtIFBYQTJYWF9TRFJBTV9CQVNFKTsKIH0K IAotc3RhdGljIHZvaWQgc3BpdHpfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUs IGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHNwaXR6X2luaXQodW5zaWduZWQgbG9uZyBy YW1fc2l6ZSwgaW50IHZnYV9yYW1fc2l6ZSwKKyAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZp Y2UsCiAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29uc3QgY2hhciAqKmZkX2Zp bGVuYW1lLCBpbnQgc25hcHNob3QsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqa2VybmVs X2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAgICAgICAgICAgICAgICBj b25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKQEAgLTEy MzMsNyArMTIzNCw4IEBACiAgICAgICAgICAgICAgICAga2VybmVsX2NtZGxpbmUsIGluaXRyZF9m aWxlbmFtZSwgY3B1X21vZGVsLCBzcGl0eiwgMHgyYzkpOwogfQogCi1zdGF0aWMgdm9pZCBib3J6 b2lfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwK K3N0YXRpYyB2b2lkIGJvcnpvaV9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2Ff cmFtX3NpemUsCisgICAgICAgICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAg ICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBz aG90LAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3Qg Y2hhciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJk X2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwpCkBAIC0xMjQyLDcgKzEyNDQsOCBAQAog ICAgICAgICAgICAgICAgIGtlcm5lbF9jbWRsaW5lLCBpbml0cmRfZmlsZW5hbWUsIGNwdV9tb2Rl bCwgYm9yem9pLCAweDMzZik7CiB9CiAKLXN0YXRpYyB2b2lkIGFraXRhX2luaXQoaW50IHJhbV9z aXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0aWMgdm9pZCBha2l0 YV9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAg ICAgICAgICAgaW50IGJvb3RfZGV2aWNlLAogICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAq ZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxp bmUsCiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBj aGFyICpjcHVfbW9kZWwpCkBAIC0xMjUxLDcgKzEyNTQsOCBAQAogICAgICAgICAgICAgICAgIGtl cm5lbF9jbWRsaW5lLCBpbml0cmRfZmlsZW5hbWUsIGNwdV9tb2RlbCwgYWtpdGEsIDB4MmU4KTsK IH0KIAotc3RhdGljIHZvaWQgdGVycmllcl9pbml0KGludCByYW1fc2l6ZSwgaW50IHZnYV9yYW1f c2l6ZSwgaW50IGJvb3RfZGV2aWNlLAorc3RhdGljIHZvaWQgdGVycmllcl9pbml0KHVuc2lnbmVk IGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgaW50IGJv b3RfZGV2aWNlLAogICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIg KipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Kmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25zdCBjaGFyICpjcHVfbW9kZWwp CkluZGV4OiBxZW11L2h3L3N1bjR1LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVtdS5vcmlnL2h3L3N1bjR1 LmMJMjAwNy0wOS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAwMDAKKysrIHFlbXUvaHcvc3VuNHUu YwkyMDA3LTA5LTMwIDA3OjQxOjQ1LjAwMDAwMDAwMCArMDAwMApAQCAtMzMxLDEwICszMzEsMTEg QEAKIHN0YXRpYyBmZGN0cmxfdCAqZmxvcHB5X2NvbnRyb2xsZXI7CiAKIC8qIFN1bjR1IGhhcmR3 YXJlIGluaXRpYWxpc2F0aW9uICovCi1zdGF0aWMgdm9pZCBzdW40dV9pbml0KGludCByYW1fc2l6 ZSwgaW50IHZnYV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAotICAgICAgICAgICAgIERpc3Bs YXlTdGF0ZSAqZHMsIGNvbnN0IGNoYXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAotICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVs X2NtZGxpbmUsCi0gICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBjb25z dCBjaGFyICpjcHVfbW9kZWwpCitzdGF0aWMgdm9pZCBzdW40dV9pbml0KHVuc2lnbmVkIGxvbmcg cmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBi b290X2RldmljZSwKKyAgICAgICAgICAgICAgICAgICAgICAgRGlzcGxheVN0YXRlICpkcywgY29u c3QgY2hhciAqKmZkX2ZpbGVuYW1lLCBpbnQgc25hcHNob3QsCisgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxp bmUsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwg Y29uc3QgY2hhciAqY3B1X21vZGVsKQogewogICAgIENQVVN0YXRlICplbnY7CiAgICAgY2hhciBi dWZbMTAyNF07CkluZGV4OiBxZW11L2h3L3ZlcnNhdGlsZXBiLmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcWVt dS5vcmlnL2h3L3ZlcnNhdGlsZXBiLmMJMjAwNy0wOS0zMCAwNzo0MDowOS4wMDAwMDAwMDAgKzAw MDAKKysrIHFlbXUvaHcvdmVyc2F0aWxlcGIuYwkyMDA3LTA5LTMwIDA3OjQxOjQ1LjAwMDAwMDAw MCArMDAwMApAQCAtMTUxLDcgKzE1MSw4IEBACiAgICBwZXJpcGhlcmFucyBhbmQgZXhwYW5zaW9u IGJ1c3Nlcy4gIEZvciBub3cgd2UgZW11bGF0ZSBhIHN1YnNldCBvZiB0aGUKICAgIFBCIHBlcmlw aGVyYWxzIGFuZCBqdXN0IGNoYW5nZSB0aGUgYm9hcmQgSUQuICAqLwogCi1zdGF0aWMgdm9pZCB2 ZXJzYXRpbGVfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2Rl dmljZSwKK3N0YXRpYyB2b2lkIHZlcnNhdGlsZV9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUs IGludCB2Z2FfcmFtX3NpemUsCisgICAgICAgICAgICAgICAgICAgICBpbnQgYm9vdF9kZXZpY2Us CiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRzLCBjb25zdCBjaGFyICoqZmRf ZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIg Kmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2NtZGxpbmUsCiAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmNwdV9t b2RlbCwKQEAgLTI2Niw3ICsyNjcsNyBAQAogICAgICAgICAgICAgICAgICAgICBpbml0cmRfZmls ZW5hbWUsIGJvYXJkX2lkLCAweDApOwogfQogCi1zdGF0aWMgdm9pZCB2cGJfaW5pdChpbnQgcmFt X3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290X2RldmljZSwKK3N0YXRpYyB2b2lkIHZw Yl9pbml0KHVuc2lnbmVkIGxvbmcgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBib290 X2RldmljZSwKICAgICAgICAgICAgICAgICAgICAgIERpc3BsYXlTdGF0ZSAqZHMsIGNvbnN0IGNo YXIgKipmZF9maWxlbmFtZSwgaW50IHNuYXBzaG90LAogICAgICAgICAgICAgICAgICAgICAgY29u c3QgY2hhciAqa2VybmVsX2ZpbGVuYW1lLCBjb25zdCBjaGFyICprZXJuZWxfY21kbGluZSwKICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hh ciAqY3B1X21vZGVsKQpAQCAtMjc3LDcgKzI3OCw3IEBACiAgICAgICAgICAgICAgICAgICAgaW5p dHJkX2ZpbGVuYW1lLCBjcHVfbW9kZWwsIDB4MTgzKTsKIH0KIAotc3RhdGljIHZvaWQgdmFiX2lu aXQoaW50IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLCBpbnQgYm9vdF9kZXZpY2UsCitzdGF0 aWMgdm9pZCB2YWJfaW5pdCh1bnNpZ25lZCBsb25nIHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXpl LCBpbnQgYm9vdF9kZXZpY2UsCiAgICAgICAgICAgICAgICAgICAgICBEaXNwbGF5U3RhdGUgKmRz LCBjb25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IGNoYXIgKmtlcm5lbF9maWxlbmFtZSwgY29uc3QgY2hhciAqa2VybmVsX2Nt ZGxpbmUsCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbml0cmRfZmlsZW5hbWUs IGNvbnN0IGNoYXIgKmNwdV9tb2RlbCkKSW5kZXg6IHFlbXUvb3NkZXAuYwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBxZW11Lm9yaWcvb3NkZXAuYwkyMDA3LTA5LTMwIDA3OjQwOjA5LjAwMDAwMDAwMCArMDAwMAor KysgcWVtdS9vc2RlcC5jCTIwMDctMDktMzAgMDc6NDE6NDUuMDAwMDAwMDAwICswMDAwCkBAIC04 Nyw3ICs4Nyw3IEBACiB2b2lkICprcWVtdV92bWFsbG9jKHNpemVfdCBzaXplKQogewogICAgIHN0 YXRpYyBpbnQgcGh5c19yYW1fZmQgPSAtMTsKLSAgICBzdGF0aWMgaW50IHBoeXNfcmFtX3NpemUg PSAwOworICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIHBoeXNfcmFtX3NpemUgPSAwOwogICAgIGNv bnN0IGNoYXIgKnRtcGRpcjsKICAgICBjaGFyIHBoeXNfcmFtX2ZpbGVbMTAyNF07CiAgICAgdm9p ZCAqcHRyOwpAQCAtMTEwLDcgKzExMCw3IEBACiAgICAgICAgICAgICBpbnQ2NF90IGZyZWVfc3Bh Y2U7CiAgICAgICAgICAgICBpbnQgcmFtX21iOwogCi0gICAgICAgICAgICBleHRlcm4gaW50IHJh bV9zaXplOworICAgICAgICAgICAgZXh0ZXJuIHVuc2lnbmVkIGxvbmcgcmFtX3NpemU7CiAgICAg ICAgICAgICBmcmVlX3NwYWNlID0gKGludDY0X3Qpc3Rmcy5mX2JhdmFpbCAqIHN0ZnMuZl9ic2l6 ZTsKICAgICAgICAgICAgIGlmICgocmFtX3NpemUgKyA4MTkyICogMTAyNCkgPj0gZnJlZV9zcGFj ZSkgewogICAgICAgICAgICAgICAgIHJhbV9tYiA9IChyYW1fc2l6ZSAvICgxMDI0ICogMTAyNCkp OwpJbmRleDogcWVtdS9ody9waWl4X3BjaS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHFlbXUub3JpZy9ody9w aWl4X3BjaS5jCTIwMDctMDktMzAgMDc6NDA6MDkuMDAwMDAwMDAwICswMDAwCisrKyBxZW11L2h3 L3BpaXhfcGNpLmMJMjAwNy0wOS0zMCAwNzo0MTo0NS4wMDAwMDAwMDAgKzAwMDAKQEAgLTUyLDcg KzUyLDcgQEAKICAgICByZXR1cm4gKGlycV9udW0gKyBzbG90X2FkZGVuZCkgJiAzOwogfQogCi1z dGF0aWMgdWludDMyX3QgaXNhX3BhZ2VfZGVzY3NbMzg0IC8gNF07CitzdGF0aWMgdW5zaWduZWQg bG9uZyBpc2FfcGFnZV9kZXNjc1szODQgLyA0XTsKIHN0YXRpYyB1aW50OF90IHNtbV9lbmFibGVk OwogCiBzdGF0aWMgdm9pZCB1cGRhdGVfcGFtKFBDSURldmljZSAqZCwgdWludDMyX3Qgc3RhcnQs IHVpbnQzMl90IGVuZCwgaW50IHIpCkluZGV4OiBxZW11L2h3L3IyZC5jCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHFlbXUub3JpZy9ody9yMmQuYwkyMDA3LTA5LTMwIDA3OjQyOjA1LjAwMDAwMDAwMCArMDAwMAor KysgcWVtdS9ody9yMmQuYwkyMDA3LTA5LTMwIDA3OjQyOjIyLjAwMDAwMDAwMCArMDAwMApAQCAt MjcsNyArMjcsNyBAQAogI2RlZmluZSBTRFJBTV9CQVNFIDB4MGMwMDAwMDAgLyogUGh5c2ljYWwg bG9jYXRpb24gb2YgU0RSQU06IEFyZWEgMyAqLwogI2RlZmluZSBTRFJBTV9TSVpFIDB4MDQwMDAw MDAKIAotdm9pZCByMmRfaW5pdChpbnQgcmFtX3NpemUsIGludCB2Z2FfcmFtX3NpemUsIGludCBi b290X2RldmljZSwKK3ZvaWQgcjJkX2luaXQodW5zaWduZWQgbG9uZyByYW1fc2l6ZSwgaW50IHZn YV9yYW1fc2l6ZSwgaW50IGJvb3RfZGV2aWNlLAogCSAgICAgIERpc3BsYXlTdGF0ZSAqIGRzLCBj b25zdCBjaGFyICoqZmRfZmlsZW5hbWUsIGludCBzbmFwc2hvdCwKIAkgICAgICBjb25zdCBjaGFy ICprZXJuZWxfZmlsZW5hbWUsIGNvbnN0IGNoYXIgKmtlcm5lbF9jbWRsaW5lLAogCSAgICAgIGNv bnN0IGNoYXIgKmluaXRyZF9maWxlbmFtZSwgY29uc3QgY2hhciAqY3B1X21vZGVsKQo= ------=_Part_2162_24059825.1191166228959--