Return-path: Envelope-to: publicinbox@libre-riscv.org Delivery-date: Sun, 17 May 2020 01:54:10 +0100 Received: from localhost ([::1] helo=libre-riscv.org) by libre-soc.org with esmtp (Exim 4.89) (envelope-from ) id 1ja7ZC-0002wt-4W; Sun, 17 May 2020 01:54:10 +0100 Received: from lkcl.net ([217.147.94.29]) by libre-soc.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from ) id 1ja7ZA-0002wn-52 for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 01:54:08 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lkcl.net; s=201607131; h=Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References:MIME-Version; bh=u3tGbz4P5nDXRAkbWRqVg5zss8msmX8jpRQhvx4WpmM=; b=nHtf6eORa+LYX5DdAGtFCoU0SVK4n1MiUZrgPAGQiMwmP2EJquIE+jV5MXLRVwKEeUu9HRRdoAU0VQ1BiGkuWIuxDLHyI8PTWoDRHwitwojU/PnyLAa6o9wMXBmRFCYdsJyF0UwcVmCuRRdmlhOvg0FH0utN+TKrzPVXOsiKwP4=; Received: from mail-lj1-f169.google.com ([209.85.208.169]) by lkcl.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1ja7Z9-0007l2-Px for libre-riscv-dev@lists.libre-riscv.org; Sun, 17 May 2020 00:54:07 +0000 Received: by mail-lj1-f169.google.com with SMTP id g4so6103102ljl.2 for ; Sat, 16 May 2020 17:53:52 -0700 (PDT) X-Gm-Message-State: AOAM531I+cZ9mv9ftX65zuCmdWwTlwq2Ft/zxh3V6ye5k0jrnXb1TJDX L29TAUkZ3c09nU7rN3qfaix3/ZuI+8+CJ1CdhY0= X-Google-Smtp-Source: ABdhPJxJfpix8kDLn0AsyQt0xRuGMJVpVXNvTrHaSSBdwNKIrRLmXzgcVanmvKkPEurrjiewNKncj55w61+As51r9fA= X-Received: by 2002:a2e:9081:: with SMTP id l1mr5920201ljg.81.1589676826461; Sat, 16 May 2020 17:53:46 -0700 (PDT) MIME-Version: 1.0 References: <13EDF987-9A19-4C96-89C2-6DB784CF2C96@gatech.edu> <25AC8A2E-D48F-439F-AF9D-0EB3DC08D7CC@gatech.edu> In-Reply-To: From: Luke Kenneth Casson Leighton Date: Sun, 17 May 2020 01:53:34 +0100 X-Gmail-Original-Message-ID: Message-ID: To: Libre-RISCV General Development Subject: Re: [libre-riscv-dev] Scoreboard vs Tomasulo X-BeenThere: libre-riscv-dev@lists.libre-riscv.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Libre-RISCV General Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Libre-RISCV General Development Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org Sender: "libre-riscv-dev" T24gU2F0LCBNYXkgMTYsIDIwMjAgYXQgMTE6NDUgUE0gSmVyZW15IFNpbmdoZXIgPHRoZWpzaW5n aGVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBJIGhhdmUgZmluYWxseSBmaW5pc2hlZCBwYXJzaW5n IE1pdGNoJ3MgY2hhcHRlcnMsIGFuZCBub3cgSSBzZWUgd2hhdAo+IHRoZSBwcmltYXJ5IGNvbmZ1 c2lvbiBpcyBmcm9tLiBUaGUgc2NvcmVib2FyZCBiZWluZyBkZXZlbG9wZWQgaGVyZSBoYXMKPiBi ZWVuIHJlZmVycmVkIHRvIGluIHRoZSBtYWlsaW5nIGxpc3RzIGFzIGEgIkNEQyA2NjAwLWxpa2Ui IHNjb3JlYm9hcmQsCj4gd2hpbGUgaW4gcmVhbGl0eSwgdGhlIGZpbmFsIGRlc2lnbiBpcyBmYXIg ZXh0ZW5kZWQgZmFyIGJleW9uZCB0aGUKPiBvcmlnaW5hbCBDREMgNjYwMCBpbXBsZW1lbnRhdGlv bi4KCnllcy4gIHdlbGwuLi4gIGZhciBiZXlvbmQgaXQgaW4gKmZ1bmN0aW9uYWxpdHkqLCBidXQg bm90IHRoYXQgZmFyIGluCnRlcm1zIG9mIGdhdGUKY291bnQgW2NhdmVhdDogaWYgd2Ugd2VyZSBv bmx5IGRvaW5nIHRoZSBzYW1lIDMgcmVnZmlsZXMsIEEgQiBhbmQgWC4KYXMgd2UgYXJlIGRvaW5n IDMyeCBJTlQsIDMyeCBGUCwgcGx1cyBTUFIgcmVncyAqYW5kKiBDb25kaXRpb24gUmVncwphbGwg dW5kZXIgdGhlIGNvbnRyb2wgb2YgRGVwZW5kZW5jeSBNYXRyaWNlcywgYSBkaXJlY3QgY29tcGFy aXNvbiBpcyB1bmZhaXJdCgpvaC4gIGFoLiAgb25lIGRlZmluaXRlIGVuaGFuY2VtZW50OiBpbiB0 aGUgZGlhZ3JhbXMgeW91IHNlZSBpbiBNaXRjaCdzCmNoYXB0ZXJzLCB0aGVyZSBpcyBvbmx5IG9u ZSBHTy1SRUFEIGFuZCBvbmx5IG9uZSBHTy1XUklURS4gIG9uZSBHTy1SRUFECmluZGljYXRlcyBh IGRlc2lyZSB0byByZXF1ZXN0ICptdWx0aXBsZSogUmVnZmlsZSBSZWFkIHBvcnRzLgoKYmVjYXVz ZSBQT1dFUjkgaGFzIGluIHNvbWUgY2FzZXMgdXAgdG8gKmZpdmUqIGluY29taW5nIHJlZ2lzdGVy cyBhbmQKKnRocmVlKiBvdXRnb2luZyByZWdpc3RlcnMgKGluIGRpZmZlcmVudCBSZWdmaWxlcyAt IElOVC9GUCwgU1BSLCBDUiksIHdlIG5lZWRlZAp0byBzcGxpdCB0aG9zZSBvdXQgaW50byBpbmRp dmlkdWFsIGxpbmVzLiAgR08tUkVBRDEvUkVBRC1SRVExLApHTy1SRUFEMi9SRUFELVJFUTIgZXRj LgoKY3VycmVudGx5IGkgYW0gc3RydWdnbGluZyB3aXRoIHRoaXMgRlNNIHdoaWNoIGltcGxlbWVu dHMgMy1vcGVyYW5kIGluLAppbW1lZGlhdGVzLCAyLW9wZXJhbmQgb3V0ICphbmQqIG1hbmFnZXMg dGhlIGFkZHJlc3MsIEdPLVNULCBhZGRyZXNzCmV4Y2VwdGlvbnMgYW5kIGRlYWxzIHdpdGggUE9X RVI5IExEL1NUICJVcGRhdGUiIG1vZGUuCgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L2xk X3N0X2NvbXBfdW5pdC5qcGcKCnRoaXMgaSByZWFhYWFsbHkgbmVlZCBzb21lIGhlbHAgd2l0aC4K Cgo+IEkgd291bGQgc3VnZ2VzdCBub3QgY2FsbGluZyBpdCBhCj4gIkNEQyA2NjAwLWxpa2Ugc2Nv cmVib2FyZCIgaW4gdGhlIGZ1dHVyZSwgaW5zdGVhZCBhICJleHRlbmRlZAo+IHNjb3JlYm9hcmQi IGlzIG1vcmUgYWNjdXJhdGUuCgphcHByZWNpYXRlZC4gIGlmIHlvdSBjb3VsZCBjb25zaWRlciBo ZWxwaW5nIGNoYW5nZSB0aGUgd2lraSB0byByZWZsZWN0IHRoaXMgKGFuZApoZWxwIHVzIHRvIG1h aW50YWluIHRoZSBhZHZhbnRhZ2VzIGJlbG93KSB0aGlzIHdvdWxkIGJlIGZhbnRhc3RpYy4KCmkn dmUgdXNlZCBhIHJhbmdlIG9mIHRlcm1zIC0gImF1Z21lbnRlZCA2NjAwIHNjb3JlYm9hcmQiLCBh bmQgb3RoZXJzLgp0aGUgaGlzdG9yaWMKbGluayBhbmQgdGhlIGVmZmVjdGl2ZSByZXZpdmFsIG9m IHNvbWV0aGluZyBsb25nLWZvcmdvdHRlbiB3aGljaCB3YXMKYm90aCBlbGVnYW50CmFuZCBzdGFn Z2VyaW5nbHkgZ2F0ZS1lZmZpY2llbnQgKG91dCBvZiBuZWNlc3NpdHkpOiBpIGRvbid0IHdhbnQg dG8gdXNlIHRoZSB3b3JkCiJwb2xpdGljYWwiIGluIGFueSBzZW50ZW5jZSBob3dldmVyIHRoZXJl IGlzIGEgY29uc2lkZXJhYmxlIHB1YmxpY2l0eQoid293IGZhY3RvciIKdG8gZG9pbmcgc29tZXRo aW5nIGFzIHN1cnByaXNpbmcgYXMgcmV2aXZpbmcgYSA1NS15ZWFyLW9sZCBkZXNpZ24uCgpzaW5j ZSBpbnRlcmFjdGluZyB3aXRoIE1pdGNoIEFsc3VwIGxhc3QgeWVhciwgeW91J3JlIHRoZSBmaXJz dCBhZGRpdGlvbmFsIHBlcnNvbgp0byBhY3R1YWxseSBkbyBhbnkga2luZCBvZiBzaWduaWZpY2Fu dCBhbmFseXNpczogY29uc2VxdWVudGx5IHRlcm1pbm9sb2d5IGhhcwpub3QgcmVhbGx5IGJlZW4g ZGlzY3Vzc2VkLi4uIGJlY2F1c2UgdGhlcmUgd2Fzbid0IGFueW9uZSB0byBkaXNjdXNzIGl0IHdp dGghCgo+IExldCBtZSB0cnkgdG8gY29tcG9zZSBteSB0aG91Z2h0cy4KPiBJbiBvcmRlciBmb3Ig T09PIGV4ZWN1dGlvbiB0byBiZSBwb3NzaWJsZSwgd3JpdGUgZGF0YSBmcm9tCj4gc3BlY3VsYXRp dmVseSBleGVjdXRlZCBpbnN0cnVjdGlvbnMgbXVzdCBiZSBidWZmZXJlZCwgZm9yIGluIHRoZSBj YXNlCj4gb2YgbWlzc3BlY3VsYXRpb24sIHRoZXkgbXVzdCBub3QgYmUgYWxsb3dlZCB0byBjb21t aXQgaW50byB0aGUKPiBhcmNoaXRlY3R1cmFsIHJlZ2lzdGVyIGZpbGUuCgptaXMtc3BlY3VsYXRp b24sIExEL1NUIHBhZ2UtZmF1bHRzLCBwcmVkaWNhdGVkIGluc3RydWN0aW9ucyB3aGVyZSB0aGUg b3BlcmFuZAp0aGF0IGNvbnRhaW5zIHRoZSBiaXRtYXNrIGlzIGluIGEgcmVnaXN0ZXIgdGhhdCBo YXMgbm90IGJlZW4gcmVhZCB5ZXQsIGFuZCBldmVuCnNpbXBsZSBleHRlcm5hbCBOTUkgaW50ZXJy dXB0czogYWxsIG9mIHRoZXNlIG5lZWQgYSBtZWFucyBhbmQgbWV0aG9kIG9mCmtpbGxpbmcgaW4t ZmxpZ2h0IGRhdGEsIHllcy4KCj4gSW4gVG9tYXN1bG8ncywgc3BlY3VsYXRpdmUgd3JpdGUgZGF0 YSBhcmUgaGVsZCBpbiBwaHlzaWNhbGx5IHJlbmFtZWQgcmVnaXN0ZXJzLgo+IEluIHRoZSBleHRl bmRlZCBzY29yZWJvYXJkIHNjaGVtZSwgc3BlY3VsYXRpdmUgd3JpdGUgZGF0YSBhcmUgaGVsZCBp bgo+IGNvbXB1dGUgdW5pdCBsYXRjaGVzLgoKdGhlc2UgdHdvIGVmZmVjdGl2ZWx5IGhhdmluZyBh IHZlcnkgbG93IExldmVuc2h0ZWluIGRpc3RhbmNlLCBidXQgbm90IHF1aXRlCnplcm8uCgoqIGlu IFRvbWFzdWxvLCB0aGUgcmVhc29uIGZvciB0aGUgZXhwbGljaXQgcmVuYW1pbmcgaXMgZG93biB0 byB0aGUgMkQKbmF0dXJlIG9mIFJTJ3MuCiAgaGVuY2UgdGhlIFJPQiByb3cgbnVtYmVyIG5lZWRz IHRvIGJlIHN0b3JlZCBpbiB0aGUgUlMKCiogaW4gZXh0ZW5kZWQtc2NvcmVib2FyZCwgdGhlIEZV J3MgaW5kZXggLyBjb2x1bW4tbnVtYmVyICppcyogdGhhdCAibmFtZSI7CiAgd2l0aCB0aGVyZSBv bmx5ICpiZWluZyogYSBvbmUtdG8tb25lIHBhdGgsIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGEKbmFt ZSAqYXQgYWxsKiwKICBoZW5jZSB3aHkgaSByZWZlciB0byB0aGUgQ1UgbGF0Y2hlcyBhcyAibmFt ZWxlc3MgcmVnaXN0ZXJzIi4KCiAgdGhlIFJPQiByb3cgbnVtYmVyICppcyogdGhlIEZVIG51bWJl ciB3aGljaCAqaXMqIHRoZSByZW5hbWVkLXJlZ2lzdGVyLW51bWJlcgogIGFuZCBjb25zZXF1ZW50 bHkgYnkgYmVpbmcgb25lLXRvLW9uZSBpbiBldmVyeSBhc3BlY3QsIG5lZWRzIG5vIG5hbWUuCgp0 aGlzIGFzcGVjdCBvZiA2NjAwIHNjb3JlYm9hcmRzIC0gdGhlIGNvbXBsZXRlIGxhY2sgb2YgbmFt aW5nIGFuZCBldmVuIHRoZQpsYWNrIG9mIHNpZ25pZmljYW5jZSBkcmF3biB0byBpdCBldmVuIGJ5 IEphbWVzIFRob3JudG9uIGhpbXNlbGYgaW4gaGlzIGJvb2ssCmFuZCBjZXJ0YWlubHkgaW4gdGhl IHBhdGVudHMsIGlzIHdoeSB0aGUgNjYwMCBpcyAqYmVsaWV2ZWQqIG5vdCB0byBoYXZlIHJlZ2lz dGVyCnJlbmFtaW5nIG9mICphbnkqIGtpbmQuCgphaCAtIG9uZSBvdGhlciByZWFsbHkgY3JpdGlj YWwgdGhpbmcgKGkgd2lsbCBhZGQgdG8gdGhlIHBhZ2UpOgoKKiBUb21hc3VsbyBST0IgUm93IG51 bWJlcnMgcHJlc2VydmUgaW5zdHJ1Y3Rpb24gb3JkZXIgdGhyb3VnaCBzZXF1ZW50aWFsCiAgIG51 bWJlcmluZyBieSB0aGUgYWN0dWFsIHJvdyBudW1iZXIKCiogNjYwMCBzY29yZWJvYXJkcyBwcmVz ZXJ2ZSBpbnN0cnVjdGlvbiBvcmRlciBpbiB0aGUgRlUtRlUgTWF0cml4IHdpdGgKICBhIE54TiBi aXQtbGV2ZWwgbWF0cml4IG9mIFNSIExhdGNoZXMgaW1wbGVtZW50aW5nIGEgImxpbmtlZCBsaXN0 IiAodGhlCiAgRGlyZWN0ZWQgQWN5Y2xpYyBHcmFwaCkgb2Ygb3JkZXJlZCBkZXBlbmRlbmNpZXMs IHVzaW5nIHRoZSAqcmVnaXN0ZXIqCiAgZGVwZW5kZW5jaWVzIGF0IHRoZSB0aW1lIHRoZSBpbnN0 cnVjdGlvbiBpcyBpbnNlcnRlZCBpbnRvIHRoZSAqRlUtUkVHUyoKICBNYXRyaXggdG8gZGV0ZXJt aW5lIHRoZSBGVS1GVSBEQUcuICB0aGlzIGhhcyBtb3JlIGluIGNvbW1vbiB3aXRoIGEKICAibGlu a2VkIGxpc3QiIGRhdGEgc3RydWN0dXJlLCB0byB1c2Ugc29mdHdhcmUgdGVybWlub2xvZ3kuCgp0 aGlzIGxhdHRlciBhc3BlY3QgaXMgYSBjcnVjaWFsIG9uZSB0aGF0IGV2ZW4gSmFtZXMgVGhvcm50 b24gbm90ZXMgaXMgcmVhbGx5CipyZWFsbHkqIGNvbXBsZXggdG8gZXhwbGFpbiwgeWV0IHBhcmFk b3hpY2FsbHkgcmVxdWlyZXMgYW4gZXh0cmFvcmRpbmFyaWx5CnNtYWxsIG51bWJlciBvZiBhY3R1 YWwgZ2F0ZXMgdG8gaW1wbGVtZW50LgoKaG93ZXZlciB1bmRlcnN0YW5kaW5nIHRoZSBkaWZmZXJl bmNlIGJldHdlZW4gdGhlIChiaW5hcnkpIFJPQiBSb3cKbnVtYmVyaW5nICh3aGljaCBwcmVzZXJ2 ZXMgdGhlIERBRyBvZiBpbnN0cnVjdGlvbiBvcmRlciBieSB3YXkKb2YgYmluYXJ5LWFkZHJlc3Nl ZCBpbnN0cnVjdGlvbiBST0IgUm93IE4rMSBiZWluZyBhIGdyZWF0ZXIgaW5kZXgKdGhhbiBiaW5h cnktYWRkcmVzc2VkIGluc3RydWN0aW9uIFJPQiBSb3cgTikgYW5kIHRoaXMKImZ1bmN0aW9uYWxs eS1lcXVpdmFsZW50IiBsaW5rZWQtbGlzdCBzeXN0ZW0gZXF1YWxseSBzdWNjZXNzZnVsbHkgcHJl c2VydmluZwphIERBRyBidXQgdXNpbmcgdW5hcnkgU1IgTGF0Y2hlcyB0byBkbyBzbywgaXMga2V5 IHRvIHJlY29nbmlzaW5nCmFuZCBhcHByZWNpYXRpbmcgdGhhdCBUb21hc3VsbyBhbmQgU2NvcmVi b2FyZHMgKnJlYWxseSBhcmUqIGZ1bmN0aW9uYWxseQpkaXJlY3RseSBlcXVpdmFsZW50LgoKaGVy ZSBpdCBzaG91bGQgYmVjb21lIGNsZWFyIGFzIHRvIGFub3RoZXIgYXNwZWN0IG9mIHdoeSBtdWx0 aS1pc3N1ZSBpcwpwcm9ibGVtYXRpYyBpbiBUb21hc3Vsby4gIHdoZXJlIGRldGVjdGlvbiBvZiAi cmVhZGluZXNzIHRvIGNvbW1pdCIgaW4KYSBzaW5nbGUtaXNzdWUgVG9tYXN1bG8gaXMgYSBzaW1w bGUgbWF0dGVyIG9mIGNoZWNraW5nICpvbmUqIHJvdwoiaXMgeW91ciByZXN1bHQgcmVhZHksIGlm IHllcyBjb21taXQgaXQgYW5kIGN5Y2xpY2FsbHkgaW5jcmVtZW50IHRoZSBwb2ludGVyCnRvIHRo ZSBST0Igcm93IHRvIHRoZSBuZXh0IGl0ZW0sIHJlYWR5IGZvciB0ZXN0LW9yLWNvbW1pdCBvbiB0 aGUgKm5leHQqCmN5Y2xlIiwgdGhpcyBtdXN0IGJlIHVwZGF0ZWQgdG8gdGVzdGluZyBvZiAqbXVs dGlwbGUqIHJvdyAicmVhZGluZXNzIgpzdGF0ZXMsIHdoaWNoIGNsZWFybHkgcmVxdWlyZXMgYSBt dWx0aS1wb3J0ZWQgU1JBTS4KCnRoaXMgaXMgd2hlcmUgInNvbHV0aW9ucyIgdGhhdCBpIGhhdmUg c2VlbiBhY3R1YWxseSBzdHJhdGlmeSB0aGUgUk9CCmludG8gNCAob3IgTikgaW50ZXJsZWF2ZWQg YmFua3MuICBjcm9zc2JhcnMgYXJlIHJlcXVpcmVkLi4uIGl0J3Mgd2hlcmUKdGhlIG5pZ2h0bWFy ZXMgYmVnaW4uCgoKPiBJbiBUb21hc3VsbydzLCBicmFuY2ggZGVwZW5kZW5jeSBtYXNrcyBhcmUg dXNlZCB0byBkcmFpbiBtaXNzcGVjdWxhdGVkCj4gaW5zdHJ1Y3Rpb25zLgoKYXJlIHRoZXNlIHVu YXJ5LWVuY29kZWQgb3IgYmluYXJ5LWVuY29kZWQ/ICBieSBtYXNrcyBpIHdvdWxkIGV4cGVjdCB0 aGVtCnRvIGJlIHVuYXJ5LWVuY29kZWQgYW5kIHRodXMgYWxsb3cgbXVsdGlwbGUgYml0cyB0byBi ZSBzZXQsIGFsbG93aW5nIG11bHRpcGxlCm9wZXJhdGlvbnMgdG8gYmUgY2FuY2VsbGVkLgoKaWYg bm90LCBhbmQgYmluYXJ5IG1hc2tzIGFyZSB1c2VkLCB0aGVuIGVhY2ggdW5pdCBtdXN0IGhhdmUg YW4gYXJpdGhtZXRpYwpjb21wYXJhdG9yLCAiaXMgbXkgYmluYXJ5IGluZGV4IGxlc3MgdGhhbiBv ciBlcXVhbCB0byB0aGUgYnJhbmNoIGRlcGVuZGVuY3kKbWFzaywgaWYgbGVzcyB0aGFuLCB0aGVu IHRoaXMgbWVhbnMgaSBtdXN0IGRpZSIuCgp0aGUgU2hha3RpIDY2MDAtbGlrZSAoZXh0ZW5kZWQp IHNjb3JlYm9hcmQgc3lzdGVtIGluIHRoZWlyIEUtQ2xhc3MgZGVzaWduCnVzZXMgKmJpbmFyeSog bnVtYmVyaW5nLCB3aGljaCBtZWFucyB0aGF0IHRoZXkgdXNlIHRoYXQgc2NoZW1lLiAgZWZmZWN0 aXZlbHkKdGhlIG1hc2sgaXMgbm90IGEgbWFzayBwZXIgc2UsIGl0IGlzIGEgc2hvcnRlbmVkIHZl cnNpb24gb2YgdGhlIGluc3RydWN0aW9uCnNlcXVlbnRpYWwgbnVtYmVyLgoKQk9PTSB1c2VzIHVu YXJ5IGJpdC1tYXNrcy4gIGkgdGhpbmsuICBpIGhhZCBhIGJyaWVmIGNvbnZlcnNhdGlvbiBhYm91 dCBpdAp3aXRoIHNvbWVvbmUsIHNvbWV3aGVyZSwgYSBmZXcgbW9udGhzIGJhY2suCgppIGdyZWF0 bHkgcHJlZmVyIHRoZSB1bmFyeSBzeXN0ZW0uICBpdCBhbGxvd3MgaW50ZXJsZWF2aW5nIG9mIG11 bHRpcGxlCnNpbXVsdGFuZW91cwpjYW5jZWxsYXRpb25zIHRvICphdXRvbWF0aWNhbGx5KiBzb3J0 IHRoZW1zZWx2ZXMgb3V0LCBieSBPUmluZyB0aGUgY2FuY2VsbGF0aW9ucwp0b2dldGhlciB0byBw cm9kdWNlIHRoZSBtYXNrIQoKdGhpcyBpcyBhbiAiYWNjaWRlbnRhbCIgc2lkZS1lZmZlY3Qgb2Yg dGhlIFNoYWRvdyBNYXRyaXggY29uY2VwdCwKZGVzY3JpYmVkIGJlbG93LgoKYSBiaW5hcnktaW5k ZXhlZCBjYW5jZWxsYXRpb24gc3lzdGVtIHJlcXVpcmVzIGEgKmNlbnRyYWwgcmVzb3VyY2UqIHRv IGNhbGN1bGF0ZQp0aGUgbG93ZXN0LW51bWJlcmVkICJpbmRleCIsIGZvbGxvd2VkIGJ5IGJyb2Fk Y2FzdGluZyB0aGF0IGluZGV4IGFjcm9zcyB0aGUKb25lIChhbmQgb25seSBvbmUpIHBlcm1pdHRl ZCBjYW5jZWxsYXRpb24gZGF0YXBhdGguCgoKPiBJbiBleHRlbmRlZCBzY29yZWJvYXJkLCB0aGUg bWlzc3BlY3VsYXRlZCBpbnN0cnVjdGlvbnMgZHJhaW4KPiB0aGVtc2VsdmVzIGZyb20gdGhlIHN5 c3RlbS4KCmFoIG5vLiAgd2UnbGwgYmUgY2FuY2VsbGluZyB0aGVtIGV4cGxpY2l0bHksIHZpYSBh biB1bmFyeSBiaXQtbWFzaywKdGhhdCBpcyBnbG9iYWwKYW5kIGNvbWJpbmF0b3JpYWwgaW4gbmF0 dXJlLCBleHRlbmRpbmcgcmlnaHQgdGhlIHdheSB0aHJvdWdoIHRoZSBlbnRpcmV0eQpvZiB0aGUg RnVuY3Rpb24gVW5pdCwgQ29tcFVuaXRzICphbmQqIHRoZSBhc3NvY2lhdGVkIHBpcGVsaW5lcy4K CnRoZSB1bmFyeSBtYXNrIGlzIGJhc2ljYWxseSBhIGNvbnZlcnNpb24gb2YgdGhlICpiaW5hcnkq IGluZGljZXMgb2YgdGhlCkNvbXBVbml0IG51bWJlciBvbiBhbnkgZ2l2ZW4gQ29uY3VycmVudCBD b21wdXRhdGlvbiBVbml0LiAgMC0zCmluIHRoaXMgZGlhZ3JhbSBoZXJlOgpodHRwczovL2xpYnJl LXNvYy5vcmcvM2RfZ3B1L2FyY2hpdGVjdHVyZS82NjAwc2NvcmVib2FyZC82MDB4LWNvbmN1cnJl bnRfY29tcF91bml0LnBuZwoKdGh1cyBpbiB0aGF0IGNhc2UgdGhlIHVuYXJ5IGNhbmNlbGxhdGlv biBtYXNrIHdvdWxkIGJlIDQtYml0IHdpZGUuCgp0aGVzZSBhcmUgbGlua2VkIGRpcmVjdGx5IHRv IC0gYW5kIGFyZSBlcXVhbCB0byAtIHRoZSAiR09fRElFIiBzaWduYWxzIGluICp0aGlzKgpkaWFn cmFtOgpodHRwczovL2xpYnJlLXNvYy5vcmcvM2RfZ3B1L3NoYWRvdy5qcGcKCm5vdGUgaW4gdGhh dCBkaWFncmFtIHRoZSBleGlzdGVuY2UgcGVyIGNlbGwgaW4gdGhlIERlcGVuZGVuY3kgTWF0cmlj ZXMgb2YgKnR3byoKU2hhZG93IExhdGNoZXMuCgp0aGUgZmlyc3QgU2hhZG93IExhdGNoIGlzIGZv ciB0aGUgZmlyc3QgQnJhbmNoIFVuaXQgdG8gaW5kaWNhdGUgInNwZWN1bGF0aXZlCmV4ZWN1dGlv biB1bmRlcndheSBhcyBjb250cm9sbGVkIGFuZCBkaXJlY3RlZCBieSBCcmFuY2ggVW5pdCAxIi4K CnRoZSBzZWNvbmQgU2hhZG93IExhdGNoIGlzIGZvciB0aGUgKnNlY29uZCogQnJhbmNoIFVuaXQg dG8gZG8gbGlrZXdpc2UuCgphIHRoaXJkIFNoYWRvdyBMYXRjaCBleGlzdHMgZm9yIHByZWRpY2F0 ZWQgZXhlY3V0aW9uLiAgb25lIGJpdCBlYWNoIG9mIHRoZQpwcmVkaWNhdGUgcmVnaXN0ZXIgKG9u Y2UgcmVhZCkgd2lsbCBiZSB0aHJvd24gYXQgdGhlICJGQUlMRUQtMyIgbGluZSBpZiB0aGF0CmJp dCBpcyB6ZXJvLCBhbmQgYXQgdGhlICJTVUNDRVNTLTMiIGxpbmUgaWYgdGhhdCBiaXQgaXMgMS4g IGlmICJmYWlsZWQiIGlzCmFzc2VydGVkLCB0aGVuIHNvIGlzIHRoZSAiR09fRElFIi4gIHRoYXQg IkdPX0RJRSIsIGJlaW5nIGNvbm5lY3RlZCB0bwp0aGUgY2FuY2VsbGF0aW9uIG1hc2tzLCAqSU5T VEFOVExZKiBraWxscyBub3QganVzdCB0aGUgcmVnaXN0ZXIgaGF6YXJkCmFsbG9jYXRpb24sIGl0 IHJlc2V0cyB0aGUgRnVuY3Rpb24gVW5pdCB0byBpZGxlICphbmQqIGtpbGxzIHRoZSBwYXJ0aWFs IHJlc3VsdApnZW5lcmF0aW9uIGFjdHVhbGx5IGluIHRoZSBwaXBlbGluZSBpdHNlbGYuCgppZiAi c3VjY2VzcyIgaXMgYXNzZXJ0ZWQsIHRoZSBzaGFkb3cgbGF0Y2hlcyBhcmUgY2xlYXJlZCwgYW5k ICJXUklURV9SRVFVRVNUIgppcyBubyBsb25nZXIgcHJldmVudGVkIGFuZCBwcm9oaWJpdGVkIGZy b20gYXNzZXJ0aW5nLiAgdGhlIHJlc3VsdCAoaWYgaXQgd2FzCnJlYWR5KSwgaXMgYWxsb3dlZCB0 byBwcm9jZWVkICJJIG5vdyByZXF1ZXN0IGEgUmVnZmlsZSBXcml0ZSBQb3J0Ii4KaWYgdGhlIHJl c3VsdApoYXBwZW5lZCBub3QgdG8gYmUgcmVhZHksIHRoZW4gd2hlbiB0aGUgcmVzdWx0ICppcyog cmVhZHkgaXQgd2lsbCBub3QKYmUgaGVsZCB1cC4KCmEgZm91cnRoIFNoYWRvdyBsYXRjaCBleGlz dHMgZm9yIGNhbmNlbGxhdGlvbiBvZiBvcGVyYXRpb25zIGluIHRoZSAic2hhZG93IgpvZiBhIExE L1NUIFVuaXQncyBwYWdlLWZhdWx0IC8gYWRkcmVzcyBleGNlcHRpb24uCgphcyB5b3UgY2FuIHNl ZSB0aGlzIHJlcXVpcmVzIGEgdHJpdmlhbCBudW1iZXIgb2YgZ2F0ZXMgcGVyIGNlbGwsIGhvd2V2 ZXIKaXQgaXMgKmVhY2gqIGV4Y2VwdGlvbiBvciBjYW5jZWxsYXRpb24gb3Bwb3J0dW5pdHkgdGhh dCAgcmVxdWlyZXMgdGhlc2UgU2hhZG93cywKb24gYSAqcGVyIEZVIGJhc2lzKiwgYWNyb3NzIGFs bCAqb3RoZXIqIEZVcy4KCmNvbnNlcXVlbnRseSBpIGRlc2lnbmVkIGEgIlNoYWRvdyBNYXRyaXgi IHRoYXQgdGFrZXMgY2FyZSBvZiB0aGF0LgoKPiBCb3RoIHNjaGVtZXMgY2FuIGJlIGRlc2lnbmVk IHRvIGFjaGlldmUgc2ltaWxhciBPT08gYmVoYXZpb3JzLgo+IFRodXMsIG9uZSBjYW5ub3QgZHJh dyBhIHBlcmZvcm1hbmNlIGNvbmNsdXNpb24ganVzdCBieSBzZWVpbmcgd2hpY2gKPiBzY2hlbWUg aXMgYmVpbmcgdXNlZC4KCm5vLiAgaGVuY2Ugd2h5IHdlIGhhdmVuJ3QgZG9uZSB0aGF0IGtpbmQg b2YgYW5hbHlzaXM6IHdlJ3JlIGZvY3Vzc2luZwpvbiBpbXBsZW1lbnRhdGlvbi4KCj4gSWRlYWxs eSB0aGUgYWJvdmUgdGV4dCBzaG91bGQgYmUgdW5jb250cm92ZXJzaWFsLCBwbGVhc2UgbGV0IG1l IGtub3cKPiBpZiB0aGVyZSBpcyBhIGxhcmdlIG1pc3VuZGVyc3RhbmRpbmcgaGVyZS4KCm5vbm8g bG9va3MgZ3JlYXQsIHJlYWxseSBhcHByZWNpYXRlIHRoZSBpbnNpZ2h0cyByYWlzZWQuICB0aGUg bWlzc2luZyBwaWVjZQppcyB0aGUgdHJ1ZSBzaWduaWZpY2FuY2Ugb2YgdGhlIHJvbGUgb2YgdGhl IFNoYWRvdyBNYXRyaWNlcyBhcyBiZWluZyAqdGhlKgpwcm92aXNpb24gb2YgcHJlY2lzZSBleGNl cHRpb24gY2FwYWJpbGl0eSwgc3BlY3VsYXRpb24sIHByZWRpY2F0aW9uLCBldmVyeXRoaW5nLgoK eWVzIGkgYW0gYXdhcmUgdGhhdCB3aXRob3V0ICJwcmVkaWNhdGlvbiBwcmVkaWN0aW9uIiB5ZXMg dGhvc2UgYXJlIHR3bwpkaWZmZXJlbnQgd29yZHMgd2UgZW5kIHVwIHdpdGggZXhhY3RseSB0aGUg c2FtZSBzaXR1YXRpb24gYXMgZm9yIEJyYW5jaApQcmVkaWN0aW9uOiBwcmVkaWNhdGVkIG9wZXJh dGlvbnMgdGhhdCBhcmUgaXNzdWVkLCBjYXVzZSBGVXMgdG8gYmVjb21lCmZ1bGwgLyBhbGxvY2F0 ZWQsIHRoYXQgYXJlIGNhbmNlbGxlZCBtb21lbnRzIGxhdGVyIGJlY2F1c2UgdGhlIG1ham9yaXR5 Cm9mIHRoZSBwcmVkaWNhdGUgcmVnaXN0ZXIgdHVybnMgb3V0IHRvIGJlIGZ1bGwgb2YgemVyb3Mu Cgp0aGlzIGlzICpub3QqIGEgaGlnaCBwcmlvcml0eSBpdGVtIHJpZ2h0IG5vdyA6KQoKPiBNeSBv cGluaW9uIGlzIHRoYXQgVG9tYXN1bG8ncyBpcyBhIG1vcmUgZWxlZ2FudCBhbmQgd2VsbC1wcm92 ZW4gc2NoZW1lCj4gZm9yIGFjaGlldmluZyBPT08gZXhlY3V0aW9uLCBjb21wYXJlZCB0byBhbiBl eHRlbmRlZCBzY29yZWJvYXJkLiBJCj4gYWxzbyBhcmd1ZSB0aGF0IHRoZSBleHRlbmRlZCBzY29y ZWJvYXJkIHNjaGVtZSBkb2VzIG5vdCBwcmVzZW50Cj4gc2lnbmlmaWNhbnQgcG93ZXIvYXJlYSBh ZHZhbnRhZ2VzIGNvbXBhcmVkIHRvIFRvbWFzdWxvJ3MuCgpNaXRjaCBBbHN1cCBpcyBiZXR0ZXIg ZXF1aXBwZWQsIGZyb20gNDAgeWVhcnMgZXhwZXJpZW5jZSBhdCBnYXRlLWxldmVsCmRlc2lnbiAo d2hpY2ggaGUga2VwdCBhbmQgKnJlZmluZWQqIHdoZW4gd29ya2luZyBmb3IgQU1ELCBoZW5jZSBz b21lCm9mIHRoZSBibGlzdGVyaW5nIHdpdGhlcmluZyB3b3JkcyB0byBsZXNzIGV4cGVyaWVuY2Vk LCBsZXNzLWtub3dsZWRnZWFibGUKcGVvcGxlIHRyeWluZyB0byB0ZWxsIGhpbSB0aGF0IEhETHMg d2VyZSBpbmhlcmVudGx5IGJldHRlciksIHRvIGFuc3dlciB0aGlzCm9uZS4KCj4gR2l2ZW4gdGhh dAo+IGVzdGltYXRlcyBvbiBwb3dlci9hcmVhIHRlbmQgdG8gYmUgd2lsZGx5IGluYWNjdXJhdGUs IEkgdGhpbmsgd2Ugd2lsbAo+IGhhdmUgdG8gd2FpdCBmb3IgcG93ZXIgYW5hbHlzaXMgb2YgTGli cmVTb0MgdG8gZ2V0IGEgZGVmaW5pdGl2ZSBhbnN3ZXIKPiB0byB0aGlzIGRlYmF0ZSA6KS4KCmlm IHdlIGhhdmUgdG8gdXNlIERGRnMgcmF0aGVyIHRoYW4gU1IgTkFORCwgdGhlIGFyZ3VtZW50IGlz IGluc3RhbnRseQp3b24gYnkgVG9tYXN1bG8gYmVjYXVzZSB3ZSBoYXZlIHF1aXRlIGxpdGVyYWxs eSBhIDUtZm9sZCBpbmNyZWFzZSBpbgpnYXRlIGNvdW50IHJpZ2h0IGFjcm9zcyB0aGUgYm9hcmQs IGluIGV2ZXJ5IHNpbmdsZSBNYXRyaXguICBTaGFkb3csCkZVLVJlZ3MsIEZVLUZVIC0gdGhlIGxv dC4gIGV2ZXJ5d2hlcmUgeW91IHNlZSBhbiBTUi1MYXRjaCBkaWFncmFtCigyIGdhdGVzKSwgaW5z dGVhZCBhZGQgMTAgZ2F0ZXMgZm9yIGEgREZGLgoKZm9yIHRoZSAxODBubSBBU0lDIHRoaXMgd291 bGQganVtcCBhcHByb3hpbWF0ZWx5Li4uLiBtbW0uLi4gMTAsMDAwIGdhdGVzCnVwIHRvIDUwLDAw MC4KCndlIG1heSBoYXZlIHRvIGRvIHRoYXQuICBpdCB3aWxsIHN1Y2suCgo+IEkgZGVlcGx5IGFw b2xvZ2l6ZSBpZiBhbnkgb2YgbXkgdGhvdWdodHMgY291bGQgYmUgaW50ZXJwcmV0ZWQgYXMKPiBj cml0aWNpc20uIEkgZnVsbHkgc3VwcG9ydCB0aGlzIGtpbmQgb2YgZXhwbG9yYXRpb24gaW4gT09P IGRlc2lnbi4gSQo+IGFsc28gYXBvbG9naXplIGlmIEkgc2VlbSB0byBzdWdnZXN0IGEgY2hhbmdl IGluIGRlc2lnbiwgYXMgSQo+IHVuZGVyc3RhbmQgdGhhdCBoYXJkd2FyZSBkZXNpZ24gaXMgbm90 IG5lYXJseSBhcyBmbGV4aWJsZSBhcyBzb2Z0d2FyZQo+IGRlc2lnbi4KCmFwcHJlY2lhdGVkLCBK ZXJlbXkuICBpZiB0aGlzIGRpc2N1c3Npb24gd2FzIHRha2luZyBwbGFjZSA2IHRvIDEyIG1vbnRo cyBhZ28KdGhlICJtb2RlIiB3ZSB3b3VsZCBiZSBpbiB3YXMgcmFkaWNhbGx5IGRpZmZlcmVudC4g IG5vdyBpcyAiZnVsbC1ib3JlCnRpbWUtY3JpdGljYWwgaW1wbGVtZW50YXRpb24gbW9kZSIsIGFu ZCB3aWxsIGJlIHVudGlsIHRoZSBvdGhlciBzaWRlCm9mIE9jdCAyMDIwLgoKbC4KCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpYnJlLXJpc2N2LWRldiBt YWlsaW5nIGxpc3QKbGlicmUtcmlzY3YtZGV2QGxpc3RzLmxpYnJlLXJpc2N2Lm9yZwpodHRwOi8v bGlzdHMubGlicmUtcmlzY3Yub3JnL21haWxtYW4vbGlzdGluZm8vbGlicmUtcmlzY3YtZGV2Cg==