From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andres Rodriguez Subject: RE: [RFC] Mechanism for high priority scheduling in amdgpu Date: Mon, 19 Dec 2016 19:29:51 +0000 Message-ID: <544E607D03B20249AA404517E498FC469A1F90@exchange01.valvesoftware.com> References: <544E607D03B20249AA404517E498FC4699EBD3@exchange01.valvesoftware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <544E607D03B20249AA404517E498FC4699EBD3-Lp/cVzEoVyaisxZYEgh0i620KmCxYQEWVpNB7YpNyf8@public.gmane.org> Content-Language: en-US List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , Pierre-Loup Griffais , "John.Bridgman-5C7GfCeVMHo@public.gmane.org" , "Sagalovitch, Serguei" , "Jay.Cornwall-5C7GfCeVMHo@public.gmane.org" SGV5IEd1eXMsCgpPbmUgcGFydGljdWxhciBwaWVjZSBJJ2QgbGlrZSB0byBkaXNjdXNzIGlzIGhv dyB0byBnZXQgYXJvdW5kIHRoZSBiZWxvdyBpc3N1ZToKCj4gS25vd24gY3VycmVudCBvYnN0YWNs ZXM6Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gCj4gVGhlIFNRIGlzIGN1cnJlbnRseSBw cm9ncmFtbWVkIHRvIGRpc3JlZ2FyZCB0aGUgSFFEIHByaW9yaXRpZXMsIGFuZCBpbnN0ZWFkIGl0 IHBpY2tzCj4gam9icyBhdCByYW5kb20uIFNldHRpbmdzIGZyb20gdGhlIHNoYWRlciBpdHNlbGYg YXJlIGFsc28gZGlzcmVnYXJkZWQgYXMgdGhpcyBpcwo+IGNvbnNpZGVyZWQgYSBwcml2aWxlZ2Vk IGZpZWxkLgo+IAo+IEVmZmVjdGl2ZWx5IHdlIGNhbiBnZXQgb3VyIGNvbXB1dGUgd2F2ZWZyb250 IGxhdW5jaGVkIEFTQVAsIGJ1dCB3ZSBtaWdodCBub3QgZ2V0IHRoZQo+IHRpbWUgd2UgbmVlZCBv biB0aGUgU1EuCj4KPiBUaGUgY3VycmVudCBwcm9ncmFtbWluZyB3b3VsZCBoYXZlIHRvIGJlIGNo YW5nZWQgdG8gYWxsb3cgcHJpb3JpdHkgcHJvcGFnYXRpb24KPiBmcm9tIHRoZSBIUUQgaW50byB0 aGUgU1EuCgoxKSBJcyB0aGlzIHN0aWxsIGFuIGlzc3VlIGlmIHdlIGRvIHRoZSBDVSByZXNlcnZh dGlvbiB0aGF0IFNlcmd1ZWkgbWVudGlvbmVkPwoKMikgSWYgdGhlIFNRIHJlc3BlY3RlZCB0aGUg SFFEIHByaW9yaXRpZXMsIHdvdWxkIHdlIHN0aWxsIG5lZWQgdGhlIENVIHJlc2VydmF0aW9uPwoK MykgV291bGQgdXBkYXRpbmcgdGhlIGdvbGRlbiByZWdpc3RlciBzZXR0aW5ncyBiZSBzdWZmaWNp ZW50IHRvIGNoYW5nZSB0aGlzIGJlaGF2aW9yPyBPciB3b3VsZCB3ZSBhbHNvIG5lZWQgYSBGVyBj aGFuZ2U/CgpSZWdhcmRzLApBbmRyZXMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpGcm9tOiBBbmRyZXMgUm9kcmlndWV6ClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMTYs IDIwMTYgNjoxNSBQTQpUbzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKU3ViamVjdDog W1JGQ10gTWVjaGFuaXNtIGZvciBoaWdoIHByaW9yaXR5IHNjaGVkdWxpbmcgaW4gYW1kZ3B1CgpI aSBFdmVyeW9uZSwKClRoaXMgUkZDIGlzIGFsc28gYXZhaWxhYmxlIGFzIGEgZ2lzdCBoZXJlOgpo dHRwczovL2dpc3QuZ2l0aHViLmNvbS9sb3N0Z29hdC83MDAwNDMyY2Q2ODY0MjY1ZGJjMmMzYWI5 MzIwNDI0OQoKV2UgYXJlIGludGVyZXN0ZWQgaW4gZmVlZGJhY2sgZm9yIGEgbWVjaGFuaXNtIHRv IGVmZmVjdGl2ZWx5IHNjaGVkdWxlIGhpZ2gKcHJpb3JpdHkgVlIgcmVwcm9qZWN0aW9uIHRhc2tz IChhbHNvIHJlZmVycmVkIHRvIGFzIHRpbWUtd2FycGluZykgZm9yIFBvbGFyaXMxMApydW5uaW5n IG9uIHRoZSBhbWRncHUga2VybmVsIGRyaXZlci4KCkJyaWVmIGNvbnRleHQ6Ci0tLS0tLS0tLS0t LS0tCgpUaGUgbWFpbiBvYmplY3RpdmUgb2YgcmVwcm9qZWN0aW9uIGlzIHRvIGF2b2lkIG1vdGlv biBzaWNrbmVzcyBmb3IgVlIgdXNlcnMgaW4Kc2NlbmFyaW9zIHdoZXJlIHRoZSBnYW1lIG9yIGFw cGxpY2F0aW9uIHdvdWxkIGZhaWwgdG8gZmluaXNoIHJlbmRlcmluZyBhIG5ldwpmcmFtZSBpbiB0 aW1lIGZvciB0aGUgbmV4dCBWQkxBTksuIFdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgdXNlcidzIGhl YWQgbW92ZW1lbnRzCmFyZSBub3QgcmVmbGVjdGVkIG9uIHRoZSBIZWFkIE1vdW50ZWQgRGlzcGxh eSAoSE1EKSBmb3IgdGhlIGR1cmF0aW9uIG9mIGFuCmV4dHJhIGZyYW1lLiBUaGlzIGV4dGVuZGVk IG1pc21hdGNoIGJldHdlZW4gdGhlIGlubmVyIGVhciBhbmQgdGhlIGV5ZXMgbWF5CmNhdXNlIHRo ZSB1c2VyIHRvIGV4cGVyaWVuY2UgbW90aW9uIHNpY2tuZXNzLgoKVGhlIFZSIGNvbXBvc2l0b3Ig ZGVhbHMgd2l0aCB0aGlzIHByb2JsZW0gYnkgZmFicmljYXRpbmcgYSBuZXcgZnJhbWUgdXNpbmcg dGhlCnVzZXIncyB1cGRhdGVkIGhlYWQgcG9zaXRpb24gaW4gY29tYmluYXRpb24gd2l0aCB0aGUg cHJldmlvdXMgZnJhbWVzLiBUaGlzCmF2b2lkcyBhIHByb2xvbmdlZCBtaXNtYXRjaCBiZXR3ZWVu IHRoZSBITUQgb3V0cHV0IGFuZCB0aGUgaW5uZXIgZWFyLgoKQmVjYXVzZSBvZiB0aGUgYWR2ZXJz ZSBlZmZlY3RzIG9uIHRoZSB1c2VyLCB3ZSByZXF1aXJlIGhpZ2ggY29uZmlkZW5jZSB0aGF0IHRo ZQpyZXByb2plY3Rpb24gdGFzayB3aWxsIGNvbXBsZXRlIGJlZm9yZSB0aGUgVkJMQU5LIGludGVy dmFsLiBFdmVuIGlmIHRoZSBHRlggcGlwZQppcyBjdXJyZW50bHkgZnVsbCBvZiB3b3JrIGZyb20g dGhlIGdhbWUvYXBwbGljYXRpb24gKHdoaWNoIGlzIG1vc3QgbGlrZWx5IHRoZSBjYXNlKS4KCkZv ciBtb3JlIGRldGFpbHMgYW5kIGlsbHVzdHJhdGlvbnMsIHBsZWFzZSByZWZlciB0byB0aGUgZm9s bG93aW5nIGRvY3VtZW50OgpodHRwczovL2NvbW11bml0eS5hbWQuY29tL2NvbW11bml0eS9nYW1p bmcvYmxvZy8yMDE2LzAzLzI4L2FzeW5jaHJvbm91cy1zaGFkZXJzLWV2b2x2ZWQKClJlcXVpcmVt ZW50czoKLS0tLS0tLS0tLS0tLQoKVGhlIG1lY2hhbmlzbSBtdXN0IGV4cG9zZSB0aGUgZm9sbG93 aW5nIGZ1bmN0aW9uYWlsaXR5OgoKICAgICogSm9iIHJvdW5kIHRyaXAgdGltZSBtdXN0IGJlIHBy ZWRpY3RhYmxlLCBmcm9tIHN1Ym1pc3Npb24gdG8gZmVuY2Ugc2lnbmFsCgogICAgKiBUaGUgbWVj aGFuaXNtIG11c3Qgc3VwcG9ydCBjb21wdXRlIHdvcmtsb2Fkcy4KCkdvYWxzOgotLS0tLS0KCiAg ICAqIFRoZSBtZWNoYW5pc20gc2hvdWxkIHByb3ZpZGUgbG93IHN1Ym1pc3Npb24gbGF0ZW5jaWVz CgpUZXN0OiBzdWJtaXR0aW5nIGEgTk9QIHBhY2tldCB0aHJvdWdoIHRoZSBtZWNoYW5pc20gb24g YnVzeSBoYXJkd2FyZSBzaG91bGQKYmUgZXF1aXZhbGVudCB0byBzdWJtaXR0aW5nIGEgTk9QIG9u IGlkbGUgaGFyZHdhcmUuCgpOaWNlIHRvIGhhdmU6Ci0tLS0tLS0tLS0tLS0KCiAgICAqIFRoZSBt ZWNoYW5pc20gc2hvdWxkIGFsc28gc3VwcG9ydCBHRlggd29ya2xvYWRzLgoKTXkgdW5kZXJzdGFu ZGluZyBpcyB0aGF0IHdpdGggdGhlIGN1cnJlbnQgaGFyZHdhcmUgY2FwYWJpbGl0aWVzIGluIFBv bGFyaXMxMCB3ZQp3aWxsIG5vdCBiZSBhYmxlIHRvIHByb3ZpZGUgYSBzb2x1dGlvbiBjb21wYXRp YmxlIHdpdGggR0ZYIHdvcmxvYWRzLgoKQnV0IEkgd291bGQgbG92ZSB0byBoZWFyIG90aGVyd2lz ZS4gU28gaWYgYW55b25lIGhhcyBhbiBpZGVhLCBhcHByb2FjaCBvcgpzdWdnZXN0aW9uIHRoYXQg d2lsbCBhbHNvIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgR0ZYIHJpbmcsIHBsZWFzZSBsZXQgdXMg a25vdwphYm91dCBpdC4KCiAgICAqIFRoZSBhYm92ZSBndWFyYW50ZWVzIHNob3VsZCBhbHNvIGJl IHJlc3BlY3RlZCBieSBhbWRrZmQgd29ya2xvYWRzCgpXb3VsZCBiZSBnb29kIHRvIGhhdmUgZm9y IGNvbnNpc3RlbmN5LCBidXQgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSBhcyB1c2VycyBydW5uaW5n CmdhbWVzIGFyZSBub3QgdHJhZGl0aW9uYWxseSBydW5uaW5nIEhQQyB3b3JrbG9hZHMgaW4gdGhl IGJhY2tncm91bmQuCgpQcm9wb3NlZCBhcHByb2FjaDoKLS0tLS0tLS0tLS0tLS0tLS0tCgpTaW1p bGFyIHRvIHRoZSB3aW5kb3dzIGRyaXZlciwgd2UgY291bGQgZXhwb3NlIGEgaGlnaCBwcmlvcml0 eSBjb21wdXRlIHF1ZXVlIHRvCnVzZXJzcGFjZS4KClN1Ym1pc3Npb25zIHRvIHRoaXMgY29tcHV0 ZSBxdWV1ZSB3aWxsIGJlIHNjaGVkdWxlZCB3aXRoIGhpZ2ggcHJpb3JpdHksIGFuZCBtYXkKYWNx dWlyZSBoYXJkd2FyZSByZXNvdXJjZXMgcHJldmlvdXNseSBpbiB1c2UgYnkgb3RoZXIgcXVldWVz LgoKVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgdGFraW5nIGFkdmFudGFnZSBvZiB0aGUgJ3ByaW9y aXR5JyBmaWVsZCBpbiB0aGUgSFFEcwphbmQgY291bGQgYmUgcHJvZ3JhbW1lZCBieSBhbWRncHUg b3IgdGhlIGFtZGdwdSBzY2hlZHVsZXIuIFRoZSByZWxldmFudApyZWdpc3RlciBmaWVsZHMgYXJl OgogICAgICAgICogbW1DUF9IUURfUElQRV9QUklPUklUWQogICAgICAgICogbW1DUF9IUURfUVVF VUVfUFJJT1JJVFkKCkltcGxlbWVudGF0aW9uIGFwcHJvYWNoIDEgLSBzdGF0aWMgcGFydGl0aW9u aW5nOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRo ZSBhbWRncHUgZHJpdmVyIGN1cnJlbnRseSBjb250cm9scyA4IGNvbXB1dGUgcXVldWVzIGZyb20g cGlwZTAuIFdlIGNhbgpzdGF0aWNhbGx5IHBhcnRpdGlvbiB0aGVzZSBhcyBmb2xsb3dzOgogICAg ICAgICogN3ggcmVndWxhcgogICAgICAgICogMXggaGlnaCBwcmlvcml0eQoKVGhlIHJlbGV2YW50 IHByaW9yaXRpZXMgY2FuIGJlIHNldCBzbyB0aGF0IHN1Ym1pc3Npb25zIHRvIHRoZSBoaWdoIHBy aW9yaXR5CnJpbmcgd2lsbCBzdGFydmUgdGhlIG90aGVyIGNvbXB1dGUgcmluZ3MgYW5kIHRoZSBH RlggcmluZy4KClRoZSBhbWRncHUgc2NoZWR1bGVyIHdpbGwgb25seSBwbGFjZSBqb2JzIGludG8g dGhlIGhpZ2ggcHJpb3JpdHkgcmluZ3MgaWYgdGhlCmNvbnRleHQgaXMgbWFya2VkIGFzIGhpZ2gg cHJpb3JpdHkuIEFuZCBhIGNvcnJlc3BvbmRpbmcgcHJpb3JpdHkgc2hvdWxkIGJlCmFkZGVkIHRv IGtlZXAgdHJhY2sgb2YgdGhpcyBpbmZvcm1hdGlvbjoKICAgICAqIEFNRF9TQ0hFRF9QUklPUklU WV9LRVJORUwKICAgICAqIC0+IEFNRF9TQ0hFRF9QUklPUklUWV9ISUdICiAgICAgKiBBTURfU0NI RURfUFJJT1JJVFlfTk9STUFMCgpUaGUgdXNlciB3aWxsIHJlcXVlc3QgYSBoaWdoIHByaW9yaXR5 IGNvbnRleHQgYnkgc2V0dGluZyBhbiBhcHByb3ByaWF0ZSBmbGFnCmluIGRybV9hbWRncHVfY3R4 X2luIChBTURHUFVfQ1RYX0hJR0hfUFJJT1JJVFkgb3Igc2ltaWxhcik6Cmh0dHBzOi8vZ2l0aHVi LmNvbS90b3J2YWxkcy9saW51eC9ibG9iL21hc3Rlci9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9k cm0uaCNMMTYzCgpUaGUgc2V0dGluZyBpcyBpbiBhIHBlciBjb250ZXh0IGxldmVsIHNvIHRoYXQg d2UgY2FuOgogICAgKiBNYWludGFpbiBhIGNvbnNpc3RlbnQgRklGTyBvcmRlcmluZyBvZiBhbGwg c3VibWlzc2lvbnMgdG8gYSBjb250ZXh0CiAgICAqIENyZWF0ZSBoaWdoIHByaW9yaXR5IGFuZCBu b24taGlnaCBwcmlvcml0eSBjb250ZXh0cyBpbiB0aGUgc2FtZSBwcm9jZXNzCgpJbXBsZW1lbnRh dGlvbiBhcHByb2FjaCAyIC0gZHluYW1pYyBwcmlvcml0eSBwcm9ncmFtbWluZzoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpTaW1pbGFy IHRvIHRoZSBhYm92ZSwgYnV0IGluc3RlYWQgb2YgcHJvZ3JhbW1pbmcgdGhlIHByaW9yaXRpZXMg YW5kCmFtZGdwdV9pbml0KCkgdGltZSwgdGhlIFNXIHNjaGVkdWxlciB3aWxsIHJlcHJvZ3JhbSB0 aGUgcXVldWUgcHJpb3JpdGllcwpkeW5hbWljYWxseSB3aGVuIHNjaGVkdWxpbmcgYSB0YXNrLgoK VGhpcyB3b3VsZCBpbnZvbHZlIGhhdmluZyBhIGhhcmR3YXJlIHNwZWNpZmljIGNhbGxiYWNrIGZy b20gdGhlIHNjaGVkdWxlciB0bwpzZXQgdGhlIGFwcHJvcHJpYXRlIHF1ZXVlIHByaW9yaXR5OiBz ZXRfcHJpb3JpdHkoaW50IHJpbmcsIGludCBpbmRleCwgaW50IHByaW9yaXR5KQoKRHVyaW5nIHRo aXMgY2FsbGJhY2sgd2Ugd291bGQgaGF2ZSB0byBncmFiIHRoZSBTUkJNIG11dGV4IHRvIHBlcmZv cm0gdGhlIGFwcHJvcHJpYXRlCkhXIHByb2dyYW1taW5nLCBhbmQgSSdtIG5vdCByZWFsbHkgc3Vy ZSBpZiB0aGF0IGlzIHNvbWV0aGluZyB3ZSBzaG91bGQgYmUgZG9pbmcgZnJvbQp0aGUgc2NoZWR1 bGVyLgoKT24gdGhlIHBvc2l0aXZlIHNpZGUsIHRoaXMgYXBwcm9hY2ggd291bGQgYWxsb3cgdXMg dG8gcHJvZ3JhbSBhIHJhbmdlIG9mCnByaW9yaXRpZXMgZm9yIGpvYnMgaW5zdGVhZCBvZiBhIHNp bmdsZSAiaGlnaCBwcmlvcml0eSIgdmFsdWUiLCBhY2hpZXZpbmcKc29tZXRoaW5nIHNpbWlsYXIg dG8gdGhlIG5pY2VuZXNzIEFQSSBhdmFpbGFibGUgZm9yIENQVSBzY2hlZHVsaW5nLgoKSSdtIG5v dCBzdXJlIGlmIHRoaXMgZmxleGliaWxpdHkgaXMgc29tZXRoaW5nIHRoYXQgd2Ugd291bGQgbmVl ZCBmb3Igb3VyIHVzZQpjYXNlLCBidXQgaXQgbWlnaHQgYmUgdXNlZnVsIGluIG90aGVyIHNjZW5h cmlvcyAobXVsdGlwbGUgdXNlcnMgc2hhcmluZyBjb21wdXRlCnRpbWUgb24gYSBzZXJ2ZXIpLgoK VGhpcyBhcHByb2FjaCB3b3VsZCByZXF1aXJlIGEgbmV3IGludCBmaWVsZCBpbiBkcm1fYW1kZ3B1 X2N0eF9pbiwgb3IgcmVwdXJwb3NpbmcKb2YgdGhlIGZsYWdzIGZpZWxkLgoKS25vd24gY3VycmVu dCBvYnN0YWNsZXM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIFNRIGlzIGN1cnJlbnRs eSBwcm9ncmFtbWVkIHRvIGRpc3JlZ2FyZCB0aGUgSFFEIHByaW9yaXRpZXMsIGFuZCBpbnN0ZWFk IGl0IHBpY2tzCmpvYnMgYXQgcmFuZG9tLiBTZXR0aW5ncyBmcm9tIHRoZSBzaGFkZXIgaXRzZWxm IGFyZSBhbHNvIGRpc3JlZ2FyZGVkIGFzIHRoaXMgaXMKY29uc2lkZXJlZCBhIHByaXZpbGVnZWQg ZmllbGQuCgpFZmZlY3RpdmVseSB3ZSBjYW4gZ2V0IG91ciBjb21wdXRlIHdhdmVmcm9udCBsYXVu Y2hlZCBBU0FQLCBidXQgd2UgbWlnaHQgbm90IGdldCB0aGUKdGltZSB3ZSBuZWVkIG9uIHRoZSBT US4KClRoZSBjdXJyZW50IHByb2dyYW1taW5nIHdvdWxkIGhhdmUgdG8gYmUgY2hhbmdlZCB0byBh bGxvdyBwcmlvcml0eSBwcm9wYWdhdGlvbgpmcm9tIHRoZSBIUUQgaW50byB0aGUgU1EuCgpHZW5l cmljIGFwcHJvYWNoIGZvciBhbGwgSFcgSVBzOgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKRm9yIGNvbnNpc3RlbmN5IHB1cnBvc2VzLCB0aGUgaGlnaCBwcmlvcml0eSBjb250ZXh0 IGNhbiBiZSBlbmFibGVkIGZvciBhbGwgSFcgSVBzCndpdGggc3VwcG9ydCBvZiB0aGUgU1cgc2No ZWR1bGVyLiBUaGlzIHdpbGwgZnVuY3Rpb24gc2ltaWxhcmx5IHRvIHRoZSBjdXJyZW50CkFNRF9T Q0hFRF9QUklPUklUWV9LRVJORUwgcHJpb3JpdHksIHdoZXJlIHRoZSBqb2IgY2FuIGp1bXAgYWhl YWQgb2YgYW55dGhpbmcgbm90CmNvbW1pdGVkIHRvIHRoZSBIVyBxdWV1ZS4KClRoZSBiZW5lZml0 cyBvZiByZXF1ZXN0aW5nIGEgaGlnaCBwcmlvcml0eSBjb250ZXh0IGZvciBhIG5vbi1jb21wdXRl IHF1ZXVlIHdpbGwKYmUgbGVzc2VyIChlLmcuIHVwIHRvIDEwcyBvZiB3YWl0IHRpbWUgaWYgYSBH RlggY29tbWFuZCBpcyBzdHVjayBpbiBmcm9udCBvZgp5b3UpLCBidXQgaGF2aW5nIHRoZSBBUEkg aW4gcGxhY2Ugd2lsbCBhbGxvdyB1cyB0byBlYXNpbHkgaW1wcm92ZSB0aGUgaW1wbGVtZW50YXRp b24KaW4gdGhlIGZ1dHVyZSBhcyBuZXcgZmVhdHVyZXMgYmVjb21lIGF2YWlsYWJsZSBpbiBuZXcg aGFyZHdhcmUuCgpGdXR1cmUgc3RlcHM6Ci0tLS0tLS0tLS0tLS0KCk9uY2Ugd2UgaGF2ZSBhbiBh cHByb2FjaCBzZXR0bGVkLCBJIGNhbiB0YWtlIGNhcmUgb2YgdGhlIGltcGxlbWVudGF0aW9uLgoK QWxzbywgb25jZSB0aGUgaW50ZXJmYWNlIGlzIG1vc3RseSBkZWNpZGVkLCB3ZSBjYW4gc3RhcnQg dGhpbmtpbmcgYWJvdXQKZXhwb3NpbmcgdGhlIGhpZ2ggcHJpb3JpdHkgcXVldWUgdGhyb3VnaCBy YWR2LgoKUmVxdWVzdCBmb3IgZmVlZGJhY2s6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKV2UgYXJl bid0IG1hcnJpZWQgdG8gYW55IG9mIHRoZSBhcHByb2FjaGVzIG91dGxpbmVkIGFib3ZlLiBPdXIg Z29hbCBpcyB0bwpvYnRhaW4gYSBtZWNoYW5pc20gdGhhdCB3aWxsIGFsbG93IHVzIHRvIGNvbXBs ZXRlIHRoZSByZXByb2plY3Rpb24gam9iIHdpdGhpbiBhCnByZWRpY3RhYmxlIGFtb3VudCBvZiB0 aW1lLiBTbyBpZiBhbnlvbmUgYW55b25lIGhhcyBhbnkgc3VnZ2VzdGlvbnMgZm9yCmltcHJvdmVt ZW50cyBvciBhbHRlcm5hdGl2ZSBzdHJhdGVnaWVzIHdlIGFyZSBtb3JlIHRoYW4gaGFwcHkgdG8g aGVhciB0aGVtLgoKSWYgYW55IG9mIHRoZSB0ZWNobmljYWwgaW5mb3JtYXRpb24gYWJvdmUgaXMg YWxzbyBpbmNvcnJlY3QsIGZlZWwgZnJlZSB0byBwb2ludApvdXQgbXkgbWlzdW5kZXJzdGFuZGlu Z3MuCgpMb29raW5nIGZvcndhcmQgdG8gaGVhcmluZyBmcm9tIHlvdS4KClJlZ2FyZHMsCkFuZHJl cwoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1n ZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo=