LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudXN1YWwgRGV2aWNlcyBGaWxlCiAqCiAqICRJZDogdW51c3VhbF9kZXZzLmgsdiAxLjMyIDIwMDIvMDIvMjUgMDI6NDE6MjQgbWRoYXJtIEV4cCAkCiAqCiAqIEN1cnJlbnQgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIGJ5OgogKiAgIChjKSAyMDAwLTIwMDIgTWF0dGhldyBEaGFybSAobWRoYXJtLXVzYkBvbmUtZXllZC1hbGllbi5uZXQpCiAqCiAqIEluaXRpYWwgd29yayBieToKICogICAoYykgMjAwMCBBZGFtIEouIFJpY2h0ZXIgKGFkYW1AeWdnZHJhc2lsLmNvbSksIFlnZ2RyYXNpbCBDb21wdXRpbmcsIEluYy4KICoKICogUGxlYXNlIHNlZSBodHRwOi8vd3d3Lm9uZS1leWVkLWFsaWVuLm5ldC9+bWRoYXJtL2xpbnV4LXVzYiBmb3IgbW9yZQogKiBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRyaXZlci4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKICogbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKICogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAqLwoKLyogSU1QT1JUQU5UIE5PVEU6IFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGluIGFub3RoZXIgZmlsZSB3aGljaCBkb2VzCiAqIHRoZSBmb2xsb3dpbmcgdGhpbmcgZm9yIGl0IHRvIHdvcms6CiAqIFRoZSBtYWNybyBVTlVTVUFMX0RFVigpIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCiAqLwojaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CgovKiBJZiB5b3UgZWRpdCB0aGlzIGZpbGUsIHBsZWFzZSB0cnkgdG8ga2VlcCBpdCBzb3J0ZWQgZmlyc3QgYnkgVmVuZG9ySUQsCiAqIHRoZW4gYnkgUHJvZHVjdElELgogKgogKiBJZiB5b3Ugd2FudCB0byBhZGQgYW4gZW50cnkgZm9yIHRoaXMgZmlsZSwgYmUgc3VyZSB0byBpbmNsdWRlIHRoZQogKiBmb2xsb3dpbmcgaW5mb3JtYXRpb246CiAqCS0gYSBwYXRjaCB0aGF0IGFkZHMgdGhlIGVudHJ5IGZvciB5b3VyIGRldmljZSwgaW5jbHVkaW5nIHlvdXIKICoJICBlbWFpbCBhZGRyZXNzIHJpZ2h0IGFib3ZlIHRoZSBlbnRyeSAocGx1cyBtYXliZSBhIGJyaWVmCiAqCSAgZXhwbGFuYXRpb24gb2YgdGhlIHJlYXNvbiBmb3IgdGhlIGVudHJ5KSwKICoJLSBhIGNvcHkgb2YgL3Byb2MvYnVzL3VzYi9kZXZpY2VzIHdpdGggeW91ciBkZXZpY2UgcGx1Z2dlZCBpbgogKgkgIHJ1bm5pbmcgd2l0aCB0aGlzIHBhdGNoLgogKiBTZW5kIHlvdXIgc3VibWlzc2lvbiB0byBlaXRoZXIgUGhpbCBEaWJvd2l0eiA8cGhpbEBpcG9tLmNvbT4gb3IKICogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4sIGFuZCBkb24ndCBmb3JnZXQgdG8gQ0M6IHRoZQogKiBVU0IgZGV2ZWxvcG1lbnQgbGlzdCA8bGludXgtdXNiLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCiAqLwoKLyogcGF0Y2ggc3VibWl0dGVkIGJ5IFZpdmlhbiBCcmVnaWVyIDxWaXZpYW4uQnJlZ2llckBpbWFnLmZyPgogKi8KVU5VU1VBTF9ERVYoICAweDAzZWIsIDB4MjAwMiwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiQVRNRUwiLAogICAgICAgICAgICAgICAgIlNORDEgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0lHTk9SRV9SRVNJRFVFKSwKClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDEsIDB4MDAwMCwgMHgwMTAwLAoJCSJNaXRzdW1pIiwKCQkiVVNCIEZERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDEwNywgMHgwMjAwLCAweDAyMDAsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAyMDcsIDB4MDAwMSwgMHgwMDAxLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIDgyMDBlIiwKCQlVU19TQ184MDcwLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDNmMCwgMHgwMzA3LCAweDAwMDEsIDB4MDAwMSwgCgkJIkhQIiwKCQkiQ0QtV3JpdGVyKyBDRC00ZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsIDApLAojZW5kaWYKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBNaWhuZWEtQ29zdGluIEdyaWdvcmUgPG1paG5lYUB6dWx1LnJvPiAqLwpVTlVTVUFMX0RFViggIDB4MDQwZCwgMHg2MjA1LCAweDAwMDMsIDB4MDAwMywKCQkiVklBIFRlY2hub2xvZ2llcyBJbmMuIiwKCQkiVVNCIDIuMCBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFNlYmFzdGlhbiBLYXBmZXIgPHNlYmFzdGlhbl9rYXBmZXJAZ214Lm5ldD4KICogYW5kIE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gKGRpZmZlcmVudCBiY2Qncywgc2FtZSB2ZW5kb3IvcHJvZHVjdCkKICogZm9yIFVTQiBmbG9wcGllcyB0aGF0IG5lZWQgdGhlIFNJTkdMRV9MVU4gZW5mb3JjZW1lbnQuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQwOSwgMHgwMDQwLCAweDAwMDAsIDB4OTk5OSwKCQkiTkVDIiwKCQkiTkVDIFVTQiBVRjAwMHgiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIERlZHVjZWQgYnkgSm9uYXRoYW4gV29pdGhlIDxqd29pdGhlQHBoeXNpY3MuYWRlbGFpZGUuZWR1LmF1PgogKiBFbnRyeSBuZWVkZWQgZm9yIGZsYWdzOiBVU19GTF9GSVhfSU5RVUlSWSBiZWNhdXNlIGluaXRpYWwgaW5xdWlyeSBtZXNzYWdlCiAqIGFsd2F5cyBmYWlscyBhbmQgY29uZnVzZXMgZHJpdmUuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQxMSwgMHgwMDFjLCAweDAxMTMsIDB4MDExMywKCQkiQnVmZmFsbyIsCgkJIkRVQi1QNDBHIEhERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFJlcG9ydGVkIGJ5IFN0ZWZhbiBXZXJuZXIgPGR1c3RibG5AZ214LmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHhhYWY2LCAweDAxMDAsIDB4MDEwMCwKCQkiVHJla1N0b3IiLAoJCSJpLkJlYXQgSm95IDIuMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gZnJvbSBub3ZlbGwgYnVnICMxMDU4NzggKi8KVU5VU1VBTF9ERVYoICAweDA0MjQsIDB4MGZkYywgMHgwMjEwLCAweDAyMTAsCgkJIlNNU0MiLAoJCSJGREMgR09MRC0yLjMwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA0MzYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKLyoKICogUGV0ZSBaYWl0Y2V2IDx6YWl0Y2V2QHlhaG9vLmNvbT4sIGZyb20gUGF0cmljayBDLiBGLiBFcm56ZXIsIGJ6IzE2MjU1OS4KICogVGhlIGtleSBkb2VzIG5vdCBhY3R1YWxseSBicmVhaywgYnV0IGl0IHJldHVybnMgemVybyBzZW5zZSB3aGljaAogKiBtYWtlcyBvdXIgU0NTSSBzdGFjayB0byBwcmludCBjb25mdXNpbmcgbWVzc2FnZXMuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1NywgMHgwMTUwLCAweDAxMDAsIDB4MDEwMCwKCQkiVVNCZXN0IFRlY2hub2xvZ3kiLAkvKiBzb2xkIGJ5IFRyYW5zY2VuZCAqLwoJCSJVU0IgTWFzcyBTdG9yYWdlIERldmljZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CiAqIERldmljZSByZXBvcnRzIG5vbnNlbnNlIGJJbnRlcmZhY2VQcm90b2NvbCA2IHdoZW4gY29ubmVjdGVkIG92ZXIgVVNCMiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1MSwgMHg1NDE2LCAweDAxMDAsIDB4MDEwMCwKCQkiTmV1cm9zIEF1ZGlvIiwKCQkiVVNCIDIuMCBIRCAyLjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgUGhpbGlwcCBGcmllZHJpY2ggPHBoaWxpcHBAdm9pZC5hdD4gKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwMCwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIFMzeCIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBQaGlsaXBwIEZyaWVkcmljaCA8cGhpbGlwcEB2b2lkLmF0PiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTAxLCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gUzQiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgU3RlcGhhbmUgR2FsbGVzIDxzdGVwaGFuZS5nYWxsZXNAZnJlZS5mcj4gKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwMywgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIFM1IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggZm9yIEt5b2NlcmEgRmluZWNhbSBMMwogKiBTdWJtaXR0ZWQgYnkgTWljaGFlbCBLcmF1dGggPG1pY2hhZWwua3JhdXRoQHdlYi5kZT4KICogYW5kIEFsZXNzYW5kcm8gRnJhY2NoZXR0aSA8YWwuZnJhY2NoZXR0aUB0aW4uaXQ+CiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTA1LCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gTDMiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUmVwb3J0ZWQgYnkgUGF1bCBTdGV3YXJ0IDxzdGV3YXJ0QHdldGxvZ2ljLm5ldD4KICogVGhpcyBlbnRyeSBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgZGV2aWNlIHJlcG9ydHMgU3ViPWZmICovClVOVVNVQUxfREVWKCAgMHgwNGE0LCAweDAwMDQsIDB4MDAwMSwgMHgwMDAxLAoJCSJIaXRhY2hpIiwKCQkiRFZELUNBTSBEWi1NVjEwMEEgQ2FtY29yZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfU0lOR0xFX0xVTiksCgovKiBSZXBvcnRlZCBieSBBbmRyZWFzIEJvY2tob2xkIDxhbmRyZWFzQGJvY2tpb25saW5lLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDRiMCwgMHgwNDA1LCAweDAxMDAsIDB4MDEwMCwKCQkiTklLT04iLAoJCSJOSUtPTiBEU0MgRDcwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKLyogQkVOUSBEQzUzMzAKICogUmVwb3J0ZWQgYnkgTWFudWVsIEZvbWJ1ZW5hIDxtZm9tYnVlbmFAeWEuY29tPiBhbmQKICogRnJhbmsgQ29wZWxhbmQgPGZqY0B0aGluZ3kuYXBhbmEub3JnLmF1PiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNSwgMHgzMDEwLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltb24gTGV2aXR0IDxzaW1vbkB3aGF0dGYuY29tPgogKiBUaGlzIGVudHJ5IG5lZWRzIFN1YiBhbmQgUHJvdG8gZmllbGRzICovClVOVVNVQUxfREVWKCAgMHgwNGI4LCAweDA2MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJFcHNvbiIsCgkJIjg3NURDIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLaGFsaWQgQXppeiA8a2hhbGlkQGdvbmVoaWtpbmcub3JnPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA0YjgsIDB4MDYwMiwgMHgwMTEwLCAweDAxMTAsCgkJIkVwc29uIiwKCQkiNzg1RVBYIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogTm90IHN1cmUgd2hvIHJlcG9ydGVkIHRoaXMgb3JpZ2luYWxseSBidXQKICogUGF2ZWwgTWFjaGVrIDxwYXZlbEB1Y3cuY3o+IHJlcG9ydGVkIHRoYXQgdGhlIGV4dHJhIFVTX0ZMX1NJTkdMRV9MVU4KICogZmxhZyBiZSBhZGRlZCAqLwpVTlVTVUFMX0RFViggIDB4MDRjYiwgMHgwMTAwLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJGaW5lUGl4IDE0MDBab29tIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkgfCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFJlcG9ydGVkIGJ5IFBldGVyIFfkY2h0bGVyIDxwd2FlY2h0bGVyQGxvZXdlLWtvbXAuZGU+CiAqIFRoZSBkZXZpY2UgbmVlZHMgdGhlIGZsYWdzIG9ubHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRjZSwgMHgwMDAyLCAweDAwNzQsIDB4MDA3NCwKCQkiU2NhbkxvZ2ljIiwKCQkiU0wxMVItSURFIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLcmlzdG9uIEZpbmNoZXIgPGtyaXN0b25AYWlybWFpbC5uZXQ+CiAqIFBhdGNoIHN1Ym1pdHRlZCBieSBTZWFuIE1pbGxpY2hhbXAgPHNlYW5AYnJ1ZW5vci5vcmc+CiAqIFRoaXMgaXMgdG8gc3VwcG9ydCB0aGUgUGFuYXNvbmljIFBhbG1DYW0gUFYtU0Q0MDkwCiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAKICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDA5MDEsIDB4MDEwMCwgMHgwMjAwLAoJCSJQYW5hc29uaWMiLAoJCSJMUy0xMjAgQ2FtZXJhIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCksCgovKiBGcm9tIFl1a2loaXJvIE5ha2FpLCB2aWEgemFpdGNldkB5YWhvby5jb20uCiAqIFRoaXMgaXMgbmVlZGVkIGZvciBDQiBpbnN0ZWFkIG9mIENCSSAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgwZDA1LCAweDAwMDAsIDB4MDAwMCwKCQkiU2hhcnAgQ0UtQ1cwNSIsCgkJIkNELVIvUlcgRHJpdmUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKCi8qIFJlcG9ydGVkIGJ5IEFkcmlhYW4gUGVubmluZyA8YS5wZW5uaW5nQGx1b24ubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgyMzcyLCAweDAwMDAsIDB4OTk5OSwKCQkiUGFuYXNvbmljIiwKCQkiRE1DLUxDeCBDYW1lcmEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltZW9uIFNpbWVvbm92IDxzaW1lb25vdl8yMDAwQHlhaG9vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MjM3MywgMHgwMDAwLCAweDk5OTksCgkJIkxFSUNBIiwKCQkiRC1MVVggQ2FtZXJhIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyBlbnRyaWVzIHdlcmUgZGV2ZWxvcGVkIHdpdGggdGhlIGhlbHAgb2YKICogU2h1dHRsZS9TQ00gZGlyZWN0bHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIk1hdHNoaXRhIiwKCQkiTFMtMTIwIiwKCQlVU19TQ184MDIwLCBVU19QUl9DQiwgTlVMTCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAyLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgovKiBUaGlzIGVudHJ5IGlzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA1LCAweDAxMDAsIDB4MDIwOCwKCQkiU0NNIE1pY3Jvc3lzdGVtcyIsCgkJImVVU0IgU21hcnRNZWRpYSAvIENvbXBhY3RGbGFzaCBBZGFwdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgc2RkcjA5X2luaXQsIAoJCTApLCAKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBNYXJrdXMgRGVtbGVpdG5lciA8bXNkZW1sZWlAY2wudW5pLWhlaWRlbGJlcmcuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU0NNIE1pY3Jvc3lzdGVtcyBJbmMuIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKCi8qIFJlcG9ydGVkIGJ5IERhbmllbCBOb3VyaSA8ZHB1bmt0bnB1bmt0QHdlYi5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNiwgMHgwMjA1LCAweDAyMDUsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA3LCAweDAxMDAsIDB4MDIwMCwgCgkJIlNvbnkiLAoJCSJIaWZkIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwOSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBBVEEvQVRBUEkgQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwYSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBDb21wYWN0Rmxhc2ggQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQiwgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDBDLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAxMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJIkNELVJXIERldmljZSIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRGV2aWNlIHVzZXMgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlIEJ1bGsgQ29tbWFuZCBCbG9jayBXcmFwcGVycyBhbmQKICogcmVwb3J0cyBpdHNlbGYgYXMgIlByb3ByaWV0YXJ5IFNDU0kgQnVsay4iIENmLiBkZXZpY2UgZW50cnkgMHgwODRkOjB4MDAxMS4KICovCgpVTlVTVUFMX0RFViggIDB4MDRmYywgMHg4MGMyLCAweDAxMDAsIDB4MDEwMCwKCQkiS29iaWFuIE1lcmN1cnkiLAoJCSJCaW5vY2FtIERDQi0xMzIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDEwMTAsIDB4MDAwMCwgMHg5OTk5LAoJCSJTaHV0dGxlL1NDTSIsCgkJIlVTQkFULTAyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBCb2IgU2FzcyA8cmxzQHZlY3RvcmRiLmNvbT4gLS0gb25seSByZXYgMS4zMyB0ZXN0ZWQgKi8KVU5VU1VBTF9ERVYoICAweDA1MGQsIDB4MDExNSwgMHgwMTMzLCAweDAxMzMsCgkJIkJlbGtpbiIsCgkJIlVTQiBTQ1NJIEFkYXB0b3IiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwKCi8qIElvbWVnYSBDbGlrISBEcml2ZSAKICogUmVwb3J0ZWQgYnkgRGF2aWQgQ2hhdGVuYXkgPGRjaGF0ZW5heUBob3RtYWlsLmNvbT4KICogVGhlIHJlYXNvbiB0aGlzIGlzIG5lZWRlZCBpcyBub3QgZnVsbHkga25vd24uCiAqLwpVTlVTVUFMX0RFViggIDB4MDUyNSwgMHhhMTQwLCAweDAxMDAsIDB4MDEwMCwKCQkiSW9tZWdhIiwKCQkiVVNCIENsaWshIDQwIiwKCQlVU19TQ184MDcwLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBZYWt1bW8gTWVnYSBJbWFnZSAzNwogKiBTdWJtaXR0ZWQgYnkgU3RlcGhhbiBGdWhybWFubiA8YXRvbWVuZXJnaWVAdC1vbmxpbmUuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBBbm90aGVyIFlha3VtbyBjYW1lcmEuCiAqIFJlcG9ydGVkIGJ5IE1pY2hlbGUgQWx6ZXR0YSA8bWljaGVsZS5hbHpldHRhQGFsaWNlcG9zdGEuaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDQsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBJYWNvcG8gU3BhbGxldHRpIDxhdnZpc2lAc3BhbGxldHRpLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxODA3LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogWWFrdW1vIE1lZ2EgSW1hZ2UgNDcKICogUmVwb3J0ZWQgYnkgQmpvZXJuIFBhZXR6ZWwgPGtvbHJhYmlAa29scmFiaS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkwNSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgT3J0eWwgPG9ydHlscEAzbWlhc3RvLm5ldD4KICogTm90ZSB0aGF0IGl0J3Mgc2ltaWxhciB0byB0aGUgZGV2aWNlIGFib3ZlLCBvbmx5IGRpZmZlcmVudCBwcm9kSUQgKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTkxMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiNDAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMTAsIDB4MDEwNiwgMHgwNDUwLCAKCQkiU29ueSIsCgkJIkRTQy1TMzAvUzcwL1M3NS81MDVWL0Y1MDUvRjcwNy9GNzE3L1A4IiwgCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gfCBVU19GTF9OT1RfTE9DS0FCTEUgfCBVU19GTF9OT19XUF9ERVRFQ1QgKSwKCi8qIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDA1MDAsIDB4MDUwMCwgCiAgICAgICAgICAgICAgICJTb255IiwKICAgICAgICAgICAgICAgIkRTQy1UMSIsIAogICAgICAgICAgICAgICBVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKCgovKiBSZXBvcnRlZCBieSB3aW1AZ2Vla3MubmwgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTlctTVM3IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJiLCAweDAxMDAsIDB4MDExMCwKCQkiU29ueSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcsIDxvbGhAc3VzZS5kZT4gU3VTRSBCdWd6aWxsYSAjNDkwNDkgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYywgMHgwNTAxLCAweDA1MDEsCgkJIlNvbnkiLAoJCSJVU0IgRmxvcHB5IERyaXZlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJkLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0FDLVVTMSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEtsYXVzIE11ZWxsZXIgPGsubXVlbGxlckBpbnRlcnNob3AuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmUsIDB4MDEwNiwgMHgwMzEwLCAKCQkiU29ueSIsCgkJIkhhbmR5Y2FtIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IFJhamVzaCBLdW1ibGUgTmF5YWsgPG5heWFrQG9icy1uaWNlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDA1MDAsIDB4MDUwMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSBIQy04NSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAzMiwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAxTiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE1pY2hhbCBNbG90ZWsgPG1sb3Rla0Bmb29iYXIucGw+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNTgsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE43NjBjIE1lbW9yeXN0aWNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoJCQpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDY5LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE1TQy1VMDMiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE5hdGhhbiBCYWJiIDxuYXRoYW5AbGV4aS5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNmQsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWtlIEFsYm9ybiA8bWFsYm9ybkBkZWFuZHJhLmhvbWVpcC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKLyogU3VibWl0dGVkIGJ5IEZyYW5rIEVuZ2VsIDxmcmFua2llQGNzZS51bnN3LmVkdS5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA5OSwgMHgwMDAwLCAweDk5OTksCiAgICAgICAgICAgICAgICAiU29ueSIsCiAgICAgICAgICAgICAgICAiUEVHIE1hc3MgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoJCQpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAwMDAsIDB4MDI5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAzMDAsIDB4OTk5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgSm9oYW5uIENhcmRvbiA8am9oYW5uLmNhcmRvbkBmcmVlLmZyPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBvbmx5IGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzCiAqIGJJbnRlcmZhY2VDbGFzcyA9IDB4ZmYgKHZlbmRvci1zcGVjaWZpYykKICovClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMjIsIDB4MDAwMCwgMHg5OTk5LCAKCQkiWS1FIERhdGEiLAoJCSJTaWxpY29uIE1lZGlhIFIvVyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDApLAoKLyogRmFicml6aW8gRmVsbGluaSA8ZmVsbG9AbGliZXJvLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDU5NSwgMHg0MzQzLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJEaWdpdGFsIENhbWVyYSBFWC0yMCBEU0MiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKLyogVGhlIGVudHJ5IHdhcyBoZXJlIGJlZm9yZSBJIHRvb2sgb3ZlciwgYW5kIGhhZCBVU19TQ19SQkMuIEl0IHR1cm5zCiAqIG91dCB0aGF0IGlzbid0IG5lZWRlZC4gQWRkaXRpb25hbGx5LCBUb3JzdGVuIEVyaWtzc29uCiAqIDxUb3JzdGVuLkVyaWtzc29uQGJlcmdpYW5za2Euc2U+IGlzIGFibGUgdG8gdXNlIGhpcyBkZXZpY2UgZmluZQogKiB3aXRob3V0IHRoaXMgZW50cnkgYXQgYWxsIC0gYnV0IEkgZG9uJ3Qgc3VzcGVjdCB0aGF0IHdpbGwgYmUgdHJ1ZQogKiBmb3IgYWxsIHVzZXJzICh0aGUgcHJvdG9jb2wgaXMgbGlrZWx5IG5lZWRlZCksIHNvIGlzIHN0YXlpbmcgYXQKICogdGhpcyB0aW1lLiAtIFBoaWwgRGlib3dpdHogPHBoaWxAaXBvbS5jb20+CiAqLwpVTlVTVUFMX0RFViggIDB4MDU5ZiwgMHhhNjAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIkxhQ2llIiwKCQkiVVNCIEhhcmQgRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9DQiwgTlVMTCwgMCApLAoKLyogU3VibWl0dGVkIGJ5IEpvZWwgQm91cnF1YXJkIDxudW1sb2NrQGZyZWVzdXJmLmNoPgogKiBTb21lIHZlcnNpb25zIG9mIHRoaXMgZGV2aWNlIG5lZWQgdGhlIFN1YkNsYXNzIGFuZCBQcm90b2NvbCBvdmVycmlkZXMKICogd2hpbGUgb3RoZXJzIGRvbid0LgogKi8KVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDA2MCwgMHgxMTA0LCAweDExMTAsCgkJIkluLVN5c3RlbSIsCgkJIlB5cm9HYXRlIEV4dGVybmFsIENELVJPTSBFbmNsb3N1cmUgKEZDRC01MjMpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAwMzEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJVU0IvSURFIEJyaWRnZSAoQVRBL0FUQVBJKSIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDMwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAzNTEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQb3J0YWJsZSBVU0IgSGFyZGRyaXZlIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHg1NzAxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiVVNCIFN0b3JhZ2UgQWRhcHRlciBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAojZW5kaWYKCi8qIFN1Ym1pdHRlZCBieSBTdmVuIEFuZGVyc29uIDxzdmVuLWxpbnV4QGFuZGVyc29uLmRlPgogKiBUaGVyZSBhcmUgYXQgbGVhc3QgZm91ciBQcm9kdWN0SURzIHVzZWQgZm9yIGlQb2RzLCBzbyBJIGFkZGVkIDB4MTIwMiBhbmQKICogMHgxMjA0LiBUaGV5IGp1c3QgbmVlZCB0aGUgVVNfRkxfRklYX0NBUEFDSVRZLiBBcyB0aGUgYmNkRGV2aWNlIGFwcGVhcnMKICogdG8gY2hhbmdlIHdpdGggZmlybXdhcmUgdXBkYXRlcywgSSBjaGFuZ2VkIHRoZSByYW5nZSB0byBtYXhpbXVtIGZvciBhbGwKICogaVBvZCBlbnRyaWVzLgogKi8KVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjAyLCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IEF2aSBLaXZpdHkgPGF2aUBhcmdvLmNvLmlsPiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjA0LCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwNSwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKgogKiBSZXBvcnRlZCBieSBUeXNvbiBWaW5zb24gPGxvcm5vc3NAZ21haWwuY29tPgogKiBUaGlzIHBhcnRpY3VsYXIgcHJvZHVjdElkIGlzIHRoZSBpUG9kIE5hbm8KICovClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwYSwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0pVTVBTSE9UClVOVVNVQUxfREVWKCAgMHgwNWRjLCAweDAwMDEsIDB4MDAwMCwgMHgwMDAxLAoJCSJMZXhhciIsCgkJIkp1bXBzaG90IFVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0pVTVBTSE9ULCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBCbGFrZSBNYXRoZW55IDxibWF0aGVueUBwdXJkdWUuZWR1PiAqLwpVTlVTVUFMX0RFViggIDB4MDVkYywgMHhiMDAyLCAweDAwMDAsIDB4MDExMywKCQkiTGV4YXIiLAoJCSJVU0IgQ0YgUmVhZGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogVGhlIGZvbGxvd2luZyB0d28gZW50cmllcyBhcmUgZm9yIGEgR2VuZXN5cyBVU0IgdG8gSURFCiAqIGNvbnZlcnRlciBjaGlwLCBidXQgaXQgY2hhbmdlcyBpdHMgUHJvZHVjdElkIGRlcGVuZGluZwogKiBvbiB3aGV0aGVyIG9yIG5vdCBhIGRpc2sgb3IgYW4gb3B0aWNhbCBkZXZpY2UgaXMgZW5jbG9zZWQKICogVGhleSB3ZXJlIG9yaWdpbmFsbHkgcmVwb3J0ZWQgYnkgQWxleGFuZGVyIE9sdHUKICogPGFsZXhhbmRlckBhbGwtMi5jb20+IGFuZCBQZXRlciBNYXJrcyA8cGV0ZXIubWFya3NAdHVybmVyLmNvbT4KICogcmVzcGVjdGl2ZWx5LgogKi8KVU5VU1VBTF9ERVYoICAweDA1ZTMsIDB4MDcwMSwgMHgwMDAwLCAweGZmZmYsCgkJIkdlbmVzeXMgTG9naWMiLAoJCSJVU0IgdG8gSURFIE9wdGljYWwiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKClVOVVNVQUxfREVWKCAgMHgwNWUzLCAweDA3MDIsIDB4MDAwMCwgMHhmZmZmLAoJCSJHZW5lc3lzIExvZ2ljIiwKCQkiVVNCIHRvIElERSBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9HT19TTE9XICksCgovKiBSZXBvcnRlZCBieSBIYW5ubyBCb2VjayA8aGFubm9AZ214LmRlPgogKiBUYWtlbiBmcm9tIHRoZSBMeWNvcmlzIEtlcm5lbCAqLwpVTlVTVUFMX0RFViggIDB4MDYzNiwgMHgwMDAzLCAweDAwMDAsIDB4OTk5OSwKCQkiVml2aXRhciIsCgkJIlZpdmljYW0gMzVYeCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKVU5VU1VBTF9ERVYoICAweDA2NDQsIDB4MDAwMCwgMHgwMTAwLCAweDAxMDAsIAoJCSJURUFDIiwKCQkiRmxvcHB5IERyaXZlIiwKCQlVU19TQ19VRkksIFVTX1BSX0NCLCBOVUxMLCAwICksIAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkKVU5VU1VBTF9ERVYoICAweDA2NmIsIDB4MDEwNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJPbHltcHVzIiwKCQkiQ2FtZWRpYSBNQVVTQi0yIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgRGFyc2VuIEx1IDxkYXJzZW5AbWljcm8uZWUubnRodS5lZHUudHc+ICovClVOVVNVQUxfREVWKCAweDA2NmYsIDB4ODAwMCwgMHgwMDAxLCAweDAwMDEsCgkJIlNpZ21hVGVsIiwKCQkiVVNCTVNDIEF1ZGlvIFBsYXllciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBSaWNoYXJkIC09W109LSA8bWljcm9fZmx5ZXJAaG90bWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAweDA2N2IsIDB4MjUwNywgMHgwMTAwLCAweDAxMDAsCgkJIlByb2xpZmljIFRlY2hub2xvZ3kgSW5jLiIsCgkJIk1hc3MgU3RvcmFnZSBEZXZpY2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX0dPX1NMT1cgKSwKCi8qIFJlcG9ydGVkIGJ5IEFsZXggQnV0Y2hlciA8YWxleC5idXRjaGVyQGFzc3Vyc3lzLmNvLnVrPiAqLwpVTlVTVUFMX0RFViggMHgwNjdiLCAweDM1MDcsIDB4MDAwMSwgMHgwMDAxLAoJCSJQcm9saWZpYyBUZWNobm9sb2d5IEluYy4iLAoJCSJBVEFQSS02IEJyaWRnZSBDb250cm9sbGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9HT19TTE9XICksCgovKiBTdWJtaXR0ZWQgYnkgQmVubnkgU2pvc3RyYW5kIDxiZW5ueUBob3N0bW9iaWxpdHkuY29tPiAqLwpVTlVTVUFMX0RFViggMHgwNjg2LCAweDQwMTEsIDB4MDAwMSwgMHgwMDAxLAoJCSJNaW5vbHRhIiwKCQkiRGltYWdlIEYzMDAiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIDAgKSwKCi8qIFJlcG9ydGVkIGJ5IE1pZ3VlbCBBLiBGb3NhcyA8YW1uM3MxYUBvbm8uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDY4NiwgMHg0MDE3LCAweDAwMDEsIDB4MDAwMSwKICAgICAgICAgICAgICAgICJNaW5vbHRhIiwKICAgICAgICAgICAgICAgICJESU1BR0UgRTIyMyIsCiAgICAgICAgICAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDAgKSwKClVOVVNVQUxfREVWKCAgMHgwNjkzLCAweDAwMDUsIDB4MDEwMCwgMHgwMTAwLAoJCSJIYWdpd2FyYSIsCgkJIkZsYXNoZ2F0ZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgMCApLCAKClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAwMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA1YSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDA1LCAweDAwMDUsIDB4MDAwNSwKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA1YiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAyMDAsIDB4MDAwMCwgMHg5OTk5LCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9GUkVFQ09NClVOVVNVQUxfREVWKCAgMHgwN2FiLCAweGZjMDEsIDB4MDAwMCwgMHg5OTk5LAoJCSJGcmVlY29tIiwKCQkiVVNCLUlERSIsCgkJVVNfU0NfUUlDLCBVU19QUl9GUkVFQ09NLCBmcmVlY29tX2luaXQsIDApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEVlcm8gVm9sb3RpbmVuIDxlZXJvQHBpbmctdmlpbmkub3JnPiAqLwpVTlVTVUFMX0RFViggIDB4MDdhYiwgMHhmY2NkLCAweDAwMDAsIDB4OTk5OSwKCQkiRnJlZWNvbSBUZWNobm9sb2dpZXMiLAoJCSJGSEQtQ2xhc3NpYyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDQsIDB4MDEwMCwgMHgwMTMzLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktREIyNSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiTWljcm90ZWNoIiwKCQkiVVNCLVNDU0ktSEQ1MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNiwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGEwMDAsIDB4MDAwMCwgMHgwMDE1LAoJCSJEYXRhZmFiIiwKCQkiTURDRkUtQiBVU0IgQ0YgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKCi8qCiAqIFRoZSBmb2xsb3dpbmcgRGF0YWZhYi1iYXNlZCBkZXZpY2VzIG1heSBvciBtYXkgbm90IHdvcmsKICogdXNpbmcgdGhlIGN1cnJlbnQgZHJpdmVyLi4udGhlIDB4ZmZmZiBpcyBhcmJpdHJhcnkgc2luY2UgSQogKiBkb24ndCBrbm93IHdoYXQgZGV2aWNlIHZlcnNpb25zIGV4aXN0IGZvciB0aGVzZSBndXlzLgogKgogKiBUaGUgMHhhMDAzIGFuZCAweGEwMDQgZGV2aWNlcyBpbiBwYXJ0aWN1bGFyIEknbSBjdXJpb3VzIGFib3V0LgogKiBJJ20gdG9sZCB0aGV5IGV4aXN0IGJ1dCBzbyBmYXIgbm9ib2R5IGhhcyBjb21lIGZvcndhcmQgdG8gc2F5IHRoYXQKICogdGhleSB3b3JrIHdpdGggdGhpcyBkcml2ZXIuICBHaXZlbiB0aGUgc3VjY2VzcyB3ZSd2ZSBoYWQgZ2V0dGluZwogKiBvdGhlciBEYXRhZmFiLWJhc2VkIGNhcmRzIG9wZXJhdGlvbmFsIHdpdGggdGhpcyBkcml2ZXIsIEkndmUgZGVjaWRlZAogKiB0byBsZWF2ZSB0aGVzZSB0d28gZGV2aWNlcyBpbiB0aGUgbGlzdC4KICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMSwgMHgwMDAwLCAweGZmZmYsCgkJIlNJSUcvRGF0YWZhYiIsCgkJIlNJSUcvRGF0YWZhYiBNZW1vcnkgU3RpY2srQ0YgUmVhZGVyL1dyaXRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBKb3NlZiBSZWlzaW5nZXIgPGpvc2VmLnJlaXNpbmdlckBuZXRjb2xvZ25lLmRlPiAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDIsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJNRDIvTUQzIERpc2sgZW5jbG9zdXJlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMywgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIkRhdGFmYWItYmFzZWQgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNCwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIkRhdGFmYWItYmFzZWQgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNSwgMHgwMDAwLCAweGZmZmYsCgkJIlBOWS9EYXRhZmFiIiwKCQkiUE5ZL0RhdGFmYWIgQ0YrU00gUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNiwgMHgwMDAwLCAweGZmZmYsCgkJIlNpbXBsZSBUZWNoL0RhdGFmYWIiLAoJCSJTaW1wbGUgVGVjaC9EYXRhZmFiIENGK1NNIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCiNlbmRpZgoJCQojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQovKiBDb250cmlidXRlZCBieSBQZXRlciBXYWVjaHRsZXIgKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMTAzLCAweDAwMDAsIDB4OTk5OSwKCQkiRGF0YWZhYiIsCgkJIk1EU00tQiByZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1NERFI1NSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcgPG9saEBzdXNlLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiBTeXN0ZW1zLCBJbmMuIiwKCQkiVVNCIHRvIENGICsgU00gQ29tYm8gKExDMSkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAojZW5kaWYKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKLyogU00gcGFydCAtIGFlYiA8QW5kcmllcy5Ccm91d2VyQGN3aS5ubD4gKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIgU3lzdGVtcywgSW5jLiIsCgkJIlVTQiB0byBDRiArIFNNIENvbWJvIChMQzEpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgovKiBSZXBvcnRlZCBieSBGZWxpeCBNb2VsbGVyIDxmZWxpeEBkZXJrbGVja3MuZGU+CiAqIGluIEdlcm1hbnkgdGhpcyBpcyBzb2xkIGJ5IEhhbWEgd2l0aCB0aGUgcHJvZHVjdG51bWJlciA0Njk1MgogKiBhcyAiRHVhbFNsb3QgQ29tcGFjdEZsYXNoKFRNKSAmIE1TdGljayBEcml2ZSBVU0IiCiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTBiLCAweDAwMDAsIDB4ZmZmZiwKICAgICAgICAgICAgICAgICJEYXRhRmFiIFN5c3RlbXMgSW5jLiIsCiAgICAgICAgICAgICAgICAiVVNCIENGK01TIiwKICAgICAgICAgICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCiAgICAgICAgICAgICAgICAwICksCgojZW5kaWYKCi8qIERhdGFmYWIgS0VDRi1VU0IgLyBTYWdhdGVrIERDUy1DRiAvIFNpbXBsZXRlY2ggRmxhc2hsaW5rIFVDRi0xMDAKICogT25seSByZXZpc2lvbiAxLjEzIHRlc3RlZCAoc2FtZSBmb3IgYWxsIG9mIHRoZSBhYm92ZSBkZXZpY2VzLAogKiBiYXNlZCBvbiB0aGUgRGF0YWZhYiBERi1VRy0wNyBjaGlwKS4gIE5lZWRlZCBmb3IgVVNfRkxfRklYX0lOUVVJUlkuCiAqIFN1Ym1pdHRlZCBieSBNYXJlayBNaWNoYWxraWV3aWN6IDxtYXJla21AYW1lbGVrLmdkYS5wbD4uCiAqIFNlZSBhbHNvIGh0dHA6Ly9tYXJ0aW4ud2lsY2suYmVpLnQtb25saW5lLmRlLyNrZWNmIC4KICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGE0MDAsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIiwKCQkiS0VDRi1VU0IiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBDYXNpbyBRViAyeDAwLzN4MDAvNDAwMC84MDAwIGRpZ2l0YWwgc3RpbGwgY2FtZXJhcyBhcmUgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb24gaW4gdHdvIHdheXM6CiAqIC0gVGhleSB0ZWxsIHVzIHRoZXkgYXJlIHVzaW5nIHRyYW5zcG9ydCBwcm90b2NvbCBDQkkuIEluIHJlYWxpdHkgdGhleQogKiAgIGFyZSB1c2luZyB0cmFuc3BvcnQgcHJvdG9jb2wgQ0IuCiAqIC0gVGhleSBkb24ndCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogLSBTb21lIGNhbWVyYXMgd2l0aCBpZFByb2R1Y3Q9MHgxMDAxIGFuZCBiY2REZXZpY2U9MHgxMDAwIGhhdmUKICogICBiSW50ZXJmYWNlUHJvdG9jb2w9MHgwMCAoVVNfUFJfQ0JJKSB3aGlsZSBvdGhlcnMgaGF2ZSAweDAxIChVU19QUl9DQikuCiAqICAgU28gZG9uJ3QgcmVtb3ZlIHRoZSBVU19QUl9DQiBvdmVycmlkZSEKICogLSBDYW1lcmFzIHdpdGggYmNkRGV2aWNlPTB4OTAwOSByZXF1aXJlIHRoZSBVU19TQ184MDcwIG92ZXJyaWRlLgogKi8KVU5VU1VBTF9ERVYoIDB4MDdjZiwgMHgxMDAxLCAweDEwMDAsIDB4OTk5OSwKCQkiQ2FzaW8iLAoJCSJRViBEaWdpdGFsQ2FtZXJhIiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFIHwgVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBIYXJ0bXV0IFdhaGwgPGh3YWhsQGh3YWhsLmRlPiovClVOVVNVQUxfREVWKCAweDA4MzksIDB4MDAwYSwgMHgwMDAxLCAweDAwMDEsCgkJIlNhbXN1bmciLAoJCSJEaWdpbWF4IDQxMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRmxhZyB3aWxsIHN1cHBvcnQgQnVsayBkZXZpY2VzIHdoaWNoIHVzZSBhIHN0YW5kYXJkcy12aW9sYXRpbmcgMzItYnl0ZQogKiBDb21tYW5kIEJsb2NrIFdyYXBwZXIuIEhlcmUsIHRoZSAiREMyTUVHQSIgY2FtZXJhcyAoc2V2ZXJhbCBicmFuZHMpIHdpdGgKICogR3JhbmR0ZWNoIEdUODkyeCBjaGlwLCB3aGljaCByZXF1ZXN0ICJQcm9wcmlldGFyeSBTQ1NJIEJ1bGsiIHN1cHBvcnQuCiAqLwoKVU5VU1VBTF9ERVYoICAweDA4NGQsIDB4MDAxMSwgMHgwMTEwLCAweDAxMTAsCgkJIkdyYW5kdGVjaCIsCgkJIkRDMk1FR0EiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgoKLyogRW50cnkgbmVlZGVkIGZvciBmbGFncy4gTW9yZW92ZXIsIGFsbCBkZXZpY2VzIHdpdGggdGhpcyBJRCB1c2UKICogYnVsay1vbmx5IHRyYW5zcG9ydCwgYnV0IF9zb21lXyBmYWxzZWx5IHJlcG9ydCBDb250cm9sL0J1bGsgaW5zdGVhZC4KICogT25lIGV4YW1wbGUgaXMgIlRydW1waW9uIERpZ2l0YWwgUmVzZWFyY2ggTVlNUDMiLgogKiBTdWJtaXR0ZWQgYnkgQmpvZXJuIEJyaWxsIDxicmlsbChhdClmcy5tYXRoLnVuaS1mcmFua2Z1cnQuZGU+CiAqLwpVTlVTVUFMX0RFViggIDB4MDkwYSwgMHgxMDAxLCAweDAxMDAsIDB4MDEwMCwKCQkiVHJ1bXBpb24iLAoJCSJ0MzM1MjAgVVNCIEZsYXNoIENhcmQgQ29udHJvbGxlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKCi8qIFJlcG9ydGVkIGJ5IEZpbGlwcG8gQmFyZGVsbGkgPGZpbGliYXJkQGxpYmVyby5pdD4KICogVGhlIGRldmljZSByZXBvcnRzIGEgc3ViY2xhc3Mgb2YgUkJDLCB3aGljaCBpcyB3cm9uZy4KICovClVOVVNVQUxfREVWKCAgMHgwOTBhLCAweDEwNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJUcnVtcGlvbiBNaWNyb2VsZWN0cm9uaWNzLCBJbmMuIiwKCQkiMzM1MjAgVVNCIERpZ2l0YWwgVm9pY2UgUmVjb3JkZXIiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCTApLAoKLyogVHJ1bXBpb24gTWljcm9lbGVjdHJvbmljcyBNUDMgcGxheWVyIChmZWxpcGVfYWxmYXJvQGxpbnV4bWFpbC5vcmcpICovClVOVVNVQUxfREVWKCAweDA5MGEsIDB4MTIwMCwgMHgwMDAwLCAweDk5OTksCgkJIlRydW1waW9uIiwKCQkiTVAzIHBsYXllciIsCgkJVVNfU0NfUkJDLCBVU19QUl9CVUxLLCBOVUxMLAoJCTAgKSwKCi8qIGFlYiAqLwpVTlVTVUFMX0RFViggMHgwOTBjLCAweDExMzIsIDB4MDAwMCwgMHhmZmZmLAoJCSJGZWl5YSIsCgkJIjUtaW4tMSBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBUaGlzIFBlbnRheCBzdGlsbCBjYW1lcmEgaXMgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb246IC0KICogLSBJdCBkb2VzIG5vdCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogVGVzdGVkIG9uIFJldi4gMTAuMDAgKDB4MTAwMCkKICogU3VibWl0dGVkIGJ5IEphbWVzIENvdXJ0aWVyLUR1dHRvbiA8SmFtZXNAc3VwZXJidWcuZGVtb24uY28udWs+CiAqLwpVTlVTVUFMX0RFViggMHgwYTE3LCAweDAwMDQsIDB4MTAwMCwgMHgxMDAwLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gMi8zLzQwMCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoKLyogU3VibWl0dGVkIGJ5IFBlciBXaW5rdmlzdCA8cGVyLndpbmt2aXN0QHVrLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MGExNywgMHgwMDYsIDB4MDAwMCwgMHhmZmZmLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gUy9TNCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgkJCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSVNEMjAwClVOVVNVQUxfREVWKCAgMHgwYmY2LCAweGEwMDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJBVEkiLAoJCSJVU0IgQ2FibGUgMjA1IiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCClVOVVNVQUxfREVWKCAweDBjMGIsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkgICAgICAgIkFjb21kYXRhIiwKCSAgICAgICAiQ0YiLAoJICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkgICAgICAgVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoIDB4MGMwYiwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCSAgICAgICAiQWNvbWRhdGEiLAoJICAgICAgICJTTSIsCgkgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnk6IE5pY2sgU2lsbGlrIDxuLnNpbGxpa0B0ZW1wbGUuZWR1PgogKiBOZWVkZWQgZm9yIE9uZVRvdWNoIGV4dGVuc2lvbiB0byB1c2Itc3RvcmFnZQogKgogKi8KI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9PTkVUT1VDSAoJVU5VU1VBTF9ERVYoICAweDBkNDksIDB4NzAwMCwgMHgwMDAwLCAweDk5OTksCgkJCSJNYXh0b3IiLAoJCQkiT25lVG91Y2ggRXh0ZXJuYWwgSGFyZGRyaXZlIiwKCQkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIG9uZXRvdWNoX2Nvbm5lY3RfaW5wdXQsCgkJCTApLAoJVU5VU1VBTF9ERVYoICAweDBkNDksIDB4NzAxMCwgMHgwMDAwLCAweDk5OTksCgkJCSJNYXh0b3IiLAoJCQkiT25lVG91Y2ggRXh0ZXJuYWwgSGFyZGRyaXZlIiwKCQkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIG9uZXRvdWNoX2Nvbm5lY3RfaW5wdXQsCgkJCTApLAojZW5kaWYKCi8qIFN1Ym1pdHRlZCBieSBKb3JpcyBTdHJ1eXZlIDxqb3Jpc0BzdHJ1eXZlLmJlPiAqLwpVTlVTVUFMX0RFViggMHgwZDk2LCAweDQxMGEsIDB4MDAwMSwgMHhmZmZmLAoJCSJNZWRpb24iLAoJCSJNRCA3NDI1IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKgogKiBFbnRyeSBmb3IgSmVub3B0aWsgSkQgNTIwMHozCiAqCiAqIGVtYWlsOiBjYXIuYnVzc2VAZ214LmRlCiAqLwpVTlVTVUFMX0RFViggIDB4MGQ5NiwgMHg1MjAwLCAweDAwMDEsIDB4MDIwMCwKCQkiSmVub3B0aWsiLAoJCSJKRCA1MjAwIHozIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUmVwb3J0ZWQgYnkgTHVib21pciBCbGFoYSA8dHJpdG9sQHRyaWxvZ2ljLmN6PgogKiBJIF9SRUFMTFlfIGRvbid0IGtub3cgd2hhdCAzcmQsIDR0aCBudW1iZXIgYW5kIGFsbCBkZWZpbmVzIG1lYW4sIGJ1dCB0aGlzCiAqIHdvcmtzIGZvciBtZS4gQ2FuIGFueWJvZHkgY29ycmVjdCB0aGVzZSB2YWx1ZXM/IChJIGFibGUgdG8gdGVzdCBjb3JyZWN0ZWQKICogdmVyc2lvbi4pCiAqLwpVTlVTVUFMX0RFViggMHgwZGQ4LCAweDEwNjAsIDB4MDAwMCwgMHhmZmZmLAoJCSJOZXRhYyIsCgkJIlVTQi1DRi1DYXJkIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogUGF0Y2ggYnkgU3RlcGhhbiBXYWx0ZXIgPHN0ZXBoYW4ud2FsdGVyQGVwZmwuY2g+CiAqIEkgZG9uJ3Qga25vdyB3aHksIGJ1dCBpdCB3b3Jrcy4uLiAqLwpVTlVTVUFMX0RFViggMHgwZGRhLCAweDAwMDEsIDB4MDAxMiwgMHgwMDEyLAoJCSJXSU5XQVJEIiwKCQkiTXVzaWMgRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IElhbiBNY0Nvbm5lbGwgPGlhbiBhdCBlbWl0LmRlbW9uLmNvLnVrPiAqLwpVTlVTVUFMX0RFViggIDB4MGRkYSwgMHgwMzAxLCAweDAwMTIsIDB4MDAxMiwKCQkiUE5QX01QMyIsCgkJIlBOUF9NUDMgUExBWUVSIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogU3VibWl0dGVkIGJ5IEFudG9pbmUgTWFpcmVzc2UgPGFudG9pbmUubWFpcmVzc2VAZnJlZS5mcj4gKi8KVU5VU1VBTF9ERVYoIDB4MGVkMSwgMHg2NjYwLCAweDAxMDAsIDB4MDMwMCwKCQkiVVNCIiwKCQkiU29saWQgc3RhdGUgZGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBEYW5pZWwgRHJha2UgPGRzZEBnZW50b28ub3JnPgogKiBSZXBvcnRlZCBieSBkYXl1bCBvbiB0aGUgR2VudG9vIEZvcnVtcyAqLwpVTlVTVUFMX0RFViggIDB4MGVhMCwgMHgyMTY4LCAweDAxMTAsIDB4MDExMCwKCQkiT3VycyBUZWNobm9sb2d5IiwKCQkiRmxhc2ggRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhc3Rpc2xhdiBTdGFuaWsgPHJzX2tlcm5lbEB5YWhvby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwZWEwLCAweDY4MjgsIDB4MDExMCwgMHgwMTEwLAoJCSJVU0IiLAoJCSJGbGFzaCBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgTWljaGFlbCBTdGF0dG1hbm4gPG1pY2hhZWxAc3RhdHRtYW5uLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDBmY2UsIDB4ZDAwOCwgMHgwMDAwLCAweDAwMDAsCgkJIlNvbnkgRXJpY3Nzb24iLAoJCSJWODAwLVZvZGFmb25lIDgwMiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfTk9fV1BfREVURUNUICksCgovKiBSZXBvcnRlZCBieSBLZXZpbiBDZXJuZWtlZSA8a3BjLXVzYmRldkBnZWxhdG8udWl1Yy5lZHU+CiAqIFRlc3RlZCBvbiBoYXJkd2FyZSB2ZXJzaW9uIDEuMTAuCiAqIEVudHJ5IGlzIG5lZWRlZCBvbmx5IGZvciB0aGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24gb3ZlcnJpZGUuCiAqLwpVTlVTVUFMX0RFViggIDB4MTAxOSwgMHgwYzU1LCAweDAwMDAsIDB4OTk5OSwKCQkiRGVza25vdGUiLAoJCSJVQ1ItNjFTMkIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCB1c2Jfc3Rvcl91Y3I2MXMyYl9pbml0LAoJCTAgKSwKCi8qIFJlcG9ydGVkIGJ5IFZpbGl1cyBCaWxpbmtldmljaXVzIDx2aWxpc2FzIEFUIHh4eCBET1QgbHQpICovClVOVVNVQUxfREVWKCAgMHgxMzJiLCAweDAwMGIsIDB4MDAwMSwgMHgwMDAxLAoJCSJNaW5vbHRhIiwKCQkiRGltYWdlIFoxMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgS290cmxhIFZpdGV6c2xhdiA8a290cmxhQGNlYi5jej4gKi8KVU5VU1VBTF9ERVYoICAweDEzNzAsIDB4NjgyOCwgMHgwMTEwLCAweDAxMTAsCgkJIlNXSVNTQklUIiwKCQkiQmxhY2sgU2lsdmVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgUmFkb3ZhbiBHYXJhYmlrIDxnYXJhYmlrQGthc3Npb3BlaWEuanVscy5zYXZiYS5zaz4gKi8KVU5VU1VBTF9ERVYoICAweDI3MzUsIDB4MTAwYiwgMHgwMDAwLCAweDk5OTksCgkJIk1QSU8iLAoJCSJIUzIwMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfR09fU0xPVyApLAoKLyoKICogRGF2aWQgSORyZGVtYW4gPGRhdmlkQDJnZW4uY29tPgogKiBUaGUga2V5IG1ha2VzIHRoZSBTQ1NJIHN0YWNrIHByaW50IGNvbmZ1c2luZyAoYnV0IGhhcm1sZXNzKSBtZXNzYWdlcwogKi8KVU5VU1VBTF9ERVYoICAweDQxNDYsIDB4YmEwMSwgMHgwMTAwLCAweDAxMDAsCgkJIklvbWVnYSIsCgkJIk1pY3JvIE1pbmkgMUdCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQpVTlVTVUFMX0RFViggIDB4NTVhYSwgMHhhMTAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjU1IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCiNlbmRpZgo=