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=-12.4 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham 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 0A17AC433E9 for ; Tue, 2 Feb 2021 21:57:30 +0000 (UTC) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 62F5964F60 for ; Tue, 2 Feb 2021 21:57:29 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 62F5964F60 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=tempfail smtp.mailfrom=linux-audit-bounces@redhat.com Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-109-I9WojNTmNfSQgyEsVMJ7GA-1; Tue, 02 Feb 2021 16:57:26 -0500 X-MC-Unique: I9WojNTmNfSQgyEsVMJ7GA-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0F8CA8162C; Tue, 2 Feb 2021 21:57:23 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EEA666E510; Tue, 2 Feb 2021 21:57:22 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 425B75003C; Tue, 2 Feb 2021 21:57:04 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 112HCeRw017545 for ; Tue, 2 Feb 2021 12:12:40 -0500 Received: by smtp.corp.redhat.com (Postfix) id 1E9E52166B2A; Tue, 2 Feb 2021 17:12:40 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0F0AD2166B2F for ; Tue, 2 Feb 2021 17:12:30 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 73E41802A5B for ; Tue, 2 Feb 2021 17:12:30 +0000 (UTC) Received: from mail-lf1-f51.google.com (mail-lf1-f51.google.com [209.85.167.51]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-553-mB_G3PbRN9qMtqZO95l5Hg-1; Tue, 02 Feb 2021 12:12:28 -0500 X-MC-Unique: mB_G3PbRN9qMtqZO95l5Hg-1 Received: by mail-lf1-f51.google.com with SMTP id u25so28991902lfc.2 for ; Tue, 02 Feb 2021 09:12:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=uShyWR3MNmvXVDpkE0D46LY+ORkDVqS/Qa6mLsHQbmA=; b=LFho8sCov6AVul2/g1X5U/Bzn7+HV/XX56JwsF5VKoHvI+FIV2pcTJ4lIOGgUtKpMi IpbyC45H0ygNa9nw+hHws+Qv6EC2F51Kjw614Uz3YO1NWo7oFR6jCN4nnlcZB9DPqtQG 8OPDQQBuMib48BkDFmd+d7LrXkzyYJJV992TcW3eIoDjzTAXTdyCFHAh+OW4di4zx1xi 02lcyYgVhe1KOJDgywky311gpsXRvf3uBslCO0L1Al4dQjg+d4CjE828DXuIHNSNtkSE v8shYZu0SLw4lNWtlHqXwCRrNHijBYn6AQ2B+au8pZFIAisLFH6QvefDS8aWtyrFGeKd sHfw== X-Gm-Message-State: AOAM5337bHfrc7j9hYzKoBCMPcJ4bS3CeabQVXK/6CKMP9FpVXawKm28 FcXbNj8gyvTckPMaqdQ6+/A= X-Google-Smtp-Source: ABdhPJyxUmatK38o8ykTXLx7DqtE30aaaFBQp8V5TivEquQQBlTpx5wu3jwd8mxQna+whhJKKyd/jg== X-Received: by 2002:a05:6512:44e:: with SMTP id y14mr11062321lfk.603.1612285946235; Tue, 02 Feb 2021 09:12:26 -0800 (PST) Received: from [192.168.1.36] (88-114-221-222.elisa-laajakaista.fi. [88.114.221.222]) by smtp.gmail.com with ESMTPSA id v2sm1682162lft.4.2021.02.02.09.12.24 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 02 Feb 2021 09:12:25 -0800 (PST) Subject: Re: [PATCH v24 00/25] LSM: Module stacking for AppArmor To: Casey Schaufler , casey.schaufler@intel.com, jmorris@namei.org, linux-security-module@vger.kernel.org, selinux@vger.kernel.org References: <20210126164108.1958-1-casey.ref@schaufler-ca.com> <20210126164108.1958-1-casey@schaufler-ca.com> <31ba0fe7-afdf-8f7d-e7a7-8f15d8c690a4@gmail.com> From: Topi Miettinen Message-ID: Date: Tue, 2 Feb 2021 19:12:22 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 MIME-Version: 1.0 In-Reply-To: X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: linux-audit@redhat.com X-Mailman-Approved-At: Tue, 02 Feb 2021 16:57:02 -0500 Cc: john.johansen@canonical.com, linux-kernel@vger.kernel.org, linux-audit@redhat.com, sds@tycho.nsa.gov X-BeenThere: linux-audit@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Linux Audit Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-audit-bounces@redhat.com Errors-To: linux-audit-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=linux-audit-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" T24gMi4yLjIwMjEgMTcuMzAsIENhc2V5IFNjaGF1ZmxlciB3cm90ZToKPiBPbiAyLzIvMjAyMSA0 OjA1IEFNLCBUb3BpIE1pZXR0aW5lbiB3cm90ZToKPj4gT24gMjYuMS4yMDIxIDE4LjQwLCBDYXNl eSBTY2hhdWZsZXIgd3JvdGU6Cj4+PiBUaGlzIHBhdGNoc2V0IHByb3ZpZGVzIHRoZSBjaGFuZ2Vz IHJlcXVpcmVkIGZvcgo+Pj4gdGhlIEFwcEFybW9yIHNlY3VyaXR5IG1vZHVsZSB0byBzdGFjayBz YWZlbHkgd2l0aCBhbnkgb3RoZXIuCj4+Cj4+IEluIG15IHRlc3QsIHdoZW4ga2VybmVsIGNvbW1h bmQgbGluZSBoYXMgYXBwYXJtb3IgYmVmb3JlIHNlbGludXggaW4gbHNtPSBlbnRyeSwgdGhlIGJv b3QgaXMgbm90IHN1Y2Nlc3NmdWwgd2l0aCBlbmZvcmNpbmc9MToKPj4gc3lzdGVtZFsxXTogRmFp bGVkIHRvIGNvbXB1dGUgaW5pdCBsYWJlbCwgaWdub3JpbmcuCj4+IHN5c3RlbWRbMV06IEZhaWxl ZCB0byBzZXQgU0VMaW51eCBzZWN1cml0eSBjb250ZXh0IHN5c3RlbV91Om9iamVjdF9yOmNncm91 cF90OnMwIGZvciAvc3lzL2ZzL2Nncm91cDogSW52YWxpZCBhcmd1bWVudAo+PiBzeXN0ZW1kWzFd OiBGYWlsZWQgdG8gc2V0IFNFTGludXggc2VjdXJpdHkgY29udGV4dCBzeXN0ZW1fdTpvYmplY3Rf cjpwc3RvcmVfdDpzMCBmb3IgL3N5cy9mcy9wc3RvcmU6IEludmFsaWQgYXJndW1lbnQKPj4gc3lz dGVtZFsxXTogRmFpbGVkIHRvIHNldCBTRUxpbnV4IHNlY3VyaXR5IGNvbnRleHQgc3lzdGVtX3U6 b2JqZWN0X3I6c3lzZnNfdDpzMCBmb3IgL3N5cy9maXJtd2FyZS9lZmkvZWZpdmFyczogSW52YWxp ZCBhcmd1bWVudAo+PiAuLi4KPj4gRmFpbGVkIHRvIGRyb3AgY2FwYWJpbGl0eSBib3VuZGluZyBz ZXQgb2YgdXNlcm1vZGUgaGVscGVyczogT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQKPj4gRmFpbGVk IHRvIGRyb3AgY2FwYWJpbGl0eSBib3VuZGluZyBzZXQgb2YgdXNlcm1vZGUgaGVscGVycy4KPj4g c3lzdGVtZFsxXTogRnJlZXppbmcgZXhlY3V0aW9uLgo+IAo+IFN5c3RlbWQgaGFzIGV4dGVuc2l2 ZSBzdXBwb3J0IGZvciBTRUxpbnV4LiBUaGF0J3MgZ29vZC4KPiBJdCBkb2Vzbid0IGhhdmUgYW4g dW5kZXJzdGFuZGluZyBvZiB3aGF0IG5lZWRzIHRvIGJlIGRvbmUKPiBpZiBTRUxpbnV4IGlzIGFj dGl2ZSBidXQgbm90IHRoZSBkZWZhdWx0IHNlY3VyaXR5IG1vZHVsZQo+IGZvciBpbnRlcmZhY2Vz IGluY2x1ZGluZyBTT19QRUVSU0VDIGFuZCAvcHJvYy8qL2F0dHIvKi4KPiBUaGF0J3MgZ29pbmcg dG8gdGFrZSBzb21lIHdvcmsuCgpPay4gV2hhdCB3aWxsIGJlIHRoZSByZXBsYWNlbWVudCBmb3Ig U09fUEVFUlNFQz8gU3lzdGVtZCBjYWxscyAKZ2V0c29ja29wdChmZCwgU09MX1NPQ0tFVCwgU09f UEVFUlNFQywgcywgJm4pLgoKSXMgdGhlIC9wcm9jIHBhcnQgc29tZXRoaW5nIHRoYXQgc2hvdWxk IGJlIGZpeGVkIG9uIHN5c3RlbWQgc2lkZSwgb3IgY2FuIApwZXJoYXBzIHRoZSBTRUxpbnV4IGxp YnJhcmllcyBoaWRlIHRoaXMgZnJvbSBhcHBsaWNhdGlvbnM/Cgo+IAo+Pgo+PiBQcm9iYWJseSBT RUxpbnV4IGxpYnJhcmllcyBjYW4ndCBmaW5kIG9yIHNldCB0aGUgbGFiZWxzIGZvciB0aGUgUElE MSBvciBhbnkgZmlsZSBzeXN0ZW1zLiBCZWZvcmUgdGhlIGluaXQgbGFiZWwgbWVzc2FnZSwgc3lz dGVtZCBjYWxscyBnZXRjb25fcmF3KCksIGdldGZpbGVjb25fcmF3KCksIHN0cmluZ190b19zZWN1 cml0eV9jbGFzcygpIGFuZCBzZWN1cml0eV9jb21wdXRlX2NyZWF0ZV9yYXcoKSwgc28gb25lIG9m IHRoZXNlIGRvbid0IHVuZGVyc3RhbmQgdGhlIExTTSBzdGFja2luZy4KPiAKPiBUaGF0IGlzIGNv cnJlY3QuCj4gCj4+Cj4+IEFsc28gdGhlIHBvbGljeSBuZWVkcyB1cGRhdGluZyB0byBoYW5kbGUg cHJvY2VzczI6c2V0ZGlzcGxheToKPj4gU0VMaW51eDrCoCBQZXJtaXNzaW9uIHNldGRpc3BsYXkg aW4gY2xhc3MgcHJvY2VzczIgbm90IGRlZmluZWQgaW4gcG9saWN5Lgo+PiBTRUxpbnV4OiB0aGUg YWJvdmUgdW5rbm93biBjbGFzc2VzIGFuZCBwZXJtaXNzaW9ucyB3aWxsIGJlIGRlbmllZAo+Pgo+ PiBXaXRoIGVuZm9yY2luZz0wLCBtYW55IHNlcnZpY2VzIHN0YXJ0LCBidXQgZm9yIGV4YW1wbGUg c3lzdGVtZC1qb3VybmFsZCBkb2Vzbid0LiBUaGlzIGlzIHByb2JhYmx5IHJlbGF0ZWQgdG8gdGhl IGVhcmxpZXIgcHJvYmxlbSB3aXRoIGxhYmVscyAobWF5YmUgbGlicmFyaWVzIHRyeSB0byB1c2Ug U0VMaW51eCBsYWJlbHMgd2hlcmUga2VybmVsIHdhbnRzIEFwcEFybW9yIHByb2ZpbGVzKToKPj4g c3lzdGVtZFsxXTogRmFpbGVkIHRvIHNldCBTRUxpbnV4IHNlY3VyaXR5IGNvbnRleHQgc3lzdGVt X3U6b2JqZWN0X3I6aW5pdF9ydW50aW1lX3Q6czAgZm9yIC9ydW4vc3lzdGVtZC91bml0cy9pbnZv Y2F0aW9uOnN5c3RlbWQtdXNlci1zZXNzaW9ucy5zZXJ2aWNlOiBJbnZhbGlkIGFyZ3VtZW50Cj4g Cj4gVGhpcyBpcyBhbHNvIGFuIGFydGlmYWN0IG9mIHN5c3RlbWQgc2VlaW5nIEFwcEFybW9yIGlu Zm9ybWF0aW9uCj4gaW5zdGVhZCBvZiBTRUxpbnV4IGNvbnRleHRzLgoKV2lsbCBTRUxpbnV4IGxp YnJhcmllcyBjaG9vc2UgYXV0b21hdGljYWxseSB0aGUgY29ycmVjdCB3YXkgdG8gc2V0IApsYWJl bHMgaW4gdGhlIGZ1dHVyZT8KCj4+Cj4+IFN3aXRjaGluZyB0aGUgb3JkZXIgc28gdGhhdCBhcHBh cm1vciBpcyBhZnRlciBzZWxpbnV4LCBib290IGlzIHN1Y2Nlc3NmdWwuIExvYWRpbmcgQXBwQXJt b3IgcHJvZmlsZXMgbmVlZHMgYSBwZXJtaXNzaW9uIGZyb20gU0VMaW51eDoKPj4KPj4gRmViIDAy IDA4OjUzOjE1IGF1ZGl0Wzk2M106IEFWQyBhdmM6wqAgZGVuaWVkwqAgeyBtYWNfYWRtaW4gfSBm b3LCoCBwaWQ9OTYzIGNvbW09ImFwcGFybW9yX3BhcnNlciIgY2FwYWJpbGl0eT0zMyBzY29udGV4 dD1zeXN0ZW1fdTpzeXN0ZW1fcjppbml0cmNfdDpzMCB0Y29udGV4dD1zeXN0ZW1fdTpzeXN0ZW1f cjppbml0cmNfdDpzMCB0Y2xhc3M9Y2FwYWJpbGl0eTIgcGVybWlzc2l2ZT0wCj4+IEZlYiAwMiAw ODo1MzoxNSBhdWRpdFs5NjNdOiBBVkMgYXBwYXJtb3I9IlNUQVRVUyIgb3BlcmF0aW9uPSJwcm9m aWxlX3JlcGxhY2UiIGluZm89Im5vdCBwb2xpY3kgYWRtaW4iIGVycm9yPS0xMyBwcm9maWxlPSJ1 bmNvbmZpbmVkIiBwaWQ9OTYzIGNvbW09ImFwcGFybW9yX3BhcnNlciIKPj4gRmViIDAyIDA4OjUz OjE1IGF1ZGl0OiBBVURJVDE0MjAgc3Vial9zZWxpbnV4PXN5c3RlbV91OnN5c3RlbV9yOmluaXRy Y190OnMwIHN1YmpfYXBwYXJtb3I9PXVuY29uZmluZWQKPj4gRmViIDAyIDA4OjUzOjE1IGF1ZGl0 Wzk2M106IFNZU0NBTEwgYXJjaD1jMDAwMDAzZSBzeXNjYWxsPTEgc3VjY2Vzcz1ubyBleGl0PS0x MyBhMD03IGExPTdhOGYyZmYwNGY4MCBhMj0xZTA5IGEzPTAgaXRlbXM9MCBwcGlkPTk2MSBwaWQ9 OTYzIGF1aWQ9NDI5NDk2NzI5NSB1aWQ9MCBnaWQ9MCBldWlkPTAgc3VpZD0wIGZzdWlkPTAgZWdp ZD0wIHNnaWQ9MCBmc2dpZD0wIHR0eT0obm9uZSkgc2VzPTQyOTQ5NjcyOTUgY29tbT0iYXBwYXJt b3JfcGFyc2VyIiBleGU9Ii91c3Ivc2Jpbi9hcHBhcm1vcl9wYXJzZXIiIHN1Ymo9PyBrZXk9KG51 bGwpCj4+IEZlYiAwMiAwODo1MzoxNSBhdWRpdDogUFJPQ1RJVExFIHByb2N0aXRsZT0yRjczNjI2 OTZFMkY2MTcwNzA2MTcyNkQ2RjcyNUY3MDYxNzI3MzY1NzIwMDJEMkQ3NzcyNjk3NDY1MkQ2MzYx NjM2ODY1MDAyRDJENzI2NTcwNkM2MTYzNjUwMDJEMkQwMDJGNjU3NDYzMkY2MTcwNzA2MTcyNkQ2 RjcyMkU2NAo+PiBGZWIgMDIgMDg6NTM6MTUgYXBwYXJtb3Iuc3lzdGVtZFs5NjNdOiAvc2Jpbi9h cHBhcm1vcl9wYXJzZXI6IFVuYWJsZSB0byByZXBsYWNlICIvbGliL3N5c3RlbWQvc3lzdGVtZC1y ZXNvbHZlZCIuwqAgUGVybWlzc2lvbiBkZW5pZWQ7IGF0dGVtcHRlZCB0byBsb2FkIGEgcHJvZmls ZSB3aGlsZSBjb25maW5lZD8KPj4KPj4gVGhpcyBqdXN0IHNlZW1zIHRvIG5lZWQgVEUgcnVsZXMg Zm9yIHRoZSBhcHBhcm1vcl9wYXJzZXIuCj4+Cj4+IERvdWJsZSBlcXVhbCBzaWduIGluIHN1Ympf YXBwYXJtb3I9PXVuY29uZmluZWQgbG9va3Mgb2RkLCBzaG91bGQgdGhhdCBiZSBqdXN0IG9uZSBs aWtlIHN1Ympfc2VsaW51eD8KPiAKPiBUaGUgYXVkaXQgY29kZSBpcyByZXBvcnRpbmcgd2hhdCBB cHBBcm1vciBwcm92aWRlcy4KPiBJIGFncmVlIHRoYXQgdGhpcyBsb29rcyBvZGQuCj4gCj4+Cj4+ Cj4+IFRvb2xzIGxpa2UgcHMsIGFuZCBLREUgYW5kIEdub21lIFN5c3RlbSBNb25pdG9ycyBvbmx5 IHNob3cgU0VMaW51eCBjb250ZXh0LCBidXQgaXQgd291bGQgYmUgbmljZSBpZiBNQUMgY29udGV4 dHMgZm9yIGFsbCBlbmFibGVkIExTTXMgd2VyZSBzaG93bi4KPiAKPiBJIGFncmVlLiBIb3cgdGhp cyBzaG91bGQgYmUgZG9uZSBoYXMgYmVlbiBhIHRvcGljIG9mCj4gbGl2ZWx5IGRlYmF0ZSBmb3Ig c29tZSB0aW1lLgo+IAo+Pgo+PiAtVG9waQo+IAo+IFRoYW5rIHlvdSBmb3IgdGhpcyByZXBvcnQu IFdoaWNoIGRpc3RyaWJ1dGlvbiBhcmUgeW91IHVzaW5nPwo+IEkgaGF2ZSBiZWVuIHRlc3Rpbmcg d2l0aCBGZWRvcmEgKFNFTGludXggKyBBcHBBcm1vcikgYW5kIFVidW50dQo+IChBcHBBcm1vciAr IFNtYWNrKS4gSSB3b3VsZCBiZSB2ZXJ5IGludGVyZXN0ZWQgdG8gc2VlIGhvdyBhCj4gZGlzdHJp YnV0aW9uIHRoYXQgZG9lc24ndCB1c2Ugc3lzdGVtZCBiZWhhdmVzLgoKVGhpcyBpcyBEZWJpYW4g d2l0aCBzeXN0ZW1kLCBJJ20gdXNpbmcgU0VMaW51eCArIFRPTU9ZTyArIEFwcEFybW9yLgoKLVRv cGkKCj4gCj4+Cj4+Pgo+Pj4gdjI0OiBSZWJhc2UgdG8gNS4xMS1yYzEKPj4+ICDCoMKgwqDCoMKg IEluY29ycG9yYXRlIGZlZWRiYWNrIGZyb20gdjIzCj4+PiAgwqDCoMKgwqDCoCAtIEFkZHJlc3Mg dGhlIElNQSB0ZWFtJ3MgY29uY2VybnMgYWJvdXQgImxhYmVsIGNvbGxpc2lvbnMiLgo+Pj4gIMKg wqDCoMKgwqDCoMKgIEEgbGFiZWwgY29sbGlzaW9uIG9jY3VycyB3aGVuIHRoZXJlIGlzIGFtYmln dWl0eSBhYm91dAo+Pj4gIMKgwqDCoMKgwqDCoMKgIHdoaWNoIG9mIG11bHRpcGxlIExTTXMgaXMg YmVpbmcgdGFyZ2V0ZWQgaW4gdGhlIGRlZmluaXRpb24KPj4+ICDCoMKgwqDCoMKgwqDCoCBvZiBh biBpbnRlZ3JpdHkgY2hlY2sgcnVsZS7CoCBBIHN5c3RlbSB3aXRoIFNtYWNrIGFuZAo+Pj4gIMKg wqDCoMKgwqDCoMKgIEFwcEFybW9yIHdvdWxkIGJlIHVuYWJsZSB0byBkaXN0aW5ndWlzaCB3aGlj aCBMU00gaXMKPj4+ICDCoMKgwqDCoMKgwqDCoCBpbXBvcnRhbnQgdG8gYW4gaW50ZWdyaXR5IHJ1 bGUgcmVmZXJyZW5jaW5nIHRoZSBsYWJlbAo+Pj4gIMKgwqDCoMKgwqDCoMKgICJ1bmNvbmZpbmVk IiBhcyB0aGF0IGxhYmVsIGlzIG1lYW5pbmdmdWwgdG8gYm90aC4KPj4+ICDCoMKgwqDCoMKgwqDC oCBQcm92aWRlIGEgYm9vdCBvcHRpb24gdG8gc3BlY2lmeSB3aGljaCBMU00gd2lsbCBiZSB1c2Vk IGluCj4+PiAgwqDCoMKgwqDCoMKgwqAgSU1BIHJ1bGVzIHdoZW4gbXVsdGlwbGUgTFNNcyBhcmUg cHJlc2VudC4gKHBhdGNoIDA0KQo+Pj4gIMKgwqDCoMKgwqDCoMKgIFB1bGwgTFNNICJzbG90IiBp ZGVudGlmaWNhdGlvbiBmcm9tIGxhdGVyIGF1ZGl0IHBhdGNoZXMgaW4KPj4+ICDCoMKgwqDCoMKg wqDCoCBpbiBzdXBwb3J0IG9mIHRoaXMgKHBhdGNoIDAzKS4KPj4+ICDCoMKgwqDCoMKgIC0gUGlj ayB1cCBhIGZldyBhdWRpdCBldmVudHMgdGhhdCBuZWVkIHRvIGluY2x1ZGUgc3VwcGxpbWVudGFs Cj4+PiAgwqDCoMKgwqDCoMKgwqAgc3ViamVjdCBjb250ZXh0IHJlY29yZHMgdGhhdCBoYWQgYmVl biBtaXNzZWQgaW4gdGhlCj4+PiAgwqDCoMKgwqDCoMKgwqAgcHJldmlvdXMgdmVyc2lvbi4KPj4+ IHYyMzogUmViYXNlIHRvIDUuMTAtcmM0Cj4+PiAgwqDCoMKgwqDCoCBJbmNvcnBvcmF0ZSBmZWVk YmFjayBmcm9tIHYyMgo+Pj4gIMKgwqDCoMKgwqAgLSBDaGFuZ2UgL3Byb2MvKi9hdHRyL2Rpc3Bs YXkgdG8gL3Byb2MvKi9hdHRyL2ludGVyZmFjZV9sc20gdG8KPj4+ICDCoMKgwqDCoMKgwqDCoCBt YWtlIHRoZSBwdXJwb3NlIGNsZWFyZXIuIChwYXRjaCAwMDEyKQo+Pj4gIMKgwqDCoMKgwqAgLSBJ bmNsdWRlIEFCSSBkb2N1bWVudGF0aW9uLiAocGF0Y2ggMDAxMiwgMDAyMikKPj4+ICDCoMKgwqDC oMKgIC0gSW50cm9kdWNlIExTTSBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgd2l0aCB0aGUgcGF0Y2hl cyB3aGVyZQo+Pj4gIMKgwqDCoMKgwqDCoMKgIHRoZSBpbnRlcmZhY2VzIGFyZSBhZGRlZCByYXRo ZXIgdGhhbiBhdCB0aGUgZW5kLiAocGF0Y2ggMDAxMiwgMDAyMikKPj4+ICDCoMKgwqDCoMKgIElu Y2x1ZGUgbW9yZSBtYWludGFpbmVycyBhbmQgbWFpbCBsaXN0cyBpbiBUbzogYW5kIENjOiBkaXJl Y3RpdmVzLgo+Pj4gdjIyOiBSZWJhc2UgdG8gNS4xMC1yYzEKPj4+IHYyMTogUmViYXNlIHRvIDUu OS1yYzQKPj4+ICDCoMKgwqDCoMKgIEluY29ycG9yYXRlIGZlZWRiYWNrIGZyb20gdjIwCj4+PiAg wqDCoMKgwqDCoCAtIEZ1cnRoZXIgcmV2ZXJ0IFVEUyBTT19QRUVSU0VDIHRvIHVzZSBzY2FmZm9s ZGluZyBhcm91bmQKPj4+ICDCoMKgwqDCoMKgwqDCoCB0aGUgaW50ZXJmYWNlcyB0aGF0IHVzZSBs c21ibG9icyBhbmQgc3RvcmUgb25seSBhIHNpbmdsZQo+Pj4gIMKgwqDCoMKgwqDCoMKgIHNlY2lk LiBUaGUgcG9zc2liaWxpdHkgb2YgbXVsdGlwbGUgc2VjdXJpdHkgbW9kdWxlcwo+Pj4gIMKgwqDC oMKgwqDCoMKgIHJlcXVpcmluZyBkYXRhIGhlcmUgaXMgc3RpbGwgYSBmdXR1cmUgcHJvYmxlbS4K Pj4+ICDCoMKgwqDCoMKgIC0gSW5jb3Jwb3JhdGUgUmljaGFyZCBHdXkgQnJpZ2dzJyBub24tc3lz Y2FsbCBhdXhpbGlhcnkKPj4+ICDCoMKgwqDCoMKgwqDCoCByZWNvcmRzIHBhdGNoIChwYXRjaCAw MDE5LTAwMjEpIGluIHBsYWNlIG9mIG15ICJzdXBwbGltZW50YWwiCj4+PiAgwqDCoMKgwqDCoMKg wqAgcmVjb3JkcyBpbXBsZW1lbnRhdGlvbi4gW0knbSBub3Qgc3VyZSBJJ3ZlIGdpdmVuIHByb3Bl cgo+Pj4gIMKgwqDCoMKgwqDCoMKgIGF0dGVzdGF0aW9uLiBJIHdpbGwgY29ycmVjdCBhcyBhcHBy b3ByaWF0ZV0KPj4+IHYyMDogUmViYXNlIHRvIDUuOS1yYzEKPj4+ICDCoMKgwqDCoMKgIENoYW5n ZSB0aGUgQlBGIHNlY3VyaXR5IG1vZHVsZSB0byB1c2UgdGhlIGxzbWJsb2IgZGF0YS4gKHBhdGNo IDAwMDIpCj4+PiAgwqDCoMKgwqDCoCBSZXBhaXIgbGVuZ3RoIGxvZ2ljIGluIHN1YmplY3QgbGFi ZWwgcHJvY2Vzc2luZyAocGF0Y2ggMDAxNSkKPj4+ICDCoMKgwqDCoMKgIEhhbmRsZSAtRUlOVkFM IGZyb20gdGhlIGVtcHR5IEJQRiBzZXRwcm9jYXR0ciBob29rIChwYXRjaCAwMDIwKQo+Pj4gIMKg wqDCoMKgwqAgQ29ycmVjdCBsZW5ndGggcHJvY2Vzc2luZyBpbiBhcHBlbmRfY3R4KCkgKHBhdGNo IDAwMjIpCj4+PiB2MTk6IFJlYmFzZSB0byA1LjgtcmM2Cj4+PiAgwqDCoMKgwqDCoCBJbmNvcnBv cmF0ZSBmZWVkYmFjayBmcm9tIHYxOAo+Pj4gIMKgwqDCoMKgwqAgLSBSZXZlcnQgVURTIFNPX1BF RVJTRUMgaW1wbGVtZW50YXRpb24gdG8gdXNlIGxzbWJsb2JzCj4+PiAgwqDCoMKgwqDCoMKgwqAg ZGlyZWN0bHksIHJhdGhlciB0aGFuIGFsbG9jYXRpbmcgYXMgbmVlZGVkLiBUaGUgY29ycmVjdAo+ Pj4gIMKgwqDCoMKgwqDCoMKgIHRyZWF0bWVudCBvZiBvdXQtb2YtbWVtb3J5IGNvbmRpdGlvbnMg aW4gdGhlIGxhdGVyIGNhc2UKPj4+ICDCoMKgwqDCoMKgwqDCoCBpcyBkaWZmaWN1bHQgdG8gZGVm aW5lLiAocGF0Y2ggMDAwNSkKPj4+ICDCoMKgwqDCoMKgIC0gVXNlIGEgc2l6ZV90IGluIGFwcGVu ZF9jdHgoKSAocGF0Y2ggMDAyMSkKPj4+ICDCoMKgwqDCoMKgIC0gRml4IGEgbWVtb3J5IGxlYWsg d2hlbiBjcmVhdGluZyBjb21wb3VuZCBjb250ZXh0cy4gKHBhdGNoIDAwMjEpCj4+PiAgwqDCoMKg wqDCoCBGaXggYnVpbGQgZXJyb3Igd2hlbiBDT05GSUdfU0VDVVJJVFkgaXNuJ3Qgc2V0IChwYXRj aCAwMDEzKQo+Pj4gIMKgwqDCoMKgwqAgRml4IGJ1aWxkIGVycm9yIHdoZW4gQ09ORklHX1NFQ1VS SVRZIGlzbid0IHNldCAocGF0Y2ggMDAyMCkKPj4+ICDCoMKgwqDCoMKgIEZpeCBidWlsZCBlcnJv ciB3aGVuIENPTkZJR19TRUNVUklUWSBpc24ndCBzZXQgKHBhdGNoIDAwMjEpCj4+PiB2MTg6IFJl YmFzZSB0byA1LjgtcmMzCj4+PiAgwqDCoMKgwqDCoCBJbmNvcnBvcmF0ZSBmZWVkYmFjayBmcm9t IHYxNwo+Pj4gIMKgwqDCoMKgwqAgLSBOdWxsIHBvaW50ZXIgY2hlY2tpbmcgaW4gVURTIChwYXRj aCAwMDA1KQo+Pj4gIMKgwqDCoMKgwqAgTWF0Y2ggY2hhbmdlcyBpbiBJTUEgY29kZSAocGF0Y2gg MDAxMikKPj4+ICDCoMKgwqDCoMKgIEZpeCB0aGUgYmVoYXZpb3Igb2YgTFNNIGNvbnRleHQgc3Vw cGxpbWVudGFsIGF1ZGl0Cj4+PiAgwqDCoMKgwqDCoCByZWNvcmRzIHNvIHRoYXQgdGhlcmUncyBh bHdheXMgZXhhY3RseSBvbmUgd2hlbiBpdCdzCj4+PiAgwqDCoMKgwqDCoCBhcHByb3ByaWF0ZSBm b3IgdGhlcmUgdG8gYmUgb25lLiBUaGlzIGlzIGEgc3Vic3RhbnRpYWwKPj4+ICDCoMKgwqDCoMKg IGNoYW5nZSB0aGF0IHJlcXVpcmVzIGV4dGVudGlvbiBvZiB0aGUgYXVkaXRfY29udGV4dCBiZXlv bmQKPj4+ICDCoMKgwqDCoMKgIHN5c2NhbGwgZXZlbnRzLiAocGF0Y2ggMDAyMCkKPj4+IHYxNzog UmViYXNlIHRvIDUuNy1yYzQKPj4+IHYxNjogUmViYXNlIHRvIDUuNgo+Pj4gIMKgwqDCoMKgwqAg SW5jb3Jwb3JhdGUgZmVlZGJhY2sgZnJvbSB2MTUgLSBUaGFua3MgU3RlcGhlbiwgTWltaSBhbmQg UGF1bAo+Pj4gIMKgwqDCoMKgwqAgLSBHZW5lcmFsbHkgaW1wcm92ZSBjb21taXQgbWVzc2FnZXMg V1JUIHNjYWZmb2xkaW5nCj4+PiAgwqDCoMKgwqDCoCAtIENvbW1lbnQgaW1hX2xzbV9pc3NldCgp IChwYXRjaCAwMDAyKQo+Pj4gIMKgwqDCoMKgwqAgLSBTb21lIHF1ZXN0aW9uIG1heSByZW1haW4g b24gSU1BIHdhcm5pbmcgKHBhdGNoIDAwMDIpCj4+PiAgwqDCoMKgwqDCoCAtIE1hcmsgbHNtX3Ns b3QgYXMgX19sc21fcm9fYWZ0ZXJfaW5pdCBub3QgX19pbml0X2RhdGEgKHBhdGNoIDAwMDIpCj4+ PiAgwqDCoMKgwqDCoCAtIENoYW5nZSBuYW1lIG9mIGxzbWJsb2IgdmFyaWFibGUgaW4gaW1hX21h dGNoX3J1bGVzKCkgKHBhdGNoIDAwMDMpCj4+PiAgwqDCoMKgwqDCoCAtIEluc3RlYWQgb2YgcHV0 dGluZyBhIHN0cnVjdCBsc21ibG9iIGludG8gdGhlIHVuaXhfc2tiX3Bhcm1zCj4+PiAgwqDCoMKg wqDCoMKgwqAgc3RydWN0dXJlIHB1dCBhIHBvaW50ZXIgdG8gYW4gYWxsb2NhdGVkIGluc3RhbmNl LiBUaGVyZSBpcwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGN1cnJlbnRseSBvbmx5IHNwYWNlIGZvciA1 IHUzMidzIGluIHVuaXhfc2tiX3Bhcm1zIGFuZCBpdCBpcwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGxp a2VseSB0byBnZXQgZXZlbiB0aWdodGVyLiBGb3J0dW5hdGVseSwgdGhlIGxpZmVjeWNsZQo+Pj4g IMKgwqDCoMKgwqDCoMKgIG1hbmFnZW1lbnQgb2YgdGhlIGFsbG9jYXRlZCBsc21ibG9iIGlzIHNp bXBsZS4gKHBhdGNoIDAwMDUpCj4+PiAgwqDCoMKgwqDCoCAtIERyb3BwZWQgQWNrcyBkdWUgdG8g dGhlIGFib3ZlIGNoYW5nZSAocGF0Y2ggMDAwNSkKPj4+ICDCoMKgwqDCoMKgIC0gSW1wcm92ZWQg Y29tbWVudGFyeSBvbiBzZWNtYXJrIGxhYmVsaW5nIHNjYWZmb2xkaW5nLiAocGF0Y2ggMDAwNikK Pj4+ICDCoMKgwqDCoMKgIC0gUmVkdWNlZCBzZWNtYXJrIHJlbGF0ZWQgbGFiZWxpbmcgc2NhZmZv bGRpbmcuIChwYXRjaCAwMDA2KQo+Pj4gIMKgwqDCoMKgwqAgLSBSZXBsYWNlIHVzZSBvZiB0aGUg emVyb3RoIGVudHJ5IG9mIGFuIGxzbWJsb2IgaW4gc2NhZmZvbGRpbmcKPj4+ICDCoMKgwqDCoMKg wqDCoCB3aXRoIGEgZnVuY3Rpb24gbHNtYmxvYl92YWx1ZSgpIHRvIGhvcGVmdWxseSBtYWtlIGl0 IGxlc3MKPj4+ICDCoMKgwqDCoMKgwqDCoCBvYnNjdXJlLiAocGF0Y2ggMDAwNikKPj4+ICDCoMKg wqDCoMKgIC0gQ29udmVydCBzZWN1cml0eV9zZWNtYXJrX3JlbGFiZWxfcGFja2V0IHRvIHVzZSBs c21ibG9iIGFzCj4+PiAgwqDCoMKgwqDCoMKgwqAgdGhpcyByZWR1Y2VzIG11Y2ggb2YgdGhlIG1v c3QgY29udGVudGlvdXMgc2NhZmZvbGRpbmcuIChwYXRjaCAwMDA2KQo+Pj4gIMKgwqDCoMKgwqAg LSBEcm9wcGVkIEFja3MgZHVlIHRvIHRoZSBhYm92ZSBjaGFuZ2UgKHBhdGNoIDAwMDYpCj4+PiAg wqDCoMKgwqDCoCAtIEFkZGVkIEJVSUxEX0JVR19PTigpIGZvciBDSVBTTyB0YWcgNi4gKHBhdGNo IDAwMTgpCj4+PiAgwqDCoMKgwqDCoCAtIFJld29ya2VkIGF1ZGl0IHN1YmplY3QgaW5mb3JtYXRp b24uIEluc3RlYWQgb2YgYWRkaW5nIGZpZWxkcyBpbgo+Pj4gIMKgwqDCoMKgwqDCoMKgIHRoZSBt aWRkbGUgb2YgZXhpc3RpbmcgcmVjb3JkcyBhZGQgYSBuZXcgcmVjb3JkIHRvIHRoZSBldmVudC4g V2hlbgo+Pj4gIMKgwqDCoMKgwqDCoMKgIGEgc2VwYXJhdGUgcmVjb3JkIGlzIHJlcXVpcmVkIHVz ZSBzdWJqPSI/Ii4gKHBhdGNoIDAwMjApCj4+PiAgwqDCoMKgwqDCoCAtIERyb3BwZWQgQWNrcyBk dWUgdG8gdGhlIGFib3ZlIGNoYW5nZSAocGF0Y2ggMDAyMCkKPj4+ICDCoMKgwqDCoMKgIC0gUmV3 b3JrZWQgYXVkaXQgb2JqZWN0IGluZm9ybWF0aW9uLiBJbnN0ZWFkIG9mIGFkZGluZyBmaWVsZHMg aW4KPj4+ICDCoMKgwqDCoMKgwqDCoCB0aGUgbWlkZGxlIG9mIGV4aXN0aW5nIHJlY29yZHMgYWRk IGEgbmV3IHJlY29yZCB0byB0aGUgZXZlbnQuIFdoZW4KPj4+ICDCoMKgwqDCoMKgwqDCoCBhIHNl cGFyYXRlIHJlY29yZCBpcyByZXF1aXJlZCB1c2Ugb2JqPSI/Ii4gKHBhdGNoIDAwMjEpCj4+PiAg wqDCoMKgwqDCoCAtIERyb3BwZWQgQWNrcyBkdWUgdG8gdGhlIGFib3ZlIGNoYW5nZSAocGF0Y2gg MDAyMSkKPj4+ICDCoMKgwqDCoMKgIC0gRW5oYW5jZWQgZG9jdW1lbnRhdGlvbiAocGF0Y2ggMDAy MikKPj4+ICDCoMKgwqDCoMKgIC0gUmVtb3ZlZCB1bm5lY2Vzc2FyeSBlcnJvciBjb2RlIGNoZWNr IGluIHNlY3VyaXR5X2dldHByb2NhdHRyKCkKPj4+ICDCoMKgwqDCoMKgwqDCoCAocGF0Y2ggMDAy MSkKPj4+IHYxNTogUmViYXNlIHRvIDUuNi1yYzEKPj4+ICDCoMKgwqDCoMKgIC0gUmV2aXNlIElN QSBkYXRhIHVzZSAocGF0Y2ggMDAwMikKPj4+ICDCoMKgwqDCoMKgIEluY29ycG9yYXRlIGZlZWRi YWNrIGZyb20gdjE0Cj4+PiAgwqDCoMKgwqDCoCAtIEZpeCBsb2NrZG93biBtb2R1bGUgcmVnaXN0 cmF0aW9uIG5hbWluZyAocGF0Y2ggMDAwMikKPj4+ICDCoMKgwqDCoMKgIC0gUmV2aXNlIGhvdyAv cHJvYy9zZWxmL2F0dHIvY29udGV4dCBpcyBnYXRoZXJlZC4gKHBhdGNoIDAwMjIpCj4+PiAgwqDC oMKgwqDCoCAtIFJldmlzZSBhY2Nlc3MgbW9kZXMgb24gL3Byb2Mvc2VsZi9hdHRyL2NvbnRleHQu IChwYXRjaCAwMDIyKQo+Pj4gIMKgwqDCoMKgwqAgLSBSZXZpc2UgZG9jdW1lbnRhdGlvbiBvbiBM U00gZXh0ZXJuYWwgaW50ZXJmYWNlcy4gKHBhdGNoIDAwMjIpCj4+PiB2MTQ6IFJlYmFzZSB0byA1 LjUtcmM1Cj4+PiAgwqDCoMKgwqDCoCBJbmNvcnBvcmF0ZSBmZWVkYmFjayBmcm9tIHYxMwo+Pj4g IMKgwqDCoMKgwqAgLSBVc2UgYW4gYXJyYXkgb2YgYXVkaXQgcnVsZXMgKHBhdGNoIDAwMDIpCj4+ PiAgwqDCoMKgwqDCoCAtIFNpZ25pZmljYW50IGNoYW5nZSwgcmVtb3ZlZCBBY2tzIChwYXRjaCAw MDAyKQo+Pj4gIMKgwqDCoMKgwqAgLSBSZW1vdmUgdW5uZWVkZWQgaW5jbHVkZSAocGF0Y2ggMDAx MykKPj4+ICDCoMKgwqDCoMKgIC0gVXNlIGNvbnRleHQubGVuIGNvcnJlY3RseSAocGF0Y2ggMDAx NSkKPj4+ICDCoMKgwqDCoMKgIC0gUmVvcmRlciBjb2RlIHRvIGJlIG1vcmUgc2Vuc2libGUgKHBh dGNoIDAwMTYpCj4+PiAgwqDCoMKgwqDCoCAtIERyb3AgU09fUEVFUkNPTlRFWFQgYXMgaXQncyBu b3QgbmVlZGVkIHlldCAocGF0Y2ggMDAyMykKPj4+IHYxMzogUmViYXNlIHRvIDUuNS1yYzIKPj4+ ICDCoMKgwqDCoMKgIEluY29ycG9yYXRlIGZlZWRiYWNrIGZyb20gdjEyCj4+PiAgwqDCoMKgwqDC oCAtIFByaW50IGxzbWJsb2Igc2l6ZSB3aXRoICV6IChQYXRjaCAwMDAyKQo+Pj4gIMKgwqDCoMKg wqAgLSBDb252ZXJ0IGxvY2tkb3duIExTTSBpbml0aWFsaXphdGlvbi4gKFBhdGNoIDAwMDIpCj4+ PiAgwqDCoMKgwqDCoCAtIFJlc3RvcmUgZXJyb3IgY2hlY2sgaW4gbmZ0X3NlY21hcmtfY29tcHV0 ZV9zZWNpZCAoUGF0Y2ggMDAwNikKPj4+ICDCoMKgwqDCoMKgIC0gQ29ycmVjdCBibG9iIHNjYWZm b2xkaW5nIGluIGltYV9tdXN0X2FwcHJhaXNlKCkgKFBhdGNoIDAwMDkpCj4+PiAgwqDCoMKgwqDC oCAtIE1ha2Ugc2VjdXJpdHlfc2V0cHJvY2F0dHIoKSBjbGVhcmVyIChQYXRjaCAwMDEzKQo+Pj4g IMKgwqDCoMKgwqAgLSBVc2UgbHNtX3Rhc2tfZGlzcGxheSBtb3JlIHdpZGVseSAoUGF0Y2ggMDAx MykKPj4+ICDCoMKgwqDCoMKgIC0gVXNlIHBhc3NlZCBzaXplIGluIGxzbWNvbnRleHRfaW5pdCgp IChQYXRjaCAwMDE0KQo+Pj4gIMKgwqDCoMKgwqAgLSBEb24ndCBhZGQgYSBzbWFja19yZWxlYXNl X3NlY2N0eCgpIGhvb2sgKFBhdGNoIDAwMTQpCj4+PiAgwqDCoMKgwqDCoCAtIERvbid0IHByaW50 IHdhcm5pbmcgaW4gc2VjdXJpdHlfcmVsZWFzZV9zZWNjdHgoKSAoUGF0Y2ggMDAxNCkKPj4+ICDC oMKgwqDCoMKgIC0gRG9uJ3QgZHVwbGljYXRlIHRoZSBsYWJlbCBpbiBuZnM0X2xhYmVsX2luaXRf c2VjdXJpdHkoKSAoUGF0Y2ggMDAxNikKPj4+ICDCoMKgwqDCoMKgIC0gUmVtb3ZlIHJldmlld2Vk LWJ5IGFzIGNvZGUgaGFzIHNpZ25pZmljYW50IGNoYW5nZSAoUGF0Y2ggMDAxNikKPj4+ICDCoMKg wqDCoMKgIC0gU2VuZCB0aGUgZW50aXJlIGxzbWJsb2IgZm9yIFRhZyA2IChQYXRjaCAwMDE5KQo+ Pj4gIMKgwqDCoMKgwqAgLSBGaXggZGVzY3JpcHRpb24gb2Ygc29ja2V0X2dldHBlZXJzZWNfc3Ry ZWFtIHBhcmFtZXRlcnMgKFBhdGNoIDAwMjMpCj4+PiAgwqDCoMKgwqDCoCAtIFJldGFpbiBMU01C TE9CX0ZJUlNULiBXaGF0IHdhcyBJIHRoaW5raW5nPyAoUGF0Y2ggMDAyMykKPj4+ICDCoMKgwqDC oMKgIC0gQWRkIGNvbXBvdW5kIGNvbnRleHQgdG8gTFNNIGRvY3VtZW50YXRpb24gKFBhdGNoIDAw MjMpCj4+PiB2MTI6IFJlYmFzZSB0byA1LjUtcmMxCj4+PiAgwqDCoMKgwqDCoCBGaXhlZCBhIGNv dXBsZSBvZiBpbmNvcnJlY3QgY29udHJhY3Rpb25zIGluIHRoZSB0ZXh0Lgo+Pj4gdjExOiBSZWJh c2UgdG8gNS40LXJjNgo+Pj4gIMKgwqDCoMKgwqAgSW5jb3Jwb3JhdGUgZmVlZGJhY2sgZnJvbSB2 MTAKPj4+ICDCoMKgwqDCoMKgIC0gRGlzYW1iaWd1YXRlIHJlYWRpbmcgL3Byb2MvLi4uL2F0dHIv ZGlzcGxheSBieSByZXN0cmljdGluZwo+Pj4gIMKgwqDCoMKgwqDCoMKgIGFsbCB1c2Ugb2YgdGhl IGludGVyZmFjZSB0byB0aGUgY3VycmVudCBwcm9jZXNzLgo+Pj4gIMKgwqDCoMKgwqAgLSBGaXgg YSBtZXJnZSBlcnJvciBpbiBBcHBBcm1vcidzIGRpc3BsYXkgYXR0cmlidXRlIGNoZWNrCj4+PiB2 MTA6IEFzayB0aGUgc2VjdXJpdHkgbW9kdWxlcyBpZiB0aGUgZGlzcGxheSBjYW4gYmUgY2hhbmdl ZC4KPj4+IHY5OiBUaGVyZSBpcyBubyB2ZXJzaW9uIDkKPj4+IHY4OiBJbmNvcnBvcmF0ZSBmZWVk YmFjayBmcm9tIHY3Cj4+PiAgwqDCoMKgwqAgLSBNaW5vciBjbGVhbi11cCBpbiBkaXNwbGF5IHZh bHVlIG1hbmFnZW1lbnQKPj4+ICDCoMKgwqDCoCAtIHJlZmFjdG9yICJjb21wb3VuZCIgY29udGV4 dCBjcmVhdGlvbiB0byB1c2UgYSBjb21tb24KPj4+ICDCoMKgwqDCoMKgwqAgYXBwZW5kX2N0eCgp IGZ1bmN0aW9uLgo+Pj4gdjc6IEluY29ycG9yYXRlIGZlZWRiYWNrIGZyb20gdjYKPj4+ICDCoMKg wqDCoCAtIE1ha2Ugc2V0dGluZyB0aGUgZGlzcGxheSBhIHByaXZpbGVnZWQgb3BlcmF0aW9uLiBU aGUKPj4+ICDCoMKgwqDCoMKgwqAgYXZhaWxhYmlsaXR5IG9mIGNvbXBvdW5kIGNvbnRleHRzIHJl ZHVjZXMgdGhlIG5lZWQgZm9yCj4+PiAgwqDCoMKgwqDCoMKgIHNldHRpbmcgdGhlIGRpc3BsYXku Cj4+PiB2NjogSW5jb3Jwb3JhdGUgZmVlZGJhY2sgZnJvbSB2NQo+Pj4gIMKgwqDCoMKgIC0gQWRk IHN1YmpfPGxzbT49IGFuZCBvYmpfPGxzbT49IGZpZWxkcyB0byBhdWRpdCByZWNvcmRzCj4+PiAg wqDCoMKgwqAgLSBBZGQgL3Byb2MvLi4uL2F0dHIvY29udGV4dCB0byBnZXQgdGhlIGZ1bGwgY29u dGV4dCBpbgo+Pj4gIMKgwqDCoMKgwqDCoCBsc21uYW1lXDB2YWx1ZVwwLi4uIGZvcm1hdCBhcyBz dWdnZXN0ZWQgYnkgU2ltb24gTWNWaXR0aWUKPj4+ICDCoMKgwqDCoCAtIEFkZCBTT19QRUVSQ09O VEVYVCBmb3IgZ2V0c29ja29wdCgpIHRvIGdldCB0aGUgZnVsbCBjb250ZXh0Cj4+PiAgwqDCoMKg wqDCoMKgIGluIHRoZSBzYW1lIGZvcm1hdCwgYWxzbyBzdWdnZXN0ZWQgYnkgU2ltb24gTWNWaXR0 aWUuCj4+PiAgwqDCoMKgwqAgLSBBZGQgL3N5cy9rZXJuZWwvc2VjdXJpdHkvbHNtX2Rpc3BsYXlf ZGVmYXVsdCB0byBwcm92aWRlCj4+PiAgwqDCoMKgwqDCoMKgIHRoZSBkaXNwbGF5IGRlZmF1bHQg dmFsdWUuCj4+PiB2NTogSW5jb3Jwb3JhdGUgZmVlZGJhY2sgZnJvbSB2NAo+Pj4gIMKgwqDCoMKg IC0gSW5pdGlhbGl6ZSB0aGUgbHNtY29udGV4dCBpbiBzZWN1cml0eV9zZWNpZF90b19zZWNjdHgo KQo+Pj4gIMKgwqDCoMKgIC0gQ2xlYXIgdGhlIGxzbWNvbnRleHQgaW4gYWxsIHNlY3VyaXR5X3Jl bGVhc2Vfc2VjY3R4KCkgY2FzZXMKPj4+ICDCoMKgwqDCoCAtIERvbid0IHVzZSB0aGUgImRpc3Bs YXkiIG9uIHN0cmljdGx5IGludGVybmFsIGNvbnRleHQKPj4+ICDCoMKgwqDCoMKgwqAgaW50ZXJm YWNlcy4KPj4+ICDCoMKgwqDCoCAtIFRoZSBTRUxpbnV4IGJpbmRlciBob29rcyBjaGVjayBmb3Ig Y2FzZXMgd2hlcmUgdGhlIGNvbnRleHQKPj4+ICDCoMKgwqDCoMKgwqAgImRpc3BsYXkiIGlzbid0 IGNvbXBhdGlibGUgd2l0aCBTRUxpbnV4Lgo+Pj4gdjQ6IEluY29ycG9yYXRlIGZlZWRiYWNrIGZy b20gdjMKPj4+ICDCoMKgwqDCoCAtIE1hcmsgbmV3IGxzbV88YmxvYj5fYWxsb2MgZnVuY3Rpb25z IHN0YXRpYwo+Pj4gIMKgwqDCoMKgIC0gUmVwbGFjZSB0aGUgbHNtIGFuZCBzbG90IGZpZWxkcyBv ZiB0aGUgc2VjdXJpdHlfaG9va19saXN0Cj4+PiAgwqDCoMKgwqDCoMKgIHdpdGggYSBwb2ludGVy IHRvIGEgTFNNIGFsbG9jYXRlZCBsc21faWQgc3RydWN0dXJlLiBUaGUKPj4+ICDCoMKgwqDCoMKg wqAgTFNNIGlkZW50aWZpZXMgaWYgaXQgbmVlZHMgYSBzbG90IGV4cGxpY2l0bHkuIFVzZSB0aGUK Pj4+ICDCoMKgwqDCoMKgwqAgbHNtX2lkIHJhdGhlciB0aGFuIG1ha2Ugc2VjdXJpdHlfYWRkX2hv b2tzIHJldHVybiB0aGUKPj4+ICDCoMKgwqDCoMKgwqAgc2xvdCB2YWx1ZS4KPj4+ICDCoMKgwqDC oCAtIFZhbGlkYXRlIHNsb3QgdmFsdWVzIHVzZWQgaW4gc2VjdXJpdHkuYwo+Pj4gIMKgwqDCoMKg IC0gUmV3b3JrZWQgdGhlICJkaXNwbGF5IiBwcm9jZXNzIGF0dHJpYnV0ZSBoYW5kbGluZyBzbyB0 aGF0Cj4+PiAgwqDCoMKgwqDCoMKgIGl0IHdvcmtzIHJpZ2h0IGFuZCBkb2Vzbid0IHVzZSBnb29m eSBsaXN0IHByb2Nlc3NpbmcuCj4+PiAgwqDCoMKgwqAgLSBmaXggZGlzcGxheSB2YWx1ZSBjaGVj ayBpbiBkZW50cnlfaW5pdF9zZWN1cml0eQo+Pj4gIMKgwqDCoMKgIC0gUmVwbGFjZSBhdWRpdF9s b2cgb2Ygc2VjaWRzIHdpdGggJz8nIGluc3RlYWQgb2YgZGVsZXRpbmcKPj4+ICDCoMKgwqDCoMKg wqAgdGhlIGF1ZGl0IGxvZwo+Pj4gdjM6IEluY29ycG9yYXRlIGZlZWRiYWNrIGZyb20gdjIKPj4+ ICDCoMKgwqDCoCAtIE1ha2UgbHNtYmxvYiBwYXJhbWV0ZXIgYW5kIHZhcmlhYmxlIG5hbWVzIG1v cmUKPj4+ICDCoMKgwqDCoMKgwqAgbWVhbmluZ2Z1bCwgY2hhbmdpbmcgImxlIiBhbmQgImwiIHRv ICJibG9iIi4KPj4+ICDCoMKgwqDCoCAtIEltcHJvdmUgY29uc2lzdGVuY3kgb2YgY29uc3RhbnQg bmFtaW5nLgo+Pj4gIMKgwqDCoMKgIC0gRG8gbW9yZSBzYW5pdHkgY2hlY2tpbmcgZHVyaW5nIExT TSBpbml0aWFsaXphdGlvbi4KPj4+ICDCoMKgwqDCoCAtIEJlIGEgYml0IGNsZWFyZXIgYWJvdXQg d2hhdCBpcyB0ZW1wb3Jhcnkgc2NhZmZvbGRpbmcuCj4+PiAgwqDCoMKgwqAgLSBSYXRoZXIgdGhh biBjbHV0dGVyIHNlY3VyaXR5X2dldHBlZXJzZWNfZGdyYW0gd2l0aAo+Pj4gIMKgwqDCoMKgwqDC oCBvdGhlcndpc2UgdW5uZWNlc3NhcnkgY2hlY2tzIHJlbW92ZSB0aGUgYXBwYXJtb3IKPj4+ICDC oMKgwqDCoMKgwqAgc3R1Yiwgd2hpY2ggZG9lcyBub3RoaW5nIHVzZWZ1bC4KPj4+Cj4+PiBQYXRj aCAwMSBtb3ZlcyBtYW5hZ2VtZW50IG9mIHRoZSBzb2NrIHNlY3VyaXR5IGJsb2IKPj4+IGZyb20g dGhlIGluZGl2aWR1YWwgbW9kdWxlcyB0byB0aGUgaW5mcmFzdHJ1Y3R1cmUuCj4+Pgo+Pj4gUGF0 Y2hlcyAwMi0wMyBpbnRyb2R1Y2UgYSBzdHJ1Y3R1cmUgImxzbWJsb2IiIHRoYXQgd2lsbCBncmFk dWFsbHkKPj4+IHJlcGxhY2UgdGhlICJzZWNpZCIgYXMgYSBzaG9ydGhhbmQgZm9yIHNlY3VyaXR5 IG1vZHVsZSBpbmZvcm1hdGlvbi4KPj4+IEF0IHRoaXMgcG9pbnQgbHNtYmxvYiBjb250YWlucyBh biBhcnJheSBvZiB1MzIgc2VjaWRzLCBvbmUgInNsb3QiCj4+PiBmb3IgZWFjaCBvZiB0aGUgc2Vj dXJpdHkgbW9kdWxlcyBjb21waWxlZCBpbnRvIHRoZSBrZXJuZWwgdGhhdAo+Pj4gdXNlZCBzZWNp ZHMuIEEgInNsb3QiIGlzIGFsbG9jYXRlZCB3aGVuIGEgc2VjdXJpdHkgbW9kdWxlIHJlcXVlc3Rz Cj4+PiBvbmUuCj4+Pgo+Pj4gUGF0Y2ggMDQgcHJvdmlkZXMgbWVjaGFuaXNtIGZvciB0aGUgSU1B IHN1YnN5c3RlbSB0byBpZGVudGlmeQo+Pj4gZXhwbGljaXRseSB3aGljaCBMU00gaXMgc3ViamVj dCB0byBJTUEgcG9saWN5LiBUaGlzIGluY2x1ZGVzCj4+PiBhIGJvb3Qgb3B0aW9uIGZvciBzcGVj aWZ5aW5nIHRoZSBkZWZhdWx0IGFuZCBhbiBhZGRpdGlvbmFsIG9wdGlvbgo+Pj4gaW4gSU1BIHJ1 bGVzICJsc209Ii4KPj4+Cj4+PiBQYXRjaGVzIDA1LTEzIGNoYW5nZSBMU00gaW50ZXJmYWNlcyB0 byB1c2UgdGhlIGxzbWJsb2IgaW5zdGVhZAo+Pj4gb2Ygc2VjaWRzLiBJdCBpcyBpbXBvcnRhbnQg dGhhdCB0aGUgbHNtYmxvYiBiZSBhIGZpeGVkIHNpemUgZW50aXR5Cj4+PiB0aGF0IGRvZXMgbm90 IGhhdmUgdG8gYmUgYWxsb2NhdGVkLiBTZXZlcmFsIG9mIHRoZSBwbGFjZXMKPj4+IHdoZXJlIGl0 IGlzIHVzZWQgd291bGQgaGF2ZSBwZXJmb3JtYW5jZSBhbmQvb3IgbG9ja2luZwo+Pj4gaXNzdWVz IHdpdGggZHluYW1pYyBhbGxvY2F0aW9uLgo+Pj4KPj4+IFBhdGNoIDE0IHByb3ZpZGVzIGEgbWVj aGFuaXNtIGZvciBhIHByb2Nlc3MgdG8gaWRlbnRpZnkgd2hpY2gKPj4+IHNlY3VyaXR5IG1vZHVs ZSdzIGhvb2tzIHNob3VsZCBiZSB1c2VkIHdoZW4gZGlzcGxheWluZyBvcgo+Pj4gY29udmVydGlu ZyBhIHNlY3VyaXR5IGNvbnRleHQgc3RyaW5nLsKgIEEgbmV3IGludGVyZmFjZQo+Pj4gL3Byb2Mv c2VsZi9hdHRyL2ludGVyZmFjZV9sc20gY29udGFpbnMgdGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5 Cj4+PiBtb2R1bGUgdG8gc2hvdy4gUmVhZGluZyBmcm9tIHRoaXMgZmlsZSB3aWxsIHByZXNlbnQg dGhlIG5hbWUgb2YKPj4+IHRoZSBtb2R1bGUsIHdoaWxlIHdyaXRpbmcgdG8gaXQgd2lsbCBzZXQg dGhlIHZhbHVlLiBPbmx5IG5hbWVzCj4+PiBvZiBhY3RpdmUgc2VjdXJpdHkgbW9kdWxlcyBhcmUg YWNjZXB0ZWQuIEludGVybmFsbHksIHRoZSBuYW1lCj4+PiBpcyB0cmFuc2xhdGVkIHRvIHRoZSBh cHByb3ByaWF0ZSAic2xvdCIgbnVtYmVyIGZvciB0aGUgbW9kdWxlCj4+PiB3aGljaCBpcyB0aGVu IHN0b3JlZCBpbiB0aGUgdGFzayBzZWN1cml0eSBibG9iLiBTZXR0aW5nIHRoZQo+Pj4gZGlzcGxh eSByZXF1aXJlcyB0aGF0IGFsbCBtb2R1bGVzIHVzaW5nIHRoZSAvcHJvYyBpbnRlcmZhY2VzCj4+ PiBhbGxvdyB0aGUgdHJhbnNpdGlvbi4gVGhlIGludGVyZmFjZSBMU00gb2Ygb3RoZXIgcHJvY2Vz c2Vzcwo+Pj4gY2FuIGJlIG5laXRoZXIgcmVhZCBub3Igd3JpdHRlbi4gQWxsIHN1Z2dlc3RlZCBj YXNlcyBmb3IKPj4+IHJlYWRpbmcgdGhlIGludGVyZmFjZSBMU00gb2YgYSBkaWZmZXJlbnQgcHJv Y2VzcyBoYXZlIHJhY2UKPj4+IGNvbmRpdGlvbnMuCj4+Pgo+Pj4gUGF0Y2ggMTUgU3RhcnRzIHRo ZSBwcm9jZXNzIG9mIGNoYW5naW5nIGhvdyBhIHNlY3VyaXR5Cj4+PiBjb250ZXh0IGlzIHJlcHJl c2VudGVkLiBTaW5jZSBpdCBpcyBwb3NzaWJsZSBmb3IgYQo+Pj4gc2VjdXJpdHkgY29udGV4dCB0 byBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IG1vcmUgdGhhbiBvbmUKPj4+IHNlY3VyaXR5IG1vZHVs ZSBpdCBpcyBub3cgbmVjZXNzYXJ5IHRvIG5vdGUgd2hpY2ggbW9kdWxlCj4+PiBjcmVhdGVkIGEg c2VjdXJpdHkgY29udGV4dCBzbyB0aGF0IHRoZSBjb3JyZWN0ICJyZWxlYXNlIgo+Pj4gaG9vayBj YW4gYmUgY2FsbGVkLiBUaGVyZSBhcmUgc2V2ZXJhbCBwbGFjZXMgd2hlcmUgdGhlCj4+PiBtb2R1 bGUgdGhhdCBjcmVhdGVkIGEgc2VjdXJpdHkgY29udGV4dCBjYW5ub3QgYmUgaW5mZXJyZWQuCj4+ Pgo+Pj4gVGhpcyBpcyBhY2hpZXZlZCBieSBpbnRyb2R1Y2luZyBhICJsc21jb250ZXh0IiBzdHJ1 Y3R1cmUKPj4+IHdoaWNoIGNvbnRhaW5zIHRoZSBjb250ZXh0IHN0cmluZywgaXRzIGxlbmd0aCBh bmQgdGhlCj4+PiAic2xvdCIgbnVtYmVyIG9mIHRoZSBzZWN1cml0eSBtb2R1bGUgdGhhdCBjcmVh dGVkIGl0Lgo+Pj4gVGhlIHNlY3VyaXR5X3JlbGVhc2Vfc2VjY3R4KCkgaW50ZXJmYWNlIGlzIGNo YW5nZWQsCj4+PiByZXBsYWNpbmcgdGhlIChzdHJpbmcsbGVuKSBwb2ludGVyIHBhaXIgd2l0aCBh IGxzbWNvbnRleHQKPj4+IHBvaW50ZXIuCj4+Pgo+Pj4gUGF0Y2hlcyAxNi0xOCBjb252ZXJ0IHRo ZSBzZWN1cml0eSBpbnRlcmZhY2VzIGZyb20KPj4+IChzdHJpbmcsbGVuKSBwb2ludGVyIHBhaXJz IHRvIGEgbHNtY29udGV4dCBwb2ludGVyLgo+Pj4gVGhlIHNsb3QgbnVtYmVyIGlkZW50aWZ5aW5n IHRoZSBjcmVhdGluZyBtb2R1bGUgaXMKPj4+IGFkZGVkIGJ5IHRoZSBpbmZyYXN0cnVjdHVyZS4g V2hlcmUgdGhlIHNlY3VyaXR5IGNvbnRleHQKPj4+IGlzIHN0b3JlZCBmb3IgZXh0ZW5kZWQgcGVy aW9kcyB0aGUgZGF0YSB0eXBlIGlzIGNoYW5nZWQuCj4+Pgo+Pj4gVGhlIE5ldGxhYmVsIGNvZGUg aXMgY29udmVydGVkIHRvIHNhdmUgbHNtYmxvYiBzdHJ1Y3R1cmVzCj4+PiBpbnN0ZWFkIG9mIHNl Y2lkcyBpbiBQYXRjaCAxOS4gVGhpcyBpcyBub3Qgc3RyaWN0bHkKPj4+IG5lY2Vzc2FyeSBhcyB0 aGVyZSBjYW4gb25seSBiZSBvbmUgc2VjdXJpdHkgbW9kdWxlIHRoYXQKPj4+IHVzZXMgTmV0bGFi ZWwgYXQgdGhpcyBwb2ludC4gVXNpbmcgYSBsc21ibG9iIGlzIG11Y2gKPj4+IGNsZWFuZXIsIGFz IHRoZSBpbnRlcmZhY2VzIHRoYXQgdXNlIHRoZSBkYXRhIGhhdmUgYWxsCj4+PiBiZWVuIGNvbnZl cnRlZC4KPj4+Cj4+PiBQYXRjaCAyMCBhZGRzIGNoZWNrcyB0byB0aGUgYmluZGVyIGhvb2tzIHdo aWNoIHZlcmlmeQo+Pj4gdGhhdCBib3RoIGVuZHMgb2YgYSB0cmFuc2FjdGlvbiB1c2UgdGhlIHNh bWUgaW50ZXJmYWNlIExTTS4KPj4+Cj4+PiBQYXRjaGVzIDIxLTIzIGFkZCBhZGRpdGlvbiBhdWRp dCByZWNvcmRzIGZvciBzdWJqZWN0IGFuZAo+Pj4gb2JqZWN0IExTTSBkYXRhIHdoZW4gdGhlcmUg YXJlIG11bHRpcGxlIHNlY3VyaXR5IG1vZHVsZXMKPj4+IHdpdGggc3VjaCBkYXRhLiBUaGUgQVVE SVRfTUFDX1RBU0tfQ09OVEVYVFMgcmVjb3JkIGlzIHVzZWQKPj4+IGluIGNvbmp1Y3Rpb24gd2l0 aCBhICJzdWJqPT8iIGZpZWxkIHRvIGlkZW50aWZ5IHRoZSBzdWJqZWN0Cj4+PiBkYXRhLiBUaGUg QVVESVRfTUFDX09CSl9DT05URVhUUyByZWNvcmQgaXMgdXNlZCBpbiBjb25qdWN0aW9uCj4+PiB3 aXRoIGEgIm9iaj0/IiBmaWVsZCB0byBpZGVudGlmeSB0aGUgb2JqZWN0IGRhdGEuwqAgVGhlCj4+ PiBBVURJVF9NQUNfVEFTS19DT05URVhUUyByZWNvcmQgaWRlbnRpZmllcyB0aGUgc2VjdXJpdHkg bW9kdWxlCj4+PiB3aXRoIHRoZSBkYXRhOiAic3Vial9zZWxpbnV4PXh5el90IHN1YmpfYXBwYXJt b3I9YWJjIi4gVGhlCj4+PiBBVURJVF9NQUNfT0JKX0NPTlRFWFRTIHJlY29yZCBpZGVudGlmaWVz IHRoZSBzZWN1cml0eSBtb2R1bGUKPj4+IHdpdGggdGhlIGRhdGE6ICJvYmpfc2VsaW51eD14eXpf dCBvYmpfYXBwYXJtb3I9YWJjIi7CoCBXaGlsZQo+Pj4gQVVESVRfTUFDX1RBU0tfQ09OVEVYVFMg cmVjb3JkcyB3aWxsIGFsd2F5cyBjb250YWluIGFuIGVudHJ5Cj4+PiBmb3IgZWFjaCBwb3NzaWJs ZSBzZWN1cml0eSBtb2R1bGVzLCBBVURJVF9NQUNfT0JKX0NPTlRFWFRTCj4+PiByZWNvcmRzIHdp bGwgb25seSBjb250YWluIGVudHJpZXMgZm9yIHNlY3VyaXR5IG1vZHVsZXMgZm9yCj4+PiB3aGlj aCB0aGUgb2JqZWN0IGluIHF1ZXN0aW9uIGhhcyBkYXRhLgo+Pj4KPj4+IEFuIGV4YW1wbGUgb2Yg dGhlIE1BQ19UQVNLX0NPTlRFWFRTICgxNDIwKSByZWNvcmQgaXM6Cj4+Pgo+Pj4gIMKgwqDCoMKg IHR5cGU9VU5LTk9XTlsxNDIwXQo+Pj4gIMKgwqDCoMKgIG1zZz1hdWRpdCgxNjAwODgwOTMxLjgz MjoxMTMpCj4+PiAgwqDCoMKgwqAgc3Vial9hcHBhcm1vcj09dW5jb25maW5lZAo+Pj4gIMKgwqDC oMKgIHN1Ympfc21hY2s9Xwo+Pj4KPj4+IEFuIGV4YW1wbGUgb2YgdGhlIE1BQ19PQkpfQ09OVEVY VFMgKDE0MjEpIHJlY29yZCBpczoKPj4+Cj4+PiAgwqDCoMKgwqAgdHlwZT1VTktOT1dOWzE0MjFd Cj4+PiAgwqDCoMKgwqAgbXNnPWF1ZGl0KDE2MDExNTI0NjcuMDA5OjEwNTApOgo+Pj4gIMKgwqDC oMKgIG9ial9zZWxpbnV4PXVuY29uZmluZWRfdTpvYmplY3Rfcjp1c2VyX2hvbWVfdDpzMAo+Pj4K Pj4+IFBhdGNoIDI0IGFkZHMgYSBuZXcgaW50ZXJmYWNlIGZvciBnZXR0aW5nIHRoZSBjb21wb3Vu ZCBzZWN1cml0eQo+Pj4gY29udGV4dHMsIC9wcm9jL3NlbGYvYXR0ci9jb250ZXh0LsKgIEFuIGV4 YW1wbGUgb2YgdGhlIGNvbnRlbnQKPj4+IG9mIHRoaXMgZmlsZSBpczoKPj4+Cj4+PiAgwqDCoMKg wqAgc2VsaW51eFwwb25lX3U6b25lX3I6b25lX3Q6czAtczA6YzAuYzEwMjNcMGFwcGFybW9yXDB1 bmNvbmZpbmVkXDAKPj4+Cj4+PiBGaW5hbGx5LCB3aXRoIGFsbCBpbnRlcmZlcmVuY2Ugb24gdGhl IEFwcEFybW9yIGhvb2tzIHJlbW92ZWQsCj4+PiBQYXRjaCAyNSByZW1vdmVzIHRoZSBleGNsdXNp dmUgYml0IGZyb20gQXBwQXJtb3IuIEFuIHVubmVjZXNzYXJ5Cj4+PiBzdHViIGhvb2sgd2FzIGFs c28gcmVtb3ZlZC4KPj4+Cj4+PiBUaGUgVWJ1bnR1IHByb2plY3QgaXMgdXNpbmcgYW4gZWFybGll ciB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2hzZXQgaW4KPj4+IHRoZWlyIGRpc3RyaWJ1dGlvbiB0byBl bmFibGUgc3RhY2tpbmcgZm9yIGNvbnRhaW5lcnMuCj4+Pgo+Pj4gUGVyZm9ybWFuY2UgbWVhc3Vy ZW1lbnRzIHRvIGRhdGUgaGF2ZSB0aGUgY2hhbmdlIHdpdGhpbiB0aGUgIm5vaXNlIi4KPj4+IFRo ZSBzb2NrcGVyZiBhbmQgZGJlbmNoIHJlc3VsdHMgYXJlIG9uIHRoZSBvcmRlciBvZiAwLjIlIHRv IDAuOCUKPj4+IGRpZmZlcmVuY2UsIHdpdGggYmV0dGVyIHBlcmZvcm1hbmNlIGJlaW5nIGFzIGNv bW1vbiBhcyB3b3JzZS4gVGhlCj4+PiBiZW5jaG1hcmtzIHdlcmUgcnVuIHdpdGggQXBwQXJtb3Ig YW5kIFNtYWNrIG9uIFVidW50dS4KPj4+Cj4+PiBodHRwczovL2dpdGh1Yi5jb20vY3NjaGF1Zmxl ci9sc20tc3RhY2tpbmcuZ2l0I3N0YWNrLTUuMTEtcmMxLXYyNAo+Pj4KPj4+IFNpZ25lZC1vZmYt Ynk6IENhc2V5IFNjaGF1ZmxlciA8Y2FzZXlAc2NoYXVmbGVyLWNhLmNvbT4KPj4+Cj4+Pgo+Pj4g Q2FzZXkgU2NoYXVmbGVyICgyNSk6Cj4+PiAgwqDCoCBMU006IEluZnJhc3RydWN0dXJlIG1hbmFn ZW1lbnQgb2YgdGhlIHNvY2sgc2VjdXJpdHkKPj4+ICDCoMKgIExTTTogQWRkIHRoZSBsc21ibG9i IGRhdGEgc3RydWN0dXJlLgo+Pj4gIMKgwqAgTFNNOiBwcm92aWRlIGxzbSBuYW1lIGFuZCBpZCBz bG90IG1hcHBpbmdzCj4+PiAgwqDCoCBJTUE6IGF2b2lkIGxhYmVsIGNvbGxpc2lvbnMgd2l0aCBz dGFja2VkIExTTXMKPj4+ICDCoMKgIExTTTogVXNlIGxzbWJsb2IgaW4gc2VjdXJpdHlfYXVkaXRf cnVsZV9tYXRjaAo+Pj4gIMKgwqAgTFNNOiBVc2UgbHNtYmxvYiBpbiBzZWN1cml0eV9rZXJuZWxf YWN0X2FzCj4+PiAgwqDCoCBMU006IFVzZSBsc21ibG9iIGluIHNlY3VyaXR5X3NlY2N0eF90b19z ZWNpZAo+Pj4gIMKgwqAgTFNNOiBVc2UgbHNtYmxvYiBpbiBzZWN1cml0eV9zZWNpZF90b19zZWNj dHgKPj4+ICDCoMKgIExTTTogVXNlIGxzbWJsb2IgaW4gc2VjdXJpdHlfaXBjX2dldHNlY2lkCj4+ PiAgwqDCoCBMU006IFVzZSBsc21ibG9iIGluIHNlY3VyaXR5X3Rhc2tfZ2V0c2VjaWQKPj4+ICDC oMKgIExTTTogVXNlIGxzbWJsb2IgaW4gc2VjdXJpdHlfaW5vZGVfZ2V0c2VjaWQKPj4+ICDCoMKg IExTTTogVXNlIGxzbWJsb2IgaW4gc2VjdXJpdHlfY3JlZF9nZXRzZWNpZAo+Pj4gIMKgwqAgSU1B OiBDaGFuZ2UgaW50ZXJuYWwgaW50ZXJmYWNlcyB0byB1c2UgbHNtYmxvYnMKPj4+ICDCoMKgIExT TTogU3BlY2lmeSB3aGljaCBMU00gdG8gZGlzcGxheQo+Pj4gIMKgwqAgTFNNOiBFbnN1cmUgdGhl IGNvcnJlY3QgTFNNIGNvbnRleHQgcmVsZWFzZXIKPj4+ICDCoMKgIExTTTogVXNlIGxzbWNvbnRl eHQgaW4gc2VjdXJpdHlfc2VjaWRfdG9fc2VjY3R4Cj4+PiAgwqDCoCBMU006IFVzZSBsc21jb250 ZXh0IGluIHNlY3VyaXR5X2lub2RlX2dldHNlY2N0eAo+Pj4gIMKgwqAgTFNNOiBzZWN1cml0eV9z ZWNpZF90b19zZWNjdHggaW4gbmV0bGluayBuZXRmaWx0ZXIKPj4+ICDCoMKgIE5FVDogU3RvcmUg TFNNIG5ldGxhYmVsIGRhdGEgaW4gYSBsc21ibG9iCj4+PiAgwqDCoCBMU006IFZlcmlmeSBMU00g ZGlzcGxheSBzYW5pdHkgaW4gYmluZGVyCj4+PiAgwqDCoCBhdWRpdDogYWRkIHN1cHBvcnQgZm9y IG5vbi1zeXNjYWxsIGF1eGlsaWFyeSByZWNvcmRzCj4+PiAgwqDCoCBBdWRpdDogQWRkIG5ldyBy ZWNvcmQgZm9yIG11bHRpcGxlIHByb2Nlc3MgTFNNwqAgYXR0cmlidXRlcwo+Pj4gIMKgwqAgQXVk aXQ6IEFkZCBhIG5ldyByZWNvcmQgZm9yIG11bHRpcGxlIG9iamVjdCBMU00gYXR0cmlidXRlcwo+ Pj4gIMKgwqAgTFNNOiBBZGQgL3Byb2MgYXR0ciBlbnRyeSBmb3IgZnVsbCBMU00gY29udGV4dAo+ Pj4gIMKgwqAgQXBwQXJtb3I6IFJlbW92ZSB0aGUgZXhjbHVzaXZlIGZsYWcKPj4+Cj4+PiAgwqAg RG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9pbWFfcG9saWN5wqDCoMKgwqDCoMKgwqDCoMKgIHzC oMKgIDggKy0KPj4+ICDCoCBEb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3Byb2Nmcy1hdHRyLWNv bnRleHQgfMKgIDE0ICsKPj4+ICDCoCAuLi4vQUJJL3Rlc3RpbmcvcHJvY2ZzLWF0dHItbHNtX2Rp c3BsYXnCoMKgwqDCoMKgwqAgfMKgIDIyICsKPj4+ICDCoCBEb2N1bWVudGF0aW9uL3NlY3VyaXR5 L2xzbS5yc3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDI4ICsKPj4+ICDCoCBk cml2ZXJzL2FuZHJvaWQvYmluZGVyLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgIDI2ICstCj4+PiAgwqAgZnMvY2VwaC94YXR0ci5jwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKy0K Pj4+ICDCoCBmcy9uZnMvbmZzNHByb2MuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDggKy0KPj4+ICDCoCBmcy9uZnNkL25mczR4 ZHIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoCAyMCArLQo+Pj4gIMKgIGZzL3Byb2MvYmFzZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArCj4+PiAg wqAgaW5jbHVkZS9saW51eC9hdWRpdC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoCA0MyArLQo+Pj4gIMKgIGluY2x1ZGUvbGludXgvY3JlZC5owqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMyAr LQo+Pj4gIMKgIGluY2x1ZGUvbGludXgvbHNtX2hvb2tzLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzNiArLQo+Pj4gIMKgIGluY2x1ZGUvbGludXgvc2VjdXJp dHkuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDE4NSArKysr Ky0KPj4+ICDCoCBpbmNsdWRlL25ldC9uZXRsYWJlbC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTEgKy0KPj4+ICDCoCBpbmNsdWRlL25ldC9zY20u aMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAxNSArLQo+Pj4gIMKgIGluY2x1ZGUvbmV0L3hmcm0uaMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTMgKy0KPj4+ICDCoCBpbmNs dWRlL3VhcGkvbGludXgvYXVkaXQuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoMKgIDIgKwo+Pj4gIMKgIGtlcm5lbC9hdWRpdC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCAxNzUgKysrKy0tCj4+ PiAgwqAga2VybmVsL2F1ZGl0LmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTEgKy0KPj4+ICDCoCBrZXJuZWwvYXVkaXRm aWx0ZXIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCAzNiArLQo+Pj4gIMKgIGtlcm5lbC9hdWRpdHNjLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTkxICsrKy0tLQo+Pj4gIMKg IGtlcm5lbC9jcmVkLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxMiArLQo+Pj4gIMKgIG5ldC9pcHY0L2NpcHNvX2lw djQuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAg MjYgKy0KPj4+ICDCoCBuZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTIgKy0KPj4+ICDCoCBuZXQvbmV0ZmlsdGVy L25mX2Nvbm50cmFja19uZXRsaW5rLmPCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDI0ICstCj4+PiAg wqAgbmV0L25ldGZpbHRlci9uZl9jb25udHJhY2tfc3RhbmRhbG9uZS5jwqDCoMKgwqDCoMKgIHzC oCAxMSArLQo+Pj4gIMKgIG5ldC9uZXRmaWx0ZXIvbmZuZXRsaW5rX3F1ZXVlLmPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAzOCArLQo+Pj4gIMKgIG5ldC9uZXRmaWx0ZXIvbmZ0X21l dGEuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMTAgKy0K Pj4+ICDCoCBuZXQvbmV0ZmlsdGVyL3h0X1NFQ01BUksuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoMKgIDcgKy0KPj4+ICDCoCBuZXQvbmV0bGFiZWwvbmV0bGFiZWxf ZG9tYWluaGFzaC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA0ICstCj4+PiAgwqAgbmV0 L25ldGxhYmVsL25ldGxhYmVsX2thcGkuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgwqAgNiArLQo+Pj4gIMKgIG5ldC9uZXRsYWJlbC9uZXRsYWJlbF91bmxhYmVsZWQuY8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDEwNiArKy0tCj4+PiAgwqAgbmV0L25ldGxhYmVsL25l dGxhYmVsX3VubGFiZWxlZC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKy0KPj4+ ICDCoCBuZXQvbmV0bGFiZWwvbmV0bGFiZWxfdXNlci5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgMjMgKy0KPj4+ICDCoCBuZXQvbmV0bGFiZWwvbmV0bGFiZWxfdXNlci5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyICstCj4+PiAgwqAgbmV0 L3hmcm0veGZybV9wb2xpY3kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgIDEwICstCj4+PiAgwqAgbmV0L3hmcm0veGZybV9zdGF0ZS5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAyMCArLQo+Pj4gIMKg IHNlY3VyaXR5L2FwcGFybW9yL2luY2x1ZGUvYXBwYXJtb3IuaMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqDCoCAzICstCj4+PiAgwqAgc2VjdXJpdHkvYXBwYXJtb3IvaW5jbHVkZS9uZXQuaMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgNiArLQo+Pj4gIMKgIHNlY3VyaXR5L2FwcGFybW9y L2luY2x1ZGUvcHJvY2F0dHIuaMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAyICstCj4+PiAgwqAg c2VjdXJpdHkvYXBwYXJtb3IvbHNtLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8IDEwNSArKy0tCj4+PiAgwqAgc2VjdXJpdHkvYXBwYXJtb3IvcHJvY2F0dHIu Y8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDIyICstCj4+PiAgwqAgc2Vj dXJpdHkvYnBmL2hvb2tzLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgMTIgKy0KPj4+ICDCoCBzZWN1cml0eS9jb21tb25jYXAuY8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDcgKy0KPj4+ ICDCoCBzZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYS5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqAgMTUgKy0KPj4+ICDCoCBzZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9h cGkuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCAxNyArLQo+Pj4gIMKgIHNlY3VyaXR5 L2ludGVncml0eS9pbWEvaW1hX2FwcHJhaXNlLmPCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKy0K Pj4+ICDCoCBzZWN1cml0eS9pbnRlZ3JpdHkvaW1hL2ltYV9tYWluLmPCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgIDU0ICstCj4+PiAgwqAgc2VjdXJpdHkvaW50ZWdyaXR5L2ltYS9pbWFfcG9s aWN5LmPCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgOTcgKystCj4+PiAgwqAgc2VjdXJpdHkvaW50 ZWdyaXR5L2ludGVncml0eV9hdWRpdC5jwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDYgKy0KPj4+ ICDCoCBzZWN1cml0eS9sb2FkcGluL2xvYWRwaW4uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoMKgIDggKy0KPj4+ICDCoCBzZWN1cml0eS9sb2NrZG93bi9sb2NrZG93 bi5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA3ICstCj4+PiAgwqAg c2VjdXJpdHkvc2FmZXNldGlkL2xzbS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgIDggKy0KPj4+ICDCoCBzZWN1cml0eS9zZWN1cml0eS5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDU2MSArKysrKysr KysrKysrKysrLS0KPj4+ICDCoCBzZWN1cml0eS9zZWxpbnV4L2hvb2tzLmPCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDk5ICsrLS0KPj4+ICDCoCBzZWN1cml0 eS9zZWxpbnV4L2luY2x1ZGUvY2xhc3NtYXAuaMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIg Ky0KPj4+ICDCoCBzZWN1cml0eS9zZWxpbnV4L2luY2x1ZGUvb2Jqc2VjLmjCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgwqAgNSArCj4+PiAgwqAgc2VjdXJpdHkvc2VsaW51eC9pbmNsdWRlL3Nl Y3VyaXR5LmjCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxICsKPj4+ICDCoCBzZWN1cml0eS9z ZWxpbnV4L25ldGxhYmVsLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg IDI1ICstCj4+PiAgwqAgc2VjdXJpdHkvc2VsaW51eC9zcy9zZXJ2aWNlcy5jwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDQgKy0KPj4+ICDCoCBzZWN1cml0eS9zbWFjay9zbWFj ay5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA2 ICsKPj4+ICDCoCBzZWN1cml0eS9zbWFjay9zbWFja19hY2Nlc3MuY8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoMKgIDIgKy0KPj4+ICDCoCBzZWN1cml0eS9zbWFjay9zbWFja19s c20uY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA5MSArLS0KPj4+ ICDCoCBzZWN1cml0eS9zbWFjay9zbWFja19uZXRmaWx0ZXIuY8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoMKgIDggKy0KPj4+ICDCoCBzZWN1cml0eS9zbWFjay9zbWFja2ZzLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEzICstCj4+PiAgwqAgc2Vj dXJpdHkvdG9tb3lvL3RvbW95by5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoMKgIDggKy0KPj4+ICDCoCBzZWN1cml0eS95YW1hL3lhbWFfbHNtLmPCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgNyArLQo+Pj4gIMKgIDY3 IGZpbGVzIGNoYW5nZWQsIDE3NDEgaW5zZXJ0aW9ucygrKSwgNjM0IGRlbGV0aW9ucygtKQo+Pj4g IMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3Byb2Nmcy1h dHRyLWNvbnRleHQKPj4+ICDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9BQkkv dGVzdGluZy9wcm9jZnMtYXR0ci1sc21fZGlzcGxheQo+Pj4KPj4KCi0tCkxpbnV4LWF1ZGl0IG1h aWxpbmcgbGlzdApMaW51eC1hdWRpdEByZWRoYXQuY29tCmh0dHBzOi8vd3d3LnJlZGhhdC5jb20v bWFpbG1hbi9saXN0aW5mby9saW51eC1hdWRpdA==