From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f117.i.mail.ru (f117.i.mail.ru [94.100.187.113]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 5313B45C305 for ; Sat, 19 Dec 2020 20:41:47 +0300 (MSK) From: =?UTF-8?B?SWx5YSBLb3NhcmV2?= MIME-Version: 1.0 Date: Sat, 19 Dec 2020 20:41:46 +0300 Reply-To: =?UTF-8?B?SWx5YSBLb3NhcmV2?= Message-ID: <1608399706.331971772@f117.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--aD58304a5eCc1f49f7Ae427b8847980C1608399706" In-Reply-To: <1a6b7eea-323e-a9c7-5a6a-c4b48b54648f@tarantool.org> References: <9781cebc8d5e7b2fbf7a38b692b78047169e08b6.1607815050.git.i.kosarev@tarantool.org> <1a6b7eea-323e-a9c7-5a6a-c4b48b54648f@tarantool.org> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v6_3/3=5D_iproto=3A_move_g?= =?utf-8?q?reeting_from_tx_thread_to_iproto?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= Cc: tarantool-patches@dev.tarantool.org ----ALT--aD58304a5eCc1f49f7Ae427b8847980C1608399706 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 CkhpIQrCoApUaGFua3MgZm9yIHlvdXIgcmV2aWV3LgrCoApTZW50IHY3IGNvbnNpZGVyaW5nIHlv dXIgY29tbWVudHMuIFNvbWUgYW5zd2VycyBiZWxvdy4gCj7QodGA0LXQtNCwLCAxNiDQtNC10LrQ sNCx0YDRjyAyMDIwLCAyOjA0ICswMzowMCDQvtGCIFZsYWRpc2xhdiBTaHBpbGV2b3kgPHYuc2hw aWxldm95QHRhcmFudG9vbC5vcmc+Ogo+wqAKPkhpISBUaGFua3MgZm9yIHRoZSBwYXRjaCEKPgo+ U2VlIDQgY29tbWVudHMgYmVsb3cuCj4KPk9uIDEzLjEyLjIwMjAgMDA6MzgsIElseWEgS29zYXJl diB3cm90ZToKPj4gT24gY29ubmVjdGlvbiwgYW4gZXZpbyBzZXJ2aWNlIGNhbGxiYWNrIGlzIGlu dm9rZWQgdG8gYWNjZXB0IGl0LiBUaGUKPj4gbmV4dCBzdGVwIGFmdGVyIGFjY2VwdGFuY2Ugd2Fz IHRvIHByb2Nlc3MgY29ubmVjdGlvbiB0byB0eCB0aHJlYWQKPj4gdGhyb3VnaCBjYnVzLiBUaGlz IG1lYW50IHRoYXQgYW55IGNvbm5lY3Rpb24gaW50ZXJhY3Rpb24gaW52b2x2ZXMgdHgKPj4gdGhy ZWFkIGV2ZW4gYmVmb3JlIHdlIGdldCB0byBzZW5kIHRoZSBncmVldGluZyB0byB0aGUgY2xpZW50 Lgo+PiBDb25zZXF1ZW50bHksIHRoZSBjbGllbnQgbWlnaHQgcmVhY2ggdGhlIGluc3RhbmNlIHdp dGggZW5vcm1vdXMgbnVtYmVyCj4+IG9mIGNvbm5lY3Rpb25zLCBsZWFkaW5nIHRvIHRoZSBmaWxl IGRlc2NyaXB0b3JzIGxpbWl0IGV4aGF1c3Rpb24gaW4KPj4gY2FzZSBvZiB1bnJlc3BvbnNpdmUg dHggdGhyZWFkIChmb3IgZXhhbXBsZSwgd2hlbiBidWlsZGluZyBzZWNvbmRhcnkKPj4gaW5kZXgp IGFuZCBleHRyYSB0eF9wcm9jZXNzX2Nvbm5lY3RzIGFmdGVyd29yZHMsIGV2ZW4gaW4gY2FzZSB0 aGUKPj4gaW5zdGFuY2UgZG9lc24ndCBmYWlsIHdpdGggdG9vIG1hbnkgb3BlbiBmaWxlcyBlcnJv ci4KPj4gVGhpcyBwYXRjaCBhbGxvd3MgaXByb3RvIHRvIGFjY2VwdCBjb25uZWN0aW9uIGFuZCBz ZW5kIGdyZWV0aW5nIGJ5Cj4+IGl0c2VsZi4gVGh1cyB0aGUgY29ubmVjdGlvbiBpcyBiZWluZyBl c3RhYmxpc2hlZCBhbmQgc3RheXMgaW4KPj4gZmV0Y2hfc2NoZW1hIHN0YXRlIHdoaWxlIHR4IHRo cmVhZCBpcyB1bnJlc3BvbnNpdmUuCj4+Cj4+IENsb3NlcyAjMzc3Ngo+PiAtLS0KPj4gc3JjL2Jv eC9pcHJvdG8uY2MgfCAxMTggKysrKysrKysrKysrKy0tLS0tCj4+IHRlc3QvYXBwL2doLTQ3ODct bmV0Ym94LWVtcHR5LWVycm1zZy5yZXN1bHQgfCAxOCAtLS0KPj4gdGVzdC9hcHAvZ2gtNDc4Ny1u ZXRib3gtZW1wdHktZXJybXNnLnRlc3QubHVhIHwgOCAtLQo+PiAzIGZpbGVzIGNoYW5nZWQsIDg4 IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL2Jv eC9pcHJvdG8uY2MgYi9zcmMvYm94L2lwcm90by5jYwo+PiBpbmRleCBmNzMzMGFmMjFkLi5hN2Rh MTE1OTI1IDEwMDY0NAo+PiAtLS0gYS9zcmMvYm94L2lwcm90by5jYwo+PiArKysgYi9zcmMvYm94 L2lwcm90by5jYwo+PiBAQCAtMTA5MSw2ICsxMDkzLDQ2IEBAIGlwcm90b19jb25uZWN0aW9uX29u X291dHB1dChldl9sb29wICpsb29wLCBzdHJ1Y3QgZXZfaW8gKndhdGNoZXIsCj4+IH0KPj4gfQo+ Pgo+PiArc3RhdGljIGludAo+PiAraXByb3RvX2J1Zl9mbHVzaChzdHJ1Y3QgaXByb3RvX2Nvbm5l Y3Rpb24gKmNvbikKPgo+MS4gVGhlIGZ1bmN0aW9uIGxhY2tzIGEgY29tbWVudC4gSXQgaXMgbm90 IHNvIHRyaXZpYWwgd2h5IGRvIHdlCj5oYXZlIDIgZmx1c2ggZnVuY3Rpb25zLiBBbHNvIG1heWJl IHdvcnRoIHJlbmFtaW5nIGl0IHRvCj5pcHJvdG9fY29ubmVjdGlvbl9ncmVldGluZ19mbHVzaC4g QmVjYXVzZSBpdCBpcyBhIG1ldGhvZCBvZgo+J2lwcm90b19jb25uZWN0aW9uJyAodGh1cyB0aGUg cHJlZml4KSwgYW5kIHdvcmtzIHdpdGggdGhlCj5ncmVldGluZyBvbmx5LgpSaWdodCwgZml4ZWQg aW4gdjcgb2YgdGhlIHBhdGNoLgo+Cj4+ICt7Cj4+ICsgc3RydWN0IGlvdmVjIGdyZWV0aW5nOwo+ PiArIGdyZWV0aW5nLmlvdl9iYXNlID0gJmNvbi0+Z3JlZXRpbmdfYnVmOwo+PiArIGdyZWV0aW5n Lmlvdl9sZW4gPSBJUFJPVE9fR1JFRVRJTkdfU0laRTsKPj4gKyBzc2l6ZV90IG53ciA9IHNpb193 cml0ZXYoY29uLT5vdXRwdXQuZmQsICZncmVldGluZywgMSk7Cj4+ICsKPj4gKyBpZiAobndyID4g MCkgewo+PiArIC8qIENvdW50IHN0YXRpc3RpY3MgKi8KPj4gKyBybWVhbl9jb2xsZWN0KHJtZWFu X25ldCwgSVBST1RPX1NFTlQsIG53cik7Cj4+ICsgcmV0dXJuIDE7Cj4+ICsgfSBlbHNlIGlmIChu d3IgPCAwICYmICFzaW9fd291bGRibG9jayhlcnJubykpIHsKPj4gKyByZXR1cm4gLTE7Cj4+ICsg fQo+PiArCj4+ICsgcmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkCj4+ICtpcHJv dG9fY29ubmVjdGlvbl9vbl9ncmVldGluZyhldl9sb29wICpsb29wLCBzdHJ1Y3QgZXZfaW8gKndh dGNoZXIsCj4+ICsgaW50IC8qIHJldmVudHMgKi8pCj4+ICt7Cj4+ICsgc3RydWN0IGlwcm90b19j b25uZWN0aW9uICpjb24gPQo+PiArIChzdHJ1Y3QgaXByb3RvX2Nvbm5lY3Rpb24gKil3YXRjaGVy LT5kYXRhOwo+PiArIGludCByYyA9IGlwcm90b19idWZfZmx1c2goY29uKTsKPj4gKyBpZiAocmMg PD0gMCkgewo+PiArIGlmIChyYyA9PSAwKSB7Cj4+ICsgZXZfaW9fc3RhcnQobG9vcCwgJmNvbi0+ b3V0cHV0KTsKPj4gKyB9IGVsc2Ugewo+PiArIGRpYWdfbG9nKCk7Cj4+ICsgY29uLT5zdGF0ZSA9 IElQUk9UT19DT05ORUNUSU9OX0NMT1NFRDsKPgo+Mi4gSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0 aGlzIHBhcnQgd29ya3MuIFlvdSBkaWRuJ3QgY2xvc2UgdGhlCj5zb2NrZXQsIGFuZCBkaWRuJ3Qg ZGVsZXRlIGl0IGZyb20gbGliZXYuIEJ1dCBJUFJPVE9fQ09OTkVDVElPTl9DTE9TRUQKPmNsZWFy bHkgc3RhdGVzCj4KPi8qKgo+KiBTb2NrZXQgd2FzIGNsb3NlZCwgYSBub3RpZmljYXRpb24gaXMg c2VudCB0byB0aGUgVFgKPiogdGhyZWFkIHRvIGNsb3NlIHRoZSBzZXNzaW9uLgo+Ki8KPgo+VGhl IHdheSB5b3UgY2hhbmdlIGl0IGhlcmUgZG9lcyBub3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uLiBB RkFJVSwKPnRoZSBvbmx5IGxlZ2FsIGZ1bmN0aW9uIGFibGUgdG8gc2V0IHRoaXMgc3RhdGUgaXMK Pmlwcm90b19jb25uZWN0aW9uX2Nsb3NlKCksIGFuZCBpdCBzaG91bGQgcmVtYWluIHNvLgo+Cj5N b3Jlb3ZlciwgSSBzZWUgdGhpcyBzaG91bGQgY3Jhc2ggaW4gYW4gYXNzZXJ0aW9uIGluCj5pcHJv dG9fY29ubmVjdGlvbl9jbG9zZSgpLiBCZWNhdXNlIHRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxs ZWQgYnkKPm5ldF9maW5pc2hfY29ubmVjdCgpIGR1ZSB0byBzdGF0ZSBiZWluZyBDTE9TRUQgKHdo aWNoIGlzIHdlaXJkIC0KPndoeSBpcyBjbG9zZSgpIGNhbGxlZCBpZiB0aGUgc3RhdGUgaXMgYWxy ZWFkeSBDTE9TRUQ/KS4gQnV0IGluc2lkZQo+aXQgaGFzICJhc3NlcnQoY29uLT5zdGF0ZSA9PSBJ UFJPVE9fQ09OTkVDVElPTl9BTElWRSkiIGluIGNhc2UgdGhlCj5ldl93YXRjaGVyIHN0aWxsIGhh cyBhIGRlc2NyaXB0b3IgLSBpdCBzdGlsbCBoYXMsIHNvIGl0IHdpbGwgZ28gdGhlcmUKPmFueSBj cmFzaC4KPgo+RGlkIEkgbWlzcyBzb21ldGhpbmc/ClllcywgbXkgYmFkLiBJdCBkZWZpbml0ZWx5 IG5lZWRzIG5ldyBzdGF0ZS4gVGhlcmUgd2FzIG5vdCBnb2luZyB0byBiZQphbiBhc3NlcnRpb24g ZmFpbCBhcyBsb25nIGFzIGkgc3dpdGNoIGl0IGJhY2ssIGJ1dCBpdCBpcyBzdGlsbCBub3QgZ29v ZC4gRml4ZWQgaW4gdjcuCj4KPj4gKyB9Cj4+ICsgcmV0dXJuOwo+PiArIH0KPj4gKyBldl9pb19z dG9wKGNvbi0+bG9vcCwgJmNvbi0+b3V0cHV0KTsKPj4gKyBldl9pb19pbml0KCZjb24tPm91dHB1 dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0LAo+PiArIGNvbi0+b3V0cHV0LmZkLCBFVl9X UklURSk7Cj4+ICt9Cj4KPjMuIFdoYXQgaWYgc2lvX3dyaXRldigpIGhhcyB3cml0dGVuIG9ubHkg aGFsZiBvZiB0aGUgYnl0ZXM/Cj5Zb3UgZGlkbid0IGNoZWNrIGFuZCBpbW1lZGlhdGVseSBwcm9j ZWVkZWQgdG8gdGhlIG5vcm1hbAo+b3BlcmF0aW9uIG1vZGUuIEJ1dCB0aGUgZ3JlZXRpbmcgd2Fz bid0IHNlbnQgeWV0LiBOb3QgYWxsLgo+Cj5BbHNvIHlvdSBkb24ndCBwcm9wYWdhdGUgaW92X2Jh c2UgaW4gY2FzZSBvbmx5IGEgcGFydCBvZgo+dGhlIGRhdGEgd2FzIHNlbnQuCj4KPllvdSBjYW4g ZWFzaWx5IGNoZWNrIGl0IHVzaW5nIGEgdGVtcG9yYXJ5IGVycm9yIGluamVjdGlvbi4KPkJlZm9y ZSBzaW9fd3JpdGV2KCkgdHJ5IHRvIGluamVjdCBpb3ZfbGVuID0KPm1heChpb3ZfbGVuLCBJUFJP VE9fR1JFRVRJTkdfU0laRSAvIDIpIHRvIGZvcmNlIGl0IHRvIHdvcmsKPmluIDIgaXRlcmF0aW9u cywgYW5kIHlvdSB3aWxsIHNlZSB0aGUgaXNzdWUuCj4KPlBhcnRpYWwgd3JpdGUgaXMgYSByYXJl IHRoaW5nLCBidXQgaXQgaXMgdG90YWxseSByZWFsLiBJdAo+aXMgbm90IHNvbWUga2luZCBvZiBh biBpbXBvc3NpYmxlIHRoaW5nIG9ubHkgZnJvbSB0aGUgYm9va3MuCj5FdmVuIGlmIGl0IGlzIGp1 c3QgMTI4IGJ5dGVzLgpGaXhlZCBpbiB2Ny4KPgo+PiArCj4+IHN0YXRpYyBzdHJ1Y3QgaXByb3Rv X2Nvbm5lY3Rpb24gKgo+PiBpcHJvdG9fY29ubmVjdGlvbl9uZXcoaW50IGZkKQo+PiB7Cj4+IEBA IC0xOTM4LDUwICsxOTgwLDY0IEBAIG5ldF9lbmRfc3Vic2NyaWJlKHN0cnVjdCBjbXNnICptKQo+ PiB9Cj4+Cj4+IC8qKgo+PiAtICogSGFuZHNoYWtlIGEgY29ubmVjdGlvbjogaW52b2tlIHRoZSBv bi1jb25uZWN0IHRyaWdnZXIKPj4gLSAqIGFuZCBwb3NzaWJseSBhdXRoZW50aWNhdGUuIFRyeSB0 byBzZW5kIHRoZSBjbGllbnQgYW4gZXJyb3IKPj4gLSAqIHVwb24gYSBmYWlsdXJlLgo+PiArICog SGFuZHNoYWtlIGEgY29ubmVjdGlvbjogc2VuZCBncmVldGluZyBmb3IgaXQuCj4+ICsgKi8KPj4g K3N0YXRpYyB2b2lkCj4+ICtpcHJvdG9fcHJvY2Vzc19jb25uZWN0KHN0cnVjdCBpcHJvdG9fbXNn ICptc2cpCj4KPjQuIFdoeSBkbyB5b3UgdGFrZSBpcHJvdG9fbXNnIG9iamVjdCBpZiB0aGUgb25s eSB0aGluZyB5b3UgZG8KPndpdGggaXQgaXMgdGFrZSB0aGUgY29ubmVjdGlvbiBvYmplY3Q/IFdv dWxkbid0IGl0IGJlIHNpbXBsZXIKPmFuZCBtb3JlIHVuZGVyc3RhbmRhYmxlLCBpZiBpdCB3b3Vs ZCBiZSBpcHJvdG9fY29ubmVjdGlvbl9zdGFydCgpCj5vciBzb21ldGhpbmcgbGlrZSB0aGF0PyBX aXRoIGFuIGlwcm90b19jb25uZWN0aW9uICogYXJndW1lbnQuCkZpeGVkIGluIHY3Lgo+Cj4+ICt7 Cj4+ICsgc3RydWN0IGlwcm90b19jb25uZWN0aW9uICpjb24gPSBtc2ctPmNvbm5lY3Rpb247Cj4+ ICsgLyoKPj4gKyAqIElOU1RBTkNFX1VVSUQgaXMgZ3VhcmFudGVlZCB0byBiZSBpbml0ZWQgYmVm b3JlIHRoaXMgbW9tZW50Lgo+PiArICogV2Ugc3RhcnQgbGlzdGVuaW5nIGVpdGhlciBpbiBsb2Nh bF9yZWNvdmVyeSgpIG9yIGJvb3RzdHJhcCgpLgo+PiArICogVGhlIElOU1RBTkNFX1VVSUQgaXMg ZW5zdXJlZCB0byBiZSBpbml0ZWQgaW4gdGhlIGJlZ2lubmluZyBvZgo+PiArICogYm90aCBtZXRo b2RzLiBJbiBjYXNlIG9mIGxvY2FsX3JlY292ZXJ5KCkgaXQgaXMgdmVyaWZpZWQgdGhhdAo+PiAr ICogSU5TVEFOQ0VfVVVJRCB3YXMgcmVhZCBmcm9tIHRoZSBzbmFwc2hvdCBpbiBtZW10eF9lbmdp bmVfbmV3KCkuCj4+ICsgKiBJbiBib290c3RyYXAoKSBJTlNUQU5DRV9VVUlEIGlzIGVpdGhlciB0 YWtlbiBmcm9tIHRoZQo+PiArICogaW5zdGFuY2VfdXVpZCBib3guY2Zne30gcGFyYW0gb3IgY3Jl YXRlZCBvbiB0aGUgc3BvdC4KPj4gKyAqLwo+PiArIHJhbmRvbV9ieXRlcyhjb24tPnNhbHQsIElQ Uk9UT19TQUxUX1NJWkUpOwo+PiArIGdyZWV0aW5nX2VuY29kZShjb24tPmdyZWV0aW5nX2J1Ziwg dGFyYW50b29sX3ZlcnNpb25faWQoKSwKPj4gKyAmSU5TVEFOQ0VfVVVJRCwgY29uLT5zYWx0LCBJ UFJPVE9fU0FMVF9TSVpFKTsKPj4gKyBhc3NlcnQoZXZpb19oYXNfZmQoJmNvbi0+b3V0cHV0KSk7 Cj4+ICsgZXZfZmVlZF9ldmVudChjb24tPmxvb3AsICZjb24tPm91dHB1dCwgRVZfV1JJVEUpOwo+ PiArfSAKwqAKwqAKLS0KSWx5YSBLb3NhcmV2CsKg ----ALT--aD58304a5eCc1f49f7Ae427b8847980C1608399706 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+PGRpdj5IaSE8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxkaXY+VGhh bmtzIGZvciB5b3VyIHJldmlldy48YnI+Jm5ic3A7PC9kaXY+PGRpdj5TZW50IHY3IGNvbnNpZGVy aW5nIHlvdXIgY29tbWVudHMuIFNvbWUgYW5zd2VycyBiZWxvdy48L2Rpdj48YmxvY2txdW90ZSBz dHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRkaW5n OjAgMCAwIDEwcHg7Ij7QodGA0LXQtNCwLCAxNiDQtNC10LrQsNCx0YDRjyAyMDIwLCAyOjA0ICsw MzowMCDQvtGCIFZsYWRpc2xhdiBTaHBpbGV2b3kgJmx0O3Yuc2hwaWxldm95QHRhcmFudG9vbC5v cmcmZ3Q7Ojxicj4mbmJzcDs8ZGl2IGlkPSIiPjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFk bXNnLW1zZyI+PGRpdj48ZGl2IGlkPSJzdHlsZV8xNjA4MDczNDgzMDQ0NzkxNzI5N19CT0RZIj5I aSEgVGhhbmtzIGZvciB0aGUgcGF0Y2ghPGJyPjxicj5TZWUgNCBjb21tZW50cyBiZWxvdy48YnI+ PGJyPk9uIDEzLjEyLjIwMjAgMDA6MzgsIElseWEgS29zYXJldiB3cm90ZTo8YnI+Jmd0OyBPbiBj b25uZWN0aW9uLCBhbiBldmlvIHNlcnZpY2UgY2FsbGJhY2sgaXMgaW52b2tlZCB0byBhY2NlcHQg aXQuIFRoZTxicj4mZ3Q7IG5leHQgc3RlcCBhZnRlciBhY2NlcHRhbmNlIHdhcyB0byBwcm9jZXNz IGNvbm5lY3Rpb24gdG8gdHggdGhyZWFkPGJyPiZndDsgdGhyb3VnaCBjYnVzLiBUaGlzIG1lYW50 IHRoYXQgYW55IGNvbm5lY3Rpb24gaW50ZXJhY3Rpb24gaW52b2x2ZXMgdHg8YnI+Jmd0OyB0aHJl YWQgZXZlbiBiZWZvcmUgd2UgZ2V0IHRvIHNlbmQgdGhlIGdyZWV0aW5nIHRvIHRoZSBjbGllbnQu PGJyPiZndDsgQ29uc2VxdWVudGx5LCB0aGUgY2xpZW50IG1pZ2h0IHJlYWNoIHRoZSBpbnN0YW5j ZSB3aXRoIGVub3Jtb3VzIG51bWJlcjxicj4mZ3Q7IG9mIGNvbm5lY3Rpb25zLCBsZWFkaW5nIHRv IHRoZSBmaWxlIGRlc2NyaXB0b3JzIGxpbWl0IGV4aGF1c3Rpb24gaW48YnI+Jmd0OyBjYXNlIG9m IHVucmVzcG9uc2l2ZSB0eCB0aHJlYWQgKGZvciBleGFtcGxlLCB3aGVuIGJ1aWxkaW5nIHNlY29u ZGFyeTxicj4mZ3Q7IGluZGV4KSBhbmQgZXh0cmEgdHhfcHJvY2Vzc19jb25uZWN0cyBhZnRlcndv cmRzLCBldmVuIGluIGNhc2UgdGhlPGJyPiZndDsgaW5zdGFuY2UgZG9lc24ndCBmYWlsIHdpdGgg dG9vIG1hbnkgb3BlbiBmaWxlcyBlcnJvci48YnI+Jmd0OyBUaGlzIHBhdGNoIGFsbG93cyBpcHJv dG8gdG8gYWNjZXB0IGNvbm5lY3Rpb24gYW5kIHNlbmQgZ3JlZXRpbmcgYnk8YnI+Jmd0OyBpdHNl bGYuIFRodXMgdGhlIGNvbm5lY3Rpb24gaXMgYmVpbmcgZXN0YWJsaXNoZWQgYW5kIHN0YXlzIGlu PGJyPiZndDsgZmV0Y2hfc2NoZW1hIHN0YXRlIHdoaWxlIHR4IHRocmVhZCBpcyB1bnJlc3BvbnNp dmUuPGJyPiZndDs8YnI+Jmd0OyBDbG9zZXMgIzM3NzY8YnI+Jmd0OyAtLS08YnI+Jmd0OyBzcmMv Ym94L2lwcm90by5jYyB8IDExOCArKysrKysrKysrKysrLS0tLS08YnI+Jmd0OyB0ZXN0L2FwcC9n aC00Nzg3LW5ldGJveC1lbXB0eS1lcnJtc2cucmVzdWx0IHwgMTggLS0tPGJyPiZndDsgdGVzdC9h cHAvZ2gtNDc4Ny1uZXRib3gtZW1wdHktZXJybXNnLnRlc3QubHVhIHwgOCAtLTxicj4mZ3Q7IDMg ZmlsZXMgY2hhbmdlZCwgODggaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pPGJyPiZndDs8 YnI+Jmd0OyBkaWZmIC0tZ2l0IGEvc3JjL2JveC9pcHJvdG8uY2MgYi9zcmMvYm94L2lwcm90by5j Yzxicj4mZ3Q7IGluZGV4IGY3MzMwYWYyMWQuLmE3ZGExMTU5MjUgMTAwNjQ0PGJyPiZndDsgLS0t IGEvc3JjL2JveC9pcHJvdG8uY2M8YnI+Jmd0OyArKysgYi9zcmMvYm94L2lwcm90by5jYzxicj4m Z3Q7IEBAIC0xMDkxLDYgKzEwOTMsNDYgQEAgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0KGV2 X2xvb3AgKmxvb3AsIHN0cnVjdCBldl9pbyAqd2F0Y2hlciw8YnI+Jmd0OyB9PGJyPiZndDsgfTxi cj4mZ3Q7PGJyPiZndDsgK3N0YXRpYyBpbnQ8YnI+Jmd0OyAraXByb3RvX2J1Zl9mbHVzaChzdHJ1 Y3QgaXByb3RvX2Nvbm5lY3Rpb24gKmNvbik8YnI+PGJyPjEuIFRoZSBmdW5jdGlvbiBsYWNrcyBh IGNvbW1lbnQuIEl0IGlzIG5vdCBzbyB0cml2aWFsIHdoeSBkbyB3ZTxicj5oYXZlIDIgZmx1c2gg ZnVuY3Rpb25zLiBBbHNvIG1heWJlIHdvcnRoIHJlbmFtaW5nIGl0IHRvPGJyPmlwcm90b19jb25u ZWN0aW9uX2dyZWV0aW5nX2ZsdXNoLiBCZWNhdXNlIGl0IGlzIGEgbWV0aG9kIG9mPGJyPidpcHJv dG9fY29ubmVjdGlvbicgKHRodXMgdGhlIHByZWZpeCksIGFuZCB3b3JrcyB3aXRoIHRoZTxicj5n cmVldGluZyBvbmx5LjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48 ZGl2PlJpZ2h0LCBmaXhlZCBpbiB2NyBvZiB0aGUgcGF0Y2guPC9kaXY+PGRpdj48YmxvY2txdW90 ZSBzdHlsZT0iYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICMwODU3QTY7IG1hcmdpbjoxMHB4OyBwYWRk aW5nOjAgMCAwIDEwcHg7Ij48ZGl2PjxkaXYgY2xhc3M9ImpzLWhlbHBlciBqcy1yZWFkbXNnLW1z ZyI+PGRpdj48ZGl2Pjxicj4mZ3Q7ICt7PGJyPiZndDsgKyBzdHJ1Y3QgaW92ZWMgZ3JlZXRpbmc7 PGJyPiZndDsgKyBncmVldGluZy5pb3ZfYmFzZSA9ICZhbXA7Y29uLSZndDtncmVldGluZ19idWY7 PGJyPiZndDsgKyBncmVldGluZy5pb3ZfbGVuID0gSVBST1RPX0dSRUVUSU5HX1NJWkU7PGJyPiZn dDsgKyBzc2l6ZV90IG53ciA9IHNpb193cml0ZXYoY29uLSZndDtvdXRwdXQuZmQsICZhbXA7Z3Jl ZXRpbmcsIDEpOzxicj4mZ3Q7ICs8YnI+Jmd0OyArIGlmIChud3IgJmd0OyAwKSB7PGJyPiZndDsg KyAvKiBDb3VudCBzdGF0aXN0aWNzICovPGJyPiZndDsgKyBybWVhbl9jb2xsZWN0KHJtZWFuX25l dCwgSVBST1RPX1NFTlQsIG53cik7PGJyPiZndDsgKyByZXR1cm4gMTs8YnI+Jmd0OyArIH0gZWxz ZSBpZiAobndyICZsdDsgMCAmYW1wOyZhbXA7ICFzaW9fd291bGRibG9jayhlcnJubykpIHs8YnI+ Jmd0OyArIHJldHVybiAtMTs8YnI+Jmd0OyArIH08YnI+Jmd0OyArPGJyPiZndDsgKyByZXR1cm4g MDs8YnI+Jmd0OyArfTxicj4mZ3Q7ICs8YnI+Jmd0OyArc3RhdGljIHZvaWQ8YnI+Jmd0OyAraXBy b3RvX2Nvbm5lY3Rpb25fb25fZ3JlZXRpbmcoZXZfbG9vcCAqbG9vcCwgc3RydWN0IGV2X2lvICp3 YXRjaGVyLDxicj4mZ3Q7ICsgaW50IC8qIHJldmVudHMgKi8pPGJyPiZndDsgK3s8YnI+Jmd0OyAr IHN0cnVjdCBpcHJvdG9fY29ubmVjdGlvbiAqY29uID08YnI+Jmd0OyArIChzdHJ1Y3QgaXByb3Rv X2Nvbm5lY3Rpb24gKil3YXRjaGVyLSZndDtkYXRhOzxicj4mZ3Q7ICsgaW50IHJjID0gaXByb3Rv X2J1Zl9mbHVzaChjb24pOzxicj4mZ3Q7ICsgaWYgKHJjICZsdDs9IDApIHs8YnI+Jmd0OyArIGlm IChyYyA9PSAwKSB7PGJyPiZndDsgKyBldl9pb19zdGFydChsb29wLCAmYW1wO2Nvbi0mZ3Q7b3V0 cHV0KTs8YnI+Jmd0OyArIH0gZWxzZSB7PGJyPiZndDsgKyBkaWFnX2xvZygpOzxicj4mZ3Q7ICsg Y29uLSZndDtzdGF0ZSA9IElQUk9UT19DT05ORUNUSU9OX0NMT1NFRDs8YnI+PGJyPjIuIEkgZG9u J3QgdW5kZXJzdGFuZCBob3cgdGhpcyBwYXJ0IHdvcmtzLiBZb3UgZGlkbid0IGNsb3NlIHRoZTxi cj5zb2NrZXQsIGFuZCBkaWRuJ3QgZGVsZXRlIGl0IGZyb20gbGliZXYuIEJ1dCBJUFJPVE9fQ09O TkVDVElPTl9DTE9TRUQ8YnI+Y2xlYXJseSBzdGF0ZXM8YnI+PGJyPi8qKjxicj4qIFNvY2tldCB3 YXMgY2xvc2VkLCBhIG5vdGlmaWNhdGlvbiBpcyBzZW50IHRvIHRoZSBUWDxicj4qIHRocmVhZCB0 byBjbG9zZSB0aGUgc2Vzc2lvbi48YnI+Ki88YnI+PGJyPlRoZSB3YXkgeW91IGNoYW5nZSBpdCBo ZXJlIGRvZXMgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbi4gQUZBSVUsPGJyPnRoZSBvbmx5IGxl Z2FsIGZ1bmN0aW9uIGFibGUgdG8gc2V0IHRoaXMgc3RhdGUgaXM8YnI+aXByb3RvX2Nvbm5lY3Rp b25fY2xvc2UoKSwgYW5kIGl0IHNob3VsZCByZW1haW4gc28uPGJyPjxicj5Nb3Jlb3ZlciwgSSBz ZWUgdGhpcyBzaG91bGQgY3Jhc2ggaW4gYW4gYXNzZXJ0aW9uIGluPGJyPmlwcm90b19jb25uZWN0 aW9uX2Nsb3NlKCkuIEJlY2F1c2UgdGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCBieTxicj5u ZXRfZmluaXNoX2Nvbm5lY3QoKSBkdWUgdG8gc3RhdGUgYmVpbmcgQ0xPU0VEICh3aGljaCBpcyB3 ZWlyZCAtPGJyPndoeSBpcyBjbG9zZSgpIGNhbGxlZCBpZiB0aGUgc3RhdGUgaXMgYWxyZWFkeSBD TE9TRUQ/KS4gQnV0IGluc2lkZTxicj5pdCBoYXMgImFzc2VydChjb24tJmd0O3N0YXRlID09IElQ Uk9UT19DT05ORUNUSU9OX0FMSVZFKSIgaW4gY2FzZSB0aGU8YnI+ZXZfd2F0Y2hlciBzdGlsbCBo YXMgYSBkZXNjcmlwdG9yIC0gaXQgc3RpbGwgaGFzLCBzbyBpdCB3aWxsIGdvIHRoZXJlPGJyPmFu eSBjcmFzaC48YnI+PGJyPkRpZCBJIG1pc3Mgc29tZXRoaW5nPzwvZGl2PjwvZGl2PjwvZGl2Pjwv ZGl2PjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PlllcywgbXkgYmFkLiBJdCBkZWZpbml0ZWx5IG5l ZWRzIG5ldyBzdGF0ZS4gVGhlcmUgd2FzIG5vdCBnb2luZyB0byBiZTwvZGl2PjxkaXY+YW4gYXNz ZXJ0aW9uIGZhaWwgYXMgbG9uZyBhcyBpIHN3aXRjaCBpdCBiYWNrLCBidXQgaXQgaXMgc3RpbGwg bm90IGdvb2QuIEZpeGVkIGluIHY3LjwvZGl2PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9ImJvcmRl ci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAgMCAxMHB4 OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+PGRpdj48 YnI+Jmd0OyArIH08YnI+Jmd0OyArIHJldHVybjs8YnI+Jmd0OyArIH08YnI+Jmd0OyArIGV2X2lv X3N0b3AoY29uLSZndDtsb29wLCAmYW1wO2Nvbi0mZ3Q7b3V0cHV0KTs8YnI+Jmd0OyArIGV2X2lv X2luaXQoJmFtcDtjb24tJmd0O291dHB1dCwgaXByb3RvX2Nvbm5lY3Rpb25fb25fb3V0cHV0LDxi cj4mZ3Q7ICsgY29uLSZndDtvdXRwdXQuZmQsIEVWX1dSSVRFKTs8YnI+Jmd0OyArfTxicj48YnI+ My4gV2hhdCBpZiBzaW9fd3JpdGV2KCkgaGFzIHdyaXR0ZW4gb25seSBoYWxmIG9mIHRoZSBieXRl cz88YnI+WW91IGRpZG4ndCBjaGVjayBhbmQgaW1tZWRpYXRlbHkgcHJvY2VlZGVkIHRvIHRoZSBu b3JtYWw8YnI+b3BlcmF0aW9uIG1vZGUuIEJ1dCB0aGUgZ3JlZXRpbmcgd2Fzbid0IHNlbnQgeWV0 LiBOb3QgYWxsLjxicj48YnI+QWxzbyB5b3UgZG9uJ3QgcHJvcGFnYXRlIGlvdl9iYXNlIGluIGNh c2Ugb25seSBhIHBhcnQgb2Y8YnI+dGhlIGRhdGEgd2FzIHNlbnQuPGJyPjxicj5Zb3UgY2FuIGVh c2lseSBjaGVjayBpdCB1c2luZyBhIHRlbXBvcmFyeSBlcnJvciBpbmplY3Rpb24uPGJyPkJlZm9y ZSBzaW9fd3JpdGV2KCkgdHJ5IHRvIGluamVjdCBpb3ZfbGVuID08YnI+bWF4KGlvdl9sZW4sIElQ Uk9UT19HUkVFVElOR19TSVpFIC8gMikgdG8gZm9yY2UgaXQgdG8gd29yazxicj5pbiAyIGl0ZXJh dGlvbnMsIGFuZCB5b3Ugd2lsbCBzZWUgdGhlIGlzc3VlLjxicj48YnI+UGFydGlhbCB3cml0ZSBp cyBhIHJhcmUgdGhpbmcsIGJ1dCBpdCBpcyB0b3RhbGx5IHJlYWwuIEl0PGJyPmlzIG5vdCBzb21l IGtpbmQgb2YgYW4gaW1wb3NzaWJsZSB0aGluZyBvbmx5IGZyb20gdGhlIGJvb2tzLjxicj5FdmVu IGlmIGl0IGlzIGp1c3QgMTI4IGJ5dGVzLjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjwvYmxvY2tx dW90ZT48L2Rpdj48ZGl2PkZpeGVkIGluIHY3LjwvZGl2PjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9 ImJvcmRlci1sZWZ0OjFweCBzb2xpZCAjMDg1N0E2OyBtYXJnaW46MTBweDsgcGFkZGluZzowIDAg MCAxMHB4OyI+PGRpdj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxkaXY+ PGRpdj48YnI+Jmd0OyArPGJyPiZndDsgc3RhdGljIHN0cnVjdCBpcHJvdG9fY29ubmVjdGlvbiAq PGJyPiZndDsgaXByb3RvX2Nvbm5lY3Rpb25fbmV3KGludCBmZCk8YnI+Jmd0OyB7PGJyPiZndDsg QEAgLTE5MzgsNTAgKzE5ODAsNjQgQEAgbmV0X2VuZF9zdWJzY3JpYmUoc3RydWN0IGNtc2cgKm0p PGJyPiZndDsgfTxicj4mZ3Q7PGJyPiZndDsgLyoqPGJyPiZndDsgLSAqIEhhbmRzaGFrZSBhIGNv bm5lY3Rpb246IGludm9rZSB0aGUgb24tY29ubmVjdCB0cmlnZ2VyPGJyPiZndDsgLSAqIGFuZCBw b3NzaWJseSBhdXRoZW50aWNhdGUuIFRyeSB0byBzZW5kIHRoZSBjbGllbnQgYW4gZXJyb3I8YnI+ Jmd0OyAtICogdXBvbiBhIGZhaWx1cmUuPGJyPiZndDsgKyAqIEhhbmRzaGFrZSBhIGNvbm5lY3Rp b246IHNlbmQgZ3JlZXRpbmcgZm9yIGl0Ljxicj4mZ3Q7ICsgKi88YnI+Jmd0OyArc3RhdGljIHZv aWQ8YnI+Jmd0OyAraXByb3RvX3Byb2Nlc3NfY29ubmVjdChzdHJ1Y3QgaXByb3RvX21zZyAqbXNn KTxicj48YnI+NC4gV2h5IGRvIHlvdSB0YWtlIGlwcm90b19tc2cgb2JqZWN0IGlmIHRoZSBvbmx5 IHRoaW5nIHlvdSBkbzxicj53aXRoIGl0IGlzIHRha2UgdGhlIGNvbm5lY3Rpb24gb2JqZWN0PyBX b3VsZG4ndCBpdCBiZSBzaW1wbGVyPGJyPmFuZCBtb3JlIHVuZGVyc3RhbmRhYmxlLCBpZiBpdCB3 b3VsZCBiZSBpcHJvdG9fY29ubmVjdGlvbl9zdGFydCgpPGJyPm9yIHNvbWV0aGluZyBsaWtlIHRo YXQ/IFdpdGggYW4gaXByb3RvX2Nvbm5lY3Rpb24gKiBhcmd1bWVudC48L2Rpdj48L2Rpdj48L2Rp dj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGRpdj5GaXhlZCBpbiB2Ny48L2Rpdj48ZGl2Pjxi bG9ja3F1b3RlIHN0eWxlPSJib3JkZXItbGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEw cHg7IHBhZGRpbmc6MCAwIDAgMTBweDsiPjxkaXY+PGRpdiBjbGFzcz0ianMtaGVscGVyIGpzLXJl YWRtc2ctbXNnIj48ZGl2PjxkaXY+PGJyPiZndDsgK3s8YnI+Jmd0OyArIHN0cnVjdCBpcHJvdG9f Y29ubmVjdGlvbiAqY29uID0gbXNnLSZndDtjb25uZWN0aW9uOzxicj4mZ3Q7ICsgLyo8YnI+Jmd0 OyArICogSU5TVEFOQ0VfVVVJRCBpcyBndWFyYW50ZWVkIHRvIGJlIGluaXRlZCBiZWZvcmUgdGhp cyBtb21lbnQuPGJyPiZndDsgKyAqIFdlIHN0YXJ0IGxpc3RlbmluZyBlaXRoZXIgaW4gbG9jYWxf cmVjb3ZlcnkoKSBvciBib290c3RyYXAoKS48YnI+Jmd0OyArICogVGhlIElOU1RBTkNFX1VVSUQg aXMgZW5zdXJlZCB0byBiZSBpbml0ZWQgaW4gdGhlIGJlZ2lubmluZyBvZjxicj4mZ3Q7ICsgKiBi b3RoIG1ldGhvZHMuIEluIGNhc2Ugb2YgbG9jYWxfcmVjb3ZlcnkoKSBpdCBpcyB2ZXJpZmllZCB0 aGF0PGJyPiZndDsgKyAqIElOU1RBTkNFX1VVSUQgd2FzIHJlYWQgZnJvbSB0aGUgc25hcHNob3Qg aW4gbWVtdHhfZW5naW5lX25ldygpLjxicj4mZ3Q7ICsgKiBJbiBib290c3RyYXAoKSBJTlNUQU5D RV9VVUlEIGlzIGVpdGhlciB0YWtlbiBmcm9tIHRoZTxicj4mZ3Q7ICsgKiBpbnN0YW5jZV91dWlk IGJveC5jZmd7fSBwYXJhbSBvciBjcmVhdGVkIG9uIHRoZSBzcG90Ljxicj4mZ3Q7ICsgKi88YnI+ Jmd0OyArIHJhbmRvbV9ieXRlcyhjb24tJmd0O3NhbHQsIElQUk9UT19TQUxUX1NJWkUpOzxicj4m Z3Q7ICsgZ3JlZXRpbmdfZW5jb2RlKGNvbi0mZ3Q7Z3JlZXRpbmdfYnVmLCB0YXJhbnRvb2xfdmVy c2lvbl9pZCgpLDxicj4mZ3Q7ICsgJmFtcDtJTlNUQU5DRV9VVUlELCBjb24tJmd0O3NhbHQsIElQ Uk9UT19TQUxUX1NJWkUpOzxicj4mZ3Q7ICsgYXNzZXJ0KGV2aW9faGFzX2ZkKCZhbXA7Y29uLSZn dDtvdXRwdXQpKTs8YnI+Jmd0OyArIGV2X2ZlZWRfZXZlbnQoY29uLSZndDtsb29wLCAmYW1wO2Nv bi0mZ3Q7b3V0cHV0LCBFVl9XUklURSk7PGJyPiZndDsgK308L2Rpdj48L2Rpdj48L2Rpdj48L2Rp dj48L2Jsb2NrcXVvdGU+Jm5ic3A7PGRpdj4mbmJzcDs8L2Rpdj48ZGl2IGRhdGEtc2lnbmF0dXJl LXdpZGdldD0iY29udGFpbmVyIj48ZGl2IGRhdGEtc2lnbmF0dXJlLXdpZGdldD0iY29udGVudCI+ PGRpdj4tLTxicj5JbHlhIEtvc2FyZXY8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2PiZuYnNwOzwvZGl2 PjwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--aD58304a5eCc1f49f7Ae427b8847980C1608399706--