From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-portage-dev+bounces-3661-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	by finch.gentoo.org (Postfix) with ESMTP id 5AEE113877A
	for <garchives@archives.gentoo.org>; Mon, 28 Jul 2014 15:03:18 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 7836DE0E36;
	Mon, 28 Jul 2014 15:03:15 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))
	(No client certificate requested)
	by pigeon.gentoo.org (Postfix) with ESMTPS id B9A0BE0E33
	for <gentoo-portage-dev@lists.gentoo.org>; Mon, 28 Jul 2014 15:03:14 +0000 (UTC)
Received: from pomiot.lan (77-254-85-187.adsl.inetia.pl [77.254.85.187])
	(using SSLv3 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	(Authenticated sender: mgorny)
	by smtp.gentoo.org (Postfix) with ESMTPSA id 22BD933F6E2;
	Mon, 28 Jul 2014 15:03:12 +0000 (UTC)
Date: Mon, 28 Jul 2014 17:03:30 +0200
From: =?ISO-8859-2?B?TWljaGGzIEfzcm55?= <mgorny@gentoo.org>
To: <gentoo-portage-dev@lists.gentoo.org>
Subject: [gentoo-portage-dev] Pending changes to Portage ebuild & behavior
Message-ID: <20140728170330.36ab3a59@pomiot.lan>
Organization: Gentoo
X-Mailer: Claws Mail 3.10.1 (GTK+ 2.24.24; x86_64-pc-linux-gnu)
Precedence: bulk
List-Post: <mailto:gentoo-portage-dev@lists.gentoo.org>
List-Help: <mailto:gentoo-portage-dev+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-portage-dev+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-portage-dev+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-portage-dev.gentoo.org>
X-BeenThere: gentoo-portage-dev@lists.gentoo.org
Reply-to: gentoo-portage-dev@lists.gentoo.org
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 boundary="Sig_/jT219W_Tw5YpzjtmaKzMcyh"; protocol="application/pgp-signature"
X-Archives-Salt: 273a4cde-f2b0-41da-ba61-3725717a3917
X-Archives-Hash: 9644c6c79f51da4616048d82165a8c37

--Sig_/jT219W_Tw5YpzjtmaKzMcyh
Content-Type: multipart/mixed; boundary="MP_/qPdropeWzb=xtvJwpc386ol"

--MP_/qPdropeWzb=xtvJwpc386ol
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hello, everyone.

Following the last meeting approval, I've started working on cleaning up
sys-apps/portage, and making it use EAPI=3D5 and python-r1. While at it,
I found a few difficulties, pretty closely related to how we install
portage now.

I believe we need to change that to make the ebuild cleaner. If someone
has some spare time, I'd appreciate fixing the portage code.


Current install
---------------

1. .py files are installed in /usr/lib/portage/pym and byte-compiled
with active python interp,

2. emerge and other tools prepend /usr/lib/portage/pym to use those
files [bytecode conflict possible],

3. site-packages contains only symlinks to .py files,

4. some of python modules in portage use paths relative to .py file to
access /usr/lib/portage/bin.


New install
-----------

1. no /usr/lib/portage/pym (it's not really necessary with
python_targets),

2. all python modules & bytecode in site-packages,

3. emerge and other tools load portage from site-packages [proper
bytecode used],

4. but python modules need to be able to locate /usr/lib/portage/bin
somehow.


What needs to be done
---------------------

1. either:

a) we make portage capable of finding /usr/lib/portage/bin when .py
files are in site-packages (but don't break running from checkout!),

b) we install all of bin/* to site-packages as well (some python
packages simply do that).

2. extra kudos for replacing that ugly Makefile with setup.py.


Any thoughts? Anyone willing to do the work? Otherwise, I'll do it
myself if nobody beats me up to it.

Attaching work-in-progress portage-9999-r1 ebuild. Don't install it or
your system will be broken :).

--=20
Best regards,
Micha=B3 G=F3rny

--MP_/qPdropeWzb=xtvJwpc386ol
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=portage-9999-r1.ebuild

IyBDb3B5cmlnaHQgMTk5OS0yMDE0IEdlbnRvbyBGb3VuZGF0aW9uDQojIERpc3RyaWJ1dGVkIHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjINCiMgJEhl
YWRlcjogL3Zhci9jdnNyb290L2dlbnRvby14ODYvc3lzLWFwcHMvcG9ydGFnZS9wb3J0YWdlLTk5
OTkuZWJ1aWxkLHYgMS45NiAyMDE0LzA3LzI2IDA5OjQ4OjQzIG1nb3JueSBFeHAgJA0KDQpFQVBJ
PTUNClBZVEhPTl9DT01QQVQ9KCBweXB5IHB5dGhvbnszXzIsM18zLDNfNCwyXzd9ICkNClBZVEhP
Tl9SRVFfVVNFPSdiemlwMigrKSxzc2woKyknDQoNCmluaGVyaXQgZ2l0LXIzIGV1dGlscyBtdWx0
aWxpYiBweXRob24tcjENCg0KREVTQ1JJUFRJT049IlBvcnRhZ2UgaXMgdGhlIHBhY2thZ2UgbWFu
YWdlbWVudCBhbmQgZGlzdHJpYnV0aW9uIHN5c3RlbSBmb3IgR2VudG9vIg0KSE9NRVBBR0U9Imh0
dHA6Ly93d3cuZ2VudG9vLm9yZy9wcm9qL2VuL3BvcnRhZ2UvaW5kZXgueG1sIg0KTElDRU5TRT0i
R1BMLTIiDQpLRVlXT1JEUz0iIg0KU0xPVD0iMCINCklVU0U9ImJ1aWxkIGRvYyBlcHlkb2MgK2lw
YyBsaW5ndWFzX3J1IHNlbGludXggeGF0dHIiDQoNCiMgbWFrZS0zLjgyIGlzIGZvciBidWcgIzQ1
NTg1OA0KREVQRU5EPSIke3B5dGhvbl9kZXB9DQoJPj1zeXMtZGV2ZWwvbWFrZS0zLjgyDQoJPj1z
eXMtYXBwcy9zZWQtNC4wLjUgc3lzLWRldmVsL3BhdGNoDQoJZG9jPyAoIGFwcC10ZXh0L3htbHRv
IH5hcHAtdGV4dC9kb2Nib29rLXhtbC1kdGQtNC40ICkNCgllcHlkb2M/ICggPj1kZXYtcHl0aG9u
L2VweWRvYy0yLjAgKSINCiMgUmVxdWlyZSBzYW5kYm94LTIuMiBmb3IgYnVnICMyODg4NjMuDQoj
IEZvciB4YXR0ciwgd2UgY2FuIHNwYXduIGdldGZhdHRyIGFuZCBzZXRmYXR0ciBmcm9tIHN5cy1h
cHBzL2F0dHIsIGJ1dCB0aGF0J3MNCiMgcXVpdGUgc2xvdywgc28gaXQncyBub3QgY29uc2lkZXJl
ZCBpbiB0aGUgZGVwZW5kZW5jaWVzIGFzIGFuIGFsdGVybmF0aXZlIHRvDQojIHRvIHB5dGhvbi0z
LjMgLyBweXhhdHRyLiBBbHNvLCB4YXR0ciBzdXBwb3J0IGlzIG9ubHkgdGVzdGVkIHdpdGggTGlu
dXgsIHNvDQojIGZvciBub3csIGRvbid0IHB1bGwgaW4geGF0dHIgZGVwcyBmb3Igb3RoZXIga2Vy
bmVscy4NCiMgRm9yIHdoaXJscG9vbCBoYXNoLCByZXF1aXJlIHB5dGhvbltzc2xdIG9yIHB5dGhv
bi1taGFzaCBbWFhYXSAoYnVnICM0MjUwNDYpLg0KIyBGb3IgY29tcGdlbiwgcmVxdWlyZSBiYXNo
W3JlYWRsaW5lXSAoYnVnICM0NDU1NzYpLg0KUkRFUEVORD0iJHtweXRob25fZGVwfQ0KCSFidWls
ZD8gKCA+PXN5cy1hcHBzL3NlZC00LjAuNQ0KCQl8fCAoID49YXBwLXNoZWxscy9iYXNoLTQuMl9w
MzdbcmVhZGxpbmVdICggPGFwcC1zaGVsbHMvYmFzaC00LjJfcDM3ID49YXBwLXNoZWxscy9iYXNo
LTMuMl9wMTcgKSApDQoJCT49YXBwLWFkbWluL2VzZWxlY3QtMS4yDQoJCSR7UFlUSE9OX0RFUFN9
DQoJKQ0KCWVsaWJjX0ZyZWVCU0Q/ICggc3lzLWZyZWVic2QvZnJlZWJzZC1iaW4gKQ0KCWVsaWJj
X2dsaWJjPyAoID49c3lzLWFwcHMvc2FuZGJveC0yLjIgKQ0KCWVsaWJjX3VjbGliYz8gKCA+PXN5
cy1hcHBzL3NhbmRib3gtMi4yICkNCgk+PWFwcC1taXNjL3BheC11dGlscy0wLjEuMTcNCglzZWxp
bnV4PyAoIHx8ICggPj1zeXMtbGlicy9saWJzZWxpbnV4LTIuMC45NFtweXRob25dIDxzeXMtbGli
cy9saWJzZWxpbnV4LTIuMC45NCApICkNCgl4YXR0cj8gKCBrZXJuZWxfbGludXg/ICgNCgkJJChw
eXRob25fZ2VuX2NvbmRfZGVwICdkZXYtcHl0aG9uL3B5eGF0dHJbJHtQWVRIT05fVVNFREVQfV0n
IHB5dGhvbnsyXzcsM18yfSBweXB5KQ0KCSkgKQ0KCSE8YXBwLXNoZWxscy9iYXNoLTMuMl9wMTcN
CgkhPGFwcC1hZG1pbi9sb2dyb3RhdGUtMy44LjAiDQpQREVQRU5EPSINCgkhYnVpbGQ/ICgNCgkJ
Pj1uZXQtbWlzYy9yc3luYy0yLjYuNA0KCQl1c2VybGFuZF9HTlU/ICggPj1zeXMtYXBwcy9jb3Jl
dXRpbHMtNi40ICkNCgkpIg0KIyBjb3JldXRpbHMtNi40IHJkZXAgaXMgZm9yIGRhdGUgZm9ybWF0
IGluIGVtZXJnZS13ZWJyc3luYyAjMTY0NTMyDQojIE5PVEU6IEZFQVRVUkVTPWluc3RhbGxzb3Vy
Y2VzIHJlcXVpcmVzIGRlYnVnZWRpdCBhbmQgcnN5bmMNCg0KU1JDX0FSQ0hJVkVTPSJodHRwOi8v
ZGV2LmdlbnRvby5vcmcvfmRvbHNlbi9yZWxlYXNlcy9wb3J0YWdlIg0KDQpwcmVmaXhfc3JjX2Fy
Y2hpdmVzKCkgew0KCWxvY2FsIHggeQ0KCWZvciB4IGluICR7QH07IGRvDQoJCWZvciB5IGluICR7
U1JDX0FSQ0hJVkVTfTsgZG8NCgkJCWVjaG8gJHt5fS8ke3h9DQoJCWRvbmUNCglkb25lDQp9DQoN
CkVHSVRfUkVQT19VUkk9ImdpdDovL2dpdC5vdmVybGF5cy5nZW50b28ub3JnL3Byb2ovcG9ydGFn
ZS5naXQNCglodHRwczovL2dpdGh1Yi5jb20vZ2VudG9vL3BvcnRhZ2UuZ2l0Ig0KRUdJVF9NSU5f
Q0xPTkVfVFlQRT1zaW5nbGUNCg0Kc3JjX3ByZXBhcmUoKSB7DQoJZXBhdGNoX3VzZXINCg0KCWVp
bmZvICJQcm9kdWNpbmcgQ2hhbmdlTG9nIGZyb20gR2l0IGhpc3RvcnkuLi4iDQoJZ2l0IGxvZyBl
YmNmODk3NWIzN2E4YWFlOTczNWViNDkxYTliNGNiNjM1NDliZDVkXi4uIFwNCgkJPiAiJHtTfSIv
Q2hhbmdlTG9nIHx8IGRpZQ0KDQoJbG9jYWwgX3ZlcnNpb249JChnaXQgZGVzY3JpYmUgLS10YWdz
IHwgc2VkIC1lICdzfC1cKFswLTldXCtcKS0uXCskfF9wXDF8JykNCglfdmVyc2lvbj0ke192ZXJz
aW9uOjF9DQoJZWluZm8gIlNldHRpbmcgcG9ydGFnZS5WRVJTSU9OIHRvICR7X3ZlcnNpb259IC4u
LiINCglzZWQgLWUgInMvXlZFUlNJT04gPS4qL1ZFUlNJT04gPSAnJHtfdmVyc2lvbn0nLyIgLWkg
cHltL3BvcnRhZ2UvX19pbml0X18ucHkgfHwgXA0KCQlkaWUgIkZhaWxlZCB0byBwYXRjaCBwb3J0
YWdlLlZFUlNJT04iDQoJc2VkIC1lICIxcy9WRVJTSU9OLyR7X3ZlcnNpb259LyIgLWkgZG9jL2Zy
YWdtZW50L3ZlcnNpb24gfHwgXA0KCQlkaWUgIkZhaWxlZCB0byBwYXRjaCBWRVJTSU9OIGluIGRv
Yy9mcmFnbWVudC92ZXJzaW9uIg0KCXNlZCAtZSAiMXMvVkVSU0lPTi8ke192ZXJzaW9ufS8iIC1p
ICQoZmluZCBtYW4gLXR5cGUgZikgfHwgXA0KCQlkaWUgIkZhaWxlZCB0byBwYXRjaCBWRVJTSU9O
IGluIG1hbiBwYWdlIGhlYWRlcnMiDQoNCglpZiAhIHVzZSBpcGMgOyB0aGVuDQoJCWVpbmZvICJE
aXNhYmxpbmcgaXBjLi4uIg0KCQlzZWQgLWUgInM6X2VuYWJsZV9pcGNfZGFlbW9uID0gVHJ1ZTpf
ZW5hYmxlX2lwY19kYWVtb24gPSBGYWxzZToiIFwNCgkJCS1pIHB5bS9fZW1lcmdlL0Fic3RyYWN0
RWJ1aWxkUHJvY2Vzcy5weSB8fCBcDQoJCQlkaWUgImZhaWxlZCB0byBwYXRjaCBBYnN0cmFjdEVi
dWlsZFByb2Nlc3MucHkiDQoJZmkNCg0KCWlmIHVzZSB4YXR0ciAmJiB1c2Uga2VybmVsX2xpbnV4
IDsgdGhlbg0KCQllaW5mbyAiQWRkaW5nIEZFQVRVUkVTPXhhdHRyIHRvIG1ha2UuZ2xvYmFscyAu
Li4iDQoJCWVjaG8gLWUgJ1xuRkVBVFVSRVM9IiR7RkVBVFVSRVN9IHhhdHRyIicgPj4gY25mL21h
a2UuZ2xvYmFscyBcDQoJCQl8fCBkaWUgImZhaWxlZCB0byBhcHBlbmQgdG8gbWFrZS5nbG9iYWxz
Ig0KCWZpDQoNCglpZiBbWyAtbiAke0VQUkVGSVh9IF1dIDsgdGhlbg0KCQllaW5mbyAiU2V0dGlu
ZyBwb3J0YWdlLmNvbnN0LkVQUkVGSVggLi4uIg0KCQlzZWQgLWUgInN8XlwoU0FOREJPWF9CSU5B
UllbWzpzcGFjZTpdXSo9W1s6c3BhY2U6XV0qXCJcKVwoL3Vzci9iaW4vc2FuZGJveFwiXCl8XFwx
JHtFUFJFRklYfVxcMnwiIFwNCgkJCS1lICJzfF5cKEZBS0VST09UX0JJTkFSWVtbOnNwYWNlOl1d
Kj1bWzpzcGFjZTpdXSpcIlwpXCgvdXNyL2Jpbi9mYWtlcm9vdFwiXCl8XFwxJHtFUFJFRklYfVxc
MnwiIFwNCgkJCS1lICJzfF5cKEJBU0hfQklOQVJZW1s6c3BhY2U6XV0qPVtbOnNwYWNlOl1dKlwi
XClcKC9iaW4vYmFzaFwiXCl8XFwxJHtFUFJFRklYfVxcMnwiIFwNCgkJCS1lICJzfF5cKE1PVkVf
QklOQVJZW1s6c3BhY2U6XV0qPVtbOnNwYWNlOl1dKlwiXClcKC9iaW4vbXZcIlwpfFxcMSR7RVBS
RUZJWH1cXDJ8IiBcDQoJCQktZSAic3xeXChQUkVMSU5LX0JJTkFSWVtbOnNwYWNlOl1dKj1bWzpz
cGFjZTpdXSpcIlwpXCgvdXNyL3NiaW4vcHJlbGlua1wiXCl8XFwxJHtFUFJFRklYfVxcMnwiIFwN
CgkJCS1lICJzfF5cKEVQUkVGSVhbWzpzcGFjZTpdXSo9W1s6c3BhY2U6XV0qXCJcKS4qfFxcMSR7
RVBSRUZJWH1cInwiIFwNCgkJCS1pIHB5bS9wb3J0YWdlL2NvbnN0LnB5IHx8IFwNCgkJCWRpZSAi
RmFpbGVkIHRvIHBhdGNoIHBvcnRhZ2UuY29uc3QuRVBSRUZJWCINCg0KCQllaW5mbyAiUHJlZml4
aW5nIHNoZWJhbmdzIC4uLiINCgkJd2hpbGUgcmVhZCAtciAtZCAkJ1wwJyA7IGRvDQoJCQlsb2Nh
bCBzaGViYW5nPSQoaGVhZCAtbjEgIiRSRVBMWSIpDQoJCQlpZiBbWyAke3NoZWJhbmd9ID09ICIj
ISIqICYmICEgJHtzaGViYW5nfSA9PSAiIyEke0VQUkVGSVh9LyIqIF1dIDsgdGhlbg0KCQkJCXNl
ZCAtaSAtZSAiMXM6Lio6IyEke0VQUkVGSVh9JHtzaGViYW5nOjJ9OiIgIiRSRVBMWSIgfHwgXA0K
CQkJCQlkaWUgInNlZCBmYWlsZWQiDQoJCQlmaQ0KCQlkb25lIDwgPChmaW5kIC4gLXR5cGUgZiAt
cHJpbnQwKQ0KDQoJCWVpbmZvICJBZGp1c3RpbmcgbWFrZS5nbG9iYWxzIC4uLiINCgkJc2VkIC1l
ICJzfFwoL3Vzci9wb3J0YWdlXCl8JHtFUFJFRklYfVxcMXwiIFwNCgkJCS1lICJzfF5cKFBPUlRB
R0VfVE1QRElSPVwiXClcKC92YXIvdG1wXCJcKXxcXDEke0VQUkVGSVh9XFwyfCIgXA0KCQkJLWkg
Y25mL21ha2UuZ2xvYmFscyB8fCBkaWUgInNlZCBmYWlsZWQiDQoNCgkJZWluZm8gIkFkanVzdGlu
ZyByZXBvcy5jb25mIC4uLiINCgkJc2VkIC1lICJzfF5cKG1haW4tcmVwbyA9IFwpLip8XFwxZ2Vu
dG9vX3ByZWZpeHwiIFwNCgkJCS1lICJzfF5cXFtnZW50b29cXF18W2dlbnRvb19wcmVmaXhdfCIg
XA0KCQkJLWUgInN8XlwobG9jYXRpb24gPSBcKVwoL3Vzci9wb3J0YWdlXCl8XFwxJHtFUFJFRklY
fVxcMnwiIFwNCgkJCS1lICJzfF5cKHN5bmMtdXJpID0gXCkuKnxcXDFyc3luYzovL3ByZWZpeC5n
ZW50b29leHBlcmltZW50YWwub3JnL2dlbnRvby1wb3J0YWdlLXByZWZpeHwiIFwNCgkJCS1pIGNu
Zi9yZXBvcy5jb25mIHx8IGRpZSAic2VkIGZhaWxlZCINCg0KCQllaW5mbyAiQWRkaW5nIEZFQVRV
UkVTPWZvcmNlLXByZWZpeCB0byBtYWtlLmdsb2JhbHMgLi4uIg0KCQllY2hvIC1lICdcbkZFQVRV
UkVTPSIke0ZFQVRVUkVTfSBmb3JjZS1wcmVmaXgiJyA+PiBjbmYvbWFrZS5nbG9iYWxzIFwNCgkJ
CXx8IGRpZSAiZmFpbGVkIHRvIGFwcGVuZCB0byBtYWtlLmdsb2JhbHMiDQoJZmkNCg0KCWNkICIk
e1N9L2NuZiIgfHwgZGllDQoJaWYgWyAtZiAibWFrZS5jb25mLmV4YW1wbGUuJHtBUkNIfSIuZGlm
ZiBdOyB0aGVuDQoJCXBhdGNoIG1ha2UuY29uZi5leGFtcGxlICJtYWtlLmNvbmYuZXhhbXBsZS4k
e0FSQ0h9Ii5kaWZmIHx8IFwNCgkJCWRpZSAiRmFpbGVkIHRvIHBhdGNoIG1ha2UuY29uZi5leGFt
cGxlIg0KCWVsc2UNCgkJZWVycm9yICIiDQoJCWVlcnJvciAiUG9ydGFnZSBkb2VzIG5vdCBoYXZl
IGFuIGFyY2gtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBhcmNoLiINCgkJZWVycm9y
ICJQbGVhc2Ugbm90aWZ5IHRoZSBhcmNoIG1haW50YWluZXIgYWJvdXQgdGhpcyBpc3N1ZS4gVXNp
bmcgZ2VuZXJpYy4iDQoJCWVlcnJvciAiIg0KCWZpDQp9DQoNCnNyY19jb21waWxlKCkgew0KCXB5
dGhvbl9zZXR1cA0KDQoJaWYgdXNlIGRvYzsgdGhlbg0KCQllbWFrZSBkb2Nib29rIHx8IGRpZQ0K
CWZpDQoNCglpZiB1c2UgZXB5ZG9jOyB0aGVuDQoJCWVpbmZvICJHZW5lcmF0aW5nIGFwaSBkb2Nz
Ig0KCQllbWFrZSBlcHlkb2MgfHwgZGllDQoJZmkNCn0NCg0Kc3JjX3Rlc3QoKSB7DQoJLi9ydW50
ZXN0cy5zaCB8fCBkaWUgInRlc3RzIGZhaWxlZCINCn0NCg0Kc3JjX2luc3RhbGwoKSB7DQoJZW1h
a2UgREVTVERJUj0iJHtEfSIgXA0KCQlzeXNjb25mZGlyPSIke0VQUkVGSVh9L2V0YyIgXA0KCQlw
cmVmaXg9IiR7RVBSRUZJWH0vdXNyIiBcDQoJCWluc3RhbGwNCg0KCXB5dGhvbl9pbnN0YWxsKCkg
ew0KCQkjIFRoZSBNYWtlZmlsZSBpbnRlbmRzIG9uIHVzaW5nIC91c3IvbGliL3BvcnRhZ2UvcHlt
LCBzbyBtb3ZlIGZpbGVzLg0KCQlweXRob25fZG9tb2R1bGUgIiR7RUQlL30iL3Vzci9saWIvcG9y
dGFnZS9weW0vKg0KCQlweXRob25fb3B0aW1pemUNCgl9DQoJcHl0aG9uX3BhcmFsbGVsX2ZvcmVh
Y2hfaW1wbCBweXRob25faW5zdGFsbA0KDQoJIyBLaWxsIHRoZSBsZWdhY3kgbG9jYXRpb24gdG8g
YXZvaWQgY3JlYXRpbmcgY2FjaGVzIHRoZXJlLg0KCXJtIC1yICIke0VEJS99Ii91c3IvbGliL3Bv
cnRhZ2UvcHltIHx8IGRpZQ0KDQoJIyBOb3csIHdyYXAgdGhlIHNjcmlwdHMuDQoJbG9jYWwgZiBz
aGViYW5nDQoJZm9yIGYgaW4gIiR7RUQlL30iL3Vzci9iaW4vKjsgZG8NCgkJcmVhZCBzaGViYW5n
IDwgIiR7Zn0iDQoJCVtbICR7c2hlYmFuZ30gPT0gKnB5dGhvbiogXV0gJiYgcHl0aG9uX3JlcGxp
Y2F0ZV9zY3JpcHQgIiR7Zn0iDQoJZG9uZQ0KfQ0KDQpjdXJyZW50X3B5dGhvbl9oYXNfeGF0dHIo
KSB7DQoJW1sgJCgiJHtQWVRIT059IiAtYyAnaW1wb3J0IHN5cyA7IHN5cy5zdGRvdXQud3JpdGUo
c3lzLmhleHZlcnNpb24gPj0gMHgzMDMwMDAwIGFuZCAieWVzIiBvciAibm8iKScpID0geWVzIF1d
IHx8IFwNCgkiJHtQWVRIT059IiAtYyAnaW1wb3J0IHhhdHRyJyAyPi9kZXYvbnVsbA0KfQ0KDQpw
a2dfcHJlaW5zdCgpIHsNCglpZiBbWyAkUk9PVCA9PSAvIF1dIDsgdGhlbg0KCQkjIFJ1biBzb21l
IG1pbmltYWwgdGVzdHMgYXMgYSBzYW5pdHkgY2hlY2suDQoJCWxvY2FsIHRlc3RfcnVubmVyPSQo
ZmluZCAiJHtFRH0iIC1uYW1lIHJ1blRlc3RzKQ0KCQlpZiBbWyAtbiAkdGVzdF9ydW5uZXIgJiYg
LXggJHRlc3RfcnVubmVyIF1dIDsgdGhlbg0KCQkJZWluZm8gIlJ1bm5pbmcgcHJlaW5zdCBzYW5p
dHkgdGVzdHMuLi4iDQoJCQkiJHRlc3RfcnVubmVyIiB8fCBkaWUgInByZWluc3Qgc2FuaXR5IHRl
c3RzIGZhaWxlZCINCgkJZmkNCglmaQ0KDQoJaWYgdXNlIHhhdHRyICYmICEgY3VycmVudF9weXRo
b25faGFzX3hhdHRyIDsgdGhlbg0KCQlld2FybiAiRm9yIG9wdGltYWwgcGVyZm9ybWFuY2UgaW4g
eGF0dHIgaGFuZGxpbmcsIGluc3RhbGwiDQoJCWV3YXJuICJkZXYtcHl0aG9uL3B5eGF0dHIsIG9y
IHVzZSBQeXRob24gMy4zIG9yIG5ld2VyLiINCglmaQ0KDQoJIyBlbG9nIGRpciBtdXN0IGV4aXN0
IHRvIGF2b2lkIGxvZ3JvdGF0ZSBlcnJvciBmb3IgYnVnICM0MTU5MTEuDQoJIyBUaGlzIGNvZGUg
cnVucyBpbiBwcmVpbnN0IGluIG9yZGVyIHRvIGJ5cGFzcyB0aGUgbWFwcGluZyBvZg0KCSMgcG9y
dGFnZTpwb3J0YWdlIHRvIHJvb3Q6cm9vdCB3aGljaCBoYXBwZW5zIGFmdGVyIHNyY19pbnN0YWxs
Lg0KCWtlZXBkaXIgL3Zhci9sb2cvcG9ydGFnZS9lbG9nDQoJIyBUaGlzIGlzIGFsbG93ZWQgdG8g
ZmFpbCBpZiB0aGUgdXNlci9ncm91cCBhcmUgaW52YWxpZCBmb3IgcHJlZml4IHVzZXJzLg0KCWlm
IGNob3duIHBvcnRhZ2U6cG9ydGFnZSAiJHtFRH0idmFyL2xvZy9wb3J0YWdleywvZWxvZ30gMj4v
ZGV2L251bGwgOyB0aGVuDQoJCWNobW9kIGcrcyx1Zytyd3ggIiR7RUR9InZhci9sb2cvcG9ydGFn
ZXssL2Vsb2d9DQoJZmkNCn0NCg==

--MP_/qPdropeWzb=xtvJwpc386ol--

--Sig_/jT219W_Tw5YpzjtmaKzMcyh
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQJ8BAEBCgBmBQJT1mZDXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ2REJCMDdDQzRGMERBRDA2RUEwQUZFNDFC
MDdBMUFFQUVGQjQ0NjRFAAoJELB6GurvtEZOnZ8P/2tlqkeXnQHX2neR+P8IAvqS
jCMcSoR/9z7LizLe6EIII50zj8icfHzB12LU52+I5ORPJBVfHsSiAfYlHL7nu8zY
6ZUOf1i4+ziaAq2hX6QF9MzYpUx5M8gKcV35TgecZjRio9l+a3kPNQkuMoobwtE+
9T9TGud0wQEX+WWiIxxgrlapaz6G1xb/VZNj5nrQyoiVUZKf8XjONivq1tTlVU80
ZAd367c+P3U3ppmlzcWspXmXeWUupN0rw1q7catCNwNtcd9v28OnI1Cmt6n8bXxA
PKX2SqqsllLrLhd9G+2lpLKogHO1jZznhqfgBWAQYuwRJKSYuEi5eFS0pX04VUDe
Y/3kzXSsvYCKzgfViVCnAoEY+Y4wS5+scbSfuoO7kYOAmWzT8MI/q6MFVEP55eoU
81vJUSj3I1fsMHdGfMG0ReJ+lJEEy8lGJ39x3m3r/yYGiBhl/GeC0y/mz0Dt9SP3
1tfL4RhYc4Bk4sL3nfDeT+LZA8RXY+UkbmqZ8N1loNpJD1opWTv8SkLlt4dSbGkk
q4WsPdVPEwKo2CHhx726M3oUIBjYfKgxnHgRWcOhhx7vP513Sh6NLRlEKNT37KZe
8Erd9CWWFrN7ALN3ec0QVvnqOSw5HlbTH9ulwCVPr/pPQtzwY36rW6eGWH6VjsfE
7JpN7yZ/pJq61aFd20Fo
=o8aD
-----END PGP SIGNATURE-----

--Sig_/jT219W_Tw5YpzjtmaKzMcyh--