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 X-Spam-Level: X-Spam-Status: No, score=-0.5 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75D1DC43381 for ; Fri, 22 Mar 2019 10:00:43 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 3471B2070D for ; Fri, 22 Mar 2019 10:00:43 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="q3WQsUW+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3471B2070D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=fail smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.91) (envelope-from ) id 1h7GyH-0002x9-D5; Fri, 22 Mar 2019 06:00:17 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]) by shelob.surriel.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1h7GyD-0002x0-PA for kernelnewbies@kernelnewbies.org; Fri, 22 Mar 2019 06:00:13 -0400 Received: by mail-wm1-x344.google.com with SMTP id u10so1502930wmj.5 for ; Fri, 22 Mar 2019 03:00:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GCTenGurvFZ/jqNVSj2h4WmcfUjyQA6PhGhXV83ZfdA=; b=q3WQsUW+ToutOULUFc2Ql/gSAhTOWdx9Efu39LWVtQgKsKVCuCC83q1VI9cOTwQeto XRcf8luAX9VW9gObvOeHxuWo992svbLeiouG0UthC0VD+6BJ5ITkRM3/nkVC9Rjz1blV Q3JtoJVUdrzE6RK0KN3tnpvhALLSQCeOhW2pEnIvdWNXONBB33em4LkMwfBkYW0Zl9Ir rMNpxpHeYoqcDUt2VLRFii74r4YGOlI42RF6uJNb2d5xAClXd1pkLHBB4TQOXRcxNYo+ 9+scPY57/zGr9mGqZ/SzqqSRNIpLVQOABT3ELvKTnrAt1CUXbN6fy3w6Fbk9Xbr+Udbj fqSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GCTenGurvFZ/jqNVSj2h4WmcfUjyQA6PhGhXV83ZfdA=; b=qEXBxenL3ZOs1G3HA3EN1aN55YrcNUdtP53ju4aW7qZ1SlVTv9u8nn8rAhdBQRL+N6 VaPZuecPWi6MKr2N9tkOd7cnVDm417Fhs/479jbnS7DAwhAE9uc6NRWX6jT2lM9TBSv0 eEu8YrEQD8zuTSOxsdBUK3QGgU4MIM977/yZOGp48Xk+2HafYTSyEbNy1RnwbPpEA9Vi Trfay8fnz/q6lpBe539DJpCN2YAZCGS48My5FuyC8fj9JE+JDTnL/4+ZIqYNwMmZI+Ey D1+jOE8mBSzLQ65uglHkehUykCgK3rslFkpIYHERhKN4tJ8+TJdqad70QMm72jwT5X9a GWLQ== X-Gm-Message-State: APjAAAVXrXYu5SEm/PGpevTLc4TR1Zl3e0fkPqS4Qe8x0fGvRBT2ngYo R6Knx3WfwhY3hHuClTH0eYc= X-Google-Smtp-Source: APXvYqzhhfXxOTlVGTHfMMCNYTOCbe20otUtMV/ytxc80KcaT6sGXYmwYUZ1nXLTuX5bPi1MEW8Ttg== X-Received: by 2002:a7b:c016:: with SMTP id c22mr2355928wmb.55.1553248806494; Fri, 22 Mar 2019 03:00:06 -0700 (PDT) Received: from narunkot ([94.11.212.65]) by smtp.gmail.com with ESMTPSA id u2sm12710258wmc.45.2019.03.22.03.00.05 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 22 Mar 2019 03:00:05 -0700 (PDT) Date: Fri, 22 Mar 2019 09:59:55 +0000 From: Okash Khawaja To: Lev Olshvang Subject: Re: What will happen if 2 processes map same physical page Message-ID: <20190322095914.24fb0df4@narunkot> In-Reply-To: <2235291553246149@sas1-0a6c2e2b59d7.qloud-c.yandex.net> References: <6967041553089359@myt2-66bcb87429e6.qloud-c.yandex.net> <16760.1553101675@turing-police> <3935481553162177@sas2-ce04c18c415c.qloud-c.yandex.net> <20190321104528.33471e38@narunkot> <2235291553246149@sas1-0a6c2e2b59d7.qloud-c.yandex.net> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Cc: linux-il , Valdis =?utf-8?Q?Kl=C4=93tnieks?= , kernelnewbies X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kernelnewbies-bounces@kernelnewbies.org SGkgTGV2LAoKT24gRnJpLCAyMiBNYXIgMjAxOSAxMjoxNTo0OSArMDMwMApMZXYgT2xzaHZhbmcg PGxldm9uc2hlQHlhbmRleC5jb20+IHdyb3RlOgoKPiBIZWxsbyBPa2FzaCwKPiAKPiBBY3R1YWxs eSB0aGVyZSB3ZXJlIDMgcXVlc3Rpb246Cj4gCj4gVGhpcmQgcXVlc3Rpb24gaXMgOgo+IElzIHRo ZXJlIGFueSB3YXkgdG8gdGVsbCB0aGUga2VybmVsIHRoYXQgUFRFIG9mIHNhbWUgcGh5c2ljYWwg cGFnZQo+IHNob3VsZCBiZSBlcXVhbCBpbiBhbGwgcHJvY2Vzc2VzPwpOb3QgdGhhdCBJIGFtIGF3 YXJlIG9mLiBZb3UgbWVudGlvbiBTRUxpbnV4IGZlYXR1cmUgd2hpY2ggbWlnaHQgYmUgYQp3YXkg YnV0IEkgZG9uJ3Qga25vdyBhYm91dCBpdC4KCj4gCj4gRm9yIGV4YW1wbGUsIHNoYXJlZCBsaWIg bWFwcGVkIGZyb20gZGlmZmVyZW50IHByb2Nlc3NlcyB0byBzYW1lCj4gcGh5c2ljYWwgcGFnZSBt dXN0IGhhdmUgc2FtZSBQVEUsIGlzbiBpdD8KVGhpcyBpcyBwb2xpY3kgdnMuIG1lY2hhbmlzbSBx dWVzdGlvbi4gSSB0aGluayBrZXJuZWwgLSB3aGVyZXZlcgpwb3NzaWJsZSAtIHByb3ZpZGVzIG1l Y2hhbmlzbSwgbGVhdmluZyBwb2xpY3kgdG8gYmUgZGV0ZXJtaW5lZCBieSB1c2VyCnNwYWNlLiBT byBpbiBjYXNlIG9mIHNoYXJlZCBsaWIgbWFwcGluZywgaXQncyB0aGUgZHluYW1pYyBsaW5rZXIg d2hpY2gKZW5zdXJlcyB0aGF0IGFsbCBtYXBwaW5ncyBhcmUgc2ltaWxhciBhY3Jvc3MgZGlmZmVy ZW50IHByb2Nlc3Nlcy4KCj4gCj4gQW5kICB0aGUgcHJlc2VuY2Ugb2YgU0VMaW51eCBmZWF0dXJl IFNFTElOVVhfQ0hFQ0tSRVFQUk9UX1ZBTFVFCj4gaW5kaWNhdGVzIGZvciBtZSB0aGF0IGtlcm5l bCBzb21laG93IGtub3dzIHRoZSBjb3JyZWN0IHBhZ2UKPiBwcm90ZWN0aW9ucy4gKGFsdGhvdWdo IEkgZG8gbm90IHNlZSBpbiBjb2RlIGhvdyBpdCBpcyBkb25lKQo+IAo+IEJ1dCB0aGUgcXVlc3Rp b24gbWlnaHQgYmUgcmVwaHJhc2VkIDogIElNSE8gS2VybmVsIHNob3VsZCBtYW5kYXRlCj4gc2Ft ZSBQVEUgZmxhZ3Mgbm8gbWF0dGVyIGhvdyBtYW55IHZpcnR1YWwgbWFwcGluZyB3ZXJlIG1hZGUg dG8gdGhlCj4gc2FtZSBwaHlzaWNhbCBwYWdlLgo+IAo+IFdoYXQgZG8geW91IHRoaW5rPwoKSSdt IG5vdCBzdXJlIGlmIHRoYXQgd291bGQgYmUgdGhlIGJlc3QgZGVmYXVsdCBvcHRpb24uIE9uZSBy ZWFzb24gaXMKdGhhdCBQVEUgZmxhZ3MgYXJlbid0IGEgcHJvcGVydHkgb2YgcGh5c2ljYWwgcGFn ZSBpdHNlbGYuIEluc3RlYWQsIFBURQpmbGFncyBhcmUgYSBwcm9wZXJ0eSBvZiBhIHByb2Nlc3Mn cyB2aWV3IG9mIHRoZSBwaHlzaWNhbCBwYWdlLiBQaHlzaWNhbApwYWdlIGl0c2VsZiBpcyBhIHNl cmllcyBvZiBieXRlcy4gTWVhbmluZyBpcyBnaXZlbiB0byB0aG9zZSBieXRlcyBieQp0aGUgcHJv Y2VzcyB3aGljaCBhY2Nlc3NlcyB0aGVtLgoKVGhpcyBpcyBhIGJpdCBtb3JlIHN1YmplY3RpdmUg b3BpbmlvbiByYXRoZXIgdGhhbiBhbiBvYmplY3RpdmUgYW5zd2VyCnNvIEknbSBvdCBzdXJlIGlm IHRoaXMgYW5zd2VycyB5b3VyIHF1ZXJ5LgoKVGhhbmtzLApPa2FzaAoKPiAKPiAKPiAKPiAKPiAK PiAKPiAyMS4wMy4yMDE5LCAxMzo0NSwgIk9rYXNoIEtoYXdhamEiIDxva2FzaC5raGF3YWphQGdt YWlsLmNvbT46Cj4gPiBPbiBUaHUsIDIxIE1hciAyMDE5IDEyOjU2OjE3ICswMzAwCj4gPiBMZXYg T2xzaHZhbmcgPGxldm9uc2hlQHlhbmRleC5jb20+IHdyb3RlOgo+ID4gIAo+ID4+IMKgSGkgVmFh bGRpcywKPiA+Pgo+ID4+IMKgVGhhbmtzIGZvciBhbnN3ZXIsCj4gPj4gwqBJIHN0aWxsIHdvbmRl cmluZyB3aGV0aGVyIHRoZSBrZXJuZWwgd2lsbCBhbGxvdyB3cml0ZSB0byBhCj4gPj4gcmVhZC1v bmx5IHBhZ2Ugb2Ygc2hhcmVkIGxpYnJhcnkgd2hpbGUgaXQgaGFzIG1hcHBlZCB0byBzZXZlcmFs Cj4gPj4gcHJvY2Vzc2VzPyBLZXJuZWwga25vd3MgdGhhdCBwYWdlJ3MgcmVmZXJlbmNlIGNvdW50 ID4xLCB3aWxsIGl0Cj4gPj4gYWxsb3cgbW1hcC9tcHJvdGVjdCB0byBjaGFuZ2UgcGFnZSBwcm90 ZWN0aW9uID8gT3Igd2lsbCBpdCBhbGxvdwo+ID4+IGRpcmVjdCByaWdodCBieSBwaHlzaWNhbCBh ZGRyZXNzPyBJIHN1cHBvc2UgdGhhdCBDUFUgc2hvdWxkIHJhaXNlCj4gPj4gcGFnZSBmYXVsdCB3 aGVuIHdyaXRlIGlzIG1hZGUgdG8gcmVhZCBvbmx5IHBhZ2UsCj4gPj4KPiA+PiDCoFdoYXQgaXMg dGhlIHNlcXVlbmNlIENQVSByYWlzZXMgcGFnZSBmYXVsIGJlZm9yZSB3cml0ZSB0byBwYWdlIG9m Cj4gPj4gwqBhZnRlciBkYXRhIGlzIHdyaXR0ZW4gV2lsbCBDUFUgd2FpdCB1bnRpbCBrZXJuZWwg d2lsbCBjb25zaWRlcgo+ID4+IHdoYXQgdG8gZG8gLCB3aGV0aGVyIGFncmVlIGFuZCBjaGFuZ2Ug UFRFICJ3cml0YWJsZSAiIGJpdCB0byAxID8gT3IKPiA+PiDCoGtlcm5lbCBtYXkgZGlzYWdyZWUg YW5kIHJhaXNlIFNFR0ZBVUxUPyAgCj4gPgo+ID4gTm90ZSB0aGF0IGVhY2ggcHJvY2VzcyBoYXMg aXRzIG93biBQVEUuIFNvIFBURSBpbiBvbmUgcHJvY2VzcyBtYXkKPiA+IHNheSB0aGUgcGFnZSBp cyB3cml0YWJsZSBhbmQgUFRFIGluIGFub3RoZXIgcHJvY2VzcyBtYXkgc2F5IGl0J3MKPiA+IHJl YWQtb25seS4gCj4gPj4gwqBJIGNoZWNrZWQgaW4gdGhlIGhhbmRsZV9tbV9mYXVsdCgpIGNhbGxz IGZvcgo+ID4+IMKgYXJjaF92bWFfYWNjZXNzX3Blcm1pdHRlZCgpIHdoaWNoIGp1c3QgcmV0dXJu cyB0cnVlIG9uIG1vc3QKPiA+PiDCoGFyY2hpdGVjdHVyZXMgd2hpY2ggaXMgdmVyeSBzdHJhbmdl IGFuZCBjb250cmFkaWN0cyBteSBwcmVkaWN0aW9uCj4gPj4gb2YgU0VGRkFVTFQuIGFyY2hfdm1h X2FjY2Vzc19wZXJtaXR0ZWQoKSByZXR1dHVzIHRydWUgd2hlbiBpcyBzZWVzCj4gPj4gdGhhdCBh Y2Nlc3MgaXMgbWFkZSBmcm9tIGZvcmVpZ24gcHJvY2Vzcz8KPiA+PiDCoGh0dHBzOi8vZWxpeGly LmJvb3RsaW4uY29tL2xpbnV4L2xhdGVzdC9pZGVudC9hcmNoX3ZtYV9hY2Nlc3NfcGVybWl0dGVk Cj4gPj4KPiA+PiDCoEkgYW0gdG90YWxseSBjb25mdXNlZC4KPiA+Pgo+ID4+IMKgV2hhdCBkbyB5 b3UgdGhpbmsgPwo+ID4+Cj4gPj4gwqBSZWdhcmRzLAo+ID4+IMKgTGV2ICAKPiA+Cj4gPiBJdCBs b29rcyBsaWtlIHRoZXJlIGFyZSB0d28gc2VwYXJhdGUgcXVlc3Rpb25zIGluIHRoZSBlbWFpbC4K PiA+Cj4gPiAxKSBXaWxsIGtlcm5lbCBhbGxvdyB0aGUgc2FtZSBwaHlzaWNhbCBwYWdlIHRvIGJl IG1hcHBlZCBhcwo+ID4gcmVhZC1vbmx5IGluIG9uZSBwcm9jZXNzIGFuZCBhcyByZWFkLXdyaXRl IGluIGFub3RoZXIgcHJvY2Vzcz8KPiA+Cj4gPiAyKSBIb3cgcGFnZSBmYXVsdCBpcyBnZW5lcmF0 ZWQ/Cj4gPgo+ID4gQW5zd2VyIGZvciBmaXJzdCBpcyB5ZXMuIFNhbWUgcGh5c2ljYWwgcGFnZSBj YW4gYmUgbWFwcGVkIHdpdGgKPiA+IGRpZmZlcmVudCBwZXJtaXNzaW9ucyBpbiB0d28gZGlmZmVy ZW50IHByb2Nlc3Nlcy4gSXQgbWVhbnMgcmVhZC1vbmx5Cj4gPiBwcm9jZXNzIHdpbGwgdWx0aW1h dGVseSAoaG9wZWZ1bGx5IHZlcnkgc29vbikgbm90aWNlIGNoYW5nZXMgbWFkZSBieQo+ID4gcmVh ZC13cml0ZSBwcm9jZXNzLgo+ID4KPiA+IEFuc3dlciBmb3Igc2Vjb25kIHF1ZXN0aW9uIGlzIGEg Yml0IGNvbXBsaWNhdGVkLiBIb3dldmVyIHRoZXJlIGlzIGEKPiA+IHRyaWNrIHRvIGl0LiBPbmNl IHdlIGtub3cgdGhhdCwgcmVzdCB3aWxsIGJlY29tZSBjbGVhciBhdXRvbWF0aWNhbHkuCj4gPiBU aGUgdHJpY2sgKGF0IGxlYXN0IGZvciB4ODYgc3lzdGVtcykgaXMgdGhhdCBwZXJtaXNzaW9ucyBh cmUKPiA+IG1haW50YWluZWQgYXQgdHdvIGRpZmZlcmVudCBsZXZlbHM6Cj4gPgo+ID4gLSBWTUEg bGV2ZWwKPiA+IC0gUFRFIGxldmVsIChvciBQVUQgbGV2ZWwgZm9yIGxhcmdlciBwYWdlIHNpemUg YnV0IHRoYXQgaXMgbm90Cj4gPiByZWxldmFudCBoZXJlKQo+ID4KPiA+IFdoZW4gYSBwYWdlIGlu IG1lbW9yeSBpcyBhY2Nlc3NlZCwgcGVybWlzc2lvbiBvbiBjb3JyZXNwb25kaW5nIFZNQQo+ID4g aXMgY2hlY2tlZCBmaXJzdC4gSWYgdGhlIGFjY2VzcyBpcyBhbGxvd2VkIGJ5IFZNQSB0aGVuIFBU RQo+ID4gcGVybWlzc2lvbnMgYXJlIGNoZWNrZWQuIE90aGVyd2lzZSBzZWdmYXVsdCBpcyBnZW5l cmF0ZWQuIElmCj4gPiBwZXJtaXNzaW9ucyBhdCBQVEUgbGV2ZWwgZG9uJ3QgbWF0Y2ggdGhlIGFj Y2VzcyB0eXBlIHRoZW4gYSBwYWdlCj4gPiBmYXVsdCBpcyBnZW5lcmF0ZWQuIFRoYXQncyB3aGVu IHBhZ2UgZmF1bHQgaGFuZGVyIGtpY2tzIGluIGFuZAo+ID4gdHJpZXMgdG8gcmVzb2x2ZSB0aGUg cHJvYmxlbSBieSBmYXVsdGluZyB0aGUgcGFnZSBpbnRvIFJBTSwgY29weWluZwo+ID4gdGhlIHBh Z2UgaW4gUkFNIChmb3IgY29weS1vbi13cml0ZSkgZXRjLiAKPiA+PiDCoDIwLjAzLjIwMTksIDIw OjA4LCAiVmFsZGlzIEtsxJN0bmlla3MiIDx2YWxkaXMua2xldG5pZWtzQHZ0LmVkdT46ICAKPiA+ PiDCoD4gT24gV2VkLCAyMCBNYXIgMjAxOSAxNjo0MjozOSArMDMwMCwgTGV2IE9sc2h2YW5nIHNh aWQ6ICAKPiA+PiDCoD4+IMKgVGhlIHF1ZXN0aW9uIGlzIGl0IGlwb3NzaWJsbGUgaW4gTGludXgv TU1VL1RMQiB0aGF0IDIKPiA+PiBwcm9jZXNzZXMgPj4gbWFwIHRvIHRoZSBzYW1lIHBoeXNpY2Fs IGFkZHJlc3M/ICAKPiA+PiDCoD4KPiA+PiDCoD4gVG90YWxseSBwb3NzaWJsZS4gVGhhdCdzIGhv dyBtbWFwIHNoYXJlZCBtZW1vcnkgd29ya3MsIGFuZCB3aHkKPiA+PiDCoD4gc2hhcmVkIGxpYnJh cmllcyBhcmUgcG9zc2libGUuCj4gPj4gwqA+ICAKPiA+PiDCoD4+IMKgV2lsbCBDUFUgb3IgVExC IGRpc2NvdmVyIHRoYXQgc2Vjb25kIHByb2Nlc3MgdHJpZXMgdG8gcmVhY2gKPiA+PiDCoD4+IG9j Y3VwaWVkIHBoeXNpY2FsIHBhZ2U/ICAKPiA+PiDCoD4KPiA+PiDCoD4gV2VsbCwgdGhlIGhhcmR3 YXJlIHdvbid0IGRpc2NvdmVyIGl0IGFzIGEgInNlY29uZCIgcHJvY2VzcywgaXQKPiA+PiBvbmx5 ID4ga25vd3MgaXQncyBwcm9jZXNzaW5nICp0aGlzKiBtZW1vcnkgYWNjZXNzLgo+ID4+IMKgPiAg Cj4gPj4gwqA+PiDCoFdoYXQgaWYgZmlyc3QgcHJvY2VzcyBzZXQgcGFnZSBwZXJtaXNzaW9uIHRv IHJlYWQgYW5kIHNlY29uZAo+ID4+IMKgPj4gd2hhdHMgdG8gd3JpdGUgdG8gdGhpcyBwYWdlID8g IAo+ID4+IMKgPgo+ID4+IMKgPiBQZXJmZWN0bHkgT0sgLSB0aGUgdHdvIHByb2Nlc3NlcyBoYXZl IHNlcGFyYXRlIHBhZ2UgdGFibGUKPiA+PiBtYXBwaW5ncywgPiB3aXRoIHNlcGFyYXRlIHBlcm1p c3Npb24gYml0cy4gU28gKGZvciBleGFtcGxlKQo+ID4+IHBoeXNpY2FsIHBhZ2UgPiAweDE3RjAw MCBpcyBtYXBwZWQgdG8gdmlydHVhbCBhZGRyZXNzIDB4MjAzNEQwMDAKPiA+PiB3aXRoIHJlYWQt b25seSA+IHBlcm1pc3Npb24gbiBwcm9jZXNzIDEncyBwYWdlIHRhYmxlcywgYW5kIHRvCj4gPj4g dmlydHVhbCBhZGRyZXNzID4gMHg5OEZGMzAwMCB3aXRoIHJlYWQtd3JpdGUgcGVybWlzc2lvbiBp biBwcm9jZXNzCj4gPj4gMidzIHBhZ2UgdGFibGVzLiA+IE5vIHByb2JsZW0uCj4gPj4gwqA+Cj4g Pj4gwqA+IChBbmQgYmVmb3JlIHlvdSBhc2ssIHllcyBpdCdzIHBvc3NpYmxlIGZvciBwcm9jZXNz IDIgdG8gcnVubmluZwo+ID4+IG9uID4gb25lIGNvcmUgZG9pbmcgYSB3cml0ZSB0byB0aGUgcGFn ZSBhdCB0aGUgZXhhY3Qgc2FtZSB0aW1lIHRoYXQKPiA+PiDCoD4gcHJvY2VzcyAxIGlzIGRvaW5n IGEgcmVhZCBvbiBhbm90aGVyIGNvcmUuIERlcGVuZGluZyBvbiB0aGUKPiA+PiDCoD4gaGFyZHdh cmUgY2FjaGUgZGVzaWduLCB0aGlzIG1heSBvciBtYXkgbm90IGdldCBwcm9jZXNzIDEgdXBkYXRl ZAo+ID4+IMKgPiBkYXRhLiBUaGlzIGlzIHdoeSBsb2NraW5nIGFuZCBtZW1vcnkgYmFycmllcnMg YXJlIGltcG9ydGFudC4gU2VlCj4gPj4gwqA+IERvY3VtZW50YXRpb24vbWVtb3J5LWJhcnJpZXJz LnR4dCBmb3IgbW9yZSBkZXRhaWxzKQo+ID4+IMKgPgo+ID4+IMKgPiAiQW5kIHRoZW4gdGhlcmUn cyB0aGUgQWxwaGEiIC0gYSBwcm9jZXNzb3IgZGVzaWduIHRoYXQgZ290IG11Y2gKPiA+PiBvZiA+ IGl0cyBzcGVlZCBieSBiZWluZyB3ZWlyZCBhYm91dCB0aGlzIHN0dWZmLiA6KQo+ID4+IMKgPiAg Cj4gPj4gwqA+PiDCoFBlcmhhcHMgZHVyaW5nIGNvbnRleHQgc3dpdGNoIGFsbCBwYWdlIGFjY2Vz cyBwZXJtaXNzaW9ucyBvZgo+ID4+IMKgPj4gZmlyc3QgcHJvY2VzcyBpcyBmbGFzaGVkIG91dCBm cm9tIE1NVSA/ICAKPiA+PiDCoD4KPiA+PiDCoD4gQWN0dWFsbHksIHRoZSBrZXJuZWwganVzdCBw b2ludHMgdGhlIE1NVSBhdCBhIG5ldyBzZXQgb2YgcGFnZQo+ID4+IHRhYmxlID4gZW50cmllcyBh bmQgbGV0cyB0aGUgVExCIHJlbG9hZCBhcyBuZWVkZWQuIEluIHBhcnRpY3VsYXIsCj4gPj4gb24g bW9zdCA+IGFyY2hpdGVjdHVyZXMsIHRoZSBrZXJuZWwgdHJpZXMgcmVhbGx5IGhhcmQgdG8gZW5z dXJlCj4gPj4gdGhhdCBhbGwgPiBwcm9jZXNzZXMgc2hhcmUgYXQgbGVhc3QgcGFydCBvZiB0aGVp ciBwYWdlIHRhYmxlCj4gPj4gbWFwcGluZ3Mgc28gdGhlID4ga2VybmVsIGlzIGFsd2F5cyBtYXBw ZWQgYXQgdGhlIHNhbWUgcGxhY2UsCj4gPj4gbWVhbmluZyB0aGF0IHRoZXJlJ3MgYSA+IGJldHRl ciBjaGFuY2UgdGhhdCBvbiBhIHN5c2NhbGwsIHRoZSBUTEIKPiA+PiBhbHJlYWR5IGhhcyBob3Qg ZW50cmllcyA+IGZvciBsYXJnZSBwYXJ0cyBvZiB0aGUga2VybmVsIHNvIG5vIFRMQgo+ID4+IHJl bG9hZHMgYXJlIG5lZWRlZC4gIAo+ID4+Cj4gPj4gwqBfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwo+ID4+IMKgS2VybmVsbmV3YmllcyBtYWlsaW5nIGxpc3QK PiA+PiDCoEtlcm5lbG5ld2JpZXNAa2VybmVsbmV3Ymllcy5vcmcKPiA+PiDCoGh0dHBzOi8vbGlz dHMua2VybmVsbmV3Ymllcy5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXJuZWxuZXdiaWVzICAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpLZXJuZWxuZXdi aWVzIG1haWxpbmcgbGlzdApLZXJuZWxuZXdiaWVzQGtlcm5lbG5ld2JpZXMub3JnCmh0dHBzOi8v bGlzdHMua2VybmVsbmV3Ymllcy5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXJuZWxuZXdiaWVzCg==