From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt1-f198.google.com (mail-qt1-f198.google.com [209.85.160.198]) by kanga.kvack.org (Postfix) with ESMTP id BDED58E0001 for ; Wed, 26 Sep 2018 12:10:18 -0400 (EDT) Received: by mail-qt1-f198.google.com with SMTP id d1-v6so12096341qth.21 for ; Wed, 26 Sep 2018 09:10:18 -0700 (PDT) Received: from smtp-fw-6001.amazon.com (smtp-fw-6001.amazon.com. [52.95.48.154]) by mx.google.com with ESMTPS id m67-v6si4262029qte.64.2018.09.26.09.10.17 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 26 Sep 2018 09:10:17 -0700 (PDT) From: "Um, Taeil" Subject: Re: zswap: use PAGE_SIZE * 2 for compression dst buffer size when calling crypto compression API Date: Wed, 26 Sep 2018 16:10:13 +0000 Message-ID: References: In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: To: Dan Streetman Cc: Linux-MM , Seth Jennings ICAgPiBjb21wcmVzc2VkIHNpemUgPiBzb3VyY2UgYnVmZmVyIHNpemUgaGFzIG5vdGhpbmcgdG8g ZG8gd2l0aCBpdC4gIHRoZQ0KICAgPiBodyBjb21wcmVzc29yIG11c3Qgbm90IGV4Y2VlZCB0aGUg KmRlc3RpbmF0aW9uKiBidWZmZXIgc2l6ZSwgbm8gbWF0dGVyDQogICA+IGhvdyBzbWFsbCBvciBs YXJnZSBpdCBpcy4NCiAgICANCiAgID4gaWYgeW91ciBodyBjb21wcmVzc29yIGNhbid0IGd1YXJh bnRlZSB0aGF0IGl0IHdvbid0IG92ZXJydW4gdGhlIGRlc3QNCiAgID4gYnVmZmVyLCB5b3UgbmVl ZCB0byB1c2UgYSBib3VuY2UgYnVmZmVyIHRoYXQncyBzaXplZCBsYXJnZSBlbm91Z2ggdG8NCiAg ID4gZ3VhcmFudGVlIHlvdXIgaHcgd29uJ3QgY29ycnVwdCBtZW1vcnkuDQoNCiAgID4gYWdhaW4u Li4iZ3JlYXRlciB0aGFuIHNvdXJjZSBkYXRhIHNpemUiIGhhcyBub3RoaW5nIHRvIGRvIHdpdGgg dGhpcy4NCiAgICANCiAgID4gaWYgbHpvIG9yIGx6NCBmYWlsIHRvIGNoZWNrIHRoZSBvdXRwdXQg YnVmZmVyIHNpemUgYmVmb3JlIHdyaXRpbmcgaW50bw0KICAgPiBpdCwgdGhhdCdzIGEgc2VyaW91 cyBidWcgaW4gdGhlaXIgY29kZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLg0KDQpJIHNlZSBhIGRl dmlhdGlvbiBiZXR3ZWVuIHRoZSBjb25zdW1lciBvZiBjb21wcmVzc2lvbiBkcml2ZXIgYW5kIG93 bmVyIG9mIGNvbXByZXNzaW9uIGRyaXZlciBoZXJlLg0KU2VlIGhvdyB6cmFtIGlzIGRlYWxpbmcg d2l0aCB0aGlzIGJ5IGFsd2F5cyBwYXNzaW5nIFBBR0VfU0laRSAqIDIgZm9yIGRlc3RpbmF0aW9u IGxlbmd0aCB3aGVuIGl0IGNhbGxzIGNvbXByZXNzaW9uIGRyaXZlci4NCg0K77u/T24gOS8yNi8x OCwgMjowMSBBTSwgIkRhbiBTdHJlZXRtYW4iIDxkZHN0cmVldEBpZWVlLm9yZz4gd3JvdGU6DQoN CiAgICBPbiBUaHUsIFNlcCAyMCwgMjAxOCBhdCA5OjAxIFBNIFVtLCBUYWVpbCA8dGFlaWx1bUBh bWF6b24uY29tPiB3cm90ZToNCiAgICA+DQogICAgPiAgICA+IGRvIHlvdSBoYXZlIGEgc3BlY2lm aWMgZXhhbXBsZSBvZiBob3cgdGhpcyBjYXVzZXMgYW55IGFjdHVhbCBwcm9ibGVtPw0KICAgID4g WWVzLCBJIGhhdmUgYSBIL1cgYWNjZWxlcmF0b3IgdGhhdCB0cmllcyB0byBmaW5pc2ggY29tcHJl c3Npb24gZXZlbiBpZiBjb21wcmVzc2VkIGRhdGEgc2l6ZSBpcyBncmVhdGVyIHRoYW4gc291cmNl IGRhdGEgc2l6ZS4NCiAgICANCiAgICBjb21wcmVzc2VkIHNpemUgPiBzb3VyY2UgYnVmZmVyIHNp emUgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBpdC4gIHRoZQ0KICAgIGh3IGNvbXByZXNzb3IgbXVz dCBub3QgZXhjZWVkIHRoZSAqZGVzdGluYXRpb24qIGJ1ZmZlciBzaXplLCBubyBtYXR0ZXINCiAg ICBob3cgc21hbGwgb3IgbGFyZ2UgaXQgaXMuDQogICAgDQogICAgaWYgeW91ciBodyBjb21wcmVz c29yIGNhbid0IGd1YXJhbnRlZSB0aGF0IGl0IHdvbid0IG92ZXJydW4gdGhlIGRlc3QNCiAgICBi dWZmZXIsIHlvdSBuZWVkIHRvIHVzZSBhIGJvdW5jZSBidWZmZXIgdGhhdCdzIHNpemVkIGxhcmdl IGVub3VnaCB0bw0KICAgIGd1YXJhbnRlZSB5b3VyIGh3IHdvbid0IGNvcnJ1cHQgbWVtb3J5Lg0K ICAgIA0KICAgIHNlZSB0aGUgcHBjIFBvd2VyTlYgaHcgY29tcHJlc3NvciBkcml2ZXIgZm9yIHJl ZmVyZW5jZS4NCiAgICANCiAgICA+DQogICAgPiAgICA+IHBlcnNvbmFsbHksIGknZCBwcmVmZXIg cmVkdWNpbmcgenN3YXBfZHN0bWVtIGRvd24gdG8gMSBwYWdlIHRvIHNhdmUNCiAgICA+ICAgID4g bWVtb3J5LCBzaW5jZSB0aGVyZSBpcyBubyBjYXNlIHdoZXJlIHpzd2FwIHdvdWxkIGV2ZXIgd2Fu dCB0byB1c2UgYQ0KICAgID4gICAgPiBjb21wcmVzc2VkIHBhZ2UgbGFyZ2VyIHRoYW4gdGhhdC4N CiAgICA+IEkgZG9uJ3QgdGhpbmsgInJlZHVjaW5nIHpzd2FwX2RzdG1lbSBkb3duIHRvIDEgcGFn ZSIgd29ya3MgaW4gdG9kYXkncyBsem8gYW5kIGx6NCBrZXJuZWwgaW1wbGVtZW50YXRpb24uDQog ICAgPiBJZiBJIHJlYWQga2VybmVsJ3MgbHpvLCBsejQgY29kZSBjb3JyZWN0bHksIGl0IGRvZXMg bm90IHN0b3AgY29tcHJlc3Npb24gd2hlbiBjb21wcmVzc2VkIGRhdGEgc2l6ZSBpcyBncmVhdGVy IHRoYW4gc291cmNlIGRhdGEgc2l6ZS4NCiAgICANCiAgICBhZ2Fpbi4uLiJncmVhdGVyIHRoYW4g c291cmNlIGRhdGEgc2l6ZSIgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGlzLg0KICAgIA0KICAg IGlmIGx6byBvciBsejQgZmFpbCB0byBjaGVjayB0aGUgb3V0cHV0IGJ1ZmZlciBzaXplIGJlZm9y ZSB3cml0aW5nIGludG8NCiAgICBpdCwgdGhhdCdzIGEgc2VyaW91cyBidWcgaW4gdGhlaXIgY29k ZSB0aGF0IG5lZWRzIHRvIGJlIGZpeGVkLg0KICAgIA0KICAgID4NCiAgICA+IE9uIDkvMTkvMTgs IDg6NDcgQU0sICJEYW4gU3RyZWV0bWFuIiA8ZGRzdHJlZXRAaWVlZS5vcmc+IHdyb3RlOg0KICAg ID4NCiAgICA+ICAgICBPbiBUdWUsIFNlcCAxOCwgMjAxOCBhdCA3OjQ4IFBNIFVtLCBUYWVpbCA8 dGFlaWx1bUBhbWF6b24uY29tPiB3cm90ZToNCiAgICA+ICAgICA+DQogICAgPiAgICAgPiBXZSBj YW4gdGVsbCB3aGV0aGVyIGNvbXByZXNzZWQgc2l6ZSBpcyBncmVhdGVyIHRoYW4gUEFHRV9TSVpF IGJ5IGxvb2tpbmcgYXQgdGhlIHJldHVybmVkICpkbGVuIHZhbHVlIGZyb20gY3J5cHRvX2NvbXBf Y29tcHJlc3MuIFRoaXMgc2hvdWxkIGJlIGZhaXJseSBlYXN5Lg0KICAgID4gICAgID4gVGhpcyBp cyBhY3R1YWxseSB3aGF0IHpyYW0gaXMgZG9pbmcgdG9kYXkuIHpyYW0gbG9va3MgZm9yICpkbGVu IGFuZCBub3QgdGFrZSB0aGUgY29tcHJlc3NlZCByZXN1bHQgaWYgKmRsZW4gaXMgZ3JlYXRlciB0 aGFuIGNlcnRhaW4gc2l6ZS4NCiAgICA+ICAgICA+IEkgdGhpbmsgZXJyb3JzIGZyb20gY3J5cHRv X2NvbXBfY29tcHJlc3Mgc2hvdWxkIGJlIHJlYWwgZXJyb3JzLg0KICAgID4gICAgID4NCiAgICA+ ICAgICA+IFRvZGF5IGluIGtlcm5lbCBjb21wcmVzc2lvbiBkcml2ZXJzIHN1Y2ggYXMgbHpvIGFu ZCBsejQsIHRoZXkgZG8gbm90IHN0b3AganVzdCBiZWNhdXNlIGNvbXByZXNzaW9uIHJlc3VsdCBz aXplIGlzIGdyZWF0ZXIgdGhhbiBzb3VyY2Ugc2l6ZS4NCiAgICA+ICAgICA+IEFsc28sIHNvbWUg SC9XIGFjY2VsZXJhdG9ycyB3b3VsZCBub3QgaGF2ZSB0aGUgb3B0aW9uIG9mIHN0b3BwaW5nIGNv bXByZXNzaW9uIGp1c3QgYmVjYXVzZSBvZiB0aGUgcmVzdWx0IHNpemUgaXMgZ3JlYXRlciB0aGFu IHNvdXJjZSBzaXplLg0KICAgID4NCiAgICA+ICAgICBkbyB5b3UgaGF2ZSBhIHNwZWNpZmljIGV4 YW1wbGUgb2YgaG93IHRoaXMgY2F1c2VzIGFueSBhY3R1YWwgcHJvYmxlbT8NCiAgICA+DQogICAg PiAgICAgcGVyc29uYWxseSwgaSdkIHByZWZlciByZWR1Y2luZyB6c3dhcF9kc3RtZW0gZG93biB0 byAxIHBhZ2UgdG8gc2F2ZQ0KICAgID4gICAgIG1lbW9yeSwgc2luY2UgdGhlcmUgaXMgbm8gY2Fz ZSB3aGVyZSB6c3dhcCB3b3VsZCBldmVyIHdhbnQgdG8gdXNlIGENCiAgICA+ICAgICBjb21wcmVz c2VkIHBhZ2UgbGFyZ2VyIHRoYW4gdGhhdC4NCiAgICA+DQogICAgPiAgICAgPg0KICAgID4gICAg ID4gVGhhbmsgeW91LA0KICAgID4gICAgID4gVGFlaWwNCiAgICA+ICAgICA+DQogICAgPiAgICAg PiBPbiA5LzE4LzE4LCAyOjQ0IFBNLCAiRGFuIFN0cmVldG1hbiIgPGRkc3RyZWV0QGllZWUub3Jn PiB3cm90ZToNCiAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgT24gVHVlLCBTZXAgMTgsIDIw MTggYXQgMjo1MiBQTSBVbSwgVGFlaWwgPHRhZWlsdW1AYW1hem9uLmNvbT4gd3JvdGU6DQogICAg PiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gUHJvYmxlbSBzdGF0ZW1lbnQ6DQogICAg PiAgICAgPiAgICAgPiAiY29tcHJlc3NlZCBkYXRhIGFyZSBub3QgZnVsbHkgY29waWVkIHRvIGRl c3RpbmF0aW9uIGJ1ZmZlciB3aGVuIGNvbXByZXNzZWQgZGF0YSBzaXplIGlzIGdyZWF0ZXIgdGhh biBzb3VyY2UgZGF0YSINCiAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiBXaHk6 DQogICAgPiAgICAgPiAgICAgPiA1dGggYXJndW1lbnQgb2YgY3J5cHRvX2NvbXBfY29tcHJlc3Mg ZnVuY3Rpb24gaXMgKmRsZW4sIHdoaWNoIHRlbGwgdGhlIGNvbXByZXNzaW9uIGRyaXZlciBob3cg bWFueSBieXRlcyB0aGUgZGVzdGluYXRpb24gYnVmZmVyIHNwYWNlIGlzIGFsbG9jYXRlZCAoYWxs b3dlZCB0byB3cml0ZSBkYXRhKS4NCiAgICA+ICAgICA+ICAgICA+IFRoaXMgKmRsZW4gaXMgaW1w b3J0YW50IGVzcGVjaWFsbHkgZm9yIEgvVyBhY2NlbGVyYXRvciBiYXNlZCBjb21wcmVzc2lvbiBk cml2ZXIgYmVjYXVzZSBpdCBpcyBkYW5nZXJvdXMgaWYgd2UgYWxsb3cgdGhlIEgvVyBhY2NlbGVy YXRvciB0byBhY2Nlc3MgbWVtb3J5IGJleW9uZCAqZHN0ICsgKmRsZW4uDQogICAgPiAgICAgPiAg ICAgPiBOb3RlIHRoYXQgYnVmZmVyIGxvY2F0aW9uIHdvdWxkIGJlIHBhc3NlZCBhcyBwaHlzaWNh bCBhZGRyZXNzLg0KICAgID4gICAgID4gICAgID4gRHVlIHRvIHRoZSBhYm92ZSByZWFzb24sIEgv VyBhY2NlbGVyYXRvciBiYXNlZCBjb21wcmVzc2lvbiBkcml2ZXIgbmVlZCB0byBob25vciAqZGxl biB2YWx1ZSB3aGVuIGl0IHNlcnZlcyBjcnlwdG9fY29tcF9jb21wcmVzcyBBUEkuDQogICAgPiAg ICAgPg0KICAgID4gICAgID4gICAgIGFuZCB0aGF0J3MgZXhhY3RseSB3aGF0IHpzd2FwIHdhbnRz IHRvIGhhcHBlbiAtIGFueSBjb21wcmVzc29yIChodyBvcg0KICAgID4gICAgID4gICAgIHN3KSBz aG91bGQgZmFpbCB3aXRoIGFuIGVycm9yIGNvZGUgKEVOT1NQQyBtYWtlcyB0aGUgbW9zdCBzZW5z ZSwgYnV0DQogICAgPiAgICAgPiAgICAgenN3YXAgZG9lc24ndCBhY3R1YWxseSBjYXJlKSBpZiB0 aGUgY29tcHJlc3NlZCBkYXRhIHNpemUgaXMgbGFyZ2VyDQogICAgPiAgICAgPiAgICAgdGhhbiB0 aGUgcHJvdmlkZWQgZGF0YSBidWZmZXIuDQogICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4g VG9kYXksIHdlIHBhc3Mgc2xlbiA9IFBBR0VfU0laRSBhbmQgKmRsZW49UEFHRV9TSVpFIHRvIGNy eXB0b19jb21wX2NvbXByZXNzIGluIHpzd2FwLmMuDQogICAgPiAgICAgPiAgICAgPiBJZiBjb21w cmVzc2VkIGRhdGEgc2l6ZSBpcyBncmVhdGVyIHRoYW4gc291cmNlICh1bmNvbXByZXNzZWQpIGRh dGEgc2l6ZSwgIEgvVyBhY2NlbGVyYXRvciBjYW5ub3QgY29weSAoZGVsaXZlcikgdGhlIGVudGly ZSBjb21wcmVzc2VkIGRhdGEuDQogICAgPiAgICAgPg0KICAgID4gICAgID4gICAgIElmIHRoZSAi Y29tcHJlc3NlZCIgZGF0YSBpcyBsYXJnZXIgdGhhbiAxIHBhZ2UsIHRoZW4gdGhlcmUgaXMgbm8g cG9pbnQNCiAgICA+ICAgICA+ICAgICBpbiBzdG9yaW5nIHRoZSBwYWdlIGluIHpzd2FwLg0KICAg ID4gICAgID4NCiAgICA+ICAgICA+ICAgICByZW1lbWJlciB0aGF0IHpzd2FwIGlzIGRpZmZlcmVu dCB0aGFuIHpyYW07IGluIHpyYW0sIHRoZXJlJ3Mgbm8gb3RoZXINCiAgICA+ICAgICA+ICAgICBw bGFjZSB0byBzdG9yZSB0aGUgZGF0YS4gIEhvd2V2ZXIsIHdpdGggenN3YXAsIGlmIGNvbXByZXNz aW9uIGZhaWxzIG9yDQogICAgPiAgICAgPiAgICAgaXNuJ3QgZ29vZCwgd2UgY2FuIGp1c3QgcGFz cyB0aGUgdW5jb21wcmVzc2VkIHBhZ2UgZG93biB0byB0aGUgc3dhcA0KICAgID4gICAgID4gICAg IGRldmljZS4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAg ID4gVGhhbmsgeW91LA0KICAgID4gICAgID4gICAgID4gVGFlaWwNCiAgICA+ICAgICA+ICAgICA+ DQogICAgPiAgICAgPiAgICAgPiBPbiA5LzE4LzE4LCA3OjE1IEFNLCAiRGFuIFN0cmVldG1hbiIg PGRkc3RyZWV0QGllZWUub3JnPiB3cm90ZToNCiAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAg PiAgICAgPiAgICAgT24gTW9uLCBTZXAgMTcsIDIwMTggYXQgNzoxMCBQTSBVbSwgVGFlaWwgPHRh ZWlsdW1AYW1hem9uLmNvbT4gd3JvdGU6DQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4g ICAgID4gICAgID4gICAgID4gQ3VycmVudGx5LCB3ZSBhbGxvY2F0ZSBQQUdFX1NJWkUgKiAyIGZv ciB6c3dhcF9kc3RtZW0gd2hpY2ggaXMgdXNlZCBhcyBjb21wcmVzc2lvbiBkZXN0aW5hdGlvbiBi dWZmZXIuDQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4g SG93ZXZlciwgd2UgcGFzcyBvbmx5IGhhbGYgb2YgdGhlIHNpemUgKFBBR0VfU0laRSkgdG8gY3J5 cHRvX2NvbXBfY29tcHJlc3MuDQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4g ICAgID4gICAgID4gVGhpcyBtaWdodCBub3QgYmUgYSBwcm9ibGVtIGZvciBDUFUgYmFzZWQgZXhp c3RpbmcgbHpvLCBsejQgY3J5cHRvIGNvbXByZXNzaW9uIGRyaXZlciBpbXBsYW50YXRpb24uDQog ICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4gSG93ZXZlciwg dGhpcyBjb3VsZCBiZSBhIHByb2JsZW0gZm9yIHNvbWUgSC9XIGFjY2VsZXJhdGlvbiBjb21wcmVz c2lvbiBkcml2ZXJzLCB3aGljaCBob25vciBkZXN0aW5hdGlvbiBidWZmZXIgc2l6ZSB3aGVuIGl0 IHByZXBhcmVzIEgvVyByZXNvdXJjZXMuDQogICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4g ICAgID4gICAgIEhvdyBleGFjdGx5IGNvdWxkIGl0IGJlIGEgcHJvYmxlbT8NCiAgICA+ICAgICA+ ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4g QWN0dWFsbHksIHRoaXMgcGF0Y2ggaXMgYWxpZ25lZCB3aXRoIHdoYXQgenJhbSBpcyBwYXNzaW5n IHdoZW4gaXQgY2FsbHMgY3J5cHRvX2NvbXBfY29tcHJlc3MuDQogICAgPiAgICAgPiAgICAgPiAg ICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4gVGhlIGZvbGxvd2luZyBzaW1wbGUgcGF0Y2gg d2lsbCBzb2x2ZSB0aGlzIHByb2JsZW0uIEkgdGVzdGVkIGl0IHdpdGggZXhpc3RpbmcgY3J5cHRv L2x6by5jIGFuZCBjcnlwdG8vbHo0LmMgY29tcHJlc3Npb24gZHJpdmVyIGFuZCBpdCB3b3JrcyBm aW5lLg0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAgICA+DQog ICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ICAg ICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAgICAgPiAtLS0gbW0venN3YXAuYy5v cmlnICAgICAgIDIwMTgtMDktMTQgMTQ6MzY6MzcuOTg0MTk5MjMyIC0wNzAwDQogICAgPiAgICAg PiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4gKysrIG1tL3pzd2FwLmMgICAg ICAgICAgICAgMjAxOC0wOS0xNCAxNDozNjo1My4zNDAxODk2ODEgLTA3MDANCiAgICA+ICAgICA+ ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAgICAgPiBAQCAtMTAwMSw3ICsxMDAxLDcg QEAgc3RhdGljIGludCB6c3dhcF9mcm9udHN3YXBfc3RvcmUodW5zaWduZQ0KICAgID4gICAgID4g ICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAgICA+ICAgICAgICAgICAgICAgICBzdHJ1 Y3QgenN3YXBfZW50cnkgKmVudHJ5LCAqZHVwZW50cnk7DQogICAgPiAgICAgPiAgICAgPiAgICAg Pg0KICAgID4gICAgID4gICAgID4gICAgID4gICAgICAgICAgICAgICAgIHN0cnVjdCBjcnlwdG9f Y29tcCAqdGZtOw0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAg ICA+ICAgICAgICAgICAgICAgICBpbnQgcmV0Ow0KICAgID4gICAgID4gICAgID4gICAgID4NCiAg ICA+ICAgICA+ICAgICA+ICAgICA+IC0gICAgICAgICAgICAgIHVuc2lnbmVkIGludCBobGVuLCBk bGVuID0gUEFHRV9TSVpFOw0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAg ICA+ICAgICA+ICsgICAgICAgICAgICAgdW5zaWduZWQgaW50IGhsZW4sIGRsZW4gPSBQQUdFX1NJ WkUgKiAyOw0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAgICA+ ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGhhbmRsZSwgdmFsdWU7DQogICAgPiAgICAg PiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4gICAgICAgICAgICAgICAgIGNo YXIgKmJ1ZjsNCiAgICA+ICAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAgICAg PiAgICAgICAgICAgICAgICAgdTggKnNyYywgKmRzdDsNCiAgICA+ICAgICA+ICAgICA+ICAgICA+ DQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAgID4gICAgID4NCiAgICA+ ICAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4g ICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAgPiAg ICAgPiBUaGFuayB5b3UsDQogICAgPiAgICAgPiAgICAgPiAgICAgPg0KICAgID4gICAgID4gICAg ID4gICAgID4gVGFlaWwNCiAgICA+ICAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAgPiAgICAg PiAgICAgPg0KICAgID4gICAgID4gICAgID4NCiAgICA+ICAgICA+ICAgICA+DQogICAgPiAgICAg PiAgICAgPg0KICAgID4gICAgID4NCiAgICA+ICAgICA+DQogICAgPiAgICAgPg0KICAgID4NCiAg ICA+DQogICAgPg0KICAgIA0KICAgIA0KDQo=