Subject: PATCH: make mknative extract more complete set of variables for libgcc
To: None <tech-toolchain@NetBSD.org>
From: Masao Uebayashi <uebayasi@gmail.com>
List: tech-toolchain
Date: 11/19/2007 15:17:08
------=_Part_462_7405956.1195453028324
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

LIB2FUNCS was previously defined in a make file.  Now it's constructed
in a shell script (mklibgcc) at run-time.  `mklibgcc' is run with
environments set from command-line written as in
gnu/dist/gcc4/gcc/Makefile.in and generate libgcc.mk.  My patch tries
to extract the list of environments from that file.

Some LIB2FUNCS entries look like foo:bar:N where
<file_name>:<define_name>:<units_per_word> which represents soft float
function specification.

I did this for mips64eb + soft float where more float functions are
needed.  This is all ugly but I think my patch is reaching the point
where reasonably functional.  Not tested much but at least libc
builds. :)

Masao

------=_Part_462_7405956.1195453028324
Content-Type: application/octet-stream; name=di.mknative-libgcc
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=di.mknative-libgcc

PyBnbnUvbGliL2xpYmdjYzQvYXJjaC9taXBzNjRlYi5tawpJbmRleDogZ251L2xpYi9saWJnY2M0
L01ha2VmaWxlLmluYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zzcm9vdC9zcmMvZ251L2xpYi9s
aWJnY2M0L01ha2VmaWxlLmluYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS42CmRpZmYgLXUgLXIx
LjYgTWFrZWZpbGUuaW5jCi0tLSBnbnUvbGliL2xpYmdjYzQvTWFrZWZpbGUuaW5jCTggQXByIDIw
MDcgMDk6NTY6MDggLTAwMDAJMS42CisrKyBnbnUvbGliL2xpYmdjYzQvTWFrZWZpbGUuaW5jCTE5
IE5vdiAyMDA3IDA2OjA0OjA2IC0wMDAwCkBAIC0xNiw0MyArMTYsNTcgQEAKIENQUEZMQUdTKz0J
LUkke0dfRVhUUkFfSEVBREVSUzpIOnV9CiBDUFBGTEFHUys9CS1JJHtESVNUfS9nY2MvY3AgLUkk
e0RJU1R9L2djYy9jb25maWcgLUkke0dDQ0FSQ0hYWH0gLUkuCiAKLSMgVGhpcyBpcyBjb3BpZWQg
ZnJvbSBnY2MvbWtsaWJnY2MuaW46JGxpYjJmdW5jcwotTElCMkZVTkNTX0FMTD0JX211bGRpMyBf
bmVnZGkyIF9sc2hyZGkzIF9hc2hsZGkzIF9hc2hyZGkzIFwKLSAgICAgICAgX2NtcGRpMiBfdWNt
cGRpMiBfZmxvYXRkaWRmIF9mbG9hdGRpc2YgX2ZpeHVuc2Rmc2kgX2ZpeHVuc3Nmc2kgXAotICAg
ICAgICBfZml4dW5zZGZkaSBfZml4ZGZkaSBfZml4dW5zc2ZkaSBfZml4c2ZkaSBfZml4eGZkaSBf
Zml4dW5zeGZkaSBcCi0gICAgICAgIF9mbG9hdGRpeGYgX2ZpeHVuc3hmc2kgX2ZpeHRmZGkgX2Zp
eHVuc3RmZGkgX2Zsb2F0ZGl0ZiBfY2xlYXJfY2FjaGUgXAotICAgICAgICBfZW5hYmxlX2V4ZWN1
dGVfc3RhY2sgX3RyYW1wb2xpbmUgX19tYWluIF9hYnN2c2kyIF9hYnN2ZGkyIF9hZGR2c2kzIFwK
LSAgICAgICAgX2FkZHZkaTMgX3N1YnZzaTMgX3N1YnZkaTMgX211bHZzaTMgX211bHZkaTMgX25l
Z3ZzaTIgX25lZ3ZkaTIgX2N0b3JzIFwKLSAgICAgICAgX2Zmc3NpMiBfZmZzZGkyIF9jbHogX2Ns
enNpMiBfY2x6ZGkyIF9jdHpzaTIgX2N0emRpMiBfcG9wY291bnRfdGFiIFwKLSAgICAgICAgX3Bv
cGNvdW50c2kyIF9wb3Bjb3VudGRpMiBfcGFyaXR5c2kyIF9wYXJpdHlkaTIgX3Bvd2lzZjIgX3Bv
d2lkZjIgXAotICAgICAgICBfcG93aXhmMiBfcG93aXRmMiBcCi0KLS5pZiAke01BQ0hJTkVfQVJD
SH0gIT0gInZheCIKLUxJQjJGVU5DU19BTEwrPQlcCi0JX211bHNjMyBfbXVsZGMzIF9tdWx4YzMg
X211bHRjMyBfZGl2c2MzIF9kaXZkYzMgX2RpdnhjMyBfZGl2dGMzCi0uZW5kaWYKLQotTElCMkZV
TkNTX1NIT1JUOj0ke0xJQjJGVU5DU19BTEx9Ci1MSUIyX0RJVk1PRF9GVU5DUzo9JHtHX0xJQjJf
RElWTU9EX0ZVTkNTfQotLmZvciBmIGluICR7R19MSUIxQVNNRlVOQ1N9OyBkbwotTElCMkZVTkNT
X1NIT1JUOj0ke0xJQjJGVU5DU19TSE9SVDpOJHtmfX0KLUxJQjJfRElWTU9EX0ZVTkNTOj0ke0xJ
QjJfRElWTU9EX0ZVTkNTOk4ke2Z9fQotLmVuZGZvcgorIyBTb21lIGxvb2tzIGxpa2UKKyMJIl9m
aXh1bnNzZnNpOl9maXh1bnNzZnNpOjQiCisjIHdoZXJlCisjCSI8ZmlsZW5hbWU+OjxkZWZpbmVf
bmFtZT46PHVuaXRzX3Blcl93b3JkPiIKKyMgSXQncyBjb21waWxlZCBhcworIwljYyAtRCR7ZGVm
aW5lX25hbWV9IC1ETElCR0NDMl9VTklUU19QRVJfV09SRD0ke3VuaXRzX3Blcl93b3JkfSAke2Zp
bGVuYW1lfS5jCisuaWYgIWVtcHR5KEdfTElCMUFTTUZVTkNTKQorLiAgZm9yIGYgaW4gJHtHX2xp
YjJmdW5jc30KKy4gICAgaWYgZW1wdHkoR19MSUIxQVNNRlVOQ1M6TSR7Zn0pCitMSUIyRlVOQ1Nf
U1BFQ1MrPQkkZgorLiAgICBlbmRpZgorLiAgZW5kZm9yCisuZWxzZQorTElCMkZVTkNTX1NQRUNT
Kz0JJHtHX2xpYjJmdW5jc30KKy5lbmRpZgorCisuaWYgZGVmaW5lZChHX0xJQjFBU01GVU5DUykK
Ky4gIGZvciBmIGluICR7R19MSUIyX0RJVk1PRF9GVU5DU30KKy4gICAgaWYgZW1wdHkoR19MSUIx
QVNNRlVOQ1M6TSR7Zn0pCitMSUIyX0RJVk1PRF9GVU5DUys9CSRmCisuICAgIGVuZGlmCisuICBl
bmRmb3IKKy5lbHNlCitMSUIyX0RJVk1PRF9GVU5DUys9CSR7R19MSUIyX0RJVk1PRF9GVU5DU30K
Ky5lbmRpZgogCi1MSUIyRlVOQ1M9CSR7TElCMkZVTkNTX1NIT1JUOj0uY30KK0xJQjJGVU5DUz0J
JHtMSUIyRlVOQ1NfU1BFQ1M6Qy86LiokLy9nOj0uY30KIExJQjJGVU5DU19TVD0JJHtHX0xJQjJG
VU5DU19TVDo9LmN9CitMSUIyRlVOQ1NfRVhUUkE9JHtHX0xJQjJGVU5DU19FWFRSQTo9LmN9CiBM
SUIyRElWTU9EPQkke0xJQjJfRElWTU9EX0ZVTkNTOj0uY30KIExJQjJfRUg9CSR7R19MSUIyQURE
RUg6TSouYzpUfQogLmlmICFlbXB0eShHX0xJQjFBU01GVU5DUykKIExJQjFBU01GVU5DUz0JJHtH
X0xJQjFBU01GVU5DUzo9LlN9CiAuZW5kaWYKKy5pZiAhZW1wdHkoR19GUEJJVF9GVU5DUykgfHwg
IWVtcHR5KEdfRFBCSVRfRlVOQ1MpIHx8ICFlbXB0eShHX1RQQklUX0ZVTkNTKQorRlBCSVRfRlVO
Q1M9CSR7R19GUEJJVF9GVU5DUzo9LmN9CitEUEJJVF9GVU5DUz0JJHtHX0RQQklUX0ZVTkNTOj0u
Y30KK1RQQklUX0ZVTkNTPQkke0dfVFBCSVRfRlVOQ1M6PS5jfQorLmVuZGlmCiAKIERQU1JDUys9
CSR7LkNVUkRJUn0vLi4vYXJjaC8ke01BQ0hJTkVfQVJDSH0ubWsgdGNvbmZpZy5oCi1DTEVBTkZJ
TEVTKz0JJHtMSUIyRlVOQ1N9ICR7TElCMkZVTkNTX1NUfSAke0xJQjJESVZNT0R9IGNzLXRjb25m
aWcuaCBcCitDTEVBTkZJTEVTKz0JJHtMSUIyRlVOQ1N9ICR7TElCMkZVTkNTX1NUfSAke0xJQjJG
VU5DU19FWFRSQX0gJHtMSUIyRElWTU9EfSBjcy10Y29uZmlnLmggXAogCQl0Y29uZmlnLmgKIC5p
ZiAhZW1wdHkoR19MSUIxQVNNRlVOQ1MpCiBDTEVBTkZJTEVTKz0JJHtMSUIxQVNNRlVOQ1N9CiAu
ZW5kaWYKKy5pZiAhZW1wdHkoR19GUEJJVF9GVU5DUykgfHwgIWVtcHR5KEdfRFBCSVRfRlVOQ1Mp
IHx8ICFlbXB0eShHX1RQQklUX0ZVTkNTKQorQ0xFQU5GSUxFUz0JJHtGUEJJVF9GVU5DU30KK0NM
RUFORklMRVM9CSR7RFBCSVRfRlVOQ1N9CitDTEVBTkZJTEVTPQkke1RQQklUX0ZVTkNTfQorLmVu
ZGlmCiAKICMgWFhYCiAuaWYgJHtNQUNISU5FX0FSQ0h9ID09ICJtNjgwMDAiCkBAIC03OCw3ICs5
MiwyNSBAQAogQ09QVFMrPQktbWxvbmctZG91YmxlLTEyOAogLmVuZGlmCiAKLSR7TElCMkZVTkNT
fSAke0xJQjJGVU5DU19TVH06ICR7LkNVUkRJUn0vTWFrZWZpbGUKKyMgWFhYIFNlZSBta2xpYmdj
Yy5pbiBmb3IgdGhlIGRldGFpbC4KKy5mb3IgX3NwZWMgaW4gJHtMSUIyRlVOQ1NfU1BFQ1N9Cisu
aWYgIWRlZmluZWQoX3NwZWM6TSpbOl0qWzpdKikKKyR7X3NwZWM6Qy86LiovL2c6PS5jfTogJHsu
Q1VSRElSfS9NYWtlZmlsZQorCSR7X01LVEFSR0VUX0NSRUFURX0KKwlwcmludGYgJyNkZWZpbmUg
TCR7LlBSRUZJWH1cbiNpbmNsdWRlIDxsaWJnY2MyLmM+XG4nID4key5UQVJHRVR9CisuZWxzZQor
JHtfc3BlYzpDLzouKi8vZzo9LmN9OiAkey5DVVJESVJ9L01ha2VmaWxlCisJJHtfTUtUQVJHRVRf
Q1JFQVRFfQorCXsgXAorCQlJRlM9Ojsgc2V0IC0tICQkKCBlY2hvICR7X3NwZWN9ICk7IFwKKwkJ
cHJpbnRmICIjZGVmaW5lIEwkJHsyfVxuIjsgXAorCQlwcmludGYgIiNkZWZpbmUgTElCR0NDMl9V
TklUU19QRVJfV09SRCAkJHszfVxuIjsgXAorCQlwcmludGYgIiNpbmNsdWRlIDxsaWJnY2MyLmM+
XG4iOyBcCisJfSA+JHsuVEFSR0VUfQorLmVuZGlmCisuZW5kZm9yCisKKyR7TElCMkZVTkNTX1NU
fSAke0xJQjJGVU5DU19FWFRSQX06ICR7LkNVUkRJUn0vTWFrZWZpbGUKIAkke19NS1RBUkdFVF9D
UkVBVEV9CiAJcHJpbnRmICcjZGVmaW5lIEwkey5QUkVGSVh9XG4jaW5jbHVkZSA8bGliZ2NjMi5j
PlxuJyA+JHsuVEFSR0VUfQogCkBAIC05Miw2ICsxMjQsNDQgQEAKIAlwcmludGYgJyNkZWZpbmUg
TCR7LlBSRUZJWH1cbiNpbmNsdWRlIDwke0dfTElCMUFTTVNSQ30+XG4nID4key5UQVJHRVR9CiAu
ZW5kaWYKIAorLmlmICFlbXB0eShHX0ZQQklUX0ZVTkNTKQorJHtGUEJJVF9GVU5DU306ICR7LkNV
UkRJUn0vTWFrZWZpbGUKKwkke19NS1RBUkdFVF9DUkVBVEV9CisJeyBcCisJCXByaW50ZiAnI2Rl
ZmluZSBGTE9BVFxuJzsgXAorCQlwcmludGYgJyNkZWZpbmUgRklORV9HUkFJTkVEX0xJQlJBUklF
U1xuJzsgXAorCQlwcmludGYgJyNkZWZpbmUgTCR7LlBSRUZJWH1cbic7IFwKKwkJcHJpbnRmICcj
aW5jbHVkZSA8ZnAtYml0LmM+XG4nOyBcCisJfSA+JHsuVEFSR0VUfQorLmVuZGlmCisKKy5pZiAh
ZW1wdHkoR19EUEJJVF9GVU5DUykKKyR7RFBCSVRfRlVOQ1N9OiAkey5DVVJESVJ9L01ha2VmaWxl
CisJJHtfTUtUQVJHRVRfQ1JFQVRFfQorCXsgXAorCQlwcmludGYgJyNkZWZpbmUgRklORV9HUkFJ
TkVEX0xJQlJBUklFU1xuJzsgXAorCQlwcmludGYgJyNkZWZpbmUgTCR7LlBSRUZJWH1cbic7IFwK
KwkJcHJpbnRmICcjaW5jbHVkZSA8ZnAtYml0LmM+XG4nOyBcCisJfSA+JHsuVEFSR0VUfQorLmVu
ZGlmCisKKy5pZiAhZW1wdHkoR19UUEJJVF9GVU5DUykKKyR7VFBCSVRfRlVOQ1N9OiAkey5DVVJE
SVJ9L01ha2VmaWxlCisJJHtfTUtUQVJHRVRfQ1JFQVRFfQorCXsgXAorCQlwcmludGYgJyNpZmRl
ZiBfX01JUFNFTF9fXG4nOyBcCisJCXByaW50ZiAnI2RlZmluZSBGTE9BVF9CSVRfT1JERVJfTUlT
TUFUQ0hcbic7IFwKKwkJcHJpbnRmICcjZW5kaWZcbic7IFwKKwkJcHJpbnRmICcjaWYgX19MREJM
X01BTlRfRElHX18gPT0gMTEzXG4nOyBcCisJCXByaW50ZiAnI2RlZmluZSBRVUlFVF9OQU5fTkVH
QVRFRFxuJzsgXAorCQlwcmludGYgJyNkZWZpbmUgVEZMT0FUXG4nOyBcCisJCXByaW50ZiAnI2Rl
ZmluZSBGSU5FX0dSQUlORURfTElCUkFSSUVTXG4nOyBcCisJCXByaW50ZiAnI2RlZmluZSBMJHsu
UFJFRklYfVxuJzsgXAorCQlwcmludGYgJyNpbmNsdWRlIDxmcC1iaXQuYz5cbic7IFwKKwkJcHJp
bnRmICcjZW5kaWZcbic7IFwKKwl9ID4key5UQVJHRVR9CisuZW5kaWYKKwogJHtHX0xJQjJBREQ6
TSR7R05VSE9TVERJU1R9Lyo6VDpTLy5hc20vLlMvfTogJHsuQ1VSRElSfS9NYWtlZmlsZSAke0df
TElCMkFERH0KIAlAZWNobyBjb3B5aW5nICR7R19MSUIyQUREfQogCWZvciBpIGluICR7R19MSUIy
QUREfTsgZG8gXApAQCAtMTE3LDEwICsxODcsNiBAQAogCSR7X01LVEFSR0VUX0NPTVBJTEV9CiAJ
JHtDT01QSUxFLmN9ICR7Q1BJQ0ZMQUdTfSAtZmV4Y2VwdGlvbnMgLWZub24tY2FsbC1leGNlcHRp
b25zICR7Q09QVFMuJHsuSU1QU1JDOlR9fSAtbyAkey5UQVJHRVR9ICR7LklNUFNSQ30KIAotZHAt
Yml0LmM6ICR7LkNVUkRJUn0vTWFrZWZpbGUKLQkke19NS1RBUkdFVF9DUkVBVEV9Ci0JcHJpbnRm
ICcjZGVmaW5lIEZMT0FUXG4jaW5jbHVkZSA8ZnAtYml0LmM+XG4nID4key5UQVJHRVR9Ci0KIC5Q
QVRIOiAke0RJU1R9L2djYyAke0RJU1R9L2djYy9jcCAke0RJU1R9L2djYy9jcC9pbmMgJHtESVNU
fS9nY2MvY29uZmlnIFwKIAkke0dfQ09ORklHRElSfQogCkluZGV4OiBnbnUvbGliL2xpYmdjYzQv
bGliZ2NjL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnNyb290L3NyYy9nbnUvbGli
L2xpYmdjYzQvbGliZ2NjL01ha2VmaWxlLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMKZGlmZiAt
dSAtcjEuMyBNYWtlZmlsZQotLS0gZ251L2xpYi9saWJnY2M0L2xpYmdjYy9NYWtlZmlsZQk5IE1h
ciAyMDA3IDA0OjQwOjM4IC0wMDAwCTEuMworKysgZ251L2xpYi9saWJnY2M0L2xpYmdjYy9NYWtl
ZmlsZQkxOSBOb3YgMjAwNyAwNjowNDowNiAtMDAwMApAQCAtMTUsOCArMTUsOSBAQAogCiAuY2M6
ICMgZGlzYWJsZSAuY2MtPk5VTEwgdHJhbnNmb3JtCiAKLVNSQ1MrPQkJJHtMSUIyRlVOQ1N9ICR7
TElCMkZVTkNTX1NUfSAke0xJQjJESVZNT0R9IFwKLQkJJHtHX0xJQjJBREQ6VDpTLy5hc20vLlMv
fSAke0xJQjFBU01GVU5DU30KK1NSQ1MrPQkJJHtMSUIyRlVOQ1N9ICR7TElCMkZVTkNTX1NUfSAk
e0xJQjJGVU5DU19FWFRSQX0gJHtMSUIyRElWTU9EfSBcCisJCSR7R19MSUIyQUREOlQ6Uy8uYXNt
Ly5TL30gJHtMSUIxQVNNRlVOQ1N9IFwKKwkJJHtGUEJJVF9GVU5DU30gJHtEUEJJVF9GVU5DU30g
JHtUUEJJVF9GVU5DU30KIC5pZiAke01LUElDfSA9PSAibm8iCiBTUkNTKz0JCSR7TElCMl9FSH0K
IC5lbmRpZgpJbmRleDogZ251L2xpYi9saWJnY2M0L2xpYmdjY19zL01ha2VmaWxlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnNyb290L3NyYy9nbnUvbGliL2xpYmdjYzQvbGliZ2NjX3MvTWFrZWZp
bGUsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMwpkaWZmIC11IC1yMS4zIE1ha2VmaWxlCi0tLSBn
bnUvbGliL2xpYmdjYzQvbGliZ2NjX3MvTWFrZWZpbGUJOSBOb3YgMjAwNiAwNDowODo1MCAtMDAw
MAkxLjMKKysrIGdudS9saWIvbGliZ2NjNC9saWJnY2Nfcy9NYWtlZmlsZQkxOSBOb3YgMjAwNyAw
NjowNDowNiAtMDAwMApAQCAtMjMsOCArMjMsOSBAQAogTERGTEFHUys9CS1ub2RlZmF1bHRsaWJz
CiBMREZMQUdTKz0JLVdsLC0tdmVyc2lvbi1zY3JpcHQ9JHsuT0JKRElSfS9saWJnY2MubWFwCiAK
LVNSQ1MrPQkJJHtMSUIyRlVOQ1N9ICR7TElCMkRJVk1PRH0gJHtMSUIyX0VIfSBcCi0JCSR7R19M
SUIyQUREOlQ6Uy8uYXNtLy5TL30gJHtMSUIxQVNNRlVOQ1N9CitTUkNTKz0JCSR7TElCMkZVTkNT
fSAke0xJQjJGVU5DU19FWFRSQX0gJHtMSUIyRElWTU9EfSAke0xJQjJfRUh9IFwKKwkJJHtHX0xJ
QjJBREQ6VDpTLy5hc20vLlMvfSAke0xJQjFBU01GVU5DU30gXAorCQkke0ZQQklUX0ZVTkNTfSAk
e0RQQklUX0ZVTkNTfSAke1RQQklUX0ZVTkNTfQogCiBDT1BUUy51bndpbmQtZHcyLmMgPSAtV25v
LXN0YWNrLXByb3RlY3RvcgogCkluZGV4OiB0b29scy9nY2MvbWtuYXRpdmUtZ2NjCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KUkNTIGZpbGU6IC9jdnNyb290L3NyYy90b29scy9nY2MvbWtuYXRpdmUtZ2NjLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjIyCmRpZmYgLXUgLXIxLjIyIG1rbmF0aXZlLWdjYwotLS0gdG9vbHMv
Z2NjL21rbmF0aXZlLWdjYwkyNSBKdW4gMjAwNiAwMzowNjoxNSAtMDAwMAkxLjIyCisrKyB0b29s
cy9nY2MvbWtuYXRpdmUtZ2NjCTE5IE5vdiAyMDA3IDA2OjA0OjA2IC0wMDAwCkBAIC00OSw2ICs0
OSwzOSBAQAogCiAjIyMjIyBnbnUvbGliL2xpYmdjYyAjIyMjIwogCisjIFhYWCBYWFggWFhYIFRo
aXMgaXMgcmVhbGx5IGEgaGFjay4gWFhYIFhYWCBYWFgKK2dldF9saWIyZnVuY3MoKSB7CisJKAor
CQkjIFRvIGJlIGFibGUgdG8gcnVuIGAuL3hnY2MnLgorCQljZCAkX1RNUERJUi9nY2MKKworCQku
IC4vbGliZ2NjX3ZhcnMuc2gKKwkJc2VkIC1uZSAnL15saWJnY2NcLm1rLywvXiQvcCcgTWFrZWZp
bGUgfCBcCisJCXNlZCAtZSAncy9cXCQvLycgfCBcCisJCXsKKwkJCXdoaWxlIHJlYWQgX2xpbmU7
IGRvCisJCQkJY2FzZSAkX2xpbmUgaW4KKwkJCQkqPSopCisJCQkJCV92YXJzPSIke192YXJzfSAk
KAorCQkJCQkJIyBGT089JyQoRk9PKScgLT4gRk9PPSIke0ZPT30iCisJCQkJCQllY2hvICRfbGlu
ZSB8IFwKKwkJCQkJCXNlZCAtZSAncywoLHssZycgXAorCQkJCQkJICAgIC1lICdzLCksfSxnJyBc
CisJCQkJCQkgICAgLWUgcyxcJyxcIixnCisJCQkJCSkiCisJCQkJCTs7CisJCQkJKikKKwkJCQkJ
OzsKKwkJCQllc2FjCisJCQlkb25lCisJCQlldmFsIGVudiAiJHtfdmFyc30iIHNoIDw8RU9GCisu
IC4vbWtsaWJnY2MgPi9kZXYvbnVsbAorZWNobyBHX2xpYjJmdW5jcz1cJGxpYjJmdW5jcworRU9G
CisJCX0KKwkpCit9CisKIGdldF9saWJnY2MgKCkgewogCV9zdWJkaXI9IiQxIgogCW1rZGlyIC1w
ICRfVE9QL2dudS9saWIvbGliJF9zdWJkaXIvYXJjaApAQCAtNjQsMTAgKzk3LDExIEBACiAJCTs7
CiAJZXNhYwogCi0JIyBEUEJJVCwgRlBCSVQgb25seSB1c2VkIG9uIG1uMTBbMjNdMDAsIHdlIGRv
bid0IG5lZWQgdGhlbS4KIAkjIFhYWCB3ZSBzaG91bGQgcHJvYmFibHkgZ3JhYiBldmVyeXRoaW5n
IEp1c3QgSW4gQ2FzZSBmb3IKIAkjIHRoZSBmdXR1cmUuCiAJeworCQlybSAtZiAiJF9UTVBESVIv
Z2NjL2xpYmdjY192YXJzLnNoIgorCiAJCWdldHZhcnMgZ2NjL01ha2VmaWxlIFwKIAkJCUlOQ0xV
REVTIExJQjJBREQgTElCMkFEREVIIFwKIAkJCUxJQjFBU01GVU5DUyBMSUIxQVNNU1JDIFwKQEAg
LTc1LDggKzEwOSwyMCBAQAogCQkJTElCR0NDMl9DRkxBR1MgXAogCQkJU0hMSUJfTUtNQVAgU0hM
SUJfTUtNQVBfT1BUUyBcCiAJCQlTSExJQl9NQVBGSUxFUyBTSExJQl9OTV9GTEFHUyBcCisJCQlM
SUIyX1NJRElUSV9DT05WX0ZVTkNTIFwKKwkJCUZQQklUX0ZVTkNTIERQQklUX0ZVTkNTIFRQQklU
X0ZVTkNTIFwKKwkJCUdDQ19GT1JfVEFSR0VUIFwKIAkJCUVYVFJBX0hFQURFUlMgeG1fZGVmaW5l
cyBcCi0JCQl0bV9kZWZpbmVzICR7X2V4dHJhdmFyc30KKwkJCXRtX2RlZmluZXMgJHtfZXh0cmF2
YXJzfSB8IFwKKwkJd2hpbGUgcmVhZCBfbGluZTsgZG8KKwkJCWVjaG8gIiRfbGluZSIKKworCQkJ
IyBYWFggU2F2ZSBkZWZpbml0aW9ucyBpbiBsaWJnY2NfdmFycy5zaCB0b28uCisJCQkjIEdfRk9P
PWEgYiBjIC0+IEZPTz0iYSBiIGMiCisJCQllY2hvICIkX2xpbmUiIHwgc2VkIC1lICJzLF5HXyws
IiAtZSAncyxeXCguKlwpPVwoLipcKSxcMT0iXDIiLCcgXAorCQkJICAgID4+IiRfVE1QRElSL2dj
Yy9saWJnY2NfdmFycy5zaCIKKwkJZG9uZQorCQlnZXRfbGliMmZ1bmNzCiAJfSB8IHdyaXRlX21r
IGdudS9saWIvbGliJF9zdWJkaXIvYXJjaCR7X2FyY2hzdWJkaXJ9LyRNQUNISU5FX0FSQ0gubWsK
IH0KIAo=
------=_Part_462_7405956.1195453028324--