From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.0 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE, SPF_PASS,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F06A3C433ED for ; Tue, 20 Apr 2021 10:15:16 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A38176103E for ; Tue, 20 Apr 2021 10:15:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A38176103E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D4F4D6E4EA; Tue, 20 Apr 2021 10:15:15 +0000 (UTC) Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by gabe.freedesktop.org (Postfix) with ESMTPS id E8D9F6E4EA; Tue, 20 Apr 2021 10:15:14 +0000 (UTC) Received: by mail-ed1-x531.google.com with SMTP id cq11so710832edb.0; Tue, 20 Apr 2021 03:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=BLl8eyB1ccnvlR5ZHjyzcXjdF1EQRD+NHowjaCAHh1E=; b=k+2l9t4DAYxYK99QqH34fRytbL6QfzCnqCOELLaqUA59/5L6uKP7V5Cf8Gx5dMU00j /w6AK9SD+wJGMY4tZQd4crNRXIOuCilQx3B/Qil1+nQadm8VpM01CXpAiy9FbO1W+Fqd yZ8o13k05iugowBG1NPnnVgmDP4X4s8zdZPcz1SOBp3VIMT3VE5TG7HA5WLJd3cr8D3V g0PghLlsMsqFNUQI6zDI3/zSj0tDHc39Kgq2XnhFZcRTkZNw7UAfSkt9AtlnEfKBj0LX gGZUp2+fhrptge9vStYjKJ5Pq1NwVxUicfTPdcJ9OYDRUddSvRt3jdrmjPDknuShfOkm vzsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=BLl8eyB1ccnvlR5ZHjyzcXjdF1EQRD+NHowjaCAHh1E=; b=g2wAAjRrsDNUciSP+vI0RXWPowL9XKCGh78RpeUtjBvnyFL5u5siwDr0WpEX71pA/i IXs7kBI9SThT7HCv7eiGeVxjQ4NLuULWD7xfoRLKVI4Kx86VOo39CuemnWSZwhNmzDfr ZYWItvKXCK5qY9QguC7tLw3eKGkcuIhhjL80NQM4iprhwRqWuqYaelvV3euvLFjsm3rx dUHQT6MAOaKVJZAx10TkEtgiW4h5VqcbrozbYyoe4/VMqQ7ClFBOmIrxSrOiW9CLOOzu /njebNXm8g+UuiGqsWUZ5VoZX64JsEli1XKPDUDBtg9UX5LH/ul6CgRHp2OD6ch2fj6V TGQw== X-Gm-Message-State: AOAM532//IT2tHLcVyBzVh58r30ScU0yvyKuW8l3jLt1HO3dhpfUj/6H TGCNhxSGX/giWnpM89suQF7+QBvsAnQ= X-Google-Smtp-Source: ABdhPJxCIqTMP6HciTp4K+3YgNlbIT28Yi9fSk9llp+X4Zoa1EG1Edhd4J+Ynwj/hXwSygVyYClIrA== X-Received: by 2002:a05:6402:1157:: with SMTP id g23mr31196331edw.303.1618913713570; Tue, 20 Apr 2021 03:15:13 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:3caf:a441:2498:1468? ([2a02:908:1252:fb60:3caf:a441:2498:1468]) by smtp.gmail.com with ESMTPSA id mp36sm11697489ejc.48.2021.04.20.03.15.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 20 Apr 2021 03:15:13 -0700 (PDT) Subject: Re: [Mesa-dev] [RFC] Linux Graphics Next: Explicit fences everywhere and no BO fences - initial proposal To: Jason Ekstrand , =?UTF-8?B?TWFyZWsgT2zFocOhaw==?= , Daniel Vetter References: From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <926b18b2-2498-9fcb-8516-fa34510fb898@gmail.com> Date: Tue, 20 Apr 2021 12:15:11 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: ML Mesa-dev , dri-devel Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" QW0gMTkuMDQuMjEgdW0gMTc6NDggc2NocmllYiBKYXNvbiBFa3N0cmFuZDoKPiBOb3QgZ29pbmcg dG8gY29tbWVudCBvbiBldmVyeXRoaW5nIG9uIHRoZSBmaXJzdCBwYXNzLi4uCj4KPiBPbiBNb24s IEFwciAxOSwgMjAyMSBhdCA1OjQ4IEFNIE1hcmVrIE9sxaHDoWsgPG1hcmFlb0BnbWFpbC5jb20+ IHdyb3RlOgo+PiBIaSwKPj4KPj4gVGhpcyBpcyBvdXIgaW5pdGlhbCBwcm9wb3NhbCBmb3IgZXhw bGljaXQgZmVuY2VzIGV2ZXJ5d2hlcmUgYW5kIG5ldyBtZW1vcnkgbWFuYWdlbWVudCB0aGF0IGRv ZXNuJ3QgdXNlIEJPIGZlbmNlcy4gSXQncyBhIHJlZGVzaWduIG9mIGhvdyBMaW51eCBncmFwaGlj cyBkcml2ZXJzIHdvcmssIGFuZCBpdCBjYW4gY29leGlzdCB3aXRoIHdoYXQgd2UgaGF2ZSBub3cu Cj4+Cj4+Cj4+IDEuIEludHJvZHVjdGlvbgo+PiAoc2tpcCB0aGlzIGlmIHlvdSBhcmUgYWxyZWFk eSBzb2xkIG9uIGV4cGxpY2l0IGZlbmNlcykKPj4KPj4gVGhlIGN1cnJlbnQgTGludXggZ3JhcGhp Y3MgYXJjaGl0ZWN0dXJlIHdhcyBpbml0aWFsbHkgZGVzaWduZWQgZm9yIEdQVXMgd2l0aCBvbmx5 IG9uZSBncmFwaGljcyBxdWV1ZSB3aGVyZSBldmVyeXRoaW5nIHdhcyBleGVjdXRlZCBpbiB0aGUg c3VibWlzc2lvbiBvcmRlciBhbmQgcGVyLUJPIGZlbmNlcyB3ZXJlIHVzZWQgZm9yIG1lbW9yeSBt YW5hZ2VtZW50IGFuZCBDUFUtR1BVIHN5bmNocm9uaXphdGlvbiwgbm90IEdQVS1HUFUgc3luY2hy b25pemF0aW9uLiBMYXRlciwgbXVsdGlwbGUgcXVldWVzIHdlcmUgYWRkZWQgb24gdG9wLCB3aGlj aCByZXF1aXJlZCB0aGUgaW50cm9kdWN0aW9uIG9mIGltcGxpY2l0IEdQVS1HUFUgc3luY2hyb25p emF0aW9uIGJldHdlZW4gcXVldWVzIG9mIGRpZmZlcmVudCBwcm9jZXNzZXMgdXNpbmcgcGVyLUJP IGZlbmNlcy4gUmVjZW50bHksIGV2ZW4gcGFyYWxsZWwgZXhlY3V0aW9uIHdpdGhpbiBvbmUgcXVl dWUgd2FzIGVuYWJsZWQgd2hlcmUgYSBjb21tYW5kIGJ1ZmZlciBzdGFydHMgZHJhd3MgYW5kIGNv bXB1dGUgc2hhZGVycywgYnV0IGRvZXNuJ3Qgd2FpdCBmb3IgdGhlbSwgZW5hYmxpbmcgcGFyYWxs ZWxpc20gYmV0d2VlbiBiYWNrLXRvLWJhY2sgY29tbWFuZCBidWZmZXJzLiBNb2Rlc2V0dGluZyBh bHNvIHVzZXMgcGVyLUJPIGZlbmNlcyBmb3Igc2NoZWR1bGluZyBmbGlwcy4gT3VyIEdQVSBzY2hl ZHVsZXIgd2FzIGNyZWF0ZWQgdG8gZW5hYmxlIGFsbCB0aG9zZSB1c2UgY2FzZXMsIGFuZCBpdCdz IHRoZSBvbmx5IHJlYXNvbiB3aHkgdGhlIHNjaGVkdWxlciBleGlzdHMuCj4+Cj4+IFRoZSBHUFUg c2NoZWR1bGVyLCBpbXBsaWNpdCBzeW5jaHJvbml6YXRpb24sIEJPLWZlbmNlLWJhc2VkIG1lbW9y eSBtYW5hZ2VtZW50LCBhbmQgdGhlIHRyYWNraW5nIG9mIHBlci1CTyBmZW5jZXMgaW5jcmVhc2Ug Q1BVIG92ZXJoZWFkIGFuZCBsYXRlbmN5LCBhbmQgcmVkdWNlIHBhcmFsbGVsaXNtLiBUaGVyZSBp cyBhIGRlc2lyZSB0byByZXBsYWNlIGFsbCBvZiB0aGVtIHdpdGggc29tZXRoaW5nIG11Y2ggc2lt cGxlci4gQmVsb3cgaXMgaG93IHdlIGNvdWxkIGRvIGl0Lgo+Pgo+Pgo+PiAyLiBFeHBsaWNpdCBz eW5jaHJvbml6YXRpb24gZm9yIHdpbmRvdyBzeXN0ZW1zIGFuZCBtb2Rlc2V0dGluZwo+Pgo+PiBU aGUgcHJvZHVjZXIgaXMgYW4gYXBwbGljYXRpb24gYW5kIHRoZSBjb25zdW1lciBpcyBhIGNvbXBv c2l0b3Igb3IgYSBtb2Rlc2V0dGluZyBkcml2ZXIuCj4+Cj4+IDIuMS4gVGhlIFByZXNlbnQgcmVx dWVzdAo+Pgo+PiBBcyBwYXJ0IG9mIHRoZSBQcmVzZW50IHJlcXVlc3QsIHRoZSBwcm9kdWNlciB3 aWxsIHBhc3MgMiBmZW5jZXMgKHN5bmMgb2JqZWN0cykgdG8gdGhlIGNvbnN1bWVyIGFsb25nc2lk ZSB0aGUgcHJlc2VudGVkIERNQUJVRiBCTzoKPj4gLSBUaGUgc3VibWl0IGZlbmNlOiBJbml0aWFs bHkgdW5zaWduYWxsZWQsIGl0IHdpbGwgYmUgc2lnbmFsbGVkIHdoZW4gdGhlIHByb2R1Y2VyIGhh cyBmaW5pc2hlZCBkcmF3aW5nIGludG8gdGhlIHByZXNlbnRlZCBidWZmZXIuCj4+IC0gVGhlIHJl dHVybiBmZW5jZTogSW5pdGlhbGx5IHVuc2lnbmFsbGVkLCBpdCB3aWxsIGJlIHNpZ25hbGxlZCB3 aGVuIHRoZSBjb25zdW1lciBoYXMgZmluaXNoZWQgdXNpbmcgdGhlIHByZXNlbnRlZCBidWZmZXIu Cj4gSSdtIG5vdCBzdXJlIHN5bmNvYmogaXMgd2hhdCB3ZSB3YW50LiAgSW4gdGhlIEludGVsIHdv cmxkIHdlJ3JlIHRyeWluZwo+IHRvIGdvIGV2ZW4gZnVydGhlciB0byBzb21ldGhpbmcgd2UncmUg Y2FsbGluZyAidXNlcnNwYWNlIGZlbmNlcyIgd2hpY2gKPiBhcmUgYSB0aW1lbGluZSBpbXBsZW1l bnRlZCBhcyBhIHNpbmdsZSA2NC1iaXQgdmFsdWUgaW4gc29tZQo+IENQVS1tYXBwYWJsZSBCTy4g IFRoZSBjbGllbnQgd3JpdGVzIGEgaGlnaGVyIHZhbHVlIGludG8gdGhlIEJPIHRvCj4gc2lnbmFs IHRoZSB0aW1lbGluZS4KCldlbGwgdGhhdCBpcyBleGFjdGx5IHdoYXQgb3VyIFdpbmRvd3MgZ3V5 cyBoYXZlIHN1Z2dlc3RlZCBhcyB3ZWxsLCBidXQgCml0IHN0cm9uZ2x5IGxvb2tzIGxpa2UgdGhh dCB0aGlzIGlzbid0IHN1ZmZpY2llbnQuCgpGaXJzdCBvZiBhbGwgeW91IHJ1biBpbnRvIHNlY3Vy aXR5IHByb2JsZW1zIHdoZW4gYW55IGFwcGxpY2F0aW9uIGNhbiAKanVzdCB3cml0ZSBhbnkgdmFs dWUgdG8gdGhhdCBtZW1vcnkgbG9jYXRpb24uIEp1c3QgaW1hZ2luZSBhbiAKYXBwbGljYXRpb24g c2V0cyB0aGUgY291bnRlciB0byB6ZXJvIGFuZCBYIHdhaXRzIGZvcmV2ZXIgZm9yIHNvbWUgCnJl bmRlcmluZyB0byBmaW5pc2guCgpBZGRpdGlvbmFsIHRvIHRoYXQgaW4gc3VjaCBhIG1vZGVsIHlv dSBjYW4ndCBkZXRlcm1pbmUgd2hvIGlzIHRoZSBndWlsdHkgCnF1ZXVlIGluIGNhc2Ugb2YgYSBo YW5nIGFuZCBjYW4ndCByZXNldCB0aGUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgCmluIGNh c2Ugb2YgYW4gZXJyb3IuCgpBcGFydCBmcm9tIHRoYXQgdGhpcyBpcyByYXRoZXIgaW5lZmZpY2ll bnQsIGUuZy4gd2UgZG9uJ3QgaGF2ZSBhbnkgd2F5IAp0byBwcmV2ZW50IHByaW9yaXR5IGludmVy c2lvbiB3aGVuIHVzZWQgYXMgYSBzeW5jaHJvbml6YXRpb24gbWVjaGFuaXNtIApiZXR3ZWVuIGRp ZmZlcmVudCBHUFUgcXVldWVzLgoKQ2hyaXN0aWFuLgoKPiAgICBUaGUga2VybmVsIHRoZW4gcHJv dmlkZXMgc29tZSBoZWxwZXJzIGZvcgo+IHdhaXRpbmcgb24gdGhlbSByZWxpYWJseSBhbmQgd2l0 aG91dCBzcGlubmluZy4gIEkgZG9uJ3QgZXhwZWN0Cj4gZXZlcnlvbmUgdG8gc3VwcG9ydCB0aGVz ZSByaWdodCBhd2F5IGJ1dCwgSWYgd2UncmUgZ29pbmcgdG8gcmUtcGx1bWIKPiB1c2Vyc3BhY2Ug Zm9yIGV4cGxpY2l0IHN5bmNocm9uaXphdGlvbiwgSSdkIGxpa2UgdG8gbWFrZSBzdXJlIHdlIHRh a2UKPiB0aGlzIGludG8gYWNjb3VudCBzbyB3ZSBvbmx5IGhhdmUgdG8gZG8gaXQgb25jZS4KPgo+ Cj4+IERlYWRsb2NrIG1pdGlnYXRpb24gdG8gcmVjb3ZlciBmcm9tIHNlZ2ZhdWx0czoKPj4gLSBU aGUga2VybmVsIGtub3dzIHdoaWNoIHByb2Nlc3MgaXMgb2JsaWdlZCB0byBzaWduYWwgd2hpY2gg ZmVuY2UuIFRoaXMgaW5mb3JtYXRpb24gaXMgcGFydCBvZiB0aGUgUHJlc2VudCByZXF1ZXN0IGFu ZCBzdXBwbGllZCBieSB1c2Vyc3BhY2UuCj4gVGhpcyBpc24ndCBjbGVhciB0byBtZS4gIFllcywg aWYgd2UncmUgdXNpbmcgYW55dGhpbmcgZG1hLWZlbmNlIGJhc2VkCj4gbGlrZSBzeW5jb2JqLCB0 aGlzIGlzIHRydWUuICBCdXQgaXQgZG9lc24ndCBzZWVtIHRvdGFsbHkgdHJ1ZSBhcyBhCj4gZ2Vu ZXJhbCBzdGF0ZW1lbnQuCj4KPgo+PiAtIElmIHRoZSBwcm9kdWNlciBjcmFzaGVzLCB0aGUga2Vy bmVsIHNpZ25hbHMgdGhlIHN1Ym1pdCBmZW5jZSwgc28gdGhhdCB0aGUgY29uc3VtZXIgY2FuIG1h a2UgZm9yd2FyZCBwcm9ncmVzcy4KPj4gLSBJZiB0aGUgY29uc3VtZXIgY3Jhc2hlcywgdGhlIGtl cm5lbCBzaWduYWxzIHRoZSByZXR1cm4gZmVuY2UsIHNvIHRoYXQgdGhlIHByb2R1Y2VyIGNhbiBy ZWNsYWltIHRoZSBidWZmZXIuCj4+IC0gQSBHUFUgaGFuZyBzaWduYWxzIGFsbCBmZW5jZXMuIE90 aGVyIGRlYWRsb2NrcyB3aWxsIGJlIGhhbmRsZWQgbGlrZSBHUFUgaGFuZ3MuCj4gV2hhdCBkbyB5 b3UgbWVhbiBieSAiYWxsIj8gIEFsbCBmZW5jZXMgdGhhdCB3ZXJlIHN1cHBvc2VkIHRvIGJlCj4g c2lnbmFsZWQgYnkgdGhlIGh1bmcgY29udGV4dD8KPgo+Cj4+IE90aGVyIHdpbmRvdyBzeXN0ZW0g cmVxdWVzdHMgY2FuIGZvbGxvdyB0aGUgc2FtZSBpZGVhLgo+Pgo+PiBNZXJnZWQgZmVuY2VzIHdo ZXJlIG9uZSBmZW5jZSBvYmplY3QgY29udGFpbnMgbXVsdGlwbGUgZmVuY2VzIHdpbGwgYmUgc3Vw cG9ydGVkLiBBIG1lcmdlZCBmZW5jZSBpcyBzaWduYWxsZWQgb25seSB3aGVuIGl0cyBmZW5jZXMg YXJlIHNpZ25hbGxlZC4gVGhlIGNvbnN1bWVyIHdpbGwgaGF2ZSB0aGUgb3B0aW9uIHRvIHJlZGVm aW5lIHRoZSB1bnNpZ25hbGxlZCByZXR1cm4gZmVuY2UgdG8gYSBtZXJnZWQgZmVuY2UuCj4+Cj4+ IDIuMi4gTW9kZXNldHRpbmcKPj4KPj4gU2luY2UgYSBtb2Rlc2V0dGluZyBkcml2ZXIgY2FuIGFs c28gYmUgdGhlIGNvbnN1bWVyLCB0aGUgcHJlc2VudCBpb2N0bCB3aWxsIGNvbnRhaW4gYSBzdWJt aXQgZmVuY2UgYW5kIGEgcmV0dXJuIGZlbmNlIHRvby4gT25lIHNtYWxsIHByb2JsZW0gd2l0aCB0 aGlzIGlzIHRoYXQgdXNlcnNwYWNlIGNhbiBoYW5nIHRoZSBtb2Rlc2V0dGluZyBkcml2ZXIsIGJ1 dCBpbiB0aGVvcnksIGFueSBsYXRlciBwcmVzZW50IGlvY3RsIGNhbiBvdmVycmlkZSB0aGUgcHJl dmlvdXMgb25lLCBzbyB0aGUgdW5zaWduYWxsZWQgcHJlc2VudGF0aW9uIGlzIG5ldmVyIHVzZWQu Cj4+Cj4+Cj4+IDMuIE5ldyBtZW1vcnkgbWFuYWdlbWVudAo+Pgo+PiBUaGUgcGVyLUJPIGZlbmNl cyB3aWxsIGJlIHJlbW92ZWQgYW5kIHRoZSBrZXJuZWwgd2lsbCBub3Qga25vdyB3aGljaCBidWZm ZXJzIGFyZSBidXN5LiBUaGlzIHdpbGwgcmVkdWNlIENQVSBvdmVyaGVhZCBhbmQgbGF0ZW5jeS4g VGhlIGtlcm5lbCB3aWxsIG5vdCBuZWVkIHBlci1CTyBmZW5jZXMgd2l0aCBleHBsaWNpdCBzeW5j aHJvbml6YXRpb24sIHNvIHdlIGp1c3QgbmVlZCB0byByZW1vdmUgdGhlaXIgbGFzdCB1c2VyOiBi dWZmZXIgZXZpY3Rpb25zLiBJdCBhbHNvIHJlc29sdmVzIHRoZSBjdXJyZW50IE9PTSBkZWFkbG9j ay4KPiBJcyB0aGlzIGV2ZW4gcmVhbGx5IHBvc3NpYmxlPyAgSSdtIG5vIGtlcm5lbCBNTSBleHBl cnQgKHRyeWluZyB0bwo+IGxlYXJuIHNvbWUpIGJ1dCBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQg dGhlIHVzZSBvZiBwZXItQk8gZG1hLWZlbmNlCj4gcnVucyBkZWVwLiAgSSB3b3VsZCBsaWtlIHRv IHN0b3AgdXNpbmcgaXQgZm9yIGltcGxpY2l0IHN5bmNocm9uaXphdGlvbgo+IHRvIGJlIHN1cmUs IGJ1dCBJJ20gbm90IHN1cmUgSSBiZWxpZXZlIHRoZSBjbGFpbSB0aGF0IHdlIGNhbiBnZXQgcmlk Cj4gb2YgaXQgZW50aXJlbHkuICBIYXBweSB0byBzZWUgc29tZW9uZSB0cnksIHRob3VnaC4KPgo+ Cj4+IDMuMS4gRXZpY3Rpb25zCj4+Cj4+IElmIHRoZSBrZXJuZWwgd2FudHMgdG8gbW92ZSBhIGJ1 ZmZlciwgaXQgd2lsbCBoYXZlIHRvIHdhaXQgZm9yIGV2ZXJ5dGhpbmcgdG8gZ28gaWRsZSwgaGFs dCBhbGwgdXNlcnNwYWNlIGNvbW1hbmQgc3VibWlzc2lvbnMsIG1vdmUgdGhlIGJ1ZmZlciwgYW5k IHJlc3VtZSBldmVyeXRoaW5nLiBUaGlzIGlzIG5vdCBleHBlY3RlZCB0byBoYXBwZW4gd2hlbiBt ZW1vcnkgaXMgbm90IGV4aGF1c3RlZC4gT3RoZXIgbW9yZSBlZmZpY2llbnQgd2F5cyBvZiBzeW5j aHJvbml6YXRpb24gYXJlIGFsc28gcG9zc2libGUgKGUuZy4gc3luYyBvbmx5IG9uZSBwcm9jZXNz KSwgYnV0IGFyZSBub3QgZGlzY3Vzc2VkIGhlcmUuCj4+Cj4+IDMuMi4gUGVyLXByb2Nlc3MgVlJB TSB1c2FnZSBxdW90YQo+Pgo+PiBFYWNoIHByb2Nlc3MgY2FuIG9wdGlvbmFsbHkgYW5kIHBlcmlv ZGljYWxseSBxdWVyeSBpdHMgVlJBTSB1c2FnZSBxdW90YSBhbmQgY2hhbmdlIGRvbWFpbnMgb2Yg aXRzIGJ1ZmZlcnMgdG8gb2JleSB0aGF0IHF1b3RhLiBGb3IgZXhhbXBsZSwgYSBwcm9jZXNzIGFs bG9jYXRlZCAyIEdCIG9mIGJ1ZmZlcnMgaW4gVlJBTSwgYnV0IHRoZSBrZXJuZWwgZGVjcmVhc2Vk IHRoZSBxdW90YSB0byAxIEdCLiBUaGUgcHJvY2VzcyBjYW4gY2hhbmdlIHRoZSBkb21haW5zIG9m IHRoZSBsZWFzdCBpbXBvcnRhbnQgYnVmZmVycyB0byBHVFQgdG8gZ2V0IHRoZSBiZXN0IG91dGNv bWUgZm9yIGl0c2VsZi4gSWYgdGhlIHByb2Nlc3MgZG9lc24ndCBkbyBpdCwgdGhlIGtlcm5lbCB3 aWxsIGNob29zZSB3aGljaCBidWZmZXJzIHRvIGV2aWN0IGF0IHJhbmRvbS4gKHRoYW5rcyB0byBD aHJpc3RpYW4gS29lbmlnIGZvciB0aGlzIGlkZWEpCj4gVGhpcyBpcyBnb2luZyB0byBiZSBkaWZm aWN1bHQuICBPbiBJbnRlbCwgd2UgaGF2ZSBzb21lIHJlc291cmNlcyB0aGF0Cj4gaGF2ZSB0byBi ZSBwaW5uZWQgdG8gVlJBTSBhbmQgY2FuJ3QgYmUgZHluYW1pY2FsbHkgc3dhcHBlZCBvdXQgYnkg dGhlCj4ga2VybmVsLiAgSW4gR0wsIHdlIHByb2JhYmx5IGNhbiBkZWFsIHdpdGggaXQgc29tZXdo YXQgZHluYW1pY2FsbHkuICBJbgo+IFZ1bGthbiwgd2UnbGwgYmUgZW50aXJlbHkgZGVwZW5kZW50 IG9uIHRoZSBhcHBsaWNhdGlvbiB0byB1c2UgdGhlCj4gYXBwcm9wcmlhdGUgVnVsa2FuIG1lbW9y eSBidWRnZXQgQVBJcy4KPgo+IC0tSmFzb24KPgo+Cj4+IDMuMy4gQnVmZmVyIGRlc3RydWN0aW9u IHdpdGhvdXQgcGVyLUJPIGZlbmNlcwo+Pgo+PiBXaGVuIHRoZSBidWZmZXIgZGVzdHJveSBpb2N0 bCBpcyBjYWxsZWQsIGFuIG9wdGlvbmFsIGZlbmNlIGxpc3QgY2FuIGJlIHBhc3NlZCB0byB0aGUg a2VybmVsIHRvIGluZGljYXRlIHdoZW4gaXQncyBzYWZlIHRvIGRlYWxsb2NhdGUgdGhlIGJ1ZmZl ci4gSWYgdGhlIGZlbmNlIGxpc3QgaXMgZW1wdHksIHRoZSBidWZmZXIgd2lsbCBiZSBkZWFsbG9j YXRlZCBpbW1lZGlhdGVseS4gU2hhcmVkIGJ1ZmZlcnMgd2lsbCBiZSBoYW5kbGVkIGJ5IG1lcmdp bmcgZmVuY2UgbGlzdHMgZnJvbSBhbGwgcHJvY2Vzc2VzIHRoYXQgZGVzdHJveSB0aGVtLiBNaXRp Z2F0aW9uIG9mIG1hbGljaW91cyBiZWhhdmlvcjoKPj4gLSBJZiB1c2Vyc3BhY2UgZGVzdHJveXMg YSBidXN5IGJ1ZmZlciwgaXQgd2lsbCBnZXQgYSBHUFUgcGFnZSBmYXVsdC4KPj4gLSBJZiB1c2Vy c3BhY2Ugc2VuZHMgZmVuY2VzIHRoYXQgbmV2ZXIgc2lnbmFsLCB0aGUga2VybmVsIHdpbGwgaGF2 ZSBhIHRpbWVvdXQgcGVyaW9kIGFuZCB0aGVuIHdpbGwgcHJvY2VlZCB0byBkZWFsbG9jYXRlIHRo ZSBidWZmZXIgYW55d2F5Lgo+Pgo+PiAzLjQuIE90aGVyIG5vdGVzIG9uIE1NCj4+Cj4+IE92ZXJj b21taXRtZW50IG9mIEdQVS1hY2Nlc3NpYmxlIG1lbW9yeSB3aWxsIGNhdXNlIGFuIGFsbG9jYXRp b24gZmFpbHVyZSBvciBpbnZva2UgdGhlIE9PTSBraWxsZXIuIEV2aWN0aW9ucyB0byBHUFUtaW5h Y2Nlc3NpYmxlIG1lbW9yeSBtaWdodCBub3QgYmUgc3VwcG9ydGVkLgo+Pgo+PiBLZXJuZWwgZHJp dmVycyBjb3VsZCBtb3ZlIHRvIHRoaXMgbmV3IG1lbW9yeSBtYW5hZ2VtZW50IHRvZGF5LiBPbmx5 IGJ1ZmZlciByZXNpZGVuY3kgYW5kIGV2aWN0aW9ucyB3b3VsZCBzdG9wIHVzaW5nIHBlci1CTyBm ZW5jZXMuCj4+Cj4+Cj4+IDQuIERlcHJlY2F0aW5nIGltcGxpY2l0IHN5bmNocm9uaXphdGlvbgo+ Pgo+PiBJdCBjYW4gYmUgcGhhc2VkIG91dCBieSBpbnRyb2R1Y2luZyBhIG5ldyBnZW5lcmF0aW9u IG9mIGhhcmR3YXJlIHdoZXJlIHRoZSBkcml2ZXIgZG9lc24ndCBhZGQgc3VwcG9ydCBmb3IgaXQg KGxpa2UgYSBkcml2ZXIgZm9yayB3b3VsZCBkbyksIGFzc3VtaW5nIHVzZXJzcGFjZSBoYXMgYWxs IHRoZSBjaGFuZ2VzIGZvciBleHBsaWNpdCBzeW5jaHJvbml6YXRpb24uIFRoaXMgY291bGQgcG90 ZW50aWFsbHkgY3JlYXRlIGFuIGlzb2xhdGVkIHBhcnQgb2YgdGhlIGtlcm5lbCBEUk0gd2hlcmUg YWxsIGRyaXZlcnMgb25seSBzdXBwb3J0IGV4cGxpY2l0IHN5bmNocm9uaXphdGlvbi4KPj4KPj4g TWFyZWsKPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiBtZXNhLWRldiBtYWlsaW5nIGxpc3QKPiBtZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcK PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL21lc2EtZGV2 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK