From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?J=C3=A9r=C3=A9mie_Galarneau?= Subject: Re: [RFC PATCH lttng-tools] relay: use urcu_ref_get_unless_zero Date: Tue, 23 May 2017 11:01:15 -0400 Message-ID: References: <1442507072-4178-1-git-send-email-mathieu.desnoyers@efficios.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yb0-x241.google.com (mail-yb0-x241.google.com [IPv6:2607:f8b0:4002:c09::241]) by lists.lttng.org (Postfix) with ESMTPS id 3wXJf54PfJz10TY for ; Tue, 23 May 2017 15:02:05 +0000 (UTC) Received: by mail-yb0-x241.google.com with SMTP id n198so5680258yba.3 for ; Tue, 23 May 2017 08:01:17 -0700 (PDT) In-Reply-To: <1442507072-4178-1-git-send-email-mathieu.desnoyers@efficios.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: lttng-dev-bounces@lists.lttng.org Sender: "lttng-dev" To: Mathieu Desnoyers Cc: "lttng-dev@lists.lttng.org" , Jeremie Galarneau List-Id: lttng-dev@lists.lttng.org TWVyZ2VkIGluIG1hc3Rlci4gSSBtb2RpZmllZCB0aGUgcGF0Y2ggYSBiaXQgdG8gYXBwbHkgb24g bWFzdGVyIGFuZApidW1wIHRoZSByZXF1aXJlZCB2ZXJzaW9uIG9mIHVzZXJzcGFjZS1yY3UgdG8g MC45LjAgKGZyb20gTFRUbmcgMi4xMQpvbndhcmRzKS4KClRoYW5rcyEKSsOpcsOpbWllCgpPbiAx NyBTZXB0ZW1iZXIgMjAxNSBhdCAxMjoyNCwgTWF0aGlldSBEZXNub3llcnMKPG1hdGhpZXUuZGVz bm95ZXJzQGVmZmljaW9zLmNvbT4gd3JvdGU6Cj4gVGhpcyBhbGxvd3MgcmVtb3ZpbmcgdGhlIHJl ZmxvY2sgYmUgcGVyZm9ybWluZyB0aGlzIGNoZWNrIGFuZCBpbmNyZW1lbnQKPiBhdG9taWNhbGx5 Lgo+Cj4gU2lnbmVkLW9mZi1ieTogTWF0aGlldSBEZXNub3llcnMgPG1hdGhpZXUuZGVzbm95ZXJz QGVmZmljaW9zLmNvbT4KPiAtLS0KPiAgZG9jL3JlbGF5ZC1hcmNoaXRlY3R1cmUudHh0ICAgICAg ICAgIHwgIDcgKy0tLS0tLQo+ICBzcmMvYmluL2x0dG5nLXJlbGF5ZC9jb25uZWN0aW9uLmMgICAg fCAxNCArLS0tLS0tLS0tLS0tLQo+ICBzcmMvYmluL2x0dG5nLXJlbGF5ZC9jb25uZWN0aW9uLmgg ICAgfCAgMSAtCj4gIHNyYy9iaW4vbHR0bmctcmVsYXlkL2N0Zi10cmFjZS5jICAgICB8IDE1ICst LS0tLS0tLS0tLS0tLQo+ICBzcmMvYmluL2x0dG5nLXJlbGF5ZC9jdGYtdHJhY2UuaCAgICAgfCAg NCAtLS0tCj4gIHNyYy9iaW4vbHR0bmctcmVsYXlkL2luZGV4LmMgICAgICAgICB8IDE1ICstLS0t LS0tLS0tLS0tLQo+ICBzcmMvYmluL2x0dG5nLXJlbGF5ZC9pbmRleC5oICAgICAgICAgfCAgMSAt Cj4gIHNyYy9iaW4vbHR0bmctcmVsYXlkL3Nlc3Npb24uYyAgICAgICB8IDE0ICstLS0tLS0tLS0t LS0tCj4gIHNyYy9iaW4vbHR0bmctcmVsYXlkL3Nlc3Npb24uaCAgICAgICB8ICAyIC0tCj4gIHNy Yy9iaW4vbHR0bmctcmVsYXlkL3N0cmVhbS5jICAgICAgICB8IDI3ICsrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICBzcmMvYmluL2x0dG5nLXJlbGF5ZC9zdHJlYW0uaCAgICAgICAgfCAgNiAt LS0tLS0KPiAgc3JjL2Jpbi9sdHRuZy1yZWxheWQvdmlld2VyLXN0cmVhbS5jIHwgMTQgKy0tLS0t LS0tLS0tLS0KPiAgc3JjL2Jpbi9sdHRuZy1yZWxheWQvdmlld2VyLXN0cmVhbS5oIHwgIDEgLQo+ ICAxMyBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkKPgo+ IGRpZmYgLS1naXQgYS9kb2MvcmVsYXlkLWFyY2hpdGVjdHVyZS50eHQgYi9kb2MvcmVsYXlkLWFy Y2hpdGVjdHVyZS50eHQKPiBpbmRleCAxNDkxZGE5Li41NmM4MTI0IDEwMDY0NAo+IC0tLSBhL2Rv Yy9yZWxheWQtYXJjaGl0ZWN0dXJlLnR4dAo+ICsrKyBiL2RvYy9yZWxheWQtYXJjaGl0ZWN0dXJl LnR4dAo+IEBAIC00NCwxMCArNDQsNyBAQCBBIFJDVSBsb29rdXArcmVmY291bnRpbmcgc2NoZW1l IGhhcyBiZWVuIGludHJvZHVjZWQgZm9yIGFsbCBvYmplY3RzCj4gIHNjaGVtZSBhbGxvd3MgbG9v a2luZyB1cCB0aGUgb2JqZWN0cyBvciBkb2luZyBhIHRyYXZlcnNhbCBvbiB0aGUgUkNVCj4gIGxp bmtlZCBsaXN0IG9yIGhhc2ggdGFibGUgaW4gY29tYmluYXRpb24gd2l0aCBhIGdldHRlciBvbiB0 aGUgb2JqZWN0Lgo+ICBUaGlzIGdldHRlciB2YWxpZGF0ZXMgdGhhdCB0aGVyZSBpcyBzdGlsbCBh dCBsZWFzdCBvbmUgcmVmZXJlbmNlIHRvIHRoZQo+IC1vYmplY3QsIGVsc2UgdGhlIGxvb2t1cCBh Y3RzIGp1c3QgYXMgaWYgdGhlIG9iamVjdCBkb2VzIG5vdCBleGlzdC4gVGhpcwo+IC1zY2hlbWUg aXMgcHJvdGVjdGVkIGJ5IGEgInJlZmxvY2siIG11dGV4IGluIGVhY2ggb2JqZWN0LiAicmVmbG9j ayIKPiAtbXV0ZXhlcyBjYW4gYmUgbmVzdGVkIGZyb20gdGhlIGlubmVybW9zdCBvYmplY3QgdG8g dGhlIG91dGVybW9zdCBvYmplY3QuCj4gLUlPVywgdGhlIHNlc3Npb24gcmVmbG9jayBjYW4gbmVz dCB3aXRoaW4gdGhlIGN0Zi10cmFjZSByZWZsb2NrLgo+ICtvYmplY3QsIGVsc2UgdGhlIGxvb2t1 cCBhY3RzIGp1c3QgYXMgaWYgdGhlIG9iamVjdCBkb2VzIG5vdCBleGlzdC4KPgo+ICBUaGUgcmVs YXlfY29ubmVjdGlvbiAoY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBzZXNzaW9uZC9jb25zdW1lciBh bmQgdGhlCj4gIHJlbGF5ZCkgaXMgdGhlIG91dGVybW9zdCBvYmplY3Qgb2YgaXRzIGhpZXJhcmNo eS4KPiBAQCAtNjEsOCArNTgsNiBAQCBsaXZlLmMgY2xpZW50IHRocmVhZCkgd2hlbiBvYmplY3Rz IGFyZSBzaGFyZWQuIExvY2tzIGNhbiBiZSBuZXN0ZWQgZnJvbQo+ICB0aGUgb3V0ZXJtb3N0IG9i amVjdCB0byB0aGUgaW5uZXJtb3N0IG9iamVjdC4gSU9XLCB0aGUgY3RmLXRyYWNlIGxvY2sgY2Fu Cj4gIG5lc3Qgd2l0aGluIHRoZSBzZXNzaW9uIGxvY2suCj4KPiAtQSAibG9jayIgc2hvdWxkIG5l dmVyIG5lc3Qgd2l0aGluIGEgInJlZmxvY2siLgo+IC0KPiAgUkNVIGxpbmtlZCBsaXN0cyBhcmUg dXNlZCB0byBpdGVyYXRlIHVzaW5nIFJDVSwgYW5kIGFyZSBwcm90ZWN0ZWQgYnkKPiAgdGhlaXIg b3duIG11dGV4IGZvciBtb2RpZmljYXRpb25zLiBJdGVyYXRpb25zIHNob3VsZCBiZSBjb25maXJt ZWQgdXNpbmcKPiAgdGhlIG9iamVjdCAiZ2V0dGVyIiB0byBlbnN1cmUgaXRzIHJlZmNvdW50IGlz IG5vdCAwIChleGNlcHQgaW4gY2FzZXMKPiBkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1yZWxh eWQvY29ubmVjdGlvbi5jIGIvc3JjL2Jpbi9sdHRuZy1yZWxheWQvY29ubmVjdGlvbi5jCj4gaW5k ZXggZmNlNmM4NC4uYjNhOWMwNiAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9j b25uZWN0aW9uLmMKPiArKysgYi9zcmMvYmluL2x0dG5nLXJlbGF5ZC9jb25uZWN0aW9uLmMKPiBA QCAtMjgsMTYgKzI4LDcgQEAKPgo+ICBib29sIGNvbm5lY3Rpb25fZ2V0KHN0cnVjdCByZWxheV9j b25uZWN0aW9uICpjb25uKQo+ICB7Cj4gLSAgICAgICBib29sIGhhc19yZWYgPSBmYWxzZTsKPiAt Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJmNvbm4tPnJlZmxvY2spOwo+IC0gICAgICAg aWYgKGNvbm4tPnJlZi5yZWZjb3VudCAhPSAwKSB7Cj4gLSAgICAgICAgICAgICAgIGhhc19yZWYg PSB0cnVlOwo+IC0gICAgICAgICAgICAgICB1cmN1X3JlZl9nZXQoJmNvbm4tPnJlZik7Cj4gLSAg ICAgICB9Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmY29ubi0+cmVmbG9jayk7Cj4g LQo+IC0gICAgICAgcmV0dXJuIGhhc19yZWY7Cj4gKyAgICAgICByZXR1cm4gdXJjdV9yZWZfZ2V0 X3VubGVzc196ZXJvKCZjb25uLT5yZWYpOwo+ICB9Cj4KPiAgc3RydWN0IHJlbGF5X2Nvbm5lY3Rp b24gKmNvbm5lY3Rpb25fZ2V0X2J5X3NvY2soc3RydWN0IGx0dG5nX2h0ICpyZWxheV9jb25uZWN0 aW9uc19odCwKPiBAQCAtNzYsNyArNjcsNiBAQCBzdHJ1Y3QgcmVsYXlfY29ubmVjdGlvbiAqY29u bmVjdGlvbl9jcmVhdGUoc3RydWN0IGx0dGNvbW1fc29jayAqc29jaywKPiAgICAgICAgICAgICAg ICAgUEVSUk9SKCJ6bWFsbG9jIHJlbGF5IGNvbm5lY3Rpb24iKTsKPiAgICAgICAgICAgICAgICAg Z290byBlbmQ7Cj4gICAgICAgICB9Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X2luaXQoJmNvbm4t PnJlZmxvY2ssIE5VTEwpOwo+ICAgICAgICAgdXJjdV9yZWZfaW5pdCgmY29ubi0+cmVmKTsKPiAg ICAgICAgIGNvbm4tPnR5cGUgPSB0eXBlOwo+ICAgICAgICAgY29ubi0+c29jayA9IHNvY2s7Cj4g QEAgLTEzMiw5ICsxMjIsNyBAQCBzdGF0aWMgdm9pZCBjb25uZWN0aW9uX3JlbGVhc2Uoc3RydWN0 IHVyY3VfcmVmICpyZWYpCj4gIHZvaWQgY29ubmVjdGlvbl9wdXQoc3RydWN0IHJlbGF5X2Nvbm5l Y3Rpb24gKmNvbm4pCj4gIHsKPiAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPiAtICAgICAgIHB0 aHJlYWRfbXV0ZXhfbG9jaygmY29ubi0+cmVmbG9jayk7Cj4gICAgICAgICB1cmN1X3JlZl9wdXQo JmNvbm4tPnJlZiwgY29ubmVjdGlvbl9yZWxlYXNlKTsKPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhf dW5sb2NrKCZjb25uLT5yZWZsb2NrKTsKPiAgICAgICAgIHJjdV9yZWFkX3VubG9jaygpOwo+ICB9 Cj4KPiBkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1yZWxheWQvY29ubmVjdGlvbi5oIGIvc3Jj L2Jpbi9sdHRuZy1yZWxheWQvY29ubmVjdGlvbi5oCj4gaW5kZXggNDQzODYzOC4uNDNlOGExZCAx MDA2NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9jb25uZWN0aW9uLmgKPiArKysgYi9z cmMvYmluL2x0dG5nLXJlbGF5ZC9jb25uZWN0aW9uLmgKPiBAQCAtNzcsNyArNzcsNiBAQCBzdHJ1 Y3QgcmVsYXlfY29ubmVjdGlvbiB7Cj4gICAgICAgICB1aW50MzJfdCBtaW5vcjsKPgo+ICAgICAg ICAgc3RydWN0IHVyY3VfcmVmIHJlZjsKPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhfdCByZWZsb2Nr Owo+Cj4gICAgICAgICBib29sIHZlcnNpb25fY2hlY2tfZG9uZTsKPgo+IGRpZmYgLS1naXQgYS9z cmMvYmluL2x0dG5nLXJlbGF5ZC9jdGYtdHJhY2UuYyBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL2N0 Zi10cmFjZS5jCj4gaW5kZXggN2M4ODI2Mi4uYjkwZTJhMSAxMDA2NDQKPiAtLS0gYS9zcmMvYmlu L2x0dG5nLXJlbGF5ZC9jdGYtdHJhY2UuYwo+ICsrKyBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL2N0 Zi10cmFjZS5jCj4gQEAgLTc2LDE3ICs3Niw3IEBAIHZvaWQgY3RmX3RyYWNlX3JlbGVhc2Uoc3Ry dWN0IHVyY3VfcmVmICpyZWYpCj4gICAqLwo+ICBib29sIGN0Zl90cmFjZV9nZXQoc3RydWN0IGN0 Zl90cmFjZSAqdHJhY2UpCj4gIHsKPiAtICAgICAgIGJvb2wgaGFzX3JlZiA9IGZhbHNlOwo+IC0K PiAtICAgICAgIC8qIENvbmZpcm0gdGhhdCB0aGUgdHJhY2UgcmVmY291bnQgaGFzIG5vdCByZWFj aGVkIDAuICovCj4gLSAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnRyYWNlLT5yZWZsb2NrKTsK PiAtICAgICAgIGlmICh0cmFjZS0+cmVmLnJlZmNvdW50ICE9IDApIHsKPiAtICAgICAgICAgICAg ICAgaGFzX3JlZiA9IHRydWU7Cj4gLSAgICAgICAgICAgICAgIHVyY3VfcmVmX2dldCgmdHJhY2Ut PnJlZik7Cj4gLSAgICAgICB9Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmdHJhY2Ut PnJlZmxvY2spOwo+IC0KPiAtICAgICAgIHJldHVybiBoYXNfcmVmOwo+ICsgICAgICAgcmV0dXJu IHVyY3VfcmVmX2dldF91bmxlc3NfemVybygmdHJhY2UtPnJlZik7Cj4gIH0KPgo+ICAvKgo+IEBA IC0xMjQsNyArMTE0LDYgQEAgc3RhdGljIHN0cnVjdCBjdGZfdHJhY2UgKmN0Zl90cmFjZV9jcmVh dGUoc3RydWN0IHJlbGF5X3Nlc3Npb24gKnNlc3Npb24sCj4gICAgICAgICB0cmFjZS0+c2Vzc2lv biA9IHNlc3Npb247Cj4gICAgICAgICB1cmN1X3JlZl9pbml0KCZ0cmFjZS0+cmVmKTsKPiAgICAg ICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmdHJhY2UtPmxvY2ssIE5VTEwpOwo+IC0gICAgICAgcHRo cmVhZF9tdXRleF9pbml0KCZ0cmFjZS0+cmVmbG9jaywgTlVMTCk7Cj4gICAgICAgICBwdGhyZWFk X211dGV4X2luaXQoJnRyYWNlLT5zdHJlYW1fbGlzdF9sb2NrLCBOVUxMKTsKPiAgICAgICAgIGx0 dG5nX2h0X2FkZF9zdHIoc2Vzc2lvbi0+Y3RmX3RyYWNlc19odCwgJnRyYWNlLT5ub2RlKTsKPgo+ IEBAIC0xNjksOSArMTU4LDcgQEAgZW5kOgo+ICB2b2lkIGN0Zl90cmFjZV9wdXQoc3RydWN0IGN0 Zl90cmFjZSAqdHJhY2UpCj4gIHsKPiAgICAgICAgIHJjdV9yZWFkX2xvY2soKTsKPiAtICAgICAg IHB0aHJlYWRfbXV0ZXhfbG9jaygmdHJhY2UtPnJlZmxvY2spOwo+ICAgICAgICAgdXJjdV9yZWZf cHV0KCZ0cmFjZS0+cmVmLCBjdGZfdHJhY2VfcmVsZWFzZSk7Cj4gLSAgICAgICBwdGhyZWFkX211 dGV4X3VubG9jaygmdHJhY2UtPnJlZmxvY2spOwo+ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7 Cj4gIH0KPgo+IGRpZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9jdGYtdHJhY2UuaCBi L3NyYy9iaW4vbHR0bmctcmVsYXlkL2N0Zi10cmFjZS5oCj4gaW5kZXggZDA1MWY4MC4uOTkwM2Qz OCAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9jdGYtdHJhY2UuaAo+ICsrKyBi L3NyYy9iaW4vbHR0bmctcmVsYXlkL2N0Zi10cmFjZS5oCj4gQEAgLTMwLDEwICszMCw2IEBACj4g ICNpbmNsdWRlICJ2aWV3ZXItc3RyZWFtLmgiCj4KPiAgc3RydWN0IGN0Zl90cmFjZSB7Cj4gLSAg ICAgICAvKgo+IC0gICAgICAgICogVGhlIGN0Zl90cmFjZSByZWZsb2NrIG5lc3RzIGluc2lkZSB0 aGUgc3RyZWFtIHJlZmxvY2suCj4gLSAgICAgICAgKi8KPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhf dCByZWZsb2NrOyAgICAgICAgLyogUHJvdGVjdHMgcmVmY291bnRpbmcgKi8KPiAgICAgICAgIHN0 cnVjdCB1cmN1X3JlZiByZWY7ICAgICAgICAgICAgLyogRXZlcnkgc3RyZWFtIGhhcyBhIHJlZiBv biB0aGUgdHJhY2UuICovCj4gICAgICAgICBzdHJ1Y3QgcmVsYXlfc2Vzc2lvbiAqc2Vzc2lvbjsg IC8qIEJhY2sgcmVmIHRvIHRyYWNlIHNlc3Npb24gKi8KPgo+IGRpZmYgLS1naXQgYS9zcmMvYmlu L2x0dG5nLXJlbGF5ZC9pbmRleC5jIGIvc3JjL2Jpbi9sdHRuZy1yZWxheWQvaW5kZXguYwo+IGlu ZGV4IDViNWM3MTEuLjA0YWEyNDQgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Jpbi9sdHRuZy1yZWxheWQv aW5kZXguYwo+ICsrKyBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL2luZGV4LmMKPiBAQCAtNTksNyAr NTksNiBAQCBzdGF0aWMgc3RydWN0IHJlbGF5X2luZGV4ICpyZWxheV9pbmRleF9jcmVhdGUoc3Ry dWN0IHJlbGF5X3N0cmVhbSAqc3RyZWFtLAo+Cj4gICAgICAgICBsdHRuZ19odF9ub2RlX2luaXRf dTY0KCZpbmRleC0+aW5kZXhfbiwgbmV0X3NlcV9udW0pOwo+ICAgICAgICAgcHRocmVhZF9tdXRl eF9pbml0KCZpbmRleC0+bG9jaywgTlVMTCk7Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X2luaXQo JmluZGV4LT5yZWZsb2NrLCBOVUxMKTsKPiAgICAgICAgIHVyY3VfcmVmX2luaXQoJmluZGV4LT5y ZWYpOwo+Cj4gIGVuZDoKPiBAQCAtOTksMjEgKzk4LDExIEBAIHN0YXRpYyBzdHJ1Y3QgcmVsYXlf aW5kZXggKnJlbGF5X2luZGV4X2FkZF91bmlxdWUoc3RydWN0IHJlbGF5X3N0cmVhbSAqc3RyZWFt LAo+ICAgKi8KPiAgc3RhdGljIGJvb2wgcmVsYXlfaW5kZXhfZ2V0KHN0cnVjdCByZWxheV9pbmRl eCAqaW5kZXgpCj4gIHsKPiAtICAgICAgIGJvb2wgaGFzX3JlZiA9IGZhbHNlOwo+IC0KPiAgICAg ICAgIERCRzIoImluZGV4IGdldCBmb3Igc3RyZWFtIGlkICUiIFBSSXU2NCAiIGFuZCBzZXFudW0g JSIgUFJJdTY0ICIgcmVmY291bnQgJWQiLAo+ICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4 LT5zdHJlYW0tPnN0cmVhbV9oYW5kbGUsIGluZGV4LT5pbmRleF9uLmtleSwKPiAgICAgICAgICAg ICAgICAgICAgICAgICAoaW50KSBpbmRleC0+cmVmLnJlZmNvdW50KTsKPgo+IC0gICAgICAgLyog Q29uZmlybSB0aGF0IHRoZSBpbmRleCByZWZjb3VudCBoYXMgbm90IHJlYWNoZWQgMC4gKi8KPiAt ICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jaygmaW5kZXgtPnJlZmxvY2spOwo+IC0gICAgICAgaWYg KGluZGV4LT5yZWYucmVmY291bnQgIT0gMCkgewo+IC0gICAgICAgICAgICAgICBoYXNfcmVmID0g dHJ1ZTsKPiAtICAgICAgICAgICAgICAgdXJjdV9yZWZfZ2V0KCZpbmRleC0+cmVmKTsKPiAtICAg ICAgIH0KPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZpbmRleC0+cmVmbG9jayk7Cj4g LQo+IC0gICAgICAgcmV0dXJuIGhhc19yZWY7Cj4gKyAgICAgICByZXR1cm4gdXJjdV9yZWZfZ2V0 X3VubGVzc196ZXJvKCZpbmRleC0+cmVmKTsKPiAgfQo+Cj4gIC8qCj4gQEAgLTI2NSwxMCArMjU0 LDggQEAgdm9pZCByZWxheV9pbmRleF9wdXQoc3RydWN0IHJlbGF5X2luZGV4ICppbmRleCkKPiAg ICAgICAgICAqIEluZGV4IGxvY2sgZW5zdXJlcyB0aGF0IGNvbmN1cnJlbnQgdGVzdCBhbmQgdXBk YXRlIG9mIHN0cmVhbQo+ICAgICAgICAgICogcmVmIGlzIGF0b21pYy4KPiAgICAgICAgICAqLwo+ IC0gICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZpbmRleC0+cmVmbG9jayk7Cj4gICAgICAgICBh c3NlcnQoaW5kZXgtPnJlZi5yZWZjb3VudCAhPSAwKTsKPiAgICAgICAgIHVyY3VfcmVmX3B1dCgm aW5kZXgtPnJlZiwgaW5kZXhfcmVsZWFzZSk7Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X3VubG9j aygmaW5kZXgtPnJlZmxvY2spOwo+ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7Cj4gIH0KPgo+ IGRpZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9pbmRleC5oIGIvc3JjL2Jpbi9sdHRu Zy1yZWxheWQvaW5kZXguaAo+IGluZGV4IDE1YzRhYzguLmM2M2YxNjUgMTAwNjQ0Cj4gLS0tIGEv c3JjL2Jpbi9sdHRuZy1yZWxheWQvaW5kZXguaAo+ICsrKyBiL3NyYy9iaW4vbHR0bmctcmVsYXlk L2luZGV4LmgKPiBAQCAtMzQsNyArMzQsNiBAQCBzdHJ1Y3QgcmVsYXlfaW5kZXggewo+ICAgICAg ICAgLyoKPiAgICAgICAgICAqIGluZGV4IGxvY2sgbmVzdHMgaW5zaWRlIHN0cmVhbSBsb2NrLgo+ ICAgICAgICAgICovCj4gLSAgICAgICBwdGhyZWFkX211dGV4X3QgcmVmbG9jazsgICAgICAgIC8q IFByb3RlY3RzIHJlZmNvdW50aW5nLiAqLwo+ICAgICAgICAgc3RydWN0IHVyY3VfcmVmIHJlZjsg ICAgICAgICAgICAvKiBSZWZlcmVuY2UgZnJvbSBnZXR0ZXJzLiAqLwo+ICAgICAgICAgc3RydWN0 IHJlbGF5X3N0cmVhbSAqc3RyZWFtOyAgICAvKiBCYWNrIHJlZiB0byBzdHJlYW0gKi8KPgo+IGRp ZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zZXNzaW9uLmMgYi9zcmMvYmluL2x0dG5n LXJlbGF5ZC9zZXNzaW9uLmMKPiBpbmRleCAxNGFlODc0Li40NjYyMjlhIDEwMDY0NAo+IC0tLSBh L3NyYy9iaW4vbHR0bmctcmVsYXlkL3Nlc3Npb24uYwo+ICsrKyBiL3NyYy9iaW4vbHR0bmctcmVs YXlkL3Nlc3Npb24uYwo+IEBAIC02NSw3ICs2NSw2IEBAIHN0cnVjdCByZWxheV9zZXNzaW9uICpz ZXNzaW9uX2NyZWF0ZShjb25zdCBjaGFyICpzZXNzaW9uX25hbWUsCj4gICAgICAgICB1cmN1X3Jl Zl9pbml0KCZzZXNzaW9uLT5yZWYpOwo+ICAgICAgICAgQ0RTX0lOSVRfTElTVF9IRUFEKCZzZXNz aW9uLT5yZWN2X2xpc3QpOwo+ICAgICAgICAgcHRocmVhZF9tdXRleF9pbml0KCZzZXNzaW9uLT5s b2NrLCBOVUxMKTsKPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhfaW5pdCgmc2Vzc2lvbi0+cmVmbG9j aywgTlVMTCk7Cj4gICAgICAgICBwdGhyZWFkX211dGV4X2luaXQoJnNlc3Npb24tPnJlY3ZfbGlz dF9sb2NrLCBOVUxMKTsKPgo+ICAgICAgICAgc3RybmNweShzZXNzaW9uLT5zZXNzaW9uX25hbWUs IHNlc3Npb25fbmFtZSwKPiBAQCAtODQsMTYgKzgzLDcgQEAgZXJyb3I6Cj4gIC8qIFNob3VsZCBi ZSBjYWxsZWQgd2l0aCBSQ1UgcmVhZC1zaWRlIGxvY2sgaGVsZC4gKi8KPiAgYm9vbCBzZXNzaW9u X2dldChzdHJ1Y3QgcmVsYXlfc2Vzc2lvbiAqc2Vzc2lvbikKPiAgewo+IC0gICAgICAgYm9vbCBo YXNfcmVmID0gZmFsc2U7Cj4gLQo+IC0gICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZzZXNzaW9u LT5yZWZsb2NrKTsKPiAtICAgICAgIGlmIChzZXNzaW9uLT5yZWYucmVmY291bnQgIT0gMCkgewo+ IC0gICAgICAgICAgICAgICBoYXNfcmVmID0gdHJ1ZTsKPiAtICAgICAgICAgICAgICAgdXJjdV9y ZWZfZ2V0KCZzZXNzaW9uLT5yZWYpOwo+IC0gICAgICAgfQo+IC0gICAgICAgcHRocmVhZF9tdXRl eF91bmxvY2soJnNlc3Npb24tPnJlZmxvY2spOwo+IC0KPiAtICAgICAgIHJldHVybiBoYXNfcmVm Owo+ICsgICAgICAgcmV0dXJuIHVyY3VfcmVmX2dldF91bmxlc3NfemVybygmc2Vzc2lvbi0+cmVm KTsKPiAgfQo+Cj4gIC8qCj4gQEAgLTE3NSw5ICsxNjUsNyBAQCB2b2lkIHNlc3Npb25fcmVsZWFz ZShzdHJ1Y3QgdXJjdV9yZWYgKnJlZikKPiAgdm9pZCBzZXNzaW9uX3B1dChzdHJ1Y3QgcmVsYXlf c2Vzc2lvbiAqc2Vzc2lvbikKPiAgewo+ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwo+IC0gICAg ICAgcHRocmVhZF9tdXRleF9sb2NrKCZzZXNzaW9uLT5yZWZsb2NrKTsKPiAgICAgICAgIHVyY3Vf cmVmX3B1dCgmc2Vzc2lvbi0+cmVmLCBzZXNzaW9uX3JlbGVhc2UpOwo+IC0gICAgICAgcHRocmVh ZF9tdXRleF91bmxvY2soJnNlc3Npb24tPnJlZmxvY2spOwo+ICAgICAgICAgcmN1X3JlYWRfdW5s b2NrKCk7Cj4gIH0KPgo+IGRpZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zZXNzaW9u LmggYi9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zZXNzaW9uLmgKPiBpbmRleCAxYTM3Y2ZlLi4zNjIy MTZhIDEwMDY0NAo+IC0tLSBhL3NyYy9iaW4vbHR0bmctcmVsYXlkL3Nlc3Npb24uaAo+ICsrKyBi L3NyYy9iaW4vbHR0bmctcmVsYXlkL3Nlc3Npb24uaAo+IEBAIC01Myw4ICs1Myw2IEBAIHN0cnVj dCByZWxheV9zZXNzaW9uIHsKPiAgICAgICAgICAqLwo+Cj4gICAgICAgICBzdHJ1Y3QgdXJjdV9y ZWYgcmVmOwo+IC0gICAgICAgLyogc2Vzc2lvbiByZWZsb2NrIG5lc3RzIGluc2lkZSBjdGZfdHJh Y2UgcmVmbG9jay4gKi8KPiAtICAgICAgIHB0aHJlYWRfbXV0ZXhfdCByZWZsb2NrOwo+Cj4gICAg ICAgICBwdGhyZWFkX211dGV4X3QgbG9jazsKPgo+IGRpZmYgLS1naXQgYS9zcmMvYmluL2x0dG5n LXJlbGF5ZC9zdHJlYW0uYyBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL3N0cmVhbS5jCj4gaW5kZXgg YjYwNDkxOS4uM2ZkNWJjMCAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zdHJl YW0uYwo+ICsrKyBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL3N0cmVhbS5jCj4gQEAgLTMzLDE2ICsz Myw3IEBACj4gIC8qIFNob3VsZCBiZSBjYWxsZWQgd2l0aCBSQ1UgcmVhZC1zaWRlIGxvY2sgaGVs ZC4gKi8KPiAgYm9vbCBzdHJlYW1fZ2V0KHN0cnVjdCByZWxheV9zdHJlYW0gKnN0cmVhbSkKPiAg ewo+IC0gICAgICAgYm9vbCBoYXNfcmVmID0gZmFsc2U7Cj4gLQo+IC0gICAgICAgcHRocmVhZF9t dXRleF9sb2NrKCZzdHJlYW0tPnJlZmxvY2spOwo+IC0gICAgICAgaWYgKHN0cmVhbS0+cmVmLnJl ZmNvdW50ICE9IDApIHsKPiAtICAgICAgICAgICAgICAgaGFzX3JlZiA9IHRydWU7Cj4gLSAgICAg ICAgICAgICAgIHVyY3VfcmVmX2dldCgmc3RyZWFtLT5yZWYpOwo+IC0gICAgICAgfQo+IC0gICAg ICAgcHRocmVhZF9tdXRleF91bmxvY2soJnN0cmVhbS0+cmVmbG9jayk7Cj4gLQo+IC0gICAgICAg cmV0dXJuIGhhc19yZWY7Cj4gKyAgICAgICByZXR1cm4gdXJjdV9yZWZfZ2V0X3VubGVzc196ZXJv KCZzdHJlYW0tPnJlZik7Cj4gIH0KPgo+ICAvKgo+IEBAIC0xMDEsNyArOTIsNiBAQCBzdHJ1Y3Qg cmVsYXlfc3RyZWFtICpzdHJlYW1fY3JlYXRlKHN0cnVjdCBjdGZfdHJhY2UgKnRyYWNlLAo+ICAg ICAgICAgc3RyZWFtLT5jaGFubmVsX25hbWUgPSBjaGFubmVsX25hbWU7Cj4gICAgICAgICBsdHRu Z19odF9ub2RlX2luaXRfdTY0KCZzdHJlYW0tPm5vZGUsIHN0cmVhbS0+c3RyZWFtX2hhbmRsZSk7 Cj4gICAgICAgICBwdGhyZWFkX211dGV4X2luaXQoJnN0cmVhbS0+bG9jaywgTlVMTCk7Cj4gLSAg ICAgICBwdGhyZWFkX211dGV4X2luaXQoJnN0cmVhbS0+cmVmbG9jaywgTlVMTCk7Cj4gICAgICAg ICB1cmN1X3JlZl9pbml0KCZzdHJlYW0tPnJlZik7Cj4gICAgICAgICBjdGZfdHJhY2VfZ2V0KHRy YWNlKTsKPiAgICAgICAgIHN0cmVhbS0+dHJhY2UgPSB0cmFjZTsKPiBAQCAtMjI4LDggKzIxOCw3 IEBAIHVubG9jazoKPgo+ICAvKgo+ICAgKiBTdHJlYW0gbXVzdCBiZSBwcm90ZWN0ZWQgYnkgaG9s ZGluZyB0aGUgc3RyZWFtIGxvY2sgb3IgYnkgdmlydHVlIG9mIGJlaW5nCj4gLSAqIGNhbGxlZCBm cm9tIHN0cmVhbV9kZXN0cm95LCBpbiB3aGljaCBjYXNlIGl0IGlzIGd1YXJhbnRlZWQgdG8gYmUg YWNjZXNzZWQKPiAtICogZnJvbSBhIHNpbmdsZSB0aHJlYWQgYnkgdGhlIHJlZmxvY2suCj4gKyAq IGNhbGxlZCBmcm9tIHN0cmVhbV9kZXN0cm95Lgo+ICAgKi8KPiAgc3RhdGljIHZvaWQgc3RyZWFt X3VucHVibGlzaChzdHJ1Y3QgcmVsYXlfc3RyZWFtICpzdHJlYW0pCj4gIHsKPiBAQCAtMjc0LDkg KzI2Myw2IEBAIHN0YXRpYyB2b2lkIHN0cmVhbV9kZXN0cm95X3JjdShzdHJ1Y3QgcmN1X2hlYWQg KnJjdV9oZWFkKQo+ICAvKgo+ICAgKiBObyBuZWVkIHRvIHRha2Ugc3RyZWFtLT5sb2NrIHNpbmNl IHRoaXMgaXMgb25seSBjYWxsZWQgb24gdGhlIGZpbmFsCj4gICAqIHN0cmVhbV9wdXQgd2hpY2gg ZW5zdXJlcyB0aGF0IGEgc2luZ2xlIHRocmVhZCBtYXkgYWN0IG9uIHRoZSBzdHJlYW0uCj4gLSAq Cj4gLSAqIEF0IHRoYXQgcG9pbnQsIHRoZSBvYmplY3QgaXMgYWxzbyBwcm90ZWN0ZWQgYnkgdGhl IHJlZmxvY2sgd2hpY2gKPiAtICogZ3VhcmFudGVlcyB0aGF0IG5vIG90aGVyIHRocmVhZCBtYXkg c2hhcmUgb3duZXJzaGlwIG9mIHRoaXMgc3RyZWFtLgo+ICAgKi8KPiAgc3RhdGljIHZvaWQgc3Ry ZWFtX3JlbGVhc2Uoc3RydWN0IHVyY3VfcmVmICpyZWYpCj4gIHsKPiBAQCAtMzE3LDE1ICszMDMs NyBAQCBzdGF0aWMgdm9pZCBzdHJlYW1fcmVsZWFzZShzdHJ1Y3QgdXJjdV9yZWYgKnJlZikKPiAg dm9pZCBzdHJlYW1fcHV0KHN0cnVjdCByZWxheV9zdHJlYW0gKnN0cmVhbSkKPiAgewo+ICAgICAg ICAgREJHKCJzdHJlYW0gcHV0IGZvciBzdHJlYW0gaWQgJSIgUFJJdTY0LCBzdHJlYW0tPnN0cmVh bV9oYW5kbGUpOwo+IC0gICAgICAgLyoKPiAtICAgICAgICAqIEVuc3VyZSBleGlzdGVuY2Ugb2Yg c3RyZWFtLT5yZWZsb2NrIGZvciBzdHJlYW0gdW5sb2NrLgo+IC0gICAgICAgICovCj4gICAgICAg ICByY3VfcmVhZF9sb2NrKCk7Cj4gLSAgICAgICAvKgo+IC0gICAgICAgICogU3RyZWFtIHJlZmxv Y2sgZW5zdXJlcyB0aGF0IGNvbmN1cnJlbnQgdGVzdCBhbmQgdXBkYXRlIG9mCj4gLSAgICAgICAg KiBzdHJlYW0gcmVmIGlzIGF0b21pYy4KPiAtICAgICAgICAqLwo+IC0gICAgICAgcHRocmVhZF9t dXRleF9sb2NrKCZzdHJlYW0tPnJlZmxvY2spOwo+ICAgICAgICAgYXNzZXJ0KHN0cmVhbS0+cmVm LnJlZmNvdW50ICE9IDApOwo+ICAgICAgICAgLyoKPiAgICAgICAgICAqIFdhaXQgdW50aWwgd2Ug aGF2ZSBwcm9jZXNzZWQgYWxsIHRoZSBzdHJlYW0gcGFja2V0cyBiZWZvcmUKPiBAQCAtMzM1LDcg KzMxMyw2IEBAIHZvaWQgc3RyZWFtX3B1dChzdHJ1Y3QgcmVsYXlfc3RyZWFtICpzdHJlYW0pCj4g ICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLT5zdHJlYW1faGFuZGxlLAo+ICAgICAgICAg ICAgICAgICAgICAgICAgIChpbnQpIHN0cmVhbS0+cmVmLnJlZmNvdW50KTsKPiAgICAgICAgIHVy Y3VfcmVmX3B1dCgmc3RyZWFtLT5yZWYsIHN0cmVhbV9yZWxlYXNlKTsKPiAtICAgICAgIHB0aHJl YWRfbXV0ZXhfdW5sb2NrKCZzdHJlYW0tPnJlZmxvY2spOwo+ICAgICAgICAgcmN1X3JlYWRfdW5s b2NrKCk7Cj4gIH0KPgo+IGRpZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zdHJlYW0u aCBiL3NyYy9iaW4vbHR0bmctcmVsYXlkL3N0cmVhbS5oCj4gaW5kZXggNTAzMGU1ZC4uZWZiYmQx MiAxMDA2NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC9zdHJlYW0uaAo+ICsrKyBiL3Ny Yy9iaW4vbHR0bmctcmVsYXlkL3N0cmVhbS5oCj4gQEAgLTM3LDEyICszNyw2IEBACj4gIHN0cnVj dCByZWxheV9zdHJlYW0gewo+ICAgICAgICAgdWludDY0X3Qgc3RyZWFtX2hhbmRsZTsKPgo+IC0g ICAgICAgLyoKPiAtICAgICAgICAqIHJlZmxvY2sgdXNlZCB0byBzeW5jaHJvbml6ZSB0aGUgY2xv c2luZyBvZiB0aGlzIHN0cmVhbS4KPiAtICAgICAgICAqIHN0cmVhbSByZWZsb2NrIG5lc3RzIGlu c2lkZSB2aWV3ZXIgc3RyZWFtIHJlZmxvY2suCj4gLSAgICAgICAgKiBzdHJlYW0gcmVmbG9jayBu ZXN0cyBpbnNpZGUgaW5kZXggcmVmbG9jay4KPiAtICAgICAgICAqLwo+IC0gICAgICAgcHRocmVh ZF9tdXRleF90IHJlZmxvY2s7Cj4gICAgICAgICBzdHJ1Y3QgdXJjdV9yZWYgcmVmOwo+ICAgICAg ICAgLyogQmFjayByZWZlcmVuY2UgdG8gdHJhY2UuIFByb3RlY3RlZCBieSByZWZjb3VudCBvbiB0 cmFjZSBvYmplY3QuICovCj4gICAgICAgICBzdHJ1Y3QgY3RmX3RyYWNlICp0cmFjZTsKPiBkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9sdHRuZy1yZWxheWQvdmlld2VyLXN0cmVhbS5jIGIvc3JjL2Jpbi9s dHRuZy1yZWxheWQvdmlld2VyLXN0cmVhbS5jCj4gaW5kZXggMzMzMjQ2YS4uNTM3ZGI0NyAxMDA2 NDQKPiAtLS0gYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC92aWV3ZXItc3RyZWFtLmMKPiArKysgYi9z cmMvYmluL2x0dG5nLXJlbGF5ZC92aWV3ZXItc3RyZWFtLmMKPiBAQCAtMTUzLDcgKzE1Myw2IEBA IHN0cnVjdCByZWxheV92aWV3ZXJfc3RyZWFtICp2aWV3ZXJfc3RyZWFtX2NyZWF0ZShzdHJ1Y3Qg cmVsYXlfc3RyZWFtICpzdHJlYW0sCj4gICAgICAgICBsdHRuZ19odF9ub2RlX2luaXRfdTY0KCZ2 c3RyZWFtLT5zdHJlYW1fbiwgc3RyZWFtLT5zdHJlYW1faGFuZGxlKTsKPiAgICAgICAgIGx0dG5n X2h0X2FkZF91bmlxdWVfdTY0KHZpZXdlcl9zdHJlYW1zX2h0LCAmdnN0cmVhbS0+c3RyZWFtX24p Owo+Cj4gLSAgICAgICBwdGhyZWFkX211dGV4X2luaXQoJnZzdHJlYW0tPnJlZmxvY2ssIE5VTEwp Owo+ICAgICAgICAgdXJjdV9yZWZfaW5pdCgmdnN0cmVhbS0+cmVmKTsKPgo+ICAgICAgICAgcmV0 dXJuIHZzdHJlYW07Cj4gQEAgLTIwNiwxNiArMjA1LDcgQEAgc3RhdGljIHZvaWQgdmlld2VyX3N0 cmVhbV9yZWxlYXNlKHN0cnVjdCB1cmN1X3JlZiAqcmVmKQo+ICAvKiBNdXN0IGJlIGNhbGxlZCB3 aXRoIFJDVSByZWFkLXNpZGUgbG9jayBoZWxkLiAqLwo+ICBib29sIHZpZXdlcl9zdHJlYW1fZ2V0 KHN0cnVjdCByZWxheV92aWV3ZXJfc3RyZWFtICp2c3RyZWFtKQo+ICB7Cj4gLSAgICAgICBib29s IGhhc19yZWYgPSBmYWxzZTsKPiAtCj4gLSAgICAgICBwdGhyZWFkX211dGV4X2xvY2soJnZzdHJl YW0tPnJlZmxvY2spOwo+IC0gICAgICAgaWYgKHZzdHJlYW0tPnJlZi5yZWZjb3VudCAhPSAwKSB7 Cj4gLSAgICAgICAgICAgICAgIGhhc19yZWYgPSB0cnVlOwo+IC0gICAgICAgICAgICAgICB1cmN1 X3JlZl9nZXQoJnZzdHJlYW0tPnJlZik7Cj4gLSAgICAgICB9Cj4gLSAgICAgICBwdGhyZWFkX211 dGV4X3VubG9jaygmdnN0cmVhbS0+cmVmbG9jayk7Cj4gLQo+IC0gICAgICAgcmV0dXJuIGhhc19y ZWY7Cj4gKyAgICAgICByZXR1cm4gdXJjdV9yZWZfZ2V0X3VubGVzc196ZXJvKCZ2c3RyZWFtLT5y ZWYpOwo+ICB9Cj4KPiAgLyoKPiBAQCAtMjQ4LDkgKzIzOCw3IEBAIGVuZDoKPiAgdm9pZCB2aWV3 ZXJfc3RyZWFtX3B1dChzdHJ1Y3QgcmVsYXlfdmlld2VyX3N0cmVhbSAqdnN0cmVhbSkKPiAgewo+ ICAgICAgICAgcmN1X3JlYWRfbG9jaygpOwo+IC0gICAgICAgcHRocmVhZF9tdXRleF9sb2NrKCZ2 c3RyZWFtLT5yZWZsb2NrKTsKPiAgICAgICAgIHVyY3VfcmVmX3B1dCgmdnN0cmVhbS0+cmVmLCB2 aWV3ZXJfc3RyZWFtX3JlbGVhc2UpOwo+IC0gICAgICAgcHRocmVhZF9tdXRleF91bmxvY2soJnZz dHJlYW0tPnJlZmxvY2spOwo+ICAgICAgICAgcmN1X3JlYWRfdW5sb2NrKCk7Cj4gIH0KPgo+IGRp ZmYgLS1naXQgYS9zcmMvYmluL2x0dG5nLXJlbGF5ZC92aWV3ZXItc3RyZWFtLmggYi9zcmMvYmlu L2x0dG5nLXJlbGF5ZC92aWV3ZXItc3RyZWFtLmgKPiBpbmRleCA1ZGMxMzVkLi44NDhmNzJhIDEw MDY0NAo+IC0tLSBhL3NyYy9iaW4vbHR0bmctcmVsYXlkL3ZpZXdlci1zdHJlYW0uaAo+ICsrKyBi L3NyYy9iaW4vbHR0bmctcmVsYXlkL3ZpZXdlci1zdHJlYW0uaAo+IEBAIC00NSw3ICs0NSw2IEBA IHN0cnVjdCByZWxheV9zdHJlYW07Cj4gICAqLwo+ICBzdHJ1Y3QgcmVsYXlfdmlld2VyX3N0cmVh bSB7Cj4gICAgICAgICBzdHJ1Y3QgdXJjdV9yZWYgcmVmOwo+IC0gICAgICAgcHRocmVhZF9tdXRl eF90IHJlZmxvY2s7Cj4KPiAgICAgICAgIC8qIEJhY2sgcmVmIHRvIHN0cmVhbS4gKi8KPiAgICAg ICAgIHN0cnVjdCByZWxheV9zdHJlYW0gKnN0cmVhbTsKPiAtLQo+IDIuMS40Cj4KCgoKLS0gCkrD qXLDqW1pZSBHYWxhcm5lYXUKRWZmaWNpT1MgSW5jLgpodHRwOi8vd3d3LmVmZmljaW9zLmNvbQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsdHRuZy1kZXYg bWFpbGluZyBsaXN0Cmx0dG5nLWRldkBsaXN0cy5sdHRuZy5vcmcKaHR0cHM6Ly9saXN0cy5sdHRu Zy5vcmcvY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL2x0dG5nLWRldgo=