From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: Re: [PATCH v2] qemu-trad: stop using the default IOREQ server Date: Thu, 23 Aug 2018 08:53:12 +0000 Message-ID: <5e9ab1af3d284f15906255c4852a3a88@AMSPEX02CL03.citrite.net> References: <1534351098-24875-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1534351098-24875-1-git-send-email-andrew.cooper3@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Andrew Cooper , Xen-devel Cc: Ian Jackson List-Id: xen-devel@lists.xenproject.org PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEFuZHJldyBDb29wZXIgW21haWx0 bzphbmRyZXcuY29vcGVyM0BjaXRyaXguY29tXQo+IFNlbnQ6IDE1IEF1Z3VzdCAyMDE4IDE3OjM4 Cj4gVG86IFhlbi1kZXZlbCA8eGVuLWRldmVsQGxpc3RzLnhlbi5vcmc+Cj4gQ2M6IElhbiBKYWNr c29uIDxJYW4uSmFja3NvbkBjaXRyaXguY29tPjsgUGF1bCBEdXJyYW50Cj4gPFBhdWwuRHVycmFu dEBjaXRyaXguY29tPgo+IFN1YmplY3Q6IFtQQVRDSCB2Ml0gcWVtdS10cmFkOiBzdG9wIHVzaW5n IHRoZSBkZWZhdWx0IElPUkVRIHNlcnZlcgo+IAo+IEZyb206IFBhdWwgRHVycmFudCA8cGF1bC5k dXJyYW50QGNpdHJpeC5jb20+Cj4gCj4gQmVjYXVzZSBxZW11LXRyYWQgaXMgdXNpbmcgdGhlIGxl Z2FjeSBIVk0gcGFyYW0gbWVjaGFuaXNtIG9mIGhvb2tpbmcKPiBpbnRvCj4gWGVuLCBpdCBtZWFu cyB0aGF0IFhlbiBoYXMgdG8gbWFpbnRhaW4gdGhlIG5vdGlvbiBvZiBhICdkZWZhdWx0JyBJT1JF UQo+IHNlcnZlciB3aGljaCBpcyB3aGVyZSBhbGwgSS9PIGdvZXMgaWYgbm8gb3RoZXIgZGV2aWNl IG1vZGVsIGNsYWltcyBpdC4KPiBNYWludGFpbmluZyB0aGlzIGNvZGUgaW4gWGVuIGhhcyBhIGNv c3QgYW5kIGl0IHdvdWxkIGJlIGdvb2QgaWYgdGhlIHByb2plY3QKPiBubyBsb25nZXIgaGFkIHRv IHBheSBpdC4KPiAKPiBUaGlzIHBhdGNoIG1ha2VzIHRoZSBuZWNlc3NhcnkgbWluaW1hbCBjaGFu Z2VzIHRvIHRoZSBxZW11LXRyYWQgdG8gdXNlIHRoZQo+IElPUkVRIHNlcnZlciBBUEkgdG8gaG9v ayBpbnRvIFhlbi4gVGhpcyBtZWFucyB0aGUgZGVmYXVsdCBJT1JFUSBzZXJ2ZXIKPiB3aWxsIG5v IGxvbmdlciBiZSBpbiB1c2UgYW5kIHRodXMgaXQgbm8gbG9uZ2VyIG5lZWRzIHRvIGJlIG1haW50 YWluZWQuCj4gCj4gU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0 cml4LmNvbT4KPiBBY2tlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4 LmNvbT4KPiAtLS0KPiB2MjogTGVhdmUgY29tbWVudCBhYm91dCBNTUNGRy9sZWdhY3kgY29tcGF0 aWJpbGl0eQo+IC0tLQo+ICBody9wY2kuYyAgICAgICAgICAgIHwgIDMgKysrCj4gIGh3L3hlbl9t YWNoaW5lX2Z2LmMgfCA3NQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tCj4gIGkzODYtZG0vZXhlYy1kbS5jICAgfCAxMCArKysrLS0tCj4gIGkz ODYtZG0vaGVscGVyMi5jICAgfCAzNSArKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gIHFlbXUt eGVuLmggICAgICAgICAgfCAgOCArKysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMTIgaW5zZXJ0 aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2h3L3BjaS5jIGIvaHcv cGNpLmMKPiBpbmRleCBjNDIzMjg1Li42OGU1ODA1IDEwMDY0NAo+IC0tLSBhL2h3L3BjaS5jCj4g KysrIGIvaHcvcGNpLmMKPiBAQCAtMjYzLDYgKzI2Myw4IEBAIFBDSURldmljZSAqcGNpX3JlZ2lz dGVyX2RldmljZShQQ0lCdXMgKmJ1cywgY29uc3QKPiBjaGFyICpuYW1lLAo+ICAgICAgcGNpX2Rl di0+Y29uZmlnX3dyaXRlID0gY29uZmlnX3dyaXRlOwo+ICAgICAgYnVzLT5kZXZpY2VzW2RldmZu XSA9IHBjaV9kZXY7Cj4gICAgICBwY2lfZGV2LT5pcnEgPSBxZW11X2FsbG9jYXRlX2lycXMocGNp X3NldF9pcnEsIHBjaV9kZXYsIDQpOwo+ICsKPiArICAgIG1hcF9wY2lfZGV2KHBjaV9kZXYtPmRl dmZuKTsKPiAgICAgIHJldHVybiBwY2lfZGV2Owo+ICB9Cj4gCj4gQEAgLTMwNSw2ICszMDcsNyBA QCBpbnQgcGNpX3VucmVnaXN0ZXJfZGV2aWNlKFBDSURldmljZSAqcGNpX2RldikKPiAgewo+ICAg ICAgaW50IHJldCA9IDA7Cj4gCj4gKyAgICB1bm1hcF9wY2lfZGV2KHBjaV9kZXYtPmRldmZuKTsK PiAgICAgIGlmIChwY2lfZGV2LT51bnJlZ2lzdGVyKQo+ICAgICAgICAgIHJldCA9IHBjaV9kZXYt PnVucmVnaXN0ZXIocGNpX2Rldik7Cj4gICAgICBpZiAocmV0KQo+IGRpZmYgLS1naXQgYS9ody94 ZW5fbWFjaGluZV9mdi5jIGIvaHcveGVuX21hY2hpbmVfZnYuYwo+IGluZGV4IGIzODVkNmEuLmYw OTg5ZmEgMTAwNjQ0Cj4gLS0tIGEvaHcveGVuX21hY2hpbmVfZnYuYwo+ICsrKyBiL2h3L3hlbl9t YWNoaW5lX2Z2LmMKPiBAQCAtMzAsNiArMzAsNyBAQAo+ICAjaW5jbHVkZSAicWVtdS14ZW4uaCIK PiAgI2luY2x1ZGUgInFlbXUtYWlvLmgiCj4gICNpbmNsdWRlICJ4ZW5fYmFja2VuZC5oIgo+ICsj aW5jbHVkZSAicGNpLmgiCj4gCj4gICNpbmNsdWRlIDx4ZW4vaHZtL3BhcmFtcy5oPgo+ICAjaW5j bHVkZSA8c3lzL21tYW4uaD4KPiBAQCAtMjcwLDYgKzI3MSwxNyBAQCB2b2lkIHFlbXVfaW52YWxp ZGF0ZV9lbnRyeSh1aW50OF90ICpidWZmZXIpIHt9Owo+IAo+ICAjZW5kaWYgLyogZGVmaW5lZChN QVBDQUNIRSkgKi8KPiAKPiArc3RhdGljIGlvc2VydmlkX3QgaW9zZXJ2aWQ7Cj4gKwo+ICt2b2lk IHhlbl9lbmFibGVfaW8odm9pZCkKPiArewo+ICsgICAgeGNfaHZtX3NldF9pb3JlcV9zZXJ2ZXJf c3RhdGUoeGNfaGFuZGxlLCBkb21pZCwgaW9zZXJ2aWQsIDEpOwo+ICt9Cj4gKwo+ICt2b2lkIHhl bl9kaXNhYmxlX2lvKHZvaWQpCj4gK3sKPiArICAgIHhjX2h2bV9zZXRfaW9yZXFfc2VydmVyX3N0 YXRlKHhjX2hhbmRsZSwgZG9taWQsIGlvc2VydmlkLCAwKTsKPiArfQo+IAo+ICBzdGF0aWMgdm9p ZCB4ZW5faW5pdF9mdihyYW1fYWRkcl90IHJhbV9zaXplLCBpbnQgdmdhX3JhbV9zaXplLAo+ICAJ CQljb25zdCBjaGFyICpib290X2RldmljZSwKPiBAQCAtMjc3LDcgKzI4OSw5IEBAIHN0YXRpYyB2 b2lkIHhlbl9pbml0X2Z2KHJhbV9hZGRyX3QgcmFtX3NpemUsIGludAo+IHZnYV9yYW1fc2l6ZSwK PiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqaW5pdHJkX2ZpbGVuYW1lLCBj b25zdCBjaGFyICpjcHVfbW9kZWwsCj4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKmRpcmVjdF9wY2kpCj4gIHsKPiAtICAgIHVuc2lnbmVkIGxvbmcgaW9yZXFfcGZuOwo+ICsg ICAgZXh0ZXJuIHhlbl9wZm5fdCBpb3JlcV9wZm47Cj4gKyAgICBleHRlcm4geGVuX3Bmbl90IGJ1 ZmlvcmVxX3BmbjsKPiArICAgIGV4dGVybiBldnRjaG5fcG9ydF90IGJ1ZmlvcmVxX2V2dGNobjsK PiAgICAgIGV4dGVybiB2b2lkICpzaGFyZWRfcGFnZTsKPiAgICAgIGV4dGVybiB2b2lkICpidWZm ZXJlZF9pb19wYWdlOwo+ICAjaWZkZWYgX19pYTY0X18KPiBAQCAtMjk1LDEwICszMDksMjIgQEAg c3RhdGljIHZvaWQgeGVuX2luaXRfZnYocmFtX2FkZHJfdCByYW1fc2l6ZSwgaW50Cj4gdmdhX3Jh bV9zaXplLAo+ICAgICAgfQo+ICAjZW5kaWYKPiAKPiAtI2lmZGVmIENPTkZJR19TVFVCRE9NIC8q IHRoZSBodm1vcCBpcyBub3Qgc3VwcG9ydGVkIG9uIG9sZGVyCj4gaHlwZXJ2aXNvcnMgKi8KPiAt ICAgIHhjX3NldF9odm1fcGFyYW0oeGNfaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX0RNX0RPTUFJ TiwKPiBET01JRF9TRUxGKTsKPiAtI2VuZGlmCj4gLSAgICB4Y19nZXRfaHZtX3BhcmFtKHhjX2hh bmRsZSwgZG9taWQsIEhWTV9QQVJBTV9JT1JFUV9QRk4sCj4gJmlvcmVxX3Bmbik7Cj4gKyAgICBp ZiAoeGNfaHZtX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoeGNfaGFuZGxlLCBkb21pZCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIVk1fSU9SRVFTUlZfQlVGSU9SRVFfQVRPTUlD LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpb3NlcnZpZCkpIHsKPiAr ICAgICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJmYWlsZWQgdG8gY3JlYXRlIGlvcmVxIHNlcnZlcjog ZXJyb3IgJWRcbiIsCj4gKyAgICAgICAgICAgICAgICBlcnJubyk7Cj4gKyAgICAgICAgZXhpdCgt MSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgaWYgKHhjX2h2bV9nZXRfaW9yZXFfc2VydmVyX2luZm8o eGNfaGFuZGxlLCBkb21pZCwgaW9zZXJ2aWQsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAmaW9yZXFfcGZuLCAmYnVmaW9yZXFfcGZuLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmJ1ZmlvcmVxX2V2dGNobikpIHsKPiArICAgICAgICBmcHJp bnRmKGxvZ2ZpbGUsICJmYWlsZWQgdG8gZ2V0IGlvcmVxIHNlcnZlciBpbmZvOiBlcnJvciAlZFxu IiwKPiArICAgICAgICAgICAgICAgIGVycm5vKTsKPiArICAgICAgICBleGl0KC0xKTsKPiArICAg IH0KPiArCj4gICAgICBmcHJpbnRmKGxvZ2ZpbGUsICJzaGFyZWQgcGFnZSBhdCBwZm4gJWx4XG4i LCBpb3JlcV9wZm4pOwo+ICAgICAgc2hhcmVkX3BhZ2UgPSB4Y19tYXBfZm9yZWlnbl9yYW5nZSh4 Y19oYW5kbGUsIGRvbWlkLCBYQ19QQUdFX1NJWkUsCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBST1RfUkVBRHxQUk9UX1dSSVRFLCBpb3JlcV9wZm4pOwo+IEBAIC0z MDcsMTUgKzMzMywxNyBAQCBzdGF0aWMgdm9pZCB4ZW5faW5pdF9mdihyYW1fYWRkcl90IHJhbV9z aXplLCBpbnQKPiB2Z2FfcmFtX3NpemUsCj4gICAgICAgICAgZXhpdCgtMSk7Cj4gICAgICB9Cj4g Cj4gLSAgICB4Y19nZXRfaHZtX3BhcmFtKHhjX2hhbmRsZSwgZG9taWQsIEhWTV9QQVJBTV9CVUZJ T1JFUV9QRk4sCj4gJmlvcmVxX3Bmbik7Cj4gLSAgICBmcHJpbnRmKGxvZ2ZpbGUsICJidWZmZXJl ZCBpbyBwYWdlIGF0IHBmbiAlbHhcbiIsIGlvcmVxX3Bmbik7Cj4gKyAgICBmcHJpbnRmKGxvZ2Zp bGUsICJidWZmZXJlZCBpbyBwYWdlIGF0IHBmbiAlbHhcbiIsIGJ1ZmlvcmVxX3Bmbik7Cj4gICAg ICBidWZmZXJlZF9pb19wYWdlID0geGNfbWFwX2ZvcmVpZ25fcmFuZ2UoeGNfaGFuZGxlLCBkb21p ZCwKPiBYQ19QQUdFX1NJWkUsCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUFJPVF9SRUFEfFBST1RfV1JJVEUsIGlvcmVxX3Bmbik7Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEfFBST1RfV1JJVEUsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmaW9yZXFfcGZu KTsKPiAgICAgIGlmIChidWZmZXJlZF9pb19wYWdlID09IE5VTEwpIHsKPiAgICAgICAgICBmcHJp bnRmKGxvZ2ZpbGUsICJtYXAgYnVmZmVyZWQgSU8gcGFnZSByZXR1cm5lZCBlcnJvciAlZFxuIiwg ZXJybm8pOwo+ICAgICAgICAgIGV4aXQoLTEpOwo+ICAgICAgfQo+IAo+ICsgICAgeGVuX2VuYWJs ZV9pbygpOwo+ICsKPiAgI2lmIGRlZmluZWQoX19pYTY0X18pCj4gICAgICB4Y19nZXRfaHZtX3Bh cmFtKHhjX2hhbmRsZSwgZG9taWQsIEhWTV9QQVJBTV9CVUZQSU9SRVFfUEZOLAo+ICZpb3JlcV9w Zm4pOwo+ICAgICAgZnByaW50Zihsb2dmaWxlLCAiYnVmZmVyZWQgcGlvIHBhZ2UgYXQgcGZuICVs eFxuIiwgaW9yZXFfcGZuKTsKPiBAQCAtMzc3LDYgKzQwNSwzNyBAQCBzdGF0aWMgdm9pZCB4ZW5f aW5pdF9mdihyYW1fYWRkcl90IHJhbV9zaXplLCBpbnQKPiB2Z2FfcmFtX3NpemUsCj4gICAgICBw Y19tYWNoaW5lLmluaXQocmFtX3NpemUsIHZnYV9yYW1fc2l6ZSwgYm9vdF9kZXZpY2UsCj4gIAkJ ICAgIGtlcm5lbF9maWxlbmFtZSwga2VybmVsX2NtZGxpbmUsIGluaXRyZF9maWxlbmFtZSwKPiAg CQkgICAgY3B1X21vZGVsLCBkaXJlY3RfcGNpKTsKPiArCj4gKyAgICB4Y19odm1fbWFwX2lvX3Jh bmdlX3RvX2lvcmVxX3NlcnZlcih4Y19oYW5kbGUsIGRvbWlkLCBpb3NlcnZpZCwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDY1NTM2KTsKPiArfQo+ICsK PiArdm9pZCBtYXBfbW1pb19yYW5nZSh0YXJnZXRfcGh5c19hZGRyX3Qgc3RhcnRfYWRkciwgcmFt X2FkZHJfdCBzaXplKQo+ICt7Cj4gKyAgICByYW1fYWRkcl90IGVuZF9hZGRyID0gc3RhcnRfYWRk ciArIHNpemUgLSAxOwo+ICsKPiArICAgIHhjX2h2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2Vy dmVyKHhjX2hhbmRsZSwgZG9taWQsIGlvc2VydmlkLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSwgc3RhcnRfYWRkciwgZW5kX2FkZHIpOwo+ICt9Cj4gKwo+ICt2 b2lkIHVubWFwX21taW9fcmFuZ2UodGFyZ2V0X3BoeXNfYWRkcl90IHN0YXJ0X2FkZHIsIHJhbV9h ZGRyX3QKPiBzaXplKQo+ICt7Cj4gKyAgICByYW1fYWRkcl90IGVuZF9hZGRyID0gc3RhcnRfYWRk ciArIHNpemUgLSAxOwo+ICsKPiArICAgIHhjX2h2bV91bm1hcF9pb19yYW5nZV9mcm9tX2lvcmVx X3NlcnZlcih4Y19oYW5kbGUsIGRvbWlkLAo+IGlvc2VydmlkLAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIHN0YXJ0X2FkZHIsIGVuZF9hZGRyKTsKPiAr fQo+ICsKPiArdm9pZCBtYXBfcGNpX2RldihpbnQgZGV2Zm4pCj4gK3sKPiArICAgIHhjX2h2bV9t YXBfcGNpZGV2X3RvX2lvcmVxX3NlcnZlcih4Y19oYW5kbGUsIGRvbWlkLCBpb3NlcnZpZCwgMCwg MCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSk7Cj4gK30KPiArCj4gK3ZvaWQgdW5tYXBfcGNpX2RldihpbnQg ZGV2Zm4pCj4gK3sKPiArICAgIHhjX2h2bV91bm1hcF9wY2lkZXZfZnJvbV9pb3JlcV9zZXJ2ZXIo eGNfaGFuZGxlLCBkb21pZCwgaW9zZXJ2aWQsCj4gMCwgMCwKPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikp Owo+ICB9Cj4gCj4gIFFFTVVNYWNoaW5lIHhlbmZ2X21hY2hpbmUgPSB7Cj4gZGlmZiAtLWdpdCBh L2kzODYtZG0vZXhlYy1kbS5jIGIvaTM4Ni1kbS9leGVjLWRtLmMKPiBpbmRleCA5NjI3NGQ5Li5l ZmRkNzdlIDEwMDY0NAo+IC0tLSBhL2kzODYtZG0vZXhlYy1kbS5jCj4gKysrIGIvaTM4Ni1kbS9l eGVjLWRtLmMKPiBAQCAtMjk0LDggKzI5NCwxMCBAQCB2b2lkCj4gY3B1X3JlZ2lzdGVyX3BoeXNp Y2FsX21lbW9yeSh0YXJnZXRfcGh5c19hZGRyX3Qgc3RhcnRfYWRkciwKPiAKPiAgICAgIGZvciAo aSA9IDA7IGkgPCBtbWlvX2NudDsgaSsrKSB7Cj4gICAgICAgICAgaWYobW1pb1tpXS5zdGFydCA9 PSBzdGFydF9hZGRyKSB7Cj4gKyAgICAgICAgICAgIHVubWFwX21taW9fcmFuZ2Uoc3RhcnRfYWRk ciwgbW1pb1tpXS5zaXplKTsKPiAgICAgICAgICAgICAgbW1pb1tpXS5pb19pbmRleCA9IHBoeXNf b2Zmc2V0Owo+ICAgICAgICAgICAgICBtbWlvW2ldLnNpemUgPSBzaXplOwo+ICsgICAgICAgICAg ICBtYXBfbW1pb19yYW5nZShzdGFydF9hZGRyLCBzaXplKTsKPiAgICAgICAgICAgICAgcmV0dXJu Owo+ICAgICAgICAgIH0KPiAgICAgIH0KPiBAQCAtMzA4LDYgKzMxMCw3IEBAIHZvaWQKPiBjcHVf cmVnaXN0ZXJfcGh5c2ljYWxfbWVtb3J5KHRhcmdldF9waHlzX2FkZHJfdCBzdGFydF9hZGRyLAo+ ICAgICAgbW1pb1ttbWlvX2NudF0uaW9faW5kZXggPSBwaHlzX29mZnNldDsKPiAgICAgIG1taW9b bW1pb19jbnRdLnN0YXJ0ID0gc3RhcnRfYWRkcjsKPiAgICAgIG1taW9bbW1pb19jbnQrK10uc2l6 ZSA9IHNpemU7Cj4gKyAgICBtYXBfbW1pb19yYW5nZShzdGFydF9hZGRyLCBzaXplKTsKPiAgfQo+ IAo+ICBzdGF0aWMgaW50IGdldF9mcmVlX2lvX21lbV9pZHgodm9pZCkKPiBAQCAtMzYwLDkgKzM2 MywxMCBAQCB2b2lkIGNwdV91bnJlZ2lzdGVyX2lvX21lbW9yeShpbnQKPiBpb190YWJsZV9hZGRy ZXNzKQo+ICAgICAgaW50IGlvX2luZGV4ID0gaW9fdGFibGVfYWRkcmVzcyA+PiBJT19NRU1fU0hJ RlQ7Cj4gCj4gICAgICBmb3IgKGkgPSAwOyBpIDwgbW1pb19jbnQ7IGkrKykgewo+IC0JaWYgKG1t aW9baV0uaW9faW5kZXggPT0gaW9faW5kZXgpIHsKPiAtCSAgIG1taW9baV0uc3RhcnQgPSBtbWlv W2ldLnNpemUgPSAwOwo+IC0JICAgYnJlYWs7Cj4gKyAgICAgICAgaWYgKG1taW9baV0uaW9faW5k ZXggPT0gaW9faW5kZXgpIHsKPiArICAgICAgICAgICAgdW5tYXBfbW1pb19yYW5nZShtbWlvW2ld LnN0YXJ0LCBtbWlvW2ldLnNpemUpOwo+ICsgICAgICAgICAgICBtbWlvW2ldLnN0YXJ0ID0gbW1p b1tpXS5zaXplID0gMDsKPiArICAgICAgICAgICAgYnJlYWs7Cj4gIAl9Cj4gICAgICB9Cj4gCj4g ZGlmZiAtLWdpdCBhL2kzODYtZG0vaGVscGVyMi5jIGIvaTM4Ni1kbS9oZWxwZXIyLmMKPiBpbmRl eCA3ODA5M2ZlLi45OTVkNjNmIDEwMDY0NAo+IC0tLSBhL2kzODYtZG0vaGVscGVyMi5jCj4gKysr IGIvaTM4Ni1kbS9oZWxwZXIyLmMKPiBAQCAtOTgsNiArOTgsMTAgQEAgaW50IGRvbWlkX2JhY2tl bmQgPSAwOwo+IAo+ICBsb25nIHRpbWVfb2Zmc2V0ID0gMDsKPiAKPiAreGVuX3Bmbl90IGlvcmVx X3BmbjsKPiAreGVuX3Bmbl90IGJ1ZmlvcmVxX3BmbjsKPiArZXZ0Y2huX3BvcnRfdCBidWZpb3Jl cV9ldnRjaG47Cj4gKwo+ICBzaGFyZWRfaW9wYWdlX3QgKnNoYXJlZF9wYWdlID0gTlVMTDsKPiAK PiAgI2RlZmluZSBCVUZGRVJfSU9fTUFYX0RFTEFZICAxMDAKPiBAQCAtMTIwLDcgKzEyNCw2IEBA IENQVVg4NlN0YXRlICpjcHVfeDg2X2luaXQoY29uc3QgY2hhciAqY3B1X21vZGVsKQo+ICAgICAg Q1BVWDg2U3RhdGUgKmVudjsKPiAgICAgIHN0YXRpYyBpbnQgaW5pdGVkOwo+ICAgICAgaW50IGks IHJjOwo+IC0gICAgdW5zaWduZWQgbG9uZyBidWZpb3JlcV9ldnRjaG47Cj4gCj4gICAgICBlbnYg PSBxZW11X21hbGxvY3ooc2l6ZW9mKENQVVg4NlN0YXRlKSk7Cj4gICAgICBpZiAoIWVudikKPiBA QCAtMTU4LDEzICsxNjEsNiBAQCBDUFVYODZTdGF0ZSAqY3B1X3g4Nl9pbml0KGNvbnN0IGNoYXIg KmNwdV9tb2RlbCkKPiAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgICBpb3JlcV9sb2NhbF9w b3J0W2ldID0gcmM7Cj4gICAgICAgICAgfQo+IC0gICAgICAgIHJjID0geGNfZ2V0X2h2bV9wYXJh bSh4Y19oYW5kbGUsIGRvbWlkLAo+IEhWTV9QQVJBTV9CVUZJT1JFUV9FVlRDSE4sCj4gLSAgICAg ICAgICAgICAgICAmYnVmaW9yZXFfZXZ0Y2huKTsKPiAtICAgICAgICBpZiAocmMgPCAwKSB7Cj4g LSAgICAgICAgICAgIGZwcmludGYobG9nZmlsZSwgImZhaWxlZCB0byBnZXQgSFZNX1BBUkFNX0JV RklPUkVRX0VWVENITgo+IGVycm9yPSVkXG4iLAo+IC0gICAgICAgICAgICAgICAgICAgIGVycm5v KTsKPiAtICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4gLSAgICAgICAgfQo+ICAgICAgICAgIHJj ID0geGVuZXZ0Y2huX2JpbmRfaW50ZXJkb21haW4oeGNlX2hhbmRsZSwgZG9taWQsCj4gKHVpbnQz Ml90KWJ1ZmlvcmVxX2V2dGNobik7Cj4gICAgICAgICAgaWYgKHJjID09IC0xKSB7Cj4gICAgICAg ICAgICAgIGZwcmludGYobG9nZmlsZSwgImJpbmQgaW50ZXJkb21haW4gaW9jdGwgZXJyb3IgJWRc biIsIGVycm5vKTsKPiBAQCAtNDg5LDYgKzQ4NSwyNyBAQCBzdGF0aWMgdm9pZCBfX2hhbmRsZV9p b3JlcShDUFVTdGF0ZSAqZW52LCBpb3JlcV90Cj4gKnJlcSkKPiAgICAgIGNhc2UgSU9SRVFfVFlQ RV9JTlZBTElEQVRFOgo+ICAgICAgICAgIHFlbXVfaW52YWxpZGF0ZV9tYXBfY2FjaGUoKTsKPiAg ICAgICAgICBicmVhazsKPiArICAgIGNhc2UgSU9SRVFfVFlQRV9QQ0lfQ09ORklHOiB7Cj4gKyAg ICAgICAgdWludDMyX3Qgc2JkZiA9IHJlcS0+YWRkciA+PiAzMjsKPiArICAgICAgICB1aW50MzJf dCB2YWw7Cj4gKwo+ICsgICAgICAgIC8qCj4gKyAgICAgICAgICogUUVNVSBkb2Vzbid0IHN1cHBv cnQgTU1DRkcsIHNvIHJlcGxheSB0aGUgQ29uZmlnIGN5Y2xlIGFzIGlmIGl0IGhhcwo+ICsgICAg ICAgICAqIGJlZW4gaXNzdWVkIHZpYSB0aGUgbGVnYWN5IGNmOC9jZmMgbWVjaGFuaXNtLgo+ICsg ICAgICAgICAqLwoKRkFPRCB0aGlzIHdvcmRpbmcgbG9va3MgZmluZSB0byBtZS4KCiAgUGF1bAoK PiArCj4gKyAgICAgICAgLyogRmFrZSBvdXQgdG8gMHhjZjggKi8KPiArICAgICAgICB2YWwgPSAo MXUgPDwgMzEpIHwKPiArICAgICAgICAgICAgKChyZXEtPmFkZHIgJiAweDBmMDApIDw8IDE2KSB8 Cj4gKyAgICAgICAgICAgICgoc2JkZiAmIDB4ZmZmZikgPDwgOCkgfAo+ICsgICAgICAgICAgICAo cmVxLT5hZGRyICYgMHhmYyk7Cj4gKyAgICAgICAgZG9fb3V0cChlbnYsIDB4Y2Y4LCA0LCB2YWwp Owo+ICsKPiArICAgICAgICAvKiBOb3cgZmFrZSBJL08gdG8gMHhjZmMgKi8KPiArICAgICAgICBy ZXEtPmFkZHIgPSAweGNmYyB8IChyZXEtPmFkZHIgJiAweDAzKTsKPiArICAgICAgICBjcHVfaW9y ZXFfcGlvKGVudiwgcmVxKTsKPiArICAgICAgICBicmVhazsKPiArICAgIH0KPiAgICAgIGRlZmF1 bHQ6Cj4gICAgICAgICAgaHdfZXJyb3IoIkludmFsaWQgaW9yZXEgdHlwZSAweCV4XG4iLCByZXEt PnR5cGUpOwo+ICAgICAgfQo+IEBAIC02NDUsNiArNjYyLDcgQEAgaW50IG1haW5fbG9vcCh2b2lk KQo+IAo+ICAgICAgICAgIC8qIFNhdmUgdGhlIGRldmljZSBzdGF0ZSAqLwo+ICAgICAgICAgIGFz cHJpbnRmKCZxZW11X2ZpbGUsICIvdmFyL2xpYi94ZW4vcWVtdS1zYXZlLiVkIiwgZG9taWQpOwo+ ICsgICAgICAgIHhlbl9kaXNhYmxlX2lvKCk7Cj4gICAgICAgICAgZG9fc2F2ZXZtKHFlbXVfZmls ZSk7Cj4gICAgICAgICAgZnJlZShxZW11X2ZpbGUpOwo+IAo+IEBAIC02NTgsNiArNjc2LDcgQEAg aW50IG1haW5fbG9vcCh2b2lkKQo+ICAgICAgICAgICAgICAgICAgeGVuc3RvcmVfcHJvY2Vzc19l dmVudChOVUxMKTsKPiAgICAgICAgICB9Cj4gCj4gKyAgICAgICAgeGVuX2VuYWJsZV9pbygpOwo+ ICAgICAgICAgIHhlbnN0b3JlX3JlY29yZF9kbV9zdGF0ZSgicnVubmluZyIpOwo+ICAgICAgfQo+ IAo+IGRpZmYgLS1naXQgYS9xZW11LXhlbi5oIGIvcWVtdS14ZW4uaAo+IGluZGV4IDA1OTg2Njgu Ljg2MmQzOTkgMTAwNjQ0Cj4gLS0tIGEvcWVtdS14ZW4uaAo+ICsrKyBiL3FlbXUteGVuLmgKPiBA QCAtMTM4LDQgKzEzOCwxMiBAQCBpbnQgaGFzX3RwbV9kZXZpY2VfZGFuZ2VyKHZvaWQpOwo+ICBz dGF0aWMgdm9pZCB2Z2FfZGlydHlfbG9nX3N0YXJ0KHZvaWQgKnMpIHsgfQo+ICBzdGF0aWMgdm9p ZCB2Z2FfZGlydHlfbG9nX3N0b3Aodm9pZCAqcykgeyB9Cj4gCj4gK3ZvaWQgeGVuX2VuYWJsZV9p byh2b2lkKTsKPiArdm9pZCB4ZW5fZGlzYWJsZV9pbyh2b2lkKTsKPiArCj4gK3ZvaWQgbWFwX21t aW9fcmFuZ2UodGFyZ2V0X3BoeXNfYWRkcl90IHN0YXJ0X2FkZHIsIHJhbV9hZGRyX3Qgc2l6ZSk7 Cj4gK3ZvaWQgdW5tYXBfbW1pb19yYW5nZSh0YXJnZXRfcGh5c19hZGRyX3Qgc3RhcnRfYWRkciwg cmFtX2FkZHJfdAo+IHNpemUpOwo+ICt2b2lkIG1hcF9wY2lfZGV2KGludCBkZXZmbik7Cj4gK3Zv aWQgdW5tYXBfcGNpX2RldihpbnQgZGV2Zm4pOwo+ICsKPiAgI2VuZGlmIC8qUUVNVV9YRU5fSCov Cj4gLS0KPiAyLjEuNAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=