From mboxrd@z Thu Jan 1 00:00:00 1970 From: Igor Mammedov Subject: Re: [Qemu-devel] [PATCH v2 08/30] hw/i386: use the BYTE-based definitions Date: Tue, 6 Mar 2018 13:43:10 +0100 Message-ID: <20180306134310.70b631b4@redhat.com> References: <20180305112732.26471-1-f4bug@amsat.org> <20180305112732.26471-9-f4bug@amsat.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1etBwC-0007aZ-SU for xen-devel@lists.xenproject.org; Tue, 06 Mar 2018 12:43:24 +0000 In-Reply-To: <20180305112732.26471-9-f4bug@amsat.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Philippe =?UTF-8?B?TWF0aGlldS1EYXVkw6k=?= Cc: Stefano Stabellini , Eduardo Habkost , "Michael S. Tsirkin" , qemu-trivial@nongnu.org, qemu-devel@nongnu.org, Marcel Apfelbaum , "open list:X86" , Anthony Perard , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org T24gTW9uLCAgNSBNYXIgMjAxOCAwODoyNzoxMCAtMDMwMApQaGlsaXBwZSBNYXRoaWV1LURhdWTD qSA8ZjRidWdAYW1zYXQub3JnPiB3cm90ZToKCj4gSXQgZWFzZXMgY29kZSByZXZpZXcsIHVuaXQg aXMgZXhwbGljaXQuCj4gCj4gUGF0Y2ggZ2VuZXJhdGVkIHVzaW5nOgo+IAo+ICAgJCBnaXQgZ3Jl cCAtRSAnKDEwMjR8MjA0OHw0MDk2fDgxOTJ8KDw8fD4+KS4/KDEwfDIwfDMwKSknIGh3LyBpbmNs dWRlL2h3Lwo+IAo+IGFuZCBtb2RpZmllZCBtYW51YWxseS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQ aGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8ZjRidWdAYW1zYXQub3JnPgpNeSBhcG9sb2dpZXMsCmNv bXBpbGF0aW9uIGVycm9ycyB3ZXJlIG15IG1pc3Rha2Ugb2Ygbm90IGFwcGx5aW5nIDEtMi8zMCBw YXRjaGVzIGZpcnN0LgoKUmV2aWV3ZWQtYnk6IElnb3IgTWFtbWVkb3YgPGltYW1tZWRvQHJlZGhh dC5jb20+Cgo+IC0tLQo+ICBpbmNsdWRlL2h3L2kzODYvaWNoOS5oICAgICB8ICAyICstCj4gIGh3 L2kzODYvYWNwaS1idWlsZC5jICAgICAgIHwgIDQgKystLQo+ICBody9pMzg2L3BjLmMgICAgICAg ICAgICAgICB8IDE4ICsrKysrKysrKy0tLS0tLS0tLQo+ICBody9pMzg2L3BjX3BpaXguYyAgICAg ICAgICB8ICAyICstCj4gIGh3L2kzODYvcGNfcTM1LmMgICAgICAgICAgIHwgIDIgKy0KPiAgaHcv aTM4Ni9wY19zeXNmdy5jICAgICAgICAgfCAgOCArKysrLS0tLQo+ICBody9pMzg2L3hlbi94ZW4t bWFwY2FjaGUuYyB8ICAyICstCj4gIGh3L2ludGMvYXBpY19jb21tb24uYyAgICAgIHwgIDIgKy0K PiAgaHcvcGNpLWhvc3QvZ3BleC5jICAgICAgICAgfCAgMiArLQo+ICBody9wY2ktaG9zdC9waWl4 LmMgICAgICAgICB8ICA0ICsrLS0KPiAgaHcvcGNpLWhvc3QvcTM1LmMgICAgICAgICAgfCAxNiAr KysrKysrKy0tLS0tLS0tCj4gIDExIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDMx IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2kzODYvaWNoOS5oIGIv aW5jbHVkZS9ody9pMzg2L2ljaDkuaAo+IGluZGV4IDY3M2QxM2QyOGYuLjg3NjI4ZGQ4NjcgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9ody9pMzg2L2ljaDkuaAo+ICsrKyBiL2luY2x1ZGUvaHcvaTM4 Ni9pY2g5LmgKPiBAQCAtMjIsNyArMjIsNyBAQCBJMkNCdXMgKmljaDlfc21iX2luaXQoUENJQnVz ICpidXMsIGludCBkZXZmbiwgdWludDMyX3Qgc21iX2lvX2Jhc2UpOwo+ICAKPiAgdm9pZCBpY2g5 X2dlbmVyYXRlX3NtaSh2b2lkKTsKPiAgCj4gLSNkZWZpbmUgSUNIOV9DQ19TSVpFICgxNiAqIDEw MjQpIC8qIDE2S0IuIENoaXBzZXQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KPiArI2RlZmlu ZSBJQ0g5X0NDX1NJWkUgKDE2ICogS19CWVRFKSAvKiBDaGlwc2V0IGNvbmZpZ3VyYXRpb24gcmVn aXN0ZXJzICovCj4gIAo+ICAjZGVmaW5lIFRZUEVfSUNIOV9MUENfREVWSUNFICJJQ0g5LUxQQyIK PiAgI2RlZmluZSBJQ0g5X0xQQ19ERVZJQ0Uob2JqKSBcCj4gZGlmZiAtLWdpdCBhL2h3L2kzODYv YWNwaS1idWlsZC5jIGIvaHcvaTM4Ni9hY3BpLWJ1aWxkLmMKPiBpbmRleCBkZWI0NDBmMjg2Li45 Y2NjNjE5MmI1IDEwMDY0NAo+IC0tLSBhL2h3L2kzODYvYWNwaS1idWlsZC5jCj4gKysrIGIvaHcv aTM4Ni9hY3BpLWJ1aWxkLmMKPiBAQCAtMjMyMCw4ICsyMzIwLDggQEAgYnVpbGRfdHBtMihHQXJy YXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwgR0FycmF5ICp0Y3BhbG9nKQo+ICAg ICAgICAgICAgICAgICAgICh2b2lkICopdHBtMl9wdHIsICJUUE0yIiwgc2l6ZW9mKCp0cG0yX3B0 ciksIDQsIE5VTEwsIE5VTEwpOwo+ICB9Cj4gIAo+IC0jZGVmaW5lIEhPTEVfNjQwS19TVEFSVCAg KDY0MCAqIDEwMjQpCj4gLSNkZWZpbmUgSE9MRV82NDBLX0VORCAgICgxMDI0ICogMTAyNCkKPiAr I2RlZmluZSBIT0xFXzY0MEtfU1RBUlQgICg2NDAgKiBLX0JZVEUpCj4gKyNkZWZpbmUgSE9MRV82 NDBLX0VORCAgICgxMDI0ICogS19CWVRFKQo+ICAKPiAgc3RhdGljIHZvaWQKPiAgYnVpbGRfc3Jh dChHQXJyYXkgKnRhYmxlX2RhdGEsIEJJT1NMaW5rZXIgKmxpbmtlciwgTWFjaGluZVN0YXRlICpt YWNoaW5lKQo+IGRpZmYgLS1naXQgYS9ody9pMzg2L3BjLmMgYi9ody9pMzg2L3BjLmMKPiBpbmRl eCA1NWU2OWQ2NmZlLi45NGExZjNiYzdiIDEwMDY0NAo+IC0tLSBhL2h3L2kzODYvcGMuYwo+ICsr KyBiL2h3L2kzODYvcGMuYwo+IEBAIC00NTIsOCArNDUyLDggQEAgdm9pZCBwY19jbW9zX2luaXQo UENNYWNoaW5lU3RhdGUgKnBjbXMsCj4gICAgICBydGNfc2V0X21lbW9yeShzLCAweDE1LCB2YWwp Owo+ICAgICAgcnRjX3NldF9tZW1vcnkocywgMHgxNiwgdmFsID4+IDgpOwo+ICAgICAgLyogZXh0 ZW5kZWQgbWVtb3J5IChuZXh0IDY0TWlCKSAqLwo+IC0gICAgaWYgKHBjbXMtPmJlbG93XzRnX21l bV9zaXplID4gMTAyNCAqIDEwMjQpIHsKPiAtICAgICAgICB2YWwgPSAocGNtcy0+YmVsb3dfNGdf bWVtX3NpemUgLSAxMDI0ICogMTAyNCkgLyAxMDI0Owo+ICsgICAgaWYgKHBjbXMtPmJlbG93XzRn X21lbV9zaXplID4gMSAqIE1fQllURSkgewo+ICsgICAgICAgIHZhbCA9IChwY21zLT5iZWxvd180 Z19tZW1fc2l6ZSAtIDEgKiBNX0JZVEUpIC8gMTAyNDsKPiAgICAgIH0gZWxzZSB7Cj4gICAgICAg ICAgdmFsID0gMDsKPiAgICAgIH0KPiBAQCAtNDY0LDggKzQ2NCw4IEBAIHZvaWQgcGNfY21vc19p bml0KFBDTWFjaGluZVN0YXRlICpwY21zLAo+ICAgICAgcnRjX3NldF9tZW1vcnkocywgMHgzMCwg dmFsKTsKPiAgICAgIHJ0Y19zZXRfbWVtb3J5KHMsIDB4MzEsIHZhbCA+PiA4KTsKPiAgICAgIC8q IG1lbW9yeSBiZXR3ZWVuIDE2TWlCIGFuZCA0R2lCICovCj4gLSAgICBpZiAocGNtcy0+YmVsb3df NGdfbWVtX3NpemUgPiAxNiAqIDEwMjQgKiAxMDI0KSB7Cj4gLSAgICAgICAgdmFsID0gKHBjbXMt PmJlbG93XzRnX21lbV9zaXplIC0gMTYgKiAxMDI0ICogMTAyNCkgLyA2NTUzNjsKPiArICAgIGlm IChwY21zLT5iZWxvd180Z19tZW1fc2l6ZSA+IDE2ICogTV9CWVRFKSB7Cj4gKyAgICAgICAgdmFs ID0gKHBjbXMtPmJlbG93XzRnX21lbV9zaXplIC0gMTYgKiBNX0JZVEUpIC8gNjU1MzY7Cj4gICAg ICB9IGVsc2Ugewo+ICAgICAgICAgIHZhbCA9IDA7Cj4gICAgICB9Cj4gQEAgLTEzOTAsMTEgKzEz OTAsMTEgQEAgdm9pZCBwY19tZW1vcnlfaW5pdChQQ01hY2hpbmVTdGF0ZSAqcGNtcywKPiAgICAg ICAgICB9Cj4gIAo+ICAgICAgICAgIHBjbXMtPmhvdHBsdWdfbWVtb3J5LmJhc2UgPQo+IC0gICAg ICAgICAgICBST1VORF9VUCgweDEwMDAwMDAwMFVMTCArIHBjbXMtPmFib3ZlXzRnX21lbV9zaXpl LCAxVUxMIDw8IDMwKTsKPiArICAgICAgICAgICAgUk9VTkRfVVAoMHgxMDAwMDAwMDBVTEwgKyBw Y21zLT5hYm92ZV80Z19tZW1fc2l6ZSwgR19CWVRFKTsKPiAgCj4gICAgICAgICAgaWYgKHBjbWMt PmVuZm9yY2VfYWxpZ25lZF9kaW1tKSB7Cj4gICAgICAgICAgICAgIC8qIHNpemUgaG90cGx1ZyBy ZWdpb24gYXNzdW1pbmcgMUcgcGFnZSBtYXggYWxpZ25tZW50IHBlciBzbG90ICovCj4gLSAgICAg ICAgICAgIGhvdHBsdWdfbWVtX3NpemUgKz0gKDFVTEwgPDwgMzApICogbWFjaGluZS0+cmFtX3Ns b3RzOwo+ICsgICAgICAgICAgICBob3RwbHVnX21lbV9zaXplICs9IG1hY2hpbmUtPnJhbV9zbG90 cyAqIEdfQllURTsKPiAgICAgICAgICB9Cj4gIAo+ICAgICAgICAgIGlmICgocGNtcy0+aG90cGx1 Z19tZW1vcnkuYmFzZSArIGhvdHBsdWdfbWVtX3NpemUpIDwKPiBAQCAtMTQzNiw3ICsxNDM2LDcg QEAgdm9pZCBwY19tZW1vcnlfaW5pdChQQ01hY2hpbmVTdGF0ZSAqcGNtcywKPiAgICAgICAgICBp ZiAoIXBjbWMtPmJyb2tlbl9yZXNlcnZlZF9lbmQpIHsKPiAgICAgICAgICAgICAgcmVzX21lbV9l bmQgKz0gbWVtb3J5X3JlZ2lvbl9zaXplKCZwY21zLT5ob3RwbHVnX21lbW9yeS5tcik7Cj4gICAg ICAgICAgfQo+IC0gICAgICAgICp2YWwgPSBjcHVfdG9fbGU2NChST1VORF9VUChyZXNfbWVtX2Vu ZCwgMHgxVUxMIDw8IDMwKSk7Cj4gKyAgICAgICAgKnZhbCA9IGNwdV90b19sZTY0KFJPVU5EX1VQ KHJlc19tZW1fZW5kLCBHX0JZVEUpKTsKPiAgICAgICAgICBmd19jZmdfYWRkX2ZpbGUoZndfY2Zn LCAiZXRjL3Jlc2VydmVkLW1lbW9yeS1lbmQiLCB2YWwsIHNpemVvZigqdmFsKSk7Cj4gICAgICB9 Cj4gIAo+IEBAIC0xNDcyLDcgKzE0NzIsNyBAQCB1aW50NjRfdCBwY19wY2lfaG9sZTY0X3N0YXJ0 KHZvaWQpCj4gICAgICAgICAgaG9sZTY0X3N0YXJ0ID0gMHgxMDAwMDAwMDBVTEwgKyBwY21zLT5h Ym92ZV80Z19tZW1fc2l6ZTsKPiAgICAgIH0KPiAgCj4gLSAgICByZXR1cm4gUk9VTkRfVVAoaG9s ZTY0X3N0YXJ0LCAxVUxMIDw8IDMwKTsKPiArICAgIHJldHVybiBST1VORF9VUChob2xlNjRfc3Rh cnQsIEdfQllURSk7Cj4gIH0KPiAgCj4gIHFlbXVfaXJxIHBjX2FsbG9jYXRlX2NwdV9pcnEodm9p ZCkKPiBAQCAtMjExNCw3ICsyMTE0LDcgQEAgc3RhdGljIHZvaWQgcGNfbWFjaGluZV9zZXRfbWF4 X3JhbV9iZWxvd180ZyhPYmplY3QgKm9iaiwgVmlzaXRvciAqdiwKPiAgICAgICAgICByZXR1cm47 Cj4gICAgICB9Cj4gIAo+IC0gICAgaWYgKHZhbHVlIDwgKDFVTEwgPDwgMjApKSB7Cj4gKyAgICBp ZiAodmFsdWUgPCAxICogTV9CWVRFKSB7Cj4gICAgICAgICAgd2Fybl9yZXBvcnQoIk9ubHkgJSIg UFJJdTY0ICIgYnl0ZXMgb2YgUkFNIGJlbG93IHRoZSA0R2lCIGJvdW5kYXJ5LCIKPiAgICAgICAg ICAgICAgICAgICAgICAiQklPUyBtYXkgbm90IHdvcmsgd2l0aCBsZXNzIHRoYW4gMU1pQiIsIHZh bHVlKTsKPiAgICAgIH0KPiBkaWZmIC0tZ2l0IGEvaHcvaTM4Ni9wY19waWl4LmMgYi9ody9pMzg2 L3BjX3BpaXguYwo+IGluZGV4IDQ1NmRjOWU5ZjAuLjk3NWRmYzg0OGUgMTAwNjQ0Cj4gLS0tIGEv aHcvaTM4Ni9wY19waWl4LmMKPiArKysgYi9ody9pMzg2L3BjX3BpaXguYwo+IEBAIC0xMzEsNyAr MTMxLDcgQEAgc3RhdGljIHZvaWQgcGNfaW5pdDEoTWFjaGluZVN0YXRlICptYWNoaW5lLAo+ICAg ICAgICAgICAgICAgICAgaWYgKGxvd21lbSA+IDB4YzAwMDAwMDApIHsKPiAgICAgICAgICAgICAg ICAgICAgICBsb3dtZW0gPSAweGMwMDAwMDAwOwo+ICAgICAgICAgICAgICAgICAgfQo+IC0gICAg ICAgICAgICAgICAgaWYgKGxvd21lbSAmICgoMVVMTCA8PCAzMCkgLSAxKSkgewo+ICsgICAgICAg ICAgICAgICAgaWYgKGxvd21lbSAmICgoMSAqIEdfQllURSkgLSAxKSkgewo+ICAgICAgICAgICAg ICAgICAgICAgIHdhcm5fcmVwb3J0KCJMYXJnZSBtYWNoaW5lIGFuZCBtYXhfcmFtX2JlbG93XzRn ICIKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKCUiIFBSSXU2NCAiKSBub3Qg YSBtdWx0aXBsZSBvZiAxRzsgIgo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw b3NzaWJsZSBiYWQgcGVyZm9ybWFuY2UuIiwKPiBkaWZmIC0tZ2l0IGEvaHcvaTM4Ni9wY19xMzUu YyBiL2h3L2kzODYvcGNfcTM1LmMKPiBpbmRleCBhYmE3NTQxYTgyLi43OWI4NGJjNTU5IDEwMDY0 NAo+IC0tLSBhL2h3L2kzODYvcGNfcTM1LmMKPiArKysgYi9ody9pMzg2L3BjX3EzNS5jCj4gQEAg LTEwNCw3ICsxMDQsNyBAQCBzdGF0aWMgdm9pZCBwY19xMzVfaW5pdChNYWNoaW5lU3RhdGUgKm1h Y2hpbmUpCj4gICAgICBpZiAobG93bWVtID4gcGNtcy0+bWF4X3JhbV9iZWxvd180Zykgewo+ICAg ICAgICAgIGxvd21lbSA9IHBjbXMtPm1heF9yYW1fYmVsb3dfNGc7Cj4gICAgICAgICAgaWYgKG1h Y2hpbmUtPnJhbV9zaXplIC0gbG93bWVtID4gbG93bWVtICYmCj4gLSAgICAgICAgICAgIGxvd21l bSAmICgoMVVMTCA8PCAzMCkgLSAxKSkgewo+ICsgICAgICAgICAgICBsb3dtZW0gJiAoKDEgKiBH X0JZVEUpIC0gMSkpIHsKPiAgICAgICAgICAgICAgd2Fybl9yZXBvcnQoIlRoZXJlIGlzIHBvc3Np Ymx5IHBvb3IgcGVyZm9ybWFuY2UgYXMgdGhlIHJhbSBzaXplICIKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgIiAoMHglIiBQUkl4NjQgIikgaXMgbW9yZSB0aGVuIHR3aWNlIHRoZSBzaXplIG9m Igo+ICAgICAgICAgICAgICAgICAgICAgICAgICAiIG1heC1yYW0tYmVsb3ctNGcgKCUiUFJJdTY0 IikgYW5kIgo+IGRpZmYgLS1naXQgYS9ody9pMzg2L3BjX3N5c2Z3LmMgYi9ody9pMzg2L3BjX3N5 c2Z3LmMKPiBpbmRleCA0MzI1NTc1ZTdkLi45NzQ4OGE4MzJkIDEwMDY0NAo+IC0tLSBhL2h3L2kz ODYvcGNfc3lzZncuYwo+ICsrKyBiL2h3L2kzODYvcGNfc3lzZncuYwo+IEBAIC01Niw3ICs1Niw3 IEBAIHN0YXRpYyB2b2lkIHBjX2lzYV9iaW9zX2luaXQoTWVtb3J5UmVnaW9uICpyb21fbWVtb3J5 LAo+ICAgICAgZmxhc2hfc2l6ZSA9IG1lbW9yeV9yZWdpb25fc2l6ZShmbGFzaF9tZW0pOwo+ICAK PiAgICAgIC8qIG1hcCB0aGUgbGFzdCAxMjhLQiBvZiB0aGUgQklPUyBpbiBJU0Egc3BhY2UgKi8K PiAtICAgIGlzYV9iaW9zX3NpemUgPSBNSU4oZmxhc2hfc2l6ZSwgMTI4ICogMTAyNCk7Cj4gKyAg ICBpc2FfYmlvc19zaXplID0gTUlOKGZsYXNoX3NpemUsIDEyOCAqIEtfQllURSk7Cj4gICAgICBp c2FfYmlvcyA9IGdfbWFsbG9jKHNpemVvZigqaXNhX2Jpb3MpKTsKPiAgICAgIG1lbW9yeV9yZWdp b25faW5pdF9yYW0oaXNhX2Jpb3MsIE5VTEwsICJpc2EtYmlvcyIsIGlzYV9iaW9zX3NpemUsCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcl9mYXRhbCk7Cj4gQEAgLTgzLDcgKzgz LDcgQEAgc3RhdGljIHZvaWQgcGNfaXNhX2Jpb3NfaW5pdChNZW1vcnlSZWdpb24gKnJvbV9tZW1v cnksCj4gICAqIG9ubHkgMThNQi00S0IgYmVsb3cgNEcuIEZvciBub3csIHJlc3RyaWN0IHRoZSBj dW11bGF0aXZlIG1hcHBpbmcgdG8gOE1CIGluCj4gICAqIHNpemUuCj4gICAqLwo+IC0jZGVmaW5l IEZMQVNIX01BUF9CQVNFX01JTiAoKGh3YWRkcikoMHgxMDAwMDAwMDBVTEwgLSA4KjEwMjQqMTAy NCkpCj4gKyNkZWZpbmUgRkxBU0hfTUFQX0JBU0VfTUlOICgoaHdhZGRyKSgweDEwMDAwMDAwMFVM TCAtIDggKiBNX0JZVEUpKQo+ICAKPiAgLyogVGhpcyBmdW5jdGlvbiBtYXBzIGZsYXNoIGRyaXZl cyBmcm9tIDRHIGRvd253YXJkLCBpbiBvcmRlciBvZiB0aGVpciB1bml0Cj4gICAqIG51bWJlcnMu IFRoZSBtYXBwaW5nIHN0YXJ0cyBhdCB1bml0IzAsIHdpdGggdW5pdCBudW1iZXIgaW5jcmVtZW50 cyBvZiAxLCBhbmQKPiBAQCAtMjA5LDggKzIwOSw4IEBAIHN0YXRpYyB2b2lkIG9sZF9wY19zeXN0 ZW1fcm9tX2luaXQoTWVtb3J5UmVnaW9uICpyb21fbWVtb3J5LCBib29sIGlzYXBjX3JhbV9mdykK PiAgCj4gICAgICAvKiBtYXAgdGhlIGxhc3QgMTI4S0Igb2YgdGhlIEJJT1MgaW4gSVNBIHNwYWNl ICovCj4gICAgICBpc2FfYmlvc19zaXplID0gYmlvc19zaXplOwo+IC0gICAgaWYgKGlzYV9iaW9z X3NpemUgPiAoMTI4ICogMTAyNCkpIHsKPiAtICAgICAgICBpc2FfYmlvc19zaXplID0gMTI4ICog MTAyNDsKPiArICAgIGlmIChpc2FfYmlvc19zaXplID4gMTI4ICogS19CWVRFKSB7Cj4gKyAgICAg ICAgaXNhX2Jpb3Nfc2l6ZSA9IDEyOCAqIEtfQllURTsKPiAgICAgIH0KPiAgICAgIGlzYV9iaW9z ID0gZ19tYWxsb2Moc2l6ZW9mKCppc2FfYmlvcykpOwo+ICAgICAgbWVtb3J5X3JlZ2lvbl9pbml0 X2FsaWFzKGlzYV9iaW9zLCBOVUxMLCAiaXNhLWJpb3MiLCBiaW9zLAo+IGRpZmYgLS1naXQgYS9o dy9pMzg2L3hlbi94ZW4tbWFwY2FjaGUuYyBiL2h3L2kzODYveGVuL3hlbi1tYXBjYWNoZS5jCj4g aW5kZXggZWZhMzVkYzZlMC4uNWY0OGZkZTc5OSAxMDA2NDQKPiAtLS0gYS9ody9pMzg2L3hlbi94 ZW4tbWFwY2FjaGUuYwo+ICsrKyBiL2h3L2kzODYveGVuL3hlbi1tYXBjYWNoZS5jCj4gQEAgLTQ3 LDcgKzQ3LDcgQEAKPiAgICogRnJvbSBlbXBpcmljYWwgdGVzdHMgSSBvYnNlcnZlZCB0aGF0IHFl bXUgdXNlIDc1TUIgbW9yZSB0aGFuIHRoZQo+ICAgKiBtYXhfbWNhY2hlX3NpemUuCj4gICAqLwo+ IC0jZGVmaW5lIE5PTl9NQ0FDSEVfTUVNT1JZX1NJWkUgKDgwICogMTAyNCAqIDEwMjQpCj4gKyNk ZWZpbmUgTk9OX01DQUNIRV9NRU1PUllfU0laRSAoODAgKiBNX0JZVEUpCj4gIAo+ICB0eXBlZGVm IHN0cnVjdCBNYXBDYWNoZUVudHJ5IHsKPiAgICAgIGh3YWRkciBwYWRkcl9pbmRleDsKPiBkaWZm IC0tZ2l0IGEvaHcvaW50Yy9hcGljX2NvbW1vbi5jIGIvaHcvaW50Yy9hcGljX2NvbW1vbi5jCj4g aW5kZXggNzg5MDNlYTkwOS4uM2E2YzI5N2M1MiAxMDA2NDQKPiAtLS0gYS9ody9pbnRjL2FwaWNf Y29tbW9uLmMKPiArKysgYi9ody9pbnRjL2FwaWNfY29tbW9uLmMKPiBAQCAtMzE5LDcgKzMxOSw3 IEBAIHN0YXRpYyB2b2lkIGFwaWNfY29tbW9uX3JlYWxpemUoRGV2aWNlU3RhdGUgKmRldiwgRXJy b3IgKiplcnJwKQo+ICAKPiAgICAgIC8qIE5vdGU6IFdlIG5lZWQgYXQgbGVhc3QgMU0gdG8gbWFw IHRoZSBWQVBJQyBvcHRpb24gUk9NICovCj4gICAgICBpZiAoIXZhcGljICYmIHMtPnZhcGljX2Nv bnRyb2wgJiBWQVBJQ19FTkFCTEVfTUFTSyAmJgo+IC0gICAgICAgICFoYXhfZW5hYmxlZCgpICYm IHJhbV9zaXplID49IDEwMjQgKiAxMDI0KSB7Cj4gKyAgICAgICAgIWhheF9lbmFibGVkKCkgJiYg cmFtX3NpemUgPj0gMSAqIE1fQllURSkgewo+ICAgICAgICAgIHZhcGljID0gc3lzYnVzX2NyZWF0 ZV9zaW1wbGUoImt2bXZhcGljIiwgLTEsIE5VTEwpOwo+ICAgICAgfQo+ICAgICAgcy0+dmFwaWMg PSB2YXBpYzsKPiBkaWZmIC0tZ2l0IGEvaHcvcGNpLWhvc3QvZ3BleC5jIGIvaHcvcGNpLWhvc3Qv Z3BleC5jCj4gaW5kZXggMjU4M2IxNTFhNC4uOWNhYjlkMGU3ZCAxMDA2NDQKPiAtLS0gYS9ody9w Y2ktaG9zdC9ncGV4LmMKPiArKysgYi9ody9wY2ktaG9zdC9ncGV4LmMKPiBAQCAtNzksNyArNzks NyBAQCBzdGF0aWMgdm9pZCBncGV4X2hvc3RfcmVhbGl6ZShEZXZpY2VTdGF0ZSAqZGV2LCBFcnJv ciAqKmVycnApCj4gIAo+ICAgICAgcGNpZV9ob3N0X21tY2ZnX2luaXQocGV4LCBQQ0lFX01NQ0ZH X1NJWkVfTUFYKTsKPiAgICAgIG1lbW9yeV9yZWdpb25faW5pdCgmcy0+aW9fbW1pbywgT0JKRUNU KHMpLCAiZ3BleF9tbWlvIiwgVUlOVDY0X01BWCk7Cj4gLSAgICBtZW1vcnlfcmVnaW9uX2luaXQo JnMtPmlvX2lvcG9ydCwgT0JKRUNUKHMpLCAiZ3BleF9pb3BvcnQiLCA2NCAqIDEwMjQpOwo+ICsg ICAgbWVtb3J5X3JlZ2lvbl9pbml0KCZzLT5pb19pb3BvcnQsIE9CSkVDVChzKSwgImdwZXhfaW9w b3J0IiwgNjQgKiBLX0JZVEUpOwo+ICAKPiAgICAgIHN5c2J1c19pbml0X21taW8oc2JkLCAmcGV4 LT5tbWlvKTsKPiAgICAgIHN5c2J1c19pbml0X21taW8oc2JkLCAmcy0+aW9fbW1pbyk7Cj4gZGlm ZiAtLWdpdCBhL2h3L3BjaS1ob3N0L3BpaXguYyBiL2h3L3BjaS1ob3N0L3BpaXguYwo+IGluZGV4 IDBlNjA4MzQ3YzEuLjdmYzE4MjJlYzAgMTAwNjQ0Cj4gLS0tIGEvaHcvcGNpLWhvc3QvcGlpeC5j Cj4gKysrIGIvaHcvcGNpLWhvc3QvcGlpeC5jCj4gQEAgLTI4NCw3ICsyODQsNyBAQCBzdGF0aWMg dm9pZCBpNDQwZnhfcGNpaG9zdF9nZXRfcGNpX2hvbGU2NF9lbmQoT2JqZWN0ICpvYmosIFZpc2l0 b3IgKnYsCj4gIAo+ICAgICAgcGNpX2J1c19nZXRfdzY0X3JhbmdlKGgtPmJ1cywgJnc2NCk7Cj4g ICAgICB2YWx1ZSA9IHJhbmdlX2lzX2VtcHR5KCZ3NjQpID8gMCA6IHJhbmdlX3VwYigmdzY0KSAr IDE7Cj4gLSAgICBob2xlNjRfZW5kID0gUk9VTkRfVVAoaG9sZTY0X3N0YXJ0ICsgcy0+cGNpX2hv bGU2NF9zaXplLCAxVUxMIDw8IDMwKTsKPiArICAgIGhvbGU2NF9lbmQgPSBST1VORF9VUChob2xl NjRfc3RhcnQgKyBzLT5wY2lfaG9sZTY0X3NpemUsIEdfQllURSk7Cj4gICAgICBpZiAocy0+cGNp X2hvbGU2NF9maXggJiYgdmFsdWUgPCBob2xlNjRfZW5kKSB7Cj4gICAgICAgICAgdmFsdWUgPSBo b2xlNjRfZW5kOwo+ICAgICAgfQo+IEBAIC00MzAsNyArNDMwLDcgQEAgUENJQnVzICppNDQwZnhf aW5pdChjb25zdCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBlLAo+ICAKPiAg ICAgICpwaWl4M19kZXZmbiA9IHBpaXgzLT5kZXYuZGV2Zm47Cj4gIAo+IC0gICAgcmFtX3NpemUg PSByYW1fc2l6ZSAvIDggLyAxMDI0IC8gMTAyNDsKPiArICAgIHJhbV9zaXplIC89IDggKiBNX0JZ VEU7Cj4gICAgICBpZiAocmFtX3NpemUgPiAyNTUpIHsKPiAgICAgICAgICByYW1fc2l6ZSA9IDI1 NTsKPiAgICAgIH0KPiBkaWZmIC0tZ2l0IGEvaHcvcGNpLWhvc3QvcTM1LmMgYi9ody9wY2ktaG9z dC9xMzUuYwo+IGluZGV4IGEzNmExMTk1ZTQuLmE1NGI2NzM2ZTUgMTAwNjQ0Cj4gLS0tIGEvaHcv cGNpLWhvc3QvcTM1LmMKPiArKysgYi9ody9wY2ktaG9zdC9xMzUuYwo+IEBAIC0xNDQsNyArMTQ0 LDcgQEAgc3RhdGljIHZvaWQgcTM1X2hvc3RfZ2V0X3BjaV9ob2xlNjRfZW5kKE9iamVjdCAqb2Jq LCBWaXNpdG9yICp2LAo+ICAKPiAgICAgIHBjaV9idXNfZ2V0X3c2NF9yYW5nZShoLT5idXMsICZ3 NjQpOwo+ICAgICAgdmFsdWUgPSByYW5nZV9pc19lbXB0eSgmdzY0KSA/IDAgOiByYW5nZV91cGIo Jnc2NCkgKyAxOwo+IC0gICAgaG9sZTY0X2VuZCA9IFJPVU5EX1VQKGhvbGU2NF9zdGFydCArIHMt Pm1jaC5wY2lfaG9sZTY0X3NpemUsIDFVTEwgPDwgMzApOwo+ICsgICAgaG9sZTY0X2VuZCA9IFJP VU5EX1VQKGhvbGU2NF9zdGFydCArIHMtPm1jaC5wY2lfaG9sZTY0X3NpemUsIEdfQllURSk7Cj4g ICAgICBpZiAocy0+cGNpX2hvbGU2NF9maXggJiYgdmFsdWUgPCBob2xlNjRfZW5kKSB7Cj4gICAg ICAgICAgdmFsdWUgPSBob2xlNjRfZW5kOwo+ICAgICAgfQo+IEBAIC0zMTAsMTUgKzMxMCwxNSBA QCBzdGF0aWMgdm9pZCBtY2hfdXBkYXRlX3BjaWV4YmFyKE1DSFBDSVN0YXRlICptY2gpCj4gICAg ICBhZGRyX21hc2sgPSBNQ0hfSE9TVF9CUklER0VfUENJRVhCQVJfQURNU0s7Cj4gICAgICBzd2l0 Y2ggKHBjaWV4YmFyICYgTUNIX0hPU1RfQlJJREdFX1BDSUVYQkFSX0xFTkdUSF9NQVNLKSB7Cj4g ICAgICBjYXNlIE1DSF9IT1NUX0JSSURHRV9QQ0lFWEJBUl9MRU5HVEhfMjU2TToKPiAtICAgICAg ICBsZW5ndGggPSAyNTYgKiAxMDI0ICogMTAyNDsKPiArICAgICAgICBsZW5ndGggPSAyNTYgKiBN X0JZVEU7Cj4gICAgICAgICAgYnJlYWs7Cj4gICAgICBjYXNlIE1DSF9IT1NUX0JSSURHRV9QQ0lF WEJBUl9MRU5HVEhfMTI4TToKPiAtICAgICAgICBsZW5ndGggPSAxMjggKiAxMDI0ICogMTAyNDsK PiArICAgICAgICBsZW5ndGggPSAxMjggKiBNX0JZVEU7Cj4gICAgICAgICAgYWRkcl9tYXNrIHw9 IE1DSF9IT1NUX0JSSURHRV9QQ0lFWEJBUl8xMjhBRE1TSyB8Cj4gICAgICAgICAgICAgIE1DSF9I T1NUX0JSSURHRV9QQ0lFWEJBUl82NEFETVNLOwo+ICAgICAgICAgIGJyZWFrOwo+ICAgICAgY2Fz ZSBNQ0hfSE9TVF9CUklER0VfUENJRVhCQVJfTEVOR1RIXzY0TToKPiAtICAgICAgICBsZW5ndGgg PSA2NCAqIDEwMjQgKiAxMDI0Owo+ICsgICAgICAgIGxlbmd0aCA9IDY0ICogTV9CWVRFOwo+ICAg ICAgICAgIGFkZHJfbWFzayB8PSBNQ0hfSE9TVF9CUklER0VfUENJRVhCQVJfNjRBRE1TSzsKPiAg ICAgICAgICBicmVhazsKPiAgICAgIGNhc2UgTUNIX0hPU1RfQlJJREdFX1BDSUVYQkFSX0xFTkdU SF9SVkQ6Cj4gQEAgLTM5NiwxNiArMzk2LDE2IEBAIHN0YXRpYyB2b2lkIG1jaF91cGRhdGVfc21y YW0oTUNIUENJU3RhdGUgKm1jaCkKPiAgICAgICAgICBzd2l0Y2ggKHBkLT5jb25maWdbTUNIX0hP U1RfQlJJREdFX0VTTVJBTUNdICYKPiAgICAgICAgICAgICAgICAgIE1DSF9IT1NUX0JSSURHRV9F U01SQU1DX1RTRUdfU1pfTUFTSykgewo+ICAgICAgICAgIGNhc2UgTUNIX0hPU1RfQlJJREdFX0VT TVJBTUNfVFNFR19TWl8xTUI6Cj4gLSAgICAgICAgICAgIHRzZWdfc2l6ZSA9IDEwMjQgKiAxMDI0 Owo+ICsgICAgICAgICAgICB0c2VnX3NpemUgPSAxICogTV9CWVRFOwo+ICAgICAgICAgICAgICBi cmVhazsKPiAgICAgICAgICBjYXNlIE1DSF9IT1NUX0JSSURHRV9FU01SQU1DX1RTRUdfU1pfMk1C Ogo+IC0gICAgICAgICAgICB0c2VnX3NpemUgPSAxMDI0ICogMTAyNCAqIDI7Cj4gKyAgICAgICAg ICAgIHRzZWdfc2l6ZSA9IDIgKiBNX0JZVEU7Cj4gICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAg ICAgIGNhc2UgTUNIX0hPU1RfQlJJREdFX0VTTVJBTUNfVFNFR19TWl84TUI6Cj4gLSAgICAgICAg ICAgIHRzZWdfc2l6ZSA9IDEwMjQgKiAxMDI0ICogODsKPiArICAgICAgICAgICAgdHNlZ19zaXpl ID0gOCAqIE1fQllURTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAgICAgZGVmYXVsdDoK PiAtICAgICAgICAgICAgdHNlZ19zaXplID0gMTAyNCAqIDEwMjQgKiAodWludDMyX3QpbWNoLT5l eHRfdHNlZ19tYnl0ZXM7Cj4gKyAgICAgICAgICAgIHRzZWdfc2l6ZSA9ICh1aW50MzJfdCltY2gt PmV4dF90c2VnX21ieXRlcyAqIE1fQllURTsKPiAgICAgICAgICAgICAgYnJlYWs7Cj4gICAgICAg ICAgfQo+ICAgICAgfSBlbHNlIHsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs