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=-20.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 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 0DF16C47082 for ; Tue, 8 Jun 2021 12:41:04 +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 C4BC36135A for ; Tue, 8 Jun 2021 12:41:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C4BC36135A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+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.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To:MIME-Version: Date:Message-ID:From:Cc:To:Subject:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5LIoDh1ZtTLv1KlIYeuuVwohHe5il8fbBFNYafPRD38=; b=fw63mSxM2uJ5KE RV6cGb3THoGesQ4IvgVIBg/I03eCkNwT5pLcZddomhfSYKmQfvCo7wp7vlebQJ4RY7DgZWX8tUecj DrHLizZWg4pwjJiZieLv6YYzHPMSG1FgZ9GcRgsSoNabL7y96qEuoIofGI2N3ktLuCSNivHj8WXaI 0/HAIfZRGfap8hyCSbjA55n6q2ew7Sf2NLLzO7SSWI6zCRsBySTp0r+/Whq28W3pCYKkvjeZ7VQlN BwsNtBVMnCTyY0tmpKJkVYFWyqUDLJpucb5uBlhQ29hojIR4c3JOg1GBgs+5PMFT9fC0y30NfU+IJ SU8Fnomhz3CTiqp8i23w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqazZ-008P0n-6D; Tue, 08 Jun 2021 12:38:03 +0000 Received: from mailout1.w1.samsung.com ([210.118.77.11]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lqajW-008J5x-U1 for linux-arm-kernel@lists.infradead.org; Tue, 08 Jun 2021 12:21:32 +0000 Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20210608122122euoutp0191612c0e5145cf959418c5c34e9857cb~GmsP_KbVH3071230712euoutp01p for ; Tue, 8 Jun 2021 12:21:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20210608122122euoutp0191612c0e5145cf959418c5c34e9857cb~GmsP_KbVH3071230712euoutp01p DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1623154882; bh=7uK2Slx2bahSK7Ed33s7iWxPR0ZJtk0/YgioSjrYtY4=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=oYgLxpHzDuIrSTVM/st3h0d9i1/cjXtO7Erd0RElcW263q9R0TiXZ2ziFAdu/VFsR WF/Lv9mjvNHQmVg8yCTdawub93tANE3ybL44oZQCB5G3+pm6RhkexnAa2yDitjldvU BnNb9J72Uy09fdxAcc72xbfECAp2s9Ib+BlDsojM= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20210608122121eucas1p246b408005c28c086f63b64c218448ae4~GmsPktNxF2580925809eucas1p2a; Tue, 8 Jun 2021 12:21:21 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 99.B9.09439.1C06FB06; Tue, 8 Jun 2021 13:21:21 +0100 (BST) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20210608122121eucas1p1ef04746d51d301220202eb17a1044002~GmsO-jZ0S0126101261eucas1p1H; Tue, 8 Jun 2021 12:21:21 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20210608122121eusmtrp1bda0f43111deccc4d9362cb395edbdc6~GmsO_yw770508805088eusmtrp1o; Tue, 8 Jun 2021 12:21:21 +0000 (GMT) X-AuditID: cbfec7f5-c1bff700000024df-c9-60bf60c17fbd Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 4F.DF.08705.1C06FB06; Tue, 8 Jun 2021 13:21:21 +0100 (BST) Received: from [106.210.134.192] (unknown [106.210.134.192]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20210608122120eusmtip268f45270d843e50cab6fce47c9a491d3~GmsOUiaRp1092110921eusmtip2n; Tue, 8 Jun 2021 12:21:20 +0000 (GMT) Subject: Re: [PATCH v2 6/8] arm64: Import latest memcpy()/memmove() implementation To: Robin Murphy , will@kernel.org, catalin.marinas@arm.com, Neil Armstrong , Kevin Hilman Cc: linux-arm-kernel@lists.infradead.org, mark.rutland@arm.com, linux-amlogic@lists.infradead.org, Bartlomiej Zolnierkiewicz From: Marek Szyprowski Message-ID: <7624e09f-cd52-9430-ab18-1d816c8d2898@samsung.com> Date: Tue, 8 Jun 2021 14:21:19 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 In-Reply-To: <00519b97-7e09-49ed-817e-de234b0c1cd4@arm.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBKsWRmVeSWpSXmKPExsWy7djP87oHE/YnGMx8pWexccZ6Vov3y3oY LX62b2GyWDCb22LT42usFkuvX2SyONQXbXHwwxNWi5Y7pg6cHmvmrWH0eH+jld1j06pONo/N S+o9+rasYgxgjeKySUnNySxLLdK3S+DK+PSul6Xgzg7GirVXprA1MPbOZOxi5OSQEDCRuPD1 CVMXIxeHkMAKRok/S2+wQjhfGCX6pzSyQTifGSWONv9ggWnpuPMXKrGcUaL7wURGCOcjo8SM 6XdZQaqEBUIkbnxZCTZYRGAJo8S0j4/BqpgFZgNtufeICaSKTcBQouttFxuIzStgJ7F5yiV2 EJtFQEWi4do7IJuDQ1QgWeL3Rl2IEkGJkzOfgJ3BKWAtcf5GP5jNLCAv0bx1NjOELS5x68l8 JohTX3BIHDmvDGG7SMw58pkVwhaWeHV8CzuELSNxenIPC8htEgLNjBIPz61lh3B6GCUuN82A hpO1xJ1zv9hADmIW0JRYv0sfIuwocXHvVWaQsIQAn8SNt4IQN/BJTNo2HSrMK9HRJgRRrSYx 6/g6uLUHL1xinsCoNAvJZ7OQfDMLyTezEPYuYGRZxSieWlqcm55abJyXWq5XnJhbXJqXrpec n7uJEZiYTv87/nUH44pXH/UOMTJxMB5ilOBgVhLhLTPclyDEm5JYWZValB9fVJqTWnyIUZqD RUmcd9fWNfFCAumJJanZqakFqUUwWSYOTqkGpm0VNr+z0uJaPga7NgcpxxzL55LX712i7PV1 QqWDic1WW42Wq1NkPANjLcoq8u680ajcUbKU+0ryQq9j97dkT/hxrO60Yr7ahofT/mvfydUM UWiYyyK6nut+89drzQFbz2qx3Y+Y+CW6+oac+i21bWGC6Tmfnvozvww34K3rjPs/dW/Xg2kX k44LPT1k4f11refhBbEK/xqvnmHOv7nraGB74VJHn9dn1CIPRa82MbWtMWHb2xpr8CvjxlqH APNq21NBKWxWUoFa3WKR6yWa5JuOM35k4lC5/qXkcrHizUjPA4tYLjOIGN0xnzZfuW13XvD9 uN1MFy79qnJN/3gm9JW92fIoI4X8VFeVzUuVWIozEg21mIuKEwHRTvqKuwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrDIsWRmVeSWpSXmKPExsVy+t/xe7oHE/YnGDycwGGxccZ6Vov3y3oY LX62b2GyWDCb22LT42usFkuvX2SyONQXbXHwwxNWi5Y7pg6cHmvmrWH0eH+jld1j06pONo/N S+o9+rasYgxgjdKzKcovLUlVyMgvLrFVija0MNIztLTQMzKx1DM0No+1MjJV0rezSUnNySxL LdK3S9DL+PSul6Xgzg7GirVXprA1MPbOZOxi5OSQEDCR6Ljzl62LkYtDSGApo8TPphmsEAkZ iZPTGqBsYYk/17qgit4zStw6/RssISwQInHjy0omkISIwBJGiWMzP7OAOMwCsxkl7v0+wgrR cohJYueS32wgLWwChhJdb7vAbF4BO4nNUy6xg9gsAioSDdfegdmiAskSG9r/s0LUCEqcnPmE BcTmFLCWOH+jH8xmFjCTmLf5ITOELS/RvHU2lC0ucevJfKYJjEKzkLTPQtIyC0nLLCQtCxhZ VjGKpJYW56bnFhvqFSfmFpfmpesl5+duYgRG47ZjPzfvYJz36qPeIUYmDsZDjBIczEoivGWG +xKEeFMSK6tSi/Lji0pzUosPMZoC/TORWUo0OR+YDvJK4g3NDEwNTcwsDUwtzYyVxHm3zl0T LySQnliSmp2aWpBaBNPHxMEp1cCkymfQy+rs/cuv7FqA20HGl5e6ol123HucUjzH8Pvumk/n 1/2ZdpYvOLi1LpRPXnHJihtP96kfPe98L/OxQrvjtBCBa1bX3tW9l1t1Q84jT7VzTUr7/2Xb pigJfdKYsfnud8XUY1OnivTdDk7aWMhuJ1lftTRrs/ea77/nHw1X8n1zaOvWze5Whn9ZM/03 9BQHH7vtyj69fEHHcvblAVNdPoZeiN/TvSDqdHCTfBHju3fBK93ucm89WhG98ef6fZKLzk4M /5P76VSf9KN3DiGacjeKF3WkrmY+WXpQ4O+zprNhF361Tt+tUlyxVtz0h+kJzdemPT9yfPb2 n8x1dJ1+tl3vncecU7/nmyza0XbpkBJLcUaioRZzUXEiAENAwT5PAwAA X-CMS-MailID: 20210608122121eucas1p1ef04746d51d301220202eb17a1044002 X-Msg-Generator: CA X-RootMTR: 20210608111534eucas1p2964e360336878b9e7a791c0fbeb12940 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20210608111534eucas1p2964e360336878b9e7a791c0fbeb12940 References: <3c953af43506581b2422f61952261e76949ba711.1622128527.git.robin.murphy@arm.com> <00519b97-7e09-49ed-817e-de234b0c1cd4@arm.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210608_052127_430560_BBC8BFD2 X-CRM114-Status: GOOD ( 28.12 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org KyBLZXZpbgoKT24gMDguMDYuMjAyMSAxMzozNywgUm9iaW4gTXVycGh5IHdyb3RlOgo+IEhpIE1h cmVrLAo+Cj4gT24gMjAyMS0wNi0wOCAxMjoxNSwgTWFyZWsgU3p5cHJvd3NraSB3cm90ZToKPj4g SGkgUm9iaW4sCj4+Cj4+IE9uIDI3LjA1LjIwMjEgMTc6MzQsIFJvYmluIE11cnBoeSB3cm90ZToK Pj4+IEltcG9ydCB0aGUgbGF0ZXN0IGltcGxlbWVudGF0aW9uIG9mIG1lbWNweSgpLCBiYXNlZCBv biB0aGUKPj4+IHVwc3RyZWFtIGNvZGUgb2Ygc3RyaW5nL2FhcmNoNjQvbWVtY3B5LlMgYXQgY29t bWl0IGFmZDYyNDQgZnJvbQo+Pj4gaHR0cHM6Ly9wcm90ZWN0Mi5maXJlZXllLmNvbS92MS91cmw/ az0wZTI1ZDYzMC01MWJlZWYyOC0wZTI0NWQ3Zi0wY2M0N2EzMTRlOWEtYjQxZmRiMmQ0ZDA2ZmY3 NSZxPTEmZT1mY2ZhZjcxZC1mMDFhLTRiYzQtOGUxNi04YWU4NmUwYzAxMTYmdT1odHRwcyUzQSUy RiUyRmdpdGh1Yi5jb20lMkZBUk0tc29mdHdhcmUlMkZvcHRpbWl6ZWQtcm91dGluZXMsIAo+Pj4g YW5kIHN1YnN1bWluZwo+Pj4gbWVtbW92ZSgpIGluIHRoZSBwcm9jZXNzLgo+Pj4KPj4+IE5vdGUg dGhhdCBmb3Igc2ltcGxpY2l0eSBBcm0gaGF2ZSBjaG9zZW4gdG8gY29udHJpYnV0ZSB0aGlzIGNv ZGUKPj4+IHRvIExpbnV4IHVuZGVyIEdQTHYyIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBNSVQg bGljZW5zZS4KPj4+Cj4+PiBOb3RlIGFsc28gdGhhdCB0aGUgbmVlZHMgb2YgdGhlIHVzZXJjb3B5 IHJvdXRpbmVzIHZzLiByZWd1bGFyIG1lbWNweSgpCj4+PiBoYXZlIG5vdyBkaXZlcmdlZCBzbyBm YXIgdGhhdCB3ZSBhYmFuZG9uIHRoZSBzaGFyZWQgdGVtcGxhdGUgaWRlYQo+Pj4gYW5kIHRoZSBk YW1hZ2Ugd2hpY2ggdGhhdCBpbmN1cnJlZCB0byB0aGUgdHVuaW5nIG9mIExEUC9TVFAgbG9vcHMu Cj4+PiBXZSdsbCBiZSBiYWNrIHRvIHRhY2tsZSB0aG9zZSByb3V0aW5lcyBzZXBhcmF0ZWx5IGlu IGZ1dHVyZS4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2JpbiBNdXJwaHkgPHJvYmluLm11cnBo eUBhcm0uY29tPgo+Pgo+PiBUaGlzIHBhdGNoIGxhbmRlZCByZWNlbnRseSBpbiBsaW51eC1uZXh0 IGFzIGNvbW1pdCAyODUxMzMwNDBlNmMgKCJhcm02NDoKPj4gSW1wb3J0IGxhdGVzdCBtZW1jcHko KS9tZW1tb3ZlKCkgaW1wbGVtZW50YXRpb24iKS4gU2FkbHkgaXQgY2F1c2VzCj4+IHNlcmlvdXMg aXNzdWVzIG9uIEtoYWRhcyBWSU0zIGJvYXJkLiBSZXZlcnRpbmcgaXQgb24gdG9wIG9mIGxpbnV4 Cj4+IG5leHQtMjAyMTA2MDcgKHRvZ2V0aGVyIHdpdGggNmI4ZjY0ODk1OWU1IGFuZCByZXNvbHZp bmcgdGhlIGNvbmZsaWN0IGluCj4+IHRoZSBNYWtlZmlsZSkgZml4ZXMgdGhlIGlzc3VlLiBIZXJl IGlzIHRoZSBrZXJuZWwgbG9nOgo+Pgo+PiBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBwYWdpbmcg cmVxdWVzdCBhdCB2aXJ0dWFsIGFkZHJlc3MgCj4+IGZmZmY4MDAwMTM2YmQyMDQKPj4gTWVtIGFi b3J0IGluZm86Cj4+IMKgIMKgIEVTUiA9IDB4OTYwMDAwNjEKPj4gwqAgwqAgRUMgPSAweDI1OiBE QUJUIChjdXJyZW50IEVMKSwgSUwgPSAzMiBiaXRzCj4+IMKgIMKgIFNFVCA9IDAsIEZuViA9IDAK Pj4gwqAgwqAgRUEgPSAwLCBTMVBUVyA9IDAKPj4gRGF0YSBhYm9ydCBpbmZvOgo+PiDCoCDCoCBJ U1YgPSAwLCBJU1MgPSAweDAwMDAwMDYxCj4KPiBUaGF0J3MgYW4gYWxpZ25tZW50IGZhdWx0LCB3 aGljaCBpbXBsaWVzIHdlJ3JlIGFjY2Vzc2luZyBzb21ldGhpbmcgCj4gd2hpY2ggaXNuJ3Qgbm9y bWFsIG1lbW9yeS4KPgo+PiDCoCDCoCBDTSA9IDAsIFduUiA9IDEKPj4gc3dhcHBlciBwZ3RhYmxl OiA0ayBwYWdlcywgNDgtYml0IFZBcywgcGdkcD0wMDAwMDAwMDA5ZGE2MDAwCj4+IFtmZmZmODAw MDEzNmJkMjA0XSBwZ2Q9MTAwMDAwMDBmNDgwNjAwMywgcDRkPTEwMDAwMDAwZjQ4MDYwMDMsCj4+ IHB1ZD0xMDAwMDAwMGY0ODA1MDAzLCBwbWQ9MTAwMDAwMDAwMDM2NTAwMywgcHRlPTAwNjgwMDAw ZmZlMDM3MTMKPj4gSW50ZXJuYWwgZXJyb3I6IE9vcHM6IDk2MDAwMDYxIFsjMV0gUFJFRU1QVCBT TVAKPj4gTW9kdWxlcyBsaW5rZWQgaW46IGJyY21mbWFjIGJyY211dGlsIGNmZzgwMjExIGR3X2hk bWlfaTJzX2F1ZGlvCj4+IG1lc29uX2d4bCBoY2lfdWFydCBidHFjYSBidGJjbSBibHVldG9vdGgg cGFuZnJvc3QgZWNkaF9nZW5lcmljIGVjYwo+PiBzbmRfc29jX21lc29uX2F4Z19zb3VuZF9jYXJk IGNyY3QxMGRpZl9jZSBzbmRfc29jX21lc29uX2NhcmRfdXRpbHMKPj4gcmZraWxsIHJ0Y19oeW04 NTYzIGdwdV9zY2hlZCBkd21hY19nZW5lcmljIHJjX2toYWRhcyBtZXNvbl9neGJiX3dkdAo+PiBt ZXNvbl9pciBwd21fbWVzb24gc25kX3NvY19tZXNvbl9heGdfdGRtaW4gc25kX3NvY19tZXNvbl9n MTJhX3RvaGRtaXR4Cj4+IHJ0Y19tZXNvbl92cnRjIHNuZF9zb2NfbWVzb25fYXhnX3RkbW91dCBz bmRfc29jX21lc29uX2F4Z19mcmRkcgo+PiByZXNldF9tZXNvbl9hdWRpb19hcmIgc25kX3NvY19t ZXNvbl9jb2RlY19nbHVlIGF4Z19hdWRpbyBtZXNvbl9ybmcKPj4gc2Nsa19kaXYgZHdtYWNfbWVz b244YiBzbmRfc29jX21lc29uX2F4Z190b2RkciBtZGlvX211eF9tZXNvbl9nMTJhCj4+IGNsa19w aGFzZSBzdG1tYWNfcGxhdGZvcm0gcm5nX2NvcmUgc25kX3NvY19tZXNvbl9heGdfZmlmbyBtZXNv bl9kd19oZG1pCj4+IHN0bW1hYyBtZXNvbl9kcm0gbWVzb25fY2FudmFzIGR3X2hkbWkgcGNzX3hw Y3MgZGlzcGxheV9jb25uZWN0b3IKPj4gc25kX3NvY19tZXNvbl9heGdfdGRtX2ludGVyZmFjZSBu dm1lbV9tZXNvbl9lZnVzZSBhZGNfa2V5cwo+PiBzbmRfc29jX21lc29uX2F4Z190ZG1fZm9ybWF0 dGVyCj4+IENQVTogNCBQSUQ6IDEzNSBDb21tOiBrd29ya2VyLzQ6MyBOb3QgdGFpbnRlZCA1LjEz LjAtcmM1LW5leHQtMjAyMTA2MDcKPj4gIzEwNDQxCj4+IEhhcmR3YXJlIG5hbWU6IEtoYWRhcyBW SU0zIChEVCkKPj4gV29ya3F1ZXVlOiBldmVudHMgcmVxdWVzdF9maXJtd2FyZV93b3JrX2Z1bmMK Pj4gcHN0YXRlOiAyMDAwMDAwNSAobnpDdiBkYWlmIC1QQU4gLVVBTyAtVENPIEJUWVBFPS0tKQo+ PiBwYyA6IF9fbWVtY3B5KzB4MmMvMHgyNjAKPj4gbHIgOiBzZ19jb3B5X2J1ZmZlcisweDkwLzB4 MTE4Cj4+IC4uLgo+PiBDYWxsIHRyYWNlOgo+PiDCoCDCoF9fbWVtY3B5KzB4MmMvMHgyNjAKPj4g wqAgwqBzZ19jb3B5X3RvX2J1ZmZlcisweDE0LzB4MjAKPj4gwqAgwqBtZXNvbl9tbWNfc3RhcnRf Y21kKzB4ZjQvMHgyYzgKPj4gwqAgwqBtZXNvbl9tbWNfcmVxdWVzdCsweDRjLzB4YjgKPj4gwqAg wqBfX21tY19zdGFydF9yZXF1ZXN0KzB4YTQvMHgyYTgKPj4gwqAgwqBtbWNfc3RhcnRfcmVxdWVz dCsweDgwLzB4YTgKPj4gwqAgwqBtbWNfd2FpdF9mb3JfcmVxKzB4NjgvMHhkOAo+PiDCoCDCoG1t Y19pb19yd19leHRlbmRlZCsweDFkNC8weDJlMAo+PiDCoCDCoHNkaW9faW9fcndfZXh0X2hlbHBl cisweGIwLzB4MWU4Cj4+IMKgIMKgc2Rpb19tZW1jcHlfdG9pbysweDIwLzB4MjgKPj4gwqAgwqBi cmNtZl9zZGlvZF9za2J1ZmZfd3JpdGUuaXNyYS4xOCsweDJjLzB4NjggW2JyY21mbWFjXQo+PiDC oCDCoGJyY21mX3NkaW9kX3JhbXJ3KzB4ZTAvMHgyMzAgW2JyY21mbWFjXQo+PiDCoCDCoGJyY21m X3NkaW9fZmlybXdhcmVfY2FsbGJhY2srMHhhOC8weDdjOCBbYnJjbWZtYWNdCj4+IMKgIMKgYnJj bWZfZndfcmVxdWVzdF9kb25lKzB4N2MvMHgxMDAgW2JyY21mbWFjXQo+PiDCoCDCoHJlcXVlc3Rf ZmlybXdhcmVfd29ya19mdW5jKzB4NGMvMHhkOAo+PiDCoCDCoHByb2Nlc3Nfb25lX3dvcmsrMHgy YTgvMHg3MTgKPj4gwqAgwqB3b3JrZXJfdGhyZWFkKzB4NDgvMHg0NjAKPj4gwqAgwqBrdGhyZWFk KzB4MTJjLzB4MTYwCj4+IMKgIMKgcmV0X2Zyb21fZm9yaysweDEwLzB4MTgKPj4gQ29kZTogNTQw MDAwYzMgYTk0MDFjMjYgYTk3ZjM0OGMgYTkwMDFjMDYgKGE5M2YzNGFjKQo+PiAtLS1bIGVuZCB0 cmFjZSBiZTgzZmEyODNkYzgyNDE1IF0tLS0KPj4KPj4gSSBob3BlIHRoYXQgdGhlIGFib3ZlIGxv ZyBoZWxwcyBmaXhpbmcgdGhlIGlzc3VlLiBJSVJDIHRoZSBTREhDSSBkcml2ZXIKPj4gb24gVklN MyBib2FyZCB1c2VzIGludGVybmFsIFNSQU0gZm9yIHRyYW5zZmVycmluZyBkYXRhIChpbnN0ZWFk IG9mIERNQSksCj4+IHNvIHRoZSBpc3N1ZSBpcyBzb21laG93IHJlbGF0ZWQgdG8gdGhhdC4KPgo+ IERyaXZlcnMgc2hvdWxkbid0IGJlIHVzaW5nIG1lbWNweSgpIG9uIGlvbWVtIG1hcHBpbmdzLiBF dmVuIGlmIHRoZXkgCj4gaGFwcGVuIHRvIGhhdmUgZ290IGF3YXkgd2l0aCBpdCBzb21ldGltZXMg OykKPgo+IFRha2luZyBhIHF1aWNrIGxvb2sgYXQgdGhhdCBkcml2ZXIsCj4KPiDCoMKgwqDCoGhv c3QtPmJvdW5jZV9idWYgPSBob3N0LT5yZWdzICsgU0RfRU1NQ19TUkFNX0RBVEFfQlVGX09GRjsK Pgo+IGlzIGNvbXBsZXRlbHkgYm9ndXMsIGFzIFNwYXJzZSB3aWxsIHJlYWRpbHkgcG9pbnQgb3V0 Lgo+Cj4gUm9iaW4uCj4KPj4+IC0tLQo+Pj4gwqDCoCBhcmNoL2FybTY0L2xpYi9NYWtlZmlsZcKg IHzCoMKgIDIgKy0KPj4+IMKgwqAgYXJjaC9hcm02NC9saWIvbWVtY3B5LlPCoCB8IDI3MiAKPj4+ ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+Pj4gwqDCoCBhcmNoL2Fy bTY0L2xpYi9tZW1tb3ZlLlMgfCAxODkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiDC oMKgIDMgZmlsZXMgY2hhbmdlZCwgMjMwIGluc2VydGlvbnMoKyksIDIzMyBkZWxldGlvbnMoLSkK Pj4+IMKgwqAgZGVsZXRlIG1vZGUgMTAwNjQ0IGFyY2gvYXJtNjQvbGliL21lbW1vdmUuUwo+Pj4K Pj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2xpYi9NYWtlZmlsZSBiL2FyY2gvYXJtNjQvbGli L01ha2VmaWxlCj4+PiBpbmRleCBkMzFlMTE2OWQ5YjguLjAxYzU5NmFhNTM5YyAxMDA2NDQKPj4+ IC0tLSBhL2FyY2gvYXJtNjQvbGliL01ha2VmaWxlCj4+PiArKysgYi9hcmNoL2FybTY0L2xpYi9N YWtlZmlsZQo+Pj4gQEAgLTEsNyArMSw3IEBACj4+PiDCoMKgICMgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEdQTC0yLjAKPj4+IMKgwqAgbGliLXnCoMKgwqDCoMKgwqDCoCA6PSBjbGVhcl91c2Vy Lm8gZGVsYXkubyBjb3B5X2Zyb21fdXNlci5vwqDCoMKgwqDCoMKgwqAgXAo+Pj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY29weV90b191c2VyLm8gY29weV9pbl91c2VyLm8gY29weV9wYWdl Lm8gXAo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgIGNsZWFyX3BhZ2UubyBjc3VtLm8gbWVtY2hy Lm8gbWVtY3B5Lm8gbWVtbW92ZS5vIFwKPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCBjbGVhcl9w YWdlLm8gY3N1bS5vIG1lbWNoci5vIG1lbWNweS5vwqDCoMKgwqDCoMKgwqAgXAo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgbWVtc2V0Lm8gbWVtY21wLm8gc3RyY21wLm8gc3RybmNtcC5v IHN0cmxlbi5vIFwKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cm5sZW4ubyBzdHJj aHIubyBzdHJyY2hyLm8gdGlzaGlmdC5vCj4+PiDCoMKgIGRpZmYgLS1naXQgYS9hcmNoL2FybTY0 L2xpYi9tZW1jcHkuUyBiL2FyY2gvYXJtNjQvbGliL21lbWNweS5TCj4+PiBpbmRleCBkYzhkMmEy MTZhNmUuLjMxMDczYTgzMDRmYiAxMDA2NDQKPj4+IC0tLSBhL2FyY2gvYXJtNjQvbGliL21lbWNw eS5TCj4+PiArKysgYi9hcmNoL2FybTY0L2xpYi9tZW1jcHkuUwo+Pj4gQEAgLTEsNjYgKzEsMjUy IEBACj4+PiDCoMKgIC8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8K Pj4+IMKgwqAgLyoKPj4+IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQVJNIEx0ZC4KPj4+IC0gKiBD b3B5cmlnaHQgKEMpIDIwMTMgTGluYXJvLgo+Pj4gKyAqIENvcHlyaWdodCAoYykgMjAxMi0yMDIw LCBBcm0gTGltaXRlZC4KPj4+IMKgwqDCoCAqCj4+PiAtICogVGhpcyBjb2RlIGlzIGJhc2VkIG9u IGdsaWJjIGNvcnRleCBzdHJpbmdzIHdvcmsgb3JpZ2luYWxseSAKPj4+IGF1dGhvcmVkIGJ5IExp bmFybwo+Pj4gLSAqIGJlIGZvdW5kIEAKPj4+IC0gKgo+Pj4gLSAqIAo+Pj4gaHR0cDovL2JhemFh ci5sYXVuY2hwYWQubmV0L35saW5hcm8tdG9vbGNoYWluLWRldi9jb3J0ZXgtc3RyaW5ncy90cnVu ay8KPj4+IC0gKiBmaWxlcy9oZWFkOi9zcmMvYWFyY2g2NC8KPj4+ICsgKiBBZGFwdGVkIGZyb20g dGhlIG9yaWdpbmFsIGF0Ogo+Pj4gKyAqIAo+Pj4gaHR0cHM6Ly9wcm90ZWN0Mi5maXJlZXllLmNv bS92MS91cmw/az0zMDM2MGM2Yi02ZmFkMzU3My0zMDM3ODcyNC0wY2M0N2EzMTRlOWEtZWVlOTgx NzdjYzY0M2NhMiZxPTEmZT1mY2ZhZjcxZC1mMDFhLTRiYzQtOGUxNi04YWU4NmUwYzAxMTYmdT1o dHRwcyUzQSUyRiUyRmdpdGh1Yi5jb20lMkZBUk0tc29mdHdhcmUlMkZvcHRpbWl6ZWQtcm91dGlu ZXMlMkZibG9iJTJGbWFzdGVyJTJGc3RyaW5nJTJGYWFyY2g2NCUyRm1lbWNweS5TCj4+PiDCoMKg wqAgKi8KPj4+IMKgwqAgwqDCoCAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPgo+Pj4gwqDCoCAj aW5jbHVkZSA8YXNtL2Fzc2VtYmxlci5oPgo+Pj4gLSNpbmNsdWRlIDxhc20vY2FjaGUuaD4KPj4+ IMKgwqAgLS8qCj4+PiAtICogQ29weSBhIGJ1ZmZlciBmcm9tIHNyYyB0byBkZXN0IChhbGlnbm1l bnQgaGFuZGxlZCBieSB0aGUgaGFyZHdhcmUpCj4+PiArLyogQXNzdW1wdGlvbnM6Cj4+PiArICoK Pj4+ICsgKiBBUk12OC1hLCBBQXJjaDY0LCB1bmFsaWduZWQgYWNjZXNzZXMuCj4+PiDCoMKgwqAg Kgo+Pj4gLSAqIFBhcmFtZXRlcnM6Cj4+PiAtICrCoMKgwqAgeDAgLSBkZXN0Cj4+PiAtICrCoMKg wqAgeDEgLSBzcmMKPj4+IC0gKsKgwqDCoCB4MiAtIG4KPj4+IC0gKiBSZXR1cm5zOgo+Pj4gLSAq wqDCoMKgIHgwIC0gZGVzdAo+Pj4gwqDCoMKgICovCj4+PiAtwqDCoMKgIC5tYWNybyBsZHJiMSBy ZWcsIHB0ciwgdmFsCj4+PiAtwqDCoMKgIGxkcmLCoCBccmVnLCBbXHB0cl0sIFx2YWwKPj4+IC3C oMKgwqAgLmVuZG0KPj4+IMKgwqAgLcKgwqDCoCAubWFjcm8gc3RyYjEgcmVnLCBwdHIsIHZhbAo+ Pj4gLcKgwqDCoCBzdHJiIFxyZWcsIFtccHRyXSwgXHZhbAo+Pj4gLcKgwqDCoCAuZW5kbQo+Pj4g KyNkZWZpbmUgTChsYWJlbCkgLkwgIyMgbGFiZWwKPj4+IMKgwqAgLcKgwqDCoCAubWFjcm8gbGRy aDEgcmVnLCBwdHIsIHZhbAo+Pj4gLcKgwqDCoCBsZHJowqAgXHJlZywgW1xwdHJdLCBcdmFsCj4+ PiAtwqDCoMKgIC5lbmRtCj4+PiArI2RlZmluZSBkc3RpbsKgwqDCoCB4MAo+Pj4gKyNkZWZpbmUg c3JjwqDCoMKgIHgxCj4+PiArI2RlZmluZSBjb3VudMKgwqDCoCB4Mgo+Pj4gKyNkZWZpbmUgZHN0 wqDCoMKgIHgzCj4+PiArI2RlZmluZSBzcmNlbmTCoMKgwqAgeDQKPj4+ICsjZGVmaW5lIGRzdGVu ZMKgwqDCoCB4NQo+Pj4gKyNkZWZpbmUgQV9swqDCoMKgIHg2Cj4+PiArI2RlZmluZSBBX2x3wqDC oMKgIHc2Cj4+PiArI2RlZmluZSBBX2jCoMKgwqAgeDcKPj4+ICsjZGVmaW5lIEJfbMKgwqDCoCB4 OAo+Pj4gKyNkZWZpbmUgQl9sd8KgwqDCoCB3OAo+Pj4gKyNkZWZpbmUgQl9owqDCoMKgIHg5Cj4+ PiArI2RlZmluZSBDX2zCoMKgwqAgeDEwCj4+PiArI2RlZmluZSBDX2x3wqDCoMKgIHcxMAo+Pj4g KyNkZWZpbmUgQ19owqDCoMKgIHgxMQo+Pj4gKyNkZWZpbmUgRF9swqDCoMKgIHgxMgo+Pj4gKyNk ZWZpbmUgRF9owqDCoMKgIHgxMwo+Pj4gKyNkZWZpbmUgRV9swqDCoMKgIHgxNAo+Pj4gKyNkZWZp bmUgRV9owqDCoMKgIHgxNQo+Pj4gKyNkZWZpbmUgRl9swqDCoMKgIHgxNgo+Pj4gKyNkZWZpbmUg Rl9owqDCoMKgIHgxNwo+Pj4gKyNkZWZpbmUgR19swqDCoMKgIGNvdW50Cj4+PiArI2RlZmluZSBH X2jCoMKgwqAgZHN0Cj4+PiArI2RlZmluZSBIX2zCoMKgwqAgc3JjCj4+PiArI2RlZmluZSBIX2jC oMKgwqAgc3JjZW5kCj4+PiArI2RlZmluZSB0bXAxwqDCoMKgIHgxNAo+Pj4gwqDCoCAtwqDCoMKg IC5tYWNybyBzdHJoMSByZWcsIHB0ciwgdmFsCj4+PiAtwqDCoMKgIHN0cmggXHJlZywgW1xwdHJd LCBcdmFsCj4+PiAtwqDCoMKgIC5lbmRtCj4+PiArLyogVGhpcyBpbXBsZW1lbnRhdGlvbiBoYW5k bGVzIG92ZXJsYXBzIGFuZCBzdXBwb3J0cyBib3RoIG1lbWNweSAKPj4+IGFuZCBtZW1tb3ZlCj4+ PiArwqDCoCBmcm9tIGEgc2luZ2xlIGVudHJ5IHBvaW50LsKgIEl0IHVzZXMgdW5hbGlnbmVkIGFj Y2Vzc2VzIGFuZCAKPj4+IGJyYW5jaGxlc3MKPj4+ICvCoMKgIHNlcXVlbmNlcyB0byBrZWVwIHRo ZSBjb2RlIHNtYWxsLCBzaW1wbGUgYW5kIGltcHJvdmUgcGVyZm9ybWFuY2UuCj4+PiDCoMKgIC3C oMKgwqAgLm1hY3JvIGxkcjEgcmVnLCBwdHIsIHZhbAo+Pj4gLcKgwqDCoCBsZHIgXHJlZywgW1xw dHJdLCBcdmFsCj4+PiAtwqDCoMKgIC5lbmRtCj4+PiArwqDCoCBDb3BpZXMgYXJlIHNwbGl0IGlu dG8gMyBtYWluIGNhc2VzOiBzbWFsbCBjb3BpZXMgb2YgdXAgdG8gMzIgCj4+PiBieXRlcywgbWVk aXVtCj4+PiArwqDCoCBjb3BpZXMgb2YgdXAgdG8gMTI4IGJ5dGVzLCBhbmQgbGFyZ2UgY29waWVz LsKgIFRoZSBvdmVyaGVhZCBvZiAKPj4+IHRoZSBvdmVybGFwCj4+PiArwqDCoCBjaGVjayBpcyBu ZWdsaWdpYmxlIHNpbmNlIGl0IGlzIG9ubHkgcmVxdWlyZWQgZm9yIGxhcmdlIGNvcGllcy4KPj4+ IMKgwqAgLcKgwqDCoCAubWFjcm8gc3RyMSByZWcsIHB0ciwgdmFsCj4+PiAtwqDCoMKgIHN0ciBc cmVnLCBbXHB0cl0sIFx2YWwKPj4+IC3CoMKgwqAgLmVuZG0KPj4+IC0KPj4+IC3CoMKgwqAgLm1h Y3JvIGxkcDEgcmVnMSwgcmVnMiwgcHRyLCB2YWwKPj4+IC3CoMKgwqAgbGRwIFxyZWcxLCBccmVn MiwgW1xwdHJdLCBcdmFsCj4+PiAtwqDCoMKgIC5lbmRtCj4+PiAtCj4+PiAtwqDCoMKgIC5tYWNy byBzdHAxIHJlZzEsIHJlZzIsIHB0ciwgdmFsCj4+PiAtwqDCoMKgIHN0cCBccmVnMSwgXHJlZzIs IFtccHRyXSwgXHZhbAo+Pj4gLcKgwqDCoCAuZW5kbQo+Pj4gK8KgwqAgTGFyZ2UgY29waWVzIHVz ZSBhIHNvZnR3YXJlIHBpcGVsaW5lZCBsb29wIHByb2Nlc3NpbmcgNjQgYnl0ZXMgCj4+PiBwZXIg aXRlcmF0aW9uLgo+Pj4gK8KgwqAgVGhlIGRlc3RpbmF0aW9uIHBvaW50ZXIgaXMgMTYtYnl0ZSBh bGlnbmVkIHRvIG1pbmltaXplIHVuYWxpZ25lZCAKPj4+IGFjY2Vzc2VzLgo+Pj4gK8KgwqAgVGhl IGxvb3AgdGFpbCBpcyBoYW5kbGVkIGJ5IGFsd2F5cyBjb3B5aW5nIDY0IGJ5dGVzIGZyb20gdGhl IGVuZC4KPj4+ICsqLwo+Pj4gwqDCoCArU1lNX0ZVTkNfU1RBUlRfQUxJQVMoX19tZW1tb3ZlKQo+ Pj4gK1NZTV9GVU5DX1NUQVJUX1dFQUtfQUxJQVNfUEkobWVtbW92ZSkKPj4+IMKgwqAgU1lNX0ZV TkNfU1RBUlRfQUxJQVMoX19tZW1jcHkpCj4+PiDCoMKgIFNZTV9GVU5DX1NUQVJUX1dFQUtfUEko bWVtY3B5KQo+Pj4gLSNpbmNsdWRlICJjb3B5X3RlbXBsYXRlLlMiCj4+PiArwqDCoMKgIGFkZMKg wqDCoCBzcmNlbmQsIHNyYywgY291bnQKPj4+ICvCoMKgwqAgYWRkwqDCoMKgIGRzdGVuZCwgZHN0 aW4sIGNvdW50Cj4+PiArwqDCoMKgIGNtcMKgwqDCoCBjb3VudCwgMTI4Cj4+PiArwqDCoMKgIGIu aGnCoMKgwqAgTChjb3B5X2xvbmcpCj4+PiArwqDCoMKgIGNtcMKgwqDCoCBjb3VudCwgMzIKPj4+ ICvCoMKgwqAgYi5oacKgwqDCoCBMKGNvcHkzMl8xMjgpCj4+PiArCj4+PiArwqDCoMKgIC8qIFNt YWxsIGNvcGllczogMC4uMzIgYnl0ZXMuwqAgKi8KPj4+ICvCoMKgwqAgY21wwqDCoMKgIGNvdW50 LCAxNgo+Pj4gK8KgwqDCoCBiLmxvwqDCoMKgIEwoY29weTE2KQo+Pj4gK8KgwqDCoCBsZHDCoMKg wqAgQV9sLCBBX2gsIFtzcmNdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBEX2wsIERfaCwgW3NyY2Vu ZCwgLTE2XQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgQV9sLCBBX2gsIFtkc3Rpbl0KPj4+ICvCoMKg wqAgc3RwwqDCoMKgIERfbCwgRF9oLCBbZHN0ZW5kLCAtMTZdCj4+PiDCoMKgwqDCoMKgwqAgcmV0 Cj4+PiArCj4+PiArwqDCoMKgIC8qIENvcHkgOC0xNSBieXRlcy7CoCAqLwo+Pj4gK0woY29weTE2 KToKPj4+ICvCoMKgwqAgdGJ6wqDCoMKgIGNvdW50LCAzLCBMKGNvcHk4KQo+Pj4gK8KgwqDCoCBs ZHLCoMKgwqAgQV9sLCBbc3JjXQo+Pj4gK8KgwqDCoCBsZHLCoMKgwqAgQV9oLCBbc3JjZW5kLCAt OF0KPj4+ICvCoMKgwqAgc3RywqDCoMKgIEFfbCwgW2RzdGluXQo+Pj4gK8KgwqDCoCBzdHLCoMKg wqAgQV9oLCBbZHN0ZW5kLCAtOF0KPj4+ICvCoMKgwqAgcmV0Cj4+PiArCj4+PiArwqDCoMKgIC5w MmFsaWduIDMKPj4+ICvCoMKgwqAgLyogQ29weSA0LTcgYnl0ZXMuwqAgKi8KPj4+ICtMKGNvcHk4 KToKPj4+ICvCoMKgwqAgdGJ6wqDCoMKgIGNvdW50LCAyLCBMKGNvcHk0KQo+Pj4gK8KgwqDCoCBs ZHLCoMKgwqAgQV9sdywgW3NyY10KPj4+ICvCoMKgwqAgbGRywqDCoMKgIEJfbHcsIFtzcmNlbmQs IC00XQo+Pj4gK8KgwqDCoCBzdHLCoMKgwqAgQV9sdywgW2RzdGluXQo+Pj4gK8KgwqDCoCBzdHLC oMKgwqAgQl9sdywgW2RzdGVuZCwgLTRdCj4+PiArwqDCoMKgIHJldAo+Pj4gKwo+Pj4gK8KgwqDC oCAvKiBDb3B5IDAuLjMgYnl0ZXMgdXNpbmcgYSBicmFuY2hsZXNzIHNlcXVlbmNlLsKgICovCj4+ PiArTChjb3B5NCk6Cj4+PiArwqDCoMKgIGNiesKgwqDCoCBjb3VudCwgTChjb3B5MCkKPj4+ICvC oMKgwqAgbHNywqDCoMKgIHRtcDEsIGNvdW50LCAxCj4+PiArwqDCoMKgIGxkcmLCoMKgwqAgQV9s dywgW3NyY10KPj4+ICvCoMKgwqAgbGRyYsKgwqDCoCBDX2x3LCBbc3JjZW5kLCAtMV0KPj4+ICvC oMKgwqAgbGRyYsKgwqDCoCBCX2x3LCBbc3JjLCB0bXAxXQo+Pj4gK8KgwqDCoCBzdHJiwqDCoMKg IEFfbHcsIFtkc3Rpbl0KPj4+ICvCoMKgwqAgc3RyYsKgwqDCoCBCX2x3LCBbZHN0aW4sIHRtcDFd Cj4+PiArwqDCoMKgIHN0cmLCoMKgwqAgQ19sdywgW2RzdGVuZCwgLTFdCj4+PiArTChjb3B5MCk6 Cj4+PiArwqDCoMKgIHJldAo+Pj4gKwo+Pj4gK8KgwqDCoCAucDJhbGlnbiA0Cj4+PiArwqDCoMKg IC8qIE1lZGl1bSBjb3BpZXM6IDMzLi4xMjggYnl0ZXMuwqAgKi8KPj4+ICtMKGNvcHkzMl8xMjgp Ogo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgQV9sLCBBX2gsIFtzcmNdCj4+PiArwqDCoMKgIGxkcMKg wqDCoCBCX2wsIEJfaCwgW3NyYywgMTZdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBDX2wsIENfaCwg W3NyY2VuZCwgLTMyXQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgRF9sLCBEX2gsIFtzcmNlbmQsIC0x Nl0KPj4+ICvCoMKgwqAgY21wwqDCoMKgIGNvdW50LCA2NAo+Pj4gK8KgwqDCoCBiLmhpwqDCoMKg IEwoY29weTEyOCkKPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEFfbCwgQV9oLCBbZHN0aW5dCj4+PiAr wqDCoMKgIHN0cMKgwqDCoCBCX2wsIEJfaCwgW2RzdGluLCAxNl0KPj4+ICvCoMKgwqAgc3RwwqDC oMKgIENfbCwgQ19oLCBbZHN0ZW5kLCAtMzJdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBEX2wsIERf aCwgW2RzdGVuZCwgLTE2XQo+Pj4gK8KgwqDCoCByZXQKPj4+ICsKPj4+ICvCoMKgwqAgLnAyYWxp Z24gNAo+Pj4gK8KgwqDCoCAvKiBDb3B5IDY1Li4xMjggYnl0ZXMuwqAgKi8KPj4+ICtMKGNvcHkx MjgpOgo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgRV9sLCBFX2gsIFtzcmMsIDMyXQo+Pj4gK8KgwqDC oCBsZHDCoMKgwqAgRl9sLCBGX2gsIFtzcmMsIDQ4XQo+Pj4gK8KgwqDCoCBjbXDCoMKgwqAgY291 bnQsIDk2Cj4+PiArwqDCoMKgIGIubHPCoMKgwqAgTChjb3B5OTYpCj4+PiArwqDCoMKgIGxkcMKg wqDCoCBHX2wsIEdfaCwgW3NyY2VuZCwgLTY0XQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgSF9sLCBI X2gsIFtzcmNlbmQsIC00OF0KPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEdfbCwgR19oLCBbZHN0ZW5k LCAtNjRdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBIX2wsIEhfaCwgW2RzdGVuZCwgLTQ4XQo+Pj4g K0woY29weTk2KToKPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEFfbCwgQV9oLCBbZHN0aW5dCj4+PiAr wqDCoMKgIHN0cMKgwqDCoCBCX2wsIEJfaCwgW2RzdGluLCAxNl0KPj4+ICvCoMKgwqAgc3RwwqDC oMKgIEVfbCwgRV9oLCBbZHN0aW4sIDMyXQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgRl9sLCBGX2gs IFtkc3RpbiwgNDhdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBDX2wsIENfaCwgW2RzdGVuZCwgLTMy XQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgRF9sLCBEX2gsIFtkc3RlbmQsIC0xNl0KPj4+ICvCoMKg wqAgcmV0Cj4+PiArCj4+PiArwqDCoMKgIC5wMmFsaWduIDQKPj4+ICvCoMKgwqAgLyogQ29weSBt b3JlIHRoYW4gMTI4IGJ5dGVzLsKgICovCj4+PiArTChjb3B5X2xvbmcpOgo+Pj4gK8KgwqDCoCAv KiBVc2UgYmFja3dhcmRzIGNvcHkgaWYgdGhlcmUgaXMgYW4gb3ZlcmxhcC7CoCAqLwo+Pj4gK8Kg wqDCoCBzdWLCoMKgwqAgdG1wMSwgZHN0aW4sIHNyYwo+Pj4gK8KgwqDCoCBjYnrCoMKgwqAgdG1w MSwgTChjb3B5MCkKPj4+ICvCoMKgwqAgY21wwqDCoMKgIHRtcDEsIGNvdW50Cj4+PiArwqDCoMKg IGIubG/CoMKgwqAgTChjb3B5X2xvbmdfYmFja3dhcmRzKQo+Pj4gKwo+Pj4gK8KgwqDCoCAvKiBD b3B5IDE2IGJ5dGVzIGFuZCB0aGVuIGFsaWduIGRzdCB0byAxNi1ieXRlIGFsaWdubWVudC7CoCAq Lwo+Pj4gKwo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgRF9sLCBEX2gsIFtzcmNdCj4+PiArwqDCoMKg IGFuZMKgwqDCoCB0bXAxLCBkc3RpbiwgMTUKPj4+ICvCoMKgwqAgYmljwqDCoMKgIGRzdCwgZHN0 aW4sIDE1Cj4+PiArwqDCoMKgIHN1YsKgwqDCoCBzcmMsIHNyYywgdG1wMQo+Pj4gK8KgwqDCoCBh ZGTCoMKgwqAgY291bnQsIGNvdW50LCB0bXAxwqDCoMKgIC8qIENvdW50IGlzIG5vdyAxNiB0b28g bGFyZ2UuwqAgKi8KPj4+ICvCoMKgwqAgbGRwwqDCoMKgIEFfbCwgQV9oLCBbc3JjLCAxNl0KPj4+ ICvCoMKgwqAgc3RwwqDCoMKgIERfbCwgRF9oLCBbZHN0aW5dCj4+PiArwqDCoMKgIGxkcMKgwqDC oCBCX2wsIEJfaCwgW3NyYywgMzJdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBDX2wsIENfaCwgW3Ny YywgNDhdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBEX2wsIERfaCwgW3NyYywgNjRdIQo+Pj4gK8Kg wqDCoCBzdWJzwqDCoMKgIGNvdW50LCBjb3VudCwgMTI4ICsgMTbCoMKgwqAgLyogVGVzdCBhbmQg cmVhZGp1c3QgY291bnQuwqAgKi8KPj4+ICvCoMKgwqAgYi5sc8KgwqDCoCBMKGNvcHk2NF9mcm9t X2VuZCkKPj4+ICsKPj4+ICtMKGxvb3A2NCk6Cj4+PiArwqDCoMKgIHN0cMKgwqDCoCBBX2wsIEFf aCwgW2RzdCwgMTZdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBBX2wsIEFfaCwgW3NyYywgMTZdCj4+ PiArwqDCoMKgIHN0cMKgwqDCoCBCX2wsIEJfaCwgW2RzdCwgMzJdCj4+PiArwqDCoMKgIGxkcMKg wqDCoCBCX2wsIEJfaCwgW3NyYywgMzJdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBDX2wsIENfaCwg W2RzdCwgNDhdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBDX2wsIENfaCwgW3NyYywgNDhdCj4+PiAr wqDCoMKgIHN0cMKgwqDCoCBEX2wsIERfaCwgW2RzdCwgNjRdIQo+Pj4gK8KgwqDCoCBsZHDCoMKg wqAgRF9sLCBEX2gsIFtzcmMsIDY0XSEKPj4+ICvCoMKgwqAgc3Vic8KgwqDCoCBjb3VudCwgY291 bnQsIDY0Cj4+PiArwqDCoMKgIGIuaGnCoMKgwqAgTChsb29wNjQpCj4+PiArCj4+PiArwqDCoMKg IC8qIFdyaXRlIHRoZSBsYXN0IGl0ZXJhdGlvbiBhbmQgY29weSA2NCBieXRlcyBmcm9tIHRoZSBl bmQuwqAgKi8KPj4+ICtMKGNvcHk2NF9mcm9tX2VuZCk6Cj4+PiArwqDCoMKgIGxkcMKgwqDCoCBF X2wsIEVfaCwgW3NyY2VuZCwgLTY0XQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgQV9sLCBBX2gsIFtk c3QsIDE2XQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgQV9sLCBBX2gsIFtzcmNlbmQsIC00OF0KPj4+ ICvCoMKgwqAgc3RwwqDCoMKgIEJfbCwgQl9oLCBbZHN0LCAzMl0KPj4+ICvCoMKgwqAgbGRwwqDC oMKgIEJfbCwgQl9oLCBbc3JjZW5kLCAtMzJdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBDX2wsIENf aCwgW2RzdCwgNDhdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBDX2wsIENfaCwgW3NyY2VuZCwgLTE2 XQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgRF9sLCBEX2gsIFtkc3QsIDY0XQo+Pj4gK8KgwqDCoCBz dHDCoMKgwqAgRV9sLCBFX2gsIFtkc3RlbmQsIC02NF0KPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEFf bCwgQV9oLCBbZHN0ZW5kLCAtNDhdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBCX2wsIEJfaCwgW2Rz dGVuZCwgLTMyXQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgQ19sLCBDX2gsIFtkc3RlbmQsIC0xNl0K Pj4+ICvCoMKgwqAgcmV0Cj4+PiArCj4+PiArwqDCoMKgIC5wMmFsaWduIDQKPj4+ICsKPj4+ICvC oMKgwqAgLyogTGFyZ2UgYmFja3dhcmRzIGNvcHkgZm9yIG92ZXJsYXBwaW5nIGNvcGllcy4KPj4+ ICvCoMKgwqDCoMKgwqAgQ29weSAxNiBieXRlcyBhbmQgdGhlbiBhbGlnbiBkc3QgdG8gMTYtYnl0 ZSBhbGlnbm1lbnQuwqAgKi8KPj4+ICtMKGNvcHlfbG9uZ19iYWNrd2FyZHMpOgo+Pj4gK8KgwqDC oCBsZHDCoMKgwqAgRF9sLCBEX2gsIFtzcmNlbmQsIC0xNl0KPj4+ICvCoMKgwqAgYW5kwqDCoMKg IHRtcDEsIGRzdGVuZCwgMTUKPj4+ICvCoMKgwqAgc3ViwqDCoMKgIHNyY2VuZCwgc3JjZW5kLCB0 bXAxCj4+PiArwqDCoMKgIHN1YsKgwqDCoCBjb3VudCwgY291bnQsIHRtcDEKPj4+ICvCoMKgwqAg bGRwwqDCoMKgIEFfbCwgQV9oLCBbc3JjZW5kLCAtMTZdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBE X2wsIERfaCwgW2RzdGVuZCwgLTE2XQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgQl9sLCBCX2gsIFtz cmNlbmQsIC0zMl0KPj4+ICvCoMKgwqAgbGRwwqDCoMKgIENfbCwgQ19oLCBbc3JjZW5kLCAtNDhd Cj4+PiArwqDCoMKgIGxkcMKgwqDCoCBEX2wsIERfaCwgW3NyY2VuZCwgLTY0XSEKPj4+ICvCoMKg wqAgc3ViwqDCoMKgIGRzdGVuZCwgZHN0ZW5kLCB0bXAxCj4+PiArwqDCoMKgIHN1YnPCoMKgwqAg Y291bnQsIGNvdW50LCAxMjgKPj4+ICvCoMKgwqAgYi5sc8KgwqDCoCBMKGNvcHk2NF9mcm9tX3N0 YXJ0KQo+Pj4gKwo+Pj4gK0wobG9vcDY0X2JhY2t3YXJkcyk6Cj4+PiArwqDCoMKgIHN0cMKgwqDC oCBBX2wsIEFfaCwgW2RzdGVuZCwgLTE2XQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgQV9sLCBBX2gs IFtzcmNlbmQsIC0xNl0KPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEJfbCwgQl9oLCBbZHN0ZW5kLCAt MzJdCj4+PiArwqDCoMKgIGxkcMKgwqDCoCBCX2wsIEJfaCwgW3NyY2VuZCwgLTMyXQo+Pj4gK8Kg wqDCoCBzdHDCoMKgwqAgQ19sLCBDX2gsIFtkc3RlbmQsIC00OF0KPj4+ICvCoMKgwqAgbGRwwqDC oMKgIENfbCwgQ19oLCBbc3JjZW5kLCAtNDhdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBEX2wsIERf aCwgW2RzdGVuZCwgLTY0XSEKPj4+ICvCoMKgwqAgbGRwwqDCoMKgIERfbCwgRF9oLCBbc3JjZW5k LCAtNjRdIQo+Pj4gK8KgwqDCoCBzdWJzwqDCoMKgIGNvdW50LCBjb3VudCwgNjQKPj4+ICvCoMKg wqAgYi5oacKgwqDCoCBMKGxvb3A2NF9iYWNrd2FyZHMpCj4+PiArCj4+PiArwqDCoMKgIC8qIFdy aXRlIHRoZSBsYXN0IGl0ZXJhdGlvbiBhbmQgY29weSA2NCBieXRlcyBmcm9tIHRoZSBzdGFydC7C oCAqLwo+Pj4gK0woY29weTY0X2Zyb21fc3RhcnQpOgo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgR19s LCBHX2gsIFtzcmMsIDQ4XQo+Pj4gK8KgwqDCoCBzdHDCoMKgwqAgQV9sLCBBX2gsIFtkc3RlbmQs IC0xNl0KPj4+ICvCoMKgwqAgbGRwwqDCoMKgIEFfbCwgQV9oLCBbc3JjLCAzMl0KPj4+ICvCoMKg wqAgc3RwwqDCoMKgIEJfbCwgQl9oLCBbZHN0ZW5kLCAtMzJdCj4+PiArwqDCoMKgIGxkcMKgwqDC oCBCX2wsIEJfaCwgW3NyYywgMTZdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBDX2wsIENfaCwgW2Rz dGVuZCwgLTQ4XQo+Pj4gK8KgwqDCoCBsZHDCoMKgwqAgQ19sLCBDX2gsIFtzcmNdCj4+PiArwqDC oMKgIHN0cMKgwqDCoCBEX2wsIERfaCwgW2RzdGVuZCwgLTY0XQo+Pj4gK8KgwqDCoCBzdHDCoMKg wqAgR19sLCBHX2gsIFtkc3RpbiwgNDhdCj4+PiArwqDCoMKgIHN0cMKgwqDCoCBBX2wsIEFfaCwg W2RzdGluLCAzMl0KPj4+ICvCoMKgwqAgc3RwwqDCoMKgIEJfbCwgQl9oLCBbZHN0aW4sIDE2XQo+ Pj4gK8KgwqDCoCBzdHDCoMKgwqAgQ19sLCBDX2gsIFtkc3Rpbl0KPj4+ICvCoMKgwqAgcmV0Cj4+ PiArCj4+PiDCoMKgIFNZTV9GVU5DX0VORF9QSShtZW1jcHkpCj4+PiDCoMKgIEVYUE9SVF9TWU1C T0wobWVtY3B5KQo+Pj4gwqDCoCBTWU1fRlVOQ19FTkRfQUxJQVMoX19tZW1jcHkpCj4+PiDCoMKg IEVYUE9SVF9TWU1CT0woX19tZW1jcHkpCj4+PiArU1lNX0ZVTkNfRU5EX0FMSUFTX1BJKG1lbW1v dmUpCj4+PiArRVhQT1JUX1NZTUJPTChtZW1tb3ZlKQo+Pj4gK1NZTV9GVU5DX0VORF9BTElBUyhf X21lbW1vdmUpCj4+PiArRVhQT1JUX1NZTUJPTChfX21lbW1vdmUpCj4+PiBcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKPj4+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2xpYi9tZW1tb3ZlLlMg Yi9hcmNoL2FybTY0L2xpYi9tZW1tb3ZlLlMKPj4+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+ Pj4gaW5kZXggMTAzNWRjZTRiZGFmLi4wMDAwMDAwMDAwMDAKPj4+IC0tLSBhL2FyY2gvYXJtNjQv bGliL21lbW1vdmUuUwo+Pj4gKysrIC9kZXYvbnVsbAo+Pj4gQEAgLTEsMTg5ICswLDAgQEAKPj4+ IC0vKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5ICovCj4+PiAtLyoKPj4+ IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQVJNIEx0ZC4KPj4+IC0gKiBDb3B5cmlnaHQgKEMpIDIw MTMgTGluYXJvLgo+Pj4gLSAqCj4+PiAtICogVGhpcyBjb2RlIGlzIGJhc2VkIG9uIGdsaWJjIGNv cnRleCBzdHJpbmdzIHdvcmsgb3JpZ2luYWxseSAKPj4+IGF1dGhvcmVkIGJ5IExpbmFybwo+Pj4g LSAqIGJlIGZvdW5kIEAKPj4+IC0gKgo+Pj4gLSAqIAo+Pj4gaHR0cDovL2JhemFhci5sYXVuY2hw YWQubmV0L35saW5hcm8tdG9vbGNoYWluLWRldi9jb3J0ZXgtc3RyaW5ncy90cnVuay8KPj4+IC0g KiBmaWxlcy9oZWFkOi9zcmMvYWFyY2g2NC8KPj4+IC0gKi8KPj4+IC0KPj4+IC0jaW5jbHVkZSA8 bGludXgvbGlua2FnZS5oPgo+Pj4gLSNpbmNsdWRlIDxhc20vYXNzZW1ibGVyLmg+Cj4+PiAtI2lu Y2x1ZGUgPGFzbS9jYWNoZS5oPgo+Pj4gLQo+Pj4gLS8qCj4+PiAtICogTW92ZSBhIGJ1ZmZlciBm cm9tIHNyYyB0byB0ZXN0IChhbGlnbm1lbnQgaGFuZGxlZCBieSB0aGUgaGFyZHdhcmUpLgo+Pj4g LSAqIElmIGRlc3QgPD0gc3JjLCBjYWxsIG1lbWNweSwgb3RoZXJ3aXNlIGNvcHkgaW4gcmV2ZXJz ZSBvcmRlci4KPj4+IC0gKgo+Pj4gLSAqIFBhcmFtZXRlcnM6Cj4+PiAtICrCoMKgwqAgeDAgLSBk ZXN0Cj4+PiAtICrCoMKgwqAgeDEgLSBzcmMKPj4+IC0gKsKgwqDCoCB4MiAtIG4KPj4+IC0gKiBS ZXR1cm5zOgo+Pj4gLSAqwqDCoMKgIHgwIC0gZGVzdAo+Pj4gLSAqLwo+Pj4gLWRzdGluwqDCoMKg IC5yZXHCoMKgwqAgeDAKPj4+IC1zcmPCoMKgwqAgLnJlccKgwqDCoCB4MQo+Pj4gLWNvdW50wqDC oMKgIC5yZXHCoMKgwqAgeDIKPj4+IC10bXAxwqDCoMKgIC5yZXHCoMKgwqAgeDMKPj4+IC10bXAx d8KgwqDCoCAucmVxwqDCoMKgIHczCj4+PiAtdG1wMsKgwqDCoCAucmVxwqDCoMKgIHg0Cj4+PiAt dG1wMnfCoMKgwqAgLnJlccKgwqDCoCB3NAo+Pj4gLXRtcDPCoMKgwqAgLnJlccKgwqDCoCB4NQo+ Pj4gLXRtcDN3wqDCoMKgIC5yZXHCoMKgwqAgdzUKPj4+IC1kc3TCoMKgwqAgLnJlccKgwqDCoCB4 Ngo+Pj4gLQo+Pj4gLUFfbMKgwqDCoCAucmVxwqDCoMKgIHg3Cj4+PiAtQV9owqDCoMKgIC5yZXHC oMKgwqAgeDgKPj4+IC1CX2zCoMKgwqAgLnJlccKgwqDCoCB4OQo+Pj4gLUJfaMKgwqDCoCAucmVx wqDCoMKgIHgxMAo+Pj4gLUNfbMKgwqDCoCAucmVxwqDCoMKgIHgxMQo+Pj4gLUNfaMKgwqDCoCAu cmVxwqDCoMKgIHgxMgo+Pj4gLURfbMKgwqDCoCAucmVxwqDCoMKgIHgxMwo+Pj4gLURfaMKgwqDC oCAucmVxwqDCoMKgIHgxNAo+Pj4gLQo+Pj4gLVNZTV9GVU5DX1NUQVJUX0FMSUFTKF9fbWVtbW92 ZSkKPj4+IC1TWU1fRlVOQ19TVEFSVF9XRUFLX1BJKG1lbW1vdmUpCj4+PiAtwqDCoMKgIGNtcMKg wqDCoCBkc3Rpbiwgc3JjCj4+PiAtwqDCoMKgIGIubG/CoMKgwqAgX19tZW1jcHkKPj4+IC3CoMKg wqAgYWRkwqDCoMKgIHRtcDEsIHNyYywgY291bnQKPj4+IC3CoMKgwqAgY21wwqDCoMKgIGRzdGlu LCB0bXAxCj4+PiAtwqDCoMKgIGIuaHPCoMKgwqAgX19tZW1jcHnCoMKgwqDCoMKgwqDCoCAvKiBO byBvdmVybGFwLsKgICovCj4+PiAtCj4+PiAtwqDCoMKgIGFkZMKgwqDCoCBkc3QsIGRzdGluLCBj b3VudAo+Pj4gLcKgwqDCoCBhZGTCoMKgwqAgc3JjLCBzcmMsIGNvdW50Cj4+PiAtwqDCoMKgIGNt cMKgwqDCoCBjb3VudCwgIzE2Cj4+PiAtwqDCoMKgIGIubG/CoMKgwqAgLkx0YWlsMTXCoCAvKnBy b2JhYmx5IG5vbi1hbGlnbm1lbnQgYWNjZXNzZXMuKi8KPj4+IC0KPj4+IC3CoMKgwqAgYW5kc8Kg wqDCoCB0bXAyLCBzcmMsICMxNcKgwqDCoMKgIC8qIEJ5dGVzIHRvIHJlYWNoIGFsaWdubWVudC4g Ki8KPj4+IC3CoMKgwqAgYi5lccKgwqDCoCAuTFNyY0FsaWduZWQKPj4+IC3CoMKgwqAgc3ViwqDC oMKgIGNvdW50LCBjb3VudCwgdG1wMgo+Pj4gLcKgwqDCoCAvKgo+Pj4gLcKgwqDCoCAqIHByb2Nl c3MgdGhlIGFsaWduZWQgb2Zmc2V0IGxlbmd0aCB0byBtYWtlIHRoZSBzcmMgYWxpZ25lZCAKPj4+ IGZpcnN0bHkuCj4+PiAtwqDCoMKgICogdGhvc2UgZXh0cmEgaW5zdHJ1Y3Rpb25zJyBjb3N0IGlz IGFjY2VwdGFibGUuIEl0IGFsc28gbWFrZSB0aGUKPj4+IC3CoMKgwqAgKiBjb21pbmcgYWNjZXNz ZXMgYXJlIGJhc2VkIG9uIGFsaWduZWQgYWRkcmVzcy4KPj4+IC3CoMKgwqAgKi8KPj4+IC3CoMKg wqAgdGJ6wqDCoMKgIHRtcDIsICMwLCAxZgo+Pj4gLcKgwqDCoCBsZHJiwqDCoMKgIHRtcDF3LCBb c3JjLCAjLTFdIQo+Pj4gLcKgwqDCoCBzdHJiwqDCoMKgIHRtcDF3LCBbZHN0LCAjLTFdIQo+Pj4g LTE6Cj4+PiAtwqDCoMKgIHRiesKgwqDCoCB0bXAyLCAjMSwgMmYKPj4+IC3CoMKgwqAgbGRyaMKg wqDCoCB0bXAxdywgW3NyYywgIy0yXSEKPj4+IC3CoMKgwqAgc3RyaMKgwqDCoCB0bXAxdywgW2Rz dCwgIy0yXSEKPj4+IC0yOgo+Pj4gLcKgwqDCoCB0YnrCoMKgwqAgdG1wMiwgIzIsIDNmCj4+PiAt wqDCoMKgIGxkcsKgwqDCoCB0bXAxdywgW3NyYywgIy00XSEKPj4+IC3CoMKgwqAgc3RywqDCoMKg IHRtcDF3LCBbZHN0LCAjLTRdIQo+Pj4gLTM6Cj4+PiAtwqDCoMKgIHRiesKgwqDCoCB0bXAyLCAj MywgLkxTcmNBbGlnbmVkCj4+PiAtwqDCoMKgIGxkcsKgwqDCoCB0bXAxLCBbc3JjLCAjLThdIQo+ Pj4gLcKgwqDCoCBzdHLCoMKgwqAgdG1wMSwgW2RzdCwgIy04XSEKPj4+IC0KPj4+IC0uTFNyY0Fs aWduZWQ6Cj4+PiAtwqDCoMKgIGNtcMKgwqDCoCBjb3VudCwgIzY0Cj4+PiAtwqDCoMKgIGIuZ2XC oMKgwqAgLkxjcHlfb3ZlcjY0Cj4+PiAtCj4+PiAtwqDCoMKgIC8qCj4+PiAtwqDCoMKgICogRGVh bCB3aXRoIHNtYWxsIGNvcGllcyBxdWlja2x5IGJ5IGRyb3BwaW5nIHN0cmFpZ2h0IGludG8gdGhl Cj4+PiAtwqDCoMKgICogZXhpdCBibG9jay4KPj4+IC3CoMKgwqAgKi8KPj4+IC0uTHRhaWw2MzoK Pj4+IC3CoMKgwqAgLyoKPj4+IC3CoMKgwqAgKiBDb3B5IHVwIHRvIDQ4IGJ5dGVzIG9mIGRhdGEu IEF0IHRoaXMgcG9pbnQgd2Ugb25seSBuZWVkIHRoZQo+Pj4gLcKgwqDCoCAqIGJvdHRvbSA2IGJp dHMgb2YgY291bnQgdG8gYmUgYWNjdXJhdGUuCj4+PiAtwqDCoMKgICovCj4+PiAtwqDCoMKgIGFu ZHPCoMKgwqAgdG1wMSwgY291bnQsICMweDMwCj4+PiAtwqDCoMKgIGIuZXHCoMKgwqAgLkx0YWls MTUKPj4+IC3CoMKgwqAgY21wwqDCoMKgIHRtcDF3LCAjMHgyMAo+Pj4gLcKgwqDCoCBiLmVxwqDC oMKgIDFmCj4+PiAtwqDCoMKgIGIubHTCoMKgwqAgMmYKPj4+IC3CoMKgwqAgbGRwwqDCoMKgIEFf bCwgQV9oLCBbc3JjLCAjLTE2XSEKPj4+IC3CoMKgwqAgc3RwwqDCoMKgIEFfbCwgQV9oLCBbZHN0 LCAjLTE2XSEKPj4+IC0xOgo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgQV9sLCBBX2gsIFtzcmMsICMt MTZdIQo+Pj4gLcKgwqDCoCBzdHDCoMKgwqAgQV9sLCBBX2gsIFtkc3QsICMtMTZdIQo+Pj4gLTI6 Cj4+PiAtwqDCoMKgIGxkcMKgwqDCoCBBX2wsIEFfaCwgW3NyYywgIy0xNl0hCj4+PiAtwqDCoMKg IHN0cMKgwqDCoCBBX2wsIEFfaCwgW2RzdCwgIy0xNl0hCj4+PiAtCj4+PiAtLkx0YWlsMTU6Cj4+ PiAtwqDCoMKgIHRiesKgwqDCoCBjb3VudCwgIzMsIDFmCj4+PiAtwqDCoMKgIGxkcsKgwqDCoCB0 bXAxLCBbc3JjLCAjLThdIQo+Pj4gLcKgwqDCoCBzdHLCoMKgwqAgdG1wMSwgW2RzdCwgIy04XSEK Pj4+IC0xOgo+Pj4gLcKgwqDCoCB0YnrCoMKgwqAgY291bnQsICMyLCAyZgo+Pj4gLcKgwqDCoCBs ZHLCoMKgwqAgdG1wMXcsIFtzcmMsICMtNF0hCj4+PiAtwqDCoMKgIHN0csKgwqDCoCB0bXAxdywg W2RzdCwgIy00XSEKPj4+IC0yOgo+Pj4gLcKgwqDCoCB0YnrCoMKgwqAgY291bnQsICMxLCAzZgo+ Pj4gLcKgwqDCoCBsZHJowqDCoMKgIHRtcDF3LCBbc3JjLCAjLTJdIQo+Pj4gLcKgwqDCoCBzdHJo wqDCoMKgIHRtcDF3LCBbZHN0LCAjLTJdIQo+Pj4gLTM6Cj4+PiAtwqDCoMKgIHRiesKgwqDCoCBj b3VudCwgIzAsIC5MZXhpdGZ1bmMKPj4+IC3CoMKgwqAgbGRyYsKgwqDCoCB0bXAxdywgW3NyYywg Iy0xXQo+Pj4gLcKgwqDCoCBzdHJiwqDCoMKgIHRtcDF3LCBbZHN0LCAjLTFdCj4+PiAtCj4+PiAt LkxleGl0ZnVuYzoKPj4+IC3CoMKgwqAgcmV0Cj4+PiAtCj4+PiAtLkxjcHlfb3ZlcjY0Ogo+Pj4g LcKgwqDCoCBzdWJzwqDCoMKgIGNvdW50LCBjb3VudCwgIzEyOAo+Pj4gLcKgwqDCoCBiLmdlwqDC oMKgIC5MY3B5X2JvZHlfbGFyZ2UKPj4+IC3CoMKgwqAgLyoKPj4+IC3CoMKgwqAgKiBMZXNzIHRo YW4gMTI4IGJ5dGVzIHRvIGNvcHksIHNvIGhhbmRsZSA2NCBieXRlcyBoZXJlIGFuZCB0aGVuIAo+ Pj4ganVtcAo+Pj4gLcKgwqDCoCAqIHRvIHRoZSB0YWlsLgo+Pj4gLcKgwqDCoCAqLwo+Pj4gLcKg wqDCoCBsZHDCoMKgwqAgQV9sLCBBX2gsIFtzcmMsICMtMTZdCj4+PiAtwqDCoMKgIHN0cMKgwqDC oCBBX2wsIEFfaCwgW2RzdCwgIy0xNl0KPj4+IC3CoMKgwqAgbGRwwqDCoMKgIEJfbCwgQl9oLCBb c3JjLCAjLTMyXQo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgQ19sLCBDX2gsIFtzcmMsICMtNDhdCj4+ PiAtwqDCoMKgIHN0cMKgwqDCoCBCX2wsIEJfaCwgW2RzdCwgIy0zMl0KPj4+IC3CoMKgwqAgc3Rw wqDCoMKgIENfbCwgQ19oLCBbZHN0LCAjLTQ4XQo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgRF9sLCBE X2gsIFtzcmMsICMtNjRdIQo+Pj4gLcKgwqDCoCBzdHDCoMKgwqAgRF9sLCBEX2gsIFtkc3QsICMt NjRdIQo+Pj4gLQo+Pj4gLcKgwqDCoCB0c3TCoMKgwqAgY291bnQsICMweDNmCj4+PiAtwqDCoMKg IGIubmXCoMKgwqAgLkx0YWlsNjMKPj4+IC3CoMKgwqAgcmV0Cj4+PiAtCj4+PiAtwqDCoMKgIC8q Cj4+PiAtwqDCoMKgICogQ3JpdGljYWwgbG9vcC4gU3RhcnQgYXQgYSBuZXcgY2FjaGUgbGluZSBi b3VuZGFyeS4gQXNzdW1pbmcKPj4+IC3CoMKgwqAgKiA2NCBieXRlcyBwZXIgbGluZSB0aGlzIGVu c3VyZXMgdGhlIGVudGlyZSBsb29wIGlzIGluIG9uZSBsaW5lLgo+Pj4gLcKgwqDCoCAqLwo+Pj4g LcKgwqDCoCAucDJhbGlnbsKgwqDCoCBMMV9DQUNIRV9TSElGVAo+Pj4gLS5MY3B5X2JvZHlfbGFy Z2U6Cj4+PiAtwqDCoMKgIC8qIHByZS1sb2FkIDY0IGJ5dGVzIGRhdGEuICovCj4+PiAtwqDCoMKg IGxkcMKgwqDCoCBBX2wsIEFfaCwgW3NyYywgIy0xNl0KPj4+IC3CoMKgwqAgbGRwwqDCoMKgIEJf bCwgQl9oLCBbc3JjLCAjLTMyXQo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgQ19sLCBDX2gsIFtzcmMs ICMtNDhdCj4+PiAtwqDCoMKgIGxkcMKgwqDCoCBEX2wsIERfaCwgW3NyYywgIy02NF0hCj4+PiAt MToKPj4+IC3CoMKgwqAgLyoKPj4+IC3CoMKgwqAgKiBpbnRlcmxhY2UgdGhlIGxvYWQgb2YgbmV4 dCA2NCBieXRlcyBkYXRhIGJsb2NrIHdpdGggc3RvcmUgb2YgCj4+PiB0aGUgbGFzdAo+Pj4gLcKg wqDCoCAqIGxvYWRlZCA2NCBieXRlcyBkYXRhLgo+Pj4gLcKgwqDCoCAqLwo+Pj4gLcKgwqDCoCBz dHDCoMKgwqAgQV9sLCBBX2gsIFtkc3QsICMtMTZdCj4+PiAtwqDCoMKgIGxkcMKgwqDCoCBBX2ws IEFfaCwgW3NyYywgIy0xNl0KPj4+IC3CoMKgwqAgc3RwwqDCoMKgIEJfbCwgQl9oLCBbZHN0LCAj LTMyXQo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgQl9sLCBCX2gsIFtzcmMsICMtMzJdCj4+PiAtwqDC oMKgIHN0cMKgwqDCoCBDX2wsIENfaCwgW2RzdCwgIy00OF0KPj4+IC3CoMKgwqAgbGRwwqDCoMKg IENfbCwgQ19oLCBbc3JjLCAjLTQ4XQo+Pj4gLcKgwqDCoCBzdHDCoMKgwqAgRF9sLCBEX2gsIFtk c3QsICMtNjRdIQo+Pj4gLcKgwqDCoCBsZHDCoMKgwqAgRF9sLCBEX2gsIFtzcmMsICMtNjRdIQo+ Pj4gLcKgwqDCoCBzdWJzwqDCoMKgIGNvdW50LCBjb3VudCwgIzY0Cj4+PiAtwqDCoMKgIGIuZ2XC oMKgwqAgMWIKPj4+IC3CoMKgwqAgc3RwwqDCoMKgIEFfbCwgQV9oLCBbZHN0LCAjLTE2XQo+Pj4g LcKgwqDCoCBzdHDCoMKgwqAgQl9sLCBCX2gsIFtkc3QsICMtMzJdCj4+PiAtwqDCoMKgIHN0cMKg wqDCoCBDX2wsIENfaCwgW2RzdCwgIy00OF0KPj4+IC3CoMKgwqAgc3RwwqDCoMKgIERfbCwgRF9o LCBbZHN0LCAjLTY0XSEKPj4+IC0KPj4+IC3CoMKgwqAgdHN0wqDCoMKgIGNvdW50LCAjMHgzZgo+ Pj4gLcKgwqDCoCBiLm5lwqDCoMKgIC5MdGFpbDYzCj4+PiAtwqDCoMKgIHJldAo+Pj4gLVNZTV9G VU5DX0VORF9QSShtZW1tb3ZlKQo+Pj4gLUVYUE9SVF9TWU1CT0wobWVtbW92ZSkKPj4+IC1TWU1f RlVOQ19FTkRfQUxJQVMoX19tZW1tb3ZlKQo+Pj4gLUVYUE9SVF9TWU1CT0woX19tZW1tb3ZlKQo+ Pgo+PiBCZXN0IHJlZ2FyZHMKPj4KPgpCZXN0IHJlZ2FyZHMKLS0gCk1hcmVrIFN6eXByb3dza2ks IFBoRApTYW1zdW5nIFImRCBJbnN0aXR1dGUgUG9sYW5kCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QK bGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=