From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kazlauskas, Nicholas" Subject: Re: [PATCH v4 3/4] drm: Document variable refresh properties Date: Thu, 1 Nov 2018 14:58:10 +0000 Message-ID: <70d948e9-672b-df05-71cc-448d11fbb173@amd.com> References: <20181011163942.28267-1-nicholas.kazlauskas@amd.com> <20181011163942.28267-4-nicholas.kazlauskas@amd.com> <20181026143719.01381cdd@eldfell> <20181026145321.GV9144@intel.com> <20181026175924.GH9144@intel.com> <481ae686-adda-5857-5538-2b0af2e25427@daenzer.net> <20181029180341.GN9144@intel.com> <13a934a2-5cea-3d1b-ec57-bf5488698129@daenzer.net> <1c1c0f6f-ccbd-bfc2-f249-a01f6fc997ec@amd.com> <311638a8-eb8a-cb8d-3f7a-109aaa4b046b@amd.com> <31902d88-aa0c-a7de-a17b-6e5e6ec23f56@amd.com> <689846fa-7315-1fe4-77e5-4651bf6a21b5@daenzer.net> <87bcab42-e377-259c-13ea-0cfe9c675cf9@amd.com> <99214cf0-9717-3c23-9457-791288d4d252@daenzer.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <99214cf0-9717-3c23-9457-791288d4d252-otUistvHUpPR7s880joybQ@public.gmane.org> Content-Language: en-US Content-ID: <1A5806E42EFBC642930A1AD1E951BC12-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: =?utf-8?B?TWljaGVsIETDpG56ZXI=?= , =?utf-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "daniel.vetter-/w4YWyX8dFk@public.gmane.org" , "Olsak, Marek" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "manasi.d.navare-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Deucher, Alexander" List-Id: dri-devel@lists.freedesktop.org T24gMTEvMS8xOCA2OjU4IEFNLCBNaWNoZWwgRMOkbnplciB3cm90ZToNCj4gT24gMjAxOC0xMC0z MSA2OjU0IHAubS4sIEthemxhdXNrYXMsIE5pY2hvbGFzIHdyb3RlOg0KPj4gT24gMTAvMzEvMTgg MTI6MjAgUE0sIE1pY2hlbCBEw6RuemVyIHdyb3RlOg0KPj4+IE9uIDIwMTgtMTAtMzEgMzo0MSBw Lm0uLCBLYXpsYXVza2FzLCBOaWNob2xhcyB3cm90ZToNCj4+Pj4gT24gMTAvMzEvMTggMTA6MTIg QU0sIE1pY2hlbCBEw6RuemVyIHdyb3RlOg0KPj4+Pj4gT24gMjAxOC0xMC0zMSAyOjM4IHAubS4s IEthemxhdXNrYXMsIE5pY2hvbGFzIHdyb3RlOg0KPj4+Pj4+IE9uIDEwLzMwLzE4IDExOjM0IEFN LCBLYXpsYXVza2FzLCBOaWNob2xhcyB3cm90ZToNCj4+Pj4+Pj4NCj4+Pj4+Pj4gSSB1bmRlcnN0 YW5kIHRoZSBpc3N1ZSB5b3UncmUgZGVzY3JpYmluZyBub3cuIFRoZSB0aW1lc3RhbXAgaXMgc3Vw cG9zZWQNCj4+Pj4+Pj4gdG8gc2lnbmlmeSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHZibGFuay4g VGhlIGNhbGwgdG8gZ2V0IHNjYW5vdXQNCj4+Pj4+Pj4gcG9zaXRpb24gaXMgc3VwcG9zZWQgdG8g cmV0dXJuIHRoZSBudW1iZXIgb2YgbGluZXMgdW50aWwgc2Nhbm91dCAoYQ0KPj4+Pj4+PiBuZWdh dGl2ZSB2YWx1ZSkgb3IgdGhlIG51bWJlciBvZiBsaW5lcyBzaW5jZSB0aGUgbmV4dCBzY2Fub3V0 IGJlZ2FuIChhDQo+Pj4+Pj4+IHBvc2l0aXZlIHZhbHVlKS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gVGhl IGFtZGdwdSBkcml2ZXIgY2FsY3VsYXRlcyB0aGUgbnVtYmVyIG9mIGxpbmVzIGJhc2VkIG9uIGEg aGFyZHdhcmUNCj4+Pj4+Pj4gcmVnaXN0ZXIgc3RhdHVzIHBvc2l0aW9uIHdoaWNoIHJldHVybnMg YW4gaW5jcmVhc2luZyB2YWx1ZSBmcm9tIDAgdGhhdA0KPj4+Pj4+PiBpbmRpY2F0ZXMgdGhlIGN1 cnJlbnQgdnBvcy9ocG9zIGZvciB0aGUgZGlzcGxheS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gRm9yIGFu eSB2cG9zIGJlbG93IHZibF9zdGFydCB3ZSBrbm93IHRoZSB2YWx1ZSBpcyBjb3JyZWN0IHNpbmNl IHRoZSBuZXh0DQo+Pj4+Pj4+IHZibGFuayBoYXNuJ3QgYmVndW4geWV0LiBCdXQgZm9yIGFueXRo aWduIGFib3V0IHZibF9zdGFydCBpdCdzIHByb2JhYmx5DQo+Pj4+Pj4+IHdyb25nIHNpbmNlIGl0 IGFwcGxpZXMgYSBjb3JyZWN0aXZlIG9mZnNldCBiYXNlZCBvbiB0aGUgZml4ZWQgdmFsdWUgb2YN Cj4+Pj4+Pj4gY3J0Y192dG90YWwuIEl0J3MgZXZlbiB3b3JzZSB3aGVuIHRoZSB2YWx1ZSBpcyBh Ym92ZSBjcnRjX3Z0b3RhbCBzaW5jZQ0KPj4+Pj4+PiBpdCdsbCBiZSBjYWxjdWxhdGluZyB0aGUg bnVtYmVyIG9mIGxpbmVzIHNpbmNlIHRoZSBsYXN0IHNjYW5vdXQgc2luY2UNCj4+Pj4+Pj4gaXQn bGwgYmUgYSBwb3NpdGl2ZSB2YWx1ZS4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gU28gdGhlIGlzc3VlIGJl Y29tZXMgZGV0ZXJtaW5pbmcgd2hlbiB0aGUgdmZyb250IHBvcmNoIHdpbGwgZW5kLg0KPj4+Pj4+ Pg0KPj4+Pj4+PiBXaGVuIHRoZSBmbGlwIGFkZHJlc3MgZ2V0cyB3cml0dGVuIHRoZSB2ZnJvbnQg cG9yY2ggd2lsbCBlbmQgYXQgdGhlDQo+Pj4+Pj4+IHN0YXJ0IG9mIHRoZSBuZXh0IGxpbmUgbGVh dmluZyBvbmx5IHRoZSBiYWNrIHBvcmNoIHBsdXMgcGFydCBvZiB0aGUNCj4+Pj4+Pj4gbGluZS4g QnV0IHdlIGRvbid0IGtub3cgd2hlbiB0aGUgZmxpcCB3aWxsIG9jY3VyLCBpZiBhdCBhbGwuIEl0 IGhhc24ndA0KPj4+Pj4+PiBvY2N1cnJlZCB5ZXQgaW4gdGhpcyBjYXNlLg0KPj4+Pj4+Pg0KPj4+ Pj4+PiBXYWl0aW5nIGZvciB0aGUgd3JhcCBhcm91bmQgdG8gMCBtaWdodCBiZSB0aGUgYmVzdCBj aG9pY2UgaGVyZSBzaW5jZQ0KPj4+Pj4+PiB0aGVyZSdzIG5vIGd1YXJhbnRlZSB0aGUgZmxpcCB3 aWxsIG9jY3VyLg0KPj4+Pj4+DQo+Pj4+Pj4gSSBwdXQgc29tZSBtb3JlIHRob3VnaHQgaW50byB0 aGlzIGFuZCBJIGRvbid0IHRoaW5rIHRoaXMgaXMgYXMgYmFkIGFzIEkNCj4+Pj4+PiBoYWQgb3Jp Z2luYWxseSB0aG91Z2h0Lg0KPj4+Pj4+DQo+Pj4+Pj4gSSB0aGluayB0aGUgdmJsYW5rIHRpbWVz dGFtcCBpcyBzdXBwb3NlZCB0byBiZSBmb3IgdGhlIGZpcnN0IGFjdGl2ZQ0KPj4+Pj4+IHBpeGVs IG9mIHRoZSBuZXh0IHNjYW5vdXQuIFRoZSB1c2FnZSBvZiB3aGljaCBpcyBmb3IgY2xpZW50cyB0 byB0aW1lDQo+Pj4+Pj4gdGhlaXIgY29udGVudC9hbmltYXRpb24vZXRjLg0KPj4+Pj4+DQo+Pj4+ Pj4gVGhlIGNsaWVudCBsaWtlbHkgZG9lc24ndCBjYXJlIHdoZW4gdGhleSBpc3N1ZSB0aGVpciBm bGlwLCBqdXN0IHRoYXQNCj4+Pj4+PiB0aGVpciBjb250ZW50IGlzIG1hdGNoZWQgZm9yIHRoYXQg dmJsYW5rIHRpbWVzdGFtcC4gVGhlIGZpeGVkIHJlZnJlc2gNCj4+Pj4+PiBtb2RlbCB3b3JrcyBy ZWFsbHkgd2VsbCBmb3IgdGhhdCBraW5kIG9mIGFwcGxpY2F0aW9uLg0KPj4+Pj4+DQo+Pj4+Pj4g VXRpbGl6aW5nIHZhcmlhYmxlIHJlZnJlc2ggcmF0ZSB3b3VsZCBiZSBhIG1pc3Rha2UgaW4gdGhh dCBjYXNlIHNpbmNlDQo+Pj4+Pj4gdGhlIGNsaWVudCB3b3VsZCB0aGVuIGhhdmUgdG8gdGltZSBi YXNlZCBvbiB3aGVuIHRoZXkgZmxpcCB3aGljaCBpcyBhDQo+Pj4+Pj4gbG90IGhhcmRlciB0byAi cHJlZGljdCIgcHJlY2lzZWx5Lg0KPj4+Pj4NCj4+Pj4+IEl0J3Mgb25seSBhICJtaXN0YWtlIiBh cyBsb25nIGFzIHRoZSB0aW1lc3RhbXBzIGFyZSBtaXNsZWFkaW5nLiA6KSBBcw0KPj4+Pj4gZGlz Y3Vzc2VkIGJlZm9yZSwgYWNjdXJhdGUgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMgYXJlIG9uZSBy ZXF1aXJlbWVudA0KPj4+Pj4gZm9yIGFjaGlldmluZyBwZXJmZWN0bHkgc21vb3RoIGFuaW1hdGlv bi4NCj4+Pj4NCj4+Pj4gRm9yIG1vc3QgM0QgZ2FtZXMgdGhlIGdhbWUgd29ybGQvcmVuZGVyaW5n IGNhbiBhZHZhbmNlIGJ5IGFuIGFyYml0cmFyeQ0KPj4+PiB0aW1lc3RlcCAtIGFuZCBmYXN0ZXIg d2lsbCBiZSBzbW9vdGhlciwgd2hpY2ggaXMgd2hhdCB0aGUgbmF0aXZlIG1vZGUNCj4+Pj4gd291 bGQgZ2l2ZSB5b3UuDQo+Pj4+DQo+Pj4+IEZvciBmaXhlZCBpbnRlcnZhbCBjb250ZW50L2FuaW1h dGlvbiB3aGVyZSB5b3UgY2FuJ3QgZG8gdGhhdCB2YXJpYWJsZQ0KPj4+PiByZWZyZXNoIHJhdGUg Y291bGQgdmFzdGx5IGltcHJvdmUgdGhlIG91dHB1dC4gQnV0IGxpa2UgZGlzY3Vzc2VkIGJlZm9y ZQ0KPj4+PiB0aGF0IHdvdWxkIG5lZWQgYSB3YXkgdG8gc3BlY2lmeSB0aGUgaW50ZXJ2YWwvcHJl c2VudGF0aW9uIHRpbWVzdGFtcCB0bw0KPj4+PiBjb250cm9sIHRoYXQgZnJvbnQgcG9yY2ggZHVy YXRpb24uIFRoZSB0aW1lc3RhbXAgd2lsbCBiZSBtaXNsZWFkaW5nIGluDQo+Pj4+IGFueSBvdGhl ciBjYXNlLg0KPj4+DQo+Pj4gSSBkb24ndCBhZ3JlZSB0aGF0IGFuIGFjY3VyYXRlIHRpbWVzdGFt cCBjYW4gZXZlciBiZSBtb3JlICJtaXNsZWFkaW5nIg0KPj4+IHRoYW4gYW4gaW5hY2N1cmF0ZSBv bmUuIEJ1dCB5ZWFoLCBhY2N1cmF0ZSB0aW1lc3RhbXBzIGFuZCB0aW1lLWJhc2VkDQo+Pj4gcHJl c2VudGF0aW9uIGFyZSB0d28gc2lkZXMgb2YgdGhlIHNhbWUgY29pbiB3aGljaCBjYW4gYnV5IHRo ZSBob2x5IGdyYWlsDQo+Pj4gb2YgcGVyZmVjdGx5IHNtb290aCBhbmltYXRpb24uIDopDQo+Pj4N Cj4+Pg0KPj4+Pj4+IEkgZGlkIHNvbWUgbW9yZSBpbnZlc3RpZ2F0aW9uIGludG8gd2hlbiBhbWRn cHUgZ2V0cyB0aGUgc2Nhbm91dCBwb3NpdGlvbg0KPj4+Pj4+IGFuZCB3aGF0IHZhbHVlcyB3ZSBn ZXQgYmFjayBvdXQgb2YgaXQuIFRoZSB0aW1lc3RhbXAgaXMgdXBkYXRlZCBzaG9ydGx5DQo+Pj4+ Pj4gYWZ0ZXIgdGhlIGNydGMgaXJxIHZibGFuayB3aGljaCBpcyB0eXBpY2FsbHkgd2l0aGluIGEg ZmV3IGxpbmVzIG9mDQo+Pj4+Pj4gdmJsX3N0YXJ0LiBUaGlzIG1ha2VzIHNlbnNlLCBzaW5jZSB3 ZSBjYW4gcHJvdmlkZSB0aGUgcHJlZGljdGlvbg0KPj4+Pj4+IHRpbWVzdGFtcCBlYXJseS4gV2Fp dGluZyBmb3IgdGhlIHZibGFuayB0byB3cmFwIGFyb3VuZCB0byAwIGRvZXNuJ3QNCj4+Pj4+PiBy ZWFsbHkgbWFrZSBzZW5zZSBoZXJlIHNpbmNlIHRoYXQgd291bGQgbWVhbiB3ZSBhbHJlYWR5IGhp dCB0aW1lb3V0IG9yDQo+Pj4+Pj4gdGhlIGZsaXAgb2NjdXJyZWQNCj4+Pj4+DQo+Pj4+PiBTb3Vu ZHMgbGlrZSB5b3UncmUgbWl4aW5nIHVwIHRoZSB0d28gY2FzZXMgb2YgImFjdHVhbCIgdmJsYW5r IGV2ZW50cw0KPj4+Pj4gKHRyaWdnZXJlZCBieSB0aGUgInZibGFuayIgaW50ZXJydXB0ID0+IGRy bV8oY3J0Y18paGFuZGxlX3ZibGFuaykgYW5kDQo+Pj4+PiBmbGlwIGNvbXBsZXRpb24gZXZlbnRz ICh0cmlnZ2VyZWQgYnkgdGhlIFBGTElQIGludGVycnVwdCB3aXRoIG91cg0KPj4+Pj4gaGFyZHdh cmUgPT4gZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQpLg0KPj4+Pj4NCj4+Pj4+IEFjdHVhbCB2 YmxhbmsgZXZlbnRzIG5lZWQgdG8gYmUgZGVsaXZlcmVkIHRvIHVzZXJzcGFjZSBhdCB0aGUgc3Rh cnQgb2YNCj4+Pj4+IHZibGFuaywgc28gd2UgaW5kZWVkIGNhbid0IHdhaXQgdW50aWwgdGhlIHRp bWVzdGFtcCBpcyBhY2N1cmF0ZSBmb3INCj4+Pj4+IHRoZW0uIFdlIGp1c3QgbmVlZCB0byBkb2N1 bWVudCB0aGUgZXhhY3Qgc2VtYW50aWNzIG9mIHRoZWlyIHRpbWVzdGFtcA0KPj4+Pj4gd2l0aCBW UlIuDQo+Pj4+Pg0KPj4+Pj4gRm9yIHBhZ2UgZmxpcCBjb21wbGV0aW9uIGV2ZW50cyB0aG91Z2gs IHRoZSB0aW1lc3RhbXAgbmVlZHMgdG8gYmUNCj4+Pj4+IGFjY3VyYXRlIGFuZCBjb3JyZXNwb25k IHRvIHdoZW4gdGhlIGZsaXBwZWQgZnJhbWUgc3RhcnRzIGJlaW5nIHNjYW5uZWQNCj4+Pj4+IG91 dCwgb3RoZXJ3aXNlIHdlJ2xsIHN1cmVseSBicmVhayBhdCBsZWFzdCBzb21lIHVzZXJzcGFjZSBy ZWx5aW5nIG9uDQo+Pj4+PiB0aGlzIGluZm9ybWF0aW9uLg0KPj4+Pj4NCj4+Pj4gWWVhaCwgSSB3 YXMuIEkgZ3Vlc3Mgd2hhdCdzIHNlbnQgaXMgdGhlIGVzdGltYXRlZCB2YmxhbmsgdGltZXN0YW1w DQo+Pj4+IGNhbGN1bGF0ZWQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBpbnRlcnJ1cHQuDQo+Pj4NCj4+ PiBzL2ludGVycnVwdC92YmxhbmsvLCB5ZWFoLg0KPj4+DQo+Pj4NCj4+Pj4gQW5kIHNpbmNlIHRo YXQncyBqdXN0IGEgZ3Vlc3MgcmF0aGVyIHRoYW4gd2hhdCdzIGFjdHVhbGx5IGdvaW5nIHRvDQo+ Pj4+IGhhcHBlbiBpdCdzIGdvaW5nIHRvIGJlIHdyb25nIGluIGEgbG90IG9mIGNhc2VzLg0KPj4+ Pg0KPj4+PiBJIGNvdWxkIHNlZSB0aGUgd3JhcC1hcm91bmQgbWV0aG9kIHdvcmtpbmcgaWYgdGhl IHZibGFuayB0aW1lc3RhbXAgd2FzDQo+Pj4+IHNvbWVob3cgdXBkYXRlZCBpbiBhbWRncHUgb3Ig aW4gZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQuDQo+Pj4NCj4+PiBEQyBhbHJlYWR5IGNhbGxz IGRybV9jcnRjX2FjY3VyYXRlX3ZibGFua19jb3VudCBiZWZvcmUNCj4+PiBkcm1fY3J0Y19zZW5k X3ZibGFua19ldmVudCwgd2UgImp1c3QiIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVzdWx0cyBp bg0KPj4+IGFuIGFjY3VyYXRlIHRpbWVzdGFtcC4NCj4+Pg0KPj4+DQo+Pj4+IFRoaXMgd291bGQg YmUgYSByZWxhdGl2ZWx5IHNpbXBsZSBmaXggYnV0IHdvdWxkIGJyZWFrIGFueXRoaW5nIGluDQo+ Pj4+IHVzZXJzcGFjZSB0aGF0IHJlbGllZCBvbiB0aGUgdGltZXN0YW1wIGZvciB2YmxhbmsgaW50 ZXJydXB0IGFuZCB0aGUNCj4+Pj4gZmxpcCBjb21wbGV0aW9uIGJlaW5nIHRoZSBzYW1lIHZhbHVl Lg0KPj4+DQo+Pj4gSG1tLCB0aGF0J3MgYSBnb29kIHBvaW50LiBTbyB3aGlsZSBWUlIgaXMgZW5h YmxlZCwgbWF5YmUgaXQgaXMgc2FmZXIgdG8NCj4+PiBkZWZlciBkZWxpdmVyeSBvZiB2Ymxhbmsg ZXZlbnRzIHVudGlsIHRoZSBhY2N1cmF0ZSB0aW1lc3RhbXAgaXMga25vd24gYXMNCj4+PiB3ZWxs LCBhdCBsZWFzdCBieSBkZWZhdWx0LiBJZiB0aGVyZSBpcyB1c2Vyc3BhY2Ugd2hpY2ggbmVlZHMg dGhlIGV2ZW50cw0KPj4+IGVhcmxpZXIgZXZlbiB3aXRoIFZSUiBidXQgY2FuIGxpdmUgd2l0aCB0 aGUgZ3Vlc3NlZCB0aW1lc3RhbXAsIGEgZmxhZyBvcg0KPj4+IHNvbWV0aGluZyBjb3VsZCBiZSBh ZGRlZCBmb3IgdGhhdC4NCj4+DQo+PiBJIHdhcyB1bmRlciB0aGUgaW1wcmVzc2lvbiB0aGF0IHRo ZSB2YmxhbmsgdGltZXN0YW1wIHdhcyByZXVzZWQgYnV0IGl0J3MNCj4+IGFscmVhZHkgZ29pbmcg dG8gZGlmZmVyIHNpbmNlIHdlIGNhbGwgZHJtX2NydGNfYWNjdXJhdGVfdmJsYW5rX2NvdW50DQo+ PiBiZWZvcmUgZHJtX2NydGNfc2VuZF92YmxhbmtfZXZlbnQuIFRoYW5rcyBmb3IgcG9pbnRpbmcg dGhhdCBvdXQuDQo+Pg0KPj4gU2luY2UgdGhhdCB3b3JrcyBmb3IgdXBkYXRpbmcgdGltZXN0YW1w IHdoYXQncyBsZWZ0IGlzIG1ha2luZyBzdXJlIHRoYXQNCj4+IGl0IHdhaXRzIGZvciB0aGUgd3Jh cCBhcm91bmQgaWYgaXQncyBhYm92ZSBjcnRjX3Z0b3RhbC4gSXQgbWlnaHQgbWFrZQ0KPj4gc2Vu c2UgdG8gYWRkIGEgbmV3IGZsYWcgZm9yIHRoaXMgdGhhdCdzIG9ubHkgdXNlZCB3aXRoaW4NCj4+ IGFtZGdwdV9nZXRfY3J0Y19zY2Fub3V0X3Bvc2l0aW9uIHNvIHRoZSBvdGhlciBjYWxsIHNpdGVz IGFyZW4ndCBhZmZlY3RlZC4NCj4+DQo+PiBUaGVyZSBpc24ndCBhIHdheSB0byBnZXQgYW4gYWNj dXJhdGUgdGltZXN0YW1wIHdpdGggVlJSIGVuYWJsZWQgdW50aWwNCj4+IGFmdGVyIHRoZSBmbGlw IGhhcHBlbnMuIFNvIGRlZmVycmluZyBpdCBraW5kIG9mIGRlZmVhdHMgdGhlIHB1cnBvc2Ugb2Yg YQ0KPj4gY2xpZW50IHVzaW5nIGl0IHRvIG1ha2UgcHJlZGljdGlvbnMgYmVmb3JlIHRoZSBmbGlw IGZvciBkaXNwbGF5aW5nIHRoZWlyDQo+PiBjb250ZW50Lg0KPiANCj4gVGhhdCdzIGdlbmVyYWxs eSBub3QgYSB2YWxpZCB1c2UtY2FzZS4gVGhlIEtNUyBBUEkgaXMgZGVmaW5lZCBzdWNoIHRoYXQN Cj4gaWYgdXNlcnNwYWNlIHJlY2VpdmVzIHRoZSB2YmxhbmsgZXZlbnQgZm9yIHZibGFuayBwZXJp b2QgTiBhbmQgdGhlbg0KPiBzdWJtaXRzIGEgcGFnZSBmbGlwLCB0aGUgcGFnZSBmbGlwIGNhbm5v dCAobm9ybWFsbHlbMF0pIHRha2UgZWZmZWN0DQo+IGJlZm9yZSB2YmxhbmsgcGVyaW9kIE4rMS4N Cj4gDQo+IA0KPiBUaGVyZSBhcmUgbWFpbmx5IHR3byB2YWxpZCB1c2UtY2FzZXMgZm9yIHdhaXRp bmcgZm9yIHZibGFuazoNCj4gDQo+IDEuIFdhaXQgZm9yIHZibGFuayBOLCB0aGVuIHN1Ym1pdCBw YWdlIGZsaXAgZm9yIHZibGFuayBOKzEuDQo+IA0KPiAyLiBXYWl0IGZvciB2YmxhbmsgTiwgdGhl biB0cnkgdG8gZG8gc29tZXRoaW5nIGJlZm9yZSB2YmxhbmsgTiBlbmRzLA0KPiBlLmcuIGRyYXcg ZGlyZWN0bHkgdG8gdGhlIGZyb250IGJ1ZmZlciwgYXMgYSBwb29yIG1hbidzIHdheSBvZiBhdm9p ZGluZw0KPiB0ZWFyaW5nIG9yIHNpbWlsYXIgYXJ0aWZhY3RzLg0KPiANCj4gDQo+IFVzZS1jYXNl IDEgaXMgdXNlZCBieSBYb3JnIChib3RoIGZvciBQcmVzZW50IGFuZCBEUkkyKSBhbmQgYXQgbGVh c3QNCj4gV2VzdG9uLCBidXQgcHJlc3VtYWJseSBtb3N0IGlmIG5vdCBhbGwgV2F5bGFuZCBjb21w b3NpdG9ycy4gRnJvbSBQZWtrYSdzDQo+IGRlc2NyaXB0aW9uIG9mIGhvdyBXZXN0b24gdXNlcyBp dCAodGhhbmtzISksIGl0J3MgY2xlYXIgdGhhdCB0aGUNCj4gdGltZXN0YW1wIG9mIHZibGFuayBl dmVudHMgZG9lcyBuZWVkIHRvIGFjY3VyYXRlbHkgY29ycmVzcG9uZCB0byB0aGUgZW5kDQo+IG9m IHRoZSB2YmxhbmsgcGVyaW9kLg0KPiANCj4gVXNlLWNhc2UgMiBpcyBhbHNvIHVzZWQgYnkgWG9y ZywgYnV0IG9ubHkgd2hlbiBub3QgZmxpcHBpbmcsIHdoaWNoIHJ1bGVzDQo+IG91dCBWUlIuIEFs c28sIEknZCBhcmd1ZSB0aGF0IGJsb2NraW5nIHdhaXRzIGZvciB2YmxhbmsgYXJlIG1vcmUNCj4g c3VpdGFibGUgZm9yIHRoaXMgdXNlLWNhc2UgdGhhbiB2YmxhbmsgZXZlbnRzLg0KPiANCj4gVGhl cmVmb3JlLCBpbiBzdW1tYXJ5IEkgcHJvcG9zZSB0aGlzIGlzIGhvdyBpdCBjb3VsZCB3b3JrOg0K PiANCj4gKiBXaXRob3V0IFZSUiwgdGltZXN0YW1wcyBjb250aW51ZSB0byB3b3JrIHRoZSBzYW1l IHdheSB0aGV5IGRvIG5vdy4NCj4gDQo+ICogV2l0aCBWUlIsIGRlbGl2ZXJ5IG9mIGJvdGggdmJs YW5rIGFuZCBwYWdlIGZsaXAgY29tcGxldGlvbiBldmVudHMgbXVzdA0KPiBiZSBkZWZlcnJlZCB1 bnRpbCB0aGUgdGltZXN0YW1wIGFjY3VyYXRlbHkgY29ycmVzcG9uZHMgdG8gdGhlIGFjdHVhbCBl bmQNCj4gb2YgdmJsYW5rLiBGb3IgYmxvY2tpbmcgdmJsYW5rIHdhaXRzLCBJJ20gbm90IHN1cmUs IGJ1dCBJJ20gbGVhbmluZw0KPiB0b3dhcmRzIGNvbnRpbnVpbmcgdG8gcmV0dXJuIHRvIHVzZXJz cGFjZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHZibGFuayBieQ0KPiBkZWZhdWx0LCBldmVuIGlmIHRo ZSB0aW1lc3RhbXAgaXMgaW5hY2N1cmF0ZS4NCj4gDQo+IERlZmVycmluZyBkZWxpdmVyeSBvZiBl dmVudHMgc2hvdWxkIGF2b2lkIGJ1c3ktbG9vcHMuIEJvbnVzIHBvaW50cyBmb3INCj4gbWluaW1p emluZyB0aGUgbnVtYmVyIG9mIGludGVycnVwdHMgbmVlZGVkLiA6KQ0KPiANCj4gTm90ZSB0aGF0 IGJvdGggYmxvY2tpbmcgdmJsYW5rIHdhaXRzIGFuZCB2YmxhbmsgZXZlbnRzIGFyZSBjdXJyZW50 bHkNCj4gdHJpZ2dlcmVkIGZyb20gZHJtXyhjcnRjXyloYW5kbGVfdmJsYW5rLCBzbyBzb21lIHJl d29yayB3b3VsZCBiZQ0KPiByZXF1aXJlZCBmb3IgdGhpcy4NCj4gDQo+IEl0J3MgcG9zc2libGUg dGhhdCB0aGVyZSdzIG90aGVyIHVzZXJzcGFjZSB3aGljaCBkb2Vzbid0IGNhcmUgYWJvdXQgdGhl DQo+IGFjY3VyYWN5IG9mIHRoZSB0aW1lc3RhbXBzLCBidXQgY2FyZXMgYWJvdXQgZ2V0dGluZyBl dmVudHMgYXMgZWFybHkgYXMNCj4gcG9zc2libGUuIEluIHRoYXQgY2FzZSwgZmxhZ3MgbWlnaHQg bmVlZCB0byBiZSBhZGRlZC4NCj4gDQo+IA0KPiBbMF0gT3VyIGRyaXZlcnMgY2FuIGNvbXBsZXRl IHRoZSBmbGlwIGluIHRoZSBzYW1lIHZibGFuayBwZXJpb2QgdW5kZXINCj4gc29tZSBjaXJjdW1z dGFuY2VzIGlmIHVzZXJzcGFjZSBzcGVjaWZpZXMgaXQgYXMgdGhlIHRhcmdldCB1c2luZyB0aGUN Cj4gRFJNX01PREVfUEFHRV9GTElQX1RBUkdFVF9BQlNPTFVURS9SRUxBVElWRSBmbGFnLCBidXQg dGhlcmUncyBubw0KPiBndWFyYW50ZWUgZm9yIGl0IHRvIHdvcmsuIEFuZCBubyBvdGhlciBkcml2 ZXIgc3VwcG9ydHMgdGhpcyB5ZXQuIFdpdGhvdXQNCj4gdGhvc2UgZmxhZ3MsIHRoZSBmbGlwIGNh bm5vdCBjb21wbGV0ZSBpbiB0aGUgc2FtZSB2YmxhbmsgcGVyaW9kLCBvciBpdA0KPiB3b3VsZCBi cmVhayBleGlzdGluZyB1c2Vyc3BhY2UgdXNpbmcgdXNlLWNhc2UgMSBhYm92ZS4NCj4NCkRlZmVy cmluZyB0aGUgcGFnZWZsaXAgdGltZXN0YW1wIGlzIHNvbWV0aGluZyB3ZSBjYW4gZG8gdG9kYXkg aW4gdGhlIA0KZHJpdmVyIHdpdGggbm8gaW1wYWN0IG9uIGV4aXN0aW5nIGJlaGF2aW9yL3NlbWFu dGljcy4gU2luY2UgaHBvcyBpcyB1c2VkIA0KaW4gdGhlIGNhbGN1bGF0aW9uIGFzIHdlbGwgSSB0 aGluayB3ZSBkb24ndCBuZWVkIGV2ZW4gbmVlZCB0byB3YWl0IGZvciANCnRoZSByb2xsLW92ZXIg bmVjZXNzYXJpbHkuDQoNCkRlZmVycmluZyB0aGUgZXZlbnQgdGhhdCBjb21lcyBmcm9tIGRybV9o YW5kbGVfdmJsYW5rIHdvcnJpZXMgbWUgdGhvdWdoLiANClRoZSBpbXBsZW1lbnRhdGlvbiBmb3Ig dGhhdCB3b3VsZCBiZSBzZW5kaW5nIHRoYXQgZXZlbnQgb24gdGhlIHJvbGwtb3ZlciANCmF0IHRp bWVvdXQgb3IgZ3JvdXBpbmcgaXQgdG9nZXRoZXIgb24gdGhlIHBhZ2VmbGlwLiBUaG9zZSBhcmUg cHJldHR5IA0KbG9uZyBkZWxheXMgZm9yIGJvdGguDQoNClRvIG1lIGl0IHN0aWxsIG1ha2VzIG1v cmUgc2Vuc2UgdG8ganVzdCBkZWZpbmUgdGhlIHZibGFuayB0aW1lc3RhbXAgDQpjb21pbmcgb3V0 IG9mIGRybV9jcnRjX2hhbmRsZV92YmxhbmsgYXMgYW4gZXN0aW1hdGUgd2hlbiBWUlIgaXMgZW5h YmxlZC4gDQpBbiBlc3RpbWF0aW9uIHdoaWNoIGVuZHMgdXAgYmVpbmcgdGhlIHNhbWUgdmFsdWUg YXMgd2hhdCB1c2Vyc3BhY2UgZ2V0cyANCnRvZGF5LCB0aGUgZXN0aW1hdGlvbiBmb3IgdGhlIGN1 cnJlbnQgbW9kZS4NCg0KSSB0aGluayBteSBvcGluaW9uIHdvdWxkIGJlIGRpZmZlcmVudCBpZiB0 aGUgdGltZXN0YW1wcyB3ZXJlIHN1cHBvc2VkIHRvIA0KYmUgdGhlIHNhbWUgdmFsdWUgYnV0IHRo YXQncyBpbmNyZWRpYmx5IHVubGlrZWx5IGdpdmVuIHRoYXQgdGhleSdyZSANCm9mZnNldCBmcm9t IHRoZSBrdGltZV9nZXQgaW4gbW9zdCBjYXNlcy4NCg0KTmljaG9sYXMgS2F6bGF1c2thcw0KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWls aW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==