Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Nov 2011 19:58:11 +0100
From:      Robert Millan <rmh@freebsd.org>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        Kostik Belousov <kostikbel@gmail.com>, Adrian Chadd <adrian@freebsd.org>, freebsd-current@freebsd.org, freebsd-arch@freebsd.org
Subject:   Re: [PATCH] Detect GNU/kFreeBSD in user-visible kernel headers (v2)
Message-ID:  <CAOfDtXMaHCW4rfEhzfhThGn6kY0=%2B209VhqFSBq9EF03fZLBhw@mail.gmail.com>
In-Reply-To: <20111124141821.O932@besplex.bde.org>
References:  <20111123070036.GA29952@thorin> <20111124141821.O932@besplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
--bcaec5299f5938d4f804b27f9e42
Content-Type: text/plain; charset=UTF-8

Hi Bruce,

2011/11/24 Bruce Evans <brde@optusnet.com.au>:
> Now it adds lots of namespace pollution (all of <sys/param.h>, including
> all of its namespace pollution), just to get 1 new symbol defined.

Well, my initial patch (see mail with same subject modulo "v2") didn't
have this problem.  Now that __FreeBSD_kernel__ is defined, many
#ifdefs can be simplified, but maybe it's not desireable for all of
them.  At least not until we can rely on the compiler to define this
macro.

So in this particular case maybe it's better to use the other approach?

See attachment.

--bcaec5299f5938d4f804b27f9e42
Content-Type: text/x-diff; charset=US-ASCII; name="gnu-kfreebsd_headers.diff"
Content-Disposition: attachment; filename="gnu-kfreebsd_headers.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gve4ka9h0

ZGlmZiAtdXIgc3lzLm9sZC9jYW0vc2NzaS9zY3NpX2xvdy5oIHN5cy9jYW0vc2NzaS9zY3NpX2xv
dy5oCi0tLSBzeXMub2xkL2NhbS9zY3NpL3Njc2lfbG93LmgJMjAwNy0xMi0yNSAxODo1MjowMi4w
MDAwMDAwMDAgKzAxMDAKKysrIHN5cy9jYW0vc2NzaS9zY3NpX2xvdy5oCTIwMTEtMTEtMTMgMTQ6
MTI6NDEuMTIxOTA4MzgwICswMTAwCkBAIC01Myw3ICs1Myw3IEBACiAjZGVmaW5lCVNDU0lfTE9X
X0lOVEVSRkFDRV9YUwogI2VuZGlmCS8qIF9fTmV0QlNEX18gKi8KIAotI2lmZGVmCV9fRnJlZUJT
RF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVs
X18pCiAjZGVmaW5lCVNDU0lfTE9XX0lOVEVSRkFDRV9DQU0KICNkZWZpbmUJQ0FNCiAjZW5kaWYJ
LyogX19GcmVlQlNEX18gKi8KQEAgLTY0LDcgKzY0LDcgQEAKICNpbmNsdWRlIDxkZXYvaXNhL2Nj
YnF1ZS5oPgogI2VuZGlmCS8qIF9fTmV0QlNEX18gKi8KIAotI2lmZGVmCV9fRnJlZUJTRF9fCisj
aWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAj
aW5jbHVkZSA8c3lzL2RldmljZV9wb3J0Lmg+CiAjaW5jbHVkZSA8c3lzL2tkYi5oPgogI2luY2x1
ZGUgPGNhbS9jYW0uaD4KQEAgLTg1LDcgKzg1LDcgQEAKICNkZWZpbmUJU0NTSV9MT1dfQlpFUk8o
cHQsIHNpemUpCW1lbXNldCgocHQpLCAwLCAoc2l6ZSkpCiAjZW5kaWYJLyogX19OZXRCU0RfXyAq
LwogCi0jaWZkZWYJX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICN1bmRlZglNU0dfSURFTlRJRlkKICNkZWZpbmUJU0NT
SV9MT1dfREVCVUdHRVIoZGV2KQlrZGJfZW50ZXIoS0RCX1dIWV9DQU0sIGRldikKICNkZWZpbmUJ
U0NTSV9MT1dfREVMQVkobXUpCURFTEFZKChtdSkpCkBAIC0xMTEsNyArMTExLDcgQEAKIH07CiAj
ZW5kaWYJLyogX19OZXRCU0RfXyAqLwogCi0jaWZkZWYJX19GcmVlQlNEX18KKyNpZiBkZWZpbmVk
KF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHR5cGVkZWYJc3Ry
dWN0IHNjc2lfc2Vuc2VfZGF0YSBzY3NpX2xvd19vc2RlcF9zZW5zZV9kYXRhX3Q7CiAKIHN0cnVj
dCBzY3NpX2xvd19vc2RlcF9pbnRlcmZhY2UgewpkaWZmIC11ciBzeXMub2xkL2NhbS9zY3NpL3Nj
c2lfbG93X3Bpc2EuaCBzeXMvY2FtL3Njc2kvc2NzaV9sb3dfcGlzYS5oCi0tLSBzeXMub2xkL2Nh
bS9zY3NpL3Njc2lfbG93X3Bpc2EuaAkyMDA1LTAxLTA1IDIzOjM0OjM3LjAwMDAwMDAwMCArMDEw
MAorKysgc3lzL2NhbS9zY3NpL3Njc2lfbG93X3Bpc2EuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEy
MTkwODM4MCArMDEwMApAQCAtNDAsNyArNDAsNyBAQAogaW50IHNjc2lfbG93X25vdGlmeV9waXNh
KHBpc2FfZGV2aWNlX2hhbmRsZV90LCBwaXNhX2V2ZW50X3QpOwogI2VuZGlmCS8qIF9fTmV0QlNE
X18gKi8KIAotI2lmZGVmCV9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwg
ZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBpbnQgc2NzaV9sb3dfYWN0aXZhdGVfcGlzYShz
dHJ1Y3Qgc2NzaV9sb3dfc29mdGMgKiwgaW50KTsKIGludCBzY3NpX2xvd19kZWFjdGl2YXRlX3Bp
c2Eoc3RydWN0IHNjc2lfbG93X3NvZnRjICopOwogI2VuZGlmCS8qIF9fRnJlZUJTRF9fICovCmRp
ZmYgLXVyIHN5cy5vbGQvY29udHJpYi9hbHRxL2FsdHEvYWx0cV92YXIuaCBzeXMvY29udHJpYi9h
bHRxL2FsdHEvYWx0cV92YXIuaAotLS0gc3lzLm9sZC9jb250cmliL2FsdHEvYWx0cS9hbHRxX3Zh
ci5oCTIwMTEtMDMtMTAgMTk6NDk6MTUuMDAwMDAwMDAwICswMTAwCisrKyBzeXMvY29udHJpYi9h
bHRxL2FsdHEvYWx0cV92YXIuaAkyMDExLTExLTEzIDE0OjEyOjQxLjExODkwNzM0MSArMDEwMApA
QCAtMjAxLDcgKzIwMSw3IEBACiAjZGVmaW5lCUNBTExPVVRfU1RPUChjKQkJdW50aW1lb3V0KChj
KS0+Y19mdW5jLChjKS0+Y19hcmcpCiAjZGVmaW5lCUNBTExPVVRfSU5JVElBTElaRVIJeyBOVUxM
LCBOVUxMIH0KICNlbmRpZgotI2lmICFkZWZpbmVkKF9fRnJlZUJTRF9fKQorI2lmICFkZWZpbmVk
KF9fRnJlZUJTRF9fKSAmJiAhZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiB0eXBlZGVmIHZv
aWQgKHRpbWVvdXRfdCkodm9pZCAqKTsKICNlbmRpZgogCmRpZmYgLXVyIHN5cy5vbGQvY29udHJp
Yi9hbHRxL2FsdHEvaWZfYWx0cS5oIHN5cy9jb250cmliL2FsdHEvYWx0cS9pZl9hbHRxLmgKLS0t
IHN5cy5vbGQvY29udHJpYi9hbHRxL2FsdHEvaWZfYWx0cS5oCTIwMTEtMDMtMTAgMTk6NDk6MTUu
MDAwMDAwMDAwICswMTAwCisrKyBzeXMvY29udHJpYi9hbHRxL2FsdHEvaWZfYWx0cS5oCTIwMTEt
MTEtMTMgMTQ6MTI6NDEuMTE5OTA3MTI4ICswMTAwCkBAIC0yOSw3ICsyOSw3IEBACiAjaWZuZGVm
IF9BTFRRX0lGX0FMVFFfSF8KICNkZWZpbmUJX0FMVFFfSUZfQUxUUV9IXwogCi0jaWZkZWYgX19G
cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r
ZXJuZWxfXykKICNpbmNsdWRlIDxzeXMvbG9jay5oPgkJLyogWFhYICovCiAjaW5jbHVkZSA8c3lz
L211dGV4Lmg+CQkvKiBYWFggKi8KICNpbmNsdWRlIDxzeXMvZXZlbnQuaD4JCS8qIFhYWCAqLwpA
QCAtNTEsNyArNTEsNyBAQAogCWludAlpZnFfbGVuOwogCWludAlpZnFfbWF4bGVuOwogCWludAlp
ZnFfZHJvcHM7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8
fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAlzdHJ1Y3QJbXR4IGlmcV9tdHg7CiAjZW5k
aWYKIApkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L2lmX3BmbG9nLmggc3lzL2NvbnRy
aWIvcGYvbmV0L2lmX3BmbG9nLmgKLS0tIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvaWZfcGZsb2cu
aAkyMDExLTA2LTI4IDEzOjU3OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2NvbnRyaWIvcGYv
bmV0L2lmX3BmbG9nLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzA5MDY0NjkgKzAxMDAKQEAgLTMw
LDcgKzMwLDcgQEAKICNkZWZpbmUJUEZMT0dJRlNfTUFYCTE2CiAKIHN0cnVjdCBwZmxvZ19zb2Z0
YyB7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAlzdHJ1Y3QgaWZuZXQJCSpzY19pZnA7CS8qIHRoZSBp
bnRlcmZhY2UgcG9pbnRlciAqLwogI2Vsc2UKIAlzdHJ1Y3QgaWZuZXQJCXNjX2lmOwkJLyogdGhl
IGludGVyZmFjZSAqLwpAQCAtNzQsNyArNzQsNyBAQAogI2RlZmluZQlPTERfUEZMT0dfSERSTEVO
CXNpemVvZihzdHJ1Y3Qgb2xkX3BmbG9naGRyKQogCiAjaWZkZWYgX0tFUk5FTAotI2lmZGVmIF9f
RnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rf
a2VybmVsX18pCiBzdHJ1Y3QgcGZfcnVsZTsKIHN0cnVjdCBwZl9ydWxlc2V0Owogc3RydWN0IHBm
aV9raWY7CmRpZmYgLXVyIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvaWZfcGZsb3cuaCBzeXMvY29u
dHJpYi9wZi9uZXQvaWZfcGZsb3cuaAotLS0gc3lzLm9sZC9jb250cmliL3BmL25ldC9pZl9wZmxv
dy5oCTIwMTEtMDYtMjggMTM6NTc6MjUuMDAwMDAwMDAwICswMjAwCisrKyBzeXMvY29udHJpYi9w
Zi9uZXQvaWZfcGZsb3cuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEzMDkwNjQ2OSArMDEwMApAQCAt
NjYsNyArNjYsNyBAQAogCXVuc2lnbmVkIGludAkJIHNjX21heGNvdW50OwogCXVfaW50NjRfdAkJ
IHNjX2djb3VudGVyOwogCXN0cnVjdCBpcF9tb3B0aW9ucwkgc2NfaW1vOwotI2lmZGVmIF9fRnJl
ZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2Vy
bmVsX18pCiAJc3RydWN0IGNhbGxvdXQJCSBzY190bW87CiAjZWxzZQogCXN0cnVjdCB0aW1lb3V0
CQkgc2NfdG1vOwpkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L2lmX3Bmc3luYy5oIHN5
cy9jb250cmliL3BmL25ldC9pZl9wZnN5bmMuaAotLS0gc3lzLm9sZC9jb250cmliL3BmL25ldC9p
Zl9wZnN5bmMuaAkyMDExLTA2LTI4IDEzOjU3OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2Nv
bnRyaWIvcGYvbmV0L2lmX3Bmc3luYy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTMxOTA2MjU3ICsw
MTAwCkBAIC0yNjgsNyArMjY4LDcgQEAKIAlpbnQJCSBwZnN5bmNyX2F1dGhsZXZlbDsKIH07CiAK
LSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQo
X19GcmVlQlNEX2tlcm5lbF9fKQogI2RlZmluZQlTSU9DU0VUUEZTWU5DICAgX0lPVygnaScsIDI0
Nywgc3RydWN0IGlmcmVxKQogI2RlZmluZQlTSU9DR0VUUEZTWU5DICAgX0lPV1IoJ2knLCAyNDgs
IHN0cnVjdCBpZnJlcSkKICNlbmRpZgpAQCAtMjg4LDcgKzI4OCw3IEBACiAjZGVmaW5lCVBGU1lO
Q19TX0RFRkVSCTB4ZmUKICNkZWZpbmUJUEZTWU5DX1NfTk9ORQkweGZmCiAKLSNpZmRlZiBfX0Zy
ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl
cm5lbF9fKQogdm9pZAkJCXBmc3luY19pbnB1dChzdHJ1Y3QgbWJ1ZiAqLCBfX3VudXNlZCBpbnQp
OwogI2Vsc2UKIHZvaWQJCQlwZnN5bmNfaW5wdXQoc3RydWN0IG1idWYgKiwgLi4uKTsKQEAgLTMw
MCw3ICszMDAsNyBAQAogI2RlZmluZQlQRlNZTkNfU0lfQ0tTVU0JCTB4MDIKICNkZWZpbmUJUEZT
WU5DX1NJX0FDSwkJMHgwNAogaW50CQkJcGZzeW5jX3N0YXRlX2ltcG9ydChzdHJ1Y3QgcGZzeW5j
X3N0YXRlICosIHVfaW50OF90KTsKLSNpZm5kZWYgX19GcmVlQlNEX18KKyNpZiAhZGVmaW5lZChf
X0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogdm9pZAkJCXBmc3lu
Y19zdGF0ZV9leHBvcnQoc3RydWN0IHBmc3luY19zdGF0ZSAqLAogCQkJICAgIHN0cnVjdCBwZl9z
dGF0ZSAqKTsKICNlbmRpZgpkaWZmIC11ciBzeXMub2xkL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgg
c3lzL2NvbnRyaWIvcGYvbmV0L3BmdmFyLmgKLS0tIHN5cy5vbGQvY29udHJpYi9wZi9uZXQvcGZ2
YXIuaAkyMDExLTEwLTIzIDEyOjA1OjI1LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2NvbnRyaWIv
cGYvbmV0L3BmdmFyLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzQ5MDY3MzggKzAxMDAKQEAgLTM3
LDcgKzM3LDcgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvcXVldWUu
aD4KICNpbmNsdWRlIDxzeXMvdHJlZS5oPgotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5l
ZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAjaW5jbHVkZSA8
c3lzL2xvY2suaD4KICNpbmNsdWRlIDxzeXMvc3guaD4KICNlbHNlCkBAIC00Niw3ICs0Niw3IEBA
CiAKICNpbmNsdWRlIDxuZXQvcmFkaXguaD4KICNpbmNsdWRlIDxuZXQvcm91dGUuaD4KLSNpZmRl
ZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVl
QlNEX2tlcm5lbF9fKQogI2luY2x1ZGUgPG5ldC9pZl9jbG9uZS5oPgogI2luY2x1ZGUgPG5ldC9w
Zl9tdGFnLmg+CiAjaW5jbHVkZSA8dm0vdW1hLmg+CkBAIC01NCw3ICs1NCw3IEBACiAjaW5jbHVk
ZSA8bmV0aW5ldC9pcF9pcHNwLmg+CiAjZW5kaWYKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYg
ZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAjaW5j
bHVkZSA8bmV0aW5ldC9pbi5oPgogI2VuZGlmCiAKQEAgLTYyLDcgKzYyLDcgQEAKIAogc3RydWN0
IGlwOwogc3RydWN0IGlwNl9oZHI7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9f
RnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHN0cnVjdCBpbnBjYjsK
ICNlbmRpZgogCkBAIC0xNzMsNyArMTczLDcgQEAKIAkJfQkJCSBhOwogCQljaGFyCQkJIGlmbmFt
ZVtJRk5BTVNJWl07CiAJCWNoYXIJCQkgdGJsbmFtZVtQRl9UQUJMRV9OQU1FX1NJWkVdOwotI2lm
ZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0Zy
ZWVCU0Rfa2VybmVsX18pCiAjZGVmaW5lCVJUTEFCRUxfTEVOCTMyCiAjZW5kaWYKIAkJY2hhcgkJ
CSBydGxhYmVsbmFtZVtSVExBQkVMX0xFTl07CkBAIC0yMTEsNyArMjExLDcgQEAKICAqIEFkZHJl
c3MgbWFuaXB1bGF0aW9uIG1hY3JvcwogICovCiAKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRl
ZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogI2RlZmlu
ZQlzcGxzb2Z0bmV0KCkJc3BsbmV0KCkKIAogI2RlZmluZQlIVE9OTCh4KQkoeCkgPSBodG9ubCgo
X191aW50MzJfdCkoeCkpCkBAIC0yMzYsNyArMjM2LDcgQEAKIAlpZiAodmFyKQkJCQkJXAogCQl1
bWFfemRlc3Ryb3kodmFyKQogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJl
ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIGV4dGVybiBzdHJ1Y3QgbXR4
IHBmX3Rhc2tfbXR4OwogCiAjZGVmaW5lCVBGX0xPQ0tfQVNTRVJUKCkJbXR4X2Fzc2VydCgmcGZf
dGFza19tdHgsIE1BX09XTkVEKQpAQCAtODMzLDcgKzgzMyw3IEBACiAJdV9pbnQ2NF90CQkgaWQ7
CiAJdV9pbnQzMl90CQkgY3JlYXRvcmlkOwogCXVfaW50OF90CQkgZGlyZWN0aW9uOwotI2lmZGVm
IF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVC
U0Rfa2VybmVsX18pCiAJdV9pbnQ4X3QJCSBwYWRbMl07CiAJdV9pbnQ4X3QJCSBsb2NhbF9mbGFn
czsKICNkZWZpbmUJUEZTVEFURV9FWFBJUklORyAweDAxCkBAIC05MjMsNyArOTIzLDcgQEAKIAlz
YV9mYW1pbHlfdAkgYWY7CiAJdV9pbnQ4X3QJIHByb3RvOwogCXVfaW50OF90CSBkaXJlY3Rpb247
Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk
KF9fRnJlZUJTRF9rZXJuZWxfXykKIAl1X2ludDhfdAkgbG9jYWxfZmxhZ3M7CiAjZGVmaW5lCVBG
U1RBVEVfRVhQSVJJTkcJCTB4MDEKIAl1X2ludDhfdAkgcGFkOwpAQCAtOTM1LDcgKzkzNSw3IEBA
CiAJdV9pbnQ4X3QJIHVwZGF0ZXM7CiB9IF9fcGFja2VkOwogCi0jaWZkZWYgX19GcmVlQlNEX18K
KyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK
ICNpZmRlZiBfS0VSTkVMCiAvKiBwZnN5bmMgKi8KIHR5cGVkZWYgaW50CQlwZnN5bmNfc3RhdGVf
aW1wb3J0X3Qoc3RydWN0IHBmc3luY19zdGF0ZSAqLCB1X2ludDhfdCk7CkBAIC0xMjE1LDcgKzEy
MTUsNyBAQAogUkJfSEVBRChwZmlfaWZoZWFkLCBwZmlfa2lmKTsKIAogLyogc3RhdGUgdGFibGVz
ICovCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpZmRlZiBfS0VSTkVMCiBWTkVUX0RFQ0xBUkUoc3Ry
dWN0IHBmX3N0YXRlX3RyZWUsCSBwZl9zdGF0ZXRibCk7CiAjZGVmaW5lCVZfcGZfc3RhdGV0YmwJ
CQkgVk5FVChwZl9zdGF0ZXRibCkKQEAgLTEyNzcsNyArMTI3Nyw3IEBACiAJc3RydWN0IHBmX2Fk
ZHIJKmRzdDsJCS8qIGRzdCBhZGRyZXNzICovCiAJdV9pbnQxNl90ICpzcG9ydDsKIAl1X2ludDE2
X3QgKmRwb3J0OwotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykg
fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiAJc3RydWN0IHBmX210YWcJKnBmX210YWc7
CiAjZW5kaWYKIApAQCAtMTQwMyw3ICsxNDAzLDcgQEAKIAkJCSooYSkgPSAoeCk7IFwKIAl9IHdo
aWxlICgwKQogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8
fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNkZWZpbmUgUkVBU09OX1NFVChhLCB4KSBc
CiAJZG8geyBcCiAJCWlmICgoYSkgIT0gTlVMTCkgXApAQCAtMTQ4OCw3ICsxNDg4LDcgQEAKIAl1
X2ludDMyX3QJCSBwYXJlbnRfcWlkOwkvKiBwYXJlbnQgcXVldWUgaWQgKi8KIAl1X2ludDMyX3QJ
CSBiYW5kd2lkdGg7CS8qIHF1ZXVlIGJhbmR3aWR0aCAqLwogCXVfaW50OF90CQkgcHJpb3JpdHk7
CS8qIHByaW9yaXR5ICovCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT
RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIAl1X2ludDhfdAkJIGxvY2FsX2Zs
YWdzOwkvKiBkeW5hbWljIGludGVyZmFjZSAqLwogI2RlZmluZQlQRkFMVFFfRkxBR19JRl9SRU1P
VkVECQkweDAxCiAjZW5kaWYKQEAgLTE3NjgsNyArMTc2OCw3IEBACiAjZGVmaW5lCURJT0NTRVRJ
RkZMQUcJX0lPV1IoJ0QnLCA4OSwgc3RydWN0IHBmaW9jX2lmYWNlKQogI2RlZmluZQlESU9DQ0xS
SUZGTEFHCV9JT1dSKCdEJywgOTAsIHN0cnVjdCBwZmlvY19pZmFjZSkKICNkZWZpbmUJRElPQ0tJ
TExTUkNOT0RFUwlfSU9XUignRCcsIDkxLCBzdHJ1Y3QgcGZpb2Nfc3JjX25vZGVfa2lsbCkKLSNp
ZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19G
cmVlQlNEX2tlcm5lbF9fKQogc3RydWN0IHBmX2lmc3BlZWQgewogCWNoYXIJCQlpZm5hbWVbSUZO
QU1TSVpdOwogCXVfaW50MzJfdAkJYmF1ZHJhdGU7CkBAIC0xNzc5LDcgKzE3NzksNyBAQAogI2lm
ZGVmIF9LRVJORUwKIFJCX0hFQUQocGZfc3JjX3RyZWUsIHBmX3NyY19ub2RlKTsKIFJCX1BST1RP
VFlQRShwZl9zcmNfdHJlZSwgcGZfc3JjX25vZGUsIGVudHJ5LCBwZl9zcmNfY29tcGFyZSk7Ci0j
aWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9f
RnJlZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgcGZfc3JjX3RyZWUsCSB0cmVl
X3NyY190cmFja2luZyk7CiAjZGVmaW5lCVZfdHJlZV9zcmNfdHJhY2tpbmcJCSBWTkVUKHRyZWVf
c3JjX3RyYWNraW5nKQogI2Vsc2UKQEAgLTE3ODksNyArMTc4OSw3IEBACiBSQl9IRUFEKHBmX3N0
YXRlX3RyZWVfaWQsIHBmX3N0YXRlKTsKIFJCX1BST1RPVFlQRShwZl9zdGF0ZV90cmVlX2lkLCBw
Zl9zdGF0ZSwKICAgICBlbnRyeV9pZCwgcGZfc3RhdGVfY29tcGFyZV9pZCk7Ci0jaWZkZWYgX19G
cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r
ZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgcGZfc3RhdGVfdHJlZV9pZCwJIHRyZWVfaWQp
OwogI2RlZmluZQlWX3RyZWVfaWQJCQkgVk5FVCh0cmVlX2lkKQogVk5FVF9ERUNMQVJFKHN0cnVj
dCBwZl9zdGF0ZV9xdWV1ZSwJIHN0YXRlX2xpc3QpOwpAQCAtMTgwMCwxNCArMTgwMCwxNCBAQAog
I2VuZGlmCiAKIFRBSUxRX0hFQUQocGZfcG9vbHF1ZXVlLCBwZl9wb29sKTsKLSNpZmRlZiBfX0Zy
ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl
cm5lbF9fKQogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9wb29scXVldWUsCSBwZl9wb29sc1syXSk7
CiAjZGVmaW5lCVZfcGZfcG9vbHMJCQkgVk5FVChwZl9wb29scykKICNlbHNlCiBleHRlcm4gc3Ry
dWN0IHBmX3Bvb2xxdWV1ZQkJICBwZl9wb29sc1syXTsKICNlbmRpZgogVEFJTFFfSEVBRChwZl9h
bHRxcXVldWUsIHBmX2FsdHEpOwotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0Zy
ZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3Ry
dWN0IHBmX2FsdHFxdWV1ZSwJIHBmX2FsdHFzWzJdKTsKICNkZWZpbmUJVl9wZl9hbHRxcwkJCSBW
TkVUKHBmX2FsdHFzKQogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9wYWxpc3QsCQkgcGZfcGFidWYp
OwpAQCAtMTgxNyw3ICsxODE3LDcgQEAKIGV4dGVybiBzdHJ1Y3QgcGZfcGFsaXN0CQkJICBwZl9w
YWJ1ZjsKICNlbmRpZgogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT
RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRSh1X2ludDMy
X3QsCQkJIHRpY2tldF9hbHRxc19hY3RpdmUpOwogI2RlZmluZQlWX3RpY2tldF9hbHRxc19hY3Rp
dmUJCSBWTkVUKHRpY2tldF9hbHRxc19hY3RpdmUpCiBWTkVUX0RFQ0xBUkUodV9pbnQzMl90LAkJ
CSB0aWNrZXRfYWx0cXNfaW5hY3RpdmUpOwpAQCAtMTg0OSw3ICsxODQ5LDcgQEAKIGV4dGVybiB2
b2lkCQkJIHBmX3RibGFkZHJfcmVtb3ZlKHN0cnVjdCBwZl9hZGRyX3dyYXAgKik7CiBleHRlcm4g
dm9pZAkJCSBwZl90YmxhZGRyX2NvcHlvdXQoc3RydWN0IHBmX2FkZHJfd3JhcCAqKTsKIGV4dGVy
biB2b2lkCQkJIHBmX2NhbGNfc2tpcF9zdGVwcyhzdHJ1Y3QgcGZfcnVsZXF1ZXVlICopOwotI2lm
ZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0Zy
ZWVCU0Rfa2VybmVsX18pCiAjaWZkZWYgQUxUUQogZXh0ZXJuCXZvaWQJCQkgcGZfYWx0cV9pZm5l
dF9ldmVudChzdHJ1Y3QgaWZuZXQgKiwgaW50KTsKICNlbmRpZgpAQCAtMTg4Niw3ICsxODg2LDcg
QEAKIGV4dGVybiBzdHJ1Y3QgcG9vbAkJIHBmX3N0YXRlX3NjcnViX3BsOwogI2VuZGlmCiBleHRl
cm4gdm9pZAkJCSBwZl9wdXJnZV90aHJlYWQodm9pZCAqKTsKLSNpZmRlZiBfX0ZyZWVCU0RfXwor
I2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQog
ZXh0ZXJuIGludAkJCSBwZl9wdXJnZV9leHBpcmVkX3NyY19ub2RlcyhpbnQpOwogZXh0ZXJuIGlu
dAkJCSBwZl9wdXJnZV9leHBpcmVkX3N0YXRlcyh1X2ludDMyX3QgLCBpbnQpOwogI2Vsc2UKQEAg
LTE5MTEsNyArMTkxMSw3IEBACiBleHRlcm4gdV9pbnQxNl90CQkgcGZfY2tzdW1fZml4dXAodV9p
bnQxNl90LCB1X2ludDE2X3QsIHVfaW50MTZfdCwKIAkJCQkgICAgdV9pbnQ4X3QpOwogCi0jaWZk
ZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJl
ZUJTRF9rZXJuZWxfXykKIFZORVRfREVDTEFSRShzdHJ1Y3QgaWZuZXQgKiwJCSBzeW5jX2lmcCk7
CiAjZGVmaW5lCVZfc3luY19pZnAJCSAJIFZORVQoc3luY19pZnApOwogVk5FVF9ERUNMQVJFKHN0
cnVjdCBwZl9ydWxlLAkJIHBmX2RlZmF1bHRfcnVsZSk7CkBAIC0xOTI0LDEyICsxOTI0LDEyIEBA
CiAJCQkJICAgIHVfaW50OF90KTsKIHZvaWQJCQkJIHBmX3JtX3J1bGUoc3RydWN0IHBmX3J1bGVx
dWV1ZSAqLAogCQkJCSAgICBzdHJ1Y3QgcGZfcnVsZSAqKTsKLSNpZm5kZWYgX19GcmVlQlNEX18K
KyNpZiAhZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgIWRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9f
KQogc3RydWN0IHBmX2RpdmVydAkJKnBmX2ZpbmRfZGl2ZXJ0KHN0cnVjdCBtYnVmICopOwogI2Vu
ZGlmCiAKICNpZmRlZiBJTkVUCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJl
ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIGludAlwZl90ZXN0KGludCwg
c3RydWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICoqLCBzdHJ1Y3QgZXRoZXJfaGVhZGVyICosCiAg
ICAgc3RydWN0IGlucGNiICopOwogI2Vsc2UKQEAgLTE5MzgsNyArMTkzOCw3IEBACiAjZW5kaWYg
LyogSU5FVCAqLwogCiAjaWZkZWYgSU5FVDYKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmlu
ZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50CXBmX3Rl
c3Q2KGludCwgc3RydWN0IGlmbmV0ICosIHN0cnVjdCBtYnVmICoqLCBzdHJ1Y3QgZXRoZXJfaGVh
ZGVyICosCiAgICAgc3RydWN0IGlucGNiICopOwogI2Vsc2UKQEAgLTE5NDksNyArMTk0OSw3IEBA
CiB2b2lkCXBmX2FkZHJfaW5jKHN0cnVjdCBwZl9hZGRyICosIHNhX2ZhbWlseV90KTsKICNlbmRp
ZiAvKiBJTkVUNiAqLwogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJT
RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHVfaW50MzJfdAlwZl9uZXdfaXNu
KHN0cnVjdCBwZl9zdGF0ZSAqKTsKICNlbmRpZgogdm9pZCAgICpwZl9wdWxsX2hkcihzdHJ1Y3Qg
bWJ1ZiAqLCBpbnQsIHZvaWQgKiwgaW50LCB1X3Nob3J0ICosIHVfc2hvcnQgKiwKQEAgLTE5ODYs
NyArMTk4Niw3IEBACiB2b2lkCXBmX3B1cmdlX2V4cGlyZWRfZnJhZ21lbnRzKHZvaWQpOwogaW50
CXBmX3JvdXRhYmxlKHN0cnVjdCBwZl9hZGRyICphZGRyLCBzYV9mYW1pbHlfdCBhZiwgc3RydWN0
IHBmaV9raWYgKik7CiBpbnQJcGZfcnRsYWJlbF9tYXRjaChzdHJ1Y3QgcGZfYWRkciAqLCBzYV9m
YW1pbHlfdCwgc3RydWN0IHBmX2FkZHJfd3JhcCAqKTsKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lm
IGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50
CXBmX3NvY2tldF9sb29rdXAoaW50LCBzdHJ1Y3QgcGZfcGRlc2MgKiwgIHN0cnVjdCBpbnBjYiAq
KTsKICNlbHNlCiBpbnQJcGZfc29ja2V0X2xvb2t1cChpbnQsIHN0cnVjdCBwZl9wZGVzYyAqKTsK
QEAgLTIwMzEsNyArMjAzMSw3IEBACiBpbnQJcGZyX2luYV9kZWZpbmUoc3RydWN0IHBmcl90YWJs
ZSAqLCBzdHJ1Y3QgcGZyX2FkZHIgKiwgaW50LCBpbnQgKiwKIAkgICAgaW50ICosIHVfaW50MzJf
dCwgaW50KTsKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykg
fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmaV9r
aWYgKiwJCSBwZmlfYWxsKTsKICNkZWZpbmUJVl9wZmlfYWxsCSAJCSBWTkVUKHBmaV9hbGwpCiAj
ZWxzZQpAQCAtMjAzOSw3ICsyMDM5LDcgQEAKICNlbmRpZgogCiB2b2lkCQkgcGZpX2luaXRpYWxp
emUodm9pZCk7Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8
fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHZvaWQJCSBwZmlfY2xlYW51cCh2b2lkKTsK
ICNlbmRpZgogc3RydWN0IHBmaV9raWYJKnBmaV9raWZfZ2V0KGNvbnN0IGNoYXIgKik7CkBAIC0y
MDYxLDcgKzIwNjEsNyBAQAogaW50CQkgcGZpX3NldF9mbGFncyhjb25zdCBjaGFyICosIGludCk7
CiBpbnQJCSBwZmlfY2xlYXJfZmxhZ3MoY29uc3QgY2hhciAqLCBpbnQpOwogCi0jaWZkZWYgX19G
cmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9r
ZXJuZWxfXykKIGludAkJIHBmX21hdGNoX3RhZyhzdHJ1Y3QgbWJ1ZiAqLCBzdHJ1Y3QgcGZfcnVs
ZSAqLCBpbnQgKiwKIAkJICAgIHN0cnVjdCBwZl9tdGFnICopOwogI2Vsc2UKQEAgLTIwNzEsNyAr
MjA3MSw3IEBACiB2b2lkCQkgcGZfdGFnMnRhZ25hbWUodV9pbnQxNl90LCBjaGFyICopOwogdm9p
ZAkJIHBmX3RhZ19yZWYodV9pbnQxNl90KTsKIHZvaWQJCSBwZl90YWdfdW5yZWYodV9pbnQxNl90
KTsKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmlu
ZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogaW50CQkgcGZfdGFnX3BhY2tldChzdHJ1Y3QgbWJ1ZiAq
LCBpbnQsIGludCwgc3RydWN0IHBmX210YWcgKik7CiAjZWxzZQogaW50CQkgcGZfdGFnX3BhY2tl
dChzdHJ1Y3QgbWJ1ZiAqLCBpbnQsIGludCk7CkBAIC0yMDgwLDE0ICsyMDgwLDE0IEBACiB2b2lk
CQkgcGZfcWlkMnFuYW1lKHVfaW50MzJfdCwgY2hhciAqKTsKIHZvaWQJCSBwZl9xaWRfdW5yZWYo
dV9pbnQzMl90KTsKIAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0Rf
XykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBm
X3N0YXR1cywJCSBwZl9zdGF0dXMpOwogI2RlZmluZQlWX3BmX3N0YXR1cwkJCSBWTkVUKHBmX3N0
YXR1cykKICNlbHNlCiBleHRlcm4gc3RydWN0IHBmX3N0YXR1cwlwZl9zdGF0dXM7CiAjZW5kaWYK
IAotI2lmZGVmIF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5l
ZChfX0ZyZWVCU0Rfa2VybmVsX18pCiBWTkVUX0RFQ0xBUkUodW1hX3pvbmVfdCwJCSBwZl9mcmVu
dF9wbCk7CiAjZGVmaW5lCVZfcGZfZnJlbnRfcGwJCQkgVk5FVChwZl9mcmVudF9wbCkKIFZORVRf
REVDTEFSRSh1bWFfem9uZV90LAkJIHBmX2ZyYWdfcGwpOwpAQCAtMjEwMywxNCArMjEwMywxNCBA
QAogCXZvaWQJCSpwcDsKIAl1bnNpZ25lZAkgbGltaXQ7CiB9OwotI2lmZGVmIF9fRnJlZUJTRF9f
CisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18p
CiBWTkVUX0RFQ0xBUkUoc3RydWN0IHBmX3Bvb2xfbGltaXQsCQkgcGZfcG9vbF9saW1pdHNbUEZf
TElNSVRfTUFYXSk7CiAjZGVmaW5lCVZfcGZfcG9vbF9saW1pdHMJCQkgVk5FVChwZl9wb29sX2xp
bWl0cykKICNlbHNlCiBleHRlcm4gc3RydWN0IHBmX3Bvb2xfbGltaXQJcGZfcG9vbF9saW1pdHNb
UEZfTElNSVRfTUFYXTsKICNlbmRpZgogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVk
KF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIHN0cnVjdCBwZl9m
cmVudCB7CiAJTElTVF9FTlRSWShwZl9mcmVudCkgZnJfbmV4dDsKIAlzdHJ1Y3QgaXAgKmZyX2lw
OwpAQCAtMjE0NCw3ICsyMTQ0LDcgQEAKIAogI2VuZGlmIC8qIF9LRVJORUwgKi8KIAotI2lmZGVm
IF9fRnJlZUJTRF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVC
U0Rfa2VybmVsX18pCiAjaWZkZWYgX0tFUk5FTAogVk5FVF9ERUNMQVJFKHN0cnVjdCBwZl9hbmNo
b3JfZ2xvYmFsLAkJIHBmX2FuY2hvcnMpOwogI2RlZmluZQlWX3BmX2FuY2hvcnMJCQkJIFZORVQo
cGZfYW5jaG9ycykKQEAgLTIxNzIsNyArMjE3Miw3IEBACiBzdHJ1Y3QgcGZfcnVsZXNldAkqcGZf
ZmluZF9vcl9jcmVhdGVfcnVsZXNldChjb25zdCBjaGFyICopOwogdm9pZAkJCSBwZl9yc19pbml0
aWFsaXplKHZvaWQpOwogCi0jaWZuZGVmIF9fRnJlZUJTRF9fCisjaWYgIWRlZmluZWQoX19GcmVl
QlNEX18pICYmICFkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpZmRlZiBfS0VSTkVMCiBp
bnQJCQkgcGZfYW5jaG9yX2NvcHlvdXQoY29uc3Qgc3RydWN0IHBmX3J1bGVzZXQgKiwKIAkJCSAg
ICBjb25zdCBzdHJ1Y3QgcGZfcnVsZSAqLCBzdHJ1Y3QgcGZpb2NfcnVsZSAqKTsKQEAgLTIxOTMs
NyArMjE5Myw3IEBACiAJICAgIGNvbnN0IHN0cnVjdCB0Y3BoZHIgKik7CiB2b2lkCXBmX29zZnBf
Zmx1c2godm9pZCk7CiBpbnQJcGZfb3NmcF9nZXQoc3RydWN0IHBmX29zZnBfaW9jdGwgKik7Ci0j
aWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9f
RnJlZUJTRF9rZXJuZWxfXykKIGludAlwZl9vc2ZwX2luaXRpYWxpemUodm9pZCk7CiB2b2lkCXBm
X29zZnBfY2xlYW51cCh2b2lkKTsKICNlbHNlCmRpZmYgLXVyIHN5cy5vbGQvZGV2L2ZpcmV3aXJl
L2ZpcmV3aXJlcmVnLmggc3lzL2Rldi9maXJld2lyZS9maXJld2lyZXJlZy5oCi0tLSBzeXMub2xk
L2Rldi9maXJld2lyZS9maXJld2lyZXJlZy5oCTIwMDctMDctMjAgMDU6NDI6NTcuMDAwMDAwMDAw
ICswMjAwCisrKyBzeXMvZGV2L2ZpcmV3aXJlL2ZpcmV3aXJlcmVnLmgJMjAxMS0xMS0xMyAxNDox
Mjo0MS4xMjI5MDc2MDkgKzAxMDAKQEAgLTc1LDcgKzc1LDcgQEAKIH07CiAKIHN0cnVjdCBmaXJl
d2lyZV9zb2Z0YyB7Ci0jaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgX19GcmVlQlNEX3ZlcnNp
b24gPj0gNTAwMDAwCisjaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVl
QlNEX2tlcm5lbF9fKSkgJiYgX19GcmVlQlNEX3ZlcnNpb24gPj0gNTAwMDAwCiAJc3RydWN0IGNk
ZXYgKmRldjsKICNlbmRpZgogCXN0cnVjdCBmaXJld2lyZV9jb21tICpmYzsKZGlmZiAtdXIgc3lz
Lm9sZC9kZXYvbG1jL2lmX2xtYy5oIHN5cy9kZXYvbG1jL2lmX2xtYy5oCi0tLSBzeXMub2xkL2Rl
di9sbWMvaWZfbG1jLmgJMjAwOS0xMS0xOSAxOToyMTo1MS4wMDAwMDAwMDAgKzAxMDAKKysrIHN5
cy9kZXYvbG1jL2lmX2xtYy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI0OTA4MzAyICswMTAwCkBA
IC05ODQsNyArOTg0LDcgQEAKICNlbmRpZgogICB1X2ludDMyX3QgYWRkcmVzczE7CQkvKiBidWZm
ZXIxIGJ1cyBhZGRyZXNzICovCiAgIHVfaW50MzJfdCBhZGRyZXNzMjsJCS8qIGJ1ZmZlcjIgYnVz
IGFkZHJlc3MgKi8KLSNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX05ldEJT
RF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSkKKyNpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykg
fHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykgfHwg
ZGVmaW5lZChfX09wZW5CU0RfXykpCiAgIGJ1c19kbWFtYXBfdCBtYXA7CQkvKiBidXMgZG1hbWFw
IGZvciB0aGlzIGRlc2NyaXB0b3IgKi8KICMgZGVmaW5lIFRMUF9CVVNfRFNMX1ZBTAkoc2l6ZW9m
KGJ1c19kbWFtYXBfdCkgJiBUTFBfQlVTX0RTTCkKICNlbHNlCkBAIC0xMDM1LDcgKzEwMzUsNyBA
QAogI2VsaWYgQlNECiAgIHN0cnVjdCBtYnVmICpoZWFkOwkJLyogdGFpbC1xdWV1ZSBvZiBtYnVm
cyAqLwogICBzdHJ1Y3QgbWJ1ZiAqdGFpbDsKLSMgaWYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8
IGRlZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykpCisjIGlmIChkZWZp
bmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5l
ZChfX05ldEJTRF9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9fKSkKICAgYnVzX2RtYV90YWdfdCB0
YWc7CQkvKiBidXNfZG1hIHRhZyBmb3IgZGVzYyBhcnJheSAqLwogICBidXNfZG1hbWFwX3QgbWFw
OwkJLyogYnVzX2RtYSBtYXAgZm9yIGRlc2MgYXJyYXkgKi8KICAgYnVzX2RtYV9zZWdtZW50X3Qg
c2Vnc1syXTsJLyogYnVzX2RtYW1hcF9sb2FkKCkgb3IgYnVzX2RtYW1lbV9hbGxvYygpICovCkBA
IC0xMDY4LDcgKzEwNjgsNyBAQAogICovCiAjZGVmaW5lIElPUkVGX0NTUiAxICAvKiBhY2Nlc3Mg
VHVsaXAgQ1NScyB3aXRoIElPIGN5Y2xlcyBpZiAxICovCiAKLSNpZiAoZGVmaW5lZChfX0ZyZWVC
U0RfXykgJiYgZGVmaW5lZChERVZJQ0VfUE9MTElORykpCisjaWYgKChkZWZpbmVkKF9fRnJlZUJT
RF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoREVWSUNFX1BP
TExJTkcpKQogIyBkZWZpbmUgREVWX1BPTEwgMQogI2Vsc2UKICMgZGVmaW5lIERFVl9QT0xMIDAK
QEAgLTExNTEsNyArMTE1MSw3IEBACiAjIGVuZGlmCiAjZW5kaWYKIAotI2lmZGVmIF9fRnJlZUJT
RF9fCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVs
X18pCiAgIHN0cnVjdCBjYWxsb3V0IGNhbGxvdXQ7CS8qIHdhdGNoZG9nIG5lZWRzIHRoaXMgICAg
ICAgICAgICAgICAgICAqLwogICBzdHJ1Y3QgZGV2aWNlCSpkZXY7CQkvKiBiYXNlIGRldmljZSBw
b2ludGVyICAgICAgICAgICAgICAgICAgICAgKi8KICAgYnVzX3NwYWNlX3RhZ190IGNzcl90YWc7
CS8qIGJ1c19zcGFjZSBuZWVkcyB0aGlzICAgICAgICAgICAgICAgICAgICAqLwpAQCAtMTIxMCw3
ICsxMjEwLDcgQEAKIAogLyogSGlkZSB0aGUgbWlub3IgZGlmZmVyZW5jZXMgYmV0d2VlbiBPUyB2
ZXJzaW9ucyAqLwogCi0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9f
KSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICAgdHlwZWRlZiB2b2lkIGludHJfcmV0
dXJuX3Q7CiAjIGRlZmluZSAgUkVBRF9QQ0lfQ0ZHKHNjLCBhZGRyKSAgICAgICBwY2lfcmVhZF9j
b25maWcgKChzYyktPmRldiwgYWRkciwgNCkKICMgZGVmaW5lIFdSSVRFX1BDSV9DRkcoc2MsIGFk
ZHIsIGRhdGEpIHBjaV93cml0ZV9jb25maWcoKHNjKS0+ZGV2LCBhZGRyLCBkYXRhLCA0KQpAQCAt
MTQyOCw3ICsxNDI4LDcgQEAKICNlbmRpZgogCiAjaWYgKGRlZmluZWQoX19ic2RpX18pIHx8IC8q
IHVuY29uZGl0aW9uYWxseSAqLyBcCi0gICAgKGRlZmluZWQoX19GcmVlQlNEX18pICYmIChfX0Zy
ZWVCU0RfdmVyc2lvbiA8IDUwMzAwMCkpIHx8IFwKKyAgICAoKGRlZmluZWQoX19GcmVlQlNEX18p
IHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSkgJiYgKF9fRnJlZUJTRF92ZXJzaW9uIDwg
NTAzMDAwKSkgfHwgXAogICAgIChkZWZpbmVkKF9fTmV0QlNEX18pICAmJiAoX19OZXRCU0RfVmVy
c2lvbl9fIDwgMTA2MDAwMDAwKSkgfHwgXAogICAgIChkZWZpbmVkKF9fT3BlbkJTRF9fKSAmJiAo
ICBPcGVuQlNEIDwgMjAwMTExKSkpCiAjIGRlZmluZSBJRlFfRU5RVUVVRShpZnEsIG0sIHBhLCBl
cnIpICAgXApAQCAtMTUzMSw3ICsxNTMxLDcgQEAKIHN0YXRpYyBpbnQgIHQxX2lvY3RsKHNvZnRj
X3QgKiwgc3RydWN0IGlvY3RsICopOwogCiAjaWYgSUZORVQKLSMgaWYgKChkZWZpbmVkKF9fRnJl
ZUJTRF9fKSAmJiAoX19GcmVlQlNEX3ZlcnNpb24gPCA1MDAwMDApKSB8fFwKKyMgaWYgKCgoZGVm
aW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pKSAmJiBfX0Zy
ZWVCU0RfdmVyc2lvbiA8IDUwMDAwMCkgfHxcCiAgICAgICAgIGRlZmluZWQoX19OZXRCU0RfXykg
fHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX2JzZGlfXykpCiBzdGF0aWMgdm9p
ZCBuZXRpc3JfZGlzcGF0Y2goaW50LCBzdHJ1Y3QgbWJ1ZiAqKTsKICMgZW5kaWYKQEAgLTE1NDEs
NyArMTU0MSw3IEBACiAjaWYgQlNECiBzdGF0aWMgdm9pZCBtYnVmX2VucXVldWUoc3RydWN0IGRl
c2NfcmluZyAqLCBzdHJ1Y3QgbWJ1ZiAqKTsKIHN0YXRpYyBzdHJ1Y3QgbWJ1ZiogbWJ1Zl9kZXF1
ZXVlKHN0cnVjdCBkZXNjX3JpbmcgKik7Ci0jIGlmZGVmIF9fRnJlZUJTRF9fCisjIGlmIGRlZmlu
ZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogc3RhdGljIHZv
aWQgZmJzZF9kbWFtYXBfbG9hZCh2b2lkICosIGJ1c19kbWFfc2VnbWVudF90ICosIGludCwgaW50
KTsKICMgZW5kaWYKIHN0YXRpYyBpbnQgY3JlYXRlX3Jpbmcoc29mdGNfdCAqLCBzdHJ1Y3QgZGVz
Y19yaW5nICosIGludCk7CkBAIC0xNTcwLDcgKzE1NzAsNyBAQAogc3RhdGljIHZvaWQgY29yZV9p
bnRlcnJ1cHQodm9pZCAqLCBpbnQpOwogc3RhdGljIHZvaWQgdXNlcl9pbnRlcnJ1cHQoc29mdGNf
dCAqLCBpbnQpOwogI2lmIEJTRAotIyBpZiAoZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgZGVmaW5l
ZChERVZJQ0VfUE9MTElORykpCisjIGlmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk
KF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoREVWSUNFX1BPTExJTkcpCiBzdGF0aWMg
aW50IGZic2RfcG9sbChzdHJ1Y3QgaWZuZXQgKiwgZW51bSBwb2xsX2NtZCwgaW50KTsKICMgZW5k
aWYKIHN0YXRpYyBpbnRyX3JldHVybl90IGJzZF9pbnRlcnJ1cHQodm9pZCAqKTsKQEAgLTE2Mzgs
NyArMTYzOCw3IEBACiBzdGF0aWMgaW50IGF0dGFjaF9jYXJkKHNvZnRjX3QgKiwgY29uc3QgY2hh
ciAqKTsKIHN0YXRpYyB2b2lkIGRldGFjaF9jYXJkKHNvZnRjX3QgKik7CiAKLSNpZmRlZiBfX0Zy
ZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tl
cm5lbF9fKQogc3RhdGljIGludCBmYnNkX3Byb2JlKGRldmljZV90KTsKIHN0YXRpYyBpbnQgZmJz
ZF9kZXRhY2goZGV2aWNlX3QpOwogc3RhdGljIGludCBmYnNkX3NodXRkb3duKGRldmljZV90KTsK
ZGlmZiAtdXIgc3lzLm9sZC9kZXYvbXB0L21waWxpYi9tcGlfdHlwZS5oIHN5cy9kZXYvbXB0L21w
aWxpYi9tcGlfdHlwZS5oCi0tLSBzeXMub2xkL2Rldi9tcHQvbXBpbGliL21waV90eXBlLmgJMjAw
Ni0wMi0yNiAyMzo1MDoxNC4wMDAwMDAwMDAgKzAxMDAKKysrIHN5cy9kZXYvbXB0L21waWxpYi9t
cGlfdHlwZS5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI1OTA2NjkzICswMTAwCkBAIC03Nyw3ICs3
Nyw3IEBACiB0eXBlZGVmIHNpZ25lZCAgIHNob3J0ICBTMTY7CiB0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0ICBVMTY7CiAKLSNpZmRlZglfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18p
IHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogCiB0eXBlZGVmIGludDMyX3QgIFMzMjsK
IHR5cGVkZWYgdWludDMyX3QgVTMyOwpkaWZmIC11ciBzeXMub2xkL2Rldi93aS9pZl93aXJlZy5o
IHN5cy9kZXYvd2kvaWZfd2lyZWcuaAotLS0gc3lzLm9sZC9kZXYvd2kvaWZfd2lyZWcuaAkyMDA5
LTA1LTIwIDIyOjAwOjQwLjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2Rldi93aS9pZl93aXJlZy5o
CTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI3OTA2NTQ3ICswMTAwCkBAIC04NCw3ICs4NCw3IEBACiAj
aWZkZWYgX19OZXRCU0RfXwogI2RlZmluZSBPU19TVFJJTkdfTkFNRQkiTmV0QlNEIgogI2VuZGlm
Ci0jaWZkZWYgX19GcmVlQlNEX18KKyNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk
KF9fRnJlZUJTRF9rZXJuZWxfXykKICNkZWZpbmUgT1NfU1RSSU5HX05BTUUJIkZyZWVCU0QiCiAj
ZW5kaWYKICNpZmRlZiBfX09wZW5CU0RfXwpkaWZmIC11ciBzeXMub2xkL2ZzL25mcy9uZnNfdmFy
Lmggc3lzL2ZzL25mcy9uZnNfdmFyLmgKLS0tIHN5cy5vbGQvZnMvbmZzL25mc192YXIuaAkyMDEx
LTA3LTE2IDEwOjA1OjE3LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL2ZzL25mcy9uZnNfdmFyLmgJ
MjAxMS0xMS0xMyAxNDoxMjo0MS4xMjg5MDY2MTUgKzAxMDAKQEAgLTc2LDcgKzc2LDcgQEAKIHN0
cnVjdCBuZnN2YXR0cjsKIHN0cnVjdCBuZnNfdmF0dHI7CiBzdHJ1Y3QgTkZTU1ZDQVJHUzsKLSNp
ZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19G
cmVlQlNEX2tlcm5lbF9fKQogTkZTX0FDQ0VTU19BUkdTOwogTkZTX09QRU5fQVJHUzsKIE5GU19H
RVRBVFRSX0FSR1M7CmRpZmYgLXVyIHN5cy5vbGQvbmV0L2lmX2F0bS5oIHN5cy9uZXQvaWZfYXRt
LmgKLS0tIHN5cy5vbGQvbmV0L2lmX2F0bS5oCTIwMDktMDQtMTYgMjI6MzA6MjguMDAwMDAwMDAw
ICswMjAwCisrKyBzeXMvbmV0L2lmX2F0bS5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTI5OTA2NDAy
ICswMTAwCkBAIC0yMDIsNyArMjAyLDcgQEAKIAogI2lmIGRlZmluZWQoX19OZXRCU0RfXykgfHwg
ZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX2JzZGlfXykKICNkZWZpbmUJUlRBTExP
QzEoQSxCKQkJcnRhbGxvYzEoKEEpLChCKSkKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisj
ZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykK
ICNkZWZpbmUJUlRBTExPQzEoQSxCKQkJcnRhbGxvYzEoKEEpLChCKSwwVUwpCiAjZW5kaWYKIApk
aWZmIC11ciBzeXMub2xkL25ldC96bGliLmggc3lzL25ldC96bGliLmgKLS0tIHN5cy5vbGQvbmV0
L3psaWIuaAkyMDEwLTAzLTAyIDA3OjU4OjU4LjAwMDAwMDAwMCArMDEwMAorKysgc3lzL25ldC96
bGliLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xMzU5MDY1MjUgKzAxMDAKQEAgLTUxMCw3ICs1MTAs
NyBAQAogICAgZG9uZSBieSBpbmZsYXRlKCkuCiAqLwogCi0jaWYgZGVmaW5lZChfX0ZyZWVCU0Rf
XykgJiYgZGVmaW5lZChfS0VSTkVMKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoX0tFUk5FTCkKICNkZWZpbmUgaW5m
bGF0ZSAgICAgICBpbmZsYXRlX3BwcCAgICAgLyogRnJlZUJTRCBhbHJlYWR5IGhhcyBhbiBpbmZs
YXRlIDotKCAqLwogI2VuZGlmCiAKZGlmZiAtdXIgc3lzLm9sZC9uZXQ4MDIxMS9pZWVlODAyMTFf
aW9jdGwuaCBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX2lvY3RsLmgKLS0tIHN5cy5vbGQvbmV0ODAy
MTEvaWVlZTgwMjExX2lvY3RsLmgJMjAxMS0wNi0xNiAxMTozNzoyMC4wMDAwMDAwMDAgKzAyMDAK
KysrIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaW9jdGwuaAkyMDExLTExLTEzIDE0OjEyOjQxLjEz
NzkwNzc3NyArMDEwMApAQCAtNTY5LDcgKzU2OSw3IEBACiAJdWludDE2X3QJc3ZfdmxhbjsKIH07
CiAKLSNpZmRlZiBfX0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmlu
ZWQoX19GcmVlQlNEX2tlcm5lbF9fKQogLyoKICAqIEZyZWVCU0Qtc3R5bGUgaW9jdGxzLgogICov
CmRpZmYgLXVyIHN5cy5vbGQvbmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oIHN5cy9uZXQ4MDIxMS9p
ZWVlODAyMTFfdmFyLmgKLS0tIHN5cy5vbGQvbmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oCTIwMTEt
MDYtMjAgMTM6NDY6MDMuMDAwMDAwMDAwICswMjAwCisrKyBzeXMvbmV0ODAyMTEvaWVlZTgwMjEx
X3Zhci5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTQxOTA5NzIxICswMTAwCkBAIC0zNCw3ICszNCw3
IEBACiAvKiBOQjogcG9ydGFiaWxpdHkgZ2x1ZSBtdXN0IGdvIGZpcnN0ICovCiAjaWYgZGVmaW5l
ZChfX05ldEJTRF9fKQogI2luY2x1ZGUgPG5ldDgwMjExL2llZWU4MDIxMV9uZXRic2QuaD4KLSNl
bGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBk
ZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKICNpbmNsdWRlIDxuZXQ4MDIxMS9pZWVlODAyMTFf
ZnJlZWJzZC5oPgogI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pCiAjaW5jbHVkZSA8bmV0ODAyMTEv
aWVlZTgwMjExX2xpbnV4Lmg+CmRpZmYgLXVyIHN5cy5vbGQvbmV0aW5ldC9zY3RwX2NvbnN0YW50
cy5oIHN5cy9uZXRpbmV0L3NjdHBfY29uc3RhbnRzLmgKLS0tIHN5cy5vbGQvbmV0aW5ldC9zY3Rw
X2NvbnN0YW50cy5oCTIwMTEtMDktMTcgMTA6NTA6MjkuMDAwMDAwMDAwICswMjAwCisrKyBzeXMv
bmV0aW5ldC9zY3RwX2NvbnN0YW50cy5oCTIwMTEtMTEtMTMgMTQ6MTI6NDEuMTQ1OTA4ODcyICsw
MTAwCkBAIC0xMDIwLDcgKzEwMjAsNyBAQAogI2RlZmluZSBTQ1RQX0dFVFRJTUVfVElNRVZBTCh4
KQkoZ2V0bWljcm91cHRpbWUoeCkpCiAjZGVmaW5lIFNDVFBfR0VUUFRJTUVfVElNRVZBTCh4KQko
bWljcm91cHRpbWUoeCkpCiAjZW5kaWYKLS8qI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRl
ZmluZWQoX19BUFBMRV9fKSovCisvKiNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVk
KF9fRnJlZUJTRF9rZXJuZWxfXykgfHwgZGVmaW5lZChfX0FQUExFX18pKi8KIC8qI2RlZmluZSBT
Q1RQX0dFVFRJTUVfVElNRVZBTCh4KSB7IFwqLwogLyoJKHgpLT50dl9zZWMgPSB0aWNrcyAvIDEw
MDA7IFwqLwogLyoJKHgpLT50dl91c2VjID0gKHRpY2tzICUgMTAwMCkgKiAxMDAwOyBcKi8KZGlm
ZiAtdXIgc3lzLm9sZC9uZXRpbmV0L3NjdHBfcGNiLmggc3lzL25ldGluZXQvc2N0cF9wY2IuaAot
LS0gc3lzLm9sZC9uZXRpbmV0L3NjdHBfcGNiLmgJMjAxMS0wOS0xNCAxMDoxNToyMS4wMDAwMDAw
MDAgKzAyMDAKKysrIHN5cy9uZXRpbmV0L3NjdHBfcGNiLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4x
NDg5MDk2MzIgKzAxMDAKQEAgLTI0MCw3ICsyNDAsNyBAQAogCSAqIEFsbCBzdGF0aWMgc3RydWN0
dXJlcyB0aGF0IGFuY2hvciB0aGUgc3lzdGVtIG11c3QgYmUgaGVyZS4KIAkgKi8KIAlzdHJ1Y3Qg
c2N0cF9lcGluZm8gc2N0cHBjYmluZm87Ci0jaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgJiYgZGVm
aW5lZChTTVApICYmIGRlZmluZWQoU0NUUF9VU0VfUEVSQ1BVX1NUQVQpCisjaWYgKGRlZmluZWQo
X19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNEX2tlcm5lbF9fKSkgJiYgZGVmaW5lZChT
TVApICYmIGRlZmluZWQoU0NUUF9VU0VfUEVSQ1BVX1NUQVQpCiAJc3RydWN0IHNjdHBzdGF0ICpz
Y3Rwc3RhdDsKICNlbHNlCiAJc3RydWN0IHNjdHBzdGF0IHNjdHBzdGF0OwpAQCAtNjMyLDcgKzYz
Miw3IEBACiAgICAgc3RydWN0IHNjdHBfaW5wY2IgKiwKICAgICB1aW50OF90IGNvX29mZik7CiAK
LSNpZiBkZWZpbmVkKF9fRnJlZUJTRF9fKSAmJiBkZWZpbmVkKFNDVFBfTUNPUkVfSU5QVVQpICYm
IGRlZmluZWQoU01QKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJl
ZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoU0NUUF9NQ09SRV9JTlBVVCkgJiYgZGVmaW5lZChT
TVApCiB2b2lkCiAgICAgIHNjdHBfcXVldWVfdG9fbWNvcmUoc3RydWN0IG1idWYgKm0sIGludCBv
ZmYsIGludCBjcHVfdG9fdXNlKTsKIApkaWZmIC11ciBzeXMub2xkL25ldGluZXQvc2N0cF9zdHJ1
Y3RzLmggc3lzL25ldGluZXQvc2N0cF9zdHJ1Y3RzLmgKLS0tIHN5cy5vbGQvbmV0aW5ldC9zY3Rw
X3N0cnVjdHMuaAkyMDExLTEwLTEwIDE4OjMxOjE4LjAwMDAwMDAwMCArMDIwMAorKysgc3lzL25l
dGluZXQvc2N0cF9zdHJ1Y3RzLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xNTA5MDc1MzEgKzAxMDAK
QEAgLTEwOCw3ICsxMDgsNyBAQAogdHlwZWRlZiBpbnQgKCppbnBfZnVuYykgKHN0cnVjdCBzY3Rw
X2lucGNiICosIHZvaWQgKnB0ciwgdWludDMyX3QgdmFsKTsKIHR5cGVkZWYgdm9pZCAoKmVuZF9m
dW5jKSAodm9pZCAqcHRyLCB1aW50MzJfdCB2YWwpOwogCi0jaWYgZGVmaW5lZChfX0ZyZWVCU0Rf
XykgJiYgZGVmaW5lZChTQ1RQX01DT1JFX0lOUFVUKSAmJiBkZWZpbmVkKFNNUCkKKyNpZiAoZGVm
aW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rfa2VybmVsX18pKSAmJiBkZWZp
bmVkKFNDVFBfTUNPUkVfSU5QVVQpICYmIGRlZmluZWQoU01QKQogLyogd2hhdHMgb24gdGhlIG1j
b3JlIGNvbnRyb2wgc3RydWN0ICovCiBzdHJ1Y3Qgc2N0cF9tY29yZV9xdWV1ZSB7CiAJVEFJTFFf
RU5UUlkoc2N0cF9tY29yZV9xdWV1ZSkgbmV4dDsKZGlmZiAtdXIgc3lzLm9sZC9uZXRpbmV0L3Nj
dHBfdWlvLmggc3lzL25ldGluZXQvc2N0cF91aW8uaAotLS0gc3lzLm9sZC9uZXRpbmV0L3NjdHBf
dWlvLmgJMjAxMS0wOC0xNCAyMjo1NTozMi4wMDAwMDAwMDAgKzAyMDAKKysrIHN5cy9uZXRpbmV0
L3NjdHBfdWlvLmgJMjAxMS0xMS0xMyAxNDoxMjo0MS4xNTI5MDU5ODkgKzAxMDAKQEAgLTEwNTYs
NyArMTA1Niw3IEBACiAKICNkZWZpbmUgU0NUUF9TVEFUX0lOQ1IoX3gpIFNDVFBfU1RBVF9JTkNS
X0JZKF94LDEpCiAjZGVmaW5lIFNDVFBfU1RBVF9ERUNSKF94KSBTQ1RQX1NUQVRfREVDUl9CWShf
eCwxKQotI2lmIGRlZmluZWQoX19GcmVlQlNEX18pICYmIGRlZmluZWQoU01QKSAmJiBkZWZpbmVk
KFNDVFBfVVNFX1BFUkNQVV9TVEFUKQorI2lmIChkZWZpbmVkKF9fRnJlZUJTRF9fKSB8fCBkZWZp
bmVkKF9fRnJlZUJTRF9rZXJuZWxfXykpICYmIGRlZmluZWQoU01QKSAmJiBkZWZpbmVkKFNDVFBf
VVNFX1BFUkNQVV9TVEFUKQogI2RlZmluZSBTQ1RQX1NUQVRfSU5DUl9CWShfeCxfZCkgKFNDVFBf
QkFTRV9TVEFUU1tQQ1BVX0dFVChjcHVpZCldLl94ICs9IF9kKQogI2RlZmluZSBTQ1RQX1NUQVRf
REVDUl9CWShfeCxfZCkgKFNDVFBfQkFTRV9TVEFUU1tQQ1BVX0dFVChjcHVpZCldLl94IC09IF9k
KQogI2Vsc2UKZGlmZiAtdXIgc3lzLm9sZC9zeXMvZGV2aWNlX3BvcnQuaCBzeXMvc3lzL2Rldmlj
ZV9wb3J0LmgKLS0tIHN5cy5vbGQvc3lzL2RldmljZV9wb3J0LmgJMjAwNS0wMS0xOSAwMjozMToz
My4wMDAwMDAwMDAgKzAxMDAKKysrIHN5cy9zeXMvZGV2aWNlX3BvcnQuaAkyMDExLTExLTEzIDE0
OjEyOjQxLjE1MzkwNzE3NCArMDEwMApAQCAtMjksNyArMjksNyBAQAogCiAjaWYgZGVmaW5lZChf
X05ldEJTRF9fKQogIyBpbmNsdWRlIDxzeXMvZGV2aWNlLmg+Ci0jZWxpZiBkZWZpbmVkKF9fRnJl
ZUJTRF9fKQorI2VsaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0ZyZWVCU0Rf
a2VybmVsX18pCiAjIGluY2x1ZGUgPHN5cy9tb2R1bGUuaD4KICMgaW5jbHVkZSA8c3lzL2J1cy5o
PgogI2VuZGlmCkBAIC00Myw3ICs0Myw3IEBACiAjIGRlZmluZSBERVZQT1JUX0RFVk5BTUUoZGV2
KQkJKGRldikuZHZfeG5hbWUKICMgZGVmaW5lIERFVlBPUlRfREVWVU5JVChkZXYpCQkoZGV2KS5k
dl91bml0CiAKLSNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pCisjZWxpZiBkZWZpbmVkKF9fRnJl
ZUJTRF9fKSB8fCBkZWZpbmVkKF9fRnJlZUJTRF9rZXJuZWxfXykKIC8qCiAgKiBGcmVlQlNEIChj
b21wYXRpYmlsaXR5IGZvciBzdHJ1Y3QgZGV2aWNlKQogICovCmRpZmYgLXVyIHN5cy5vbGQvc3lz
L3RpbWV4Lmggc3lzL3N5cy90aW1leC5oCi0tLSBzeXMub2xkL3N5cy90aW1leC5oCTIwMDUtMDEt
MDcgMDM6Mjk6MjcuMDAwMDAwMDAwICswMTAwCisrKyBzeXMvc3lzL3RpbWV4LmgJMjAxMS0xMS0x
MyAxNDoxMjo0MS4xNTU5MDc1ODcgKzAxMDAKQEAgLTIxOCw3ICsyMTgsNyBAQAogCWxvbmcJc3Ri
Y250OwkJLyogc3RhYmlsaXR5IGxpbWl0IGV4Y2VlZGVkIChybykgKi8KIH07CiAKLSNpZmRlZiBf
X0ZyZWVCU0RfXworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19GcmVlQlNE
X2tlcm5lbF9fKQogCiAjaWZkZWYgX0tFUk5FTAogdm9pZAludHBfdXBkYXRlX3NlY29uZChpbnQ2
NF90ICphZGp1c3RtZW50LCB0aW1lX3QgKm5ld3NlYyk7Cg==
--bcaec5299f5938d4f804b27f9e42--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOfDtXMaHCW4rfEhzfhThGn6kY0=%2B209VhqFSBq9EF03fZLBhw>