From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id sBSUC0rm3mUBcAAAe85BDQ:P1 (envelope-from ) for ; Wed, 28 Feb 2024 08:52:42 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id sBSUC0rm3mUBcAAAe85BDQ (envelope-from ) for ; Wed, 28 Feb 2024 08:52:42 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b="C/BLqz3E"; arc=pass ("zohomail.com:s=zohoarc:i=1"); dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1709106761; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=NaJJPN4EZpTijtQqrtqRLSrslVDjyUABJ9Iu+EmzPf0=; b=FVuhPQrR3Q0WkGHhtafRd/I5dVaORPrZP3BdMf7MbXL3QohCIeQnyijvONGoNkRfiMZHTT bmtB3TdFEFRJVqy32to5FdYXetu0hymxoOeXMYX1ICLSaCFFKGLPZtq7LlzaXNs7Ejqu3G 3YbsReL5ezC9qlTWygez/oh5sv+ooRLBVh0r+bw8Vc5EF0agdOJ3Kznkupttfpq5SBsEz0 sIc/b2kuqmxFnRpEJtQpKQsShs5Xrh0AU1B0PxxJg1QPGLWyZylBcBtARgRkNAD1/kaNwH 3elVovoX3La/ZCK6fxZqDoIkh0QeW5Cy43qqG0smIK85C/pX5MIUe9YHXddbwA== ARC-Authentication-Results: i=2; aspmx1.migadu.com; dkim=pass header.d=excalamus.com header.s=zmail header.b="C/BLqz3E"; arc=pass ("zohomail.com:s=zohoarc:i=1"); dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=2; s=key1; d=yhetil.org; t=1709106761; a=rsa-sha256; cv=pass; b=JRGGJagayiladfSlRL1scvSTxdVjwFn8iPbSuwqxHRmYW4iS5PR+66c+6Wx+DTDmPclP32 IiOn5HOWwBuGXQwTTIVnA8LsXch+hOPCN26JJmPrPv9TVGTYZUWaMUj0DUlCfWAS5D5zbX 0KloAX2YXgQzLoaeJfAJ0qX6Ex2GxGWLuDfx9+Z+dQRKWjmpcyUkU/f03y/2A6Ew+DaOm8 bjlC2WepgiGh1rKsRbEQH24VQkgPx4ZSDIHUi0DBPOx2OeudaZNWoMmBHBBFnyPKlKUtSz 6zts9QByJJdIv/sclBSQUlLlS6fneUnCJK8vbgJ/f2f3FLkEBX8GWLCKZ6Ondw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7CF18143F7 for ; Wed, 28 Feb 2024 08:52:41 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rfEjf-0005pn-TF; Wed, 28 Feb 2024 02:52:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfEjP-0005mg-Gk for guix-devel@gnu.org; Wed, 28 Feb 2024 02:52:13 -0500 Received: from sender4-op-o12.zoho.com ([136.143.188.12]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rfEjN-0002o4-46 for guix-devel@gnu.org; Wed, 28 Feb 2024 02:51:59 -0500 ARC-Seal: i=1; a=rsa-sha256; t=1709106711; cv=none; d=zohomail.com; s=zohoarc; b=RzSE0695h3AYvoRRxa9v0Ku62Jg9OkFsmPpopRInRUp/tppq2Ivr7c5CPe+RvazNIh3bN9cJh7nOO5Vl/9sX61rL0Wl92gCub6yYCgSVFav4V3+hO5WH6lH2oCICfpCxMY6bhMfDoyAmLNmFRsl5nBjFM9AVcNO/HQ3uy4SOvWU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1709106711; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To; bh=NaJJPN4EZpTijtQqrtqRLSrslVDjyUABJ9Iu+EmzPf0=; b=SAswq96w+lQmGeanQwlqF+/pulrg/mVF9Ki0PDlw1c5wESQSHXYDQ46FCgco2pqYzvP4cdlBQcyLy5rVGocCv0U4oPFQWiVVh1Z9dNLYz6zIQ1S+VoYyOhB0J92yGu0dUAd4+4PKa5GghWRPtNNcgLEmLDgJm5Xd7/5AvBOUTkA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=excalamus.com; spf=pass smtp.mailfrom=matt@excalamus.com; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1709106711; s=zmail; d=excalamus.com; i=matt@excalamus.com; h=Date:Date:From:From:To:To:Cc:Cc:Message-Id:Message-Id:In-Reply-To:References:Subject:Subject:MIME-Version:Content-Type:Reply-To; bh=NaJJPN4EZpTijtQqrtqRLSrslVDjyUABJ9Iu+EmzPf0=; b=C/BLqz3EfhI0I/1LvJi+Wey4Jnvip7htS4kXwgq3d+Hud7KW+HB4HMgjGGA0HvCL 6dTLW553by8+c3sfFuKtZbPmpJc/ueZtZPaQAvczy2u9lUi0saR7AqUCNxtAWyWGM4i Wtyv9bhqbF6v00+GmAhDUsubEe3XyCZxgZ9wRrUE= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1709106709641570.1901078824447; Tue, 27 Feb 2024 23:51:49 -0800 (PST) Date: Wed, 28 Feb 2024 08:51:49 +0100 From: Matt To: "Adam McCartney" Cc: "Simon Tournier" , "Guix Devel" Message-Id: <18deeb2c459.c95fa01f1292170.8232531729664252239@excalamus.com> In-Reply-To: References: <87jzn97f5f.fsf@gmail.com> Subject: Re: Google Season of Docs 2024 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_4141553_681118460.1709106709593" Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail X-Zoho-Virus-Status: 1 X-Zoho-AV-Stamp: zmail-av-1.1.0/208.916.32 Received-SPF: pass client-ip=136.143.188.12; envelope-from=matt@excalamus.com; helo=sender4-op-o12.zoho.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -8.55 X-Spam-Score: -8.55 X-Migadu-Queue-Id: 7CF18143F7 X-Migadu-Scanner: mx13.migadu.com X-TUID: kHGqxtExHwMV ------=_Part_4141553_681118460.1709106709593 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit ---- On Fri, 23 Feb 2024 10:18:33 +0100 Adam McCartney wrote --- > > 2. Would one of you readers be interested by being technical writer? > > 3. Any for improving the documentation? I'm always interested in improving the Guix documentation. > I'm quite new to guix, so reading through many docs for the first time and > trying out various workflows. I'm taking notes on the various things that work. I like this approach of someone new reading through the documentation, taking notes on errors and challenges, and providing a list of findings. I'm currently working through a thread where someone did just this and we're working through the points one at a time[1]. [1]: https://lists.gnu.org/archive/html/guix-devel/2024-01/msg00117.html > In the past I've enjoyed using tutorials like "vimtutor" or emacs' "M-x > help-with-tutorial" when trying to break the ice with a completely new piece of > software. Writing something similar for guix might be fun? I think a series of case studies which walk through increasingly difficult packaging processes would be a good idea. It would give new users insight into what the packaging process looks like, would identify common tricks that work across packages, and would highlight problems in the documentation. I created a template a while back which uses GNU Hello: https://codeberg.org/excalamus/guix-packaging-tutorial/src/branch/master/guix-packaging-tutorial.org#user-content-headline-13 Last month, I started writing a case study for packaging posh, the Policy-compliant Ordinary SHell. It's incomplete yet will hopefully will give a clearer idea of what I'm thinking. I've attached it to this email. ------=_Part_4141553_681118460.1709106709593 Content-Type: application/octet-stream; name=guix-packaging-tutorial-posh.org Content-Transfer-Encoding: base64 X-ZM_AttachId: 139283995095940060 Content-Disposition: attachment; filename=guix-packaging-tutorial-posh.org IytUSVRMRTogR3VpeCBQYWNrYWdpbmcgVHV0b3JpYWw6IHBvc2gKIytEQVRFOiAyMDI0LTAyLTI4 CiMrVE9DOiB0CiMrSFRNTF9IRUFEOiA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQv Y3NzIiBocmVmPSJvcmcuY3NzIi8+CiMrcHJvcGVydHk6IGhlYWRlci1hcmdzIDpldmFsIG5ldmVy CiMgQ3JlYXRlZDogMjAyNC0wMS0xMwoKPGluc2VydCB0b3AgbWF0dGVyIGhlcmU+CgoqIENPTU1F TlQgTm90ZSB0byBhdXRob3JzCioqIENPTU1FTlQgVXNpbmcgRW1hY3MgT3JnIG1vZGUKVGhpcyBk b2N1bWVudCB3YXMgd3JpdHRlbiBpbiBHTlUgRW1hY3MgMjkuMSB1c2luZyBPcmcgbW9kZSB2ZXJz aW9uCjkuNy1wcmUuICBSZWFkaW5nIGFuZCBlZGl0aW5nIHRoZSBzb3VyY2UgaXMgcG9zc2libGUg dXNpbmcgYW55IHRleHQKZWRpdG9yLiAgT3JnIGZ1bmN0aW9uYWxpdHkgYW5kIExpc3AgZnVuY3Rp b25zIChsaWtlbHkpIHJlcXVpcmUgRW1hY3MKdmVyc2lvbiA+PSAyNi4gIEdldCBFbWFjcyBhdCBo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzLy4KClNlZSBbW2h0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvbWFudWFsL2h0bWxfbm9kZS9vcmcvRW1waGFzaXMtYW5kLU1v bm9zcGFjZS5odG1sXVtFbXBoYXNpcyBhbmQgTW9ub3NwYWNlXV0gZm9yIGJhc2ljIE9yZyBtYXJr dXAgc3ludGF4LgoKSGVhZGVycyBhcmUgbGluZXMgYmVnaW5uaW5nIHdpdGggYSAiKiIuICBIZWFk ZXIgc2VjdGlvbnMgYXJlIGNhbGxlZAoic3VidHJlZXMuIiAgQ29sbGFwc2UgaGVhZGVyIHZpc2li bGl0eSB1c2luZyA9Uy1UQUI9ICg9TS14Cm9yZy1zaGlmdHRhYj0pLiAgTmF2aWdhdGUgYmV0d2Vl biBoZWFkZXJzIHVzaW5nID1DLWMgQy1uPSAoPU0teApvcmctbmV4dC12aXNpYmxlLWhlYWRpbmc9 KSBhbmQgPUMtYyBDLXA9ICg9TS14ZApvcmctcHJldmlvdXMtdmlzaWJsZS1oZWFkaW5nPSkuICBI aWRlIGFsbCB0ZXh0IGJ1dCB0aGUgY3VycmVudCBzdWJ0cmVlCnVzaW5nID1DLXggbiBzPSAoPU0t eCBvcmctbmFycm93LXRvLXN1YnRyZWU9KS4gIFVuaGlkZSBhbGwgaGlkZGVuIHRleHQKd2l0aCA9 Qy14IG4gdz0gKD1NLXggd2lkZW49KS4gIFNlZSBbW2luZm86ZW1hY3MjTmFycm93aW5nXVtOYXJy b3dpbmddXS4KCk9yZyBtb2RlIGFsbG93cyBleGVjdXRpbmcgZW1iZWRlZCBzb3VyY2UgY29kZS4g IFByZXNzID1DLWMgQy1jPSBvcgpjYWxsID1NLXggb3JnLWV4ZWN1dGUtc291cmNlLWJsb2NrPSB3 aGVuIHRoZSBjdXJzb3IgaXMgaW4gYSBzb3VyY2UKYmxvY2sgdG8gZXhlY3V0ZSB0aGUgY29kZS4g IFNlZSBbW2h0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZW1hY3MvbWFudWFsL2h0bWxfbm9k ZS9vcmcvV29ya2luZy13aXRoLVNvdXJjZS1Db2RlLmh0bWxdW1dvcmtpbmcgd2l0aCBTb3VyY2Ug Q29kZV1dLgoKV3JpdGUgc291cmNlIGNvZGUgY29udGFpbmVkIGluIGJsb2NrcyBtYXJrZWQgd2l0 aCB0aGUgPTp0YW5nbGU9IGhlYWRlcgphcmd1bWVudCB0byBkaXNrIGFzIHN0YW5kYWxvbmUgZmls ZXMgYnkgInRhbmdsaW5nIiAoc2VlIHNlY3Rpb24gW1sqIFRhbmdsZV1bVGFuZ2xlXV0KYmVsb3cp LgoKRXhwb3J0IHRoaXMgZG9jdW1lbnQgdG8gVGV4aW5mbyB1c2luZyA9TS14Cm9yZy10ZXhpbmZv LWV4cG9ydC10by10ZXhpbmZvPSAoc2VlIHNlY3Rpb24gW1sqIEV4cG9ydCB0byBUZXhpbmZvIGZv cm1hdF1bRXhwb3J0IHRvIFRleGluZm8gZm9ybWF0XV0KYmVsb3cpIGFuZCBpbmZvIHVzaW5nID1N LXggb3JnLXRleGluZm8tZXhwb3J0LXRvLWluZm89IChzZWUgc2VjdGlvbiBbWyogRXhwb3J0IHRv IGluZm8KIGZvcm1hdF1bRXhwb3J0IHRvIGluZm8gZm9ybWF0XV0gYmVsb3cpLiAgV2hlbiB1c2lu ZyB0aGUgRW1hY3MgaW5mbyByZWFkZXIsIGxvYWQKYW4gaW5mbyBtYW51YWwgZnJvbSBzb3VyY2Ug dXNpbmcgPUMtdSBDLWggaQo8Z3VpeC1wYWNrYWdpbmctdHV0b3JpYWwuaW5mbz49LiAgUmVhZCB0 aGUgZ2VuZXJhdGVkIGluZm8gZmlsZSB3aXRoCnRoZSA9aW5mbz0gYXBwbGljYXRpb24gdXNpbmcK CiMrYmVnaW5fc3JjIHNoIDpldmFsIG5ldmVyLWV4cG9ydAppbmZvIC4vZ3VpeC1wYWNrYWdpbmct dHV0b3JpYWwuaW5mbwojK2VuZF9zcmMKCioqKiBDT01NRU5UIFRhbmdsZQpHZW5lcmF0ZSBzdGFu ZGFsb25lIHNvdXJjZSBjb2RlIGZpbGVzIGZyb20gY29kZSBibG9ja3MuCiMrYmVnaW5fc3JjIGVt YWNzLWxpc3AgOnJlc3VsdHMgbm9uZSA6ZXZhbCBuZXZlci1leHBvcnQKKG9yZy1iYWJlbC10YW5n bGUpCiMrZW5kX3NyYwoKKioqIENPTU1FTlQgRXhwb3J0IHRvIFRleGluZm8gZm9ybWF0CkNvbnZl cnQgdGhpcyBkb2N1bWVudCB0byBUZXhpbmZvLgojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDpyZXN1 bHRzIG5vbmUgOmV2YWwgbmV2ZXItZXhwb3J0CihvcmctdGV4aW5mby1leHBvcnQtdG8tdGV4aW5m bykKIytlbmRfc3JjCgoqKiogQ09NTUVOVCBFeHBvcnQgdG8gaW5mbyBmb3JtYXQKQ29udmVydCB0 aGlzIGRvY3VtZW50IHRvIGluZm8uCiMrYmVnaW5fc3JjIGVtYWNzLWxpc3AgOnJlc3VsdHMgbm9u ZSA6ZXZhbCBuZXZlci1leHBvcnQKKG9yZy10ZXhpbmZvLWV4cG9ydC10by1pbmZvKQojK2VuZF9z cmMKCioqIENPTU1FTlQgQ29udmVuaWVuY2UgZnVuY3Rpb25zCioqKiBDT01NRU5UIGxpbmstdG8t Y3VycmVudC1pbmZvLW5vZGUKIytiZWdpbl9zcmMgZW1hY3MtbGlzcAooZGVmdW4geGMvbGluay10 by1jdXJyZW50LWluZm8tbm9kZSAoJm9wdGlvbmFsIGFyZykKICAiQ3JlYXRlIGxpbmsgdG8gY3Vy cmVudCBJbmZvIG5vZGUgaW4gYSB2YXJpZXR5IG9mIGZvcm1hdHMuCgpXaXRoIGEgbmVnYXRpdmUg cHJlZml4LCBwbGFjZSBPcmcgbGluayB0byBpbmZvIG5vZGUgd2l0aApkZXNjcmlwdGlvbiBvZiB0 aGUgY3VycmVudCBub2RlIGludG8gdGhlIGtpbGwgcmluZy4KCldpdGggbm8gcHJlZml4LCBwbGFj ZSB0aGUgdXJsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGN1cnJlbnQgSW5mbwpub2RlIGludG8gdGhl IGtpbGwgcmluZy4KCldpdGggdW5pdmVyc2FsIHByZWZpeCwgdmlzaXQgdXJsIHdpdGggZGVmYXVs dCB3ZWIgYnJvd3NlciBhbmQgZG8Kbm90IHB1dCB1cmwgaW50byB0aGUga2lsbCByaW5nLgoKV2l0 aCBudW1lcmljIHByZWZpeCwgcGxhY2UgT3JnIGxpbmsgd2l0aCBub2RlIG5hbWUgYXMgZGVzY3Jp cHRpb24KaW50byB0aGUga2lsbCByaW5nLiIKICAoaW50ZXJhY3RpdmUgInAiKQogICh1bmxlc3Mg SW5mby1jdXJyZW50LW5vZGUKICAgICh1c2VyLWVycm9yICJObyBjdXJyZW50IEluZm8gbm9kZSIp KQogIChsZXQqICgoaW5mby1maWxlIChpZiAoc3RyaW5ncCBJbmZvLWN1cnJlbnQtZmlsZSkKICAg ICAgICAgICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1zYW5zLWV4dGVuc2lvbgogICAgICAgICAg ICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgSW5mby1jdXJyZW50LWZpbGUp KSkpCiAgICAgICAgIChub2RlIEluZm8tY3VycmVudC1ub2RlKQogICAgICAgICAodXJsIChjb25k CiAgICAgICAgICAgICAgICgob3IgKHN0cmluZz0gaW5mby1maWxlICJlbWFjcyIpIChzdHJpbmc9 IGluZm8tZmlsZSAib3JnIikgKHN0cmluZz0gaW5mby1maWxlICJlbGlzcCIpKQogICAgICAgICAg ICAgICAgKGNvbmNhdCAiaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9lbWFjcy9tYW51YWwv aHRtbF9ub2RlLyIKICAgICAgICAgICAgICAgICAgICAgICAgaW5mby1maWxlICIvIgogICAgICAg ICAgICAgICAgICAgICAgICAoaWYgKHN0cmluZz0gbm9kZSAiVG9wIikgIiIKICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uY2F0IChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcgIiAiICItIiBu b2RlIHQpICIuaHRtbCIpKSkpCiAgICAgICAgICAgICAgICgoc3RyaW5nPSBpbmZvLWZpbGUgImd1 aWxlIikKICAgICAgICAgICAgICAgIChjb25jYXQgImh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdh cmUvZ3VpbGUvbWFudWFsL2h0bWxfbm9kZS8iCiAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo c3RyaW5nPSBub2RlICJUb3AiKSAiIgogICAgICAgICAgICAgICAgICAgICAgICAgIChjb25jYXQg KHJlcGxhY2UtcmVnZXhwLWluLXN0cmluZyAiICIgIi0iIG5vZGUgdCkgIi5odG1sIikpKSkKICAg ICAgICAgICAgICAgKChzdHJpbmc9IGluZm8tZmlsZSAiZ3VpeCIpCiAgICAgICAgICAgICAgICAo Y29uY2F0ICJodHRwczovL2d1aXguZ251Lm9yZy9lbi9tYW51YWwvZGV2ZWwvZW4vaHRtbF9ub2Rl LyIKICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChzdHJpbmc9IG5vZGUgIlRvcCIpICIiCiAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbmNhdCAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5n ICIgIiAiLSIgbm9kZSB0KSAiLmh0bWwiKSkpKQogICAgICAgICAgICAgICApKSkKICAgIChjb25k CiAgICAgKChlcSBhcmcgLTEpICA7IC0xIHByZWZpeAogICAgICAoa2lsbC1uZXcgKGZvcm1hdCAi W1tpbmZvOiVzIyVzXVslc11dIiBpbmZvLWZpbGUgbm9kZSBub2RlKSkKICAgICAgKG1lc3NhZ2Ug IiVzIiAoY2FyIGtpbGwtcmluZykpKQogICAgICgoZXEgYXJnIDEpICA7IG5vIHByZWZpeAogICAg ICAoa2lsbC1uZXcgdXJsKQogICAgICAobWVzc2FnZSAiJXMiIChjYXIga2lsbC1yaW5nKSkpCiAg ICAgKChlcSBhcmcgNCkgIDsgdW5pdmVyc2FsIHByZWZpeAogICAgICAoYnJvd3NlLXVybC1kZWZh dWx0LWJyb3dzZXIgdXJsKSkKICAgICAodCAgICAgICAgICAgOyBhbnkgb3RoZXIgcHJlZml4CiAg ICAgIChraWxsLW5ldyAoZm9ybWF0ICJbWyVzXVslc11dIiB1cmwgbm9kZSkpCiAgICAgIChtZXNz YWdlICIlcyIgKGNhciBraWxsLXJpbmcpKSkpKSkKIytlbmRfc3JjCgoqKiogQ09NTUVOVCBidWZm ZXItbG9jYWwtYWJicmV2cwpBbiAiYWJicmV2IiBpcyBFbWFjcyBqYXJnb24gZm9yIGEgc2VxdWVu Y2Ugb2YgY2hhcmFjdGVycyB0aGF0IGV4cGFuZHMKKGlzIHRleHQgcmVwbGFjZWQpIHdpdGggZGlm ZmVyZW50IHRleHQuICBGb3IgZXhhbXBsZSwgcmF0aGVyIHRoYW4Kd3JpdGUgb3V0ICJHVUlYX1BB Q0tBR0lOR19UVVRPUklBTF9XT1JLRElSIiBldmVyeSB0aW1lLCB3ZSBkZWZpbmUgYQpidWZmZXIt bG9jYWwgYWJicmV2ICJnZCIgd2hpY2ggZXhwYW5kcyB0bwoiR1VJWF9QQUNLQUdJTkdfVFVUT1JJ QUxfV09SS0RJUiIuCgojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDpyZXN1bHRzIG5vbmUgOmV2YWwg bmV2ZXItZXhwb3J0CihkZWZ1biBteS1kZWZpbmUtbG9jYWwtYWJicmV2LXRhYmxlIChkZWZpbml0 aW9ucykKICAiRGVmaW5lIGFiYnJldiB0YWJsZSB3aXRoIERFRklOSVRJT05TIGxvY2FsIHRvIHRo ZSBjdXJyZW50IGJ1ZmZlci4KCkFiYnJldiBERUZJTklUSU9OUyBpcyBhIGxpc3Qgb2YgZWxlbWVu dHMgb2YgdGhlIGZvcm0gKEFCQlJFVk5BTUUKRVhQQU5TSU9OIC4uLikgdGhhdCBhcmUgcGFzc2Vk IHRvIGBkZWZpbmUtYWJicmV2Jy4KClRoZSBsb2NhbCBhYmJyZXYgdGFibGUgaGFzIG5hbWUgb2Yg dGhlIGN1cnJlbnQgYnVmZmVyIGFwcGVuZGVkCiB3aXRoIFwiLWFiYnJldi10YWJsZVwiLgoKVXNl IGBteS1jbGVhci1sb2NhbC1hYmJyZXYtdGFibGUnIHRvIHJlbW92ZSBsb2NhbCBhYmJyZXYKZGVm aW5pdGlvbnMuIgogIChsZXQqICgodGFibGUtc3ltYm9sIChpbnRlcm4gKGNvbmNhdCAoYnVmZmVy LW5hbWUpICItYWJicmV2LXRhYmxlIikpKSkgOyBpbnNlcnRzIGluIG9iYXJyYXkKICAgIChkZWZp bmUtYWJicmV2LXRhYmxlIHRhYmxlLXN5bWJvbCBkZWZpbml0aW9ucykKICAgIChzZXRxLWxvY2Fs IGxvY2FsLWFiYnJldi10YWJsZSAoc3ltYm9sLXZhbHVlIHRhYmxlLXN5bWJvbCkpCiAgICAobWVz c2FnZSAiQ3JlYXRlZCBsb2NhbCBhYmJyZXYgdGFibGUgJyVzJyIgdGFibGUtc3ltYm9sKSkpCgoo ZGVmdW4gbXktY2xlYXItbG9jYWwtYWJicmV2LXRhYmxlICgpCiAgIkNsZWFyIGJ1ZmZlci1sb2Nh bCBhYmJyZXZzLgoKU2VlIGBteS1kZWZpbmUtbG9jYWwtYWJicmV2LXRhYmxlJy4iCiAgKGxldCog KChidWZmZXItdGFibGUtc3RyaW5nIChjb25jYXQgKGJ1ZmZlci1uYW1lKSAiLWFiYnJldi10YWJs ZSIpKQogICAgICAgICAoYnVmZmVyLXRhYmxlLXN5bWJvbCAoaW50ZXJuLXNvZnQgYnVmZmVyLXRh YmxlLXN0cmluZykpICAgICAgICA7IG5pbCBpZiBub3QgaW4gb2JhcnJheQogICAgICAgICAoYnVm ZmVyLXRhYmxlIChpZiBidWZmZXItdGFibGUtc3ltYm9sCiAgICAgICAgICAgICAgICAgICAgICAg ICAgIChzeW1ib2wtdmFsdWUgYnVmZmVyLXRhYmxlLXN5bWJvbCkpKSkKICAgIChjb25kICgoYWJi cmV2LXRhYmxlLXAgYnVmZmVyLXRhYmxlKQogICAgICAgICAgIChjbGVhci1hYmJyZXYtdGFibGUg YnVmZmVyLXRhYmxlKQogICAgICAgICAgIChpZiAoaW50ZXJuLXNvZnQgYnVmZmVyLXRhYmxlLXN0 cmluZykKICAgICAgICAgICAgICAgKHVuaW50ZXJuIGJ1ZmZlci10YWJsZS1zdHJpbmcpKQogICAg ICAgICAgIChtZXNzYWdlICJDbGVhcmVkIGxvY2FsIGFiYnJldiB0YWJsZSAnJXMnIiBidWZmZXIt dGFibGUtc3RyaW5nKSkpKSkKIytlbmRfc3JjCgojK2JlZ2luX3NyYyBlbWFjcy1saXNwIDpyZXN1 bHRzIG5vbmUgOmV2YWwgbmV2ZXItZXhwb3J0CihteS1jbGVhci1sb2NhbC1hYmJyZXYtdGFibGUp CihteS1kZWZpbmUtbG9jYWwtYWJicmV2LXRhYmxlCiAgICcoOygiYWJicmV2IiAiZXhwYW5zaW9u IiBuaWwgOmNhc2UtZml4ZWQgdCkKICAgICAoImdkIiAiR1VJWF9QQUNLQUdJTkdfVFVUT1JJQUxf V09SS0RJUiIpCiAgICAgKCIkZ2QiICIkR1VJWF9QQUNLQUdJTkdfVFVUT1JJQUxfV09SS0RJUiIp CiAgICApKQojK2VuZF9zcmMKCiogSW50cm9kdWN0aW9uCiMgVGhpcyBzaG91bGQgYmUgd3JpdHRl biBsYXN0LiAgSG93ZXZlciwgZGVmaW5pbmcgYSBmZXcgdGhpbmdzIHVwCiMgZnJvbnQsIHN1Y2gg YXMgdGhlIGludGVuZGVkIGF1ZGllbmNlLCB3aWxsIGhlbHAgdXMgd2hpbGUgd3JpdGluZy4KClRo aXMgZG9jdW1lbnQgZGV0YWlscyB0aGUgcHJvY2VzcyBvZiBwYWNrYWdpbmcgdmVyc2lvbiAwLjE0 LjEgb2YKPXBvc2g9LCB0aGUgUG9saWN5LWNvbXBsaWFudCBPcmRpbmFyeSBTSGVsbCwgZm9yIEd1 aXhbZm46NV0uICA9cG9zaD0KaXMgYmFzZWQgb24gPXBka3NoPSwgdGhlIFB1YmxpYyBEb21haW4g S29ybiBTSGVsbCwgYW5kIGlzIGtub3duIGZvcgpiZWluZyBQT1NJWCBjb21wbGlhbnQuCgpUaGUg aW50ZW5kZWQgYXVkaWVuY2UgaXMuLi4KCiMgPyBwZW9wbGUgaW50ZXJlc3RlZCBpbiBzb2Z0d2Fy ZSBkZXBsb3ltZW50CiMgPyBnZXR0aW5nIGNvbXB1dGVyIHByb2dyYW1zIGZyb20gb25lIG1hY2hp bmUgdG8gYW5vdGhlcgojID8gZGV2ZWxvcGVycyBvZiBzb2Z0d2FyZSBhcHBsaWNhdGlvbnMgYW5k IGxpYnJhcmllcwojID8gZW5kLXVzZXJzIG9mIHNvZnR3YXJlIGFwcGxpY2F0aW9ucyBhbmQgbGli cmFyaWVzCiMgPyAuLi53aG8gbWF5IGJlY29tZSBHdWl4IGNvbnRyaWJ1dG9ycyAoc2VlIGNvbW1l bnQgYWJvdXQgcGFja2FnaW5nIGJpbmFyaWVzKQojID8gZnJlZSBzb2Z0d2FyZSBhZHZvY2F0ZXMK IyA/IC4uLgoKVGhpcyB0dXRvcmlhbCBhc3N1bWVzIHlvdSBoYXZlIHRoZSByZWFkIHRoZSBHdWl4 IFtbaW5mbzpndWl4I0ludHJvZHVjdGlvbl1bSW50cm9kdWN0aW9uXV0gYW5kIGhhdmUKZWl0aGVy IGluc3RhbGxlZCBbW2luZm86Z3VpeCNJbnN0YWxsYXRpb25dW0d1aXggb24gYSBmb3JlaWduIGRp c3Ryb11dIG9yIHVzZSB0aGUgW1tpbmZvOmd1aXgjU3lzdGVtIEluc3RhbGxhdGlvbl1bR3VpeCBT eXN0ZW1dXS4KCkNyZWF0aW5nIGEgR3VpeCBwYWNrYWdlIHJlcXVpcmVzIGEgc2hlbGwuICBJdCdz IGFzc3VtZWQgeW91IGhhdmUgYQpiYXNpYyB1bmRlcnN0YW5kaW5nIG9mIHNoZWxsIGNvbW1hbmRz LCBzdWNoIGFzIHRob3NlIHByb3ZpZGVkIGJ5Cj1jb3JldXRpbHM9W2ZuOjFdLiAgWW91IHNob3Vs ZCBmZWVsIGNvbWZvcnRhYmxlIHdpdGggdmFyaWFibGVzIGFuZApjb21tYW5kIHN1YnN0aXR1dGlv bi4gIEtub3cgaG93IHRvIHVzZSB0aGUgZm9sbG93aW5nIGhlbHAgc3lzdGVtczoKCi0gfjxjb21t YW5kPiAtLWhlbHB+Ci0gfm1hbiA8Y29tbWFuZD5+Ci0gfmluZm8gPGNvbW1hbmQ+fgoKVGhpcyB0 dXRvcmlhbCB1c2VzIFtbaW5mbzpiYXNoI1RvcF1bQmFzaF1dLgoKR3VpeCBwYWNrYWdlIGRlZmlu aXRpb25zIGFyZSB3cml0dGVuIGluIEdOVSBHdWlsZSwgYSBkaWFsZWN0IG9mClNjaGVtZS4gIEV4 cGxhaW5pbmcgR3VpbGUgaXMgYmV5b25kIHRoZSBzY29wZSBvZiB0aGlzIGRvY3VtZW50LiAgSXQg aXMKYXNzdW1lZCB0aGF0IHlvdSBoYXZlIHNvbWUgZmFtaWxpYXJpdHkgd2l0aCBMaXNwIGFuZCBz LWV4cHJlc3Npb25zLgoKPWdpdD0gaXMgdXNlZCBmb3IgZGVtb25zdHJhdGlvbiBwdXJwb3NlcyBh bmQgaXMgbm90IHJlcXVpcmVkLgoKU29tZSBwYXJ0cyBvZiB0aGlzIHR1dG9yaWFsIHVzZSBhIHdl YiBicm93c2VyIGluIGEgZ3JhcGhpY2FsCmVudmlyb25tZW50LCBhbHRob3VnaCBuZWl0aGVyIGlz IG5lY2Vzc2FyeS4KCiogU2V0dXAKVG8gYmVnaW4sIGxldCdzIGNyZWF0ZSBhIHBsYWNlIHRvIHdv cmsuICBUaGUgZm9sbG93aW5nIGRlZmluZXMgYW4KZW52aXJvbm1lbnQgdmFyaWFibGUgd2UnbGwg dXNlIHRvIHJlZmVyZW5jZSBvdXIgd29ya2luZyBkaXJlY3RvcnkuCk5vdGUgdGhhdCBpdCB1c2Vz ID0vdG1wPSB3aGljaCBpcyByZW1vdmVkIGVhY2ggdGltZSB0aGUgY29tcHV0ZXIKcmVib290cy4g IENoYW5nZSBpdCB0byBzb21ldGhpbmcgZWxzZSBpZiB5b3Ugd2FudCB0byBrZWVwIHlvdXIgd29y ay4KCiMrYmVnaW5fc3JjIHNoIDpyZXN1bHRzIG91dHB1dCA6ZXhwb3J0cyBjb2RlIDpzZXNzaW9u ICpndWl4LXR1dG9yaWFsKiA6ZXZhbCBuZXZlci1leHBvcnQKIyBjcmVhdGUgZW52aXJvbm1lbnQg dmFyaWFibGUKZXhwb3J0IEdVSVhfUEFDS0FHSU5HX1RVVE9SSUFMX1dPUktESVI9L3RtcC9ndWl4 LXBhY2thZ2luZy10dXRvcmlhbAoKIyBkZWxldGUgZGlyZWN0b3J5IGlmIGl0IGV4aXN0cwpybSAt cmYgIiRHVUlYX1BBQ0tBR0lOR19UVVRPUklBTF9XT1JLRElSIgoKIyAocmUpY3JlYXRlIGRpcmVj dG9yeQpta2RpciAtcCAiJEdVSVhfUEFDS0FHSU5HX1RVVE9SSUFMX1dPUktESVIiCgojIGNoYW5n ZSBkaXJlY3RvcnkKY2QgIiRHVUlYX1BBQ0tBR0lOR19UVVRPUklBTF9XT1JLRElSIgoKIyBjb25m aXJtIG91ciBsb2NhdGlvbgplY2hvICJDdXJyZW50IGRpcmVjdG9yeTogJChwd2QpIgojK2VuZF9z cmMKCiMrUkVTVUxUUzoKOiBDdXJyZW50IGRpcmVjdG9yeTogL3RtcC9ndWl4LXBhY2thZ2luZy10 dXRvcmlhbAoKKiBQYWNrYWdpbmcgdGhlICJQb2xpY3ktY29tcGxpYW50IE9yZGluYXJ5IFNIZWxs IgpHdWl4IHBhY2thZ2VzIGFyZSBkZWZpbmVkIGFjY29yZGluZyB0byB0aGUgPXBhY2thZ2U9IGFu ZCA9b3JpZ2luPSBkYXRhCnR5cGVzW2ZuOjJdW2ZuOjNdLiAgVGhlIG1pbmltYWwgaW5mb3JtYXRp b24gbmVlZGVkIGlzOgoKLSBuYW1lCi0gdmVyc2lvbgotIHNvdXJjZSBVUkkKLSBzaGEyNTYgaGFz aCBvZiB0aGUgc291cmNlCi0gYnVpbGQgc3lzdGVtCi0gaG9tZS1wYWdlCi0gc3lub3BzaXMKLSBk ZXNjcmlwdGlvbgotIGxpY2Vuc2UKCklmIHlvdSBrbm93IHdoYXQgeW91IHdhbnQgdG8gYnVpbGQs IHRoZW4geW91IGxpa2VseSBoYXZlIHRoZSAibmFtZSIuClRoZSBuZXh0IHN0ZXAgaXMgZ2V0dGlu ZyB0aGUgInNvdXJjZSBVUkkiLgoKKiogTG9jYXRlIHRoZSBzb3VyY2UgVVJJClBhY2thZ2VzIHJl cXVpcmUgYSAic291cmNlIFVSSSIsIG9yIHN0cmluZyBvZiBjaGFyYWN0ZXJzIHVzZWQgdG8gbmFt ZQphIHJlc291cmNlIG9uIHRoZSBJbnRlcm5ldC4gIEZvciBHdWl4LCB0aGUgcmVzb3VyY2UgaXMg dHlwaWNhbGx5CnNvdXJjZSBjb2RlLiAgRnJlZSBzb2Z0d2FyZSBwcm9qZWN0cyBkaXN0cmlidXRl IHNvdXJjZSBjb2RlIGluCmRpZmZlcmVudCB3YXlzLiAgU29tZSBwcm9qZWN0cyB1c2UgYSB2ZXJz aW9uIGNvbnRyb2wgc3lzdGVtLCBvdGhlcnMKcHJvdmlkZSBmaWxlIGJ1bmRsZXMgKHN1Y2ggYXMg PS50YXI9IG9yID0udGFyLmd6PSBhcmNoaXZlcykuCgpBdCB0aGUgdGltZSBvZiB3cml0aW5nLCB0 aGUgc291cmNlIGNvZGUgZm9yID1wb3NoPSBpcyBob3N0ZWQgb24KRGViaWFuJ3MgY29sbGFib3Jh dGl2ZSBkZXZlbG9wbWVudCBzZXJ2ZXIsIFNhbHNhW2ZuOjRdLiAgU2Fsc2EgaXMgYQpHaXRMYWIg Zm9yZ2Ugd2hpY2ggdXNlcywgdW5zdXJwcmlzaW5nbHksIHRoZSA9Z2l0PSB2ZXJzaW9uIGNvbnRy b2wKc3lzdGVtLiAgVGFnZ2VkIHZlcnNpb25zIGFyZSBhdmFpbGFibGUgZm9yIGRvd25sb2FkIGlu IHNldmVyYWwKZm9ybWF0cywgaW5jbHVkaW5nID0uemlwPSwgPS50YXIuZ3o9LCA9LnRhci5iej0s IGFuZCA9LnRhcj0uCgpJbiB0aGlzIGNhc2UsIHRoZXJlIGFyZSBzZXZlcmFsIG9wdGlvbnMgZm9y IHRoZSBzb3VyY2U6IHRoZSA9Z2l0PSByZXBvCml0c2VsZiBvciBhbiBhcmNoaXZlIGZpbGUuICBX ZSdsbCB1c2UgYW4gYXJjaGl2ZSBmaWxlIGluIHRoaXMKdHV0b3JpYWwsIGFsdGhvdWdoIHRoZSBj aG9pY2UgaXMgYXJiaXRyYXJ5LgoKVGhlIGxvY2F0aW9uIG9mIHNvdXJjZSBjb2RlIG1heSBub3Qg YmUgb2J2aW91cy4gIFRoZSBHaXRMYWIgd2ViCmludGVyZmFjZSBmb3IgPXBvc2g9IHJlcXVpcmVz IHNlbGVjdGluZyBicmFuY2hlcyBhbmQgdGFncyBmcm9tCmRyb3AtZG93bi4gIFRoZSBkcm9wLWRv d24gb25seSBzaG93cyBhIHRhZyBmb3IgImRlYmlhbi8wLjE0LjEiIHdoZW4KcHJlc3NlZFtmbjo2 XS4gIEFmdGVyIHNlbGVjdGluZyAiZGViaWFuLzAuMTQuMSIsIHdlIGV2ZW50dWFsbHkgc2VlCnRo YXQgdGhlIEdpdExhYiB3ZWIgaW50ZXJmYWNlIGhhcyBhbiB1bmxhYmVsZWQgIkRvd25sb2FkIiBi dXR0b24uICBUaGUKYnV0dG9uIG9ubHkgc2hvd3MgdGV4dCBvbiBob3Zlcltmbjo3XS4gIFByZXNz aW5nIGl0IHJldmVhbHMgZm91cgpvcHRpb25zOiA9LnppcD0sID0udGFyLmd6PSwgPS50YXIuYno9 LCBhbmQgPS50YXI9LiAgUmlnaHQtY2xpY2sKPS50YXIuZ3o9IGFuZCBjb3B5IHRoZSBsaW5rLgoK VGhlIHNvdXJjZSBVUkkgZm9yID1wb3NoPSB2ZXJzaW9uIDAuMTQuMSBpczoKCiMrYmVnaW5fZXhh bXBsZQoiaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2NsaW50L3Bvc2gvLS9hcmNoaXZlL2RlYmlh bi8wLjE0LjEvcG9zaC1kZWJpYW4tMC4xNC4xLnRhci5neiIKIytlbmRfZXhhbXBsZQoKKiogR2V0 IHRoZSBoYXNoCkd1aXggYnVpbGRzIGFyZSBvZnRlbiBiaXQtZm9yLWJpdCByZXByb2R1Y2libGUu ICBVc2VycyBkb24ndCBuZWVkIHRvCnRydXN0IGJpbmFyaWVzIGZyb20gdGhlIEludGVybmV0LiAg VGhleSBjYW4gdmFsaWRhdGUgYSBkb3dubG9hZCBieQpjb21wYXJpbmcgaXQgdG8gYSBsb2NhbGx5 IGJ1aWx0IHZlcnNpb24uICBUaGlzIGlzIGRvbmUgdXNpbmcKY3J5cHRvZ3JhcGhpYyBoYXNoZXMs IGEgbWF0aGVtYXRpY2FsIG1ldGhvZCBvZiB2YWxpZGF0aW9uLgoKQSBwYWNrYWdlIHJlY2lwZSBt dXN0IGNvbnRhaW4gYSBoYXNoLiAgVGhlIGhhc2ggaXMgdXNlZCB0byBjb25maXJtCnRoYXQgdGhl IHNvdXJjZSBhIHVzZXIgZG93bmxvYWRzIGlzIHdoYXQgdGhlIHJlY2lwZSBjYWxsZWQgZm9yLgoK VXNlIH5ndWl4IGRvd25sb2FkfiB0byBjYWxjdWxhdGUgdGhlIHNvdXJjZSBjb2RlIGhhc2hbZm46 OF06CgojK2JlZ2luX3NyYyBzaCA6cmVzdWx0cyBvdXRwdXQgOmV4cG9ydHMgYm90aCA6c2Vzc2lv biAqZ3VpeC10dXRvcmlhbCogOmFzeW5jIHQgOmV2YWwgbmV2ZXItZXhwb3J0Cmd1aXggZG93bmxv YWQgaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2NsaW50L3Bvc2gvLS9hcmNoaXZlL2RlYmlhbi8w LjE0LjEvcG9zaC1kZWJpYW4tMC4xNC4xLnRhci5negojK2VuZF9zcmMKCiMrUkVTVUxUUzoKOiBT dGFydGluZyBkb3dubG9hZCBvZiAvdG1wL2d1aXgtZmlsZS5Wc21LMmQKOiBGcm9tIGh0dHBzOi8v c2Fsc2EuZGViaWFuLm9yZy9jbGludC9wb3NoLy0vYXJjaGl2ZS9kZWJpYW4vMC4xNC4xL3Bvc2gt ZGViaWFuLTAuMTQuMS50YXIuZ3ouLi4KOiAg4oCmMC4xNC4xLnRhci5neiAgMjQzS2lCICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDA5S2lCL3MgMDA6MDEg4paV4paI4paI 4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paI4paPIDEwMC4w JQo6IC9nbnUvc3RvcmUvYXNkazc0YTg4cW0wNndhbmNxY3FtMm1jY3pkNWdwbW4tcG9zaC1kZWJp YW4tMC4xNC4xLnRhci5nego6IDA3MHhubjk5NmNqbmM1eXpwNTgxOXkzNnNnZmlra3JwbGhyaTRr eDVyMzZoMWZtcDY0MWQKClRoZSBzb3VyY2UgY29kZSBoYXNoIGZvciA9cG9zaD0gMC4xNC4xIGlz OgoKIytiZWdpbl9leGFtcGxlCiIwNzB4bm45OTZjam5jNXl6cDU4MTl5MzZzZ2Zpa2tycGxocmk0 a3g1cjM2aDFmbXA2NDFkIgojK2VuZF9leGFtcGxlCgoqKiBJZGVudGlmeSB0aGUgYnVpbGQgc3lz dGVtClRoZSBuZXh0IHN0ZXAgYWZ0ZXIgZmluZGluZyB0aGUgc291cmNlIGNvZGUgaXMgdG8gaWRl bnRpZnkgdGhlIGJ1aWxkCnN5c3RlbVtmbjo5XS4gIEhvcGVmdWxseSB0aGUgYXV0aG9ycyBsZWZ0 IGEgbm90ZSBhYm91dCBob3cgdG8gYnVpbGQKdGhlIHByb2plY3QhCgpGb3IgZGVtb25zdHJhdGlv biBwdXJwb3Nlcywgd2UgY2xvbmUgdGhlID1wb3NoPSByZXBvc2l0b3J5IGFuZApjaGVja291dCB2 ZXJzaW9uIDAuMTQuMS4KCiMrYmVnaW5fc3JjIHNoIDpyZXN1bHRzIG91dHB1dCA6ZXhwb3J0cyBi b3RoIDpzZXNzaW9uICpndWl4LXR1dG9yaWFsKiA6YXN5bmMgdCA6ZXZhbCBuZXZlci1leHBvcnQK IyBjbG9uZSBzb3VyY2UgY29kZQpnaXQgY2xvbmUgaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2Ns aW50L3Bvc2guZ2l0CgojIGVudGVyIHJlcG9zaXRvcnkgZGlyZWN0b3J5CmNkIHBvc2ggJiYgZWNo byAiQ3VycmVudCBkaXJlY3Rvcnk6ICQocHdkKSIKCiMgY2hlY2tvdXQgc291cmNlIGNvZGUgY29y cmVzcG9uZGluZyB0byB2ZXJzaW9uIDAuMTQuMQpnaXQgLWMgYWR2aWNlLmRldGFjaGVkSGVhZD1m YWxzZSBjaGVja291dCBkZWJpYW4vMC4xNC4xCiMrZW5kX3NyYwoKIytSRVNVTFRTOgo6IENsb25p bmcgaW50byAncG9zaCcuLi4KOiByZW1vdGU6IEVudW1lcmF0aW5nIG9iamVjdHM6IDEzMTgsIGRv bmUuCjogcmVtb3RlOiBUb3RhbCAxMzE4IChkZWx0YSAwKSwgcmV1c2VkIDAgKGRlbHRhIDApLCBw YWNrLXJldXNlZCAxMzE4CjogUmVjZWl2aW5nIG9iamVjdHM6IDEwMCUgKDEzMTgvMTMxOCksIDQ2 NC43OCBLaUIgfCA2MzcuMDAgS2lCL3MsIGRvbmUuCjogUmVzb2x2aW5nIGRlbHRhczogMTAwJSAo OTA0LzkwNCksIGRvbmUuCjogQ3VycmVudCBkaXJlY3Rvcnk6IC90bXAvZ3VpeC1wYWNrYWdpbmct dHV0b3JpYWwvcG9zaAo6IEhFQUQgaXMgbm93IGF0IDc4ZmFiZDggY2hhbmdlbG9nIGZvciAwLjE0 LjEKClVuZm9ydHVuYXRlbHksID1wb3NoPSBkb2Vzbid0IGhhdmUgYnVpbGQgaW5zdHJ1Y3Rpb25z LiAgVGhlcmUgaXMgbm8KUkVBRE1FLCB3ZWJzaXRlLCBvciBjb21tZW50IGV4cGxhaW5pbmcgaG93 IHRvICJidWlsZCIgb3IgImluc3RhbGwiCj1wb3NoPS4gIFdpdGggbm8gYnVpbGQgaW5zdHJ1Y3Rp b25zLCB3ZSBtdXN0IGd1ZXNzLgoKT25lIHRyaWNrIGlzIHRvID1ncmVwPSB0aGUgc291cmNlIGNv ZGUgZm9yIGJ1aWxkIHJlbGF0ZWQgd29yZHMsIGxpa2UKImJ1aWxkIiBvciAiaW5zdGFsbC4iCgoj K2JlZ2luX3NyYyBzaCA6cmVzdWx0cyBvdXRwdXQgOmV4cG9ydHMgYm90aCA6c2Vzc2lvbiAqZ3Vp eC10dXRvcmlhbCogOmFzeW5jIHQgOmV2YWwgbmV2ZXItZXhwb3J0CmdyZXAgLXJuIC1lICJidWls ZCIgLWUgImluc3RhbGwiCiMrZW5kX3NyYwoKIytSRVNVTFRTOgojK2JlZ2luX2V4YW1wbGUKcG9z aC54bWw6MTM4OgkJVGhlIG1ldGEtY2hhcmFjdGVycyBhcmUgdXNlZCBpbiBidWlsZGluZyB0aGUg Zm9sbG93aW5nIHRva2VuczoKcG9zaC54bWw6MTc0OgkgICAgPHBhcmE+QXMgd29yZHMgYW5kIHRv a2VucyBhcmUgcGFyc2VkLCB0aGUgc2hlbGwgYnVpbGRzIGNvbW1hbmRzLCBvZiB3aGljaApjb25m aWd1cmUuYWM6NDQ6ZG5sICBTcGVjaWZ5IHdoYXQga2luZCBvZiBzaGVsbCB3ZSBhcmUgdG8gYnVp bGQuICBPcHRpb25zIGFyZSBrc2ggYW5kIHNoLgouZ2l0aWdub3JlOjg6aW5zdGFsbC1zaAouZ2l0 L2hvb2tzL3ByZS1yZWJhc2Uuc2FtcGxlOjEwMjogICBpdCBpcyBkZWxldGVkLiAgSWYgeW91IG5l ZWQgdG8gYnVpbGQgb24gdG9wIG9mIGl0IHRvIGNvcnJlY3QKLmdpdC9ob29rcy9wcmUtcmViYXNl LnNhbXBsZToxMjU6ICAgIGJ1aWxkIG9uIHRvcCBvZiBpdCAtLSBvdGhlciBwZW9wbGUgbWF5IGFs cmVhZHkgd2FudCB0bwouZ2l0L2hvb2tzL3NlbmRlbWFpbC12YWxpZGF0ZS5zYW1wbGU6NDI6CSMg KGUuZy4gcXVpY2sgYnVpbGQsIGNvZGluZyBzdHlsZSBjaGVja3MsIGV0Yy4pLgpDT1BZSU5HOjE1 OTpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUu ICBIb3dldmVyLCBhcyBhCmRlYmlhbi9wby9kZS5wbzozMjptc2dzdHIgInBvc2ggYWxzIC9iaW4v c2ggaW5zdGFsbGllcmVuPyIKZGViaWFuL2NoYW5nZWxvZzo0NDogICAgdGh1cyBvYnZpYXRpbmcg YnVpbGQgZGVwZW5kZW5jeSBvbiBsaWJwZXJsNC1jb3JlbGlicy1wZXJsLgpkZWJpYW4vY2hhbmdl bG9nOjUzOiAgKiBTdXBwcmVzcyBsaW5lbWFya2VyIGdlbmVyYXRpb24gd2hlbiBidWlsZGluZyBz aWduYWwgdGFibGUsIGFzCmRlYmlhbi9jaGFuZ2Vsb2c6NjM6ICAqIFBhdGNoIGZyb20gQ2hyaXMg TGFtYiB0byBtYWtlIHRoZSBidWlsZCByZXByb2R1Y2libGUuCmRlYmlhbi9jaGFuZ2Vsb2c6Nzk6 ICAqIEFkZCBsaWJwZXJsNC1jb3JlbGlicy1wZXJsIGJ1aWxkLWRlcCBmb3IgZ2V0b3B0cy5wbC4K ZGViaWFuL2NoYW5nZWxvZzoxMDY6ICAqIFBhdGNoIGZyb20gU3RlZmFubyBSaXZlcmEgdG8gYnVp bGQgd2l0aCBlZ2xpYmMgMi4xNi4gIGNsb3NlczogIzY5MjUzNy4KZGViaWFuL2NoYW5nZWxvZzox MjI6ICAqIEZpeCAibm9zdHJpcCIgYnVpbGQuICBjbG9zZXM6ICM2NzQ3MDMuCmRlYmlhbi9jaGFu Z2Vsb2c6MTMxOiAgKiBVc2UgZHBrZy1idWlsZGZsYWdzLgpkZWJpYW4vY2hhbmdlbG9nOjEzMjog ICogQWRkIGJ1aWxkLWFyY2ggYW5kIGJ1aWxkLWluZGVwIHRhcmdldHMuCmRlYmlhbi9jaGFuZ2Vs b2c6MTQ3OiAgKiBGaXggYnVpbGQtdGltZSBzaWduYWwgbGlzdCBnZW5lcmF0aW9uLiAgY2xvc2Vz OiAjNjEyODQ0LgpkZWJpYW4vY2hhbmdlbG9nOjY0MzogICogQWRkIHByZWJ1aWxkIHRhcmdldCB0 byBkZWJpYW4vcnVsZXMuCmRlYmlhbi9jaGFuZ2Vsb2c6ODI5OiAgICBzYnVpbGQuICBjbG9zZXM6 ICMxODEzMDUuCmRlYmlhbi9jaGFuZ2Vsb2c6ODU4OiAgKiBSdW4gIm1ha2UgY2hlY2siIGFzIHBh cnQgb2YgYnVpbGQuCmRlYmlhbi9jaGFuZ2Vsb2c6ODkzOiAgKiBBZGQgYnVpbGQtZGVwIG9uIGRl YmNvbmYtdXRpbHMuCmRlYmlhbi9jaGFuZ2Vsb2c6OTE0OiAgKiBSZW1vdmUgZGViaGVscGVyIHN0 dWZmLiAgTm93IG5vIGJ1aWxkLWRlcHMgb3V0c2lkZSBvZiBidWlsZC1lc3NlbnRpYWwuCmRlYmlh bi9jaGFuZ2Vsb2c6OTIwOiAgKiBQdXQgYnVpbGQgc3lzdGVtIHVuZGVyIGF1dG9tYWtlLgpkZWJp YW4vY2hhbmdlbG9nOjk3NDogICogU2VwYXJhdGUgY29uZmlndXJlIHRhcmdldCBmcm9tIGJ1aWxk IHRhcmdldCBpbiBkZWJpYW4vcnVsZXMuCmRlYmlhbi9wb3NoLnBvc3RpbnN0OjM6IyBwb3N0LWlu c3RhbGwgc2NyaXB0IGZvciB0aGUgRGViaWFuIEdOVS9MaW51eCBwb3NoIHBhY2thZ2UKZGViaWFu L3J1bGVzOjQ6CWRoICRAIC0tYnVpbGRkaXJlY3Rvcnk9b2JqIC0td2l0aD1hdXRvcmVjb25mCmRl Ymlhbi9ydWxlczo4OnByZWJ1aWxkOgpkZWJpYW4vcnVsZXM6MTM6LlBIT05ZOiBwcmVidWlsZApw b3NoLjE6MTE2OikpXCYuIEFzaWRlIGZyb20gZGVsaW1pdGluZyB3b3Jkcywgc3BhY2VzIGFuZCB0 YWJzIGFyZSBpZ25vcmVkLCB3aGlsZSBuZXdsaW5lcyB1c3VhbGx5IGRlbGltaXQgY29tbWFuZHNc Ji4gVGhlIG1ldGFcLWNoYXJhY3RlcnMgYXJlIHVzZWQgaW4gYnVpbGRpbmcgdGhlIGZvbGxvd2lu ZyB0b2tlbnM6CnBvc2guMToxNzc6QXMgd29yZHMgYW5kIHRva2VucyBhcmUgcGFyc2VkLCB0aGUg c2hlbGwgYnVpbGRzIGNvbW1hbmRzLCBvZiB3aGljaCB0aGVyZSBhcmUgdHdvIGJhc2ljIHR5cGVz OgojK2VuZF9leGFtcGxlCgpSZWFkaW5nIGNhcmVmdWxseSwgd2UgZmluZCBhbiBpbXBvcnRhbnQg Y2x1ZS4gIEEgbGluZSByZWFkcywgIlB1dApidWlsZCBzeXN0ZW0gdW5kZXIgYXV0b21ha2UuIiAg QXV0b21ha2UgaXMgYSBjb21waWxhdGlvbiB0b29sIGZvciB0aGUKR05VIEJ1aWxkIFN5c3RlbSwg YWxzbyBjYWxsZWQgIkF1dG90b29scy4iW2ZuOjEwXVtmbjoxMV0KCldlIGZpbmQgZnVydGhlciBl dmlkZW5jZSBmb3IgdGhlIEdOVSBCdWlsZCBTeXN0ZW0gaW4gdGhlIHRvcC1sZXZlbApkaXJlY3Rv cnkuICBUaGVyZSBhcmUgc2V2ZXJhbCBmaWxlcyBlbmRpbmcgaW4gIi5hYyIsICIubTQiLCBhbmQg Ii5hYyIuCgojK2JlZ2luX3NyYyBzaCA6cmVzdWx0cyBvdXRwdXQgOmV4cG9ydHMgYm90aCA6c2Vz c2lvbiAqZ3VpeC10dXRvcmlhbCogOmFzeW5jIHQKZmluZCAuIC1tYXhkZXB0aCAxIC1uYW1lICIq LmFjIiAtb3IgLW5hbWUgIiouYW0iIC1vciAtbmFtZSAiKi5tNCIKIytlbmRfc3JjCgojK1JFU1VM VFM6CjogLi9hY2luY2x1ZGUubTQKOiAuL01ha2VmaWxlLmFtCjogLi9jb25maWd1cmUuYWMKClRo ZXNlIGZpbGVzIGFyZSBhc3NvY2lhdGVkIHdpdGggQXV0b3Rvb2xzLgoKUmVjb2duaXppbmcgYSBw cm9qZWN0J3MgdXNlIG9mIEF1dG90b29scyBzaW1wbHkgY29tZXMgZnJvbSBleHBlcmllbmNlLgpO b3cgdGhhdCB5b3UgaGF2ZSBzb21lLCB0aGlzIGtub3dsZWRnZSBpcyBwYXJ0IG9mIHlvdXIgcmVw ZXJ0b2lyZSEgIElmCnlvdSdyZSB1bmZhbWlsaWFyIHdpdGggQXV0b3Rvb2xzLCBpdCdzIHdvcnRo IHRoZSB0aW1lIHRvIHJlYWQgdGhyb3VnaAppdHMgZG9jdW1lbnRhdGlvbi5bZm46MTJdIEF1dG90 b29scyBpcyBhbiBpbXBvcnRhbnQgYW5kIGNvbW1vbiBidWlsZApzeXN0ZW0uCgpBZnRlciBhIGxp dHRsZSBpbnZlc3RpZ2F0aW9uLCBpdCBzZWVtcyB0aGF0ID1wb3NoPSBpcyBidWlsdCB1c2luZyBH TlUKQXV0b3Rvb2xzLgoKKiogRmlndXJlIG91dCB0aGUgbGljZW5zZQpUaGUgb25seSByZW1haW5p bmcgcmVxdWlyZW1lbnQgd29ydGggY29tbWVudCBpcyB0aGUgbGljZW5zZS4KClRoZSBHdWl4IFN5 c3RlbSBtYWludGFpbnMgYSBwcmVzdGlnaW91cyBlbmRvcnNlbWVudCBmcm9tIHRoZSBGcmVlClNv ZnR3YXJlIEZvdW5kYXRpb24gZm9yIGJlaW5nIG1hZGUgZW50aXJlbHkgb2YgbGlicmUgc29mdHdh cmUuICBMaWJyZQpzb2Z0d2FyZSBlbXBvd2VycyB1c2VycyBieSByZXNwZWN0aW5nIHRoZSBGb3Vy IEZyZWVkb21zOgoKLSBUaGUgZnJlZWRvbSB0byBydW4gdGhlIHByb2dyYW0gYXMgeW91IHdpc2gs IGZvciBhbnkgcHVycG9zZQotIFRoZSBmcmVlZG9tIHRvIHN0dWR5IGhvdyB0aGUgcHJvZ3JhbSB3 b3JrcywgYW5kIGNoYW5nZSBpdCBzbyBpdCBkb2VzCiAgeW91ciBjb21wdXRpbmcgYXMgeW91IHdp c2gKLSBUaGUgZnJlZWRvbSB0byByZWRpc3RyaWJ1dGUgY29waWVzCi0gVGhlIGZyZWVkb20gdG8g ZGlzdHJpYnV0ZSBtb2RpZmllZCBjb3BpZXMKCkEgY29tcHJlaGVuc2l2ZSBsaXN0IG9mIGxpYnJl IGxpY2Vuc2VzIGlzIG1haW50YWluZWQgYnkgdGhlIEdOVQpwcm9qZWN0W2ZuOjEzXS4gIEd1aXgg bWFpbnRhaW5zIGFuIGludGVybmFsIHJlZ2lzdHJ5IG9mIGxpY2Vuc2VzIGJhc2VkCm9uIHRoZSBH TlUgbGlzdCB3aXRoaW4gPWd1aXgvbGljZW5zZXMuc2NtPVtmbjoxNF0uCgpNb3N0IGxpY2Vuc2Vz IHJlcXVpcmUgdGhhdCBhIGNvcHkgb2YgdGhlIGxpY2Vuc2UgYmUgcHJvdmlkZWQgYWxvbmcKd2l0 aCB0aGUgc291cmNlIGNvZGUuICBMaWNlbnNlIGZpbGVzIGFyZSBvZnRlbiBjYWxsZWQgQ09QWUlO RyBvcgpMSUNFTlNFLiAgU29tZXRpbWVzIG5vIHNlcGFyYXRlIGZpbGUgZXhpc3RzIGFuZCBhIGhl YWRlciBpcyB1c2VkCndpdGhpbiBjb2RlIGZpbGVzLiAgT3RoZXIgdGltZXMgb25seSBhIHJlZmVy ZW5jZSBpcyBnaXZlbiBhbmQgdGhlCmxpY2Vuc2UgdGV4dCBwb3N0ZWQgZWxzZXdoZXJlLiAgQXMg d2l0aCBzb3VyY2UgY29kZSwgeW91IG1heSBuZWVkIHRvCmxvb2sgYXJvdW5kIGEgYml0LgoKPXBv c2g9IGluY2x1ZGVzIGEgQ09QWUlORyBmaWxlOgoKIytiZWdpbl9zcmMgc2ggOnJlc3VsdHMgb3V0 cHV0IDpleHBvcnRzIGJvdGggOnNlc3Npb24gKmd1aXgtdHV0b3JpYWwqIDphc3luYyB0IDpldmFs IG5ldmVyLWV4cG9ydApscyB8IGdyZXAgQ09QWUlORwojK2VuZF9zcmMKCiMrUkVTVUxUUzoKOiBD T1BZSU5HCgpJdCB0ZWxscyB1cyB0aGF0IHRoZSBsaWNlbnNlIGlzIEdQTHYyOgoKIytiZWdpbl9z cmMgc2ggOnJlc3VsdHMgb3V0cHV0IDpleHBvcnRzIGJvdGggOnNlc3Npb24gKmd1aXgtdHV0b3Jp YWwqIDphc3luYyB0IDpldmFsIG5ldmVyLWV4cG9ydApoZWFkIC1uMiBDT1BZSU5HCiMrZW5kX3Ny YwoKIytSRVNVTFRTOgo6ICAgICAgICAgICAgICAgICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNF TlNFCjogICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCioqIEluY3Jl bWVudGFsbHkgZGVmaW5pbmcgYSBwYWNrYWdlCldpdGggdGhlIG1pbmltYWwgcGFja2FnZSByZXF1 aXJlbWVudHMgaGFuZHksIHdlIGNhbiBtYWtlIGEgZmlyc3QKYXR0ZW1wdCBhdCBhIHBhY2thZ2Ug ZGVmaW5pdGlvbi4gIEl0IG1heSB0YWtlIG11bHRpcGxlIGF0dGVtcHRzIHRvIGdldAp0aGUgZGVm aW5pdGlvbiB0byBidWlsZCBhbmQgdGhhdCdzIG5vcm1hbC4KCiMgKlRoZSBkaWZmZXJlbnQgd2F5 cyB0byBidWlsZCBhIHBhY2thZ2UqClRoZXJlIGFyZSA0IHdheXMgdG8gYnVpbGQgYSBwYWNrYWdl OgoKMS4gPWd1aXggcGFja2FnZSAtLWluc3RhbGwtZnJvbS1maWxlPW15LXBhY2thZ2UtZGVmaW5p dGlvbi5zY209CjIuID1ndWl4IGJ1aWxkIC0tZmlsZT1teS1wYWNrYWdlLWRlZmluaXRpb24uc2Nt PQozLiA9Z3VpeCBidWlsZCAtLWxvYWQtcGF0aCAuLyBtb2R1bGUtbmFtZS10aGF0LWlzLWFsc28t dGhlLWZpbGUtbmFtZT0KNC4gd2l0aGluIHRoZSBHdWlsZSBpbnRlcnByZXRlcgoKICAgIytiZWdp bl9leGFtcGxlCiAgIHNjaGVtZUAoZ3VpbGUtdXNlcik+ICx1c2UgKGd1aXgpCiAgIHNjaGVtZUAo Z3VpbGUtdXNlcik+ICh1c2UtbW9kdWxlcyAoZ3VpeCBwYWNrYWdlcykKICAgICAgICAgICAgICAg ICAgIChndWl4IGRvd25sb2FkKQogICAgICAgICAgICAgICAgICAgKGd1aXggYnVpbGQtc3lzdGVt IGdudSkKICAgICAgICAgICAgICAgICAgIChnbnUgcGFja2FnZXMgYXV0b3Rvb2xzKQogICAgICAg ICAgICAgICAgICAgKGdudSBwYWNrYWdlcyBwZXJsKQogICAgICAgICAgICAgICAgICAgKChndWl4 IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNlOikpCiAgIHNjaGVtZUAoZ3VpbGUtdXNlcik+IChw YWNrYWdlCiAgICAgICAgICAobmFtZSAicG9zaCIpCiAgICAgICAgICAodmVyc2lvbiAiMC4xNC4x IikKICAgICAgICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgICAgIChtZXRob2Qg dXJsLWZldGNoKQogICAgICAgICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQKICAgICAg ICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2NsaW50L3Bvc2gv LS9hcmNoaXZlL2RlYmlhbi8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiL3Bv c2gtZGViaWFuLSIgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgICAgICAgICAgICAgIChzaGEy NTYKICAgICAgICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgICAgICAgIjA3 MHhubjk5NmNqbmM1eXpwNTgxOXkzNnNnZmlra3JwbGhyaTRreDVyMzZoMWZtcDY0MWQiKSkpKQog ICAgICAgICAgKG5hdGl2ZS1pbnB1dHMgKGxpc3QgYXV0b2NvbmYgYXV0b21ha2UgcGVybCkpCiAg ICAgICAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAgICAgICAoaG9tZS1w YWdlICJodHRwczovL3NhbHNhLmRlYmlhbi5vcmcvY2xpbnQvcG9zaCIpCiAgICAgICAgICAoc3lu b3BzaXMgIlBvbGljeS1jb21wbGlhbnQgT3JkaW5hcnkgU0hlbGwiKQogICAgICAgICAgKGRlc2Ny aXB0aW9uCiAgICAgICAgICAgIlBvbGljeS1jb21wbGlhbnQgT3JkaW5hcnkgU0hlbGwKICAgICAg cG9zaCBpcyBhIHN0cmlwcGVkLWRvd24gdmVyc2lvbiBvZiBwZGtzaCB0aGF0IGFpbXMgZm9yIGNv bXBsaWFuY2Ugd2l0aAogICAgICBEZWJpYW4ncyBwb2xpY3ksIGFuZCBmZXcgZXh0cmEgZmVhdHVy ZXMuIikKICAgICAgICAgIChsaWNlbnNlIChsaXN0IGxpY2Vuc2U6Z3BsMispKSkKICAgJDUgPSAj PHBhY2thZ2UgcG9zaEAwLjE0LjEgN2YwZThlNWVhOWEwPgogICBzY2hlbWVAKGd1aWxlLXVzZXIp PiAsYnVpbGQgJDUKICAgJDYgPSAiL2dudS9zdG9yZS82NHdpcWRwOWxxamdzejBqZzF2MXNxMmIz YWZpbmNyYi1wb3NoLTAuMTQuMSIKICAgIytlbmRfZXhhbXBsZQoKKk1pbmltYWwgZGVmaW5pdGlv bioKVGhlIEd1aXggZG9jdW1lbnRhdGlvbiBoYXMgc2V2ZXJhbCBleGFtcGxlcyBvZiBhIHBhY2th Z2UgZGVmaW5pdGlvbgphbmQgdGhlIEd1aXggc291cmNlIGNvZGUgY29udGFpbnMgbWFueSBtb3Jl LgoKIytiZWdpbl9zcmMgc2NoZW1lIDpyZXN1bHRzIG91dHB1dCA6ZXhwb3J0cyBjb2RlIDp0YW5n bGUgKGZvcm1hdCAiJXMiICIvdG1wL2d1aXgtcGFja2FnaW5nLXR1dG9yaWFsL3Bvc2gtZHJhZnQt MDEuc2NtIikgOmV2YWwgbmV2ZXItZXhwb3J0Cjs7OyBwb3NoLWRyYWZ0LTAxLnNjbSAtLS0gUGFj a2FnZSBkZWZpbml0aW9uIGZvciBHTlUgR3VpeAoodXNlLW1vZHVsZXMKIChndWl4IHBhY2thZ2Vz KSAgICAgICAgICA7IHByb3ZpZGVzIHRoZSAncGFja2FnZScgYW5kICdvcmlnaW4nIGRhdGEgdHlw ZXMKIChndWl4IGRvd25sb2FkKSAgICAgICAgICA7IHByb3ZpZGVzICd1cmwtZmV0Y2gnIHByb2Nl ZHVyZQogKGd1aXggYnVpbGQtc3lzdGVtIGdudSkKICgoZ3VpeCBsaWNlbnNlcykgIzpwcmVmaXgg bGljZW5zZTopKQoKKGRlZmluZS1wdWJsaWMgcG9zaAogIChwYWNrYWdlCiAgICAobmFtZSAicG9z aCIpCiAgICAodmVyc2lvbiAiMC4xNC4xIikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAg ICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQK ICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2NsaW50L3Bvc2gv LS9hcmNoaXZlL2RlYmlhbi8iCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiL3Bvc2gtZGVi aWFuLSIgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAg ICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjA3MHhubjk5NmNqbmM1eXpwNTgxOXkzNnNn Zmlra3JwbGhyaTRreDVyMzZoMWZtcDY0MWQiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVp bGQtc3lzdGVtKQogICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9zYWxzYS5kZWJpYW4ub3JnL2NsaW50 L3Bvc2giKQogICAgKHN5bm9wc2lzICJQb2xpY3ktY29tcGxpYW50IE9yZGluYXJ5IFNIZWxsIikK ICAgIChkZXNjcmlwdGlvbgogICAgICJQb2xpY3ktY29tcGxpYW50IE9yZGluYXJ5IFNIZWxsCnBv c2ggaXMgYSBzdHJpcHBlZC1kb3duIHZlcnNpb24gb2YgcGRrc2ggdGhhdCBhaW1zIGZvciBjb21w bGlhbmNlIHdpdGgKRGViaWFuJ3MgcG9saWN5LCBhbmQgZmV3IGV4dHJhIGZlYXR1cmVzLiIpCiAg ICAobGljZW5zZSAobGlzdCBsaWNlbnNlOmdwbDIpKSkpCgpwb3NoCjs7OyBwb3NoLWRyYWZ0LTAx LnNjbSBlbmRzIGhlcmUKIytlbmRfc3JjCgojK2JlZ2luX3NyYyBzaCA6cmVzdWx0cyBvdXRwdXQg OmV4cG9ydHMgYm90aCA6c2Vzc2lvbiAqZ3VpeC10dXRvcmlhbCogOmFzeW5jIHQgOmV2YWwgbmV2 ZXItZXhwb3J0Cmd1aXggYnVpbGQgLWYgcG9zaC1kcmFmdC0wMS5zY20KIytlbmRfc3JjCgojK1JF U1VMVFM6CiMrYmVnaW5fZXhhbXBsZQpUaGUgZm9sbG93aW5nIGRlcml2YXRpb24gd2lsbCBiZSBi dWlsdDoKICAvZ251L3N0b3JlL2ExcHd4NnJxMzZhMmk4amZmeDc2bnF6YmJ4M3g0aGQ5LXBvc2gt MC4xNC4xLmRydgpidWlsZGluZyAvZ251L3N0b3JlL2ExcHd4NnJxMzZhMmk4amZmeDc2bnF6YmJ4 M3g0aGQ5LXBvc2gtMC4xNC4xLmRydi4uLgpzdGFydGluZyBwaGFzZSBgc2V0LVNPVVJDRS1EQVRF LUVQT0NIJwpwaGFzZSBgc2V0LVNPVVJDRS1EQVRFLUVQT0NIJyBzdWNjZWVkZWQgYWZ0ZXIgMC4w IHNlY29uZHMKc3RhcnRpbmcgcGhhc2UgYHNldC1wYXRocycKZW52aXJvbm1lbnQgdmFyaWFibGUg YFBBVEgnIHNldCB0byBgL2dudS9zdG9yZS9zeHgyMmY5OHZmYmF2Y3FtZGtzbTZhczhmdnNrcHhp dy10YXItMS4zNC9iaW46L2dudS9zdG9yZS94MjRibTQ5YWc1ZHZraTcybWpkejE5NWJmYjg5bnJu Yi1nemlwLTEuMTIvYmluOi9nbnUvc3RvcmUvajh3bGZtbG1mdnBiemE2aXM5d3Y5eHNkOHBzcnhu MDAtYnppcDItMS4wLjgvYmluOi9nbnUvc3RvcmUvZ3Iwc3kwbTFtdjM2cXY1NGlkbTZjbjEwbDNt bmdzaHEtZmlsZS01LjQ0L2JpbjovZ251L3N0b3JlL3ptY2Y1a3BxaWlnaGtiaDd3c2xmOTFxZGp3 ajA2eXIxLWRpZmZ1dGlscy0zLjgvYmluOi9nbnUvc3RvcmUvMjEweWZheDE4cjJnMmlueHJtbDk0 MzVpa2hmY2NhNm0tcGF0Y2gtMi43LjYvYmluOi9nbnUvc3RvcmUvYzhqeXBoMmx4dzBtOW5hMzRm ZzhoNzBuNG5ubno3aXMtZmluZHV0aWxzLTQuOS4wL2JpbjovZ251L3N0b3JlL2hjMDVkNzZmMWoz aXozdjJiczVqejRmcGxqbDFyNGRqLWdhd2stNS4yLjEvYmluOi9nbnUvc3RvcmUveHhjZnNpbXZ4 ejd6NGRqNTkzZ25xYmt6YzZwaWN3enEtc2VkLTQuOC9iaW46L2dudS9zdG9yZS95cnY1ZjcwbW44 M2E4NzZiNzhpNXM3OWRkMmhzaDB6Zi1ncmVwLTMuOC9iaW46L2dudS9zdG9yZS82azF5eXM5d3Fy Zm40eTQxaWMxd2luOGdwbmltbmN3ai14ei01LjIuOC9iaW46L2dudS9zdG9yZS9hNWk4YXZ4ODI2 YnJ3NWdybjNuNHF2NDBnNTE0NTA1Yy1jb3JldXRpbHMtOS4xL2JpbjovZ251L3N0b3JlL3dqN2Nh c2RhN3JiNTVydnFqbnBtMGJtN2Eyem02NjE4LW1ha2UtNC4zL2JpbjovZ251L3N0b3JlL3JpYjln MmlnMXhmM2tjbHlsMDc2dzI4cGFybW5jZzRrLWJhc2gtbWluaW1hbC01LjEuMTYvYmluOi9nbnUv c3RvcmUvbmExZHBiYmN4amFhM244d2t3cmZwY2g0NzZmOTBobGYtbGQtd3JhcHBlci0wL2Jpbjov Z251L3N0b3JlL3poNHg2NXNuZmlzN3N2czY5MDZnajF6OGk3ZHgyajNtLWJpbnV0aWxzLTIuMzgv YmluOi9nbnUvc3RvcmUvNWxxaGN2OTFpank4MnA5MmFjNmc1eHc0OGwwbHd3ejQtZ2NjLTExLjMu MC9iaW46L2dudS9zdG9yZS9nc2pjenFpcjF3Yno4cDc3MHpuZHJwdzRybnBwbXhpMy1nbGliYy0y LjM1L2JpbjovZ251L3N0b3JlL2dzamN6cWlyMXdiejhwNzcwem5kcnB3NHJucHBteGkzLWdsaWJj LTIuMzUvc2JpbicKZW52aXJvbm1lbnQgdmFyaWFibGUgYEJBU0hfTE9BREFCTEVTX1BBVEgnIHVu c2V0CmVudmlyb25tZW50IHZhcmlhYmxlIGBDX0lOQ0xVREVfUEFUSCcgc2V0IHRvIGAvZ251L3N0 b3JlL2o4d2xmbWxtZnZwYnphNmlzOXd2OXhzZDhwc3J4bjAwLWJ6aXAyLTEuMC44L2luY2x1ZGU6 L2dudS9zdG9yZS9ncjBzeTBtMW12MzZxdjU0aWRtNmNuMTBsM21uZ3NocS1maWxlLTUuNDQvaW5j bHVkZTovZ251L3N0b3JlL2hjMDVkNzZmMWozaXozdjJiczVqejRmcGxqbDFyNGRqLWdhd2stNS4y LjEvaW5jbHVkZTovZ251L3N0b3JlLzZrMXl5czl3cXJmbjR5NDFpYzF3aW44Z3BuaW1uY3dqLXh6 LTUuMi44L2luY2x1ZGU6L2dudS9zdG9yZS93ajdjYXNkYTdyYjU1cnZxam5wbTBibTdhMnptNjYx OC1tYWtlLTQuMy9pbmNsdWRlOi9nbnUvc3RvcmUvemg0eDY1c25maXM3c3ZzNjkwNmdqMXo4aTdk eDJqM20tYmludXRpbHMtMi4zOC9pbmNsdWRlOi9nbnUvc3RvcmUvNWxxaGN2OTFpank4MnA5MmFj Nmc1eHc0OGwwbHd3ejQtZ2NjLTExLjMuMC9pbmNsdWRlOi9nbnUvc3RvcmUvZ3NqY3pxaXIxd2J6 OHA3NzB6bmRycHc0cm5wcG14aTMtZ2xpYmMtMi4zNS9pbmNsdWRlOi9nbnUvc3RvcmUvNWlrbGNw czcwYzBzZmt4dmxyaGc4amhmM3E0aDE4YmotbGludXgtbGlicmUtaGVhZGVycy01LjE1LjQ5L2lu Y2x1ZGUnCmVudmlyb25tZW50IHZhcmlhYmxlIGBDUExVU19JTkNMVURFX1BBVEgnIHNldCB0byBg L2dudS9zdG9yZS9qOHdsZm1sbWZ2cGJ6YTZpczl3djl4c2Q4cHNyeG4wMC1iemlwMi0xLjAuOC9p bmNsdWRlOi9nbnUvc3RvcmUvZ3Iwc3kwbTFtdjM2cXY1NGlkbTZjbjEwbDNtbmdzaHEtZmlsZS01 LjQ0L2luY2x1ZGU6L2dudS9zdG9yZS9oYzA1ZDc2ZjFqM2l6M3YyYnM1ano0ZnBsamwxcjRkai1n YXdrLTUuMi4xL2luY2x1ZGU6L2dudS9zdG9yZS82azF5eXM5d3FyZm40eTQxaWMxd2luOGdwbmlt bmN3ai14ei01LjIuOC9pbmNsdWRlOi9nbnUvc3RvcmUvd2o3Y2FzZGE3cmI1NXJ2cWpucG0wYm03 YTJ6bTY2MTgtbWFrZS00LjMvaW5jbHVkZTovZ251L3N0b3JlL3poNHg2NXNuZmlzN3N2czY5MDZn ajF6OGk3ZHgyajNtLWJpbnV0aWxzLTIuMzgvaW5jbHVkZTovZ251L3N0b3JlLzVscWhjdjkxaWp5 ODJwOTJhYzZnNXh3NDhsMGx3d3o0LWdjYy0xMS4zLjAvaW5jbHVkZS9jKys6L2dudS9zdG9yZS81 bHFoY3Y5MWlqeTgycDkyYWM2ZzV4dzQ4bDBsd3d6NC1nY2MtMTEuMy4wL2luY2x1ZGU6L2dudS9z dG9yZS9nc2pjenFpcjF3Yno4cDc3MHpuZHJwdzRybnBwbXhpMy1nbGliYy0yLjM1L2luY2x1ZGU6 L2dudS9zdG9yZS81aWtsY3BzNzBjMHNma3h2bHJoZzhqaGYzcTRoMThiai1saW51eC1saWJyZS1o ZWFkZXJzLTUuMTUuNDkvaW5jbHVkZScKZW52aXJvbm1lbnQgdmFyaWFibGUgYExJQlJBUllfUEFU SCcgc2V0IHRvIGAvZ251L3N0b3JlL2o4d2xmbWxtZnZwYnphNmlzOXd2OXhzZDhwc3J4bjAwLWJ6 aXAyLTEuMC44L2xpYjovZ251L3N0b3JlL2dyMHN5MG0xbXYzNnF2NTRpZG02Y24xMGwzbW5nc2hx LWZpbGUtNS40NC9saWI6L2dudS9zdG9yZS9oYzA1ZDc2ZjFqM2l6M3YyYnM1ano0ZnBsamwxcjRk ai1nYXdrLTUuMi4xL2xpYjovZ251L3N0b3JlLzZrMXl5czl3cXJmbjR5NDFpYzF3aW44Z3BuaW1u Y3dqLXh6LTUuMi44L2xpYjovZ251L3N0b3JlL3poNHg2NXNuZmlzN3N2czY5MDZnajF6OGk3ZHgy ajNtLWJpbnV0aWxzLTIuMzgvbGliOi9nbnUvc3RvcmUvZ3NqY3pxaXIxd2J6OHA3NzB6bmRycHc0 cm5wcG14aTMtZ2xpYmMtMi4zNS9saWI6L2dudS9zdG9yZS9sMHlyeWk1anNhMWdybnZ3MDFjOW5r ejljODFjdjIyNC1nbGliYy0yLjM1LXN0YXRpYy9saWI6L2dudS9zdG9yZS92aXNmZGRhOTM0Z3Zp dndpaHdobG02M2ZkcWhoY2M4YS1nbGliYy11dGY4LWxvY2FsZXMtMi4zNS9saWInCmVudmlyb25t ZW50IHZhcmlhYmxlIGBHVUlYX0xPQ1BBVEgnIHNldCB0byBgL2dudS9zdG9yZS92aXNmZGRhOTM0 Z3ZpdndpaHdobG02M2ZkcWhoY2M4YS1nbGliYy11dGY4LWxvY2FsZXMtMi4zNS9saWIvbG9jYWxl JwpwaGFzZSBgc2V0LXBhdGhzJyBzdWNjZWVkZWQgYWZ0ZXIgMC4wIHNlY29uZHMKc3RhcnRpbmcg cGhhc2UgYGluc3RhbGwtbG9jYWxlJwp1c2luZyAnZW5fVVMudXRmOCcgbG9jYWxlIGZvciBjYXRl Z29yeSAiTENfQUxMIgpwaGFzZSBgaW5zdGFsbC1sb2NhbGUnIHN1Y2NlZWRlZCBhZnRlciAwLjAg c2Vjb25kcwpzdGFydGluZyBwaGFzZSBgdW5wYWNrJwpwb3NoLWRlYmlhbi0wLjE0LjEvCnBvc2gt ZGViaWFuLTAuMTQuMS9DT1BZSU5HCnBvc2gtZGViaWFuLTAuMTQuMS9NYWtlZmlsZS5hbQpwb3No LWRlYmlhbi0wLjE0LjEvYWNpbmNsdWRlLm00CnBvc2gtZGViaWFuLTAuMTQuMS9hbGxvYy5jCnBv c2gtZGViaWFuLTAuMTQuMS9jX3Rlc3QuYwpwb3NoLWRlYmlhbi0wLjE0LjEvY190ZXN0LmgKcG9z aC1kZWJpYW4tMC4xNC4xL2NvbmYtZW5kLmgKcG9zaC1kZWJpYW4tMC4xNC4xL2NvbmZpZ3VyZS5h Ywpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuLwpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuL2No YW5nZWxvZwpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuL2NvbnRyb2wKcG9zaC1kZWJpYW4tMC4x NC4xL2RlYmlhbi9jb3B5cmlnaHQKcG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlhbi9tZW51CnBvc2gt ZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vCnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vUE9U RklMRVMuaW4KcG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlhbi9wby9jcy5wbwpwb3NoLWRlYmlhbi0w LjE0LjEvZGViaWFuL3BvL2RhLnBvCnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vZGUucG8K cG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlhbi9wby9lcy5wbwpwb3NoLWRlYmlhbi0wLjE0LjEvZGVi aWFuL3BvL2ZyLnBvCnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vaXQucG8KcG9zaC1kZWJp YW4tMC4xNC4xL2RlYmlhbi9wby9qYS5wbwpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuL3BvL25s LnBvCnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vcHQucG8KcG9zaC1kZWJpYW4tMC4xNC4x L2RlYmlhbi9wby9wdF9CUi5wbwpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuL3BvL3J1LnBvCnBv c2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG8vc3YucG8KcG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlh bi9wby90ZW1wbGF0ZXMucG90CnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG9zaC5jb25maWcK cG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlhbi9wb3NoLnBvc3RpbnN0CnBvc2gtZGViaWFuLTAuMTQu MS9kZWJpYW4vcG9zaC5wb3N0cm0KcG9zaC1kZWJpYW4tMC4xNC4xL2RlYmlhbi9wb3NoLnByZXJt CnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vcG9zaC50ZW1wbGF0ZXMKcG9zaC1kZWJpYW4tMC4x NC4xL2RlYmlhbi9ydWxlcwpwb3NoLWRlYmlhbi0wLjE0LjEvZGViaWFuL3NvdXJjZS8KcG9zaC1k ZWJpYW4tMC4xNC4xL2RlYmlhbi9zb3VyY2UvZm9ybWF0CnBvc2gtZGViaWFuLTAuMTQuMS9kZWJp YW4vdGVzdHMvCnBvc2gtZGViaWFuLTAuMTQuMS9kZWJpYW4vdGVzdHMvY29udHJvbApwb3NoLWRl Ymlhbi0wLjE0LjEvZGViaWFuL3Rlc3RzL3Ntb2tlCnBvc2gtZGViaWFuLTAuMTQuMS9lZGl0LmgK cG9zaC1kZWJpYW4tMC4xNC4xL2V2YWwuYwpwb3NoLWRlYmlhbi0wLjE0LjEvZXhlYy5jCnBvc2gt ZGViaWFuLTAuMTQuMS9leHBhbmQuaApwb3NoLWRlYmlhbi0wLjE0LjEvZXhwci5jCnBvc2gtZGVi aWFuLTAuMTQuMS9oaXN0b3J5LmMKcG9zaC1kZWJpYW4tMC4xNC4xL2lvLmMKcG9zaC1kZWJpYW4t MC4xNC4xL2pvYnMuYwpwb3NoLWRlYmlhbi0wLjE0LjEva3NoX2Rpci5oCnBvc2gtZGViaWFuLTAu MTQuMS9rc2hfbGltdmFsLmgKcG9zaC1kZWJpYW4tMC4xNC4xL2tzaF9zdGF0LmgKcG9zaC1kZWJp YW4tMC4xNC4xL2tzaF90aW1lLmgKcG9zaC1kZWJpYW4tMC4xNC4xL2tzaF93YWl0LmgKcG9zaC1k ZWJpYW4tMC4xNC4xL2xleC5jCnBvc2gtZGViaWFuLTAuMTQuMS9sZXguaApwb3NoLWRlYmlhbi0w LjE0LjEvbWFpbi5jCnBvc2gtZGViaWFuLTAuMTQuMS9taXNjLmMKcG9zaC1kZWJpYW4tMC4xNC4x L3BhdGguYwpwb3NoLWRlYmlhbi0wLjE0LjEvcG9zaC4xCnBvc2gtZGViaWFuLTAuMTQuMS9wb3No LnhtbApwb3NoLWRlYmlhbi0wLjE0LjEvcHJvdG8uaApwb3NoLWRlYmlhbi0wLjE0LjEvc2guaApw b3NoLWRlYmlhbi0wLjE0LjEvc2hmLmMKcG9zaC1kZWJpYW4tMC4xNC4xL3NoZi5oCnBvc2gtZGVi aWFuLTAuMTQuMS9zaWdsaXN0LmluCnBvc2gtZGViaWFuLTAuMTQuMS9zaWdsaXN0LnNoCnBvc2gt ZGViaWFuLTAuMTQuMS9zcmMvCnBvc2gtZGViaWFuLTAuMTQuMS9zcmMvTWFrZWZpbGUuYW0KcG9z aC1kZWJpYW4tMC4xNC4xL3NyYy9idWlsdGlucy5jCnBvc2gtZGViaWFuLTAuMTQuMS9zcmMvY29t cGF0LmMKcG9zaC1kZWJpYW4tMC4xNC4xL3NyYy9jb21wYXQuaApwb3NoLWRlYmlhbi0wLjE0LjEv c3JjL3RpbWVzLmMKcG9zaC1kZWJpYW4tMC4xNC4xL3N5bi5jCnBvc2gtZGViaWFuLTAuMTQuMS90 YWJsZS5jCnBvc2gtZGViaWFuLTAuMTQuMS90YWJsZS5oCnBvc2gtZGViaWFuLTAuMTQuMS90ZXN0 cy8KcG9zaC1kZWJpYW4tMC4xNC4xL3Rlc3RzL01ha2VmaWxlLmFtCnBvc2gtZGViaWFuLTAuMTQu MS90ZXN0cy9SRUFETUUKcG9zaC1kZWJpYW4tMC4xNC4xL3Rlc3RzL2FyaXRobWV0aWMudApwb3No LWRlYmlhbi0wLjE0LjEvdGVzdHMvZXJyb3IudApwb3NoLWRlYmlhbi0wLjE0LjEvdGVzdHMvZXhl Yy50CnBvc2gtZGViaWFuLTAuMTQuMS90ZXN0cy9leHBhbmQudApwb3NoLWRlYmlhbi0wLjE0LjEv dGVzdHMvbWtzaC50CnBvc2gtZGViaWFuLTAuMTQuMS90ZXN0cy9ub25wb3NpeC50CnBvc2gtZGVi aWFuLTAuMTQuMS90ZXN0cy9wYXJhbWV0ZXJzLnQKcG9zaC1kZWJpYW4tMC4xNC4xL3Rlc3RzL3F1 b3RpbmcudApwb3NoLWRlYmlhbi0wLjE0LjEvdGVzdHMvdGgKcG9zaC1kZWJpYW4tMC4xNC4xL3Rl c3RzL3RoLXNoCnBvc2gtZGViaWFuLTAuMTQuMS90ZXN0cy90b2tlbi50CnBvc2gtZGViaWFuLTAu MTQuMS90ZXN0cy90cmFwLnQKcG9zaC1kZWJpYW4tMC4xNC4xL3Rlc3RzL3V0aWxpdGllcy50CnBv c2gtZGViaWFuLTAuMTQuMS90ZXN0cy92YXJpYWJsZXMudApwb3NoLWRlYmlhbi0wLjE0LjEvdGVz dHMvdmVyc2lvbi50CnBvc2gtZGViaWFuLTAuMTQuMS90cmFwLmMKcG9zaC1kZWJpYW4tMC4xNC4x L3RyZWUuYwpwb3NoLWRlYmlhbi0wLjE0LjEvdHJlZS5oCnBvc2gtZGViaWFuLTAuMTQuMS90dHku Ywpwb3NoLWRlYmlhbi0wLjE0LjEvdHR5LmgKcG9zaC1kZWJpYW4tMC4xNC4xL3Zhci5jCnBoYXNl IGB1bnBhY2snIHN1Y2NlZWRlZCBhZnRlciAwLjAgc2Vjb25kcwpzdGFydGluZyBwaGFzZSBgYm9v dHN0cmFwJwpJbiBleGVjdnAgb2YgYXV0b3JlY29uZjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9y eQplcnJvcjogaW4gcGhhc2UgJ2Jvb3RzdHJhcCc6IHVuY2F1Z2h0IGV4Y2VwdGlvbjoKJWV4Y2Vw dGlvbiAjPCZpbnZva2UtZXJyb3IgcHJvZ3JhbTogImF1dG9yZWNvbmYiIGFyZ3VtZW50czogKCIt dmlmIikgZXhpdC1zdGF0dXM6IDEyNyB0ZXJtLXNpZ25hbDogI2Ygc3RvcC1zaWduYWw6ICNmPgpw aGFzZSBgYm9vdHN0cmFwJyBmYWlsZWQgYWZ0ZXIgMC4wIHNlY29uZHMKY29tbWFuZCAiYXV0b3Jl Y29uZiIgIi12aWYiIGZhaWxlZCB3aXRoIHN0YXR1cyAxMjcKYnVpbGRlciBmb3IgYC9nbnUvc3Rv cmUvYTFwd3g2cnEzNmEyaThqZmZ4NzZucXpiYngzeDRoZDktcG9zaC0wLjE0LjEuZHJ2JyBmYWls ZWQgd2l0aCBleGl0IGNvZGUgMQpidWlsZCBvZiAvZ251L3N0b3JlL2ExcHd4NnJxMzZhMmk4amZm eDc2bnF6YmJ4M3g0aGQ5LXBvc2gtMC4xNC4xLmRydiBmYWlsZWQKVmlldyBidWlsZCBsb2cgYXQg Jy92YXIvbG9nL2d1aXgvZHJ2cy9hMS9wd3g2cnEzNmEyaThqZmZ4NzZucXpiYngzeDRoZDktcG9z aC0wLjE0LjEuZHJ2Lmd6Jy4KZ3VpeCBidWlsZDogZXJyb3I6IGJ1aWxkIG9mIGAvZ251L3N0b3Jl L2ExcHd4NnJxMzZhMmk4amZmeDc2bnF6YmJ4M3g0aGQ5LXBvc2gtMC4xNC4xLmRydicgZmFpbGVk CiMrZW5kX2V4YW1wbGUKCiogRmlsZSBWYXJpYWJsZXMgOm5vZXhwb3J0OgpUaGUgZm9sbG93aW5n IGFkZHMgYSBob29rIHdoaWNoIHVwZGF0ZXMgdGhlIGRhdGUgbGluZSAoYmVnaW5uaW5nIHdpdGgK IiMrREFURSIpIGF0IHRoZSB0b3Agb2YgdGhpcyBmaWxlIHdoZW5ldmVyIGl0IGlzIHNhdmVkLgoj IExvY2FsIFZhcmlhYmxlczoKIyB0aW1lLXN0YW1wLXN0YXJ0OiAiXlxcI1xcK1tEZF0rW0FhXStb VHRdK1tFZV0rOlsgIF0rIgojIHRpbWUtc3RhbXAtZW5kOiAiXFxcXD8kIgojIHRpbWUtc3RhbXAt Zm9ybWF0OiIlWS0lMDJtLSUwMmQiCiMgZXZhbDogKGFkZC1ob29rICdiZWZvcmUtc2F2ZS1ob29r ICd0aW1lLXN0YW1wIG5pbCB0KQojIEVuZDoKCiogRm9vdG5vdGVzCgpbZm46MV0gaHR0cHM6Ly93 d3cuZ251Lm9yZy9zb2Z0d2FyZS9jb3JldXRpbHMvbWFudWFsL2h0bWxfbm9kZS9pbmRleC5odG1s CgpbZm46Ml0gaHR0cHM6Ly9ndWl4LmdudS5vcmcvZW4vbWFudWFsL2RldmVsL2VuL2h0bWxfbm9k ZS9wYWNrYWdlLVJlZmVyZW5jZS5odG1sCgpbZm46M10gaHR0cHM6Ly9ndWl4LmdudS5vcmcvZW4v bWFudWFsL2RldmVsL2VuL2h0bWxfbm9kZS9vcmlnaW4tUmVmZXJlbmNlLmh0bWwKCltmbjo0XSBo dHRwczovL3NhbHNhLmRlYmlhbi5vcmcvY2xpbnQvcG9zaAoKW2ZuOjVdIGh0dHBzOi8vd2ViLmFy Y2hpdmUub3JnL3dlYi8yMDI0MDExMzEzNDUxOS9odHRwczovL3BhY2thZ2VzLmRlYmlhbi5vcmcv c3RhYmxlL3Bvc2gKCltmbjo2XSBodHRwczovL3NhbHNhLmRlYmlhbi5vcmcvY2xpbnQvcG9zaC8t L3RyZWUvZGViaWFuLzAuMTQuMT9yZWZfdHlwZT10YWdzCgpbZm46N10gQnkgdGhlIHRpbWUgeW91 IHJlYWQgdGhpcywgdGhlIHdlYnBhZ2UgbWF5IGhhdmUgY2hhbmdlZC4gIFdoaWxlCiAgICAgICBz b21lIG9mIHRoaXMgbWF5IGFwcGVhciBvYnZpb3VzLCBmaW5kaW5nIHRoZSBzb3VyY2Ugb2Z0ZW4K ICAgICAgIHJlcXVpcmVzIGEgYml0IG9mIHNlYXJjaGluZy4gIFRoaXMgZXhhbXBsZSBkZW1vbnN0 cmF0ZXMgdGhhdAogICAgICAgdGhlIGxvY2F0aW9uIG9mIHRoZSBVUkkgbWF5IG5vdCBiZSBjbGVh cmx5IGxhYmVsZWQsIG9yIGV2ZW4KICAgICAgIGxhYmVsZWQgYXQgYWxsIQoKW2ZuOjhdIGh0dHBz Oi8vZ3VpeC5nbnUub3JnL2VuL21hbnVhbC9kZXZlbC9lbi9odG1sX25vZGUvSW52b2tpbmctZ3Vp eC1kb3dubG9hZC5odG1sCgpbZm46OV0gaHR0cHM6Ly9ndWl4LmdudS5vcmcvZW4vbWFudWFsL2Rl dmVsL2VuL2h0bWxfbm9kZS9CdWlsZC1TeXN0ZW1zLmh0bWwKCltmbjoxMF0gaHR0cHM6Ly93d3cu Z251Lm9yZy9zb2Z0d2FyZS9hdXRvbWFrZS9tYW51YWwvYXV0b21ha2UuaHRtbAoKW2ZuOjExXSBo dHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9tYWtlL21hbnVhbC9odG1sX25vZGUvSW50 cm9kdWN0aW9uLmh0bWwKCltmbjoxMl0gaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRv bWFrZS9tYW51YWwvaHRtbF9ub2RlL0F1dG90b29scy1JbnRyb2R1Y3Rpb24uaHRtbAoKW2ZuOjEz XSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2UtbGlzdAoKW2ZuOjE0XSBodHRw czovL2dpdC5zYXZhbm5haC5nbnUub3JnL2NnaXQvZ3VpeC5naXQvdHJlZS9ndWl4L2xpY2Vuc2Vz LnNjbSNuNDEKCltmbjoxNV0gaHR0cHM6Ly93d3cuY2F0Yi5vcmcvfmVzci9mYXFzL3NtYXJ0LXF1 ZXN0aW9ucy5odG1sI2JlZm9yZQoKW2ZuOjE2XSBodHRwczovL3NsYXNoNy5jb20vMjAwNi8xMi8y Mi92YW1waXJlcy8KCltmbjoxN10gVW5sZXNzIHlvdSBwcm92aWRlZCB0aGUgZGVmaW5pdGlvbiBm b3IgR05VIEhlbGxvLiAgVGhhdCdzCiAgICAgICAgaW5jbHVkZWQgd2l0aCBHdWl4IHNvIGl0IGRv ZXNuJ3QgaGF2ZSB0aGlzIHByb2JsZW0uCg== ------=_Part_4141553_681118460.1709106709593--