From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id B3AB1C6FD18 for ; Tue, 18 Apr 2023 12:54:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232256AbjDRMyr (ORCPT ); Tue, 18 Apr 2023 08:54:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232200AbjDRMyr (ORCPT ); Tue, 18 Apr 2023 08:54:47 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3698416F8D for ; Tue, 18 Apr 2023 05:53:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1681822438; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=V1azGyK+lZ3r66cWgCWTz12+p/pO+5NAFJlCKW7vK+0=; b=Nhi+tu4PCmXDWTHod+c/TeGLT6UVbr215qWQ4N8qbdEWrs+XGgHZVb1GqZns/MKv+4XrvK r5crGhQqNkc9nW5SgiBS0YoqesJaxvmjnC1B08pNYFRRw2ggS733p5czvP7xnfH8hqzA+7 nqt14v/KxSEgAKUNZfaOXIbKECHTG3M= Received: from mail-lj1-f200.google.com (mail-lj1-f200.google.com [209.85.208.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-390-yUMu47fgOyeyBEK_X0mK-w-1; Tue, 18 Apr 2023 08:53:55 -0400 X-MC-Unique: yUMu47fgOyeyBEK_X0mK-w-1 Received: by mail-lj1-f200.google.com with SMTP id f26-20020a05651c03da00b002a8bb288462so929360ljp.22 for ; Tue, 18 Apr 2023 05:53:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681822433; x=1684414433; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=V1azGyK+lZ3r66cWgCWTz12+p/pO+5NAFJlCKW7vK+0=; b=NjhCKF51ihe+o3DnMer8yVBBaD/SIa71xwL6pqr4cxSDv8EAc9hxjxvH5PqDPBf3tU uTkG9IQlQThnCH+Wzmt09qb57xpS86E4pBqGAPGsDBj6yRa1up+PMHd+OIKscJ4KnNEq Jisw+estVsb6m8c1up8Nw/hmkEnp8GTLym1eV+sKyZh2jxhW58Khj67CAwr18OZ3qMZw Ax/iegXq3xLT4E3P4JRfbA/z6KaK53nldlUoiOcJ2QmLdwP/NnepAXT1sTSeA7ibH6/q C0/B4dDRBbOTDRglWLspAoLOlbpn0et491+K/NwrXIMyYaYGAPw1zmtM0NCBnilP3Ppq LySg== X-Gm-Message-State: AAQBX9e6zbZ8/SwahxUBIZM8ljA4QH1TrgtxXee5EzguuhYI7XReO5CJ zLVGtaQzgUSgcBCo9Vfm62pipRb92xcD+fPIgbJGMIw2BXUXk1tWU2RDSvA1FfxibQwoT4BMf/B cvXI4fvJPZAns9J0FkF5r+BfpjA== X-Received: by 2002:a2e:3309:0:b0:293:4ff0:678a with SMTP id d9-20020a2e3309000000b002934ff0678amr667403ljc.22.1681822433646; Tue, 18 Apr 2023 05:53:53 -0700 (PDT) X-Google-Smtp-Source: AKy350bdN1/LQXVWyWV/X12cRh0kTfPOAbn5SjGOND/itCYJ2g9J5zDtQ9DuVtTnNb2UPjCV9Rhl2g== X-Received: by 2002:a2e:3309:0:b0:293:4ff0:678a with SMTP id d9-20020a2e3309000000b002934ff0678amr667399ljc.22.1681822433357; Tue, 18 Apr 2023 05:53:53 -0700 (PDT) Received: from greebo.mooo.com (c-e6a5e255.022-110-73746f36.bbcust.telenor.se. [85.226.165.230]) by smtp.gmail.com with ESMTPSA id j13-20020a2eb70d000000b00295bbe17b46sm2567363ljo.132.2023.04.18.05.53.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Apr 2023 05:53:52 -0700 (PDT) Message-ID: <274674bf64dbe4a7b754c92949090389d41999fc.camel@redhat.com> Subject: Re: [PATCH 4/5] ovl: prepare for lazy lookup of lowerdata inode From: Alexander Larsson To: Amir Goldstein , Miklos Szeredi Cc: linux-unionfs@vger.kernel.org Date: Tue, 18 Apr 2023 14:53:52 +0200 In-Reply-To: <20230412135412.1684197-5-amir73il@gmail.com> References: <20230412135412.1684197-1-amir73il@gmail.com> <20230412135412.1684197-5-amir73il@gmail.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 (3.46.4-1.fc37) MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-unionfs@vger.kernel.org T24gV2VkLCAyMDIzLTA0LTEyIGF0IDE2OjU0ICswMzAwLCBBbWlyIEdvbGRzdGVpbiB3cm90ZToK PiBNYWtlIHRoZSBjb2RlIGhhbmRsZSB0aGUgY2FzZSBvZiBudW1sb3dlciA+IDEgYW5kIG1pc3Np bmcgbG93ZXJkYXRhCj4gZGVudHJ5IGdyYWNlZnVsbHkuCj4gCj4gTWlzc2luZyBsb3dlcmRhdGEg ZGVudHJ5IGlzIGFuIGluZGljYXRpb24gZm9yIGxhenkgbG9va3VwIG9mCj4gbG93ZXJkYXRhCj4g YW5kIGluIHRoYXQgY2FzZSB0aGUgbG93ZXJkYXRhX3JlZGlyZWN0IHBhdGggaXMgc3RvcmVkIGlu IG92bF9pbm9kZS4KPiAKPiBGb2xsb3dpbmcgY29tbWl0cyB3aWxsIGRlZmVyIGxvb2t1cCBhbmQg cGVyZm9ybSB0aGUgbGF6eSBsb29rdXAgb24KPiBhY2NjZXNzLgo+IAo+IFNpZ25lZC1vZmYtYnk6 IEFtaXIgR29sZHN0ZWluIDxhbWlyNzNpbEBnbWFpbC5jb20+CgpSZXZpZXdlZC1ieTogQWxleGFu ZGVyIExhcnNzb24gPGFsZXhsQHJlZGhhdC5jb20+Cgo+IC0tLQo+IMKgZnMvb3ZlcmxheWZzL2V4 cG9ydC5jIHzCoCAyICstCj4gwqBmcy9vdmVybGF5ZnMvZmlsZS5jwqDCoCB8wqAgNyArKysrKysr Cj4gwqBmcy9vdmVybGF5ZnMvaW5vZGUuY8KgIHwgMTggKysrKysrKysrKysrKystLS0tCj4gwqBm cy9vdmVybGF5ZnMvc3VwZXIuY8KgIHzCoCAzICsrKwo+IMKgZnMvb3ZlcmxheWZzL3V0aWwuY8Kg wqAgfMKgIDIgKy0KPiDCoDUgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgNiBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL2V4cG9ydC5jIGIvZnMvb3Zl cmxheWZzL2V4cG9ydC5jCj4gaW5kZXggOTk1MWM1MDRmYjhkLi4yNDk4ZmE4MzExZTMgMTAwNjQ0 Cj4gLS0tIGEvZnMvb3ZlcmxheWZzL2V4cG9ydC5jCj4gKysrIGIvZnMvb3ZlcmxheWZzL2V4cG9y dC5jCj4gQEAgLTM0Myw3ICszNDMsNyBAQCBzdGF0aWMgc3RydWN0IGRlbnRyeSAqb3ZsX2RlbnRy eV9yZWFsX2F0KHN0cnVjdAo+IGRlbnRyeSAqZGVudHJ5LCBpbnQgaWR4KQo+IMKgwqDCoMKgwqDC oMKgwqBpZiAoIWlkeCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBv dmxfZGVudHJ5X3VwcGVyKGRlbnRyeSk7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAw OyBpIDwgb3ZsX251bWxvd2VyKG9lKTsgaSsrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgZm9yIChpID0g MDsgaSA8IG92bF9udW1sb3dlcihvZSkgJiYgbG93ZXJzdGFja1tpXS5sYXllcjsgaSsrKQo+IHsK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmIChsb3dlcnN0YWNrW2ldLmxheWVy LT5pZHggPT0gaWR4KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybiBsb3dlcnN0YWNrW2ldLmRlbnRyeTsKPiDCoMKgwqDCoMKgwqDCoMKgfQo+ IGRpZmYgLS1naXQgYS9mcy9vdmVybGF5ZnMvZmlsZS5jIGIvZnMvb3ZlcmxheWZzL2ZpbGUuYwo+ IGluZGV4IDdjMDRmMDMzYWFkZC4uOTUxNjgzYTY2ZmY2IDEwMDY0NAo+IC0tLSBhL2ZzL292ZXJs YXlmcy9maWxlLmMKPiArKysgYi9mcy9vdmVybGF5ZnMvZmlsZS5jCj4gQEAgLTExNSw2ICsxMTUs OSBAQCBzdGF0aWMgaW50IG92bF9yZWFsX2ZkZ2V0X21ldGEoY29uc3Qgc3RydWN0IGZpbGUKPiAq ZmlsZSwgc3RydWN0IGZkICpyZWFsLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg b3ZsX3BhdGhfcmVhbChkZW50cnksICZyZWFscGF0aCk7Cj4gwqDCoMKgwqDCoMKgwqDCoGVsc2UK PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG92bF9wYXRoX3JlYWxkYXRhKGRlbnRy eSwgJnJlYWxwYXRoKTsKPiArwqDCoMKgwqDCoMKgwqAvKiBUT0RPOiBsYXp5IGxvb2t1cCBvZiBs b3dlcmRhdGEgKi8KPiArwqDCoMKgwqDCoMKgwqBpZiAoIXJlYWxwYXRoLmRlbnRyeSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIC1FSU87Cj4gwqAKPiDCoMKgwqDCoMKg wqDCoMKgLyogSGFzIGl0IGJlZW4gY29waWVkIHVwIHNpbmNlIHdlJ2Qgb3BlbmVkIGl0PyAqLwo+ IMKgwqDCoMKgwqDCoMKgwqBpZiAodW5saWtlbHkoZmlsZV9pbm9kZShyZWFsLT5maWxlKSAhPQo+ IGRfaW5vZGUocmVhbHBhdGguZGVudHJ5KSkpIHsKPiBAQCAtMTU4LDYgKzE2MSwxMCBAQCBzdGF0 aWMgaW50IG92bF9vcGVuKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdAo+IGZpbGUgKmZpbGUp Cj4gwqDCoMKgwqDCoMKgwqDCoGZpbGUtPmZfZmxhZ3MgJj0gfihPX0NSRUFUIHwgT19FWENMIHwg T19OT0NUVFkgfCBPX1RSVU5DKTsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBvdmxfcGF0aF9yZWFs ZGF0YShkZW50cnksICZyZWFscGF0aCk7Cj4gK8KgwqDCoMKgwqDCoMKgLyogVE9ETzogbGF6eSBs b29rdXAgb2YgbG93ZXJkYXRhICovCj4gK8KgwqDCoMKgwqDCoMKgaWYgKCFyZWFscGF0aC5kZW50 cnkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiAtRUlPOwo+ICsKPiDC oMKgwqDCoMKgwqDCoMKgcmVhbGZpbGUgPSBvdmxfb3Blbl9yZWFsZmlsZShmaWxlLCAmcmVhbHBh dGgpOwo+IMKgwqDCoMKgwqDCoMKgwqBpZiAoSVNfRVJSKHJlYWxmaWxlKSkKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybiBQVFJfRVJSKHJlYWxmaWxlKTsKPiBkaWZmIC0t Z2l0IGEvZnMvb3ZlcmxheWZzL2lub2RlLmMgYi9mcy9vdmVybGF5ZnMvaW5vZGUuYwo+IGluZGV4 IDM1ZDUxYTZkY2VkNy4uYzI5Y2JkOWRiNjRhIDEwMDY0NAo+IC0tLSBhL2ZzL292ZXJsYXlmcy9p bm9kZS5jCj4gKysrIGIvZnMvb3ZlcmxheWZzL2lub2RlLmMKPiBAQCAtMjQwLDE1ICsyNDAsMjIg QEAgaW50IG92bF9nZXRhdHRyKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLCBjb25zdAo+IHN0cnVj dCBwYXRoICpwYXRoLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoC8qCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgICogSWYgbG93ZXIgaXMgbm90IHNhbWUgYXMgbG93ZXJkYXRhIG9yIGlmCj4gdGhlcmUgd2Fz Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICogbm8g b3JpZ2luIG9uIHVwcGVyLCB3ZSBjYW4gZW5kIHVwIGhlcmUuCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBXaXRoIGxhenkgbG93ZXJkYXRhIGxvb2t1 cCwgZ3Vlc3MKPiBsb3dlcmRhdGEgYmxvY2tzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBmcm9tIHNpemUgdG8gYXZvaWQgbG93ZXJkYXRhIGxvb2t1 cCBvbgo+IHN0YXQoMikuCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICovCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgc3RydWN0IGtzdGF0IGxvd2VyZGF0YXN0YXQ7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdTMyIGxvd2VybWFzayA9IFNUQVRYX0JMT0NLUzsK PiDCoAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoG92 bF9wYXRoX2xvd2VyZGF0YShkZW50cnksICZyZWFscGF0aCk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBlcnIgPSB2ZnNfZ2V0YXR0cigmcmVhbHBhdGgs ICZsb3dlcmRhdGFzdGF0LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsb3dlcm1hc2ssIGZs YWdzKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlm IChlcnIpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZ290byBvdXQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpZiAocmVhbHBhdGguZGVudHJ5KSB7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZXJyID0gdmZz X2dldGF0dHIoJnJlYWxwYXRoLAo+ICZsb3dlcmRhdGFzdGF0LAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbG93ZXJtYXNrLCBmbGFncyk7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGVy cikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZ290byBvdXQ7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9IGVsc2Ugewo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvd2VyZGF0YXN0 YXQuYmxvY2tzID0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcm91bmRfdXAoc3RhdC0+c2l6ZSwg c3RhdC0KPiA+Ymxrc2l6ZSkgPj4gOTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBzdGF0LT5ibG9ja3MgPSBsb3dlcmRhdGFzdGF0LmJsb2NrczsKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgfQo+IEBAIC03MTAs NiArNzE3LDkgQEAgc3RhdGljIGludCBvdmxfZmllbWFwKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0 cnVjdAo+IGZpZW1hcF9leHRlbnRfaW5mbyAqZmllaW5mbywKPiDCoMKgwqDCoMKgwqDCoMKgc3Ry dWN0IGlub2RlICpyZWFsaW5vZGUgPSBvdmxfaW5vZGVfcmVhbGRhdGEoaW5vZGUpOwo+IMKgwqDC oMKgwqDCoMKgwqBjb25zdCBzdHJ1Y3QgY3JlZCAqb2xkX2NyZWQ7Cj4gwqAKPiArwqDCoMKgwqDC oMKgwqBpZiAoIXJlYWxpbm9kZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0 dXJuIC1FSU87Cj4gKwo+Cj4gwqDCoMKgwqDCoMKgwqDCoGlmICghcmVhbGlub2RlLT5pX29wLT5m aWVtYXApCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm4gLUVPUE5PVFNV UFA7Cj4gwqAKPiBkaWZmIC0tZ2l0IGEvZnMvb3ZlcmxheWZzL3N1cGVyLmMgYi9mcy9vdmVybGF5 ZnMvc3VwZXIuYwo+IGluZGV4IDM0ODRmMzlhOGYyNy4uZWY3OGFiYzIxOTk4IDEwMDY0NAo+IC0t LSBhL2ZzL292ZXJsYXlmcy9zdXBlci5jCj4gKysrIGIvZnMvb3ZlcmxheWZzL3N1cGVyLmMKPiBA QCAtMTAzLDYgKzEwMyw5IEBAIHN0YXRpYyBpbnQgb3ZsX3JldmFsaWRhdGVfcmVhbChzdHJ1Y3Qg ZGVudHJ5ICpkLAo+IHVuc2lnbmVkIGludCBmbGFncywgYm9vbCB3ZWFrKQo+IMKgewo+IMKgwqDC oMKgwqDCoMKgwqBpbnQgcmV0ID0gMTsKPiDCoAo+ICvCoMKgwqDCoMKgwqDCoGlmICghZCkKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuIDE7Cj4gKwo+IMKgwqDCoMKgwqDC oMKgwqBpZiAod2Vhaykgewo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWYgKGQt PmRfZmxhZ3MgJiBEQ0FDSEVfT1BfV0VBS19SRVZBTElEQVRFKQo+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldCA9wqAgZC0+ZF9vcC0+ZF93ZWFrX3Jl dmFsaWRhdGUoZCwgZmxhZ3MpOwo+IGRpZmYgLS1naXQgYS9mcy9vdmVybGF5ZnMvdXRpbC5jIGIv ZnMvb3ZlcmxheWZzL3V0aWwuYwo+IGluZGV4IGZlMmU1YThiMjE2Yi4uMjg0YjViYTRmY2Y2IDEw MDY0NAo+IC0tLSBhL2ZzL292ZXJsYXlmcy91dGlsLmMKPiArKysgYi9mcy9vdmVybGF5ZnMvdXRp bC5jCj4gQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIG92bF9kZW50cnlfaW5pdF9mbGFncyhzdHJ1 Y3QgZGVudHJ5ICpkZW50cnksCj4gc3RydWN0IGRlbnRyeSAqdXBwZXJkZW50cnksCj4gwqAKPiDC oMKgwqDCoMKgwqDCoMKgaWYgKHVwcGVyZGVudHJ5KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgZmxhZ3MgfD0gdXBwZXJkZW50cnktPmRfZmxhZ3M7Cj4gLcKgwqDCoMKgwqDCoMKg Zm9yIChpID0gMDsgaSA8IG92bF9udW1sb3dlcihvZSk7IGkrKykKPiArwqDCoMKgwqDCoMKgwqBm b3IgKGkgPSAwOyBpIDwgb3ZsX251bWxvd2VyKG9lKSAmJiBsb3dlcnN0YWNrW2ldLmRlbnRyeTsK PiBpKyspCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmbGFncyB8PSBsb3dlcnN0 YWNrW2ldLmRlbnRyeS0+ZF9mbGFnczsKPiDCoAo+IMKgwqDCoMKgwqDCoMKgwqBzcGluX2xvY2so JmRlbnRyeS0+ZF9sb2NrKTsKCi0tIAo9LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0t PS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tPS09LT0tCj0tPS09CiBBbGV4YW5kZXIgTGFy c3NvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVkIEhhdCwK SW5jIAogICAgICAgYWxleGxAcmVkaGF0LmNvbSAgICAgICAgICAgIGFsZXhhbmRlci5sYXJzc29u QGdtYWlsLmNvbSAKSGUncyBhIHRpbWUtdG9zc2VkIEFtaXNoIHZhZ3JhbnQgd2hvIGtub3dzIHRo ZSBzZWNyZXQgb2YgdGhlIGFsaWVuIAppbnZhc2lvbi4gU2hlJ3MgYSBoaWdoLWtpY2tpbmcgZ3lw c3kgYmFybWFpZCBmcm9tIGEgZmFtaWx5IG9mIGVpZ2h0Cm9sZGVyIApicm90aGVycy4gVGhleSBm aWdodCBjcmltZSEgCg==