From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 842FD26424 for ; Thu, 28 Jun 2018 17:55:46 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1faBG58ZGHq0 for ; Thu, 28 Jun 2018 17:55:46 -0400 (EDT) Received: from f344.i.mail.ru (f344.i.mail.ru [217.69.140.240]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id A76ED26419 for ; Thu, 28 Jun 2018 17:55:45 -0400 (EDT) Received: by f344.i.mail.ru with local (envelope-from ) id 1fYetC-0002ZS-P2 for tarantool-patches@freelists.org; Fri, 29 Jun 2018 00:55:43 +0300 From: =?UTF-8?B?S29uc3RhbnRpbiBCZWx5YXZza2l5?= Subject: [tarantool-patches] =?UTF-8?B?UmU6IFt0YXJhbnRvb2wtcGF0Y2hlc10gUmU6IFtQQVRDSCB2MyAyLzJdIHJl?= =?UTF-8?B?cGxpY2F0aW9uOiBmb3JjZSBnYyB0byBjbGVhbiB4ZGlyIG9uIEVOT1NQQyBl?= =?UTF-8?B?cnI=?= MIME-Version: 1.0 Date: Fri, 29 Jun 2018 00:55:42 +0300 Message-ID: <1530222942.499248560@f344.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--bzxqnYU4tDCfxjKFLRDzDdHTSBUpAt3B1530222942" In-Reply-To: <20180628152530.GA6042@chai> References: <2d8949f1e20f57f466d5ae56a131b86c5618a110.1530115423.git.k.belyavskiy@tarantool.org> <20180628152530.GA6042@chai> Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-help: List-unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-subscribe: List-owner: List-post: List-archive: To: tarantool-patches@freelists.org ----ALT--bzxqnYU4tDCfxjKFLRDzDdHTSBUpAt3B1530222942 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rIHlvdSBmb3IgdGhlIHJldmlldy4KCj7Qp9C10YLQstC10YDQsywgMjgg0LjRjtC90Y8g MjAxOCwgMTg6MjUgKzAzOjAwINC+0YIgS29uc3RhbnRpbiBPc2lwb3YgPGtvc3RqYUB0YXJhbnRv b2wub3JnPjoKPgo+KiBLb25zdGFudGluIEJlbHlhdnNraXkgPCBrLmJlbHlhdnNraXlAdGFyYW50 b29sLm9yZyA+IFsxOC8wNi8yOCAxODoxM106Cj4+IAo+PiArdm9pZAo+PiArZ2NfeGRpcl9jbGVh bl9ub3RpZnkoKQo+PiArewo+PiArCS8qCj4+ICsJICogQ29tcGFyZSB0aGUgY3VycmVudCB0aW1l IHdpdGggdGhlIHRpbWUgb2YgdGhlIGxhc3QgcnVuLgo+PiArCSAqIFRoaXMgaXMgbmVlZGVkIGlu IGNhc2Ugb2YgbXVsdGlwbGUgZmFpbHVyZXMgdG8gcHJldmVudAo+PiArCSAqIGZyb20gZGVsZXRp bmcgYWxsIHJlcGxpY2FzLgo+PiArCSAqLwo+PiArCXN0YXRpYyBpbnQgcHJldl90aW1lID0gMDsK Pj4gKwlpbnQgY3VyX3RpbWUgPSB0aW1lKE5VTEwpOwo+PiArCWlmIChjdXJfdGltZSAtIHByZXZf dGltZSA8IDEpCj4KPlBsZWFzZSB1c2UgZmliZXIgdGltZS4gCkZpeGVkLgo+Cj4KPj4gKwkvKioK Pj4gKwkgKiBNYXJrIGNvbnN1bWVyIHdpdGggbGVhc3QgcmVjZW50IHZjbG9jayBhcyAiZGVhZCIg YW5kCj4+ICsJICogaW52b2tlIGdhcmJhZ2UgY29sbGVjdGlvbi4gSWYgbm90aGluZyB0byBkZWxl dGUgZmluZAo+PiArCSAqIG5leHQgYWxpdmUgY29uc3VtZXIgZXRjLiBPcmlnaW5hbGx5IGNyZWF0 ZWQgZm9yCj4+ICsJICogY2FzZXMgd2l0aCBydW5uaW5nIG91dCBvZiBkaXNrIHNwYWNlIGJlY2F1 c2Ugb2YKPj4gKwkgKiBkaXNjb25uZWN0ZWQgcmVwbGljYS4KPj4gKwkgKi8KPj4gKwlzdHJ1Y3Qg Z2NfY29uc3VtZXIgKmxlZnRtb3N0ID0KPj4gKwkgICAgZ2NfdHJlZV9maXJzdCgmZ2MuY29uc3Vt ZXJzKTsKPj4gKwkvKgo+PiArCSAqIEV4aXQgaWYgbm8gY29uc3VtZXJzIGxlZnQgb3IgaWYgdGhp cyBjb25zdW1lciBpcwo+PiArCSAqIG5vdCBhc3NvY2lhdGVkIHdpdGggcmVwbGljYSAoYmFja3Vw IGZvciBleGFtcGxlKS4KPj4gKwkgKi8KPgo+WW91IHNob3VsZCBkZWxldGUgdGhlIGNvbnN1bWVy ICpvbmx5KiBpZiBpdCdzIGdvaW5nIHRvIGhlbHAgd2l0aAo+Z2FyYmFnZS4gUnVubmluZyBvdXQg b2Ygc3BhY2Ugc2hvdWxkIG5vdCBsZWFkIHRvIGRlbGV0aW9uIG9mIGFsbAo+cmVwbGljYXMgYXMg Y29uc3VtZXJzIGlmIHRoZXkgYXJlIG5vdCBsYWdnaW5nIGJlaGluZC4gCkhlcmUgSSBkZWxldGUg b25seSB0aGUgY29uc3VtZXIgd2l0aCB0aGUgbGVhc3QgcmVjZW50IHZjbG9jawoob3IgY29uc3Vt ZXJzIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgdmFsdWUpIHNpbmNlIGdjX3RyZWXCoHVzZQp2Y2xv Y2sgc2lnbmF0dXJlIGZvciBjb21wYXJpc29uIChzZWUgZ2NfY29uc3VtZXJfY21wKS4KPgo+PiAr CWlmIChsZWZ0bW9zdCA9PSBOVUxMIHx8IGxlZnRtb3N0LT5yZXBsaWNhID09IE5VTEwpCj4+ICsJ CXJldHVybjsKPj4gKwlpbnQ2NF90IHNpZ25hdHVyZSA9IGxlZnRtb3N0LT5zaWduYXR1cmU7Cj4+ ICsJd2hpbGUgKHRydWUpIHsKPj4gKwkJZ2NfY29uc3VtZXJfdW5yZWdpc3RlcihsZWZ0bW9zdCk7 Cj4+ICsJCWxlZnRtb3N0ID0gZ2NfdHJlZV9maXJzdCgmZ2MuY29uc3VtZXJzKTsKPj4gKwkJaWYg KGxlZnRtb3N0ID09IE5VTEwgfHwgbGVmdG1vc3QtPnJlcGxpY2EgPT0gTlVMTCB8fAo+PiArCQkg ICAgbGVmdG1vc3QtPnNpZ25hdHVyZSA+IHNpZ25hdHVyZSkgewo+PiArCQkJZ2NfcnVuKCk7Cj4+ ICsJCQlyZXR1cm47Cj4+ICsJCX0KPj4gKwl9Cj4+ICt9Cj4+ICsKPgo+PGN1dD4KPgo+PiAgY29u c3QgY2hhciAqd2FsX21vZGVfU1RSU1tdID0geyAibm9uZSIsICJ3cml0ZSIsICJmc3luYyIsIE5V TEwgfTsKPj4gQEAgLTY0LDYgKzY1LDggQEAgc3RydWN0IHdhbF90aHJlYWQgewo+PiAgCSAqIHBy aW9yaXR5IHBpcGUgYW5kIERPRVMgTk9UIHN1cHBvcnQgeWllbGQuCj4+ICAJICovCj4+ICAJc3Ry dWN0IGNwaXBlIHR4X3ByaW9fcGlwZTsKPj4gKwkvKiogUmV0dXJuIHBpcGUgZnJvbSAnd2FsJyB0 byB0eCcgKi8KPj4gKwlzdHJ1Y3QgY3BpcGUgdHhfcGlwZTsKPgo+V2h5IGRvIHlvdSBuZWVkIGEg bmV3IHBpcGU/IApTaW5jZSBvcGVyYXRpb25zIHdpdGggZmlsZSAobGlrZSBkZWxldGluZyBvZiBv bGQgeGxvZ3MpIHJlcXVpcmVzIHlpZWxkIGFuZAp0eF9wcmlvIGRvZXMgbm90IHN1cHBvcnQgaXQu Cid0eCcgaXMgYSBmaWJlciBwb29sLCBidXQgJ3R4X3ByaW8nIGlzIGFuIGVuZHBvaW50IGFuZCBz dXBwb3J0cyBvbmx5IGNhbGxiYWNrcwp3aXRob3V0ICd5aWVsZCcuCj4KPj4gCj4+ICtzdGF0aWMg dm9pZAo+PiArZ2Nfc3RhdHVzX3VwZGF0ZShzdHJ1Y3QgY21zZyAqbXNnKQo+PiArewo+PiArCWdj X3hkaXJfY2xlYW5fbm90aWZ5KCk7Cj4+ICsJZGVsZXRlKG1zZyk7Cj4KPmRlbGV0ZSgpPyEgClNv cnJ5LCBteSBmYXVsdC4KPgo+Cj4+ICB7Cj4+IEBAIC02NTUsNiArNjY1LDE1IEBAIGRvbmU6Cj4+ ICAJCS8qIFVudGlsIHdlIGNhbiBwYXNzIHRoZSBlcnJvciB0byB0eCwgbG9nIGl0IGFuZCBjbGVh ci4gKi8KPj4gIAkJZXJyb3JfbG9nKGVycm9yKTsKPj4gIAkJZGlhZ19jbGVhcihkaWFnX2dldCgp KTsKPj4gKwkJaWYgKGVycm5vID09IEVOT1NQQykgewo+PiArCQkJc3RydWN0IGNtc2cgKm1zZyA9 Cj4+ICsJCQkgICAgKHN0cnVjdCBjbXNnKiljYWxsb2MoMSwgc2l6ZW9mKHN0cnVjdCBjbXNnKSk7 Cj4KPlBsZWFzZSBjaGVjayBjYWxsb2MoKSByZXR1cm4gdmFsdWUgYW5kIGRvIG5vdGhpbmcgCj5p biBjYXNlIGl0J3MgTlVMTC4gCkRvbmUuCj4KPj4gKwkJCXN0YXRpYyBjb25zdCBzdHJ1Y3QgY21z Z19ob3Agcm91dGVbXSA9IHsKPj4gKwkJCQl7Z2Nfc3RhdHVzX3VwZGF0ZSwgTlVMTH0KPj4gKwkJ CX07Cj4+ICsJCQljbXNnX2luaXQobXNnLCByb3V0ZSk7Cj4+ICsJCQljcGlwZV9wdXNoKCZ3YWxf dGhyZWFkLnR4X3BpcGUsIG1zZyk7Cj4+ICsJCX0KPj4gCj4+IGluZGV4IDg5NWQ5MzhkNS4uMTFm MWI3ZmRjIDEwMDY0NAo+PiArLi4uCj4+ICstLSBhZGQgYSBsaXR0bGUgdGltZW91dCBzbyBnYyBj b3VsZCBmaW5pc2ggam9iCj4+ICtyZXF1aXJlKCdmaWJlcicpLnNsZWVwKDAuMDEpCj4KPlBsZWFz ZSBuZXZlciBzbGVlcCBpbiBhIHRlc3QgY2FzZSB1bmNvbmRpdGlvbmFsbHkuIEl0IGRvZXNuJ3Qg d29yawo+cmVsaWFibHksIGVzcGVjaWFsbHkgaW4gcGFyYWxsZWwgcnVucy4KPgo+VGhlIHRlc3Qg Y2FzZSBzaG91bGQgdGVzdCB0aGF0IHJlcGxpY2FzIHdoaWNoIGFyZSBzZXZlcmVseSBiZWhpbmQg Cj5hcmUgYWJhbmRvbmVkLCBhbmQgcmVwbGljYXMgd2hpY2ggYXJlIHJ1bm5pbmcgd2VsbCBhcmUg bm90LiAKT2ssIHdpbGwgcmVwbGFjZSBpdCB3aXRoIG5ldyB0ZXN0IGNhc2UuCj4KPgo+LS0gCj5L b25zdGFudGluIE9zaXBvdiwgTW9zY293LCBSdXNzaWEsICArNyA5MDMgNjI2IDIyIDMyCj5odHRw Oi8vdGFyYW50b29sLmlvIC0gIHd3dy50d2l0dGVyLmNvbS9rb3N0amFfb3NpcG92Cj4KCgpCZXN0 IHJlZ2FyZHMsCktvbnN0YW50aW4gQmVseWF2c2tpeQprLmJlbHlhdnNraXlAdGFyYW50b29sLm9y Zwo= ----ALT--bzxqnYU4tDCfxjKFLRDzDdHTSBUpAt3B1530222942 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxicj5UaGFuayB5b3UgZm9yIHRoZSByZXZpZXcuPGJyPjxicj48YmxvY2tx dW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBw YWRkaW5nOjAgMCAwIDEwcHg7Ij4KCdCn0LXRgtCy0LXRgNCzLCAyOCDQuNGO0L3RjyAyMDE4LCAx ODoyNSArMDM6MDAg0L7RgiBLb25zdGFudGluIE9zaXBvdiAmbHQ7a29zdGphQHRhcmFudG9vbC5v cmcmZ3Q7Ojxicj48YnI+PGRpdiBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1z Zy1tc2ciPjxkaXY+PGRpdiBpZD0ic3R5bGVfMTUzMDE5OTU0MTAwMDAwMDA0MTlfQk9EWSI+KiBL b25zdGFudGluIEJlbHlhdnNraXkgJmx0OzxhIGhyZWY9Im1haWx0bzprLmJlbHlhdnNraXlAdGFy YW50b29sLm9yZyI+ay5iZWx5YXZza2l5QHRhcmFudG9vbC5vcmc8L2E+Jmd0OyBbMTgvMDYvMjgg MTg6MTNdOjxicj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmd0OyA8YnI+CiZn dDsgK3ZvaWQ8YnI+CiZndDsgK2djX3hkaXJfY2xlYW5fbm90aWZ5KCk8YnI+CiZndDsgK3s8YnI+ CiZndDsgKwkvKjxicj4KJmd0OyArCSAqIENvbXBhcmUgdGhlIGN1cnJlbnQgdGltZSB3aXRoIHRo ZSB0aW1lIG9mIHRoZSBsYXN0IHJ1bi48YnI+CiZndDsgKwkgKiBUaGlzIGlzIG5lZWRlZCBpbiBj YXNlIG9mIG11bHRpcGxlIGZhaWx1cmVzIHRvIHByZXZlbnQ8YnI+CiZndDsgKwkgKiBmcm9tIGRl bGV0aW5nIGFsbCByZXBsaWNhcy48YnI+CiZndDsgKwkgKi88YnI+CiZndDsgKwlzdGF0aWMgaW50 IHByZXZfdGltZSA9IDA7PGJyPgomZ3Q7ICsJaW50IGN1cl90aW1lID0gdGltZShOVUxMKTs8YnI+ CiZndDsgKwlpZiAoY3VyX3RpbWUgLSBwcmV2X3RpbWUgJmx0OyAxKTxicj48YnI+ClBsZWFzZSB1 c2UgZmliZXIgdGltZS48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Rml4ZWQu PGJyPjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFy Z2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+PGRpdiBjbGFzcz0ianMt aGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1MzAxOTk1NDEwMDAw MDAwNDE5X0JPRFkiPjxicj48YnI+CiZndDsgKwkvKio8YnI+CiZndDsgKwkgKiBNYXJrIGNvbnN1 bWVyIHdpdGggbGVhc3QgcmVjZW50IHZjbG9jayBhcyAiZGVhZCIgYW5kPGJyPgomZ3Q7ICsJICog aW52b2tlIGdhcmJhZ2UgY29sbGVjdGlvbi4gSWYgbm90aGluZyB0byBkZWxldGUgZmluZDxicj4K Jmd0OyArCSAqIG5leHQgYWxpdmUgY29uc3VtZXIgZXRjLiBPcmlnaW5hbGx5IGNyZWF0ZWQgZm9y PGJyPgomZ3Q7ICsJICogY2FzZXMgd2l0aCBydW5uaW5nIG91dCBvZiBkaXNrIHNwYWNlIGJlY2F1 c2Ugb2Y8YnI+CiZndDsgKwkgKiBkaXNjb25uZWN0ZWQgcmVwbGljYS48YnI+CiZndDsgKwkgKi88 YnI+CiZndDsgKwlzdHJ1Y3QgZ2NfY29uc3VtZXIgKmxlZnRtb3N0ID08YnI+CiZndDsgKwkgICAg Z2NfdHJlZV9maXJzdCgmYW1wO2djLmNvbnN1bWVycyk7PGJyPgomZ3Q7ICsJLyo8YnI+CiZndDsg KwkgKiBFeGl0IGlmIG5vIGNvbnN1bWVycyBsZWZ0IG9yIGlmIHRoaXMgY29uc3VtZXIgaXM8YnI+ CiZndDsgKwkgKiBub3QgYXNzb2NpYXRlZCB3aXRoIHJlcGxpY2EgKGJhY2t1cCBmb3IgZXhhbXBs ZSkuPGJyPgomZ3Q7ICsJICovPGJyPjxicj4KWW91IHNob3VsZCBkZWxldGUgdGhlIGNvbnN1bWVy ICpvbmx5KiBpZiBpdCdzIGdvaW5nIHRvIGhlbHAgd2l0aDxicj4KZ2FyYmFnZS4gUnVubmluZyBv dXQgb2Ygc3BhY2Ugc2hvdWxkIG5vdCBsZWFkIHRvIGRlbGV0aW9uIG9mIGFsbDxicj4KcmVwbGlj YXMgYXMgY29uc3VtZXJzIGlmIHRoZXkgYXJlIG5vdCBsYWdnaW5nIGJlaGluZC48L2Rpdj48L2Rp dj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+SGVyZSBJIGRlbGV0ZSBvbmx5IHRoZSBjb25zdW1l ciB3aXRoIHRoZSBsZWFzdCByZWNlbnQgdmNsb2NrPGJyPihvciBjb25zdW1lcnMgaWYgdGhleSBz aGFyZSB0aGUgc2FtZSB2YWx1ZSkgc2luY2UgZ2NfdHJlZSZuYnNwO3VzZTxicj52Y2xvY2sgc2ln bmF0dXJlIGZvciBjb21wYXJpc29uIChzZWUgZ2NfY29uc3VtZXJfY21wKS48YmxvY2txdW90ZSBz dHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5n OjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNn LW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTMwMTk5NTQxMDAwMDAwMDQxOV9CT0RZIj48YnI+ CiZndDsgKwlpZiAobGVmdG1vc3QgPT0gTlVMTCB8fCBsZWZ0bW9zdC0mZ3Q7cmVwbGljYSA9PSBO VUxMKTxicj4KJmd0OyArCQlyZXR1cm47PGJyPgomZ3Q7ICsJaW50NjRfdCBzaWduYXR1cmUgPSBs ZWZ0bW9zdC0mZ3Q7c2lnbmF0dXJlOzxicj4KJmd0OyArCXdoaWxlICh0cnVlKSB7PGJyPgomZ3Q7 ICsJCWdjX2NvbnN1bWVyX3VucmVnaXN0ZXIobGVmdG1vc3QpOzxicj4KJmd0OyArCQlsZWZ0bW9z dCA9IGdjX3RyZWVfZmlyc3QoJmFtcDtnYy5jb25zdW1lcnMpOzxicj4KJmd0OyArCQlpZiAobGVm dG1vc3QgPT0gTlVMTCB8fCBsZWZ0bW9zdC0mZ3Q7cmVwbGljYSA9PSBOVUxMIHx8PGJyPgomZ3Q7 ICsJCSAgICBsZWZ0bW9zdC0mZ3Q7c2lnbmF0dXJlICZndDsgc2lnbmF0dXJlKSB7PGJyPgomZ3Q7 ICsJCQlnY19ydW4oKTs8YnI+CiZndDsgKwkJCXJldHVybjs8YnI+CiZndDsgKwkJfTxicj4KJmd0 OyArCX08YnI+CiZndDsgK308YnI+CiZndDsgKzxicj48YnI+CiZsdDtjdXQmZ3Q7PGJyPjxicj4K Jmd0OyAgY29uc3QgY2hhciAqd2FsX21vZGVfU1RSU1tdID0geyAibm9uZSIsICJ3cml0ZSIsICJm c3luYyIsIE5VTEwgfTs8YnI+CiZndDsgQEAgLTY0LDYgKzY1LDggQEAgc3RydWN0IHdhbF90aHJl YWQgezxicj4KJmd0OyAgCSAqIHByaW9yaXR5IHBpcGUgYW5kIERPRVMgTk9UIHN1cHBvcnQgeWll bGQuPGJyPgomZ3Q7ICAJICovPGJyPgomZ3Q7ICAJc3RydWN0IGNwaXBlIHR4X3ByaW9fcGlwZTs8 YnI+CiZndDsgKwkvKiogUmV0dXJuIHBpcGUgZnJvbSAnd2FsJyB0byB0eCcgKi88YnI+CiZndDsg KwlzdHJ1Y3QgY3BpcGUgdHhfcGlwZTs8YnI+PGJyPgpXaHkgZG8geW91IG5lZWQgYSBuZXcgcGlw ZT88L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+U2luY2Ugb3BlcmF0aW9ucyB3 aXRoIGZpbGUgKGxpa2UgZGVsZXRpbmcgb2Ygb2xkIHhsb2dzKSByZXF1aXJlcyB5aWVsZCBhbmQ8 YnI+dHhfcHJpbyBkb2VzIG5vdCBzdXBwb3J0IGl0Ljxicj4ndHgnIGlzIGEgZmliZXIgcG9vbCwg YnV0ICd0eF9wcmlvJyBpcyBhbiBlbmRwb2ludCBhbmQgc3VwcG9ydHMgb25seSBjYWxsYmFja3M8 YnI+d2l0aG91dCAneWllbGQnLjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29s aWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXYgaWQ9IiI+ PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJlYWRtc2ctbXNnIj48ZGl2PjxkaXYgaWQ9InN0eWxl XzE1MzAxOTk1NDEwMDAwMDAwNDE5X0JPRFkiPjxicj4KJmd0OyA8YnI+CiZndDsgK3N0YXRpYyB2 b2lkPGJyPgomZ3Q7ICtnY19zdGF0dXNfdXBkYXRlKHN0cnVjdCBjbXNnICptc2cpPGJyPgomZ3Q7 ICt7PGJyPgomZ3Q7ICsJZ2NfeGRpcl9jbGVhbl9ub3RpZnkoKTs8YnI+CiZndDsgKwlkZWxldGUo bXNnKTs8YnI+PGJyPgpkZWxldGUoKT8hPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9ibG9ja3F1 b3RlPlNvcnJ5LCBteSBmYXVsdC48YnI+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRlci1sZWZ0OjFw eCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4OyI+PGRpdiBp ZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdiBpZD0i c3R5bGVfMTUzMDE5OTU0MTAwMDAwMDA0MTlfQk9EWSI+PGJyPjxicj4KJmd0OyAgezxicj4KJmd0 OyBAQCAtNjU1LDYgKzY2NSwxNSBAQCBkb25lOjxicj4KJmd0OyAgCQkvKiBVbnRpbCB3ZSBjYW4g cGFzcyB0aGUgZXJyb3IgdG8gdHgsIGxvZyBpdCBhbmQgY2xlYXIuICovPGJyPgomZ3Q7ICAJCWVy cm9yX2xvZyhlcnJvcik7PGJyPgomZ3Q7ICAJCWRpYWdfY2xlYXIoZGlhZ19nZXQoKSk7PGJyPgom Z3Q7ICsJCWlmIChlcnJubyA9PSBFTk9TUEMpIHs8YnI+CiZndDsgKwkJCXN0cnVjdCBjbXNnICpt c2cgPTxicj4KJmd0OyArCQkJICAgIChzdHJ1Y3QgY21zZyopY2FsbG9jKDEsIHNpemVvZihzdHJ1 Y3QgY21zZykpOzxicj48YnI+ClBsZWFzZSBjaGVjayBjYWxsb2MoKSByZXR1cm4gdmFsdWUgYW5k IGRvIG5vdGhpbmcgPGJyPgppbiBjYXNlIGl0J3MgTlVMTC48L2Rpdj48L2Rpdj48L2Rpdj48L2Rp dj48L2Jsb2NrcXVvdGU+RG9uZS48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNv bGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIi PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHls ZV8xNTMwMTk5NTQxMDAwMDAwMDQxOV9CT0RZIj48YnI+CiZndDsgKwkJCXN0YXRpYyBjb25zdCBz dHJ1Y3QgY21zZ19ob3Agcm91dGVbXSA9IHs8YnI+CiZndDsgKwkJCQl7Z2Nfc3RhdHVzX3VwZGF0 ZSwgTlVMTH08YnI+CiZndDsgKwkJCX07PGJyPgomZ3Q7ICsJCQljbXNnX2luaXQobXNnLCByb3V0 ZSk7PGJyPgomZ3Q7ICsJCQljcGlwZV9wdXNoKCZhbXA7d2FsX3RocmVhZC50eF9waXBlLCBtc2cp Ozxicj4KJmd0OyArCQl9PGJyPgomZ3Q7IDxicj4KJmd0OyBpbmRleCA4OTVkOTM4ZDUuLjExZjFi N2ZkYyAxMDA2NDQ8YnI+CiZndDsgKy4uLjxicj4KJmd0OyArLS0gYWRkIGEgbGl0dGxlIHRpbWVv dXQgc28gZ2MgY291bGQgZmluaXNoIGpvYjxicj4KJmd0OyArcmVxdWlyZSgnZmliZXInKS5zbGVl cCgwLjAxKTxicj48YnI+ClBsZWFzZSBuZXZlciBzbGVlcCBpbiBhIHRlc3QgY2FzZSB1bmNvbmRp dGlvbmFsbHkuIEl0IGRvZXNuJ3Qgd29yazxicj4KcmVsaWFibHksIGVzcGVjaWFsbHkgaW4gcGFy YWxsZWwgcnVucy48YnI+PGJyPgpUaGUgdGVzdCBjYXNlIHNob3VsZCB0ZXN0IHRoYXQgcmVwbGlj YXMgd2hpY2ggYXJlIHNldmVyZWx5IGJlaGluZCA8YnI+CmFyZSBhYmFuZG9uZWQsIGFuZCByZXBs aWNhcyB3aGljaCBhcmUgcnVubmluZyB3ZWxsIGFyZSBub3QuPC9kaXY+PC9kaXY+PC9kaXY+PC9k aXY+PC9ibG9ja3F1b3RlPk9rLCB3aWxsIHJlcGxhY2UgaXQgd2l0aCBuZXcgdGVzdCBjYXNlLjxi cj48YmxvY2txdW90ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdp bjoxMHB4OyBwYWRkaW5nOjAgMCAwIDEwcHg7Ij48ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhl bHBlciBqcy1yZWFkbXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNTMwMTk5NTQxMDAwMDAw MDQxOV9CT0RZIj48YnI+PGJyPgotLSA8YnI+CktvbnN0YW50aW4gT3NpcG92LCBNb3Njb3csIFJ1 c3NpYSwgPHNwYW4gY2xhc3M9ImpzLXBob25lLW51bWJlciI+KzcgOTAzIDYyNiAyMiAzMjwvc3Bh bj48YnI+PGEgaHJlZj0iaHR0cDovL3RhcmFudG9vbC5pbyIgdGFyZ2V0PSJfYmxhbmsiPmh0dHA6 Ly90YXJhbnRvb2wuaW88L2E+IC0gPGEgaHJlZj0iaHR0cDovL3d3dy50d2l0dGVyLmNvbS9rb3N0 amFfb3NpcG92IiB0YXJnZXQ9Il9ibGFuayI+d3d3LnR3aXR0ZXIuY29tL2tvc3RqYV9vc2lwb3Y8 L2E+PGJyPjxicj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+Cjxicj4KPGJy PkJlc3QgcmVnYXJkcyw8YnI+S29uc3RhbnRpbiBCZWx5YXZza2l5PGJyPmsuYmVseWF2c2tpeUB0 YXJhbnRvb2wub3JnPGJyPjwvQk9EWT48L0hUTUw+Cg== ----ALT--bzxqnYU4tDCfxjKFLRDzDdHTSBUpAt3B1530222942--