From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Simplify the way BC bifurcation state consistency is kept Date: Tue, 10 Mar 2015 15:03:59 +0200 Message-ID: <20150310130359.GG11371@intel.com> References: <20150309162110.GQ24485@phenom.ffwll.local> <1425990754-8723-1-git-send-email-ander.conselvan.de.oliveira@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 0A32A6E6C1 for ; Tue, 10 Mar 2015 06:04:18 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1425990754-8723-1-git-send-email-ander.conselvan.de.oliveira@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan de Oliveira Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXIgMTAsIDIwMTUgYXQgMDI6MzI6MzRQTSArMDIwMCwgQW5kZXIgQ29uc2VsdmFu IGRlIE9saXZlaXJhIHdyb3RlOgo+IFJlbW92ZSB0aGUgZ2xvYmFsIG1vZGVzZXQgcmVzb3VyY2Ug ZnVuY3Rpb24gdGhhdCB3b3VsZCBkaXNhYmxlIHRoZQo+IGJpZnVyY2F0aW9uIGJpdCwgYW5kIGlu c3RlYWQgZW5hYmxlL2Rpc2FibGUgaXQgd2hlbiBlbmFibGluZyBvcgo+IGRpc2FibGluZyB0aGUg cGNoIHRyYW5zY29kZXIuIFRoZSBjaGVja3MgYmVmb3JlIHRoZSBtb2RlIHNldCBzaG91bGQKPiBl bnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiBpcyB2YWxpZCwgc28gaXQgc2hvdWxkIGJlIHNh ZmUgdG8gZG8gaXQKPiBzby4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBBbmRlciBDb25zZWx2YW4gZGUg T2xpdmVpcmEgPGFuZGVyLmNvbnNlbHZhbi5kZS5vbGl2ZWlyYUBpbnRlbC5jb20+Cj4gLS0tCj4g Cj4gT24gTW9uLCAyMDE1LTAzLTA5IGF0IDE3OjIxICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3Rl Ogo+ID4gV2l0aCBhdG9taWMgd2UgbmVlZCB0byBwcm9iYWJseSBsb29rIGF0IGNydGNfc3RhdGUt Pm1vZGVfY2hhbmdlZC4gQXMgYW4KPiA+IGludGVyaW0gc29sdXRpb24gd2UgaGF2ZSB0aGUgc2Ft ZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUgaW4gdGhlCj4gPiBtb2Rlc2V0X3BpcGVzIGJpdG1hc2su IEkgdGhpbmsgcmVwbGFjaW5nIHRoZSBjaGVjayBmb3IgaW50ZWxfY3J0Yy0+YWN0aXZlCj4gPiB3 aXRoICEobW9kZXNldF9waXBlcyAmICgxPDxpbnRlbF9jcnRjLT5waXBlKSkgc2hvdWxkIHdvcmsu Cj4gCj4gSSBsb29rZWQgaW50byB0aGF0IHNvbHV0aW9uLCBidXQgaW52b2x2ZXMgcGFzc2luZyBt b2Rlc2V0X3BpcGVzIHdheSBkb3duCj4gaW50byB0aGUgY2FsbCBzdGFjaywgc28gSSBzdGFydGVk IGxvb2tpbmcgZm9yIGEgZGlmZmVyZW50IHNvbHV0aW9uLiBEbyB5b3UKPiBzZWUgYW55IGNhdmVh dCB3aXRoIHRoaXMgYXBwcm9hY2g/Cj4gCj4gVGhhbmtzLAo+IEFuZGVyCj4gCj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDYwICsrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9ucygrKSwg MzkgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGlu ZGV4IDQwMDhiZjQuLmVjYTVhNDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gQEAgLTEwMSw2ICsxMDEsOCBAQCBzdGF0aWMgdm9pZCBjaHZfcHJlcGFyZV9wbGwoc3Ry dWN0IGludGVsX2NydGMgKmNydGMsCj4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcpOwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9iZWdpbl9jcnRjX2NvbW1p dChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ICBzdGF0aWMgdm9pZCBpbnRlbF9maW5pc2hfY3J0 Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKTsKPiArc3RhdGljIHZvaWQgaXZ5YnJpZGdl X3VwZGF0ZV9mZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMs Cj4gKwkJCQkJCWJvb2wgcGlwZV9hY3RpdmUpOwo+ICAKPiAgc3RhdGljIHN0cnVjdCBpbnRlbF9l bmNvZGVyICppbnRlbF9maW5kX2VuY29kZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yLCBpbnQgcGlwZSkKPiAgewo+IEBAIC0xOTU2LDYgKzE5NTgsOCBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV9kaXNhYmxlX3BjaF90cmFuc2NvZGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPiAgCQkJCQkgICAgZW51bSBwaXBlIHBpcGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+ICsJc3RydWN0IGludGVsX2NydGMgKmNydGMg PQo+ICsJCXRvX2ludGVsX2NydGMoZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBwaW5nW3BpcGVd KTsKPiAgCXVpbnQzMl90IHJlZywgdmFsOwo+ICAKPiAgCS8qIEZESSByZWxpZXMgb24gdGhlIHRy YW5zY29kZXIgKi8KPiBAQCAtMTk4MCw2ICsxOTg0LDkgQEAgc3RhdGljIHZvaWQgaXJvbmxha2Vf ZGlzYWJsZV9wY2hfdHJhbnNjb2RlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Cj4gIAkJdmFsICY9IH5UUkFOU19DSElDS0VOMl9USU1JTkdfT1ZFUlJJREU7Cj4gIAkJSTkxNV9X UklURShyZWcsIHZhbCk7Cj4gIAl9Cj4gKwo+ICsJaWYgKElTX0lWWUJSSURHRShkZXYpKQo+ICsJ CWl2eWJyaWRnZV91cGRhdGVfZmRpX2JjX2JpZnVyY2F0aW9uKGNydGMsIGZhbHNlKTsKPiAgfQo+ ICAKPiAgc3RhdGljIHZvaWQgbHB0X2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQo+IEBAIC0zMTUzLDMyICszMTYwLDYgQEAgc3RhdGljIGJv b2wgcGlwZV9oYXNfZW5hYmxlZF9wY2goc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIAlyZXR1 cm4gY3J0Yy0+YmFzZS5zdGF0ZS0+ZW5hYmxlICYmIGNydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNv ZGVyOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpdmJfbW9kZXNldF9nbG9iYWxfcmVzb3VyY2Vz KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gLXsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqcGlw ZV9CX2NydGMgPQo+IC0JCXRvX2ludGVsX2NydGMoZGV2X3ByaXYtPnBpcGVfdG9fY3J0Y19tYXBw aW5nW1BJUEVfQl0pOwo+IC0Jc3RydWN0IGludGVsX2NydGMgKnBpcGVfQ19jcnRjID0KPiAtCQl0 b19pbnRlbF9jcnRjKGRldl9wcml2LT5waXBlX3RvX2NydGNfbWFwcGluZ1tQSVBFX0NdKTsKPiAt CXVpbnQzMl90IHRlbXA7Cj4gLQo+IC0JLyoKPiAtCSAqIFdoZW4gZXZlcnl0aGluZyBpcyBvZmYg ZGlzYWJsZSBmZGkgQyBzbyB0aGF0IHdlIGNvdWxkIGVuYWJsZSBmZGkgQgo+IC0JICogd2l0aCBh bGwgbGFuZXMuIE5vdGUgdGhhdCB3ZSBkb24ndCBjYXJlIGFib3V0IGVuYWJsZWQgcGlwZXMgd2l0 aG91dAo+IC0JICogYW4gZW5hYmxlZCBwY2ggZW5jb2Rlci4KPiAtCSAqLwo+IC0JaWYgKCFwaXBl X2hhc19lbmFibGVkX3BjaChwaXBlX0JfY3J0YykgJiYKPiAtCSAgICAhcGlwZV9oYXNfZW5hYmxl ZF9wY2gocGlwZV9DX2NydGMpKSB7Cj4gLQkJV0FSTl9PTihJOTE1X1JFQUQoRkRJX1JYX0NUTChQ SVBFX0IpKSAmIEZESV9SWF9FTkFCTEUpOwo+IC0JCVdBUk5fT04oSTkxNV9SRUFEKEZESV9SWF9D VEwoUElQRV9DKSkgJiBGRElfUlhfRU5BQkxFKTsKPiAtCj4gLQkJdGVtcCA9IEk5MTVfUkVBRChT T1VUSF9DSElDS0VOMSk7Cj4gLQkJdGVtcCAmPSB+RkRJX0JDX0JJRlVSQ0FUSU9OX1NFTEVDVDsK PiAtCQlEUk1fREVCVUdfS01TKCJkaXNhYmxpbmcgZmRpIEMgcnhcbiIpOwo+IC0JCUk5MTVfV1JJ VEUoU09VVEhfQ0hJQ0tFTjEsIHRlbXApOwo+IC0JfQo+IC19Cj4gLQo+ICAvKiBUaGUgRkRJIGxp bmsgdHJhaW5pbmcgZnVuY3Rpb25zIGZvciBJTEsvSWJleHBlYWsuICovCj4gIHN0YXRpYyB2b2lk IGlyb25sYWtlX2ZkaV9saW5rX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiAgewo+IEBA IC0zODM0LDQxICszODE1LDQ0IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF90cmFuc2NvZGVy X3NldF90aW1pbmdzKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICAJCSAgIEk5MTVfUkVBRChW U1lOQ1NISUZUKGNwdV90cmFuc2NvZGVyKSkpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjcHRf ZW5hYmxlX2ZkaV9iY19iaWZ1cmNhdGlvbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtzdGF0 aWMgdm9pZCBjcHRfZW5hYmxlX2ZkaV9iY19iaWZ1cmNhdGlvbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBib29sIGVuYWJsZSkKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVpbnQzMl90IHRlbXA7Cj4gIAo+ICAJdGVtcCA9 IEk5MTVfUkVBRChTT1VUSF9DSElDS0VOMSk7Cj4gLQlpZiAodGVtcCAmIEZESV9CQ19CSUZVUkNB VElPTl9TRUxFQ1QpCj4gKwlpZiAoISEodGVtcCAmIEZESV9CQ19CSUZVUkNBVElPTl9TRUxFQ1Qp ID09IGVuYWJsZSkKPiAgCQlyZXR1cm47Cj4gIAo+ICAJV0FSTl9PTihJOTE1X1JFQUQoRkRJX1JY X0NUTChQSVBFX0IpKSAmIEZESV9SWF9FTkFCTEUpOwo+ICAJV0FSTl9PTihJOTE1X1JFQUQoRkRJ X1JYX0NUTChQSVBFX0MpKSAmIEZESV9SWF9FTkFCTEUpOwo+ICAKPiAtCXRlbXAgfD0gRkRJX0JD X0JJRlVSQ0FUSU9OX1NFTEVDVDsKPiAtCURSTV9ERUJVR19LTVMoImVuYWJsaW5nIGZkaSBDIHJ4 XG4iKTsKPiArCXRlbXAgJj0gfkZESV9CQ19CSUZVUkNBVElPTl9TRUxFQ1Q7Cj4gKwlpZiAoZW5h YmxlKQo+ICsJCXRlbXAgfD0gRkRJX0JDX0JJRlVSQ0FUSU9OX1NFTEVDVDsKPiArCj4gKwlEUk1f REVCVUdfS01TKCIlc2FibGluZyBmZGkgQyByeFxuIiwgZW5hYmxlID8gImVuIiA6ICJkaXMiKTsK PiAgCUk5MTVfV1JJVEUoU09VVEhfQ0hJQ0tFTjEsIHRlbXApOwo+ICAJUE9TVElOR19SRUFEKFNP VVRIX0NISUNLRU4xKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaXZ5YnJpZGdlX3VwZGF0ZV9m ZGlfYmNfYmlmdXJjYXRpb24oc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCj4gK3N0YXRp YyB2b2lkIGl2eWJyaWRnZV91cGRhdGVfZmRpX2JjX2JpZnVyY2F0aW9uKHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjLAo+ICsJCQkJCQlib29sIHBpcGVfYWN0aXZlKQo+ICB7Cj4gIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfY3J0Yy0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAgCXN3aXRj aCAoaW50ZWxfY3J0Yy0+cGlwZSkgewo+ICAJY2FzZSBQSVBFX0E6Cj4gIAkJYnJlYWs7Cj4gIAlj YXNlIFBJUEVfQjoKPiAtCQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5mZGlfbGFuZXMgPiAyKQo+ IC0JCQlXQVJOX09OKEk5MTVfUkVBRChTT1VUSF9DSElDS0VOMSkgJiBGRElfQkNfQklGVVJDQVRJ T05fU0VMRUNUKTsKPiArCQlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5mZGlfbGFuZXMgPiAyICYm IHBpcGVfYWN0aXZlKQo+ICsJCQljcHRfZW5hYmxlX2ZkaV9iY19iaWZ1cmNhdGlvbihkZXYsIGZh bHNlKTsKPiAgCQllbHNlCj4gLQkJCWNwdF9lbmFibGVfZmRpX2JjX2JpZnVyY2F0aW9uKGRldik7 Cj4gKwkJCWNwdF9lbmFibGVfZmRpX2JjX2JpZnVyY2F0aW9uKGRldiwgdHJ1ZSk7Cj4gIAo+ICAJ CWJyZWFrOwo+ICAJY2FzZSBQSVBFX0M6Cj4gLQkJY3B0X2VuYWJsZV9mZGlfYmNfYmlmdXJjYXRp b24oZGV2KTsKPiArCQljcHRfZW5hYmxlX2ZkaV9iY19iaWZ1cmNhdGlvbihkZXYsIHBpcGVfYWN0 aXZlKTsKPiAgCgpJdCBzZWVzIGNvdWxkIG5vdyBjaGFuZ2UgdGhlIGJpZnVyY2F0aW9uIHdoaWxl IHBpcGUgQiBpcyBhY3RpdmUgKGJ1dCBvbmx5CnVzaW5nIHR3byBsYW5lcykuIE5vdCBzdXJlIGlm IHRoZSBvbGQgY29kZSBkaWQgdGhhdCB0b28sIG9yIGlmIGl0IG1pZ2h0CmNhdXNlIHByb2JsZW1z LgoKQWxzbyBkZXBlbmRpbmcgb24gdGhlIG9yZGVyIHlvdSBkaXNhYmxlIHRoZSBwaXBlcyB5b3Ug bWlnaHQgZW5kIHVwIHdpdGgKYmlmdXJjYXRpb24gZW5hYmxlZCBvciBkaXNhYmxlZC4KCkl0IHNl ZW1zIHRvIG1lIHRoYXQgdGhlIHNpbXBsZXN0IHNvbHV0aW9uIHNob3VsZCBiZSB0byBoYXZlIGJp ZnVyY2F0aW9uCmVuYWJsZWQgYXQgYWxsIHRpbWVzLCBleGNlcHQgd2hlbiBwaXBlIEIgcmVhbGx5 IG5lZWRzIHRoZSBmb3VyIGxhbmVzLgpUaGVuIHRoZSBoYXJkd2FyZSBzdGF0ZSB3b3VsZCBvbmx5 IG5lZWQgdG8gYmUgY2hhbmdlZCB3aGVuCmVuYWJsaW5nL2Rpc2FibGluZyBwaXBlIEIgd2l0aCBm b3VyIGxhbmVzLiBSZXN0IG9mIHRoZSB0aW1lCmNydGMtPmVuYWJsZWQgYW5kIGZkaV9sYW5lcyBz aG91bGQgYmUgYWJsZSB0byB0ZWxsIHVzIHdoaWNoCmNvbmZpZ3VyYXRpb24gaXMgcG9zc2libGUg YW5kIHdoaWNoIG5vdC4gT3IgYW0gSSBtaXNzaW5nIHNvbWV0aGluZz8KCldlbGwsIGV2ZW50dWFs bHkgd2Ugd2FudCB0byB0aWUgdGhpcyBpbnRvIHRoZSBhdG9taWMgc3RhdGUgc28gdGhhdCB3ZQpj YW4gYWN0YXVsbHkgaGF2ZSBwaXBlIEIgZHJvcCBpbnRvIHR3byBsYW5lIG1vZGUgaWYgcGlwZSBD IG5lZWRzIHRoZQpsYW5lcyAoYW5kIHBpcGUgQiBjYW4gc3RpbGwgb3BlcmF0ZSB3aXRoIHR3byBs YW5lcykuIEJ1dCBJIGd1ZXNzIHRoYXQncwpzdGlsbCBub3QgYWNoaWV2YWJsZSB3aXRoIHRoZSBj dXJyZW50IGNvZGUuCgoKPiAgCQlicmVhazsKPiAgCWRlZmF1bHQ6Cj4gQEAgLTM4OTUsNyArMzg3 OSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3BjaF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpj cnRjKQo+ICAJYXNzZXJ0X3BjaF90cmFuc2NvZGVyX2Rpc2FibGVkKGRldl9wcml2LCBwaXBlKTsK PiAgCj4gIAlpZiAoSVNfSVZZQlJJREdFKGRldikpCj4gLQkJaXZ5YnJpZGdlX3VwZGF0ZV9mZGlf YmNfYmlmdXJjYXRpb24oaW50ZWxfY3J0Yyk7Cj4gKwkJaXZ5YnJpZGdlX3VwZGF0ZV9mZGlfYmNf YmlmdXJjYXRpb24oaW50ZWxfY3J0YywgdHJ1ZSk7Cj4gIAo+ICAJLyogV3JpdGUgdGhlIFRVIHNp emUgYml0cyBiZWZvcmUgZmRpIGxpbmsgdHJhaW5pbmcsIHNvIHRoYXQgZXJyb3IKPiAgCSAqIGRl dGVjdGlvbiB3b3Jrcy4gKi8KPiBAQCAtMTMwNTYsOCArMTMwNDAsNiBAQCBzdGF0aWMgdm9pZCBp bnRlbF9pbml0X2Rpc3BsYXkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCX0gZWxzZSBpZiAo SVNfSVZZQlJJREdFKGRldikpIHsKPiAgCQkvKiBGSVhNRTogZGV0ZWN0IEIwKyBzdGVwcGluZyBh bmQgdXNlIGF1dG8gdHJhaW5pbmcgKi8KPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5mZGlfbGlua190 cmFpbiA9IGl2Yl9tYW51YWxfZmRpX2xpbmtfdHJhaW47Cj4gLQkJZGV2X3ByaXYtPmRpc3BsYXku bW9kZXNldF9nbG9iYWxfcmVzb3VyY2VzID0KPiAtCQkJaXZiX21vZGVzZXRfZ2xvYmFsX3Jlc291 cmNlczsKPiAgCX0gZWxzZSBpZiAoSVNfSEFTV0VMTChkZXYpIHx8IElTX0JST0FEV0VMTChkZXYp KSB7Cj4gIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4gPSBoc3dfZmRpX2xpbmtf dHJhaW47Cj4gIAl9IGVsc2UgaWYgKElTX1ZBTExFWVZJRVcoZGV2KSkgewo+IC0tIAo+IDIuMS4w Cj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJ bnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK Ci0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cg==