From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 5/5] [RFC]drm: add syncobj timeline support v3 Date: Mon, 3 Sep 2018 13:19:16 +0200 Message-ID: <879aa2ac-26f4-b726-3e7e-807de27208c6@gmail.com> References: <20180829104434.13265-1-david1.zhou@amd.com> <20180829104434.13265-5-david1.zhou@amd.com> <81961480-d1a2-f2b3-7c7c-f7704bb42153@gmail.com> <45ed2e67-0b20-fa45-9575-e3f29470d4fd@amd.com> <60e0dd83-93c1-8cbf-03b6-f00739fb7078@amd.com> <2ccca40e-d64d-2cb3-e9d5-9504e4a47eb4@amd.com> <43b69e04-d71b-e77a-6a41-1d8cb9ec1b95@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Chunming Zhou , =?UTF-8?Q?Christian_K=c3=b6nig?= , Chunming Zhou , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Dave Airlie , Daniel Rakos , amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Daniel Vetter List-Id: dri-devel@lists.freedesktop.org QW0gMDMuMDkuMjAxOCB1bSAxMjowNyBzY2hyaWViIENodW5taW5nIFpob3U6Cj4KPgo+IOWcqCAy MDE4LzkvMyAxNjo1MCwgQ2hyaXN0aWFuIEvDtm5pZyDlhpnpgZM6Cj4+IEFtIDAzLjA5LjIwMTgg dW0gMDY6MTMgc2NocmllYiBDaHVubWluZyBaaG91Ogo+Pj4KPj4+Cj4+PiDlnKggMjAxOC84LzMw IDE5OjMyLCBDaHJpc3RpYW4gS8O2bmlnIOWGmemBkzoKPj4+PiBbU05JUF0KPj4+Pj4+Pj4KPj4+ Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICtzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdF9wdCB7Cj4+Pj4+Pj4+ PiArwqDCoMKgIHN0cnVjdCBkcm1fc3luY29ial9zdHViX2ZlbmNlIGJhc2U7Cj4+Pj4+Pj4+PiAr wqDCoMKgIHU2NMKgwqDCoCB2YWx1ZTsKPj4+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IHJiX25vZGXC oMKgIG5vZGU7Cj4+Pj4+Pj4+PiArfTsKPj4+Pj4+Pj4+ICtzdHJ1Y3QgZHJtX3N5bmNvYmpfc2ln bmFsX3B0IHsKPj4+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IGRybV9zeW5jb2JqX3N0dWJfZmVuY2Ug YmFzZTsKPj4+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqc2lnbmFsX2ZlbmNlOwo+ Pj4+Pj4+Pj4gK8KgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICpwcmVfcHRfYmFzZTsKPj4+Pj4+Pj4+ ICvCoMKgwqAgc3RydWN0IGRtYV9mZW5jZV9jYiBzaWduYWxfY2I7Cj4+Pj4+Pj4+PiArwqDCoMKg IHN0cnVjdCBkbWFfZmVuY2VfY2IgcHJlX3B0X2NiOwo+Pj4+Pj4+Pj4gK8KgwqDCoCBzdHJ1Y3Qg ZHJtX3N5bmNvYmogKnN5bmNvYmo7Cj4+Pj4+Pj4+PiArwqDCoMKgIHU2NMKgwqDCoCB2YWx1ZTsK Pj4+Pj4+Pj4+ICvCoMKgwqAgc3RydWN0IGxpc3RfaGVhZCBsaXN0Owo+Pj4+Pj4+Pj4gK307Cj4+ Pj4+Pj4+Cj4+Pj4+Pj4+IFdoYXQgYXJlIHRob3NlIHR3byBzdHJ1Y3R1cmVzIGdvb2QgZm9yCj4+ Pj4+Pj4gVGhleSBhcmUgdXNlZCB0byByZWNvcmQgd2FpdCBvcHMgcG9pbnRzIGFuZCBzaWduYWwg b3BzIHBvaW50cy4KPj4+Pj4+PiBGb3IgdGltZWxpbmUsIHRoZXkgYXJlIGNvbm5lY3RlZCBieSB0 aW1lbGluZSB2YWx1ZSwgd29ya3MgbGlrZToKPj4+Pj4+PiDCoMKgwqAgYS4gc2lnbmFsIHB0IGlu Y3JlYXNlIHRpbWVsaW5lIHZhbHVlIHRvIHNpZ25hbF9wdCB2YWx1ZSB3aGVuIAo+Pj4+Pj4+IHNp Z25hbF9wdCBpcyBzaWduYWxlZC4gc2lnbmFsX3B0IGlzIGRlcGVuZGluZyBvbiBwcmV2aW91cyBw dCAKPj4+Pj4+PiBmZW5jZSBhbmQgaXRzZWxmIHNpZ25hbCBmZW5jZSBmcm9tIHNpZ25hbCBvcHMu Cj4+Pj4+Pj4gwqDCoMKgIGIuIHdhaXQgcHQgdHJlZSBjaGVja3MgaWYgdGltZWxpbmUgdmFsdWUg b3ZlciBpdHNlbGYgdmFsdWUuCj4+Pj4+Pj4KPj4+Pj4+PiBGb3Igbm9ybWFsLCB3b3JrcyBsaWtl Ogo+Pj4+Pj4+IMKgwqDCoCBhLiBzaWduYWwgcHQgaW5jcmVhc2UgMSBmb3Igc3luY29ial90aW1l bGluZS0+c2lnbmFsX3BvaW50IAo+Pj4+Pj4+IGV2ZXJ5IHRpbWUgd2hlbiBzaWduYWwgb3BzIGlz IHBlcmZvcm1lZC4KPj4+Pj4+PiDCoMKgwqAgYi4gd2hlbiB3YWl0IG9wcyBpcyBjb21taW5nLCB3 YWl0IHB0IHdpbGwgZmV0Y2ggYWJvdmUgbGFzdCAKPj4+Pj4+PiBzaWduYWwgcHQgdmFsdWUgYXMg aXRzIHdhaXQgcG9pbnQuIHdhaXQgcHQgd2lsbCBiZSBvbmx5IHNpZ25hbGVkIAo+Pj4+Pj4+IGJ5 IGVxdWFsIHBvaW50IHZhbHVlIHNpZ25hbF9wdC4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4+IGFu ZCB3aHkgaXMgdGhlIHN0dWIgZmVuY2UgdGhlaXIgYmFzZT8KPj4+Pj4+PiBHb29kIHF1ZXN0aW9u LCBJIHRyaWVkIHRvIGt6YWxsb2MgZm9yIHRoZW0gYXMgd2VsbCB3aGVuIEkgZGVidWcgCj4+Pj4+ Pj4gdGhlbSwgSSBlbmNvdW50ZXJlZCBhIHByb2JsZW06Cj4+Pj4+Pj4gSSBsb29rdXAvZmluZCB3 YWl0X3B0IG9yIHNpZ25hbF9wdCBzdWNjZXNzZnVsbHksIGJ1dCB3aGVuIEkgCj4+Pj4+Pj4gdHJp ZWQgdG8gdXNlIHRoZW0sIHRoZXkgYXJlIGZyZWVkIHNvbWV0aW1lcywgYW5kIHJlc3VsdHMgaW4g TlVMTCAKPj4+Pj4+PiBwb2ludC4KPj4+Pj4+PiBhbmQgZ2VuZXJhbGx5LCB3aGVuIGxvb2t1cCB0 aGVtLCB3ZSBvZnRlbiBuZWVkIHRoZWlyIHN0dWIgZmVuY2UgCj4+Pj4+Pj4gYXMgd2VsbCwgYW5k IGluIHRoZSBtZWFudGltZSzCoCB0aGVpciBsaWZlY3ljbGUgYXJlIHNhbWUuCj4+Pj4+Pj4gQWJv dmUgcmVhc29uLCBJIG1ha2Ugc3R1YiBmZW5jZSBhcyB0aGVpciBiYXNlLgo+Pj4+Pj4KPj4+Pj4+ IFRoYXQgc291bmRzIGxpa2UgeW91IG9ubHkgZGlkIHRoaXMgYmVjYXVzZSB5b3UgbWVzc2VkIHVw IHRoZSAKPj4+Pj4+IGxpZmVjeWNsZS4KPj4+Pj4+Cj4+Pj4+PiBBZGRpdGlvbmFsIHRvIHRoYXQg SSBkb24ndCB0aGluayB5b3UgY29ycmVjdGx5IGNvbnNpZGVyZWQgdGhlIAo+Pj4+Pj4gbGlmZWN5 Y2xlIG9mIHRoZSB3YWl0cyBhbmQgdGhlIHN5bmMgb2JqZWN0IGl0c2VsZi4gRS5nLiBibG9ja2lu ZyAKPj4+Pj4+IGluIGRybV9zeW5jb2JqX3RpbWVsaW5lX2ZpbmkoKSB1bnRpbCBhbGwgd2FpdHMg YXJlIGRvbmUgaXMgbm90IGEgCj4+Pj4+PiBnb29kIGlkZWEuCj4+Pj4+Pgo+Pj4+Pj4gV2hhdCB5 b3Ugc2hvdWxkIGRvIGluc3RlYWQgaXMgdG8gY3JlYXRlIGEgZmVuY2VfYXJyYXkgb2JqZWN0IHdp dGggCj4+Pj4+PiBhbGwgdGhlIGZlbmNlIHdlIG5lZWQgdG8gd2FpdCBmb3Igd2hlbiBhIHdhaXQg cG9pbnQgaXMgcmVxdWVzdGVkLgo+Pj4+PiBZZWFoLCB0aGlzIGlzIG91ciBpbml0aWFsIGRpc2N1 c3Npb24gcmVzdWx0LCBidXQgd2hlbiBJIHRyaWVkIHRvIAo+Pj4+PiBkbyB0aGF0LCBJIGZvdW5k IHRoYXQgY2Fubm90IG1lZXQgdGhlIGFkdmFuY2Ugc2lnbmFsIHJlcXVpcmVtZW50Ogo+Pj4+PiDC oMKgwqAgYS4gV2UgbmVlZCB0byBjb25zaWRlciB0aGUgd2FpdCBhbmQgc2lnbmFsIHB0IHZhbHVl IGFyZSBub3QgCj4+Pj4+IG9uZS10by1vbmUgbWF0Y2gsIGl0J3MgZGlmZmljdWx0IHRvIGZpbmQg ZGVwZW5kZW50IHBvaW50LCBhdCAKPj4+Pj4gbGVhc3QsIHRoZXJlIGlzIHNvbWUgb3ZlcmhlYWQu Cj4+Pj4KPj4+PiBBcyBmYXIgYXMgSSBjYW4gc2VlIHRoYXQgaXMgaW5kZXBlbmRlbnQgb2YgdXNp bmcgYSBmZW5jZSBhcnJheSAKPj4+PiBoZXJlLiBTZWUgeW91IGNhbiBlaXRoZXIgdXNlIGEgcmlu ZyBidWZmZXIgb3IgYW4gcmItdHJlZSwgYnV0IHdoZW4gCj4+Pj4geW91IHdhbnQgdG8gd2FpdCBm b3IgYSBzcGVjaWZpYyBwb2ludCB3ZSBuZWVkIHRvIGNvbmRlbnNlIHRoZSBub3QgCj4+Pj4geWV0 IHNpZ25hbGVkIGZlbmNlcyBpbnRvIGFuIGFycmF5Lgo+Pj4gYWdhaW4sIG5lZWQgdG8gZmluZCB0 aGUgcmFuZ2Ugb2Ygd2hlcmUgdGhlIHNwZWNpZmljIHBvaW50IGluLCB3ZSAKPj4+IHNob3VsZCBj bG9zZSB0byB0aW1lbGluZSBzZW1hbnRpY3MsIEkgYWxzbyByZWZlcmVkIHRoZSBzd19zeW5jLmMg Cj4+PiB0aW1lbGluZSwgdXNhbGx5IHdhaXRfcHQgaXMgc2lnbmFsbGVkIGJ5IHRpbWVsaW5lIHBv aW50LiBBbmQgSSBhZ3JlZSAKPj4+IHdlIGNhbiBpbXBsZW1lbnQgaXQgd2l0aCBzZXZlcmFsIG1l dGhvZHMsIGJ1dCBJIGRvbid0IHRoaW5rIHRoZXJlIAo+Pj4gYXJlIGJhc2ljYWwgZGlmZmVyZW5j ZXMuCj4+Cj4+IFRoZSBwcm9ibGVtIGlzIHRoYXQgd2l0aCB5b3VyIGN1cnJlbnQgYXBwcm9hY2gg eW91IG5lZWQgdGhlIHN5bmNfb2JqIAo+PiBhbGl2ZSBmb3IgdGhlIHN5bmNocm9uaXphdGlvbiB0 byB3b3JrLiBUaGF0IGlzIG1vc3QgbGlrZWx5IG5vdCBhIGdvb2QgCj4+IGlkZWEuCj4gSW5kZWVk LCBJIHdpbGwgZml4IHRoYXQuIEhvdyBhYm91bnQgb25seSBjcmVhdGluZyBmZW5jZSBhcnJheSBm b3IgCj4gZXZlcnkgd2FpdCBwdCB3aGVuIHN5bmNvYmogcmVsZWFzZT8gd2hlbiBzeW5jb2JqIHJl bGVhc2UsIHdhaXQgcHQgbXVzdCAKPiBoYXZlIHdhaXRlZCB0aGUgc2lnbmFsIG9wZXJ0YXRpb24s IHRoZW4gd2UgY2FuIGVhc2lseSBjb25kZW5zZSBmZW5jZXMgCj4gZm9yIGV2ZXJ5IHdhaXQgcHQu IEFuZCBtZWFudGltZSwgd2UgY2FuIHRha2UgdGltZWxpbmUgYmFzZWQgd2FpdCBwdCAKPiBhZHZh bnRhZ2UuCgpUaGF0IGNvdWxkIHdvcmssIGJ1dCBJIGRvbid0IHNlZSBob3cgeW91IHdhbnQgdG8g cmVwbGFjZSB0aGUgYWxyZWFkeSAKaXNzdWVkIGZlbmNlIHdpdGggYSBmZW5jZV9hcnJheSB3aGVu IHRoZSBzeW5jIG9iamVjdCBpcyBkZXN0cm95ZWQuCgpBZGRpdGlvbmFsIHRvIHRoYXQgSSB3b3Vs ZCByYXRoZXIgcHJlZmVyIGEgY29uc2lzdGVudCBoYW5kbGluZywgZS5nLiAKd2l0aG91dCBleHRy YSByYXJlbHkgdXNlZCBjb2RlIHBhdGhzLgoKPgo+Pgo+PiBBZGRpdGlvbmFsIHRvIHRoYXQgeW91 IGVuYWJsZSBzaWduYWxpbmcgd2l0aG91dCBhIG5lZWQgZnJvbSB0aGUgCj4+IHdhaXRpbmcgc2lk ZS4gVGhhdCBpcyByYXRoZXIgYmFkIGZvciBpbXBsZW1lbnRhdGlvbnMgd2hpY2ggbmVlZCB0aGF0 IAo+PiBvcHRpbWl6YXRpb24uCj4gRG8geW91IG1lYW4gaW5jcmVhc2luZyB0aW1lbGluZSBiYXNl ZCBvbiBzaWduYWwgZmVuY2UgaXMgbm90IGJldHRlcj8gCj4gb25seSB1cGRhdGUgdGltZWxpbmUg dmFsdWUgd2hlbiByZXF1ZXN0ZWQgYnkgYSB3YWl0IHB0PwoKWWVzLCBleGFjdGx5LgoKPiBUaGlz IHdheSwgd2Ugd2lsbCBub3QgdXBkYXRlIHRpbWVsaW5lIHZhbHVlIGltbWlkaWF0ZWx5IGFuZCBj YW5ub3QgCj4gZnJlZSBzaWduYWwgcHQgaW1taWRpYXRlbHksIGFuZCB3ZSBhbHNvIG5lZWQgdG8g Y29uc2lkZXIgaXQgdG8gQ1BVIAo+IHF1ZXJ5IGFuZCB3YWl0LgoKVGhhdCBpcyBhY3R1YWxseSB0 aGUgYmV0dGVyIGNvZGluZyBzdHlsZS4gV2UgdXN1YWxseSB0cnkgdG8gYXZvaWQgZG9pbmcgCnRo aW5ncyBpbiBpbnRlcnJ1cHQgaGFuZGxlcnMgYXMgbXVjaCBhcyBwb3NzaWJsZS4KCkhvdyBhYm91 dCB0aGlzIGlkZWE6CjEuIEVhY2ggc2lnbmFsaW5nIHBvaW50IGlzIGEgZmVuY2UgaW1wbGVtZW50 YXRpb24gd2l0aCBhbiByYiBub2RlLgoyLiBFYWNoIG5vZGUga2VlcHMgYSByZWZlcmVuY2UgdG8g dGhlIGxhc3QgcHJldmlvdXNseSBpbnNlcnRlZCBub2RlLgozLiBFYWNoIG5vZGUgaXMgcmVmZXJl bmNlZCBieSB0aGUgc3luYyBvYmplY3QgaXRzZWxmLgo0LiBCZWZvcmUgZWFjaCBzaWduYWwvd2Fp dCBvcGVyYXRpb24gd2UgZG8gYSBnYXJiYWdlIGNvbGxlY3Rpb24gYW5kIApyZW1vdmUgdGhlIGZp cnN0IG5vZGUgZnJvbSB0aGUgdHJlZSBhcyBsb25nIGFzIGl0IGlzIHNpZ25hbGVkLgoKNS4gV2hl biBlbmFibGVfc2lnbmFsaW5nIGlzIHJlcXVlc3RlZCBmb3IgYSBub2RlIHdlIGNhc2NhZGUgdGhh dCB0byB0aGUgCmxlZnQgdXNpbmcgcmJfcHJldi4KIMKgwqDCoCBUaGlzIGVuc3VyZXMgdGhhdCBz aWduYWxpbmcgaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgZmVuY2UgYXMgCndlbGwgYXMgYWxs IHByZXZpb3VzIGZlbmNlcy4KCjYuIEEgd2FpdCBqdXN0IGxvb2tzIGludG8gdGhlIHRyZWUgZm9y IHRoZSBzaWduYWwgcG9pbnQgbG93ZXIgb3IgZXF1YWwgCm9mIHRoZSByZXF1ZXN0ZWQgc2VxdWVu Y2UgbnVtYmVyLgoKNy4gV2hlbiB0aGUgc3luYyBvYmplY3QgaXMgcmVsZWFzZWQgd2UgdXNlIApy YnRyZWVfcG9zdG9yZGVyX2Zvcl9lYWNoX2VudHJ5X3NhZmUoKSBhbmQgZHJvcCB0aGUgZXh0cmEg cmVmZXJlbmNlIHRvIAplYWNoIG5vZGUsIGJ1dCBuZXZlciBjYWxsIHJiX2VyYXNlIQogwqDCoMKg IFRoaXMgd2F5IHRoZSByYl90cmVlIHN0YXlzIGluIG1lbW9yeSwgYnV0IHdpdGhvdXQgYSByb290 IChlLmcuIHRoZSAKc3luYyBvYmplY3QpLiBJdCBvbmx5IGRlc3RydWN0cyBpdHNlbGYgd2hlbiB0 aGUgbG9va2VkIHVwIHJlZmVyZW5jZXMgdG8gCnRoZSBub2RlcyBhcmUgZHJvcHBlZC4KCldlbGwg dGhhdCBpcyBxdWl0ZSBhIGJ1bmNoIG9mIGxvZ2ljLCBidXQgSSB0aGluayB0aGF0IHNob3VsZCB3 b3JrIGZpbmUuCgpSZWdhcmRzLApDaHJpc3RpYW4uCgo+Cj4gVGhhbmtzLAo+IERhdmlkIFpob3UK Pgo+Pgo+PiBJIHN1Z2dlc3QgdG8gZWl0aGVyIGNvbmRlbnNlIGFsbCB0aGUgZmVuY2VzIHlvdSBu ZWVkIHRvIHdhaXQgZm9yIGluIAo+PiBhbiBhcnJheSBkdXJpbmcgdGhlIHdhaXQgb3BlcmF0aW9u LCBvciByZWZlcmVuY2UgY291bnQgdGhlIHN5bmNfb2JqIAo+PiBhbmQgb25seSBlbmFibGUgdGhl IHNpZ25hbGluZyBvbiB0aGUgZmVuY2VzIHdoZW4gcmVxdWVzdGVkIGJ5IGEgd2FpdC4KPj4KPj4+ Cj4+Pj4KPj4+Pj4gwqDCoMKgIGIuIGJlY2F1c2Ugd2UgYWxsb3dlZCAid2FpdC1iZWZvcmUtc2ln bmFsIiwgaWYgCj4+Pj4+ICJ3YWl0LWJlZm9yZS1zaWduYWwiIGhhcHBlbnMsIHRoZXJlIGlzbid0 IHNpZ25hbCBmZW5jZSB3aGljaCBjYW4gCj4+Pj4+IGJlIHVzZWQgdG8gY3JlYXRlIGZlbmNlIGFy cmF5Lgo+Pj4+Cj4+Pj4gV2VsbCwgYWdhaW4gd2UgRE9OJ1Qgc3VwcG9ydCB3YWl0LWJlZm9yZS1z aWduYWwgaGVyZS4gSSB3aWxsIAo+Pj4+IGNlcnRhaW5seSBOQUsgYW55IGltcGxlbWVudGF0aW9u IHdoaWNoIHRyaWVzIHRvIGRvIHRoaXMgdW50aWwgd2UgCj4+Pj4gaGF2ZW4ndCBmaWd1cmVkIG91 dCBhbGwgdGhlIHJlc291cmNlIG1hbmFnZW1lbnQgY29uc3RyYWludHMgYW5kIEkgCj4+Pj4gc3Rp bGwgZG9uJ3Qgc2VlIGhvdyB3ZSBjYW4gZG8gdGhpcy4KPj4+IHllcywgd2UgZG9uJ3Qgc3VwcG9y dCByZWFsIHdhaXQtYmVmb3JlLXNpZ25hbCBpbiBwYXRjaCBub3csIGp1c3QgYSAKPj4+IGZha2Ug d2FpdC1iZWZvcmUtc2lnbmFsLCB3aGljaCBzdGlsbCB3YWl0IG9uIENTIHN1Ym1pc3Npb24gdW50 aWwgCj4+PiBzaWduYWwgb3BlcmF0aW9uIGNvbWluZyB0aHJvdWdoIHdhaXRfZXZlbnQsIHdoaWNo IGlzIHRoZSBjb25jbHVzaW9uIAo+Pj4gd2UgZGlzc2N1c3NlZCBiZWZvcmUuCj4+Cj4+IFdlbGwg aW4gdGhpcyBjYXNlIHdlIHNob3VsZCBjYWxsIGl0IHdhaXQtZm9yLXNpZ25hbCBhbmQgbm90IAo+ PiB3YWl0LWJlZm9yZS1zaWduYWwgOikKPj4KPj4+Cj4+Pj4KPj4+Pj4gU28gdGltZWxpbmUgdmFs dWUgaXMgZ29vZCB0byByZXNvbHZlIHRoYXQuCj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT3RoZXJ3aXNl IHNvbWVib2R5IGNhbiBlYXNpbHkgY29uc3RydWN0IGEgc2l0dWF0aW9uIHdoZXJlIAo+Pj4+Pj4g dGltZWxpbmUgc3luYyBvYmogQSB3YWl0cyBvbiBCIGFuZCBCIHdhaXRzIG9uIEEuCj4+Pj4+IFNh bWUgc2l0dWF0aW9uIGFsc28gY2FuIGhhcHBlbnMgd2l0aCBmZW5jZS1hcnJheSwgd2Ugb25seSBj YW4gc2VlIAo+Pj4+PiB0aGlzIGlzIGEgcHJvZ3JhbW1pbmcgYnVnIHdpdGggaW5jb3JyZWN0IHVz ZS4KPj4+Pgo+Pj4+IE5vLCBmZW5jZS1hcnJheSBpcyBpbml0aWFsaXplZCBvbmx5IG9uY2Ugd2l0 aCBhIHN0YXRpYyBsaXN0IG9mIAo+Pj4+IGZlbmNlcy4gVGhpcyB3YXkgaXQgaXMgaW1wb3NzaWJs ZSB0byBhZGQgdGhlIGZlbmNlLWFycmF5IHRvIGl0c2VsZiAKPj4+PiBmb3IgZXhhbXBsZS4KPj4+ Pgo+Pj4+IEUuZy4geW91IGNhbid0IGJ1aWxkIGNpcmNsZSBkZXBlbmRlbmNpZXMgd2l0aCB0aGF0 Lgo+Pj4gd2UgYWxyZWFkeSB3YWl0IGZvciBzaWduYWwgb3BlcmF0aW9uIGV2ZW50LCBzbyBuZXZl ciBidWlsZCBjaXJjbGUgCj4+PiBkZXBlbmRlbmNpZXMgd2l0aCB0aGF0LiBUaGUgdGhlb3J5IGlz IHNhbWUuCj4+Cj4+IFllYWgsIG9rIHRoYXQgaXMgY2VydGFpbmx5IHRydWUuCj4+Cj4+IFJlZ2Fy ZHMsCj4+IENocmlzdGlhbi4KPj4KPj4+Cj4+Pgo+Pj4+Cj4+Pj4+IEJldHRlciB1c2UgcmJ0cmVl X3Bvc3RvcmRlcl9mb3JfZWFjaF9lbnRyeV9zYWZlKCkgZm9yIHRoaXMuCj4+Pj4+Pj4gRnJvbSB0 aGUgY29tbWVudHMsIHNlZW1zIHdlIGNhbm5vdCB1c2UgaXQgaGVyZSwgd2UgbmVlZCBlcmFzZSAK Pj4+Pj4+PiBub2RlIGhlcmUuCj4+Pj4+Pj4gQ29tbWVudHM6Cj4+Pj4+Pj4gwqAqIE5vdGUsIGhv d2V2ZXIsIHRoYXQgaXQgY2Fubm90IGhhbmRsZSBvdGhlciBtb2RpZmljYXRpb25zIHRoYXQgCj4+ Pj4+Pj4gcmUtb3JkZXIgdGhlCj4+Pj4+Pj4gwqAqIHJidHJlZSBpdCBpcyBpdGVyYXRpbmcgb3Zl ci4gVGhpcyBpbmNsdWRlcyBjYWxsaW5nIHJiX2VyYXNlKCkgCj4+Pj4+Pj4gb24gQHBvcywgYXMK Pj4+Pj4+PiDCoCogcmJfZXJhc2UoKSBtYXkgcmViYWxhbmNlIHRoZSB0cmVlLCBjYXVzaW5nIHVz IHRvIG1pc3Mgc29tZSAKPj4+Pj4+PiBub2Rlcy4KPj4+Pj4+PiDCoCovCj4+Pj4+Pgo+Pj4+Pj4g WWVhaCwgYnV0IHlvdXIgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgdGhlIHNhbWUgcHJvYmxl bSA6KQo+Pj4+Pj4KPj4+Pj4+IFlvdSBuZWVkIHRvIHVzZSBzb21ldGhpbmcgbGlrZSAid2hpbGUg KG5vZGUgPSByYl9maXJzdCguLi4pKSIgCj4+Pj4+PiBpbnN0ZWFkIGlmIHlvdSB3YW50IHRvIGRl c3RydWN0IHRoZSB3aG9sZSB0cmVlLgo+Pj4gT0ssIGdvdCBpdCwgSSB3aWxsIGNoYW5nZSBpdCBp biB2NC4KPj4+Cj4+PiBUaGFua3MsCj4+PiBEYXZpZCBaaG91Cj4+Cj4KPiBfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGFtZC1nZnggbWFpbGluZyBsaXN0 Cj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeAo=