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=-13.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=unavailable 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 6D969C49ED7 for ; Fri, 20 Sep 2019 02:30:28 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 3CC3721929 for ; Fri, 20 Sep 2019 02:30:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Ey+JoPO+" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 3CC3721929 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Mime-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=iw7NGYkXBHFE0PuOjXX/zg+wPEcCLxV3vFji7kwIXEg=; b=Ey+JoPO+ZCbzui fKo6+5vZ4igM11aOstQYgwBbUdihK7DeK2tjRXPhOz7gHFoNHcalaJBK+ZoVbjPjo8QK0VsV8rHwD F1tRuaWZuxTrazBqROLhNIeY3dEzDaFtf4TPyAHht6NE/WJUJ6Nr7GUEBAaCqZKxaY2i9GvfEmK48 2uTenqYcVZgmolh0XkOdkOBbtFMqbeFYhAQY1wxDuejpQvT6Se2T3BpTZis5Ph73wW0Q7kwfzUnNG GzUyAxSmC+i8OhJPJocJPa/KRXlQn+h/CCQutdas2d9h2D1bzpUJHOvmcj/M06rrDVNIfU58rVo2N m00NKqfH1yZhlQpacp5Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iB8gf-00063v-Mf; Fri, 20 Sep 2019 02:30:21 +0000 Received: from gate.crashing.org ([63.228.1.57]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iB8gY-00062B-4y; Fri, 20 Sep 2019 02:30:17 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.14.1) with ESMTP id x8K2RJ7O003665; Thu, 19 Sep 2019 21:27:20 -0500 Message-ID: Subject: Re: [tech-privileged] [RFC PATCH V1] riscv-privileged: Add broadcast mode to sfence.vma From: Benjamin Herrenschmidt To: Andrew Waterman , Guo Ren Date: Fri, 20 Sep 2019 12:27:19 +1000 In-Reply-To: References: <1568896556-28769-1-git-send-email-guoren@kernel.org> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190919_193014_513788_800AF9CC X-CRM114-Status: GOOD ( 37.16 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: julien.thierry@arm.com, catalin.marinas@arm.com, palmer@sifive.com, will.deacon@arm.com, Atish.Patra@wdc.com, julien.grall@arm.com, gary@garyguo.net, linux-riscv@lists.infradead.org, kvmarm@lists.cs.columbia.edu, jean-philippe@linaro.org, linux-csky@vger.kernel.org, rppt@linux.ibm.com, Guo Ren , jacob.jun.pan@linux.intel.com, tech-privileged@lists.riscv.org, marc.zyngier@arm.com, linux-arm-kernel@lists.infradead.org, feiteng_li@c-sky.com, Anup.Patel@wdc.com, linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org, dwmw2@infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVGh1LCAyMDE5LTA5LTE5IGF0IDA5OjA0IC0wNzAwLCBBbmRyZXcgV2F0ZXJtYW4gd3JvdGU6 Cj4gVGhpcyBuZWVkcyB0byBiZSBkaXNjdXNzZWQgYW5kIGRlYmF0ZWQgYXQgbGVuZ3RoOyBwcm9w b3NpbmcgZWRpdHMgdG8KPiB0aGUgc3BlYyBhdCB0aGlzIHN0YWdlIGlzIHB1dHRpbmcgdGhlIGNh cnQgYmVmb3JlIHRoZSBob3JzZSEKPiAKPiBXZSBzaG91bGRu4oCZdCBjaGFuZ2UgdGhlIGRlZmlu aXRpb24gb2YgdGhlIGV4aXN0aW5nIFNGRU5DRS5WTUEKPiBpbnN0cnVjdGlvbiB0byBhY2NvbXBs aXNoIHRoaXMuIEl04oCZcyBhbHNvIG5vdCBhYnVuZGFudGx5IGNsZWFyIHRvIG1lCj4gdGhhdCB0 aGlzIHNob3VsZCBiZSBhbiBpbnN0cnVjdGlvbjogVExCIHNob290ZG93biBsb29rcyBtb3JlIGxp a2UKPiBNTUlPLgoKUXVpdGUgYSBmZXcgcG9pbnRzIHRvIG1ha2UgaGVyZToKCiAtIFRMQiBzaG9v dGRvd24gYXMgTU1JTyBpcyBhIHByb2JsZW0gd2hlbiB5b3Ugc3RhcnQgdHJ5aW5nIHRvIGRvIGl0 CmRpcmVjdGx5IGZyb20gZ3Vlc3RzICh3aGljaCBpcyB2ZXJ5IGRlc2lyYWJsZSkuIEkgY2FuIGVs YWJvcmF0ZSBpZiB5b3UKd2FudCwgYnV0IGl0IGdlbmVyYWxseSBib2lscyBkb3duIHRvIGhhdmlu ZyBhIHBpbGUgb2YgY29waWVzIG9mIHRoZQpNTUlPIHJlc291cmNlcyB0byBhc3NpZ24gdG8gZ3Vl c3RzIGFuZCBoYXZpbmcgdG8gY29uc3RhbnRseSBjaGFuZ2UKbWFwcGluZ3Mgd2hpY2ggaXMgdW5y ZWFsaXN0aWMuCgogLSBJIGdlbmVyYWxseSBoYXZlIHZlcnkgc2VyaW91cyBkb3VidHMgYXMgdG8g dGhlIHZhbHVlIG9mIGRvaW5nCmJyb2FkY2FzdCBUTEIgc2hvb3Rkb3ducyBpbiBIVy4gSSB3ZW50 IGF0IGxlbmdodCBhYm91dCBpdCBkdXJpbmcgTGludXgKUGx1bWJlcnMgQ29uZmVyZW5jZSwgYnV0 IEknbGwgdHJ5IHRvIHN1bW1hcmlzZSBoZXJlLCBmcm9tIG15IGV4cGVyaWVuY2UKYmFjayBhdCBJ Qk0gd29ya2luZyBvbiBQT1dFUi4gSW4gbm8gc3BlY2lhbCBvcmRlcjoKCiAgICogSXQgZG9lc24n dCBzY2FsZSB3ZWxsLiBZb3UgaGF2ZSB0byBkcmFpbiBhbGwgdGhlIHRhcmdldCBDUFUgcXVldWVz Cm9mIGFscmVhZHkgdHJhbnNsYXRlZCBsb2FkIHN0b3Jlcywga2VlcCBvcmRlcmluZywgZXRjLi4u IGl0IGNhdXNlcyBhCmdpYW50IGZhYnJpYyB0cmFmZmljIGphbS4gRXhwZXJpZW5jZSBoYXMgc2hv d24gdGhhdCBvbiBzb21lIFBPV0VSCnN5c3RlbXMsIGl0IGJlY29tZXMgZXh0cmVtZWx5IGV4cGVu c2l2ZS4KCiAgICogU29tZSBPUyBzdWNoIGFzIExpbnV4IHRyYWNrIHdoaWNoIENQVSBoYXMgc2Vl biBhIGdpdmVuIGNvbnRleHQuClRoYXQgYWxsb3dzIHRvICJ0YXJnZXQiIFRMQiBpbnZhbGlkYXRp b25zIGluIGEgbW9yZSBzZW5zaWJsZSB3YXkuCkJyb2FkY2FzdCBpbnN0cnVjdGlvbnMgdGVuZCB0 byBsb3NlIHRoYXQgYWJpbGl0eSAoaXQncyBoYXJkIHRvIGRvIGluIEhXCmVzcC4gaW4gYSB3YXkg dGhhdCBjYW4gYmUgdmlydHVhbGl6ZWQgcHJvcGVybHkpLgoKICAgKiBCZWNhdXNlIHRob3NlIGlu c3RydWN0aW9ucyBjYW4gdGFrZSBhIHZlcnkgbG9uZyB0aW1lIChmb3IgdGhlCmFib3ZlIHJlYXNv bnMgYW5kIHNvbWUgb2YgYmVsb3cgb25lcyksIG9yIGF0IGxlYXN0IHdoYXRldmVyIGNvbnRleHQK c3luY2hyb25pemluZyBpbnN0cnVjdGlvbiB0aGF0IGZvbGxvdyB3aGljaCB3YWl0cyBmb3IgY29t cGxldGlvbiBvZiB0aGUKaW52YWxpZGF0aW9ucywgeW91IGVuZCB1cCB3aXRoIGEgQ1BVIGVmZmVj dGl2ZWx5ICJzdHVjayIgZm9yIGEgbG9uZwp0aW1lLCBub3QgdGFraW5nIGludGVycnVwdHMsIGlu Y2x1ZGluZyB0aG9zZSByb3V0ZWQgdG8gaGlnaGVyIHByaW9yaXR5CmxldmVscyAoaWUuIGh5cGVy dmlzb3IgZXRjLi4uKS4gVGhpcyBpcyBwcm9ibGVtYXRpYy4gQSBjb21wbGV0aW9uCnBvbGxpbmcg bWVjaGFuaXNtIGlzIHByZWZlcmFibGUgc28gdGhhdCBvbmNlIGNhbiBzdGlsbCBoYW5kbGUgc3Vj aCB3b3JrCndoaWxlIHdhaXRpbmcgYnV0IGlzIGhhcmQgdG8gYXJjaGl0ZWN0L2ltcGxlbWVudCBw cm9wZXJseSB3aGVuIGRvbmUgYXMKImluc3RydWN0aW9ucyIgc2luY2UgdGhleSBjYW4gaGFwcGVu IGNvbmN1cnJlbnRseSBmcm9tIG11bHRpcGxlCmNvbnRleHRzLiBJdCdzIGVhc2llciB3aXRoIE1N SU8gYnV0IHRoYXQgaGFzIG90aGVyIGlzc3Vlcy4KCiAgICogSXQgaW50cm9kdWNlcyByYWNlcyB3 aXRoIGFueXRoaW5nIHRoYXQgZG9lcyBTVyB3YWxrIG9mIHBhZ2UKdGFibGVzLiBGb3IgZXhhbXBs ZSBNTUlPIGVtdWxhdGlvbiBieSBhIGh5cGVydmlzb3IgY2Fubm90IGJlIGRvbmUgcmFjZS0KZnJl ZSBpZiB0aGUgZ3Vlc3QgY2FuIGRvIGl0cyBvd24gYnJvYWRjYXN0IGludmFsaWRhdGlvbnMgYW5k IHRoZQpoeXBlcnZpc29yIGhhcyB0byB3YWxrIHRoZSBndWVzdCBwYWdlIHRhYmxlcyB0byB0cmFu c2xhdGUuIEkgY2FuCmVsYWJvcmF0ZSBpZiByZXF1ZXN0ZWQuCgogICAqIFRob3NlIGludmFsaWRh dGlvbnMgbmVlZCB0byBhbHNvIHRhcmdldCBuZXN0IGFnZW50cyB0aGF0IGNhbiBob2xkCnRyYW5z bGF0aW9ucywgc3VjaCBhcyBJT01NVXMgdGhhdCBjYW4gb3BlcmF0ZSBpbiB1c3IgY29udGV4dHMg ZXRjLi4uClN1Y2ggSU9NTVVzIGNhbiB0YWtlIGEgVkVSWSBMT05HIHRpbWUgdG8gcHJvY2VzcyBp bnZhbGlkYXRpb25zLAplc3BlY2lhbGx5IGlmIHRyYW5zbGF0aW9ucyBoYXZlIGJlZW4gY2hlY2tl ZCBvdXQgYnkgZGV2aWNlcyBzdWNoIGFzClBDSWUgZGV2aWNlcyB1c2luZyBBVFMuIFNvbWUgR1BV cyBmb3IgZXhhbXBsZSBjYW4gaGl0IGEgd29yc3QgY2FzZSBvZgpodW5kcmVkcyBvZiAqbWlsbGlz ZWNvbmRzKiB0byBwcm9jZXNzIGEgVExCIGludmFsaWRhdGlvbi4KCiAtIE5vdyBmb3IgdGhlIHBy b3Bvc2VkIHNjaGVtZS4gSSByZWFsbHkgZG9uJ3QgbGlrZSBpbnRyb2R1Y2luZyBhICpuZXcqCndh eSBvZiB0YWdnaW5nIGFuIGFkZHJlc3Mgc3BhY2UgdXNpbmcgdGhlIFBQTi4gSXQncyBhIGhhY2su IFRoZSByaWdodAp3YXkgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIGV4aXN0aW5nIGNvbnRleHQgdGFn cyBhcmUgYmlnIGVub3VnaCB0byBub3QKcmVxdWlyZSByZS11c2UgYW5kIHRodXMgY2FuIGJlIHRy ZWF0ZWQgYXMgZ2xvYmFsIGNvbnRleHQgdGFncyBieSB0aGUKaHlwZXJ2aXNvciBhbmQgT1MuIElF LiBoYXZlIGJpZyBlbm91Z2ggVk1JRHMgYW5kIEFTSURzIHRoYXQgZWFjaApydW5uaW5nIFZNIGNh biBoYXZlIGEgZ2xvYmFsIHN0YWJsZSBWTUlEIGFuZCBlYWNoIHByb2Nlc3Mgd2l0aGluIGEKZ2l2 ZW4gVk0gY2FuIGhhdmUgYSBnbG9iYWwgKHdpdGhpbiB0aGF0IFZNKSBBU0lEIGluc3RlYWQgb2Yg cGxheWluZwpyZWFsbG9jYXRpb24gb2YgQVNJRCB0cmlja3MgYXQgY29udGV4dCBzd2l0Y2ggKHRo YXQncyB2ZXJ5IGluZWZmaWNpZW50CmFueXdheSwgc28gdGhhdCBzaG91bGQgYmUgZml4ZWQgZm9y IGFueXRoaW5nIHRoYXQgY2xhaW1zIHBlcmZvcm1hbmNlCmFuZCBzY2FsYWJpbGl0eSkuCgpOb3cg YWxsIG9mIHRoZXNlIHRoaW5ncyBjYW4gcHJvYmFibHkgaGF2ZSBzb2x1dGlvbnMgYnV0IGV4cGVy aWVuY2UKZG9lc24ndCBzZWVtIHRvIGluZGljYXRlIHRoYXQgaXQncyByZWFsbHkgd29ydGh3aGls ZS4gV2UgYXJlIGJldHRlciBvZmYKbWFraW5nIHN1cmUgd2UgaGF2ZSBhIHJlYWxseSBmYXN0IElQ SSBwYXRoIHRvIHBlcmZvcm0gdGhvc2UgdmlhCmludGVycnVwdHMgYW5kIGxvY2FsbHkgdG8gdGhl IHRhcmdldHRlZCBDUFVzIElNSE8uCgpDaGVlcnMsCkJlbi4KCj4gCj4gT24gVGh1LCBTZXAgMTks IDIwMTkgYXQgNTozNiBBTSBHdW8gUmVuIDxndW9yZW5Aa2VybmVsLm9yZz4gd3JvdGU6Cj4gPiBG cm9tOiBHdW8gUmVuIDxyZW5fZ3VvQGMtc2t5LmNvbT4KPiA+IAo+ID4gVGhlIHBhdGNoIGlzIGZv ciBodHRwczovL2dpdGh1Yi5jb20vcmlzY3YvcmlzY3YtaXNhLW1hbnVhbAo+ID4gCj4gPiBUaGUg cHJvcG9zYWwgaGFzIGJlZW4gdGFsa2VkIGluIExQQy0yMDE5IFJJU0MtViBNQyByZWYgWzFdLiBI ZXJlIGlzCj4gPiB0aGUKPiA+IGZvcm1hbCBwYXRjaC4KPiA+IAo+ID4gSW50cm9kdWN0aW9uCj4g PiA9PT09PT09PT09PT0KPiA+IAo+ID4gVXNpbmcgdGhlIEhhcmR3YXJlIFRMQiBicm9hZGNhc3Qg aW52YWxpZGF0aW9uIGluc3RydWN0aW9uIHRvCj4gPiBtYWludGFpbiB0aGUKPiA+IHN5c3RlbSBU TEIgaXMgYSBnb29kIGNob2ljZSBhbmQgaXQnbGwgc2ltcGxpZnkgdGhlIHN5c3RlbSBzb2Z0d2Fy ZQo+ID4gZGVzaWduLgo+ID4gVGhlIHByb3Bvc2FsIGhvcGVzIHRvIGFkZCBhIGJyb2FkY2FzdCBt b2RlIHRvIHRoZSBzZmVuY2Uudm1hIGluIHRoZQo+ID4gcmlzY3YtcHJpdmlsZWdlIHNwZWNpZmlj YXRpb24uIFRvIHN1cHBvcnQgdGhlIHNmZW5jZS52bWEgYnJvYWRjYXN0Cj4gPiBtb2RlLAo+ID4g dGhlcmUgYXJlIHR3byBtb2RpZmljYXRpb24gaW50cm9kdWNlZCBiZWxvdzoKPiA+IAo+ID4gIDEp IEFkZCBQR0QuUFBOIChyb290IHBhZ2UgdGFibGUncyBQUE4pIGFzIHRoZSB1bmlxdWUgaWRlbnRp ZmllciBvZgo+ID4gdGhlCj4gPiAgICAgYWRkcmVzcyBzcGFjZSBpbiBhZGRpdGlvbiB0byBhc2lk L3ZtaWQuIENvbXBhcmVkIHRvIHRoZQo+ID4gZHluYW1pY2FsbHkKPiA+ICAgICBjaGFuZ2VkIGFz aWQvdm1pZCwgUEdELlBQTiBpcyBmaXhlZCB0aHJvdWdob3V0IHRoZSBhZGRyZXNzCj4gPiBzcGFj ZSBsaWZlCj4gPiAgICAgY3ljbGUuIFRoaXMgZmVhdHVyZSBlbmFibGVzIHVuaWZvcm0gYWRkcmVz cyBzcGFjZQo+ID4gaWRlbnRpZmljYXRpb24KPiA+ICAgICBiZXR3ZWVuIGRpZmZlcmVudCBUTEIg c3lzdGVtcyAoYWN0dWFsbHksIGl0J3MgZGlmZmljdWx0IHRvCj4gPiB1bmlmeSB0aGUKPiA+ICAg ICBhc2lkL3ZtaWQgYmV0d2VlbiB0aGUgQ1BVIHN5c3RlbSBhbmQgdGhlIElPTU1VIHN5c3RlbSwg YmVjYXVzZQo+ID4gdGhlaXIKPiA+ICAgICBtZWNoYW5pc21zIGFyZSBkaWZmZXJlbnQpCj4gPiAK PiA+ICAyKSBNb2RpZnkgdGhlIGRlZmluaXRpb24gb2YgdGhlIHNmZW5jZS52bWEgaW5zdHJ1Y3Rp b24gZnJvbQo+ID4gc3luY2hyb25vdXMKPiA+ICAgICBtb2RlIHRvIGFzeW5jaHJvbm91cyBtb2Rl LCB3aGljaCBtZWFucyB0aGF0IHRoZSBjb21wbGV0aW9uIG9mCj4gPiB0aGUgVExCCj4gPiAgICAg b3BlcmF0aW9uIGlzIG5vdCBndWFyYW50ZWVkIHdoZW4gdGhlIHNmZW5jZS52bWEgaW5zdHJ1Y3Rp b24KPiA+IHJldGlyZXMuCj4gPiAgICAgSXQgbmVlZHMgdG8gYmUgY29tcGxldGVkIGJ5IGNoZWNr aW5nIHRoZSBmbGFnIGJpdCBvbiB0aGUgaGFydC4KPiA+IFRoZQo+ID4gICAgIHNmZW5jZS52bWEg cmVxdWVzdCBmaW5pc2ggY2FuIG5vdGlmeSB0aGUgc29mdHdhcmUgYnkgZ2VuZXJhdGluZwo+ID4g YW4KPiA+ICAgICBpbnRlcnJ1cHQuIFRoaXMgZnVuY3Rpb24gYWxsZXZpYXRlcyB0aGUgbGFyZ2Ug ZGVsYXkgb2YgVExCCj4gPiBpbnZhbGlkYXRpb24KPiA+ICAgICBpbiB0aGUgUENJIEFUUyBzeXN0 ZW0uCj4gPiAKPiA+IEFkZCBTMS9TMi5QR0QuUFBOIGZvciBBU0lEL1ZNSUQKPiA+ID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KPiA+IAo+ID4gUEdEIGlzIGdsb2JhbCBkaXJlY3Rvcnkg KGRlZmluZWQgaW4gbGludXgpIGFuZCBQUE4gaXMgcGFnZSBwaHlzaWNhbAo+ID4gbnVtYmVyCj4g PiAoZGVmaW5lZCBpbiByaXNjdi1zcGVjKS4gUEdELlBOTiBjb3JyZXNwb25kcyB0byB0aGUgcm9v dCBwYWdlIHRhYmxlCj4gPiBwb2ludGVyCj4gPiBvZiB0aGUgYWRkcmVzcyBzcGFjZSwgaS5lLiBt bS0+cGdkIChsaW51eCBjb25jZXB0KS4KPiA+IAo+ID4gSW4gQ1BVL0lPTU1VIFRMQiwgd2UgdXNl IGFzaWQvdm1pZCB0byBkaXN0aW5ndWlzaCB0aGUgYWRkcmVzcyBzcGFjZQo+ID4gb2YKPiA+IHBy b2Nlc3Mgb3IgdmlydHVhbCBtYWNoaW5lLiBEdWUgdG8gdGhlIGxpbWl0YXRpb24gb2YgaWQgZW5j b2RpbmcsCj4gPiBpdCBjYW4KPiA+IG9ubHkgcmVwcmVzZW50IGEgcGFydCh3aW5kb3cpIG9mIHRo ZSBhZGRyZXNzIHNwYWNlLiBTMS9TMi5QR0QuUFBOCj4gPiBhcmUgdGhlCj4gPiByb290IHBhZ2Ug dGFibGUncyBQUE5zIG9mIHRoZSBhZGRyZXNzIHNwYWNlcyBhbmQgUzEvUzIuUEdELlBQTiBhcmUK PiA+IHRoZQo+ID4gdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFkZHJlc3Mgc3BhY2VzLgo+ID4g Cj4gPiBGb3IgdGhlIENQVSBTTVAgc3lzdGVtLCB5b3UgY2FuIHVzZSBjb250ZXh0IHN3aXRjaCB0 byBwZXJmb3JtIHRoZQo+ID4gbmVjZXNzYXJ5Cj4gPiBzb2Z0d2FyZSBtZWNoYW5pc20gdG8gZW5z dXJlIHRoYXQgdGhlIGFzaWQvdm1pZCBvbiBhbGwgaGFydHMgaXMKPiA+IGNvbnNpc3RlbnQKPiA+ IChwbGVhc2UgcmVmZXIgdG8gdGhlIGFybTY0IGFzaWQgbWVjaGFuaXNtKS4gSW4gdGhpcyB3YXks IHRoZSBUTEIKPiA+IGJyb2FkY2FzdAo+ID4gaW52YWxpZGF0aW9uIGluc3RydWN0aW9uIGNhbiBk ZXRlcm1pbmUgdGhlIGFkZHJlc3Mgc3BhY2UgcHJvY2Vzc2VkCj4gPiBvbiBhbGwKPiA+IGhhcnRz IGJ5IGFzaWQvdm1pZC4KPiA+IAo+ID4gRGlmZmVyZW50IGZyb20gdGhlIENQVSBTTVAgc3lzdGVt LCB0aGVyZSBpcyBubyBjb250ZXh0IHN3aXRjaCBmb3IKPiA+IHRoZQo+ID4gRE1BLUlPTU1VIHN5 c3RlbSwgc28gdGhlIHVuaWZpY2F0aW9uIHdpdGggdGhlIENQVSBhc2lkL3ZtaWQgY2Fubm90Cj4g PiBiZQo+ID4gZ3VhcmFudGVlZC4gU28gd2UgbmVlZCBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0 aGUgYWRkcmVzcyBzcGFjZSB0bwo+ID4gZXN0YWJsaXNoIGEgY29tbXVuaWNhdGlvbiBicmlkZ2Ug YmV0d2VlbiB0aGUgVExCcyBvZiBkaWZmZXJlbnQKPiA+IHN5c3RlbXMuCj4gPiAKPiA+IFRoYXQg aXMgUEdELlBQTiAoZm9yIHZpcnR1YWxpemF0aW9uIHNjZW5hcmlvczogUzEvUzIuUEdELlBQTikK PiA+IAo+ID4gY3VycmVudDoKPiA+ICBzZmVuY2Uudm1hICByczEgPSB2YWRkciwgcnMyID0gYXNp ZAo+ID4gIGhmZW5jZS52dm1hIHJzMSA9IHZhZGRyLCByczIgPSBhc2lkCj4gPiAgaGZlbmNlLmd2 bWEgcnMxID0gZ2FkZHIsIHJzMiA9IHZtaWQKPiA+IAo+ID4gcHJvcG9zZWQ6Cj4gPiAgc2ZlbmNl LnZtYSAgcnMxID0gdmFkZHIsIHJzMiA9IG1vZGU6cHBuOmFzaWQKPiA+ICBoZmVuY2UudnZtYSBy czEgPSB2YWRkciwgcnMyID0gbW9kZTpwcG46YXNpZAo+ID4gIGhmZW5jZS5ndm1hIHJzMSA9IGdh ZGRyLCByczIgPSBtb2RlOnBwbjp2bWlkCj4gPiAKPiA+ICBtb2RlICAgICAgLSBicm9hZGNhc3Qg fCBsb2NhbAo+ID4gIHBwbiAgICAgICAtIHRoZSBQUE4gb2YgdGhlIGFkZHJlc3Mgc3BhY2Ugb2Yg dGhlIHJvb3QgcGFnZSB0YWJsZQo+ID4gIHZtaWQvYXNpZCAtIHRoZSB3aW5kb3cgaWRlbnRpZmll ciBvZiB0aGUgYWRkcmVzcyBzcGFjZQo+ID4gCj4gPiBBdCB0aGUgTGludXggUGx1bWJlciBDb25m ZXJlbmNlIDIwMTkgUklTQ1YtTUMsIHJlZjpbMV0sIHdlJ3ZlCj4gPiBzaG93ZWQgdHdvCj4gPiBJ T01NVSBleGFtcGxlcyB0byBleHBsYWluIGhvdyBpdCB3b3JrIHdpdGggaGFyZHdhcmUuCj4gPiAK PiA+IDEpIEluIGEgbGlnaHR3ZWlnaHQgSU9NTVUgc3lzdGVtICh1cCB0byA2NCBhZGRyZXNzIHNw YWNlcyksIHRoZQo+ID4gaGFyZHdhcmUKPiA+ICAgIGNvdWxkIGRpcmVjdGx5IGNvbnZlcnQgUEdE LlBQTiBpbnRvIERJRCAoSU9NTVUgQVNJRCkKPiA+IAo+ID4gMikgRm9yIHRoZSBQQ0kgQVRTIHNj ZW5hcmlvLCBpdHMgSU8gQVNJRC9WTUlEIGVuY29kaW5nIHNwYWNlIGNhbgo+ID4gc3VwcG9ydAo+ ID4gICAgYSB2ZXJ5IGxhcmdlIG51bWJlciBvZiBhZGRyZXNzIHNwYWNlcy4gV2UgdXNlIHR3byBy ZXZlcnNlCj4gPiBtYXBwaW5nCj4gPiAgICB0YWJsZXMgdG8gbGV0IHRoZSBoYXJkd2FyZSB0cmFu c2xhdGUgUzEvUzIuUEdELlBQTiBpbnRvIElPCj4gPiBBU0lEL1ZNSUQuCj4gPiAKPiA+IEFTWU5D IEJST0FEQ0FTVCBTRkVOQ0UuVk1BCj4gPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+ IAo+ID4gVG8gc3VwcG9ydCB0aGUgaGlnaCBsYXRlbmN5IGJyb2FkY2FzdCBzZmVuY2Uudm1hIG9w ZXJhdGlvbiBpbiB0aGUKPiA+IFBDSSBBVFMKPiA+IHVzYWdlIHNjZW5hcmlvLCB3ZSBtb2RpZnkg dGhlIHNmZW5jZS52bWEgZnJvbSBzeW5jaHJvbm91cyBtb2RlIHRvCj4gPiBhc3luY2hyb25vdXMg bW9kZS4gKEZvciBzaW1wbGVyIGltcGxlbWVudGF0aW9uLCBpZiBoYXJkd2FyZSBvbmx5Cj4gPiBp bXBsZW1lbnQKPiA+IHN5bmNocm9ub3VzIG1vZGUgYW5kIHNvZnR3YXJlIHN0aWxsIHdvcmsgaW4g YXN5bmNocm9ub3VzIG1vZGUpCj4gPiAKPiA+IFRvIGltcGxlbWVudCB0aGUgYXN5bmNocm9ub3Vz IG1vZGUsIDMgZmVhdHVyZXMgYXJlIGFkZGVkOgo+ID4gIDEpIHNzdGF0dXM6VExCSQo+ID4gICAg IEEgInN0YXR1cyBiaXQgLSBUTEJJIiBpcyBhZGRlZCB0byB0aGUgc3N0YXR1cyByZWdpc3Rlci4g VGhlCj4gPiBUTEJJIHN0YXR1cwo+ID4gICAgIGJpdCBpbmRpY2F0ZXMgaWYgdGhlcmUgYXJlIHN0 aWxsIG91dHN0YW5kaW5nIHNmZW5jZS52bWEKPiA+IHJlcXVlc3RzIG9uIHRoZQo+ID4gICAgIGN1 cnJlbnQgaGFydC4KPiA+ICAgICBWYWx1ZToKPiA+ICAgICAgIDE6IHNmZW5jZS52bWEgcmVxdWVz dHMgYXJlIG5vdCBjb21wbGV0ZWQuCj4gPiAgICAgICAwOiBhbGwgc2ZlY2Uudm1hIHJlcXVlc3Rz IGNvbXBsZXRlZCwgcmVxdWVzdCBxdWV1ZSBpcyBlbXB0eS4KPiA+IAo+ID4gIDIpIHNzdGF0dXM6 VExCSUMKPiA+ICAgICBBICJjb250cm9sIGJpdHMgLSBUTEJJQyIgaXMgYWRkZWQgdG8gc3N0YXR1 cyByZWdpc3Rlci4gVGhlCj4gPiBUTEJJQyBjb250cm9sCj4gPiAgICAgYml0cyBhcmUgY29udHJv bGxlZCBieSBzb2Z0d2FyZS4KPiA+ICAgICAiV3JpdGUgMSIgd2lsbCB0cmlnZ2VyIHRoZSBjdXJy ZW50IGhhcnQgY2hlY2sgdG8gc2VlIGlmIHRoZXJlCj4gPiBhcmUgc3RpbGwKPiA+ICAgICBvdXRz dGFuZGluZyBzZmVuY2Uudm1hIHJlcXVlc3RzLiBJZiB0aGVyZSBhcmUgdW5maW5pc2hlZAo+ID4g cmVxdWVzdHMsIGFuCj4gPiAgICAgaW50ZXJydXB0IHdpbGwgYmUgZ2VuZXJhdGVkIHdoZW4gdGhl IHJlcXVlc3QgaXMgY29tcGxldGVkLAo+ID4gbm90aWZ5aW5nIHRoZQo+ID4gICAgIHNvZnR3YXJl IHRoYXQgYWxsIG9mIHRoZSBjdXJyZW50IHNmZW5jZS52bWEgcmVxdWVzdHMgaGF2ZSBiZWVuCj4g PiBjb21wbGV0ZWQuCj4gPiAgICAgIldyaXRlIDAiIHdpbGwgY2F1c2Ugbm90aGluZy4KPiA+IAo+ ID4gIDMpIHN1cGVydmlzb3IgaW50ZXJydXB0IHJlZ2lzdGVyIChzaXAgJiBzaWUpOlRMQkkgZmlu aXNoIGludGVycnVwdAo+ID4gICAgIEEgcGVyLWhhcnQgaW50ZXJydXB0IGlzIGFkZGVkIHRvIHN1 cGVydmlzb3IgaW50ZXJydXB0Cj4gPiByZWdpc3RlcnMuCj4gPiAgICAgV2hlbiBhbGwgc2ZlbmNl LnZtYSByZXF1ZXN0cyBhcmUgY29tcGxldGVkIGFuZCBzc3RhdHVzOlRMQklDCj4gPiBoYXMgYmVl bgo+ID4gICAgIHRyaWdnZXJlZCwgaGFydCB3aWxsIHJlY2VpdmUgYSBUTEJJIGZpbmlzaCBpbnRl cnJ1cHQuIEp1c3QgbGlrZQo+ID4gdGltZXIsCj4gPiAgICAgc29mdHdhcmUgYW5kIGV4dGVybmFs IGludGVycnVwdCdzIGRlZmluaXRpb24gaW4gc2lwICYgc2llLgo+ID4gCj4gPiBGYWtlIGNvZGU6 Cj4gPiAKPiA+IGZsdXNoX3RsYl9wYWdlKHZtYSwgYWRkcikgewo+ID4gICAgIGFzaWQgPSBjcHVf YXNpZCh2bWEtPnZtX21tKTsKPiA+ICAgICBwcG4gPSBQRk5fRE9XTih2bWEtPnZtX21tLT5wZ2Qp Owo+ID4gCj4gPiAgICAgc2ZlbmNlLnZtYSAoYWRkciwgMXxQUE5fT0ZGU0VUKHBwbil8YXNpZCk7 IC8vMS4gc3RhcnQgcmVxdWVzdAo+ID4gCj4gPiAgICAgd2hpbGUoc3N0YXR1czpUTEJJKSBpZiAo dGltZV9vdXQoKSA+IDFtcykgYnJlYWs7IC8vMi4gbG9vcAo+ID4gY2hlY2sKPiA+IAo+ID4gICAg IHdoaWxlIChzc3RhdHVzOlRMQkkpIHsKPiA+ICAgICAgICAgLi4uCj4gPiAgICAgICAgIHNldCBz c3RhdHVzOlRMQklDOwo+ID4gICAgICAgICB3YWl0X1RMQklfZmluaXNoX2ludGVycnVwdCgpOyAv LzMuIHdhaXQgaXJxLCBpb19zY2hlZHVsZQo+ID4gICAgIH0KPiA+IH0KPiA+IAo+ID4gSGVyZSB3 ZSBnaXZlIDIgbGV2ZWwgY2hlY2s6Cj4gPiAgMSkgbG9vcCBjaGVjayBzc3RhdHVzOlRMQkksIENQ VSBjb3VsZCByZXNwb25zZSBJbnRlcnJ1cHQuCj4gPiAgMikgc2V0IHNzdGF0dXM6VExCSUMgYW5k IHdhaXQgZm9yIGlycSwgQ1BVIHNjaGVkdWxlIG91dCBmb3Igb3RoZXIKPiA+IHRhc2suCj4gPiAK PiA+IEFDRS1EVk0gRXhhbXBsZQo+ID4gPT09PT09PT09PT09PT09Cj4gPiAKPiA+IEhvbmVzdGx5 LCAiYnJvYWRjYXN0aW5nIGFkZHIsIGFzaWQsIHZtaWQsIFMxL1MyLlBHRC5QUE4gdG8KPiA+IGlu dGVyY29ubmVjdHMiCj4gPiBhbmQgIkFTWU5DIFNGRU5DRS5WTUEiIGNvdWxkIGJlIGltcGxlbWVu dGVkIGJ5IEFDRS1EVk0gcHJvdG9jb2wgcmVmCj4gPiBbMl0uCj4gPiAKPiA+IFRoZXJlIGFyZSAz IHR5cGVzIG9mIHRyYW5zYWN0aW9ucyBpbiBEVk06Cj4gPiAKPiA+ICAtIERWTSBvcGVyYXRpb24K PiA+ICAgIFNlbmQgYWxsIGluZm9ybWF0aW9uIHRvIHRoZSBpbnRlcmNvbm5lY3QsIGluY2x1ZGlu ZyBhZGRyLCBhc2lkLAo+ID4gICAgUzEuUEdELlBQTiwgdm1pZCwgUzIuUEdELlBQTi4KPiA+IAo+ ID4gIC0gRFZNIHN5bmNocm9uaXphdGlvbgo+ID4gICAgQ2hlY2sgdGhhdCBhbGwgRFZNIG9wZXJh dGlvbnMgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gSWYgbm90LCBpdAo+ID4gd2lsbCB1c2UKPiA+ICAg IHN0YXRlIG1hY2hpbmUgdG8gd2FpdCBEVk0gY29tcGxldGUgcmVxdWVzdHMuCj4gPiAKPiA+ICAt IERWTSBjb21wbGV0ZQo+ID4gICAgUmV0dXJuIHRyYW5zYWN0aW9uIGZyb20gY29tcG9uZW50cywg ZWc6IElPTU1VLiBJZiBoYXJ0IGhhcwo+ID4gcmVjZWl2ZWQgYWxsCj4gPiAgICBEVk0gY29tcGxl dGVzIHdoaWNoIGFyZSB0cmlnZ2VyZWQgYnkgc2ZlbmNlLnZtYSBpbnN0cnVjdGlvbnMgYW5kCj4g PiAgICAic3N0YXR1czpUTEJJQyIgaGFzIGJlZW4gc2V0LCBhIFRMQkkgZmluaXNoIGludGVycnVw dCBpcwo+ID4gdHJpZ2dlcmVkLgo+ID4gCj4gPiAoQWN0dWFsbHksIHdlIGRvIG5vdCBuZWVkIHRv IGltcGxlbWVudCB0aGUgYWJvdmUgZnVuY3Rpb25zIHN0cmljdGx5Cj4gPiAgYWNjb3JkaW5nIHRv IHRoZSBBQ0Ugc3BlY2lmaWNhdGlvbiA6UCApCj4gPiAKPiA+ICAxOiBodHRwczovL3d3dy5saW51 eHBsdW1iZXJzY29uZi5vcmcvZXZlbnQvNC9jb250cmlidXRpb25zLzMwNy8KPiA+ICAyOiBBTUJB IEFYSSBhbmQgQUNFIFByb3RvY29sIFNwZWNpZmljYXRpb24gLSBEaXN0cmlidXRlZCBWaXJ0dWFs Cj4gPiBNZW1vcnkKPiA+ICAgICBUcmFuc2FjdGlvbnMiCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6 IEd1byBSZW4gPHJlbl9ndW9AYy1za3kuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IExpIEZlaXRlbmcg PGZlaXRlbmdfbGlAYy1za3kuY29tPgo+ID4gLS0tCj4gPiAgc3JjL2h5cGVydmlzb3IudGV4IHwg IDQzICsrKysrKysrLS0tLS0tLQo+ID4gIHNyYy9zdXBlcnZpc29yLnRleCB8IDE1NQo+ID4gKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KPiA+ICAy IGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKPiA+IAo+ ID4gZGlmZiAtLWdpdCBhL3NyYy9oeXBlcnZpc29yLnRleCBiL3NyYy9oeXBlcnZpc29yLnRleAo+ ID4gaW5kZXggNDdiOTBiMi4uMzcxODgxOSAxMDA2NDQKPiA+IC0tLSBhL3NyYy9oeXBlcnZpc29y LnRleAo+ID4gKysrIGIvc3JjL2h5cGVydmlzb3IudGV4Cj4gPiBAQCAtMTA5NCwxNSArMTA5NCwx NSBAQCBUaGUgaHlwZXJ2aXNvciBleHRlbnNpb24gYWRkcyB0d28gbmV3Cj4gPiBwcml2aWxlZ2Vk IGZlbmNlIGluc3RydWN0aW9ucy4KPiA+ICBcbXVsdGljb2x1bW57MX17Y3x9e29wY29kZX0gXFwK PiA+ICBcaGxpbmUKPiA+ICA3ICYgNSAmIDUgJiAzICYgNSAmIDcgXFwKPiA+IC1IRkVOQ0UuR1ZN QSAmIHZtaWQgJiBnYWRkciAmIFBSSVYgJiAwICYgU1lTVEVNIFxcCj4gPiAtSEZFTkNFLlZWTUEg JiBhc2lkICYgdmFkZHIgJiBQUklWICYgMCAmIFNZU1RFTSBcXAo+ID4gK0hGRU5DRS5HVk1BICYg bW9kZTpwcG46dm1pZCAmIGdhZGRyICYgUFJJViAmIDAgJiBTWVNURU0gXFwKPiA+ICtIRkVOQ0Uu VlZNQSAmIG1vZGU6cHBuOmFzaWQgJiB2YWRkciAmIFBSSVYgJiAwICYgU1lTVEVNIFxcCj4gPiAg XGVuZHt0YWJ1bGFyfQo+ID4gIFxlbmR7Y2VudGVyfQo+ID4gCj4gPiAgVGhlIGh5cGVydmlzb3Ig bWVtb3J5LW1hbmFnZW1lbnQgZmVuY2UgaW5zdHJ1Y3Rpb25zLCBIRkVOQ0UuR1ZNQQo+ID4gYW5k Cj4gPiAgSEZFTkNFLlZWTUEsIGFyZSB2YWxpZCBvbmx5IGluIEhTLW1vZGUgd2hlbiB7XHR0IG1z dGF0dXN9LlRWTT0wLAo+ID4gb3IgaW4gTS1tb2RlCj4gPiAgKGlycmVzcGVjdGl2ZSBvZiB7XHR0 IG1zdGF0dXN9LlRWTSkuCj4gPiAtVGhlc2UgaW5zdHJ1Y3Rpb25zIHBlcmZvcm0gYSBmdW5jdGlv biBzaW1pbGFyIHRvIFNGRU5DRS5WTUEKPiA+ICtUaGVzZSBpbnN0cnVjdGlvbnMgcGVyZm9ybSBh IGZ1bmN0aW9uIHNpbWlsYXIgdG8gU0ZFTkNFLlZNQQo+ID4gKGJyb2FkY2FzdC9sb2NhbCkKPiA+ ICAoU2VjdGlvbn5ccmVme3NlYzpzZmVuY2Uudm1hfSksIGV4Y2VwdCBhcHBseWluZyB0byB0aGUg Z3Vlc3QtCj4gPiBwaHlzaWNhbAo+ID4gIG1lbW9yeS1tYW5hZ2VtZW50IGRhdGEgc3RydWN0dXJl cyBjb250cm9sbGVkIGJ5IENTUiB7XHR0IGhnYXRwfQo+ID4gKEhGRU5DRS5HVk1BKQo+ID4gIG9y IHRoZSBWUy1sZXZlbCBtZW1vcnktbWFuYWdlbWVudCBkYXRhIHN0cnVjdHVyZXMgY29udHJvbGxl ZCBieQo+ID4gQ1NSIHtcdHQgdnNhdHB9Cj4gPiBAQCAtMTEzNiwxMSArMTEzNiwxMCBAQCBBbiBI RkVOQ0UuVlZNQSBpbnN0cnVjdGlvbiBhcHBsaWVzIG9ubHkgdG8KPiA+IGEgc2luZ2xlIHZpcnR1 YWwgbWFjaGluZSwgaWRlbnRpZmllZAo+ID4gIGJ5IHRoZSBzZXR0aW5nIG9mIHtcdHQgaGdhdHB9 LlZNSUQgd2hlbiBIRkVOQ0UuVlZNQSBleGVjdXRlcy4KPiA+ICBcZW5ke2NvbW1lbnRhcnl9Cj4g PiAKPiA+IC1XaGVuIHtcZW0gcnMyfSRcbmVxJHtcdHQgeDB9LCBiaXRzIFhMRU4tMTpBU0lETUFY IG9mIHRoZSB2YWx1ZQo+ID4gaGVsZCBpbiB7XGVtCj4gPiAtcnMyfSBhcmUgcmVzZXJ2ZWQgZm9y IGZ1dHVyZSB1c2UgYW5kIHNob3VsZCBiZSB6ZXJvZWQgYnkgc29mdHdhcmUKPiA+IGFuZCBpZ25v cmVkCj4gPiAtYnkgY3VycmVudCBpbXBsZW1lbnRhdGlvbnMuCj4gPiAtRnVydGhlcm1vcmUsIGlm IEFTSURMRU5+JDwkfkFTSURNQVgsIHRoZSBpbXBsZW1lbnRhdGlvbiBzaGFsbAo+ID4gaWdub3Jl IGJpdHMKPiA+IC1BU0lETUFYLTE6QVNJRExFTiBvZiB0aGUgdmFsdWUgaGVsZCBpbiB7XGVtIHJz Mn0uCj4gPiArV2hlbiB7XGVtIHJzMn0kXG5lcSR7XHR0IHgwfSwgYml0cyBjb250YWluIDMgaW5m b3JtYXRpb25zOiBtb2RlLAo+ID4gcHBuLCBhc2lkLgo+ID4gKzEpIG1vZGUgY29udHJvbCBIRkVO Q0UuVlZNQSBicm9hZGNhc3Qgb3Igbm90Lgo+ID4gKzIpIHBwbiBpcyB0aGUgcm9vdCBwYWdlIHRh bGJlJ3MgUFBOIG9mIHRoZSBhc2lkIGFkZHJlc3Mgc3BhY2UuCj4gPiArMykgYXNpZCBpcyB0aGUg aWRlbnRpZmllciBvZiBwcm9jZXNzIGluIHZpcnR1YWwgbWFjaGluZS4KPiA+IAo+ID4gIFxiZWdp bntjb21tZW50YXJ5fQo+ID4gIFNpbXBsZXIgaW1wbGVtZW50YXRpb25zIG9mIEhGRU5DRS5WVk1B IGNhbiBpZ25vcmUgdGhlIGd1ZXN0Cj4gPiB2aXJ0dWFsIGFkZHJlc3MgaW4KPiA+IEBAIC0xMTY4 LDExICsxMTY3LDEwIEBAIHBoeXNpY2FsIGFkZHJlc3NlcyBpbiBQTVAgYWRkcmVzcyByZWdpc3Rl cnMKPiA+IChTZWN0aW9uflxyZWZ7c2VjOnBtcH0pIGFuZCBpbiBwYWdlCj4gPiAgdGFibGUgZW50 cmllcyAoU2VjdGlvbnMgXHJlZntzZWM6c3YzMn0sIFxyZWZ7c2VjOnN2Mzl9LAo+ID4gYW5kflxy ZWZ7c2VjOnN2NDh9KS4KPiA+ICBcZW5ke2NvbW1lbnRhcnl9Cj4gPiAKPiA+IC1XaGVuIHtcZW0g cnMyfSRcbmVxJHtcdHQgeDB9LCBiaXRzIFhMRU4tMTpWTUlETUFYIG9mIHRoZSB2YWx1ZQo+ID4g aGVsZCBpbiB7XGVtCj4gPiAtcnMyfSBhcmUgcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UgYW5kIHNo b3VsZCBiZSB6ZXJvZWQgYnkgc29mdHdhcmUKPiA+IGFuZCBpZ25vcmVkCj4gPiAtYnkgY3VycmVu dCBpbXBsZW1lbnRhdGlvbnMuCj4gPiAtRnVydGhlcm1vcmUsIGlmIFZNSURMRU5+JDwkflZNSURN QVgsIHRoZSBpbXBsZW1lbnRhdGlvbiBzaGFsbAo+ID4gaWdub3JlIGJpdHMKPiA+IC1WTUlETUFY LTE6Vk1JRExFTiBvZiB0aGUgdmFsdWUgaGVsZCBpbiB7XGVtIHJzMn0uCj4gPiArV2hlbiB7XGVt IHJzMn0kXG5lcSR7XHR0IHgwfSwgYml0cyBjb250YWluIDMgaW5mb3JtYXRpb25zOiBtb2RlLAo+ ID4gdm1pZCwgcHBuLgo+ID4gKzEpIG1vZGUgY29udHJvbCBIRkVOQ0UuR1ZNQSBicm9hZGNhc3Qg b3Igbm90Lgo+ID4gKzIpIHBwbiBpcyB0aGUgcm9vdCBwYWdlIHRhbGJlJ3MgUFBOIG9mIHRoZSB2 bWlkIGFkZHJlc3Mgc3BhY2UuCj4gPiArMykgdm1pZCBpcyB0aGUgaWRlbnRpZmllciBvZiB2aXJ0 dWFsIG1hY2hpbmUuCj4gPiAKPiA+ICBcYmVnaW57Y29tbWVudGFyeX0KPiA+ICBTaW1wbGVyIGlt cGxlbWVudGF0aW9ucyBvZiBIRkVOQ0UuR1ZNQSBjYW4gaWdub3JlIHRoZSBndWVzdAo+ID4gcGh5 c2ljYWwgYWRkcmVzcyBpbgo+ID4gQEAgLTE1NjcsMjEgKzE1NjUsMjIgQEAgcmVnaXN0ZXIuCj4g PiAgXHN1YnNlY3Rpb257TWVtb3J5LU1hbmFnZW1lbnQgRmVuY2VzfQo+ID4gCj4gPiAgVGhlIGJl aGF2aW9yIG9mIHRoZSBTRkVOQ0UuVk1BIGluc3RydWN0aW9uIGlzIGFmZmVjdGVkIGJ5IHRoZQo+ ID4gY3VycmVudAo+ID4gLXZpcnR1YWxpemF0aW9uIG1vZGUgVi4gIFdoZW4gVj0wLCB0aGUgdmly dHVhbC1hZGRyZXNzIGFyZ3VtZW50IGlzCj4gPiBhbiBIUy1sZXZlbAo+ID4gLXZpcnR1YWwgYWRk cmVzcywgYW5kIHRoZSBBU0lEIGFyZ3VtZW50IGlzIGFuIEhTLWxldmVsIEFTSUQuCj4gPiArdmly dHVhbGl6YXRpb24gbW9kZSBWLiAgV2hlbiBWPTAsIHRoZSByczEgYXJndW1lbnQgaXMgYW4gSFMt bGV2ZWwKPiA+ICt2aXJ0dWFsIGFkZHJlc3MsIGFuZCB0aGUgcnMyIGFyZ3VtZW50IGlzIGFuIEhT LWxldmVsIEFTSUQgYW5kIHJvb3QKPiA+IHBhZ2UgdGFibGUncyBQUE4uCj4gPiAgVGhlIGluc3Ry dWN0aW9uIG9yZGVycyBzdG9yZXMgb25seSB0byBIUy1sZXZlbCBhZGRyZXNzLXRyYW5zbGF0aW9u IAo+ID4gc3RydWN0dXJlcwo+ID4gIHdpdGggc3Vic2VxdWVudCBIUy1sZXZlbCBhZGRyZXNzIHRy YW5zbGF0aW9ucy4KPiA+IAo+ID4gLVdoZW4gVj0xLCB0aGUgdmlydHVhbC1hZGRyZXNzIGFyZ3Vt ZW50IHRvIFNGRU5DRS5WTUEgaXMgYSBndWVzdAo+ID4gdmlydHVhbAo+ID4gLWFkZHJlc3Mgd2l0 aGluIHRoZSBjdXJyZW50IHZpcnR1YWwgbWFjaGluZSwgYW5kIHRoZSBBU0lEIGFyZ3VtZW50Cj4g PiBpcyBhIFZTLWxldmVsCj4gPiAtQVNJRCB3aXRoaW4gdGhlIGN1cnJlbnQgdmlydHVhbCBtYWNo aW5lLgo+ID4gK1doZW4gVj0xLCB0aGUgcnMxIGFyZ3VtZW50IHRvIFNGRU5DRS5WTUEgaXMgYSBn dWVzdCB2aXJ0dWFsCj4gPiArYWRkcmVzcyB3aXRoaW4gdGhlIGN1cnJlbnQgdmlydHVhbCBtYWNo aW5lLCBhbmQgdGhlIHJzMiBhcmd1bWVudAo+ID4gaXMgYSBWUy1sZXZlbAo+ID4gK0FTSUQgYW5k IHJvb3QgcGFnZSB0YWJsZSdzIFBQTiB3aXRoaW4gdGhlIGN1cnJlbnQgdmlydHVhbCBtYWNoaW5l Lgo+ID4gIFRoZSBjdXJyZW50IHZpcnR1YWwgbWFjaGluZSBpcyBpZGVudGlmaWVkIGJ5IHRoZSBW TUlEIGZpZWxkIG9mIENTUgo+ID4ge1x0dCBoZ2F0cH0sCj4gPiAtYW5kIHRoZSBlZmZlY3RpdmUg QVNJRCBjYW4gYmUgY29uc2lkZXJlZCB0byBiZSB0aGUgY29tYmluYXRpb24gb2YKPiA+IHRoaXMg Vk1JRAo+ID4gLXdpdGggdGhlIFZTLWxldmVsIEFTSUQuCj4gPiArYW5kIHRoZSBlZmZlY3RpdmUg QVNJRCBhbmQgcm9vdCBwYWdlIHRhYmxlJ3MgUFBOIGNhbiBiZSBjb25zaWRlcmVkCj4gPiB0byBi ZSB0aGUKPiA+ICtjb21iaW5hdGlvbiBvZiB0aGlzIFZNSUQgYW5kIHJvb3QgcGFnZSB0YWJsZSdz IFBQTiB3aXRoIHRoZSBWUy0KPiA+IGxldmVsIEFTSUQgYW5kCj4gPiArcm9vdCBwYWdlIHRhYmxl J3MgUFBOLgo+ID4gIFRoZSBTRkVOQ0UuVk1BIGluc3RydWN0aW9uIG9yZGVycyBzdG9yZXMgb25s eSB0byB0aGUgVlMtbGV2ZWwKPiA+ICBhZGRyZXNzLXRyYW5zbGF0aW9uIHN0cnVjdHVyZXMgd2l0 aCBzdWJzZXF1ZW50IFZTLWxldmVsIGFkZHJlc3MKPiA+IHRyYW5zbGF0aW9ucwo+ID4gLWZvciB0 aGUgc2FtZSB2aXJ0dWFsIG1hY2hpbmUsIGkuZS4sIG9ubHkgd2hlbiB7XHR0IGhnYXRwfS5WTUlE IGlzCj4gPiB0aGUgc2FtZSBhcwo+ID4gLXdoZW4gdGhlIFNGRU5DRS5WTUEgZXhlY3V0ZWQuCj4g PiArZm9yIHRoZSBzYW1lIHZpcnR1YWwgbWFjaGluZSwgaS5lLiwgb25seSB3aGVuIHtcdHQgaGdh dHB9LlZNSUQgYW5kCj4gPiB7XFx0dCBoZ2F0cH0uUFBOIGlzCj4gPiArdGhlIHNhbWUgYXMgd2hl biB0aGUgU0ZFTkNFLlZNQSBleGVjdXRlZC4KPiA+IAo+ID4gIEh5cGVydmlzb3IgaW5zdHJ1Y3Rp b25zIEhGRU5DRS5HVk1BIGFuZCBIRkVOQ0UuVlZNQSBwcm92aWRlCj4gPiBhZGRpdGlvbmFsCj4g PiAgbWVtb3J5LW1hbmFnZW1lbnQgZmVuY2VzIHRvIGNvbXBsZW1lbnQgU0ZFTkNFLlZNQS4KPiA+ IGRpZmYgLS1naXQgYS9zcmMvc3VwZXJ2aXNvci50ZXggYi9zcmMvc3VwZXJ2aXNvci50ZXgKPiA+ IGluZGV4IGJhM2NlZDUuLjI4NzdiN2EgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvc3VwZXJ2aXNvci50 ZXgKPiA+ICsrKyBiL3NyYy9zdXBlcnZpc29yLnRleAo+ID4gQEAgLTQ3LDEwICs0NywxMiBAQCBy ZWdpc3RlciBrZWVwcyB0cmFjayBvZiB0aGUgcHJvY2Vzc29yJ3MgY3VycmVudAo+ID4gb3BlcmF0 aW5nIHN0YXRlLgo+ID4gIFxiZWdpbntjZW50ZXJ9Cj4gPiAgXHNldGxlbmd0aHtcdGFiY29sc2Vw fXs0cHR9Cj4gPiAgXHNjYWxlYm94ezAuOTV9ewo+ID4gLVxiZWdpbnt0YWJ1bGFyfXtjV2NjY2Nj V2NjY2NXY2N9Cj4gPiArXGJlZ2lue3RhYnVsYXJ9e2NjY1djY2NjY1djY2NjV2NjfQo+ID4gIFxc Cj4gPiAgXGluc3RiaXR7MzF9ICYKPiA+IC1caW5zdGJpdHJhbmdlezMwfXsyMH0gJgo+ID4gK1xp bnN0Yml0ezMwfSAmCj4gPiArXGluc3RiaXR7Mjl9ICYKPiA+ICtcaW5zdGJpdHJhbmdlezI4fXsy MH0gJgo+ID4gIFxpbnN0Yml0ezE5fSAmCj4gPiAgXGluc3RiaXR7MTh9ICYKPiA+ICBcaW5zdGJp dHsxN30gJgo+ID4gQEAgLTY2LDYgKzY4LDggQEAgcmVnaXN0ZXIga2VlcHMgdHJhY2sgb2YgdGhl IHByb2Nlc3NvcidzIGN1cnJlbnQKPiA+IG9wZXJhdGluZyBzdGF0ZS4KPiA+ICBcaW5zdGJpdHsw fSBcXAo+ID4gIFxobGluZQo+ID4gIFxtdWx0aWNvbHVtbnsxfXt8Y3x9e1NEfSAmCj4gPiArXG11 bHRpY29sdW1uezF9e3xjfH17VExCSX0gJgo+ID4gK1xtdWx0aWNvbHVtbnsxfXt8Y3x9e1RMQklD fSAmCj4gPiAgXG11bHRpY29sdW1uezF9e2N8fXtcd3ByaX0gJgo+ID4gIFxtdWx0aWNvbHVtbnsx fXtjfH17TVhSfSAmCj4gPiAgXG11bHRpY29sdW1uezF9e2N8fXtTVU19ICYKPiA+IEBAIC04Miw3 ICs4Niw3IEBAIHJlZ2lzdGVyIGtlZXBzIHRyYWNrIG9mIHRoZSBwcm9jZXNzb3IncyBjdXJyZW50 Cj4gPiBvcGVyYXRpbmcgc3RhdGUuCj4gPiAgXG11bHRpY29sdW1uezF9e2N8fXtcd3ByaX0KPiA+ ICBcXAo+ID4gIFxobGluZQo+ID4gLTEgJiAxMSAmIDEgJiAxICYgMSAmIDIgJiAyICYgNCAmIDEg JiAxICYgMSAmIDEgJiAzICYgMSAmIDEgXFwKPiA+ICsxICYgMSAmIDEgJiAxMCAmIDEgJiAxICYg MSAmIDIgJiAyICYgNCAmIDEgJiAxICYgMSAmIDEgJiAzICYgMSAmIDEKPiA+IFxcCj4gPiAgXGVu ZHt0YWJ1bGFyfX0KPiA+ICBcZW5ke2NlbnRlcn0KPiA+ICB9Cj4gPiBAQCAtOTUsMTAgKzk5LDEy IEBAIHJlZ2lzdGVyIGtlZXBzIHRyYWNrIG9mIHRoZSBwcm9jZXNzb3IncyBjdXJyZW50Cj4gPiBv cGVyYXRpbmcgc3RhdGUuCj4gPiAge1xmb290bm90ZXNpemUKPiA+ICBcYmVnaW57Y2VudGVyfQo+ ID4gIFxzZXRsZW5ndGh7XHRhYmNvbHNlcH17NHB0fQo+ID4gLVxiZWdpbnt0YWJ1bGFyfXtjTUZT Y2NjY30KPiA+ICtcYmVnaW57dGFidWxhcn17Y2NjTUZTY2NjY30KPiA+ICBcXAo+ID4gIFxpbnN0 Yml0e1NYTEVOLTF9ICYKPiA+IC1caW5zdGJpdHJhbmdle1NYTEVOLTJ9ezM0fSAmCj4gPiArXGlu c3RiaXR7U1hMRU4tMn0gJgo+ID4gK1xpbnN0Yml0e1NYTEVOLTN9ICYKPiA+ICtcaW5zdGJpdHJh bmdle1NYTEVOLTR9ezM0fSAmCj4gPiAgXGluc3RiaXRyYW5nZXszM317MzJ9ICYKPiA+ICBcaW5z dGJpdHJhbmdlezMxfXsyMH0gJgo+ID4gIFxpbnN0Yml0ezE5fSAmCj4gPiBAQCAtMTA3LDYgKzEx Myw4IEBAIHJlZ2lzdGVyIGtlZXBzIHRyYWNrIG9mIHRoZSBwcm9jZXNzb3IncyBjdXJyZW50Cj4g PiBvcGVyYXRpbmcgc3RhdGUuCj4gPiAgIFxcCj4gPiAgXGhsaW5lCj4gPiAgXG11bHRpY29sdW1u ezF9e3xjfH17U0R9ICYKPiA+ICtcbXVsdGljb2x1bW57MX17fGN8fXtUTEJJfSAmCj4gPiArXG11 bHRpY29sdW1uezF9e3xjfH17VExCSUN9ICYKPiA+ICBcbXVsdGljb2x1bW57MX17Y3x9e1x3cHJp fSAmCj4gPiAgXG11bHRpY29sdW1uezF9e2N8fXtVWExbMTowXX0gJgo+ID4gIFxtdWx0aWNvbHVt bnsxfXtjfH17XHdwcml9ICYKPiA+IEBAIC0xMTUsNyArMTIzLDcgQEAgcmVnaXN0ZXIga2VlcHMg dHJhY2sgb2YgdGhlIHByb2Nlc3NvcidzIGN1cnJlbnQKPiA+IG9wZXJhdGluZyBzdGF0ZS4KPiA+ ICBcbXVsdGljb2x1bW57MX17Y3x9e1x3cHJpfSAmCj4gPiAgIFxcCj4gPiAgXGhsaW5lCj4gPiAt MSAmIFNYTEVOLTM1ICYgMiAmIDEyICYgMSAmIDEgJiAxICYgXFwKPiA+ICsxICYgMSAmIDEgJiBT WExFTi0zNyAmIDIgJiAxMiAmIDEgJiAxICYgMSAmIFxcCj4gPiAgXGVuZHt0YWJ1bGFyfQo+ID4g IFxiZWdpbnt0YWJ1bGFyfXtjV1dGY2NjY1djY30KPiA+ICBcXAo+ID4gQEAgLTE1Miw2ICsxNjAs MTcgQEAgcmVnaXN0ZXIga2VlcHMgdHJhY2sgb2YgdGhlIHByb2Nlc3NvcidzCj4gPiBjdXJyZW50 IG9wZXJhdGluZyBzdGF0ZS4KPiA+ICBcbGFiZWx7c3N0YXR1c3JlZ30KPiA+ICBcZW5ke2ZpZ3Vy ZSp9Cj4gPiAKPiA+ICtUaGUgVExCSSAocmVhZC1vbmx5KSBiaXQgaW5kaWNhdGVzIHRoYXQgYW55 IGFzeW5jIHNmZW5jZS52bWEKPiA+IG9wZXJhdGlvbnMgYXJlCj4gPiArc3RpbGwgcGVuZGVkIG9u IHRoZSBoYXJ0LiBUaGUgdmFsdWU6MCBtZWFucyB0aGF0IHRoZXJlIGlzIG5vCj4gPiBzZmVuY2Uu dm1hCj4gPiArb3BlcmF0aW9ucyBwZW5kaW5nIGFuZCB2YWx1ZToxIG1lYW5zIHRoYXQgdGhlcmUg YXJlIHN0aWxsCj4gPiBzZmVuY2Uudm1hIG9wZXJhdGlvbnMKPiA+ICtwZW5kaW5nIG9uIHRoZSBo YXJ0Lgo+ID4gKwo+ID4gK1doZW4gdGhlIHNzdGF0dXM6VExCSUMgYml0IGlzIHdyaXR0ZW4gMSwg aXQgdHJpZ2dlcnMgdGhlIGhhcmR3YXJlCj4gPiB0byBjaGVjayBpZgo+ID4gK3RoZXJlIGFyZSBh bnkgVExCIGludmFsaWRhdGUgb3BlcmF0aW9ucyBiZWluZyBwZW5kZWQuIFdoZW4gYWxsCj4gPiBv cGVyYXRpb25zIGFyZQo+ID4gK2ZpbmlzaGVkLCBhIFRMQiBJbnZhbGlkYXRlIGZpbmlzaCBpbnRl cnJ1cHQgd2lsbCBiZSB0cmlnZ2VyZWQKPiA+ICsoc2VlIFNlY3Rpb25+XHJlZntzaXByZWd9KS4g V2hlbiB0aGUgc3N0YXR1czpUTEJJQyBiaXQgaXMgd3JpdHRlbgo+ID4gMCwgaXQgd2lsbAo+ID4g K2NhdXNlIG5vdGhpbmcuIFJlYWRpbmcgc3N0YXR1czpUTEJJQyBiaXQgd2lsbCBhbGF3YXlzIHJl dHVybiAwLgo+ID4gKwo+ID4gIFRoZSBTUFAgYml0IGluZGljYXRlcyB0aGUgcHJpdmlsZWdlIGxl dmVsIGF0IHdoaWNoIGEgaGFydCB3YXMKPiA+IGV4ZWN1dGluZyBiZWZvcmUKPiA+ICBlbnRlcmlu ZyBzdXBlcnZpc29yIG1vZGUuICBXaGVuIGEgdHJhcCBpcyB0YWtlbiwgU1BQIGlzIHNldCB0byAw Cj4gPiBpZiB0aGUgdHJhcAo+ID4gIG9yaWdpbmF0ZWQgZnJvbSB1c2VyIG1vZGUsIG9yIDEgb3Ro ZXJ3aXNlLiAgV2hlbiBhbiBTUkVUCj4gPiBpbnN0cnVjdGlvbgo+ID4gQEAgLTMyOSw4ICszNDgs MTAgQEAgU1hMRU4tYml0IHJlYWQvd3JpdGUgcmVnaXN0ZXIgY29udGFpbmluZwo+ID4gaW50ZXJy dXB0IGVuYWJsZSBiaXRzLgo+ID4gIHtcZm9vdG5vdGVzaXplCj4gPiAgXGJlZ2lue2NlbnRlcn0K PiA+ICBcc2V0bGVuZ3Roe1x0YWJjb2xzZXB9ezRwdH0KPiA+IC1cYmVnaW57dGFidWxhcn17S2NG Y0ZjY30KPiA+IC1caW5zdGJpdHJhbmdle1NYTEVOLTF9ezEwfSAmCj4gPiArXGJlZ2lue3RhYnVs YXJ9e0tjRmNGY0ZjY30KPiA+ICtcaW5zdGJpdHJhbmdle1NYTEVOLTF9ezE0fSAmCj4gPiArXGlu c3RiaXR7MTN9ICYKPiA+ICtcaW5zdGJpdHJhbmdlezEyfXsxMH0gJgo+ID4gIFxpbnN0Yml0ezl9 ICYKPiA+ICBcaW5zdGJpdHJhbmdlezh9ezZ9ICYKPiA+ICBcaW5zdGJpdHs1fSAmCj4gPiBAQCAt MzM5LDYgKzM2MCw4IEBAIFNYTEVOLWJpdCByZWFkL3dyaXRlIHJlZ2lzdGVyIGNvbnRhaW5pbmcK PiA+IGludGVycnVwdCBlbmFibGUgYml0cy4KPiA+ICBcaW5zdGJpdHswfSBcXAo+ID4gIFxobGlu ZQo+ID4gIFxtdWx0aWNvbHVtbnsxfXt8Y3x9e1x3cHJpfSAmCj4gPiArXG11bHRpY29sdW1uezF9 e2N8fXtTVExCSVB9ICYKPiA+ICtcbXVsdGljb2x1bW57MX17fGN8fXtcd3ByaX0gJgo+ID4gIFxt dWx0aWNvbHVtbnsxfXtjfH17U0VJUH0gJgo+ID4gIFxtdWx0aWNvbHVtbnsxfXtjfH17XHdwcml9 ICYKPiA+ICBcbXVsdGljb2x1bW57MX17Y3x9e1NUSVB9ICYKPiA+IEBAIC0zNDYsNyArMzY5LDcg QEAgU1hMRU4tYml0IHJlYWQvd3JpdGUgcmVnaXN0ZXIgY29udGFpbmluZwo+ID4gaW50ZXJydXB0 IGVuYWJsZSBiaXRzLgo+ID4gIFxtdWx0aWNvbHVtbnsxfXtjfH17U1NJUH0gJgo+ID4gIFxtdWx0 aWNvbHVtbnsxfXtjfH17XHdwcml9IFxcCj4gPiAgXGhsaW5lCj4gPiAtU1hMRU4tMTAgJiAxICYg MyAmIDEgJiAzICYgMSAmIDEgXFwKPiA+ICtTWExFTi0xNCAmIDEgJiAzICYgMSAmIDMgJiAxICYg MyAmIDEgJiAxIFxcCj4gPiAgXGVuZHt0YWJ1bGFyfQo+ID4gIFxlbmR7Y2VudGVyfQo+ID4gIH0K PiA+IEBAIC0zNTksOCArMzgyLDEwIEBAIFNYTEVOLTEwICYgMSAmIDMgJiAxICYgMyAmIDEgJiAx IFxcCj4gPiAge1xmb290bm90ZXNpemUKPiA+ICBcYmVnaW57Y2VudGVyfQo+ID4gIFxzZXRsZW5n dGh7XHRhYmNvbHNlcH17NHB0fQo+ID4gLVxiZWdpbnt0YWJ1bGFyfXtLY0ZjRmNjfQo+ID4gLVxp bnN0Yml0cmFuZ2V7U1hMRU4tMX17MTB9ICYKPiA+ICtcYmVnaW57dGFidWxhcn17S2NGY0ZjRmNj fQo+ID4gK1xpbnN0Yml0cmFuZ2V7U1hMRU4tMX17MTR9ICYKPiA+ICtcaW5zdGJpdHsxM30gJgo+ ID4gK1xpbnN0Yml0cmFuZ2V7MTJ9ezEwfSAmCj4gPiAgXGluc3RiaXR7OX0gJgo+ID4gIFxpbnN0 Yml0cmFuZ2V7OH17Nn0gJgo+ID4gIFxpbnN0Yml0ezV9ICYKPiA+IEBAIC0zNjksNiArMzk0LDgg QEAgU1hMRU4tMTAgJiAxICYgMyAmIDEgJiAzICYgMSAmIDEgXFwKPiA+ICBcaW5zdGJpdHswfSBc XAo+ID4gIFxobGluZQo+ID4gIFxtdWx0aWNvbHVtbnsxfXt8Y3x9e1x3cHJpfSAmCj4gPiArXG11 bHRpY29sdW1uezF9e2N8fXtTVExCSUV9ICYKPiA+ICtcbXVsdGljb2x1bW57MX17fGN8fXtcd3By aX0gJgo+ID4gIFxtdWx0aWNvbHVtbnsxfXtjfH17U0VJRX0gJgo+ID4gIFxtdWx0aWNvbHVtbnsx fXtjfH17XHdwcml9ICYKPiA+ICBcbXVsdGljb2x1bW57MX17Y3x9e1NUSUV9ICYKPiA+IEBAIC0z NzYsNyArNDAzLDcgQEAgU1hMRU4tMTAgJiAxICYgMyAmIDEgJiAzICYgMSAmIDEgXFwKPiA+ICBc bXVsdGljb2x1bW57MX17Y3x9e1NTSUV9ICYKPiA+ICBcbXVsdGljb2x1bW57MX17Y3x9e1x3cHJp fSBcXAo+ID4gIFxobGluZQo+ID4gLVNYTEVOLTEwICYgMSAmIDMgJiAxICYgMyAmIDEgJiAxIFxc Cj4gPiArU1hMRU4tMTQgJiAxICYgMyAmIDEgJiAzICYgMSAmIDMgJiAxICYgMSBcXAo+ID4gIFxl bmR7dGFidWxhcn0KPiA+ICBcZW5ke2NlbnRlcn0KPiA+ICB9Cj4gPiBAQCAtNDEwLDYgKzQzNywx MiBAQCB3aGVuIHRoZSBTRUlFIGJpdCBpbiB0aGUge1x0dCBzaWV9IHJlZ2lzdGVyIGlzCj4gPiBj bGVhci4gIFRoZSBpbXBsZW1lbnRhdGlvbgo+ID4gIHNob3VsZCBwcm92aWRlIGZhY2lsaXRpZXMg dG8gbWFzaywgdW5tYXNrLCBhbmQgcXVlcnkgdGhlIGNhdXNlIG9mCj4gPiBleHRlcm5hbAo+ID4g IGludGVycnVwdHMuCj4gPiAKPiA+ICtBIHN1cGVydmlzb3ItbGV2ZWwgVExCIEludmFsaWRhdGUg ZmluaXNoIGludGVycnVwdCBpcyBwZW5kaW5nIGlmCj4gPiB0aGUgU1RMQklQIGJpdAo+ID4gK2lu IHRoZSB7XHR0IHNpcH0gcmVnaXN0ZXIgaXMgc2V0LiAgU3VwZXJ2aXNvci1sZXZlbCBUTEIgSW52 YWxpZGF0ZQo+ID4gZmluaXNoCj4gPiAraW50ZXJydXB0cyBhcmUgZGlzYWJsZWQgd2hlbiB0aGUg U1RMQklFIGJpdCBpbiB0aGUge1x0dCBzaWV9Cj4gPiByZWdpc3RlciBpcyBjbGVhci4KPiA+ICtX aGVuIGhhcnQgdGxiIGludmFsaWRhdGUgb3BlcmF0aW9ucyBhcmUgZmluaXNoZWQsIGhhcmR3YXJl IHdpbGwKPiA+IGNoYW5nZSBzc3RhdHVzOlRMQkkKPiA+ICtiaXQgZnJvbSAxIHRvIDAgYW5kIHRy aWdnZXIgVExCIEludmFsaWRhdGUgZmluaXNoIGludGVycnVwdC4KPiA+ICsKPiA+ICBcYmVnaW57 Y29tbWVudGFyeX0KPiA+ICBUaGUge1x0dCBzaXB9IGFuZCB7XHR0IHNpZX0gcmVnaXN0ZXJzIGFy ZSBzdWJzZXRzIG9mIHRoZSB7XHR0IG1pcH0KPiA+IGFuZCB7XHR0Cj4gPiAgbWllfSByZWdpc3Rl cnMuICBSZWFkaW5nIGFueSBmaWVsZCwgb3Igd3JpdGluZyBhbnkgd3JpdGFibGUgZmllbGQsCj4g PiBvZiB7XHR0Cj4gPiBAQCAtNTk4LDcgKzYzMSw5IEBAIHNvIGlzIG9ubHkgZ3VhcmFudGVlZCB0 byBob2xkIHN1cHBvcnRlZAo+ID4gZXhjZXB0aW9uIGNvZGVzLgo+ID4gICAgMSAgICAgICAgICYg NSAgICAgICAgICAgICAgICYgU3VwZXJ2aXNvciB0aW1lciBpbnRlcnJ1cHQgXFwKPiA+ICAgIDEg ICAgICAgICAmIDYtLTggICAgICAgICAgICAmIHtcZW0gUmVzZXJ2ZWR9IFxcCj4gPiAgICAxICAg ICAgICAgJiA5ICAgICAgICAgICAgICAgJiBTdXBlcnZpc29yIGV4dGVybmFsIGludGVycnVwdCBc XAo+ID4gLSAgMSAgICAgICAgICYgMTAtLTE1ICAgICAgICAgICYge1xlbSBSZXNlcnZlZH0gXFwK PiA+ICsgIDEgICAgICAgICAmIDEwLS0xMSAgICAgICAgICAmIHtcZW0gUmVzZXJ2ZWR9IFxcCj4g PiArICAxICAgICAgICAgJiAxMiAgICAgICAgICAgICAgJiBTdXBlcnZpc29yIFRMQkkgZmluaXNo IGludGVycnVwdAo+ID4gXFwKPiA+ICsgIDEgICAgICAgICAmIDEzLS0xNSAgICAgICAgICAmIHtc ZW0gUmVzZXJ2ZWR9IFxcCj4gPiAgICAxICAgICAgICAgJiAkXGdlJDE2ICAgICAgICAgJiB7XGVt IEF2YWlsYWJsZSBmb3IgcGxhdGZvcm0gdXNlfQo+ID4gXFwgXGhsaW5lCj4gPiAgICAwICAgICAg ICAgJiAwICAgICAgICAgICAgICAgJiBJbnN0cnVjdGlvbiBhZGRyZXNzIG1pc2FsaWduZWQgXFwK PiA+ICAgIDAgICAgICAgICAmIDEgICAgICAgICAgICAgICAmIEluc3RydWN0aW9uIGFjY2VzcyBm YXVsdCBcXAo+ID4gQEAgLTg4NCw3ICs5MTksNyBAQCBwcm92aWRlZC4KPiA+ICBcbXVsdGljb2x1 bW57MX17Y3x9e29wY29kZX0gXFwKPiA+ICBcaGxpbmUKPiA+ICA3ICYgNSAmIDUgJiAzICYgNSAm IDcgXFwKPiA+IC1TRkVOQ0UuVk1BICYgYXNpZCAmIHZhZGRyICYgUFJJViAmIDAgJiBTWVNURU0g XFwKPiA+ICtTRkVOQ0UuVk1BICYgbW9kZTpwcG46YXNpZCAmIHZhZGRyICYgTE9DQUwgJiAwICYg U1lTVEVNIFxcCj4gPiAgXGVuZHt0YWJ1bGFyfQo+ID4gIFxlbmR7Y2VudGVyfQo+ID4gCj4gPiBA QCAtODk5LDIxICs5MzQsNzAgQEAgZnJvbSB0aGF0IGhhcnQgdG8gdGhlIG1lbW9yeS1tYW5hZ2Vt ZW50IGRhdGEKPiA+IHN0cnVjdHVyZXMuCj4gPiAgRnVydGhlciBkZXRhaWxzIG9uIHRoZSBiZWhh dmlvciBvZiB0aGlzIGluc3RydWN0aW9uIGFyZQo+ID4gIGRlc2NyaWJlZCBpbiBTZWN0aW9uflxy ZWZ7dmlydC1jb250cm9sfSBhbmQgU2VjdGlvbn5ccmVme3BtcC0KPiA+IHZtZW19Lgo+ID4gCj4g PiArU0ZFTkNFLlZNQSBpcyBkZWZpbmVkIGFzIGFuIGFzeW5jaHJvbm91cyBjb21wbGV0aW9uIGlu c3RydWN0aW9uLAo+ID4gd2hpY2ggbWVhbnMKPiA+ICt0aGF0IHRoZSBUTEIgb3BlcmF0aW9uIGlz IG5vdCBndWFyYW50ZWVkIHRvIGNvbXBsZXRlIHdoZW4gdGhlCj4gPiBpbnN0cnVjdGlvbiByZXRp cmVzLgo+ID4gK1NvZnR3YXJlIG5lZWQgY2hlY2sgc3N0YXR1czpUTEJJIHRvIGRldGVybWluZSBh bGwgVExCIG9wZXJhdGlvbnMKPiA+IGNvbXBsZXRlLgo+ID4gK1RoZSBzc3RhdHVzOlRMQkkgZGVz Y3JpYmVkIGluIFNlY3Rpb25+XHJlZntzc3RhdHVzfS4gV2hlbiBoYXJkd2FyZQo+ID4gY2hhbmdl Cj4gPiArc3N0YXR1czpUTEJJIGJpdCBmcm9tIDEgdG8gMCwgdGhlIFRMQiBJbnZhbGlkYXRlIGZp bmlzaCBpbnRlcnJ1cHQKPiA+IHdpbGwgYmUKPiA+ICt0cmlnZ2VyZWQuCj4gPiArCj4gPiAgXGJl Z2lue2NvbW1lbnRhcnl9Cj4gPiAtVGhlIFNGRU5DRS5WTUEgaXMgdXNlZCB0byBmbHVzaCBhbnkg bG9jYWwgaGFyZHdhcmUgY2FjaGVzIHJlbGF0ZWQKPiA+IHRvCj4gPiArVGhlIFNGRU5DRS5WTUEg aXMgdXNlZCB0byBmbHVzaCBhbnkgbG9jYWwvcmVtb3RlIGhhcmR3YXJlIGNhY2hlcwo+ID4gcmVs YXRlZCB0bwo+ID4gIGFkZHJlc3MgdHJhbnNsYXRpb24uICBJdCBpcyBzcGVjaWZpZWQgYXMgYSBm ZW5jZSByYXRoZXIgdGhhbiBhIFRMQgo+ID4gIGZsdXNoIHRvIHByb3ZpZGUgY2xlYW5lciBzZW1h bnRpY3Mgd2l0aCByZXNwZWN0IHRvIHdoaWNoCj4gPiBpbnN0cnVjdGlvbnMKPiA+ICBhcmUgYWZm ZWN0ZWQgYnkgdGhlIGZsdXNoIG9wZXJhdGlvbiBhbmQgdG8gc3VwcG9ydCBhIHdpZGVyIHZhcmll dHkKPiA+IG9mCj4gPiAgZHluYW1pYyBjYWNoaW5nIHN0cnVjdHVyZXMgYW5kIG1lbW9yeS1tYW5h Z2VtZW50IHNjaGVtZXMuIAo+ID4gU0ZFTkNFLlZNQQo+ID4gIGlzIGFsc28gdXNlZCBieSBoaWdo ZXIgcHJpdmlsZWdlIGxldmVscyB0byBzeW5jaHJvbml6ZSBwYWdlIHRhYmxlCj4gPiAtd3JpdGVz IGFuZCB0aGUgYWRkcmVzcyB0cmFuc2xhdGlvbiBoYXJkd2FyZS4KPiA+ICt3cml0ZXMgYW5kIHRo ZSBhZGRyZXNzIHRyYW5zbGF0aW9uIGhhcmR3YXJlLiBUaGVyZSBpcyBhIG1vZGUgYml0Cj4gPiB0 byBkZXRlcm1pbmUKPiA+ICtzZmVuY2Uudm1hIHdvdWxkIGJyb2FkY2FzdCBvbiBpbnRlcmNvbm5l Y3Qgb3Igbm90Lgo+ID4gIFxlbmR7Y29tbWVudGFyeX0KPiA+IAo+ID4gLVNGRU5DRS5WTUEgb3Jk ZXJzIG9ubHkgdGhlIGxvY2FsIGhhcnQncyBpbXBsaWNpdCByZWZlcmVuY2VzIHRvIHRoZQo+ID4g LW1lbW9yeS1tYW5hZ2VtZW50IGRhdGEgc3RydWN0dXJlcy4KPiA+ICtcYmVnaW57ZmlndXJlfVto IV0KPiA+ICt7XGZvb3Rub3Rlc2l6ZQo+ID4gK1xiZWdpbntjZW50ZXJ9Cj4gPiArXGJlZ2lue3Rh YnVsYXJ9e2NAe31FQHt9S30KPiA+ICtcaW5zdGJpdHszMX0gJgo+ID4gK1xpbnN0Yml0cmFuZ2V7 MzB9ezl9ICYKPiA+ICtcaW5zdGJpdHJhbmdlezh9ezB9IFxcCj4gPiArXGhsaW5lCj4gPiArXG11 bHRpY29sdW1uezF9e3xjfH17e1x0dCBNT0RFfX0gJgo+ID4gK1xtdWx0aWNvbHVtbnsxfXt8Y3x9 e3tcdHQgUFBOIChyb290IHBhZ2UgdGFibGUpfX0gJgo+ID4gK1xtdWx0aWNvbHVtbnsxfXt8Y3x9 e3tcdHQgQVNJRH19IFxcCj4gPiArXGhsaW5lCj4gPiArMSAmIDIyICYgOSBcXAo+ID4gK1xlbmR7 dGFidWxhcn0KPiA+ICtcZW5ke2NlbnRlcn0KPiA+ICt9Cj4gPiArXHZzcGFjZXstMC4xaW59Cj4g PiArXGNhcHRpb257UlYzMiBzZmVuY2Uudm1hIHJzMiBmb3JtYXQufQo+ID4gK1xsYWJlbHtydjMy c2F0cH0KPiA+ICtcZW5ke2ZpZ3VyZX0KPiA+ICsKPiA+ICtcYmVnaW57ZmlndXJlfVtoIV0KPiA+ ICt7XGZvb3Rub3Rlc2l6ZQo+ID4gK1xiZWdpbntjZW50ZXJ9Cj4gPiArXGJlZ2lue3RhYnVsYXJ9 e0B7fVNAe31UQHt9VX0KPiA+ICtcaW5zdGJpdHJhbmdlezYzfXs2MH0gJgo+ID4gK1xpbnN0Yml0 cmFuZ2V7NTl9ezE2fSAmCj4gPiArXGluc3RiaXRyYW5nZXsxNX17MH0gXFwKPiA+ICtcaGxpbmUK PiA+ICtcbXVsdGljb2x1bW57MX17fGN8fXt7XHR0IE1PREV9fSAmCj4gPiArXG11bHRpY29sdW1u ezF9e3xjfH17e1x0dCBQUE4gKHJvb3QgcGFnZSB0YWJsZSl9fSAmCj4gPiArXG11bHRpY29sdW1u ezF9e3xjfH17e1x0dCBBU0lEfX0gXFwKPiA+ICtcaGxpbmUKPiA+ICs0ICYgNDQgJiAxNiBcXAo+ ID4gK1xlbmR7dGFidWxhcn0KPiA+ICtcZW5ke2NlbnRlcn0KPiA+ICt9Cj4gPiArXHZzcGFjZXst MC4xaW59Cj4gPiArXGNhcHRpb257UlY2NCBzZmVuY2Uudm1hIHJzMiBmb3JtYXQsIGZvciBNT0RF IHZhbHVlcywgb25seSBoaWdoZXN0Cj4gPiBiaXQ6NjMgaXMKPiA+ICt2YWxpZCBhbmQgb3RoZXJz IGFyZSByZXNlcnZlZC59Cj4gPiArXGxhYmVse3J2NjRzYXRwfQo+ID4gK1xlbmR7ZmlndXJlfQo+ ID4gCj4gPiAgXGJlZ2lue2NvbW1lbnRhcnl9Cj4gPiAtQ29uc2VxdWVudGx5LCBvdGhlciBoYXJ0 cyBtdXN0IGJlIG5vdGlmaWVkIHNlcGFyYXRlbHkgd2hlbiB0aGUKPiA+ICtUaGUgbW9kZSdzIGhp Z2hlc3QgYml0IGNvdWxkIGNvbnRyb2wgc2ZlbmNlLnZtYSBiZWhhdmlvciB3aXRoCj4gPiAxOmJy b2FkY2FzdCBvciAwOmxvY2FsLgo+ID4gK0lmIG9ubHkgaGF2ZSBtb2RlOmxvY2FsLCBvdGhlciBo YXJ0cyBtdXN0IGJlIG5vdGlmaWVkIHNlcGFyYXRlbHkKPiA+IHdoZW4gdGhlCj4gPiAgbWVtb3J5 LW1hbmFnZW1lbnQgZGF0YSBzdHJ1Y3R1cmVzIGhhdmUgYmVlbiBtb2RpZmllZC4KPiA+ICBPbmUg YXBwcm9hY2ggaXMgdG8gdXNlIDEpCj4gPiAgYSBsb2NhbCBkYXRhIGZlbmNlIHRvIGVuc3VyZSBs b2NhbCB3cml0ZXMgYXJlIHZpc2libGUgZ2xvYmFsbHksCj4gPiB0aGVuCj4gPiBAQCAtOTI4LDgg KzEwMTIsMTcgQEAgbW9kaWZpZWQgZm9yIGEgc2luZ2xlIGFkZHJlc3MgbWFwcGluZyAoaS5lLiwK PiA+IG9uZSBwYWdlIG9yIHN1cGVycGFnZSksIHtcZW0gcnMxfQo+ID4gIGNhbiBzcGVjaWZ5IGEg dmlydHVhbCBhZGRyZXNzIHdpdGhpbiB0aGF0IG1hcHBpbmcgdG8gZWZmZWN0IGEKPiA+IHRyYW5z bGF0aW9uCj4gPiAgZmVuY2UgZm9yIHRoYXQgbWFwcGluZyBvbmx5LiAgRnVydGhlcm1vcmUsIGZv ciB0aGUgY29tbW9uIGNhc2UKPiA+IHRoYXQgdGhlCj4gPiAgdHJhbnNsYXRpb24gZGF0YSBzdHJ1 Y3R1cmVzIGhhdmUgb25seSBiZWVuIG1vZGlmaWVkIGZvciBhIHNpbmdsZQo+ID4gYWRkcmVzcy1z cGFjZQo+ID4gLWlkZW50aWZpZXIsIHtcZW0gcnMyfSBjYW4gc3BlY2lmeSB0aGUgYWRkcmVzcyBz cGFjZS4gIFRoZSBiZWhhdmlvcgo+ID4gb2YKPiA+IC1TRkVOQ0UuVk1BIGRlcGVuZHMgb24ge1xl bSByczF9IGFuZCB7XGVtIHJzMn0gYXMgZm9sbG93czoKPiA+ICtpZGVudGlmaWVyLCB7XGVtIHJz Mn0gY2FuIHNwZWNpZnkgdGhlIGFkZHJlc3Mgc3BhY2Ugd2l0aCB7XHR0Cj4gPiBzYXRwfSBmb3Jt YXQKPiA+ICt3aGljaCBpbmNsdWRlIGFzaWQgYW5kIHJvb3QgcGFnZSB0YWJsZSdzIFBQTiBpbmZv cm1hdGlvbi4KPiA+ICsKPiA+ICtcYmVnaW57Y29tbWVudGFyeX0KPiA+ICtXZSB1c2UgQVNJRCBh bmQgcm9vdCBwYWdlIHRhYmxlJ3MgUFBOIHRvIGRldGVybWluZSBhZGRyZXNzIHNwYWNlCj4gPiBh bmQgdGhlIGZvcm1hdAo+ID4gK3N0b3JlZCBpbiByczIgaXMgc2ltaWxhciB3aXRoIHtcdHQgc2F0 cH0gZGVzY3JpYmVkIGluCj4gPiBTZWN0aW9uflxyZWZ7c2VjOnNhdHB9Lgo+ID4gK0FTSUQgYXJl IHVzZWQgYnkgbG9jYWwgaGFydHMgYW5kIHJvb3QgcGFnZSB0YWJsZSdzIFBQTiBvZiB0aGUgYXNp ZAo+ID4gYXJlIHVzZWQgYnkKPiA+ICtvdGhlciBkaWZmZXJlbnQgVExCIHN5c3RlbXMsIGVnOiBJ T01NVS4KPiA+ICtcZW5ke2NvbW1lbnRhcnl9Cj4gPiArCj4gPiArVGhlIGJlaGF2aW9yIG9mIFNG RU5DRS5WTUEgZGVwZW5kcyBvbiB7XGVtIHJzMX0gYW5kIHtcZW0gcnMyfSBhcwo+ID4gZm9sbG93 czoKPiA+IAo+ID4gIFxiZWdpbntpdGVtaXplfQo+ID4gIFxpdGVtIElmIHtcZW0gcnMxfT17XHR0 IHgwfSBhbmQge1xlbSByczJ9PXtcdHQgeDB9LCB0aGUgZmVuY2UKPiA+IG9yZGVycyBhbGwKPiA+ IEBAIC05MzksMjMgKzEwMzIsMTggQEAgU0ZFTkNFLlZNQSBkZXBlbmRzIG9uIHtcZW0gcnMxfSBh bmQge1xlbQo+ID4gcnMyfSBhcyBmb2xsb3dzOgo+ID4gICAgICAgIGFsbCByZWFkcyBhbmQgd3Jp dGVzIG1hZGUgdG8gYW55IGxldmVsIG9mIHRoZSBwYWdlIHRhYmxlcywKPiA+IGJ1dCBvbmx5Cj4g PiAgICAgICAgZm9yIHRoZSBhZGRyZXNzIHNwYWNlIGlkZW50aWZpZWQgYnkgaW50ZWdlciByZWdp c3RlciB7XGVtCj4gPiByczJ9Lgo+ID4gICAgICAgIEFjY2Vzc2VzIHRvIHtcZW0gZ2xvYmFsfSBt YXBwaW5ncyAoc2VlCj4gPiBTZWN0aW9uflxyZWZ7c2VjOnRyYW5zbGF0aW9ufSkKPiA+IC0gICAg ICBhcmUgbm90IG9yZGVyZWQuCj4gPiArICAgICAgYXJlIG5vdCBvcmRlcmVkLiBUaGUgbW9kZSBm aWVsZCBpbiByczIgaXMgZGV0ZXJtaW5lCj4gPiBicm9hZGNhc3Qgb3IgbG9jYWwuCj4gPiAgXGl0 ZW0gSWYge1xlbSByczF9JFxuZXEke1x0dCB4MH0gYW5kIHtcZW0gcnMyfT17XHR0IHgwfSwgdGhl IGZlbmNlCj4gPiBvcmRlcnMKPiA+ICAgICAgICBvbmx5IHJlYWRzIGFuZCB3cml0ZXMgbWFkZSB0 byB0aGUgbGVhZiBwYWdlIHRhYmxlIGVudHJ5Cj4gPiBjb3JyZXNwb25kaW5nCj4gPiAgICAgICAg dG8gdGhlIHZpcnR1YWwgYWRkcmVzcyBpbiB7XGVtIHJzMX0sIGZvciBhbGwgYWRkcmVzcyBzcGFj ZXMuCj4gPiAgXGl0ZW0gSWYge1xlbSByczF9JFxuZXEke1x0dCB4MH0gYW5kIHtcZW0gcnMyfSRc bmVxJHtcdHQgeDB9LCB0aGUKPiA+IGZlbmNlCj4gPiAgICAgICAgb3JkZXJzIG9ubHkgcmVhZHMg YW5kIHdyaXRlcyBtYWRlIHRvIHRoZSBsZWFmIHBhZ2UgdGFibGUKPiA+IGVudHJ5Cj4gPiAgICAg ICAgY29ycmVzcG9uZGluZyB0byB0aGUgdmlydHVhbCBhZGRyZXNzIGluIHtcZW0gcnMxfSwgZm9y IHRoZQo+ID4gYWRkcmVzcwo+ID4gLSAgICAgIHNwYWNlIGlkZW50aWZpZWQgYnkgaW50ZWdlciBy ZWdpc3RlciB7XGVtIHJzMn0uCj4gPiArICAgICAgc3BhY2UgaWRlbnRpZmllZCBieSBpbnRlZ2Vy IHJlZ2lzdGVyIHtcZW0gcnMyfS4gVGhlIG1vZGUKPiA+IGZpZWxkIGluIHJzMgo+ID4gKyAgICAg IGlzIGRldGVybWluZSBicm9hZGNhc3Qgb3IgbG9jYWwuCj4gPiAgICAgICAgQWNjZXNzZXMgdG8g Z2xvYmFsIG1hcHBpbmdzIGFyZSBub3Qgb3JkZXJlZC4KPiA+ICBcZW5ke2l0ZW1pemV9Cj4gPiAK PiA+IC1XaGVuIHtcZW0gcnMyfSRcbmVxJHtcdHQgeDB9LCBiaXRzIFNYTEVOLTE6QVNJRE1BWCBv ZiB0aGUgdmFsdWUKPiA+IGhlbGQgaW4ge1xlbQo+ID4gLXJzMn0gYXJlIHJlc2VydmVkIGZvciBm dXR1cmUgdXNlIGFuZCBzaG91bGQgYmUgemVyb2VkIGJ5IHNvZnR3YXJlCj4gPiBhbmQgaWdub3Jl ZAo+ID4gLWJ5IGN1cnJlbnQgaW1wbGVtZW50YXRpb25zLiAgRnVydGhlcm1vcmUsIGlmIEFTSURM RU5+JDwkfkFTSURNQVgsCj4gPiB0aGUKPiA+IC1pbXBsZW1lbnRhdGlvbiBzaGFsbCBpZ25vcmUg Yml0cyBBU0lETUFYLTE6QVNJRExFTiBvZiB0aGUgdmFsdWUKPiA+IGhlbGQgaW4ge1xlbQo+ID4g LXJzMn0uCj4gPiAtCj4gPiAgXGJlZ2lue2NvbW1lbnRhcnl9Cj4gPiAgU2ltcGxlciBpbXBsZW1l bnRhdGlvbnMgY2FuIGlnbm9yZSB0aGUgdmlydHVhbCBhZGRyZXNzIGluIHtcZW0KPiA+IHJzMX0g YW5kCj4gPiAgdGhlIEFTSUQgdmFsdWUgaW4ge1xlbSByczJ9IGFuZCBhbHdheXMgcGVyZm9ybSBh IGdsb2JhbCBmZW5jZS4KPiA+IEBAIC05OTQsNyArMTA4Miw3IEBAIGNhbiBleGVjdXRlIHRoZSBz YW1lIFNGRU5DRS5WTUEgaW5zdHJ1Y3Rpb24KPiA+IHdoaWxlIGEgZGlmZmVyZW50IEFTSUQgaXMg bG9hZGVkCj4gPiAgaW50byB7XHR0IHNhdHB9LCBwcm92aWRlZCB0aGUgbmV4dCB0aW1lIHtcdHQg c2F0cH0gaXMgbG9hZGVkIHdpdGgKPiA+IHRoZSByZWN5Y2xlZAo+ID4gIEFTSUQsIGl0IGlzIHNp bXVsdGFuZW91c2x5IGxvYWRlZCB3aXRoIHRoZSBuZXcgcGFnZSB0YWJsZS4KPiA+IAo+ID4gLVxp dGVtIElmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBwcm92aWRlIEFTSURzLCBvciBzb2Z0 d2FyZQo+ID4gY2hvb3NlcyB0bwo+ID4gK1xpdGVtIElmIHRoZSBpbXBsZW1lbnRhdGlvbiBkb2Vz IG5vdCBwcm92aWRlIEFTSURzIGFuZCBQUE5zLCBvcgo+ID4gc29mdHdhcmUgY2hvb3NlcyB0bwo+ ID4gIGFsd2F5cyB1c2UgQVNJRCAwLCB0aGVuIGFmdGVyIGV2ZXJ5IHtcdHQgc2F0cH0gd3JpdGUs IHNvZnR3YXJlCj4gPiBzaG91bGQgZXhlY3V0ZQo+ID4gIFNGRU5DRS5WTUEgd2l0aCB7XGVtIHJz MX09e1x0dCB4MH0uICBJbiB0aGUgY29tbW9uIGNhc2UgdGhhdCBubwo+ID4gZ2xvYmFsCj4gPiAg dHJhbnNsYXRpb25zIGhhdmUgYmVlbiBtb2RpZmllZCwge1xlbSByczJ9IHNob3VsZCBiZSBzZXQg dG8gYQo+ID4gcmVnaXN0ZXIgb3RoZXIgdGhhbgo+ID4gQEAgLTEwMDMsMTMgKzEwOTEsMTQgQEAg bm90IGZsdXNoZWQuCj4gPiAKPiA+ICBcaXRlbSBJZiBzb2Z0d2FyZSBtb2RpZmllcyBhIG5vbi1s ZWFmIFBURSwgaXQgc2hvdWxkIGV4ZWN1dGUKPiA+IFNGRU5DRS5WTUEgd2l0aAo+ID4gIHtcZW0g cnMxfT17XHR0IHgwfS4gIElmIGFueSBQVEUgYWxvbmcgdGhlIHRyYXZlcnNhbCBwYXRoIGhhZCBp dHMgRwo+ID4gYml0IHNldCwKPiA+IC17XGVtIHJzMn0gbXVzdCBiZSB7XHR0IHgwfTsgb3RoZXJ3 aXNlLCB7XGVtIHJzMn0gc2hvdWxkIGJlIHNldCB0bwo+ID4gdGhlIEFTSUQgZm9yCj4gPiAtd2hp Y2ggdGhlIHRyYW5zbGF0aW9uIGlzIGJlaW5nIG1vZGlmaWVkLgo+ID4gK3tcZW0gcnMyfSBtdXN0 IGJlIHtcdHQgeDB9OyBvdGhlcndpc2UsIHtcZW0gcnMyfSBzaG91bGQgYmUgc2V0IHRvCj4gPiB0 aGUgQVNJRCBhbmQKPiA+ICtyb290IHBhZ2UgdGFibGUncyBQUE4gZm9yIHdoaWNoIHRoZSB0cmFu c2xhdGlvbiBpcyBiZWluZyBtb2RpZmllZC4KPiA+IAo+ID4gIFxpdGVtIElmIHNvZnR3YXJlIG1v ZGlmaWVzIGEgbGVhZiBQVEUsIGl0IHNob3VsZCBleGVjdXRlCj4gPiBTRkVOQ0UuVk1BIHdpdGgg e1xlbQo+ID4gIHJzMX0gc2V0IHRvIGEgdmlydHVhbCBhZGRyZXNzIHdpdGhpbiB0aGUgcGFnZS4g IElmIGFueSBQVEUgYWxvbmcKPiA+IHRoZSB0cmF2ZXJzYWwKPiA+ICBwYXRoIGhhZCBpdHMgRyBi aXQgc2V0LCB7XGVtIHJzMn0gbXVzdCBiZSB7XHR0IHgwfTsgb3RoZXJ3aXNlLAo+ID4ge1xlbSBy czJ9Cj4gPiAtc2hvdWxkIGJlIHNldCB0byB0aGUgQVNJRCBmb3Igd2hpY2ggdGhlIHRyYW5zbGF0 aW9uIGlzIGJlaW5nCj4gPiBtb2RpZmllZC4KPiA+ICtzaG91bGQgYmUgc2V0IHRvIHRoZSBBU0lE IGFuZCByb290IHBhZ2UgdGFibGUncyBQUE4gZm9yIHdoaWNoIHRoZQo+ID4gdHJhbnNsYXRpb24K PiA+ICtpcyBiZWluZyBtb2RpZmllZC4KPiA+IAo+ID4gIFxpdGVtIEZvciB0aGUgc3BlY2lhbCBj YXNlcyBvZiBpbmNyZWFzaW5nIHRoZSBwZXJtaXNzaW9ucyBvbiBhCj4gPiBsZWFmIFBURSBhbmQK PiA+ICBjaGFuZ2luZyBhbiBpbnZhbGlkIFBURSB0byBhIHZhbGlkIGxlYWYsIHNvZnR3YXJlIG1h eSBjaG9vc2UgdG8KPiA+IGV4ZWN1dGUKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0t a2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==