From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from f519.i.mail.ru (f519.i.mail.ru [94.100.184.60]) (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 015FF430407 for ; Fri, 21 Aug 2020 11:36:57 +0300 (MSK) From: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= MIME-Version: 1.0 Date: Fri, 21 Aug 2020 11:36:57 +0300 Reply-To: =?UTF-8?B?U2VyZ2UgUGV0cmVua28=?= Message-ID: <1597999017.380175980@f519.i.mail.ru> Content-Type: multipart/alternative; boundary="--ALT--a44DdB89B97be01D8656d290779D3eCd1597999017" In-Reply-To: <20200819213442.1099018-5-gorcunov@gmail.com> References: <20200819213442.1099018-1-gorcunov@gmail.com> <20200819213442.1099018-5-gorcunov@gmail.com> Subject: Re: [Tarantool-patches] =?utf-8?q?=5BPATCH_v9_4/7=5D_qsync=3A_direct_?= =?utf-8?q?write_of_CONFIRM/ROLLBACK_into_a_journal?= List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?Q3lyaWxsIEdvcmN1bm92?= Cc: =?UTF-8?B?dG1s?= , =?UTF-8?B?VmxhZGlzbGF2IFNocGlsZXZveQ==?= ----ALT--a44DdB89B97be01D8656d290779D3eCd1597999017 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: base64 ClRoYW5rcyBmb3IgdGhlIHBhdGNoIQpMR1RNLgrCoArCoCAKPtCn0LXRgtCy0LXRgNCzLCAyMCDQ sNCy0LPRg9GB0YLQsCAyMDIwLCAwOjM1ICswMzowMCDQvtGCIEN5cmlsbCBHb3JjdW5vdiA8Z29y Y3Vub3ZAZ21haWwuY29tPjoKPsKgCj5XaGVuIHdlIG5lZWQgdG8gd3JpdGUgQ09ORklSTSBvciBS T0xMQkFDSyBtZXNzYWdlICh3aGljaCBpcwo+YSBiaW5hcnkgcmVjb3JkIGluIG1zZ3BhY2sgZm9y bWF0KSBpbnRvIGEgam91cm5hbCB3ZSB1c2UgdHhuIGNvZGUKPnRvIGFsbG9jYXRlIGEgbmV3IHRy YW5zYWN0aW9uLCBlbmNvZGUgdGhlcmUgYSBtZXNzYWdlIGFuZCBwYXNzIGl0Cj50byB3YWxrIHRo ZSBsb25nIHR4biBwYXRoIGJlZm9yZSBpdCBoaXQgdGhlIGpvdXJuYWwuIFRoaXMgaXMgbm90Cj5v bmx5IHJlc291cmNlIHdhc3RpbmcgYnV0IGFsc28gc29tZWhvdyBzdHJhbmdlIGZyb20gYXJjaGl0 ZWN0dXJhbAo+cG9pbnQgb2Ygdmlldy4KPgo+SW5zdGVhZCBsZXRzIGVuY29kZSBhIHJlY29yZCBv biB0aGUgc3RhY2sgYW5kIHdyaXRlIGl0IHRvIHRoZSBqb3VybmFsCj5kaXJlY3RseS4KPgo+UGFy dC1vZiAjNTEyOQo+Cj5TaWduZWQtb2ZmLWJ5OiBDeXJpbGwgR29yY3Vub3YgPCBnb3JjdW5vdkBn bWFpbC5jb20gPgo+LS0tCj7CoHNyYy9ib3gvdHhuX2xpbWJvLmMgfCA2NiArKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPsKgMSBmaWxlIGNoYW5nZWQsIDM0IGlu c2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQo+Cj5kaWZmIC0tZ2l0IGEvc3JjL2JveC90eG5f bGltYm8uYyBiL3NyYy9ib3gvdHhuX2xpbWJvLmMKPmluZGV4IGU0NThkYWQ3NS4uNGI5MGQ3ZmE1 IDEwMDY0NAo+LS0tIGEvc3JjL2JveC90eG5fbGltYm8uYwo+KysrIGIvc3JjL2JveC90eG5fbGlt Ym8uYwo+QEAgLTMyLDYgKzMyLDcgQEAKPsKgI2luY2x1ZGUgInR4bl9saW1iby5oIgo+wqAjaW5j bHVkZSAicmVwbGljYXRpb24uaCIKPsKgI2luY2x1ZGUgImlwcm90b19jb25zdGFudHMuaCIKPisj aW5jbHVkZSAiam91cm5hbC5oIgo+wqAKPsKgc3RydWN0IHR4bl9saW1ibyB0eG5fbGltYm87Cj7C oAo+QEAgLTI3Miw2ICsyNzMsMTcgQEAgdHhuX2xpbWJvX3dhaXRfY29tcGxldGUoc3RydWN0IHR4 bl9saW1ibyAqbGltYm8sIHN0cnVjdCB0eG5fbGltYm9fZW50cnkgKmVudHJ5KQo+wqAgcmV0dXJu IDA7Cj7CoH0KPsKgCj4rLyoqCj4rICogQSBjYWxsYmFjayBmb3Igc3luY2hyb25vdXMgd3JpdGU6 IHR4bl9saW1ib193cml0ZV9zeW5jaHJvIGZpYmVyCj4rICogd2FpdGluZyB0byBwcm9jZWVkIG9u Y2UgYSByZWNvcmQgaXMgd3JpdHRlbiB0byBXQUwuCj4rICovCj4rc3RhdGljIHZvaWQKPit0eG5f bGltYm9fd3JpdGVfY2Ioc3RydWN0IGpvdXJuYWxfZW50cnkgKmVudHJ5KQo+K3sKPisgYXNzZXJ0 KGVudHJ5LT5jb21wbGV0ZV9kYXRhICE9IE5VTEwpOwo+KyBmaWJlcl93YWtldXAoZW50cnktPmNv bXBsZXRlX2RhdGEpOwo+K30KPisKPsKgc3RhdGljIHZvaWQKPsKgdHhuX2xpbWJvX3dyaXRlX3N5 bmNocm8oc3RydWN0IHR4bl9saW1ibyAqbGltYm8sIHVpbnQzMl90IHR5cGUsIGludDY0X3QgbHNu KQo+wqB7Cj5AQCAtMjg1LDQ2ICsyOTcsMzYgQEAgdHhuX2xpbWJvX3dyaXRlX3N5bmNocm8oc3Ry dWN0IHR4bl9saW1ibyAqbGltYm8sIHVpbnQzMl90IHR5cGUsIGludDY0X3QgbHNuKQo+wqAKPsKg IC8qCj7CoCAqIFRoaXMgaXMgYSBzeW5jaHJvbm91cyBjb21taXQgc28gd2UgY2FuCj4tICogdXNl IGJvZHkgYW5kIHJvdyBhbGxvY2F0ZWQgb24gYSBzdGFjay4KPisgKiBhbGxvY2F0ZSBldmVyeXRo aW5nIG9uIGEgc3RhY2suCj7CoCAqLwo+wqAgc3RydWN0IHN5bmNocm9fYm9keV9iaW4gYm9keTsK PsKgIHN0cnVjdCB4cm93X2hlYWRlciByb3c7Cj4tIHN0cnVjdCByZXF1ZXN0IHJlcXVlc3QgPSB7 Cj4tIC5oZWFkZXIgPSAmcm93LAo+LSB9Owo+KyBjaGFyIGJ1ZltzaXplb2Yoc3RydWN0IGpvdXJu YWxfZW50cnkpICsKPisgc2l6ZW9mKHN0cnVjdCB4cm93X2hlYWRlciAqKV07Cj7CoAo+LSBzdHJ1 Y3QgdHhuICp0eG4gPSB0eG5fYmVnaW4oKTsKPi0gaWYgKHR4biA9PSBOVUxMKQo+LSBnb3RvIHJv bGxiYWNrOwo+KyBzdHJ1Y3Qgam91cm5hbF9lbnRyeSAqZW50cnkgPSAoc3RydWN0IGpvdXJuYWxf ZW50cnkgKilidWY7Cj4rIGVudHJ5LT5yb3dzWzBdID0gJnJvdzsKPsKgCj7CoCB4cm93X2VuY29k ZV9zeW5jaHJvKCZyb3csICZib2R5LCAmcmVxKTsKPsKgCj4tIC8qCj4tICogVGhpcyBpcyBub3Qg cmVhbGx5IGEgdHJhbnNhY3Rpb24uIEl0IGp1c3QgdXNlcyB0eG4gQVBJCj4tICogdG8gcHV0IHRo ZSBkYXRhIGludG8gV0FMLiBBbmQgb2J2aW91c2x5IGl0IHNob3VsZCBub3QKPi0gKiBnbyB0byB0 aGUgbGltYm8gYW5kIGJsb2NrIG9uIHRoZSB2ZXJ5IHNhbWUgc3luYwo+LSAqIHRyYW5zYWN0aW9u IHdoaWNoIGl0IHRyaWVzIHRvIGNvbmZpcm0gbm93Lgo+LSAqLwo+LSB0eG5fc2V0X2ZsYWcodHhu LCBUWE5fRk9SQ0VfQVNZTkMpOwo+LQo+LSBpZiAodHhuX2JlZ2luX3N0bXQodHhuLCBOVUxMKSAh PSAwKQo+LSBnb3RvIHJvbGxiYWNrOwo+LSBpZiAodHhuX2NvbW1pdF9zdG10KHR4biwgJnJlcXVl c3QpICE9IDApCj4tIGdvdG8gcm9sbGJhY2s7Cj4tIGlmICh0eG5fY29tbWl0KHR4bikgIT0gMCkK Pi0gZ290byByb2xsYmFjazsKPi0gcmV0dXJuOwo+KyBqb3VybmFsX2VudHJ5X2NyZWF0ZShlbnRy eSwgMSwgeHJvd19hcHByb3hfbGVuKCZyb3cpLAo+KyB0eG5fbGltYm9fd3JpdGVfY2IsIGZpYmVy KCkpOwo+wqAKPi1yb2xsYmFjazoKPi0gLyoKPi0gKiBYWFg6IHRoZSBzdHViIGlzIHN1cHBvc2Vk IHRvIGJlIHJlbW92ZWQgb25jZSBpdCBpcyBkZWZpbmVkIHdoYXQgdG8gZG8KPi0gKiB3aGVuIGEg c3luY2hybyByZXF1ZXN0IFdBTCB3cml0ZSBmYWlscy4gT25lIG9mIHRoZSBwb3NzaWJsZQo+LSAq IHNvbHV0aW9uczogbG9nIHRoZSBlcnJvciwga2VlcCB0aGUgbGltYm8gcXVldWUgYXMgaXMgYW5k IHByb2JhYmx5IHB1dAo+LSAqIGluIHJvbGxiYWNrIG1vZGUuIFRoZW4gcHJvdmlkZSBhIGhvb2sg dG8gY2FsbCBtYW51YWxseSB3aGVuIFdBTAo+LSAqIHByb2JsZW1zIGFyZSBmaXhlZC4gT3IgcmV0 cnkgYXV0b21hdGljYWxseSB3aXRoIHNvbWUgcGVyaW9kLgo+LSAqLwo+LSBwYW5pYygiQ291bGQg bm90IHdyaXRlIGEgc3luY2hybyByZXF1ZXN0IHRvIFdBTDogbHNuID0gJWxsZCwgdHlwZSA9ICIK Pi0gIiVzXG4iLCBsc24sIGlwcm90b190eXBlX25hbWUodHlwZSkpOwo+KyBpZiAoam91cm5hbF93 cml0ZShlbnRyeSkgIT0gMCB8fCBlbnRyeS0+cmVzIDwgMCkgewo+KyBkaWFnX3NldChDbGllbnRF cnJvciwgRVJfV0FMX0lPKTsKPisgZGlhZ19sb2coKTsKPisgLyoKPisgKiBYWFg6IHRoZSBzdHVi IGlzIHN1cHBvc2VkIHRvIGJlIHJlbW92ZWQgb25jZSBpdCBpcyBkZWZpbmVkCj4rICogd2hhdCB0 byBkbyB3aGVuIGEgc3luY2hybyByZXF1ZXN0IFdBTCB3cml0ZSBmYWlscy4gT25lIG9mCj4rICog dGhlIHBvc3NpYmxlIHNvbHV0aW9uczogbG9nIHRoZSBlcnJvciwga2VlcCB0aGUgbGltYm8KPisg KiBxdWV1ZSBhcyBpcyBhbmQgcHJvYmFibHkgcHV0IGluIHJvbGxiYWNrIG1vZGUuIFRoZW4KPisg KiBwcm92aWRlIGEgaG9vayB0byBjYWxsIG1hbnVhbGx5IHdoZW4gV0FMIHByb2JsZW1zIGFyZSBm aXhlZC4KPisgKiBPciByZXRyeSBhdXRvbWF0aWNhbGx5IHdpdGggc29tZSBwZXJpb2QuCj4rICov Cj4rIHBhbmljKCJDb3VsZCBub3Qgd3JpdGUgYSBzeW5jaHJvIHJlcXVlc3QgdG8gV0FMOiAiCj4r ICJsc24gPSAlbGxkLCB0eXBlID0gJXNcbiIsIGxzbiwKPisgdHlwZSA9PSBJUFJPVE9fQ09ORklS TSA/ICJDT05GSVJNIiA6ICJST0xMQkFDSyIpOwo+KyB9Cj7CoH0KPsKgCj7CoC8qKgo+LS0KPjIu MjYuMgrCoArCoAotLQpTZXJnZcKgUGV0cmVua28gwqAKwqA= ----ALT--a44DdB89B97be01D8656d290779D3eCd1597999017 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: base64 CjxIVE1MPjxCT0RZPjxkaXY+VGhhbmtzIGZvciB0aGUgcGF0Y2ghPGJyPkxHVE0uPC9kaXY+PGRp dj4mbmJzcDs8L2Rpdj48ZGl2PiZuYnNwOzwvZGl2PjxibG9ja3F1b3RlIHN0eWxlPSJib3JkZXIt bGVmdDoxcHggc29saWQgIzA4NTdBNjsgbWFyZ2luOjEwcHg7IHBhZGRpbmc6MCAwIDAgMTBweDsi PtCn0LXRgtCy0LXRgNCzLCAyMCDQsNCy0LPRg9GB0YLQsCAyMDIwLCAwOjM1ICswMzowMCDQvtGC IEN5cmlsbCBHb3JjdW5vdiAmbHQ7Z29yY3Vub3ZAZ21haWwuY29tJmd0Ozo8YnI+Jm5ic3A7PGRp diBpZD0iIj48ZGl2IGNsYXNzPSJqcy1oZWxwZXIganMtcmVhZG1zZy1tc2ciPjxzdHlsZSB0eXBl PSJ0ZXh0L2NzcyI+PC9zdHlsZT48ZGl2PjxkaXYgaWQ9InN0eWxlXzE1OTc4NzI5NDkyMDQxNjYw MzYwX0JPRFkiPldoZW4gd2UgbmVlZCB0byB3cml0ZSBDT05GSVJNIG9yIFJPTExCQUNLIG1lc3Nh Z2UgKHdoaWNoIGlzPGJyPmEgYmluYXJ5IHJlY29yZCBpbiBtc2dwYWNrIGZvcm1hdCkgaW50byBh IGpvdXJuYWwgd2UgdXNlIHR4biBjb2RlPGJyPnRvIGFsbG9jYXRlIGEgbmV3IHRyYW5zYWN0aW9u LCBlbmNvZGUgdGhlcmUgYSBtZXNzYWdlIGFuZCBwYXNzIGl0PGJyPnRvIHdhbGsgdGhlIGxvbmcg dHhuIHBhdGggYmVmb3JlIGl0IGhpdCB0aGUgam91cm5hbC4gVGhpcyBpcyBub3Q8YnI+b25seSBy ZXNvdXJjZSB3YXN0aW5nIGJ1dCBhbHNvIHNvbWVob3cgc3RyYW5nZSBmcm9tIGFyY2hpdGVjdHVy YWw8YnI+cG9pbnQgb2Ygdmlldy48YnI+PGJyPkluc3RlYWQgbGV0cyBlbmNvZGUgYSByZWNvcmQg b24gdGhlIHN0YWNrIGFuZCB3cml0ZSBpdCB0byB0aGUgam91cm5hbDxicj5kaXJlY3RseS48YnI+ PGJyPlBhcnQtb2YgIzUxMjk8YnI+PGJyPlNpZ25lZC1vZmYtYnk6IEN5cmlsbCBHb3JjdW5vdiAm bHQ7PGEgaHJlZj0iL2NvbXBvc2U/VG89Z29yY3Vub3ZAZ21haWwuY29tIj5nb3JjdW5vdkBnbWFp bC5jb208L2E+Jmd0Ozxicj4tLS08YnI+Jm5ic3A7c3JjL2JveC90eG5fbGltYm8uYyB8IDY2ICsr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4mbmJzcDsxIGZp bGUgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pPGJyPjxicj5kaWZm IC0tZ2l0IGEvc3JjL2JveC90eG5fbGltYm8uYyBiL3NyYy9ib3gvdHhuX2xpbWJvLmM8YnI+aW5k ZXggZTQ1OGRhZDc1Li40YjkwZDdmYTUgMTAwNjQ0PGJyPi0tLSBhL3NyYy9ib3gvdHhuX2xpbWJv LmM8YnI+KysrIGIvc3JjL2JveC90eG5fbGltYm8uYzxicj5AQCAtMzIsNiArMzIsNyBAQDxicj4m bmJzcDsjaW5jbHVkZSAidHhuX2xpbWJvLmgiPGJyPiZuYnNwOyNpbmNsdWRlICJyZXBsaWNhdGlv bi5oIjxicj4mbmJzcDsjaW5jbHVkZSAiaXByb3RvX2NvbnN0YW50cy5oIjxicj4rI2luY2x1ZGUg ImpvdXJuYWwuaCI8YnI+Jm5ic3A7PGJyPiZuYnNwO3N0cnVjdCB0eG5fbGltYm8gdHhuX2xpbWJv Ozxicj4mbmJzcDs8YnI+QEAgLTI3Miw2ICsyNzMsMTcgQEAgdHhuX2xpbWJvX3dhaXRfY29tcGxl dGUoc3RydWN0IHR4bl9saW1ibyAqbGltYm8sIHN0cnVjdCB0eG5fbGltYm9fZW50cnkgKmVudHJ5 KTxicj4mbmJzcDsgcmV0dXJuIDA7PGJyPiZuYnNwO308YnI+Jm5ic3A7PGJyPisvKio8YnI+KyAq IEEgY2FsbGJhY2sgZm9yIHN5bmNocm9ub3VzIHdyaXRlOiB0eG5fbGltYm9fd3JpdGVfc3luY2hy byBmaWJlcjxicj4rICogd2FpdGluZyB0byBwcm9jZWVkIG9uY2UgYSByZWNvcmQgaXMgd3JpdHRl biB0byBXQUwuPGJyPisgKi88YnI+K3N0YXRpYyB2b2lkPGJyPit0eG5fbGltYm9fd3JpdGVfY2Io c3RydWN0IGpvdXJuYWxfZW50cnkgKmVudHJ5KTxicj4rezxicj4rIGFzc2VydChlbnRyeS0mZ3Q7 Y29tcGxldGVfZGF0YSAhPSBOVUxMKTs8YnI+KyBmaWJlcl93YWtldXAoZW50cnktJmd0O2NvbXBs ZXRlX2RhdGEpOzxicj4rfTxicj4rPGJyPiZuYnNwO3N0YXRpYyB2b2lkPGJyPiZuYnNwO3R4bl9s aW1ib193cml0ZV9zeW5jaHJvKHN0cnVjdCB0eG5fbGltYm8gKmxpbWJvLCB1aW50MzJfdCB0eXBl LCBpbnQ2NF90IGxzbik8YnI+Jm5ic3A7ezxicj5AQCAtMjg1LDQ2ICsyOTcsMzYgQEAgdHhuX2xp bWJvX3dyaXRlX3N5bmNocm8oc3RydWN0IHR4bl9saW1ibyAqbGltYm8sIHVpbnQzMl90IHR5cGUs IGludDY0X3QgbHNuKTxicj4mbmJzcDs8YnI+Jm5ic3A7IC8qPGJyPiZuYnNwOyAqIFRoaXMgaXMg YSBzeW5jaHJvbm91cyBjb21taXQgc28gd2UgY2FuPGJyPi0gKiB1c2UgYm9keSBhbmQgcm93IGFs bG9jYXRlZCBvbiBhIHN0YWNrLjxicj4rICogYWxsb2NhdGUgZXZlcnl0aGluZyBvbiBhIHN0YWNr Ljxicj4mbmJzcDsgKi88YnI+Jm5ic3A7IHN0cnVjdCBzeW5jaHJvX2JvZHlfYmluIGJvZHk7PGJy PiZuYnNwOyBzdHJ1Y3QgeHJvd19oZWFkZXIgcm93Ozxicj4tIHN0cnVjdCByZXF1ZXN0IHJlcXVl c3QgPSB7PGJyPi0gLmhlYWRlciA9ICZhbXA7cm93LDxicj4tIH07PGJyPisgY2hhciBidWZbc2l6 ZW9mKHN0cnVjdCBqb3VybmFsX2VudHJ5KSArPGJyPisgc2l6ZW9mKHN0cnVjdCB4cm93X2hlYWRl ciAqKV07PGJyPiZuYnNwOzxicj4tIHN0cnVjdCB0eG4gKnR4biA9IHR4bl9iZWdpbigpOzxicj4t IGlmICh0eG4gPT0gTlVMTCk8YnI+LSBnb3RvIHJvbGxiYWNrOzxicj4rIHN0cnVjdCBqb3VybmFs X2VudHJ5ICplbnRyeSA9IChzdHJ1Y3Qgam91cm5hbF9lbnRyeSAqKWJ1Zjs8YnI+KyBlbnRyeS0m Z3Q7cm93c1swXSA9ICZhbXA7cm93Ozxicj4mbmJzcDs8YnI+Jm5ic3A7IHhyb3dfZW5jb2RlX3N5 bmNocm8oJmFtcDtyb3csICZhbXA7Ym9keSwgJmFtcDtyZXEpOzxicj4mbmJzcDs8YnI+LSAvKjxi cj4tICogVGhpcyBpcyBub3QgcmVhbGx5IGEgdHJhbnNhY3Rpb24uIEl0IGp1c3QgdXNlcyB0eG4g QVBJPGJyPi0gKiB0byBwdXQgdGhlIGRhdGEgaW50byBXQUwuIEFuZCBvYnZpb3VzbHkgaXQgc2hv dWxkIG5vdDxicj4tICogZ28gdG8gdGhlIGxpbWJvIGFuZCBibG9jayBvbiB0aGUgdmVyeSBzYW1l IHN5bmM8YnI+LSAqIHRyYW5zYWN0aW9uIHdoaWNoIGl0IHRyaWVzIHRvIGNvbmZpcm0gbm93Ljxi cj4tICovPGJyPi0gdHhuX3NldF9mbGFnKHR4biwgVFhOX0ZPUkNFX0FTWU5DKTs8YnI+LTxicj4t IGlmICh0eG5fYmVnaW5fc3RtdCh0eG4sIE5VTEwpICE9IDApPGJyPi0gZ290byByb2xsYmFjazs8 YnI+LSBpZiAodHhuX2NvbW1pdF9zdG10KHR4biwgJmFtcDtyZXF1ZXN0KSAhPSAwKTxicj4tIGdv dG8gcm9sbGJhY2s7PGJyPi0gaWYgKHR4bl9jb21taXQodHhuKSAhPSAwKTxicj4tIGdvdG8gcm9s bGJhY2s7PGJyPi0gcmV0dXJuOzxicj4rIGpvdXJuYWxfZW50cnlfY3JlYXRlKGVudHJ5LCAxLCB4 cm93X2FwcHJveF9sZW4oJmFtcDtyb3cpLDxicj4rIHR4bl9saW1ib193cml0ZV9jYiwgZmliZXIo KSk7PGJyPiZuYnNwOzxicj4tcm9sbGJhY2s6PGJyPi0gLyo8YnI+LSAqIFhYWDogdGhlIHN0dWIg aXMgc3VwcG9zZWQgdG8gYmUgcmVtb3ZlZCBvbmNlIGl0IGlzIGRlZmluZWQgd2hhdCB0byBkbzxi cj4tICogd2hlbiBhIHN5bmNocm8gcmVxdWVzdCBXQUwgd3JpdGUgZmFpbHMuIE9uZSBvZiB0aGUg cG9zc2libGU8YnI+LSAqIHNvbHV0aW9uczogbG9nIHRoZSBlcnJvciwga2VlcCB0aGUgbGltYm8g cXVldWUgYXMgaXMgYW5kIHByb2JhYmx5IHB1dDxicj4tICogaW4gcm9sbGJhY2sgbW9kZS4gVGhl biBwcm92aWRlIGEgaG9vayB0byBjYWxsIG1hbnVhbGx5IHdoZW4gV0FMPGJyPi0gKiBwcm9ibGVt cyBhcmUgZml4ZWQuIE9yIHJldHJ5IGF1dG9tYXRpY2FsbHkgd2l0aCBzb21lIHBlcmlvZC48YnI+ LSAqLzxicj4tIHBhbmljKCJDb3VsZCBub3Qgd3JpdGUgYSBzeW5jaHJvIHJlcXVlc3QgdG8gV0FM OiBsc24gPSAlbGxkLCB0eXBlID0gIjxicj4tICIlc1xuIiwgbHNuLCBpcHJvdG9fdHlwZV9uYW1l KHR5cGUpKTs8YnI+KyBpZiAoam91cm5hbF93cml0ZShlbnRyeSkgIT0gMCB8fCBlbnRyeS0mZ3Q7 cmVzICZsdDsgMCkgezxicj4rIGRpYWdfc2V0KENsaWVudEVycm9yLCBFUl9XQUxfSU8pOzxicj4r IGRpYWdfbG9nKCk7PGJyPisgLyo8YnI+KyAqIFhYWDogdGhlIHN0dWIgaXMgc3VwcG9zZWQgdG8g YmUgcmVtb3ZlZCBvbmNlIGl0IGlzIGRlZmluZWQ8YnI+KyAqIHdoYXQgdG8gZG8gd2hlbiBhIHN5 bmNocm8gcmVxdWVzdCBXQUwgd3JpdGUgZmFpbHMuIE9uZSBvZjxicj4rICogdGhlIHBvc3NpYmxl IHNvbHV0aW9uczogbG9nIHRoZSBlcnJvciwga2VlcCB0aGUgbGltYm88YnI+KyAqIHF1ZXVlIGFz IGlzIGFuZCBwcm9iYWJseSBwdXQgaW4gcm9sbGJhY2sgbW9kZS4gVGhlbjxicj4rICogcHJvdmlk ZSBhIGhvb2sgdG8gY2FsbCBtYW51YWxseSB3aGVuIFdBTCBwcm9ibGVtcyBhcmUgZml4ZWQuPGJy PisgKiBPciByZXRyeSBhdXRvbWF0aWNhbGx5IHdpdGggc29tZSBwZXJpb2QuPGJyPisgKi88YnI+ KyBwYW5pYygiQ291bGQgbm90IHdyaXRlIGEgc3luY2hybyByZXF1ZXN0IHRvIFdBTDogIjxicj4r ICJsc24gPSAlbGxkLCB0eXBlID0gJXNcbiIsIGxzbiw8YnI+KyB0eXBlID09IElQUk9UT19DT05G SVJNID8gIkNPTkZJUk0iIDogIlJPTExCQUNLIik7PGJyPisgfTxicj4mbmJzcDt9PGJyPiZuYnNw Ozxicj4mbmJzcDsvKio8YnI+LS08YnI+Mi4yNi4yPC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9i bG9ja3F1b3RlPjxkaXY+PGRpdj4mbmJzcDs8ZGl2PiZuYnNwOzwvZGl2PjxkaXY+PGRpdj4tLTxi cj5TZXJnZSZuYnNwO1BldHJlbmtvPHNwYW4gaWQ9ImNrZV9ibV80MDNFIiBzdHlsZT0iZGlzcGxh eTogbm9uZTsiPiZuYnNwOzwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2PiZuYnNw OzwvZGl2PjwvQk9EWT48L0hUTUw+Cg== ----ALT--a44DdB89B97be01D8656d290779D3eCd1597999017--