From mboxrd@z Thu Jan 1 00:00:00 1970 From: Changlong Xie Subject: Re: [PATCH v10 26/31] COLO proxy: implement setup/teardown of COLO proxy module Date: Tue, 22 Mar 2016 11:40:58 +0800 Message-ID: <56F0BECA.20005@cn.fujitsu.com> References: <1456109555-28299-1-git-send-email-wency@cn.fujitsu.com> <1456109555-28299-27-git-send-email-wency@cn.fujitsu.com> <20160311222510.GB23682@char.us.oracle.com> <56E680B4.7060308@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <56E680B4.7060308@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Wen Congyang , Konrad Rzeszutek Wilk Cc: Lars Kurth , Wei Liu , Ian Campbell , Andrew Cooper , Jiang Yunhong , Dong Eddie , xen devel , Gui Jianfeng , Shriram Rajagopalan , Ian Jackson , Yang Hongyang List-Id: xen-devel@lists.xenproject.org T24gMDMvMTQvMjAxNiAwNToxMyBQTSwgV2VuIENvbmd5YW5nIHdyb3RlOgo+IE9uIDAzLzEyLzIw MTYgMDY6MjUgQU0sIEtvbnJhZCBSemVzenV0ZWsgV2lsayB3cm90ZToKPj4+ICtleHRlcm4gaW50 IGNvbG9fcHJveHlfc2V0dXAobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNwcyk7Cj4+PiArZXh0 ZXJuIHZvaWQgY29sb19wcm94eV90ZWFyZG93bihsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSAqY3Bz KTsKPj4+ICAgI2VuZGlmCj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfY29sb19w cm94eS5jIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jCj4+PiBuZXcgZmlsZSBtb2Rl IDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZTA3ZTY0MAo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4g KysrIGIvdG9vbHMvbGlieGwvbGlieGxfY29sb19wcm94eS5jCj4+PiBAQCAtMCwwICsxLDIzMCBA QAo+Pj4gKy8qCj4+PiArICogQ29weXJpZ2h0IChDKSAyMDE1IEZVSklUU1UgTElNSVRFRAo+Pgo+ PiAyMDE2Pwo+Cj4gWWVzLCBJIHdpbGwgY2hlY2sgYWxsIG5ldyBmaWxlcy4KPgo+Pj4gKyAqIEF1 dGhvcjogWWFuZyBIb25neWFuZyA8aG9uZ3lhbmcueWFuZ0BlYXN5c3RhY2suY24+Cj4+PiArICoK Pj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQo+Pj4gKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZAo+Pj4gKyAqIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMi4xIG9ubHkuIHdpdGggdGhlIHNw ZWNpYWwKPj4+ICsgKiBleGNlcHRpb24gb24gbGlua2luZyBkZXNjcmliZWQgaW4gZmlsZSBMSUNF TlNFLgo+Pj4gKyAqCj4+PiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+PiArICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+ICsgKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4+ PiArICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu Cj4+PiArICovCj4+PiArCj4+PiArI2luY2x1ZGUgImxpYnhsX29zZGVwcy5oIiAvKiBtdXN0IGNv bWUgYmVmb3JlIGFueSBvdGhlciBoZWFkZXJzICovCj4+PiArCj4+PiArI2luY2x1ZGUgImxpYnhs X2ludGVybmFsLmgiCj4+PiArI2luY2x1ZGUgImxpYnhsX2NvbG8uaCIKPj4+ICsjaW5jbHVkZSA8 bGludXgvbmV0bGluay5oPgo+Pj4gKwo+Pj4gKyNkZWZpbmUgTkVUTElOS19DT0xPIDI4Cj4+Cj4+ IENhbiB5b3UgaW5jbHVkZSBhIGNvbW1lbnQgd2h5IDI4PyBXaHkgbm90IDMxNDE1Pwo+Cj4gT0ss IHdpbGwgYWRkIGEgY29tbWVudCB0byBkZXNjcmliZSBpdC4KPgo+Pgo+Pj4gKwo+Pj4gK2VudW0g Y29sb19uZXRsaW5rX29wIHsKPj4+ICsgICAgQ09MT19RVUVSWV9DSEVDS1BPSU5UID0gKE5MTVNH X01JTl9UWVBFICsgMSksCj4+PiArICAgIENPTE9fQ0hFQ0tQT0lOVCwKPj4+ICsgICAgQ09MT19G QUlMT1ZFUiwKPj4+ICsgICAgQ09MT19QUk9YWV9JTklULAo+Pj4gKyAgICBDT0xPX1BST1hZX1JF U0VULCAvKiBVTlVTRUQsIHdpbGwgYmUgdXNlZCBmb3IgY29udGludW91cyBGVCAqLwo+Pj4gK307 Cj4+PiArCj4+PiArLyogPT09PT09PT09IGNvbG8tcHJveHk6IGhlbHBlciBmdW5jdGlvbnMgPT09 PT09PT09PSAqLwo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgY29sb19wcm94eV9zZW5kKGxpYnhsX19j b2xvX3Byb3h5X3N0YXRlICpjcHMsIHVpbnQ4X3QgKmJ1ZmYsCj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgdWludDY0X3Qgc2l6ZSwgaW50IHR5cGUpCj4+PiArewo+Pj4gKyAgICBzdHJ1 Y3Qgc29ja2FkZHJfbmwgc2E7Cj4+PiArICAgIHN0cnVjdCBubG1zZ2hkciBtc2c7Cj4+PiArICAg IHN0cnVjdCBpb3ZlYyBpb3Y7Cj4+PiArICAgIHN0cnVjdCBtc2doZHIgbWg7Cj4+PiArICAgIGlu dCByZXQ7Cj4+PiArCj4+PiArICAgIFNUQVRFX0FPX0dDKGNwcy0+YW8pOwo+Pj4gKwo+Pj4gKyAg ICBtZW1zZXQoJnNhLCAwLCBzaXplb2Yoc2EpKTsKPj4+ICsgICAgc2EubmxfZmFtaWx5ID0gQUZf TkVUTElOSzsKPj4+ICsgICAgc2EubmxfcGlkID0gMDsKPj4+ICsgICAgc2EubmxfZ3JvdXBzID0g MDsKPj4+ICsKPj4+ICsgICAgbXNnLm5sbXNnX2xlbiA9IE5MTVNHX1NQQUNFKDApOwo+Pj4gKyAg ICBtc2cubmxtc2dfZmxhZ3MgPSBOTE1fRl9SRVFVRVNUOwo+Pj4gKyAgICBpZiAodHlwZSA9PSBD T0xPX1BST1hZX0lOSVQpIHsKPj4+ICsgICAgICAgIG1zZy5ubG1zZ19mbGFncyB8PSBOTE1fRl9B Q0s7Cj4+PiArICAgIH0KPj4KPj4gSSBkb24ndCB0aGluayB5b3UgbmVlZCB0aGUgeyB9Pwo+Cj4g WWVzLCB3aWxsIGZpeCBpdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgo+Cj4+Cj4+IEFoLCB5dXA6Cj4+ Cj4+IDUuIEJsb2NrIHN0cnVjdHVyZQo+Pgo+PiBFdmVyeSBpbmRlbnRlZCBzdGF0ZW1lbnQgaXMg YnJhY2VkIGFwYXJ0IGZyb20gYmxvY2tzIHRoYXQgY29udGFpbiBqdXN0Cj4+IG9uZSBzdGF0ZW1l bnQuCj4+Cj4+PiArICAgIG1zZy5ubG1zZ19zZXEgPSAwOwo+Pj4gKyAgICAvKiBUaGlzIGlzIHVu dHJ1c3R5ICovCj4+Cj4+IFVtbSwgY2FuIHlvdSBiZSBtb3JlIHNwZWNpZmljIHBscz8KPj4KPj4+ ICsgICAgbXNnLm5sbXNnX3BpZCA9IGNwcy0+aW5kZXg7Cj4+PiArICAgIG1zZy5ubG1zZ190eXBl ID0gdHlwZTsKPj4+ICsKPj4+ICsgICAgaW92Lmlvdl9iYXNlID0gJm1zZzsKPj4+ICsgICAgaW92 Lmlvdl9sZW4gPSBtc2cubmxtc2dfbGVuOwo+Pj4gKwo+Pj4gKyAgICBtaC5tc2dfbmFtZSA9ICZz YTsKPj4+ICsgICAgbWgubXNnX25hbWVsZW4gPSBzaXplb2Yoc2EpOwo+Pj4gKyAgICBtaC5tc2df aW92ID0gJmlvdjsKPj4+ICsgICAgbWgubXNnX2lvdmxlbiA9IDE7Cj4+PiArICAgIG1oLm1zZ19j b250cm9sID0gTlVMTDsKPj4+ICsgICAgbWgubXNnX2NvbnRyb2xsZW4gPSAwOwo+Pj4gKyAgICBt aC5tc2dfZmxhZ3MgPSAwOwo+Pj4gKwo+Pj4gKyAgICByZXQgPSBzZW5kbXNnKGNwcy0+c29ja19m ZCwgJm1oLCAwKTsKPj4+ICsgICAgaWYgKHJldCA8PSAwKSB7Cj4+PiArICAgICAgICBMT0coRVJS T1IsICJjYW4ndCBzZW5kIG1zZyB0byBrZXJuZWwgYnkgbmV0bGluazogJXMiLAo+Pj4gKyAgICAg ICAgICAgIHN0cmVycm9yKGVycm5vKSk7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgcmV0dXJu IHJldDsKPj4+ICt9Cj4+PiArCj4+PiArLyogZXJyb3I6IHJldHVybiAtMSwgb3RoZXJ3aXNlIHJl dHVybiAwICovCj4+PiArc3RhdGljIGludDY0X3QgY29sb19wcm94eV9yZWN2KGxpYnhsX19jb2xv X3Byb3h5X3N0YXRlICpjcHMsIHVpbnQ4X3QgKipidWZmLAo+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgdGltZW91dF91cykKPj4+ICt7Cj4+PiArICAgIHN0 cnVjdCBzb2NrYWRkcl9ubCBzYTsKPj4+ICsgICAgc3RydWN0IGlvdmVjIGlvdjsKPj4+ICsgICAg c3RydWN0IG1zZ2hkciBtaCA9IHsKPj4+ICsgICAgICAgIC5tc2dfbmFtZSA9ICZzYSwKPj4+ICsg ICAgICAgIC5tc2dfbmFtZWxlbiA9IHNpemVvZihzYSksCj4+PiArICAgICAgICAubXNnX2lvdiA9 ICZpb3YsCj4+PiArICAgICAgICAubXNnX2lvdmxlbiA9IDEsCj4+PiArICAgIH07Cj4+PiArICAg IHN0cnVjdCB0aW1ldmFsIHR2Owo+Pj4gKyAgICB1aW50MzJfdCBzaXplID0gMTYzODQ7Cj4+PiAr ICAgIGludDY0X3QgbGVuID0gMDsKPj4+ICsgICAgaW50IHJldDsKPj4+ICsKPj4+ICsgICAgU1RB VEVfQU9fR0MoY3BzLT5hbyk7Cj4+PiArICAgIHVpbnQ4X3QgKnRtcCA9IGxpYnhsX19tYWxsb2Mo Tk9HQywgc2l6ZSk7Cj4+PiArCj4+PiArICAgIGlmICh0aW1lb3V0X3VzKSB7Cj4+PiArICAgICAg ICB0di50dl9zZWMgPSB0aW1lb3V0X3VzIC8gMTAwMDAwMDsKPj4+ICsgICAgICAgIHR2LnR2X3Vz ZWMgPSB0aW1lb3V0X3VzICUgMTAwMDAwMDsKPj4+ICsgICAgICAgIHNldHNvY2tvcHQoY3BzLT5z b2NrX2ZkLCBTT0xfU09DS0VULCBTT19SQ1ZUSU1FTywgJnR2LCBzaXplb2YodHYpKTsKPj4+ICsg ICAgfQo+Pj4gKwo+Pj4gKyAgICBpb3YuaW92X2Jhc2UgPSB0bXA7Cj4+PiArICAgIGlvdi5pb3Zf bGVuID0gc2l6ZTsKPj4+ICtuZXh0Ogo+Pj4gKyAgICByZXQgPSByZWN2bXNnKGNwcy0+c29ja19m ZCwgJm1oLCAwKTsKPj4+ICsgICAgaWYgKHJldCA8PSAwKSB7Cj4+PiArICAgICAgICBpZiAoZXJy bm8gIT0gRUFHQUlOICYmIGVycm5vICE9IEVXT1VMREJMT0NLKQo+Pgo+PiAtRUlOVFIgPwo+Cj4g SUlSQywgV0FHQUlOIGFuZCBFV09VTERCTE9DSyBtYXkgaGF2ZSBkaWZmZXJlbnQgdmFsdWUgaW4g c29tZSBzeXN0ZW0uCj4gRUlOVFIgaXMgbm90IGhhbmRsZWQgaGVyZS4KPgo+Pgo+Pj4gKyAgICAg ICAgICAgIExPR0UoRVJST1IsICJjYW4ndCByZWN2IG1zZyBmcm9tIGtlcm5lbCBieSBuZXRsaW5r Iik7Cj4+PiArICAgICAgICBnb3RvIGVycjsKPj4+ICsgICAgfQo+Pj4gKwo+Pj4gKyAgICBsZW4g Kz0gcmV0Owo+Pj4gKyAgICBpZiAobWgubXNnX2ZsYWdzICYgTVNHX1RSVU5DKSB7Cj4+PiArICAg ICAgICBzaXplICs9IDE2Mzg0Owo+Pj4gKyAgICAgICAgdG1wID0gbGlieGxfX3JlYWxsb2MoTk9H QywgdG1wLCBzaXplKTsKPj4KPj4gWW91IHJlYWxseSBzaG91bGQgY2hlY2sgJ3RtcCcuCj4+Cj4+ IElmIHRoaXMgbG9vcCBjb250aW51ZXMgb24gZm9yIHNvbWUgdGltZSB0aGUgJ3NpemUnIG1heSBi ZQo+PiBpbiBtaWxpb25zIGFuZCB0aGlzIHJlYWxsb2Mgd2lsbCBmYWlsLgoKQXMgaSBzZWUgZnJv bSB0aGUgY29kZSwgbGlieGxfcmVhbGxvYyB3aWxsIGludm9rZSBfZXhpdCgtMSkgaWYgbWFsbG9j IApmYWlsZWQsIHNvIHdlJ2xsIGtlZXAgaXQuCgpUaGFua3MKCS1YaWUKPgo+IE9LLCB3aWxsIGZp eCBpdCBpbiB0aGUgbmV4dCB2ZXJzaW9uLgo+Cj4+Cj4+PiArICAgICAgICBpb3YuaW92X2Jhc2Ug PSB0bXAgKyBsZW47Cj4+PiArICAgICAgICBpb3YuaW92X2xlbiA9IHNpemUgLSBsZW47Cj4+PiAr ICAgICAgICBnb3RvIG5leHQ7Cj4+Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgKmJ1ZmYgPSB0 bXA7Cj4+PiArICAgIHJldCA9IGxlbjsKPj4+ICsgICAgZ290byBvdXQ7Cj4+PiArCj4+PiArZXJy Ogo+Pj4gKyAgICBmcmVlKHRtcCk7Cj4+PiArICAgICpidWZmID0gTlVMTDsKPj4+ICsKPj4+ICtv dXQ6Cj4+PiArICAgIGlmICh0aW1lb3V0X3VzKSB7Cj4+PiArICAgICAgICB0di50dl9zZWMgPSAw Owo+Pj4gKyAgICAgICAgdHYudHZfdXNlYyA9IDA7Cj4+PiArICAgICAgICBzZXRzb2Nrb3B0KGNw cy0+c29ja19mZCwgU09MX1NPQ0tFVCwgU09fUkNWVElNRU8sICZ0diwgc2l6ZW9mKHR2KSk7Cj4+ PiArICAgIH0KPj4+ICsgICAgcmV0dXJuIHJldDsKPj4+ICt9Cj4+PiArCj4+PiArLyogPT09PT09 PT09IGNvbG8tcHJveHk6IHNldHVwIGFuZCB0ZWFyZG93biA9PT09PT09PT09ICovCj4+PiArCj4+ PiAraW50IGNvbG9fcHJveHlfc2V0dXAobGlieGxfX2NvbG9fcHJveHlfc3RhdGUgKmNwcykKPj4+ ICt7Cj4+PiArICAgIGludCBza2ZkID0gMDsKPj4+ICsgICAgc3RydWN0IHNvY2thZGRyX25sIHNh Owo+Pj4gKyAgICBzdHJ1Y3Qgbmxtc2doZHIgKmg7Cj4+PiArICAgIGludCBpID0gMTsKPj4+ICsg ICAgaW50IHJldCA9IEVSUk9SX0ZBSUw7Cj4+PiArICAgIHVpbnQ4X3QgKmJ1ZmYgPSBOVUxMOwo+ Pj4gKyAgICBpbnQ2NF90IHNpemU7Cj4+PiArCj4+PiArICAgIFNUQVRFX0FPX0dDKGNwcy0+YW8p Owo+Pj4gKwo+Pj4gKyAgICBza2ZkID0gc29ja2V0KFBGX05FVExJTkssIFNPQ0tfUkFXLCBORVRM SU5LX0NPTE8pOwo+Pj4gKyAgICBpZiAoc2tmZCA8IDApIHsKPj4+ICsgICAgICAgIExPRyhFUlJP UiwgImNhbiBub3QgY3JlYXRlIGEgbmV0bGluayBzb2NrZXQ6ICVzIiwgc3RyZXJyb3IoZXJybm8p KTsKPj4+ICsgICAgICAgIGdvdG8gb3V0Owo+Pj4gKyAgICB9Cj4+PiArICAgIGNwcy0+c29ja19m ZCA9IHNrZmQ7Cj4+PiArICAgIG1lbXNldCgmc2EsIDAsIHNpemVvZihzYSkpOwo+Pj4gKyAgICBz YS5ubF9mYW1pbHkgPSBBRl9ORVRMSU5LOwo+Pj4gKyAgICBzYS5ubF9ncm91cHMgPSAwOwo+Pj4g K3JldHJ5Ogo+Pj4gKyAgICBzYS5ubF9waWQgPSBpKys7Cj4+PiArCj4+PiArICAgIGlmIChpID4g MTApIHsKPj4+ICsgICAgICAgIExPRyhFUlJPUiwgIm5ldGxpbmsgYmluZCBlcnJvciIpOwo+Pj4g KyAgICAgICAgZ290byBvdXQ7Cj4+PiArICAgIH0KPj4+ICsKPj4+ICsgICAgcmV0ID0gYmluZChz a2ZkLCAoc3RydWN0IHNvY2thZGRyICopJnNhLCBzaXplb2Yoc2EpKTsKPj4+ICsgICAgaWYgKHJl dCA8IDAgJiYgZXJybm8gPT0gRUFERFJJTlVTRSkgewo+Pj4gKyAgICAgICAgTE9HKEVSUk9SLCAi Y29sbyBpbmRleCAlZCBoYXMgYWxyZWFkeSBpbiB1c2VkIiwgc2EubmxfcGlkKTsKPj4+ICsgICAg ICAgIGdvdG8gcmV0cnk7Cj4+PiArICAgIH0gZWxzZSBpZiAocmV0IDwgMCkgewo+Pj4gKyAgICAg ICAgTE9HKEVSUk9SLCAibmV0bGluayBiaW5kIGVycm9yIik7Cj4+PiArICAgICAgICBnb3RvIG91 dDsKPj4+ICsgICAgfQo+Pj4gKwo+Pj4gKyAgICBjcHMtPmluZGV4ID0gc2EubmxfcGlkOwo+Pj4g KyAgICByZXQgPSBjb2xvX3Byb3h5X3NlbmQoY3BzLCBOVUxMLCAwLCBDT0xPX1BST1hZX0lOSVQp Owo+Pj4gKyAgICBpZiAocmV0IDwgMCkgewo+Pj4gKyAgICAgICAgZ290byBvdXQ7Cj4+PiArICAg IH0KPj4KPj4gRGl0dG8uIFlvdSBjYW4gcmVtb3ZlIGl0Lgo+Cj4gT0ssIHdpbGwgY2hlY2sgYWxs IGNvZGVzLgo+Cj4gVGhhbmtzCj4gV2VuIENvbmd5YW5nCj4KPj4KPj4+ICsgICAgLyogcmVjZWl2 ZSBhY2sgKi8KPj4+ICsgICAgc2l6ZSA9IGNvbG9fcHJveHlfcmVjdihjcHMsICZidWZmLCA1MDAw MDApOwo+Pj4gKyAgICBpZiAoc2l6ZSA8IDApIHsKPj4+ICsgICAgICAgIExPRyhFUlJPUiwgIkNh bid0IHJlY3YgbXNnIGZyb20ga2VybmVsIGJ5IG5ldGxpbms6ICVzIiwKPj4+ICsgICAgICAgICAg ICBzdHJlcnJvcihlcnJubykpOwo+Pj4gKyAgICAgICAgZ290byBvdXQ7Cj4+PiArICAgIH0KPj4+ ICsKPj4+ICsgICAgaWYgKHNpemUpIHsKPj4+ICsgICAgICAgIGggPSAoc3RydWN0IG5sbXNnaGRy ICopYnVmZjsKPj4+ICsgICAgICAgIGlmIChoLT5ubG1zZ190eXBlID09IE5MTVNHX0VSUk9SKSB7 Cj4+PiArICAgICAgICAgICAgLyogYWNrJ3MgdHlwZSBpcyBOTE1TR19FUlJPUiAqLwo+Pj4gKyAg ICAgICAgICAgIHN0cnVjdCBubG1zZ2VyciAqZXJyID0gKHN0cnVjdCBubG1zZ2VyciAqKU5MTVNH X0RBVEEoaCk7Cj4+PiArCj4+PiArICAgICAgICAgICAgaWYgKHNpemUgLSBzaXplb2YoKmgpIDwg c2l6ZW9mKCplcnIpKSB7Cj4+PiArICAgICAgICAgICAgICAgIExPRyhFUlJPUiwgIk5MTVNHX0xF TkdUSCBpcyB0b28gc2hvcnQiKTsKPj4+ICsgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4+PiAr ICAgICAgICAgICAgfQo+Pj4gKwo+Pj4gKyAgICAgICAgICAgIGlmIChlcnItPmVycm9yKSB7Cj4+ PiArICAgICAgICAgICAgICAgIExPRyhFUlJPUiwgIk5MTVNHX0VSUk9SIGNvbnRhaW5zIGVycm9y ICVkIiwgZXJyLT5lcnJvcik7Cj4+PiArICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+Pj4gKyAg ICAgICAgICAgIH0KPj4+ICsgICAgICAgIH0KPj4+ICsgICAgfQo+Pj4gKwo+Pj4gKyAgICByZXQg PSAwOwo+Pj4gKwo+Pj4gK291dDoKPj4+ICsgICAgZnJlZShidWZmKTsKPj4+ICsgICAgaWYgKHJl dCkgewo+Pj4gKyAgICAgICAgY2xvc2UoY3BzLT5zb2NrX2ZkKTsKPj4+ICsgICAgICAgIGNwcy0+ c29ja19mZCA9IC0xOwo+Pj4gKyAgICB9Cj4+PiArICAgIHJldHVybiByZXQ7Cj4+PiArfQo+Pj4g Kwo+Pj4gK3ZvaWQgY29sb19wcm94eV90ZWFyZG93bihsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSAq Y3BzKQo+Pj4gK3sKPj4+ICsgICAgaWYgKGNwcy0+c29ja19mZCA+PSAwKSB7Cj4+PiArICAgICAg ICBjbG9zZShjcHMtPnNvY2tfZmQpOwo+Pj4gKyAgICAgICAgY3BzLT5zb2NrX2ZkID0gLTE7Cj4+ PiArICAgIH0KPj4+ICt9Cj4+PiBkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJu YWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2ludGVybmFsLmgKPj4+IGluZGV4IDNhZjVmZGQuLjNi NDRiMDkgMTAwNjQ0Cj4+PiAtLS0gYS90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4+PiAr KysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCj4+PiBAQCAtMzExMiw2ICszMTEyLDE1 IEBAIGxpYnhsX19zdHJlYW1fcmVhZF9pbnVzZShjb25zdCBsaWJ4bF9fc3RyZWFtX3JlYWRfc3Rh dGUgKnN0cmVhbSkKPj4+ICAgfQo+Pj4KPj4+ICAgLyotLS0tLSBjb2xvIHJlbGF0ZWQgc3RhdGUg c3RydWN0dXJlIC0tLS0tKi8KPj4+ICt0eXBlZGVmIHN0cnVjdCBsaWJ4bF9fY29sb19wcm94eV9z dGF0ZSBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZTsKPj4+ICtzdHJ1Y3QgbGlieGxfX2NvbG9fcHJv eHlfc3RhdGUgewo+Pj4gKyAgICAvKiBzZXQgYnkgY2FsbGVyIG9mIGNvbG9fcHJveHlfc2V0dXAg Ki8KPj4+ICsgICAgbGlieGxfX2FvICphbzsKPj4+ICsKPj4+ICsgICAgaW50IHNvY2tfZmQ7Cj4+ PiArICAgIGludCBpbmRleDsKPj4+ICt9Owo+Pj4gKwo+Pj4gICB0eXBlZGVmIHN0cnVjdCBsaWJ4 bF9fY29sb19zYXZlX3N0YXRlIGxpYnhsX19jb2xvX3NhdmVfc3RhdGU7Cj4+PiAgIHN0cnVjdCBs aWJ4bF9fY29sb19zYXZlX3N0YXRlIHsKPj4+ICAgICAgIGludCBzZW5kX2ZkOwo+Pj4gQEAgLTMx MjYsNiArMzEzNSw5IEBAIHN0cnVjdCBsaWJ4bF9fY29sb19zYXZlX3N0YXRlIHsKPj4+ICAgICAg IC8qIHByaXZhdGUsIHVzZWQgYnkgcWRpc2sgYmxvY2sgcmVwbGljYXRpb24gKi8KPj4+ICAgICAg IGJvb2wgcWRpc2tfdXNlZDsKPj4+ICAgICAgIGJvb2wgcWRpc2tfc2V0dXBlZDsKPj4+ICsKPj4+ ICsgICAgLyogcHJpdmF0ZSwgdXNlZCBieSBjb2xvLXByb3h5ICovCj4+PiArICAgIGxpYnhsX19j b2xvX3Byb3h5X3N0YXRlIGNwczsKPj4+ICAgfTsKPj4+Cj4+PiAgIC8qLS0tLS0gRG9tYWluIHN1 c3BlbmQgKHNhdmUpIHN0YXRlIHN0cnVjdHVyZSAtLS0tLSovCj4+PiBAQCAtMzUzNSw2ICszNTQ3 LDkgQEAgc3RydWN0IGxpYnhsX19jb2xvX3Jlc3RvcmVfc3RhdGUgewo+Pj4gICAgICAgYm9vbCBx ZGlza19zZXR1cGVkOwo+Pj4gICAgICAgY29uc3QgY2hhciAqaG9zdDsKPj4+ICAgICAgIGNvbnN0 IGNoYXIgKnBvcnQ7Cj4+PiArCj4+PiArICAgIC8qIHByaXZhdGUsIHVzZWQgYnkgY29sby1wcm94 eSAqLwo+Pj4gKyAgICBsaWJ4bF9fY29sb19wcm94eV9zdGF0ZSBjcHM7Cj4+PiAgIH07Cj4+Pgo+ Pj4gICBzdHJ1Y3QgbGlieGxfX2RvbWFpbl9jcmVhdGVfc3RhdGUgewo+Pj4gLS0KPj4+IDIuNS4w Cj4+Pgo+Pj4KPj4+Cj4+Cj4+Cj4+IC4KPj4KPgo+IC4KPgoKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=