From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v4 0/6] Finally fix watermarks Date: Mon, 1 Aug 2016 14:50:32 +0300 Message-ID: <20160801115032.GN4329@intel.com> References: <1469554483-24999-1-git-send-email-cpaul@redhat.com> <20160729000352.GR32025@intel.com> <20160729093905.GU4329@intel.com> <1469818089.23735.32.camel@redhat.com> <20160729192620.GK4329@intel.com> <20160729204126.GU32025@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20160729204126.GU32025@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdWwgMjksIDIwMTYgYXQgMDE6NDE6MjZQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBPbiBGcmksIEp1bCAyOSwgMjAxNiBhdCAxMDoyNjoyMFBNICswMzAwLCBWaWxsZSBTeXJq w6Rsw6Qgd3JvdGU6Cj4gPiBPbiBGcmksIEp1bCAyOSwgMjAxNiBhdCAwMjo0ODowOVBNIC0wNDAw LCBMeXVkZSB3cm90ZToKPiA+ID4gU28gSSd2ZSBiZWVuIHdvcmtpbmcgb24gdHJ5aW5nIHRvIGZp eCB0aGlzIGVudGlyZWx5IGFnYWluIChlLmcuIHdyaXRpbmcKPiA+ID4gdGhlIGRkYiBwcm9wZXJs eSksIHNpbmNlIGZyb20gYnVnIHJlcG9ydHMgaXQgc3RpbGwgZG9lc24ndCBzb3VuZCBsaWtlCj4g PiA+IHdlJ3ZlIGdvdCBlbm91Z2ggd29ya2Fyb3VuZHMgdG8gbWFrZSB0aGlzIHRvbGVyYWJsZS4g SSd2ZSBzaG93biB0aGlzIHRvCj4gPiA+IG1hdHQgcm9wZXIsIGJ1dCBJIHNob3VsZCBwcm9iYWJs eSBwb3N0IHdoYXQgSSd2ZSBiZWVuIHRyeWluZyB0byBkbyBmb3IKPiA+ID4geW91IGFzIHdlbGwu Cj4gPiA+IAo+ID4gPiBTbyB0aGUgYXBwcm9hY2ggSSBjYW1lIHVwIHdpdGggaXMgaGVyZQo+ID4g PiAKPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2x5dWRlL2xpbnV4L3RyZWUvd2lwL3NrbC1maXgt d21zLXY1cjIKPiA+ID4gCj4gPiA+IE15IGFwcHJvYWNoIGRpZmZlcnMgYSBsaXR0bGUgYml0IGZy b20gd2hhdCB0aGUgYnNwZWMgcmVjb21tZW5kcywgYnV0IEkKPiA+ID4gdGhpbmsgaXQncyBnb2lu ZyB0byBiZSBhIGJpdCBlYXNpZXIgdG8gaW1wbGVtZW50LiBBdCB0aGUgZW5kIG9mIGFsbCB0aGUK PiA+ID4gY2hhbmdlcyBJJ20gYXR0ZW1wdGluZyBpdCBzaG91bGQgbG9vayBsaWtlIHRoaXM6Cj4g PiA+IAo+ID4gPiAgKiBXZSBubyBsb25nZXIgaGF2ZSBhIGdsb2JhbCB3YXRlcm1hcmsgdXBkYXRl IGZvciBza2wKPiA+ID4gICogQSBuZXcgaG9vayBjYWxsZWQgInVwZGF0ZV9kZGJzIiBpcyBhZGRl ZCB0byBpOTE1X2Rpc3BsYXlfZnVuY3MuIFRoaXMKPiA+ID4gICAgZ2V0cyBjYWxsZWQgaW4gaW50 ZWxfYXRvbWljX2NvbW1pdF90YWlsKCkgYWZ0ZXIgd2UndmUgZGlzYWJsZWQgYW55Cj4gPiA+ICAg IENSVENzIHRoYXQgbmVlZGVkIGRpc2FibGluZywgYW5kIGJlZm9yZSB3ZSBiZWdpbiBlbmFibGlu Zy91cGRhdGluZwo+ID4gPiAgICBDUlRDcwo+ID4gPiAgKiBCZWNhdXNlIHBpcGUgZGRiIGFsbG9j YXRpb25zIChub3QgdGhlIGlubmVyLXBpcGUgZGRiIGFsbG9jYXRpb25zCj4gPiA+ICAgIHRoYXQg YXBwbHkgdG8gZWFjaCBwaXBlJ3MgcGxhbmVzKSBvbmx5IGNoYW5nZSB3aGlsZQo+ID4gPiAgICBl bmFibGluZy9kaXNhYmxpbmcgY3J0Y3M6Cj4gPiA+ICAgICAqIFBhc3MgMTogRmluZCB3aGljaCBw aXBlJ3MgbmV3IGRkYiBhbGxvY2F0aW9uIHdvbid0IG92ZXJsYXAgd2l0aAo+ID4gPiAgICAgICBh bm90aGVyIHBpcGUncyBwcmV2aW91cyBhbGxvY2F0aW9uLCBhbmQgdXBkYXRlIHRoYXQgcGlwZSBm aXJzdAo+ID4gPiAgICAgKiBQYXNzIDI6IFVwZGF0ZSB0aGUgYWxsb2NhdGlvbiBvZiB0aGUgcmVt YWluaW5nIHBpcGUKPiA+ID4gCj4gPiA+IEhlcmUncyBhbiBpbGx1c3RyYXRpb24gb2Ygd2hhdCB0 aGlzIGxvb2tzIGxpa2UuIFBhcnRzIG9mIHRoZSBkZGIgbm90Cj4gPiA+IGJlaW5nIHVzZWQgYnkg YW55IENSVENzIGFyZSBtYXJrZWQgb3V0IHdpdGggJ3gnczoKPiA+ID4gCj4gPiA+IFdpdGggcGlw ZSBBIGVuYWJsZWQsIHdlIGVuYWJsZSBwaXBlIEI6Cj4gPiA+IEluaXRpYWwgRERCOiDCoCDCoHwg wqAgwqAgwqAgwqAgwqAgQSDCoCDCoCDCoCDCoCDCoCB8Cj4gPiA+IHVwZGF0ZV9kZGJzOiDCoCDC oHwgwqAgwqAgQSDCoCDCoCB8eHh4eHh4eHh4eHh8IFBhc3MgMQo+ID4gPiBFbmFibGUgcGlwZSBC OiDCoHwgwqAgwqAgQSDCoCDCoCB8IMKgIMKgIEIgwqAgwqAgfAo+ID4gPiAKPiA+ID4gV2l0aCBw aXBlcyBCIGFuZCBBIGFjdGl2ZSwgd2UgZW5hYmxlIHBpcGUgQzoKPiA+ID4gCj4gPiA+IEluaXRp YWwgRERCOiDCoCDCoHwgwqAgwqAgQiDCoCDCoCB8IMKgIMKgIEEgwqAgwqAgfAo+ID4gPiB1cGRh dGVfZGRiczogwqAgwqB8IMKgIEIgwqAgfHh4eHwgwqAgwqAgQSDCoCDCoCB8IFBhc3MgMQo+ID4g PiB1cGRhdGVfZGRiczogwqAgwqB8IMKgIEIgwqAgfCDCoCBBIMKgIHx4eHh4eHh4fCBQYXNzIDIK PiA+ID4gRW5hYmxlIHBpcGUgQzogwqB8IMKgIEIgwqAgfCDCoCBBIMKgIHwgwqAgQyDCoCB8Cj4g PiA+IAo+ID4gPiBXaXRoIHBpcGVzIEEsIEIsIGFuZCBDIGFjdGl2ZSwgd2UgZGlzYWJsZSBCOgo+ ID4gPiBJbml0aWFsIEREQjogwqAgwqB8IMKgIEEgwqAgfCDCoCBCIMKgIHwgwqAgQyDCoCB8Cj4g PiA+IERpc2FibGUgcGlwZSBCOiB8IMKgIEEgwqAgfHh4eHh4eHh8IMKgIEMgwqAgfAo+ID4gPiB1 cGRhdGVfZGRiczogwqAgwqB8IMKgIMKgIEEgwqAgwqAgfCDCoCDCoCBDIMKgIMKgIHwgUGFzcyAx Cj4gPiA+IFNpbmNlIG5laXRoZXIgcGlwZSdzIG5ldyBhbGxvY2F0aW9uIG92ZXJsYXBwZWQsIHdl IHNraXAgcGFzcyAyCj4gPiA+IAo+ID4gPiBBbm90aGVyIGFsbG9jYXRpb24gd2l0aCBBLCBCLCBh bmQgQyBhY3RpdmUsIGRpc2FibGluZyBBOgo+ID4gPiBJbml0aWFsIEREQjogwqAgwqB8IMKgIEEg wqAgfCDCoCBCIMKgIHwgwqAgQyDCoCB8Cj4gPiA+IERpc2FibGUgcGlwZSBBOiB8eHh4eHh4eHwg wqAgQiDCoCB8IMKgIEMgwqAgfAo+ID4gPiB1cGRhdGVfZGRiczogwqAgwqB8IMKgIMKgIEIgwqAg wqAgfHh4eHwgwqAgQyDCoCB8IFBhc3MgMQo+ID4gPiB1cGRhdGVfZGRiczogwqAgwqB8IMKgIMKg IEIgwqAgwqAgfCDCoCDCoCBDIMKgIMKgIHwgUGFzcyAyCj4gPiA+IAo+ID4gPiBUaGlzIHNob3Vs ZCBlbnN1cmUgd2UgY2FuIGFsd2F5cyBtb3ZlIGFyb3VuZCB0aGUgYWxsb2NhdGlvbnMgb2YgcGlw ZXMKPiA+ID4gd2l0aG91dCB0aGVtIGV2ZXIgb3ZlcmxhcHBpbmcgYW5kIGV4cGxvZGluZy4KPiA+ IAo+ID4gVGhhdCdzIHdoYXQgdGhlIGN1cnJlbnQgZmx1c2ggdGhpbmcgZG9lcywgb3IgYXQgbGVh c3QgdGhhdCB3aGF0IGl0IHVzZWQKPiA+IHRvIGRvIGF0IGxlYXN0LiBOb3Qgc3VyZSBpdCdzIHJl YWxseSBkb2luZyBpdCBhbnltb3JlLCBidXQgSSdtIHByZXR0eQo+ID4gc3VyZSB0aGUgb3JkZXIg aW4gd2hpY2ggaXQgZGlkIHRoaW5ncyB3YXMgc291bmQgYXQgc29tZSBwb2ludC4KPiA+IAo+ID4g PiAKPiA+ID4gVGhpcyBicmFuY2ggZG9lc24ndCBlbnRpcmVseSBmaXggdW5kZXJydW4gaXNzdWVz LCBidXQgSSdtIG1vc3RseSBzdXJlCj4gPiA+IHRoYXQncyB0aGUgZmF1bHQgb2Ygc3RpbGwgbm90 IGhhdmluZyByZW1vdmVkIHRoZSBnbG9iYWwgd20gdXBkYXRlIGhvb2sKPiA+ID4geWV0ICh3aGlj aCBpcyBsZWFkaW5nIHRvIGFkZGl0aW9uYWwgcGlwZSBmbHVzaGVzIGluIHBsYWNlcyB0aGV5Cj4g PiA+IHNob3VsZG4ndCBiZSk6Cj4gPiAKPiA+IFdlbGwgaXQgc2hvdWxkIGJhc2ljYWxseSBib2ls IGRvd24gdG8gcy91cGRhdGVfd20vdXBkYXRlX2RkYi8KPiA+IE9ubHkgRERCIHJlYWxsb2NhdGlv biByZWFsbHkgd2FycmFudHMgYSBnbG9iYWwgaG9vay4gRXZlcnl0aGluZyBlbHNlCj4gPiBzaG91 bGQgYmUgaGFuZGxlZCB2aWEgcGVyLWNydGMgaG9va3MsIG9uIGFsbCBwbGF0Zm9ybXMuCj4gCj4g SSBkb24ndCB0aGluayB3ZSB3YW50IGV2ZW4gdXBkYXRlX2RkYi4gIFdlIHdhbnQgKmNhbGN1bGF0 ZV9kZGIqIHRvIGJlIGEKPiBnbG9iYWwgaG9vayBkdXJpbmcgdGhlIGF0b21pYyBjaGVjayBwaGFz ZSAoYW5kIHdlIGRvIGhhdmUgdGhhdCB0b2RheSksCj4gYnV0IHdoZW4gd2UgZ2V0IGFyb3VuZCB0 byB0aGUgY29tbWl0IHBoYXNlIGFuZCBzdGFydCB3cml0aW5nIHN0dWZmIHRvCj4gaGFyZHdhcmUs IHdlIHdhbnQgdG8gcHJvZ3JhbSB0aGUgcGVyLXBpcGUgRERCIGVudHJpZXMgYXQgdGhlIHNhbWUg dGltZQo+IHdlIHByb2dyYW0gdGhlIFdNJ3MgYW5kIHJlZ3VsYXIgcGxhbmUgcmVnaXN0ZXJzIChz aW5jZSB0aGV5IHNob3VsZCBiZQo+IGRvdWJsZSBidWZmZXJlZCBhbmQgZmx1c2hlZCBvdXQgdGhl IHNhbWUgd2F5KS4gIFdlIGp1c3QgbmVlZCB0byBtYWtlCj4gc3VyZSB0aGF0IHRoZSBvcmRlciB3 ZSBwcm9jZXNzIHBpcGVzIGluIGZvbGxvd3MgdGhlIHNwZWNpYWwgZmx1c2hpbmcKPiBydWxlcyBu b3RlZCBhYm92ZSwgd2hpY2ggaXMgd2hhdCBteSBwc2V1ZG8tcGF0Y2hlcyB3ZXJlIHRyeWluZyB0 bwo+IGRlc2NyaWJlLgoKTXkgY29tbWVudHMgYXJlIHcuci50LiB0aGUgc2NoZW1lIHdoZXJlIHdl IGRvbid0IGxvY2sgZG93biBhbGwgdGhlIGNydGNzCmZvciBldmVyeSBEREIgdXBkYXRlLgoKPiAK PiA+IAo+ID4gPiAKPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2x5dWRlL2xpbnV4L3RyZWUvd2lw L3NrbC1maXgtd21zLXY1cjIKPiA+ID4gCj4gPiA+IEFzIGZvciB1cGRhdGluZyBpbm5lci1waXBl IGRkYiBhbGxvY2F0aW9ucyBmb3IgZWFjaCBwbGFuZSBvbiBhIHBpcGUsIHdlCj4gPiA+IHNob3Vs ZCBiZSBhYmxlIHRvIGp1c3QgZG8gdGhhdCBhdCB0aGUgc2FtZSB0aW1lIHdlIHVwZGF0ZSBlYWNo IHBpcGUncwo+ID4gPiB3YXRlcm1hcmtzCj4gPiAKPiA+IFllcy4KPiA+IAo+ID4gTm9uZSBvZiB0 aGF0IGNoYW5nZXMgd2hhdCBJIHNhaWQgYmVmb3JlIHRob3VnaC4gRWl0aGVyIHlvdSBuZWVkIHRv Cj4gPiBsb2NrIGRvd24gZXZlcnl0aGluZyB3aGVuIHRoZSBEREIgbmVlZHMgdG8gYmUgcmVwYXJ0 aXRpb25lZCwgb3IgeW91Cj4gPiBkbyB3aGF0IEkgb3V0bGluZWQgaW4gdGhlIHByZXZpb3VzIG1h aWwuIE90aGVyd2lzZSBhIHBsYW5lIHVwZGF0ZQo+ID4gZXRjLiBoYXBwZW5pbmcgaW4gcGFyYWxs ZWwgd2lsbCBzdGlsbCBibG93IHVwIG9uIGFjY291bnQgb2YgdGhlIEREQgo+ID4gc3RhdGUgY2hh bmdpbmcgdW5kZXJuZWF0aCB0aGUgcGxhbmUgdXBkYXRlIHNvbWV3aGVyZSBiZXR3ZWVuIGNvbXB1 dGUKPiA+IGFuZCBjb21taXQuIEkgY2FuJ3QgcmVhbGx5IHRoaW5rIG9mIHRoaXJkIG9wdGlvbiB0 aGF0IHdvdWxkIHdvcmsuCj4gCj4gWWVwLCBJIGFncmVlIHdpdGggYWxsIG9mIHRoaXMgYXMgd2Vs bCAoYW5kIHdlIGRvIGxvY2sgZXZlcnl0aGluZyBkb3duCj4gdG9kYXkgZm9yIGV4YWN0bHkgdGhp cyByZWFzb24pLiAgSXQncyB1bmZvcnR1bmF0ZSB0aGF0IHdlIG5lZWQgYQo+IEJLTC1zdHlsZSBt ZWNoYW5pc20gZm9yIHRoZSBEREIsIGJ1dCBhcyBJIG5vdGVkIGluIHRoZSBvdGhlciBtZXNzYWdl LAo+IHVzaW5nIGZpeGVkIHByZS1wYXJ0aXRpb25pbmcgZm9yIGxldmVsIDAgYnJlYWtzIHRvbyBt YW55IGFkZGl0aW9uYWwgdXNlCj4gY2FzZXMuICA6LSgKCkhtbS4gV2VsbCB0aGF0IHN1Y2tzIGEg Yml0LgoKPiAKPiAKPiBNYXR0Cj4gCj4gPiAKPiA+ID4gCj4gPiA+IExldCBtZSBrbm93IHdoYXQg eW91IHRoaW5rCj4gPiA+IAlMeXVkZQo+ID4gPiAKPiA+ID4gT24gRnJpLCAyMDE2LTA3LTI5IGF0 IDEyOjM5ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gVGh1LCBKdWwg MjgsIDIwMTYgYXQgMDU6MDM6NTJQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90ZToKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gVGhpcyBpcyBjb21wbGV0ZWx5IHVudGVzdGVkIChhbmQgcHJvYmFibHkgaG9y cmlibHkgYnJva2VuL2J1Z2d5KSwKPiA+ID4gPiA+IGJ1dAo+ID4gPiA+ID4gaGVyZSdzIGEgcXVp Y2sgbW9ja3VwIG9mIHRoZSBnZW5lcmFsIGFwcHJvYWNoIEkgd2FzIHRoaW5raW5nIGZvcgo+ID4g PiA+ID4gZW5zdXJpbmcgRERCICYgV00ncyBjYW4gYmUgdXBkYXRlZCB0b2dldGhlciB3aGlsZSBl bnN1cmluZyB0aGUKPiA+ID4gPiA+IHRocmVlLXN0ZXAgcGlwZSBmbHVzaGluZyBwcm9jZXNzIGlz IGhvbm9yZWQ6Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqBodHRwczovL2dp dGh1Yi5jb20vbWF0dHJvcGUva2VybmVsL2NvbW1pdHMvZXhwZXJpbWVudGFsL2x5dQo+ID4gPiA+ ID4gZGVfZGRiCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEJhc2ljYWxseSB0aGUgaWRlYSBpcyB0byB0 YWtlIG5vdGUgb2Ygd2hhdCdzIGhhcHBlbmluZyB0byB0aGUKPiA+ID4gPiA+IHBpcGUncyBEREIK PiA+ID4gPiA+IGFsbG9jYXRpb24gKHNocmlua2luZywgZ3Jvd2luZywgdW5jaGFuZ2VkLCBldGMu KSBkdXJpbmcgdGhlIGF0b21pYwo+ID4gPiA+ID4gY2hlY2sKPiA+ID4gPiA+IHBoYXNlOwo+ID4g PiA+IAo+ID4gPiA+IERpZG4ndCBsb29rIHRvbyBjbG9zZWx5LCBidXQgSSB0aGluayB5b3UgY2Fu J3QgYWN0dWFsbHkgZG8gdGhhdAo+ID4gPiA+IHVubGVzcwo+ID4gPiA+IHlvdSBsb2NrIGFsbCB0 aGUgY3J0Y3Mgd2hlbmV2ZXIgdGhlIG51bWJlciBvZiBhY3RpdmUgcGlwZXMgaXMgZ29pbmQKPiA+ ID4gPiB0bwo+ID4gPiA+IGNoYW5nZS4gTWVhbmluZyB3ZSdkIGVzc2VudGlhbGx5IGJlIGJhY2sg dG8gdGhlIG9uZS1iaWctbW9kZXNldC1sb2NrCj4gPiA+ID4gYXBwb3JhY2gsIHdoaWNoIHdpbGwg Y2F1c2UgbWlzc2VkIGZsaXBzIGFuZCB3aGFub3Qgb24gdGhlIG90aGVyCj4gPiA+ID4gcGlwZXMu Cj4gPiA+ID4gCj4gPiA+ID4gVGhlIGFsdGVybmF0aXZlIEkgdGhpbmsgd291bGQgY29uc2lzdCBv ZjoKPiA+ID4gPiAtIG1ha2Ugc3VyZSBsZXZlbCAwIHdhdGVybWFyayBuZXZlciBleGNlZWRzIHRv dGFsX2RkYl9zaXplL21heF9waXBlcywKPiA+ID4gPiDCoCBzbyB0aGF0IGEgbW9kZXNldCBkb2Vz bid0IGhhdmUgdG8gY2FyZSBhYm91dCB0aGUgd21zIGZvciB0aGUgb3RoZXIKPiA+ID4gPiDCoCBw aXBlcyBub3QgZml0dGluZyBpbgo+ID4gPiA+IC0gbGV2ZWwgMSsgd2F0ZXJtYXJrcyB3b3VsZCBi ZSBjaGVja2VkIGFnYWluc3QgdG90YWxfZGRiX3NpemUKPiA+ID4gPiAtIHByb3RlY3QgdGhlIHBs YW5lL3BpcGUgY29tbWl0IHdpdGggdGhlIHdtIG11dGV4IHdoZW5ldmVyIHRoZSB3bXMKPiA+ID4g PiDCoCBuZWVkIHRvIGJlIHJlcHJvZ3JhbW1lZAo+ID4gPiA+IC0ga2VlcCB0aGUgZmx1c2hfd20g dGhpbmcgYXJvdW5kIGZvciB0aGUgY2FzZSB3aGVuIGRkYiBzaXplIGRvZXMgZ2V0Cj4gPiA+ID4g wqAgY2hhbmdlZCwgcHJvdGVjdCBpdCB3aXRoIHRoZSB3bSBsb2NrCj4gPiA+ID4gLSB3aGVuIHBy b2dyYW1taW5nIHdtcywgd2Ugd2lsbCBmaXJzdCBmaWx0ZXIgb3V0IGFueSBsZXZlbCB0aGF0Cj4g PiA+ID4gwqAgZG9lc24ndCBmaXQgaW4gd2l0aCB0aGUgY3VycmVudCBkZGIgc2l6ZSwgYW5kIHRo ZW4gcHJvZ3JhbSB0aGUKPiA+ID4gPiDCoCByZXN0IGluCj4gPiA+ID4gLSBwb3RlbnRpYWxseSBp bnRyb2R1Y2UgcGVyLXBpcGUgd20gbG9ja3MgaWYgdGhlIG9uZSBiaWcgbG9jayBsb29rcwo+ID4g PiA+IMKgIGxpa2UgYW4gaXNzdWUsIHdoaWNoIGl0IG1pZ2h0IGlmIHRoZSBmbHVzaF93bSBob2xk cyBpdCBhbGwgdGhlIHdheQo+ID4gPiA+IMKgIHRocm91Z2gKPiA+ID4gPiAKPiA+ID4gPiA+IAo+ ID4gPiA+ID4gdGhlbiBkdXJpbmcgdGhlIGNvbW1pdCBwaGFzZSwgd2UgbG9vcCBvdmVyIHRoZSBD UlRDJ3MgdGhyZWUgdGltZXMKPiA+ID4gPiA+IGluc3RlYWQgb2YganVzdCBvbmNlLCBidXQgb25s eSBvcGVyYXRlIG9uIGEgc3Vic2V0IG9mIHRoZSBDUlRDJ3MgaW4KPiA+ID4gPiA+IGVhY2gKPiA+ ID4gPiA+IGxvb3AuwqDCoFdoaWxlIG9wZXJhdGluZyBvbiBlYWNoIENSVEMsIHRoZSBwbGFuZSwg V00sIGFuZCBEREIgYWxsIGdldAo+ID4gPiA+ID4gcHJvZ3JhbW1lZCB0b2dldGhlciBhbmQgaGF2 ZSBhIHNpbmdsZSBmbHVzaCBmb3IgYWxsIHRocmVlLgo+ID4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBNYXR0Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IE9u IFR1ZSwgSnVsIDI2LCAyMDE2IGF0IDAxOjM0OjM2UE0gLTA0MDAsIEx5dWRlIHdyb3RlOgo+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gTGF0ZXN0IHZlcnNpb24gb2YgaHR0cHM6Ly9sa21sLm9yZy9s a21sLzIwMTYvNy8yNi8yOTAgLiBSZXNlbmRpbmcKPiA+ID4gPiA+ID4gdGhlIHdob2xlCj4gPiA+ ID4gPiA+IHRoaW5nIHRvIGtlZXAgaXQgaW4gb25lIHBsYWNlLgo+ID4gPiA+ID4gPiAKPiA+ID4g PiA+ID4gTHl1ZGUgKDUpOgo+ID4gPiA+ID4gPiDCoCBkcm0vaTkxNS9za2w6IEFkZCBzdXBwb3J0 IGZvciB0aGUgU0FHViwgZml4IHVuZGVycnVuIGhhbmdzCj4gPiA+ID4gPiA+IMKgIGRybS9pOTE1 L3NrbDogT25seSBmbHVzaCBwaXBlcyB3aGVuIHdlIGNoYW5nZSB0aGUgZGRiCj4gPiA+ID4gPiA+ IGFsbG9jYXRpb24KPiA+ID4gPiA+ID4gwqAgZHJtL2k5MTUvc2tsOiBGaXggZXh0cmEgd2hpdGVz cGFjZSBpbiBza2xfZmx1c2hfd21fdmFsdWVzKCkKPiA+ID4gPiA+ID4gwqAgZHJtL2k5MTUvc2ts OiBVcGRhdGUgcGxhbmUgd2F0ZXJtYXJrcyBhdG9taWNhbGx5IGR1cmluZyBwbGFuZQo+ID4gPiA+ ID4gPiB1cGRhdGVzCj4gPiA+ID4gPiA+IMKgIGRybS9pOTE1L3NrbDogQWx3YXlzIHdhaXQgZm9y IHBpcGVzIHRvIHVwZGF0ZSBhZnRlciBhIGZsdXNoCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBN YXR0IFJvcGVyICgxKToKPiA+ID4gPiA+ID4gwqAgZHJtL2k5MTUvZ2VuOTogT25seSBjb3B5IFdN IHJlc3VsdHMgZm9yIGNoYW5nZWQgcGlwZXMgdG8gc2tsX2h3Cj4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmjCoMKgwqDCoMKgwqB8wqDCoMKg MyArCj4gPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaMKgwqDCoMKg wqDCoHzCoMKgwqA1ICsKPiA+ID4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfMKgwqAyNCArKysrCj4gPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmjCoMKgwqDCoMKgfMKgwqDCoDQgKwo+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3BtLmPCoMKgwqDCoMKgwqB8IDI0MAo+ID4gPiA+ID4gPiArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3Nwcml0ZS5jwqDCoHzCoMKgwqAyICsKPiA+ID4gPiA+ID4gwqA2IGZpbGVz IGNoYW5nZWQsIDI1NSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4g Cj4gPiA+ID4gPiA+IC0twqAKPiA+ID4gPiA+ID4gMi43LjQKPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ ID4gPiA+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gPiA+ID4gCj4gPiA+ID4gPiAtLcKgCj4g PiA+ID4gPiBNYXR0IFJvcGVyCj4gPiA+ID4gPiBHcmFwaGljcyBTb2Z0d2FyZSBFbmdpbmVlcgo+ ID4gPiA+ID4gSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50Cj4gPiA+ID4gPiBJ bnRlbCBDb3Jwb3JhdGlvbgo+ID4gPiA+ID4gKDkxNikgMzU2LTI3OTUKPiA+ID4gPiAKPiA+ID4g LS0gCj4gPiA+IENoZWVycywKPiA+ID4gCUx5dWRlCj4gPiAKPiA+IC0tIAo+ID4gVmlsbGUgU3ly asOkbMOkCj4gPiBJbnRlbCBPVEMKPiAKPiAtLSAKPiBNYXR0IFJvcGVyCj4gR3JhcGhpY3MgU29m dHdhcmUgRW5naW5lZXIKPiBJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKPiBJ bnRlbCBDb3Jwb3JhdGlvbgo+ICg5MTYpIDM1Ni0yNzk1CgotLSAKVmlsbGUgU3lyasOkbMOkCklu dGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK