From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH] Always mark GEM objects as dirty when written by the CPU Date: Mon, 7 Dec 2015 12:04:18 +0000 Message-ID: <566575C2.6010807@intel.com> References: <1448973722-34522-1-git-send-email-david.s.gordon@intel.com> <20151201130438.GB20053@nuc-i3427.alporthouse.com> <565D9EC3.5020109@intel.com> <20151204095730.GK10243@phenom.ffwll.local> <5661CD3D.3070004@intel.com> <20151207082912.GX10243@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 8918B6E5B0 for ; Mon, 7 Dec 2015 04:04:27 -0800 (PST) In-Reply-To: <20151207082912.GX10243@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gMDcvMTIvMTUgMDg6MjksIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gRnJpLCBEZWMgMDQs IDIwMTUgYXQgMDU6Mjg6MjlQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4+IE9uIDA0LzEy LzE1IDA5OjU3LCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4gT24gVHVlLCBEZWMgMDEsIDIwMTUg YXQgMDE6MjE6MDdQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4+Pj4gT24gMDEvMTIvMTUg MTM6MDQsIENocmlzIFdpbHNvbiB3cm90ZToKPj4+Pj4gT24gVHVlLCBEZWMgMDEsIDIwMTUgYXQg MTI6NDI6MDJQTSArMDAwMCwgRGF2ZSBHb3Jkb24gd3JvdGU6Cj4+Pj4+PiBJbiB2YXJpb3VzIHBs YWNlcywgb25lIG9yIG1vcmUgcGFnZXMgb2YgYSBHRU0gb2JqZWN0IGFyZSBtYXBwZWQgaW50byBD UFUKPj4+Pj4+IGFkZHJlc3Mgc3BhY2UgYW5kIHVwZGF0ZWQuIEluIGVhY2ggc3VjaCBjYXNlLCB0 aGUgb2JqZWN0IHNob3VsZCBiZQo+Pj4+Pj4gbWFya2VkIGRpcnR5LCB0byBlbnN1cmUgdGhhdCB0 aGUgbW9kaWZpY2F0aW9ucyBhcmUgbm90IGRpc2NhcmRlZCBpZiB0aGUKPj4+Pj4+IG9iamVjdCBp cyBldmljdGVkIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4KPj4+Pj4+Cj4+Pj4+PiBUaGlzIGlzIHNp bWlsYXIgdG8gY29tbWl0Cj4+Pj4+PiAJY29tbWl0IDUxYmMxNDA0MzFlMjMzMjg0NjYwYjFkMjJj NDdkZWM5ZWNkYjUyMWUKPj4+Pj4+IAlBdXRob3I6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMt d2lsc29uLmNvLnVrPgo+Pj4+Pj4gCURhdGU6ICAgTW9uIEF1ZyAzMSAxNToxMDozOSAyMDE1ICsw MTAwCj4+Pj4+PiAJZHJtL2k5MTU6IEFsd2F5cyBtYXJrIHRoZSBvYmplY3QgYXMgZGlydHkgd2hl biB1c2VkIGJ5IHRoZSBHUFUKPj4+Pj4+Cj4+Pj4+PiBpbiB3aGljaCBDaHJpcyBlbnN1cmVkIHRo YXQgdXBkYXRlcyBieSB0aGUgR1BVIHdlcmUgbm90IGxvc3QgZHVlIHRvCj4+Pj4+PiBldmljdGlv biwgYnV0IHRoaXMgcGF0Y2ggYXBwbGllcyBpbnN0ZWFkIHRvIHRoZSBtdWx0aXBsZSBwbGFjZXMg d2hlcmUKPj4+Pj4+IG9iamVjdCBjb250ZW50IGlzIHVwZGF0ZWQgYnkgdGhlIGhvc3QgQ1BVLgo+ Pj4+Pgo+Pj4+PiBBcGFydCBmcm9tIHRoYXQgY29tbWl0IHdhcyB0byBtYXNrIHVzZXJzcGFjZSBi dWdzLCBoZXJlIHdlIGFyZSB1bmRlcgo+Pj4+PiBjb250cm9sIG9mIHdoZW4gdGhlIHBhZ2VzIGFy ZSBtYXJrZWQgYW5kIGhhdmUgY2hvc2VuIGEgZGlmZmVyZW50Cj4+Pj4+IHBlci1wYWdlIGludGVy ZmFjZSBmb3IgQ1BVIHdyaXRlcyBhcyBvcHBvc2VkIHRvIHBlci1vYmplY3QuCj4+Pj4+IC1DaHJp cwo+Pj4+Cj4+Pj4gVGhlIHBhdHRlcm4KPj4+PiAJZ2V0X3BhZ2VzKCk7Cj4+Pj4gCWttYXAoZ2V0 X3BhZ2UoKSkKPj4+PiAJd3JpdGUKPj4+PiAJa3VubWFwKCkKPj4+PiBvY2N1cnMgb2Z0ZW4gZW5v dWdoIHRoYXQgaXQgbWlnaHQgYmUgd29ydGggcHJvdmlkaW5nIGEgY29tbW9uIGZ1bmN0aW9uIHRv IGRvCj4+Pj4gdGhhdCBhbmQgbWFyayBvbmx5IHRoZSBzcGVjaWZpYyBwYWdlIGRpcnR5IChvdGhl ciBjYXNlcyB0b3VjaCB0aGUgd2hvbGUKPj4+PiBvYmplY3QsIHNvIGZvciB0aG9zZSB3ZSBjYW4g anVzdCBzZXQgdGhlIG9iai0+ZGlydHkgZmxhZyBhbmQgbGV0IHB1dF9wYWdlcygpCj4+Pj4gdGFr ZSBjYXJlIG9mIHByb3BhZ2F0aW5nIHRoYXQgdG8gYWxsIHRoZSBpbmRpdmlkdWFsIHBhZ2VzKS4K Pj4+Pgo+Pj4+IEJ1dCBjYW4gd2UgYmUgc3VyZSB0aGF0IGFsbCB0aGUgZnVuY3Rpb25zIHRvdWNo ZWQgYnkgdGhpcyBwYXRjaCB3aWxsIG9wZXJhdGUKPj4+PiBvbmx5IG9uIHJlZ3VsYXIgKGRlZmF1 bHQpIEdFTSBvYmplY3RzIChpLmUuIG5vdCBwaHlzLCBzdG9sZW4sIGV0YykgJ2NvcyBzb21lCj4+ Pj4gb2YgdGhvc2UgZG9uJ3Qgc3VwcG9ydCBwZXItcGFnZSB0cmFja2luZy4gV2hhdCBhYm91dCBv YmplY3RzIHdpdGggbm8gYmFja2luZwo+Pj4+IHN0b3JlIC0tIGNhbi9zaG91bGQgd2UgbWFyayB0 aG9zZSBhcyBkaXJ0eSAod2hpY2ggd291bGQgcHJldmVudCBldmljdGlvbik/Cj4+Pgo+Pj4gSSB0 aG91Z2h0IG91ciBzcGVjaWFsIG9iamVjdHMgZG8gY2xlYXIgb2JqLT5kaXJ0eSBvbiBwdXRfcGFn ZXM/IENhbiB5b3UKPj4+IHBsZWFzZSBlbGFib3JhdGUgb24geW91ciBjb25jZXJuPwo+Pj4KPj4+ IFdoaWxlIHdlIGRpc2N1c3MgYWxsIHRoaXM6IEEgcGF0Y2ggYXQgdGhlIGVuZCB0byBkb2N1bWVu dCBkaXJ0eSAobWF5YmUKPj4+IGV2ZW4gYXMgYSBmaXJzdCBzdGFiIGF0IGtlcm5lbGRvYyBmb3Ig aTkxNV9kcm1fZ2VtX2J1ZmZlcl9vYmplY3QpIHdvdWxkIGJlCj4+PiBhd2Vzb21lLgo+Pj4gLURh bmllbAo+Pgo+PiBJbiBnZW5lcmFsLCBvYmotPmRpcnR5IG1lYW5zIHRoYXQgKHNvbWUgb3IpIGFs bCB0aGUgcGFnZXMgb2YgdGhlIG9iamVjdAo+PiAobWF5KSBoYXZlIGJlZW4gbW9kaWZpZWQgc2lu Y2UgbGFzdCB0aW1lIHRoZSBvYmplY3Qgd2FzIHJlYWQgZnJvbSBiYWNraW5nCj4+IHN0b3JlLCBh bmQgdGhhdCB0aGUgbW9kaWZpZWQgZGF0YSBzaG91bGQgYmUgd3JpdHRlbiBiYWNrIHJhdGhlciB0 aGFuCj4+IGRpc2NhcmRlZC4KPj4KPj4gQ29kZSB0aGF0IHdvcmtzIG9ubHkgb24gZGVmYXVsdCAo Z3R0KSBHRU0gb2JqZWN0cyBtYXkgYmUgYWJsZSB0byBvcHRpbWlzZQo+PiB3cml0ZWJhY2tzIGJ5 IG1hcmtpbmcgaW5kaXZpZHVhbCBwYWdlcyBkaXJ0eSwgcmF0aGVyIHRoYW4gdGhlIG9iamVjdCBh cyBhCj4+IHdob2xlLiBCdXQgbm90IGV2ZXJ5IEdFTSBvYmplY3QgaGFzIGJhY2tpbmcgc3RvcmUs IGFuZCBldmVuIGFtb25nIHRob3NlIHRoYXQKPj4gZG8sIHNvbWUgZG8gbm90IHN1cHBvcnQgcGVy LXBhZ2UgZGlydHkgdHJhY2tpbmcuCj4+Cj4+IFRoZXNlIGFyZSB0aGUgR0VNIG9iamVjdHMgd2Ug bWF5IHdhbnQgdG8gY29uc2lkZXI6Cj4+Cj4+IDEuIERlZmF1bHQgKGd0dCkgb2JqZWN0Cj4+ICAg ICAqIERpc2NvbnRpZ3VvdXMsIGxpdmVzIGluIHBhZ2UgY2FjaGUgd2hpbGUgcGlubmVkIGR1cmlu ZyB1c2UKPj4gICAgICogQmFja2VkIGJ5IHNobWZzIChzd2FwKQo+PiAgICAgKiBwdXRfcGFnZXMo KSB0cmFuc2ZlcnMgZGlydHkgc3RhdHVzIGZyb20gb2JqZWN0IHRvIGVhY2ggcGFnZQo+PiAgICAg ICBiZWZvcmUgcmVsZWFzZQo+PiAgICAgKiBzaG1mcyBlbnN1cmVzIHRoYXQgZGlydHkgdW5waW5u ZWQgcGFnZXMgYXJlIHdyaXR0ZW4gb3V0Cj4+ICAgICAgIGJlZm9yZSBkZWFsbG9jYXRpb24KPj4g ICAgICogQ291bGQgb3B0aW1pc2UgYnkgbWFya2luZyBpbmRpdmlkdWFsIHBhZ2VzIGF0IHBvaW50 IG9mIHVzZSwKPj4gICAgICAgcmF0aGVyIHRoYW4gbWFya2luZyB3aG9sZSBvYmplY3QgYW5kIHRo ZW4gcHVzaGluZyB0byBhbGwgcGFnZXMKPj4gICAgICAgZHVyaW5nIHB1dF9wYWdlcygpCj4+Cj4+ IDIuIFBoeXMgR0VNIG9iamVjdAo+PiAgICAgKiBMaXZlcyBpbiBwaHlzaWNhbGx5LWNvbnRpZ3Vv dXMgc3lzdGVtIG1lbW9yeSwgcGlubmVkIGR1cmluZyB1c2UKPj4gICAgICogQmFja2VkIGJ5IHNo bWZzCj4+ICAgICAqIGlmIG9iai0+ZGlydHksIHB1dF9wYWdlcygpICpjb3BpZXMqIGFsbCBwYWdl cyBiYWNrIHRvIHNobWZzIHZpYQo+PiAgICAgICBwYWdlIGNhY2hlIFJNVwo+PiAgICAgKiBObyBw ZXItcGFnZSB0cmFja2luZywgY2Fubm90IG9wdGltaXNlCj4+Cj4+IDMuIFN0b2xlbiBHRU0gb2Jq ZWN0Cj4+ICAgICAqIExpdmVzIGluIChwaHlzaWNhbGx5LWNvbnRpZ3VvdXMpIHN0b2xlbiBtZW1v cnksIGFsd2F5cyBwaW5uZWQKPj4gICAgICogTm8gYmFja2luZyBzdG9yZSEKPj4gICAgICogb2Jq LT5kaXJ0eSBpcyBpcnJlbGV2YW50IChpZ25vcmVkKQo+PiAgICAgKiBwdXRfcGFnZXMoKSBvbmx5 IGNhbGxlZCBhdCBlbmQtb2YtbGlmZQo+PiAgICAgKiBObyBwZXItcGFnZSB0cmFja2luZyAobm90 IG1lYW5pbmdmdWwgYW55d2F5KQo+Pgo+PiA0LiBVc2VycHRyIEdFTSBvYmplY3QKPj4gICAgICog RGlzY29udGlndW91cywgbGl2ZXMgaW4gcGFnZSBjYWNoZSB3aGlsZSBwaW5uZWQgZHVyaW5nIHVz ZQo+PiAgICAgKiBCYWNrZWQgYnkgdXNlciBwcm9jZXNzIG1lbW9yeSAod2hpY2ggbWF5IHRoZW4g bWFwIHRvIHNvbWUKPj4gICAgICAgYXJiaXRyYXJ5IGZpbGUgbWFwcGluZz8pCj4+ICAgICAqIHB1 dF9wYWdlcygpIHRyYW5zZmVycyBkaXJ0eSBzdGF0dXMgZnJvbSBvYmplY3QgdG8gZWFjaCBwYWdl Cj4+ICAgICAgIGJlZm9yZSByZWxlYXNlCj4+ICAgICAqIGRpcnR5IHBhZ2VzIGFyZSBzdGlsbCBy ZXNpZGVudCBpbiB1c2VyIHNwYWNlLCBjYW4gYmUgc3dhcHBlZAo+PiAgICAgICBvdXQgd2hlbiBu b3QgcGlubmVkCj4+ICAgICAqIENvdWxkIG9wdGltaXNlIGJ5IG1hcmtpbmcgaW5kaXZpZHVhbCBw YWdlcyBhdCBwb2ludCBvZiB1c2UsCj4+ICAgICAgIHJhdGhlciB0aGFuIG1hcmtpbmcgd2hvbGUg b2JqZWN0IGFuZCB0aGVuIHB1c2hpbmcgdG8gYWxsIHBhZ2VzCj4+ICAgICAgIGR1cmluZyBwdXRf cGFnZXMoKQo+Pgo+PiBBcmUgdGhlcmUgYW55IG1vcmU/Cj4+Cj4+IEdpdmVuIHRoaXMgZGl2ZXJz aXR5LCBpdCBtYXkgYmUgd29ydGggYWRkaW5nIGEgZGlydHlfcGFnZSgpIHZmdW5jLCBzbyB0aGF0 Cj4+IGZvciB0aG9zZSBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIHBhZ2UgaXMgZGlydGllZCBB TkQgdGhlIG9iamVjdCB0eXBlCj4+IHN1cHBvcnRzIHBlci1wYWdlIHRyYWNraW5nLCB3ZSBjYW4g dGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyB0byByZWR1Y2UgY29weWluZy4KPj4gRm9yIG9iamVjdHMg dGhhdCBkb24ndCBzdXBwb3J0IHBlci1wYWdlIHRyYWNraW5nLCB0aGUgaW1wbGVtZW50YXRpb24g d291bGQKPj4ganVzdCBzZXQgb2JqLT5kaXJ0eS4KPj4KPj4gRm9yIGV4YW1wbGU6Cj4+ICAgICAg dm9pZCAoKmRpcnR5X3BhZ2UpKG9iaiwgcGFnZW5vKTsKPj4gcG9zc2libHkgd2l0aCB0aGUgYWRk aXRpb25hbCBzZW1hbnRpYyB0aGF0IHBhZ2VubyA9PSAtMSBtZWFucyAnZGlydHkgdGhlCj4+IHdo b2xlIG9iamVjdCcuCj4+Cj4+IEEgY29udmVuaWVudCBmdXJ0aGVyIGZhY2lsaXR5IHdvdWxkIGJl Ogo+PiAgICAgIHN0cnVjdCBwYWdlICppOTE1X2dlbV9vYmplY3RfZ2V0X2RpcnR5X3BhZ2Uob2Jq LCBwYWdlbm8pOwo+PiB3aGljaCBpcyBqdXN0IGxpa2UgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdl KCkgYnV0IHdpdGggdGhlIGFkZGl0aW9uYWwgZWZmZWN0Cj4+IG9mIG1hcmtpbmcgdGhlIHJldHVy bmVkIHBhZ2UgZGlydHkgKGJ5IGNhbGxpbmcgdGhlIGFib3ZlIHZmdW5jKS4KPj4gW0FzaWRlOiBj YW4gd2UgY2FsbCBzZXRfcGFnZV9kaXJ0eSgpIG9uIGEgbm9uLXNobWZzLWJhY2tlZCBwYWdlP10u Cj4+Cj4+IFRoaXMgbWVhbnMgdGhhdCBpbiBhbGwgdGhlIHBsYWNlcyB3aGVyZSBJIGFkZGVkICdv YmotPmRpcnR5ID0gMScgYWZ0ZXIgYQo+PiBrdW5tYXAoKSBjYWxsLCB3ZSB3b3VsZCBpbnN0ZWFk IGp1c3QgY2hhbmdlIHRoZSBlYXJsaWVyIGdldF9wYWdlKCkgdG8KPj4gZ2V0X2RpcnR5X3BhZ2Uo KSBpbnN0ZWFkLCB3aGljaCBwcm92aWRlcyBiZXR0ZXIgbGF5ZXJpbmcuCj4+Cj4+IFRvZ2V0aGVy IHRoZXNlIGNoYW5nZXMgbWVhbiB0aGF0IG9iai0+ZGlydHkgd291bGQgdGhlbiBiZSBhIHB1cmVs eSBwcml2YXRlCj4+IG1lbWJlciBmb3IgdXNlIGJ5IGltcGxlbWVudGF0aW9ucyBvZiBnZXRfcGFn ZXMvcHV0X3BhZ2VzKCkuCj4+Cj4+IE9waW5pb25zPwo+Cj4gSG0sIEkgdGhvdWdodCB3ZSd2ZSBi ZWVuIGNhcmVmdWwgd2l0aCBjaGVja2luZyB0aGF0IGFuIG9iamVjdCBpcyBzb21laG93Cj4gYmFj a2VkIGJ5IHN0cnVjdCBwYWdlcywgYW5kIG9ubHkgdXNlIHRoZSBwYWdlLXdpc2UgYWNjZXNzIGlm IHRoYXQncyB0aGUKPiBjYXNlLiBCdXQgbG9va2luZyBhdCB0aGUgZXhlY2J1ZiByZWxvY2F0ZSBj b2RlIHdlJ3ZlIHByb2JhYmx5IGFscmVhZHkKPiBzY3Jld2VkIHRoaXMgdXAsIG9yIGF0IGxlYXN0 IHdpbGwgd2hlbiB3ZSBleHBvc2Ugc3RvbGVuIHRvIHVzZXJzcGFjZS4KPiBVc2VycHRyIHNob3Vs ZCBzdGlsbCB3b3JrIChzaW5jZSB1bHRpbWF0ZWx5IGl0J3Mgc3RydWN0IHBhZ2UgYmFja2VkKSwg YW5kCj4gcGh5cyBnZW0gb2JqZWN0IGRvZXNuJ3QgbWF0dGVyIChpZiB5b3UgYnV0IHJlbG9jcyBp bnRvIHlvdXIgY3Vyc29yIG9uCj4gZ2VuMi00LjAgeW91IGdldCBhbGwgdGhlIHBpZWNlcykuIEkg dGhpbmsgc3RlcCBvbmUgd291bGQgYmUgbW9yZSBuYXN0eQo+IHRlc3QgY292ZXJhZ2UsIGF0IGxl YXN0IGZvciB0aGUgZXhlY2J1ZiBwYXRoLgo+Cj4gVGhlIG90aGVyIHBhZ2Utd2lzZSBhY2Nlc3Mg cGF0aCBzZWVtIGFsbCBpbnRlcm5hbCwgc28gSSdtIG11Y2ggbGVzcwo+IHdvcnJpZWQgYWJvdXQg dGhvc2UuCj4gLURhbmllbAoKU28gZG9lcyB0aGlzIG1lYW4gdGhhdCBpOTE1X3BhZ2VzX2NyZWF0 ZV9mb3Jfc3RvbGVuKCkgaXNuJ3QgcmVhbGx5IGRvaW5nIAp3aGF0IGl0IHNheXM/IEFmdGVyIHRo YXQgZnVuY3Rpb24gaGFzIGJlZW4gY2FsbGVkLCBvYmotPnBhZ2VzIGlzIGZpbGxlZCAKaW4gLSBi dXQgaXMgaXQgdGhlbiB2YWxpZCB0byBjYWxsIGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZSgpID8K VGhhdCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgKHByZWV4aXN0aW5nKSBlbnRyeSBpbiB0aGUg c3lzdGVtIHBhZ2UgCnRhYmxlcyBmb3IgdGhlIHNwZWNpZmllZCBwYWdlLCBidXQgaXNuJ3QgdGhl IGFub21hbG91cyB0aGluZyBhYm91dCAKc3RvbGVuIG1lbW9yeSB0aGUgZmFjdCB0aGF0IHRoZSBr ZXJuZWwgZG9lc24ndCBrbm93IGFib3V0IGl0IGFuZCBkb2Vzbid0IAppbmNsdWRlIGl0IGluIGl0 cyBwYWdlIHRhYmxlcyBhdCBhbGw/CgpGb3Iga21hcCBwdXJwb3Nlcywgd2UgZG9uJ3QgcmVhbGx5 IG5lZWQgdGhlICdzdHJ1Y3QgcGFnZScgYXMgd2UgY291bGQgCnVzZSBrbWFwX2F0b21pY19wZm4o KSBpbnN0ZWFkLiBTbyBtYXliZSB0byBtYWtlIHN0b2xlbiBvYmplY3RzIHdvcmsgaW4gCmdlbmVy YWwgd2l0aG91dCBldmVyeXRoaW5nIGhhdmluZyB0byBrbm93IHRoZXkncmUgZGlmZmVyZW50LCB3 ZSB3b3VsZCAKbmVlZCB0byBtb3ZlIHRoZSBrbWFwIG9wZXJhdGlvbiBpbnRvIHRoZSB2ZnVuYyBh cyB3ZWxsPyBUaGF0IHdvdWxkIG1lYW4gCnRoZSB2ZnVuYyB3b3VsZCBiZSBzb21ldGhpbmcgbGlr ZSBvYmotPmttYXBfcGFnZShvYmosIHBhZ2VubywgZGlydHkpIApyZXR1cm5pbmcgdGhlIHZhZGRy IG9mIHRoZSBtYXBwZWQgcGFnZS4KClRoaXMgbG9va3MgbGlrZSBpdCB3aWxsIG5lZWQgYSBiaXQg bW9yZSBzdHVkeSBhbmQgZGVzaWduIHNvIHBlcmhhcHMgd2UgCmNvdWxkIGp1c3QgdGFrZSB0aGUg cXVpY2sgZml4IG9mIG1hcmtpbmcgd2hvbGUgb2JqZWN0cyBkaXJ0eSBmb3Igbm93IAood2hpY2gg d2lsbCBhdCBsZWFzdCBnaXZlICpjb3JyZWN0KiBiZWhhdmlvdXIpIGFuZCB0aGVuIHdvcmsgb3V0 IGhvdyB0byAKYXZvaWQgbWFya2luZyB3aG9sZSBvYmplY3RzIGRpcnR5IHdoZXJlIHBvc3NpYmxl LgoKLkRhdmUuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==