Re: RFC: patch to allow lock-free traversal of lists with insertion

Paul E. McKenney (mckenney@eng4.beaverton.ibm.com)
Wed, 10 Oct 2001 18:56:26 -0700 (PDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--0-851401618-1002765386=:9717
Content-Type: TEXT/PLAIN; charset=US-ASCII

< On Wed, Oct 10, 2001 at 02:47:05PM -0700, Paul McKenney wrote:
< > > I don't think it's actually all that bad. There won't be all
< > > that many places that require the rmbdd, and they'll pretty
< > > much exactly correspond to the places in which you have to put
< > > wmb for all architectures anyway.
< >
< > Just to make sure I understand... This rmbdd() would use IPIs to
< > get all the CPUs' caches synchronized, right?
<
< Err, I see your confusion now.
<
< "Correspond" meaning "for every wmb needed on the writer side,
< there is likely an rmb needed on the reader side in a similar
< place".

Fair enough!

Here are two patches. The wmbdd patch has been modified to use
the lighter-weight SPARC instruction, as suggested by Dave Miller.
The rmbdd patch defines an rmbdd() primitive that is defined to be
rmb() on Alpha and a nop on other architectures. I believe this
rmbdd() primitive is what Richard is looking for.

Please pass on any comments or criticisms. I am particularly
interested in comments from people with PA-RISC and MIPS
expertise, as I am not 100% sure that I have interpreted
the PA-RISC architecture manual correctly, and I do not yet
have a MIPS manual. I do not believe that these architectures
need the Alpha treatment, but then again, I didn't think
that Alpha needed the Alpha treatment when I first encountered
it -- and I am quite clearly not the only one! ;-)

Thanx, Paul

PS. An updated explanation of why this is needed may be found
at http://lse.sourceforge.net/locking/wmbdd.html
--0-851401618-1002765386=:9717
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="rmbdd.v2.4.10.patch.2001.10.10"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.PTX.3.91.1011010185626.9717B@eng4.beaverton.ibm.com>
Content-Description: rmbdd.v2.4.10.patch

ZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIu
NC4xMC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAu
cm1iZGQvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgNCi0tLSBsaW51eC0y
LjQuMTAvaW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgJU3VuIEF1ZyAxMiAx
MDozODo0NyAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUv
YXNtLWFscGhhL3N5c3RlbS5oCVdlZCBPY3QgMTAgMTY6NDk6MTEgMjAwMQ0K
QEAgLTE0OCwxNiArMTQ4LDIxIEBADQogI2RlZmluZSBybWIoKSBcDQogX19h
c21fXyBfX3ZvbGF0aWxlX18oIm1iIjogOiA6Im1lbW9yeSIpDQogDQorI2Rl
ZmluZSBybWJkZCgpIFwNCitfX2FzbV9fIF9fdm9sYXRpbGVfXygibWIiOiA6
IDoibWVtb3J5IikNCisNCiAjZGVmaW5lIHdtYigpIFwNCiBfX2FzbV9fIF9f
dm9sYXRpbGVfXygid21iIjogOiA6Im1lbW9yeSIpDQogDQogI2lmZGVmIENP
TkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNt
cF9ybWIoKQlybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJcm1iZGQoKQ0K
ICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQogI2Vsc2UNCiAjZGVmaW5lIHNt
cF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCWJhcnJpZXIo
KQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJYmFycmllcigpDQogI2RlZmluZSBz
bXBfd21iKCkJYmFycmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11ck4gLVgg
L2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUv
YXNtLWFybS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h
c20tYXJtL3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNt
LWFybS9zeXN0ZW0uaAlNb24gTm92IDI3IDE3OjA3OjU5IDIwMDANCisrKyBs
aW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oCVdl
ZCBPY3QgMTAgMTg6MTg6MTIgMjAwMQ0KQEAgLTM4LDYgKzM4LDcgQEANCiAN
CiAjZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6
ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkgbWIoKQ0KKyNkZWZpbmUgcm1i
ZGQoKSBkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpIG1iKCkNCiAj
ZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGlsZV9fKCJtb3ZcdHIwLHIw
XHRAIG5vcFxuXHQiKTsNCiANCkBAIC02NywxMiArNjgsMTQgQEANCiANCiAj
ZGVmaW5lIHNtcF9tYigpCQltYigpDQogI2RlZmluZSBzbXBfcm1iKCkJCXJt
YigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQkJcm1iZGQoKQ0KICNkZWZpbmUg
c21wX3dtYigpCQl3bWIoKQ0KIA0KICNlbHNlDQogDQogI2RlZmluZSBzbXBf
bWIoKQkJYmFycmllcigpDQogI2RlZmluZSBzbXBfcm1iKCkJCWJhcnJpZXIo
KQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJCWRvIHsgfSB3aGlsZSgwKQ0KICNk
ZWZpbmUgc21wX3dtYigpCQliYXJyaWVyKCkNCiANCiAjZGVmaW5lIGNsaSgp
CQkJX19jbGkoKQ0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRk
aWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1jcmlzL3N5c3RlbS5oIGxp
bnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1jcmlzL3N5c3RlbS5oDQot
LS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgJVHVl
IE1heSAgMSAxNjowNTowMCAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRk
L2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoxOTow
NCAyMDAxDQpAQCAtMTQzLDE1ICsxNDMsMTggQEANCiANCiAjZGVmaW5lIG1i
KCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6ICJtZW1vcnkiKQ0K
ICNkZWZpbmUgcm1iKCkgbWIoKQ0KKyNkZWZpbmUgcm1iZGQoKSBkbyB7IH0g
d2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpIG1iKCkNCiANCiAjaWZkZWYgQ09O
RklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkgICAgICAgIG1iKCkNCiAjZGVm
aW5lIHNtcF9ybWIoKSAgICAgICBybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRk
KCkgICAgIHJtYmRkKCkNCiAjZGVmaW5lIHNtcF93bWIoKSAgICAgICB3bWIo
KQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKSAgICAgICAgYmFycmllcigp
DQogI2RlZmluZSBzbXBfcm1iKCkgICAgICAgYmFycmllcigpDQorI2RlZmlu
ZSBzbXBfcm1iZGQoKSAgICAgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSBz
bXBfd21iKCkgICAgICAgYmFycmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11
ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2lu
Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmggbGludXgtMi40LjEwLnJtYmRkL2lu
Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5j
bHVkZS9hc20taTM4Ni9zeXN0ZW0uaAlTdW4gU2VwIDIzIDEwOjMxOjAxIDIw
MDENCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20taTM4Ni9z
eXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAwOjU3IDIwMDENCkBAIC0yODQsMTUg
KzI4NCwxOCBAQA0KICAqLw0KICNkZWZpbmUgbWIoKSAJX19hc21fXyBfX3Zv
bGF0aWxlX18gKCJsb2NrOyBhZGRsICQwLDAoJSVlc3ApIjogOiA6Im1lbW9y
eSIpDQogI2RlZmluZSBybWIoKQltYigpDQorI2RlZmluZSBybWJkZCgpCWRv
IHsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkJX19hc21fXyBfX3ZvbGF0
aWxlX18gKCIiOiA6IDoibWVtb3J5IikNCiANCiAjaWZkZWYgQ09ORklHX1NN
UA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp
CXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlybWJkZCgpDQogI2RlZmlu
ZSBzbXBfd21iKCkJd21iKCkNCiAjZWxzZQ0KICNkZWZpbmUgc21wX21iKCkJ
YmFycmllcigpDQogI2RlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQorI2Rl
ZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNt
cF93bWIoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiANCmRpZmYgLXVyTiAtWCAv
aG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9h
c20taWE2NC9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h
c20taWE2NC9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2Fz
bS1pYTY0L3N5c3RlbS5oCVR1ZSBKdWwgMzEgMTA6MzA6MDkgMjAwMQ0KKysr
IGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1pYTY0L3N5c3RlbS5o
CVdlZCBPY3QgMTAgMTc6MDE6MDkgMjAwMQ0KQEAgLTg1LDYgKzg1LDkgQEAN
CiAgKgkJc3RvcmVzIGFuZCB0aGF0IGFsbCBmb2xsb3dpbmcgc3RvcmVzIHdp
bGwgYmUNCiAgKgkJdmlzaWJsZSBvbmx5IGFmdGVyIGFsbCBwcmV2aW91cyBz
dG9yZXMuDQogICogICBybWIoKToJTGlrZSB3bWIoKSwgYnV0IGZvciByZWFk
cy4NCisgKiAgIHJtYmRkKCk6CUxpa2Ugcm1iKCksIGJ1dCBvbmx5IGZvciBw
YWlycyBvZiBsb2FkcyB3aGVyZQ0KKyAqCQl0aGUgc2Vjb25kIGxvYWQgZGVw
ZW5kcyBvbiB0aGUgdmFsdWUgbG9hZGVkDQorICoJCWJ5IHRoZSBmaXJzdC4N
CiAgKiAgIG1iKCk6CXdtYigpL3JtYigpIGNvbWJvLCBpLmUuLCBhbGwgcHJl
dmlvdXMgbWVtb3J5DQogICoJCWFjY2Vzc2VzIGFyZSB2aXNpYmxlIGJlZm9y
ZSBhbGwgc3Vic2VxdWVudA0KICAqCQlhY2Nlc3NlcyBhbmQgdmljZSB2ZXJz
YS4gIFRoaXMgaXMgYWxzbyBrbm93biBhcw0KQEAgLTk4LDE1ICsxMDEsMTgg
QEANCiAgKi8NCiAjZGVmaW5lIG1iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18g
KCJtZiIgOjo6ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkJbWIoKQ0KKyNk
ZWZpbmUgcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigp
CW1iKCkNCiANCiAjaWZkZWYgQ09ORklHX1NNUA0KICMgZGVmaW5lIHNtcF9t
YigpCW1iKCkNCiAjIGRlZmluZSBzbXBfcm1iKCkJcm1iKCkNCisjIGRlZmlu
ZSBzbXBfcm1iZGQoKQlybWJkZCgpDQogIyBkZWZpbmUgc21wX3dtYigpCXdt
YigpDQogI2Vsc2UNCiAjIGRlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAj
IGRlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQorIyBkZWZpbmUgc21wX3Jt
YmRkKCkJZG8geyB9IHdoaWxlKDApDQogIyBkZWZpbmUgc21wX3dtYigpCWJh
cnJpZXIoKQ0KICNlbmRpZg0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2Vu
bmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1tNjhrL3N5
c3RlbS5oIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1tNjhrL3N5
c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLW02OGsvc3lz
dGVtLmgJTW9uIEp1biAxMSAxOToxNToyNyAyMDAxDQorKysgbGludXgtMi40
LjEwLnJtYmRkL2luY2x1ZGUvYXNtLW02OGsvc3lzdGVtLmgJV2VkIE9jdCAx
MCAxNzowMToxNSAyMDAxDQpAQCAtODAsMTIgKzgwLDE0IEBADQogI2RlZmlu
ZSBub3AoKQkJZG8geyBhc20gdm9sYXRpbGUgKCJub3AiKTsgYmFycmllcigp
OyB9IHdoaWxlICgwKQ0KICNkZWZpbmUgbWIoKQkJYmFycmllcigpDQogI2Rl
ZmluZSBybWIoKQkJYmFycmllcigpDQorI2RlZmluZSBybWJkZCgpCQlkbyB7
IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCQliYXJyaWVyKCkNCiAjZGVm
aW5lIHNldF9tYih2YXIsIHZhbHVlKSAgICBkbyB7IHhjaGcoJnZhciwgdmFs
dWUpOyB9IHdoaWxlICgwKQ0KICNkZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVl
KSAgICBkbyB7IHZhciA9IHZhbHVlOyB3bWIoKTsgfSB3aGlsZSAoMCkNCiAN
CiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3Jt
YigpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJZG8geyB9IHdo
aWxlKDApDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQogDQogDQpk
aWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40
LjEwL2luY2x1ZGUvYXNtLW1pcHMvc3lzdGVtLmggbGludXgtMi40LjEwLnJt
YmRkL2luY2x1ZGUvYXNtLW1pcHMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu
MTAvaW5jbHVkZS9hc20tbWlwcy9zeXN0ZW0uaAlTdW4gU2VwICA5IDEwOjQz
OjAxIDIwMDENCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20t
bWlwcy9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAxOjI2IDIwMDENCkBAIC0x
NTAsNiArMTUwLDcgQEANCiANCiAjaW5jbHVkZSA8YXNtL3diZmx1c2guaD4N
CiAjZGVmaW5lIHJtYigpCWRvIHsgfSB3aGlsZSgwKQ0KKyNkZWZpbmUgcm1i
ZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCXdiZmx1c2go
KQ0KICNkZWZpbmUgbWIoKQl3YmZsdXNoKCkNCiANCkBAIC0xNjYsNiArMTY3
LDcgQEANCiAJOiAvKiBubyBpbnB1dCAqLwkJCQlcDQogCTogIm1lbW9yeSIp
DQogI2RlZmluZSBybWIoKSBtYigpDQorI2RlZmluZSBybWJkZCgpCWRvIHsg
fSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkgbWIoKQ0KIA0KICNlbmRpZiAv
KiBDT05GSUdfQ1BVX0hBU19XQiAgKi8NCkBAIC0xNzMsMTAgKzE3NSwxMiBA
QA0KICNpZmRlZiBDT05GSUdfU01QDQogI2RlZmluZSBzbXBfbWIoKQltYigp
DQogI2RlZmluZSBzbXBfcm1iKCkJcm1iKCkNCisjZGVmaW5lIHNtcF9ybWJk
ZCgpCXJtYmRkKCkNCiAjZGVmaW5lIHNtcF93bWIoKQl3bWIoKQ0KICNlbHNl
DQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF9y
bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9ybWJkZCgpCWRvIHsgfSB3
aGlsZSgwKQ0KICNkZWZpbmUgc21wX3dtYigpCWJhcnJpZXIoKQ0KICNlbmRp
Zg0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxp
bnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVtLmggbGludXgt
Mi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLW1pcHM2NC9zeXN0ZW0uaA0KLS0t
IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVtLmgJV2Vk
IEp1bCAgNCAxMTo1MDozOSAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRk
L2luY2x1ZGUvYXNtLW1pcHM2NC9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjAx
OjQxIDIwMDENCkBAIC0xNDcsMTUgKzE0NywxOCBAQA0KIAk6IC8qIG5vIGlu
cHV0ICovCQkJCVwNCiAJOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpIG1i
KCkNCisjZGVmaW5lIHJtYmRkKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmlu
ZSB3bWIoKSBtYigpDQogDQogI2lmZGVmIENPTkZJR19TTVANCiAjZGVmaW5l
IHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIoKQ0KKyNk
ZWZpbmUgc21wX3JtYmRkKCkJcm1iZGQoKQ0KICNkZWZpbmUgc21wX3dtYigp
CXdtYigpDQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0K
ICNkZWZpbmUgc21wX3JtYigpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3Jt
YmRkKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSBzbXBfd21iKCkJYmFy
cmllcigpDQogI2VuZGlmDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5u
ZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlzYy9z
eXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tcGFyaXNj
L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlz
Yy9zeXN0ZW0uaAlXZWQgRGVjICA2IDExOjQ2OjM5IDIwMDANCisrKyBsaW51
eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9hc20tcGFyaXNjL3N5c3RlbS5oCVdl
ZCBPY3QgMTAgMTc6MDQ6MDcgMjAwMQ0KQEAgLTUwLDYgKzUwLDcgQEANCiAj
aWZkZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNk
ZWZpbmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlk
byB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNtcF93bWIoKQl3bWIoKQ0KICNl
bHNlDQogLyogVGhpcyBpcyBzaW1wbHkgdGhlIGJhcnJpZXIoKSBtYWNybyBm
cm9tIGxpbnV4L2tlcm5lbC5oIGJ1dCB3aGVuIHNlcmlhbC5jDQpAQCAtNTgs
NiArNTksNyBAQA0KICAqLw0KICNkZWZpbmUgc21wX21iKCkJX19hc21fXyBf
X3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQogI2RlZmluZSBzbXBfcm1i
KCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQorI2Rl
ZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNt
cF93bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsN
CiAjZW5kaWYNCiANCkBAIC0xMjIsNiArMTI0LDcgQEANCiANCiAjZGVmaW5l
IG1iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgic3luYyIgOiA6IDoibWVt
b3J5IikNCiAjZGVmaW5lIHdtYigpIG1iKCkNCisjZGVmaW5lIHJtYmRkKCkJ
ZG8geyB9IHdoaWxlKDApDQogDQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX194
Y2hnKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsNCiAN
CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y
LjQuMTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC5y
bWJkZC9pbmNsdWRlL2FzbS1wcGMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu
MTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oCVR1ZSBBdWcgMjggMDY6NTg6
MzMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1w
cGMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoxOTo0MyAyMDAxDQpAQCAtMjQs
NiArMjQsOCBAQA0KICAqDQogICogbWIoKSBwcmV2ZW50cyBsb2FkcyBhbmQg
c3RvcmVzIGJlaW5nIHJlb3JkZXJlZCBhY3Jvc3MgdGhpcyBwb2ludC4NCiAg
KiBybWIoKSBwcmV2ZW50cyBsb2FkcyBiZWluZyByZW9yZGVyZWQgYWNyb3Nz
IHRoaXMgcG9pbnQuDQorICogcm1iZGQoKSBwcmV2ZW50cyBkYXRhLWRlcGVu
ZGFudCBsb2FkcyBiZWluZyByZW9yZGVyZWQgYWNyb3NzIHRoaXMgcG9pbnQN
CisgKgkobm9wIG9uIFBQQykuDQogICogd21iKCkgcHJldmVudHMgc3RvcmVz
IGJlaW5nIHJlb3JkZXJlZCBhY3Jvc3MgdGhpcyBwb2ludC4NCiAgKg0KICAq
IFdlIGNhbiB1c2UgdGhlIGVpZWlvIGluc3RydWN0aW9uIGZvciB3bWIsIGJ1
dCBzaW5jZSBpdCBkb2Vzbid0DQpAQCAtMzIsNiArMzQsNyBAQA0KICAqLw0K
ICNkZWZpbmUgbWIoKSAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJzeW5jIiA6
IDogOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpICBfX2FzbV9fIF9fdm9s
YXRpbGVfXyAoInN5bmMiIDogOiA6ICJtZW1vcnkiKQ0KKyNkZWZpbmUgcm1i
ZGQoKSAgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKSAgX19hc21f
XyBfX3ZvbGF0aWxlX18gKCJlaWVpbyIgOiA6IDogIm1lbW9yeSIpDQogDQog
I2RlZmluZSBzZXRfbWIodmFyLCB2YWx1ZSkJZG8geyB2YXIgPSB2YWx1ZTsg
bWIoKTsgfSB3aGlsZSAoMCkNCkBAIC00MCwxMCArNDMsMTIgQEANCiAjaWZk
ZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZp
bmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKQlybWJk
ZCgpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCiAjZWxzZQ0KICNkZWZp
bmUgc21wX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1v
cnkiKQ0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9f
KCIiOiA6IDoibWVtb3J5IikNCisjZGVmaW5lIHNtcF9ybWJkZCgpCWRvIHsg
fSB3aGlsZSgwKQ0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192b2xh
dGlsZV9fKCIiOiA6IDoibWVtb3J5IikNCiAjZW5kaWYgLyogQ09ORklHX1NN
UCAqLw0KIA0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZm
IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oIGxpbnV4
LTIuNC4xMC5ybWJkZC9pbmNsdWRlL2FzbS1zMzkwL3N5c3RlbS5oDQotLS0g
bGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJV2VkIEp1
bCAyNSAxNDoxMjowMiAyMDAxDQorKysgbGludXgtMi40LjEwLnJtYmRkL2lu
Y2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJV2VkIE9jdCAxMCAxODoyMDozMSAy
MDAxDQpAQCAtMTE3LDkgKzExNywxMSBAQA0KICMgZGVmaW5lIFNZTkNfT1RI
RVJfQ09SRVMoeCkgICBlaWVpbygpIA0KICNkZWZpbmUgbWIoKSAgICBlaWVp
bygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlvKCkNCisjZGVmaW5lIHJtYmRk
KCkgZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKSAgIGVpZWlvKCkN
CiAjZGVmaW5lIHNtcF9tYigpICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9y
bWIoKSAgICAgIHJtYigpDQorI2RlZmluZSBzbXBfcm1iZGQoKSAgICBybWJk
ZCgpDQogI2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KICNkZWZpbmUg
c21wX21iX19iZWZvcmVfY2xlYXJfYml0KCkgICAgIHNtcF9tYigpDQogI2Rl
ZmluZSBzbXBfbWJfX2FmdGVyX2NsZWFyX2JpdCgpICAgICAgc21wX21iKCkN
CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y
LjQuMTAvaW5jbHVkZS9hc20tczM5MHgvc3lzdGVtLmggbGludXgtMi40LjEw
LnJtYmRkL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3RlbS5oDQotLS0gbGludXgt
Mi40LjEwL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3RlbS5oCVdlZCBKdWwgMjUg
MTQ6MTI6MDMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC5ybWJkZC9pbmNsdWRl
L2FzbS1zMzkweC9zeXN0ZW0uaAlXZWQgT2N0IDEwIDE3OjA0OjQ1IDIwMDEN
CkBAIC0xMzAsOSArMTMwLDExIEBADQogIyBkZWZpbmUgU1lOQ19PVEhFUl9D
T1JFUyh4KSAgIGVpZWlvKCkgDQogI2RlZmluZSBtYigpICAgIGVpZWlvKCkN
CiAjZGVmaW5lIHJtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgcm1iZGQoKQlk
byB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KICNk
ZWZpbmUgc21wX21iKCkgICAgICAgbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp
ICAgICAgcm1iKCkNCisjZGVmaW5lIHNtcF9ybWJkZCgpICAgIHJtYmRkKCkN
CiAjZGVmaW5lIHNtcF93bWIoKSAgICAgIHdtYigpDQogI2RlZmluZSBzbXBf
bWJfX2JlZm9yZV9jbGVhcl9iaXQoKSAgICAgc21wX21iKCkNCiAjZGVmaW5l
IHNtcF9tYl9fYWZ0ZXJfY2xlYXJfYml0KCkgICAgICBzbXBfbWIoKQ0KZGlm
ZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4x
MC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaCBsaW51eC0yLjQuMTAucm1iZGQv
aW5jbHVkZS9hc20tc2gvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5j
bHVkZS9hc20tc2gvc3lzdGVtLmgJU2F0IFNlcCAgOCAxMjoyOTowOSAyMDAx
DQorKysgbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLXNoL3N5c3Rl
bS5oCVdlZCBPY3QgMTAgMTc6MDU6MDcgMjAwMQ0KQEAgLTg4LDE1ICs4OCwx
OCBAQA0KIA0KICNkZWZpbmUgbWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
IiI6IDogOiJtZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkJbWIoKQ0KKyNkZWZp
bmUgcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHdtYigpCV9f
YXNtX18gX192b2xhdGlsZV9fICgiIjogOiA6Im1lbW9yeSIpDQogDQogI2lm
ZGVmIENPTkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVm
aW5lIHNtcF9ybWIoKQlybWIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJcm1i
ZGQoKQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQogI2Vsc2UNCiAjZGVm
aW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCWJh
cnJpZXIoKQ0KKyNkZWZpbmUgc21wX3JtYmRkKCkJZG8geyB9IHdoaWxlKDAp
DQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQogI2VuZGlmDQogDQpk
aWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40
LjEwL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC5y
bWJkZC9pbmNsdWRlL2FzbS1zcGFyYy9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIu
NC4xMC9pbmNsdWRlL2FzbS1zcGFyYy9zeXN0ZW0uaAlUdWUgT2N0ICAzIDA5
OjI0OjQxIDIwMDANCisrKyBsaW51eC0yLjQuMTAucm1iZGQvaW5jbHVkZS9h
c20tc3BhcmMvc3lzdGVtLmgJV2VkIE9jdCAxMCAxNjo1OTo0NCAyMDAxDQpA
QCAtMjc3LDExICsyNzcsMTMgQEANCiAvKiBYWFggQ2hhbmdlIHRoaXMgaWYg
d2UgZXZlciB1c2UgYSBQU08gbW9kZSBrZXJuZWwuICovDQogI2RlZmluZSBt
YigpCV9fYXNtX18gX192b2xhdGlsZV9fICgiIiA6IDogOiAibWVtb3J5IikN
CiAjZGVmaW5lIHJtYigpCW1iKCkNCisjZGVmaW5lIHJtYmRkKCkJZG8geyB9
IHdoaWxlKDApDQogI2RlZmluZSB3bWIoKQltYigpDQogI2RlZmluZSBzZXRf
bWIoX192YXIsIF9fdmFsdWUpICBkbyB7IF9fdmFyID0gX192YWx1ZTsgbWIo
KTsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgc2V0X3dtYihfX3ZhciwgX192YWx1
ZSkgc2V0X21iKF9fdmFyLCBfX3ZhbHVlKQ0KICNkZWZpbmUgc21wX21iKCkJ
X19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQogI2RlZmlu
ZSBzbXBfcm1iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6OjoibWVtb3J5
Iik7DQorI2RlZmluZSBzbXBfcm1iZGQoKQlkbyB7IH0gd2hpbGUoMCkNCiAj
ZGVmaW5lIHNtcF93bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJt
ZW1vcnkiKTsNCiANCiAjZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGls
ZV9fICgibm9wIik7DQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u
dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXNwYXJjNjQvc3lzdGVt
LmggbGludXgtMi40LjEwLnJtYmRkL2luY2x1ZGUvYXNtLXNwYXJjNjQvc3lz
dGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmM2NC9z
eXN0ZW0uaAlGcmkgU2VwICA3IDExOjAxOjIwIDIwMDENCisrKyBsaW51eC0y
LjQuMTAucm1iZGQvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0uaAlXZWQg
T2N0IDEwIDE3OjAwOjEyIDIwMDENCkBAIC05OSw2ICs5OSw3IEBADQogI2Rl
ZmluZSBtYigpCQlcDQogCW1lbWJhcigiI0xvYWRMb2FkIHwgI0xvYWRTdG9y
ZSB8ICNTdG9yZVN0b3JlIHwgI1N0b3JlTG9hZCIpOw0KICNkZWZpbmUgcm1i
KCkJCW1lbWJhcigiI0xvYWRMb2FkIikNCisjZGVmaW5lIHJtYmRkKCkJCWRv
IHsgfSB3aGlsZSgwKQ0KICNkZWZpbmUgd21iKCkJCW1lbWJhcigiI1N0b3Jl
U3RvcmUiKQ0KICNkZWZpbmUgc2V0X21iKF9fdmFyLCBfX3ZhbHVlKSBcDQog
CWRvIHsgX192YXIgPSBfX3ZhbHVlOyBtZW1iYXIoIiNTdG9yZUxvYWQgfCAj
U3RvcmVTdG9yZSIpOyB9IHdoaWxlKDApDQpAQCAtMTA4LDEwICsxMDksMTIg
QEANCiAjaWZkZWYgQ09ORklHX1NNUA0KICNkZWZpbmUgc21wX21iKCkJbWIo
KQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigpDQorI2RlZmluZSBzbXBfcm1i
ZGQoKQlybWJkZCgpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCiAjZWxz
ZQ0KICNkZWZpbmUgc21wX21iKCkJX19hc21fXyBfX3ZvbGF0aWxlX18oIiI6
OjoibWVtb3J5Iik7DQogI2RlZmluZSBzbXBfcm1iKCkJX19hc21fXyBfX3Zv
bGF0aWxlX18oIiI6OjoibWVtb3J5Iik7DQorI2RlZmluZSBzbXBfcm1iZGQo
KQlkbyB7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNtcF93bWIoKQlfX2FzbV9f
IF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCiAjZW5kaWYNCiANCg==
--0-851401618-1002765386=:9717
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="wmbdd2.v2.4.10.patch.2001.10.10"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.PTX.3.91.1011010185626.9717C@eng4.beaverton.ibm.com>
Content-Description: wmbdd2.v2.4.10.patch.

ZGlmZiAtdXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIu
NC4xMC9hcmNoL2FscGhhL2tlcm5lbC9zbXAuYyBsaW51eC0yLjQuMTAud21i
ZGQvYXJjaC9hbHBoYS9rZXJuZWwvc21wLmMNCi0tLSBsaW51eC0yLjQuMTAv
YXJjaC9hbHBoYS9rZXJuZWwvc21wLmMJVGh1IFNlcCAxMyAxNToyMTozMiAy
MDAxDQorKysgbGludXgtMi40LjEwLndtYmRkL2FyY2gvYWxwaGEva2VybmVs
L3NtcC5jCU1vbiBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTYzLDggKzYz
LDIwIEBADQogCUlQSV9SRVNDSEVEVUxFLA0KIAlJUElfQ0FMTF9GVU5DLA0K
IAlJUElfQ1BVX1NUT1AsDQorCUlQSV9NQiwNCiB9Ow0KIA0KKy8qIEdsb2Jh
bCBhbmQgcGVyLUNQVSBzdGF0ZSBmb3IgZ2xvYmFsIE1CIHNob290ZG93bi4g
Ki8NCitzdGF0aWMgc3RydWN0IHsNCisJc3BpbmxvY2tfdCBtdXRleDsNCisJ
dW5zaWduZWQgbG9uZyBuZWVkX21iOwkvKiBiaXRtYXNrIG9mIENQVXMgdGhh
dCBuZWVkIHRvIGRvICJtYiIuICovDQorCWxvbmcgY3VyZ2VuOwkJLyogRWFj
aCAiZ2VuZXJhdGlvbiIgaXMgYSBncm91cCBvZiByZXF1ZXN0cyAqLw0KKwls
b25nIG1heGdlbjsJCS8qICB0aGF0IGlzIGhhbmRsZWQgYnkgb25lIHNldCBv
ZiAibWIicy4gKi8NCit9IG1iX2dsb2JhbF9kYXRhIF9fY2FjaGVsaW5lX2Fs
aWduZWQgPSB7IFNQSU5fTE9DS19VTkxPQ0tFRCwgMCwgMSwgMCB9Ow0KK3N0
YXRpYyBzdHJ1Y3Qgew0KKwlsb25nIG15Z2VuIF9fX19jYWNoZWxpbmVfYWxp
Z25lZDsNCit9IG1iX2RhdGFbTlJfQ1BVU10gX19jYWNoZWxpbmVfYWxpZ25l
ZDsNCisNCiBzcGlubG9ja190IGtlcm5lbF9mbGFnID0gU1BJTl9MT0NLX1VO
TE9DS0VEOw0KIA0KIC8qIFNldCB0byBhIHNlY29uZGFyeSdzIGNwdWlkIHdo
ZW4gaXQgY29tZXMgb25saW5lLiAgKi8NCkBAIC03NzIsNiArNzg0LDQxIEBA
DQogCWdvdG8gYWdhaW47DQogfQ0KIA0KKy8qDQorICogRXhlY3V0ZSBhbiAi
bWIiIGluc3RydWN0aW9uIGluIHJlc3BvbnNlIHRvIGFuIElQSV9NQi4gIEFs
c28gZGlyZWN0bHkNCisgKiBjYWxsZWQgYnkgc21wX2dsb2JhbF9tYigpLiAg
SWYgdGhpcyBpcyB0aGUgbGFzdCBDUFUgdG8gcmVzcG9uZCB0bw0KKyAqIGFu
IHNtcF9nbG9iYWxfbWIoKSwgdGhlbiBjaGVjayB0byBzZWUgaWYgYW4gYWRk
aXRpb25hbCBnZW5lcmF0aW9uIG9mDQorICogcmVxdWVzdHMgbmVlZHMgdG8g
YmUgc2F0aXNmaWVkLg0KKyAqLw0KKw0KK3ZvaWQNCitoYW5kbGVfbWJfaXBp
KHZvaWQpDQorew0KKwlpbnQgdGhpc19jcHUgPSBzbXBfcHJvY2Vzc29yX2lk
KCk7DQorCXVuc2lnbmVkIGxvbmcgdGhpc19jcHVfbWFzayA9IDFVTCA8PCB0
aGlzX2NwdTsNCisJdW5zaWduZWQgbG9uZyBmbGFnczsNCisJdW5zaWduZWQg
bG9uZyB0b193aG9tID0gY3B1X3ByZXNlbnRfbWFzayBeIHRoaXNfY3B1X21h
c2s7DQorDQorCS8qIEF2b2lkIGxvY2sgY29udGVudGlvbiB3aGVuIGV4dHJh
IElQSXMgYXJyaXZlIChkdWUgdG8gcmFjZSkgYW5kDQorCSAgIHdoZW4gd2Fp
dGluZyBmb3IgZ2xvYmFsIG1iIHNob290ZG93bi4gKi8NCisJaWYgKChtYl9n
bG9iYWxfZGF0YS5uZWVkX21iICYgdGhpc19jcHVfbWFzaykgPT0gMCkgew0K
KwkJcmV0dXJuOw0KKwl9DQorCXNwaW5fbG9ja19pcnFzYXZlKCZtYl9nbG9i
YWxfZGF0YS5tdXRleCwgZmxhZ3MpOyAvKiBpbXBsaWVkIG1iICovDQorCWlm
ICgobWJfZ2xvYmFsX2RhdGEubmVlZF9tYiAmIHRoaXNfY3B1X21hc2spID09
IDApIHsNCisJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1iX2dsb2JhbF9k
YXRhLm11dGV4LCBmbGFncyk7DQorCQlyZXR1cm47DQorCX0NCisJbWJfZ2xv
YmFsX2RhdGEubmVlZF9tYiAmPSB+dGhpc19jcHVfbWFzazsNCisJaWYgKG1i
X2dsb2JhbF9kYXRhLm5lZWRfbWIgPT0gMCkgew0KKwkJaWYgKCsrbWJfZ2xv
YmFsX2RhdGEuY3VyZ2VuIC0gbWJfZ2xvYmFsX2RhdGEubWF4Z2VuIDw9IDAp
IHsNCisJCQltYl9nbG9iYWxfZGF0YS5uZWVkX21iID0gdG9fd2hvbTsNCisJ
CQlzZW5kX2lwaV9tZXNzYWdlKHRvX3dob20sIElQSV9NQik7DQorCQl9DQor
CX0NCisJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmbWJfZ2xvYmFsX2RhdGEu
bXV0ZXgsIGZsYWdzKTsgLyogaW1wbGllZCBtYiAqLw0KK30NCisNCiB2b2lk
DQogaGFuZGxlX2lwaShzdHJ1Y3QgcHRfcmVncyAqcmVncykNCiB7DQpAQCAt
ODI1LDYgKzg3Miw5IEBADQogCQllbHNlIGlmICh3aGljaCA9PSBJUElfQ1BV
X1NUT1ApIHsNCiAJCQloYWx0KCk7DQogCQl9DQorCQllbHNlIGlmICh3aGlj
aCA9PSBJUElfTUIpIHsNCisJCQloYW5kbGVfbWJfaXBpKCk7DQorCQl9DQog
CQllbHNlIHsNCiAJCQlwcmludGsoS0VSTl9DUklUICJVbmtub3duIElQSSBv
biBDUFUgJWQ6ICVsdVxuIiwNCiAJCQkgICAgICAgdGhpc19jcHUsIHdoaWNo
KTsNCkBAIC04NjAsNiArOTEwLDU4IEBADQogCQlwcmludGsoS0VSTl9XQVJO
SU5HICJzbXBfc2VuZF9zdG9wOiBOb3Qgb24gYm9vdCBjcHUuXG4iKTsNCiAj
ZW5kaWYNCiAJc2VuZF9pcGlfbWVzc2FnZSh0b193aG9tLCBJUElfQ1BVX1NU
T1ApOw0KK30NCisNCisvKg0KKyAqIEV4ZWN1dGUgYW4gIm1iIiBpbnN0cnVj
dGlvbiwgdGhlbiBmb3JjZSBhbGwgb3RoZXIgQ1BVcyB0byBleGVjdXRlICJt
YiINCisgKiBpbnN0cnVjdGlvbnMuICBEb2VzIG5vdCBibG9jay4gIE9uY2Ug
dGhpcyBmdW5jdGlvbiByZXR1cm5zLCB0aGUgY2FsbGVyDQorICogaXMgZ3Vh
cmFudGVlZCB0aGF0IGFsbCBvZiBpdHMgbWVtb3J5IHdyaXRlcyBwcmVjZWRp
bmcgdGhlIGNhbGwgdG8NCisgKiBzbXBfZ2xvYmFsX21iKCkgd2lsbCBiZSBz
ZWVuIGJ5IGFsbCBDUFVzIGFzIHByZWNlZGluZyBhbGwgbWVtb3J5DQorICog
d3JpdGVzIGZvbGxvd2luZyB0aGUgY2FsbCB0byBzbXBfZ2xvYmFsX21iKCku
DQorICoNCisgKiBGb3IgZXhhbXBsZSwgaWYgQ1BVIDAgZG9lczoNCisgKglh
LmRhdGEgPSAxOw0KKyAqCXNtcF9nbG9iYWxfbWIoKTsNCisgKglwID0gJmE7
DQorICogYW5kIENQVSAxIGRvZXM6DQorICoJZCA9IHAtPmRhdGE7DQorICog
d2hlcmUgYS5kYXRhIGlzIGluaXRpYWxseSBnYXJiYWdlIGFuZCBwIGluaXRp
YWxseSBwb2ludHMgdG8gYW5vdGhlcg0KKyAqIHN0cnVjdHVyZSB3aXRoIHRo
ZSAiZGF0YSIgZmllbGQgYmVpbmcgemVybywgdGhlbiBDUFUgMSB3aWxsIGJl
DQorICogZ3VhcmFudGVlZCB0byBoYXZlICJkIiBzZXQgdG8gZWl0aGVyIDAg
b3IgMSwgbmV2ZXIgZ2FyYmFnZS4NCisgKg0KKyAqIE5vdGUgdGhhdCB0aGUg
QWxwaGEgIndtYiIgaW5zdHJ1Y3Rpb24gaXMgLW5vdC0gc3VmZmljaWVudCEh
ISAgSWYgQ1BVIDANCisgKiB3ZXJlIHJlcGxhY2UgdGhlIHNtcF9nbG9iYWxf
bWIoKSB3aXRoIGEgd21iKCksIHRoZW4gQ1BVIDEgY291bGQgZW5kDQorICog
dXAgd2l0aCBnYXJiYWdlIGluICJkIiENCisgKg0KKyAqIFRoaXMgZnVuY3Rp
b24gc2VuZHMgSVBJcyB0byBhbGwgb3RoZXIgQ1BVcywgdGhlbiBzcGlucyB3
YWl0aW5nIGZvcg0KKyAqIHRoZW0gdG8gcmVjZWl2ZSB0aGUgSVBJIGFuZCBl
eGVjdXRlIGFuICJtYiIgaW5zdHJ1Y3Rpb24uICBXaGlsZQ0KKyAqIHNwaW5u
aW5nLCB0aGlzIGZ1bmN0aW9uIC1tdXN0LSByZXNwb25kIHRvIG90aGVyIENQ
VXMgZXhlY3V0aW5nDQorICogc21wX2dsb2JhbF9tYigpIGNvbmN1cnJlbnRs
eSwgb3RoZXJ3aXNlLCBkZWFkbG9jayB3b3VsZCByZXN1bHQuDQorICovDQor
DQordm9pZA0KK3NtcF9nbG9iYWxfbWIodm9pZCkNCit7DQorCWludCB0aGlz
X2NwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsNCisJdW5zaWduZWQgbG9uZyB0
aGlzX2NwdV9tYXNrID0gMVVMIDw8IHRoaXNfY3B1Ow0KKwl1bnNpZ25lZCBs
b25nIGZsYWdzOw0KKwl1bnNpZ25lZCBsb25nIHRvX3dob20gPSBjcHVfcHJl
c2VudF9tYXNrIF4gdGhpc19jcHVfbWFzazsNCisNCisJc3Bpbl9sb2NrX2ly
cXNhdmUoJm1iX2dsb2JhbF9kYXRhLm11dGV4LCBmbGFncyk7IC8qIGltcGxp
ZWQgbWIgKi8NCisJaWYgKG1iX2dsb2JhbF9kYXRhLmN1cmdlbiAtIG1iX2ds
b2JhbF9kYXRhLm1heGdlbiA8PSAwKSB7DQorCQltYl9nbG9iYWxfZGF0YS5t
YXhnZW4gPSBtYl9nbG9iYWxfZGF0YS5jdXJnZW4gKyAxOw0KKwl9IGVsc2Ug
ew0KKwkJbWJfZ2xvYmFsX2RhdGEubWF4Z2VuID0gbWJfZ2xvYmFsX2RhdGEu
Y3VyZ2VuOw0KKwkJbWJfZ2xvYmFsX2RhdGEubmVlZF9tYiA9IHRvX3dob207
DQorCQlzZW5kX2lwaV9tZXNzYWdlKHRvX3dob20sIElQSV9NQik7DQorCX0N
CisJbWJfZGF0YVt0aGlzX2NwdV0ubXlnZW4gPSBtYl9nbG9iYWxfZGF0YS5t
YXhnZW47DQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1iX2dsb2JhbF9k
YXRhLm11dGV4LCBmbGFncyk7DQorCXdoaWxlIChtYl9kYXRhW3RoaXNfY3B1
XS5teWdlbiAtIG1iX2dsb2JhbF9kYXRhLmN1cmdlbiA+PSAwKSB7DQorCQlo
YW5kbGVfbWJfaXBpKCk7DQorCQliYXJyaWVyKCk7DQorCX0NCisJDQogfQ0K
IA0KIC8qDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9udGRpZmYg
bGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWFscGhhL3N5c3RlbS5oIGxpbnV4
LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaA0KLS0t
IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1hbHBoYS9zeXN0ZW0uaAlTdW4g
QXVnIDEyIDEwOjM4OjQ3IDIwMDENCisrKyBsaW51eC0yLjQuMTAud21iZGQv
aW5jbHVkZS9hc20tYWxwaGEvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMTox
OCAyMDAxDQpAQCAtMTUxLDE0ICsxNTEsMjEgQEANCiAjZGVmaW5lIHdtYigp
IFwNCiBfX2FzbV9fIF9fdm9sYXRpbGVfXygid21iIjogOiA6Im1lbW9yeSIp
DQogDQorI2RlZmluZSBtYmRkKCkJCXNtcF9tYmRkKCkNCisjZGVmaW5lIHdt
YmRkKCkJCXNtcF93bWJkZCgpDQorDQogI2lmZGVmIENPTkZJR19TTVANCiAj
ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo
KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk
ZCgpCXNtcF9nbG9iYWxfbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJc21w
X21iZGQoKQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkN
CiAjZGVmaW5lIHNtcF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93
bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigp
DQorI2RlZmluZSBzbXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiAN
CiAjZGVmaW5lIHNldF9tYih2YXIsIHZhbHVlKSBcDQpkaWZmIC11ck4gLVgg
L2hvbWUvbWNrZW5uZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUv
YXNtLWFybS9zeXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9h
c20tYXJtL3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNt
LWFybS9zeXN0ZW0uaAlNb24gTm92IDI3IDE3OjA3OjU5IDIwMDANCisrKyBs
aW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tYXJtL3N5c3RlbS5oCU1v
biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTM5LDYgKzM5LDggQEANCiAj
ZGVmaW5lIG1iKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCIiIDogOiA6ICJt
ZW1vcnkiKQ0KICNkZWZpbmUgcm1iKCkgbWIoKQ0KICNkZWZpbmUgd21iKCkg
bWIoKQ0KKyNkZWZpbmUgbWJkZCgpIG1iKCkNCisjZGVmaW5lIHdtYmRkKCkg
d21iKCkNCiAjZGVmaW5lIG5vcCgpIF9fYXNtX18gX192b2xhdGlsZV9fKCJt
b3ZcdHIwLHIwXHRAIG5vcFxuXHQiKTsNCiANCiAjZGVmaW5lIHByZXBhcmVf
dG9fc3dpdGNoKCkgICAgZG8geyB9IHdoaWxlKDApDQpAQCAtNjgsMTIgKzcw
LDE2IEBADQogI2RlZmluZSBzbXBfbWIoKQkJbWIoKQ0KICNkZWZpbmUgc21w
X3JtYigpCQlybWIoKQ0KICNkZWZpbmUgc21wX3dtYigpCQl3bWIoKQ0KKyNk
ZWZpbmUgc21wX21iZGQoKQkJcm1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRk
KCkJCXdtYmRkKCkNCiANCiAjZWxzZQ0KIA0KICNkZWZpbmUgc21wX21iKCkJ
CWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3JtYigpCQliYXJyaWVyKCkNCiAj
ZGVmaW5lIHNtcF93bWIoKQkJYmFycmllcigpDQorI2RlZmluZSBzbXBfbWJk
ZCgpCQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpCQliYXJyaWVy
KCkNCiANCiAjZGVmaW5lIGNsaSgpCQkJX19jbGkoKQ0KICNkZWZpbmUgc3Rp
KCkJCQlfX3N0aSgpDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u
dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgg
bGludXgtMi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLWNyaXMvc3lzdGVtLmgN
Ci0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tY3Jpcy9zeXN0ZW0uaAlU
dWUgTWF5ICAxIDE2OjA1OjAwIDIwMDENCisrKyBsaW51eC0yLjQuMTAud21i
ZGQvaW5jbHVkZS9hc20tY3Jpcy9zeXN0ZW0uaAlNb24gT2N0ICA4IDE4OjMx
OjE4IDIwMDENCkBAIC0xNDQsMTUgKzE0NCwyMSBAQA0KICNkZWZpbmUgbWIo
KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpDQog
I2RlZmluZSBybWIoKSBtYigpDQogI2RlZmluZSB3bWIoKSBtYigpDQorI2Rl
ZmluZSBtYmRkKCkgbWIoKQ0KKyNkZWZpbmUgd21iZGQoKSB3bWIoKQ0KIA0K
ICNpZmRlZiBDT05GSUdfU01QDQogI2RlZmluZSBzbXBfbWIoKSAgICAgICAg
bWIoKQ0KICNkZWZpbmUgc21wX3JtYigpICAgICAgIHJtYigpDQogI2RlZmlu
ZSBzbXBfd21iKCkgICAgICAgd21iKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkg
ICAgICBtYmRkKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpICAgICB3bWJkZCgp
DQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpICAgICAgICBiYXJyaWVyKCkN
CiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgICBiYXJyaWVyKCkNCiAjZGVmaW5l
IHNtcF93bWIoKSAgICAgICBiYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRk
KCkgICAgICBiYXJyaWVyKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpICAgICBi
YXJyaWVyKCkNCiAjZW5kaWYNCiANCiAjZGVmaW5lIGlyZXQoKQ0KZGlmZiAt
dXJOIC1YIC9ob21lL21ja2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9p
bmNsdWRlL2FzbS1pMzg2L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9p
bmNsdWRlL2FzbS1pMzg2L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2lu
Y2x1ZGUvYXNtLWkzODYvc3lzdGVtLmgJU3VuIFNlcCAyMyAxMDozMTowMSAy
MDAxDQorKysgbGludXgtMi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLWkzODYv
c3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMjg1LDE1
ICsyODUsMjEgQEANCiAjZGVmaW5lIG1iKCkgCV9fYXNtX18gX192b2xhdGls
ZV9fICgibG9jazsgYWRkbCAkMCwwKCUlZXNwKSI6IDogOiJtZW1vcnkiKQ0K
ICNkZWZpbmUgcm1iKCkJbWIoKQ0KICNkZWZpbmUgd21iKCkJX19hc21fXyBf
X3ZvbGF0aWxlX18gKCIiOiA6IDoibWVtb3J5IikNCisjZGVmaW5lIG1iZGQo
KQltYigpDQorI2RlZmluZSB3bWJkZCgpCXdtYigpDQogDQogI2lmZGVmIENP
TkZJR19TTVANCiAjZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNt
cF9ybWIoKQlybWIoKQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2Rl
ZmluZSBzbXBfbWJkZCgpCW1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJ
d21iZGQoKQ0KICNlbHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkN
CiAjZGVmaW5lIHNtcF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93
bWIoKQliYXJyaWVyKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigp
DQorI2RlZmluZSBzbXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiAN
CiAjZGVmaW5lIHNldF9tYih2YXIsIHZhbHVlKSBkbyB7IHhjaGcoJnZhciwg
dmFsdWUpOyB9IHdoaWxlICgwKQ0KZGlmZiAtdXJOIC1YIC9ob21lL21ja2Vu
bmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1pYTY0L3N5
c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1pYTY0L3N5
c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLWlhNjQvc3lz
dGVtLmgJVHVlIEp1bCAzMSAxMDozMDowOSAyMDAxDQorKysgbGludXgtMi40
LjEwLndtYmRkL2luY2x1ZGUvYXNtLWlhNjQvc3lzdGVtLmgJTW9uIE9jdCAg
OCAxODozMToxOCAyMDAxDQpAQCAtODQsMTEgKzg0LDM2IEBADQogICoJCWxp
a2UgcmVnaW9ucyBhcmUgdmlzaWJsZSBiZWZvcmUgYW55IHN1YnNlcXVlbnQN
CiAgKgkJc3RvcmVzIGFuZCB0aGF0IGFsbCBmb2xsb3dpbmcgc3RvcmVzIHdp
bGwgYmUNCiAgKgkJdmlzaWJsZSBvbmx5IGFmdGVyIGFsbCBwcmV2aW91cyBz
dG9yZXMuDQotICogICBybWIoKToJTGlrZSB3bWIoKSwgYnV0IGZvciByZWFk
cy4NCisgKgkJSW4gY29tbW9uIGNvZGUsIGFueSByZWFkcyB0aGF0IGRlcGVu
ZCBvbiB0aGlzDQorICoJCW9yZGVyaW5nIG11c3QgYmUgc2VwYXJhdGVkIGJ5
IGFuIG1iKCkgb3Igcm1iKCkuDQorICogICBybWIoKToJR3VhcmFudGVlcyB0
aGF0IGFsbCBwcmVjZWRpbmcgbG9hZHMgdG8gbWVtb3J5LQ0KKyAqCQlsaWtl
IHJlZ2lvbnMgYXJlIGV4ZWN1dGVkIGJlZm9yZSBhbnkgc3Vic2VxdWVudA0K
KyAqCQlsb2Fkcy4NCiAgKiAgIG1iKCk6CXdtYigpL3JtYigpIGNvbWJvLCBp
LmUuLCBhbGwgcHJldmlvdXMgbWVtb3J5DQogICoJCWFjY2Vzc2VzIGFyZSB2
aXNpYmxlIGJlZm9yZSBhbGwgc3Vic2VxdWVudA0KICAqCQlhY2Nlc3NlcyBh
bmQgdmljZSB2ZXJzYS4gIFRoaXMgaXMgYWxzbyBrbm93biBhcw0KLSAqCQlh
ICJmZW5jZS4iDQorICoJCWEgImZlbmNlLiIgIEFnYWluLCBpbiBjb21tb24g
Y29kZSwgYW55IHJlYWRzIHRoYXQNCisgKgkJZGVwZW5kIG9uIHRoZSBvcmRl
ciBvZiB3cml0ZXMgbXVzdCB0aGVtc2VsdmVzIGJlDQorICoJCXNlcGFyYXRl
ZCBieSBhbiBtYigpIG9yIHJtYigpLg0KKyAqICAgd21iZGQoKToJR3VhcmFu
dGVlcyB0aGF0IGFsbCBwcmVjZWRpbmcgc3RvcmVzIHRvIG1lbW9yeS0NCisg
KgkJbGlrZSByZWdpb25zIGFyZSB2aXNpYmxlIGJlZm9yZSBhbnkgc3Vic2Vx
dWVudA0KKyAqCQlzdG9yZXMgYW5kIHRoYXQgYWxsIGZvbGxvd2luZyBzdG9y
ZXMgd2lsbCBiZQ0KKyAqCQl2aXNpYmxlIG9ubHkgYWZ0ZXIgYWxsIHByZXZp
b3VzIHN0b3Jlcy4NCisgKgkJSW4gY29tbW9uIGNvZGUsIGFueSByZWFkcyB0
aGF0IGRlcGVuZCBvbiB0aGlzDQorICoJCW9yZGVyaW5nIGVpdGhlciBtdXN0
IGJlIHNlcGFyYXRlZCBieSBhbiBtYigpDQorICoJCW9yIHJtYigpLCBvciB0
aGUgbGF0ZXIgcmVhZHMgbXVzdCBkZXBlbmQgb24NCisgKgkJZGF0YSBsb2Fk
ZWQgYnkgdGhlIGVhcmxpZXIgcmVhZHMuICBGb3IgYW4gZXhhbXBsZQ0KKyAq
CQlvZiB0aGUgbGF0dGVyLCBjb25zaWRlciAicC0+bmV4dCIuICBUaGUgcmVh
ZCBvZg0KKyAqCQl0aGUgIm5leHQiIGZpZWxkIGRlcGVuZHMgb24gdGhlIHJl
YWQgb2YgdGhlDQorICoJCXBvaW50ZXIgInAiLg0KKyAqICAgbWJkZCgpOgl3
bWIoKS9ybWIoKSBjb21ibywgaS5lLiwgYWxsIHByZXZpb3VzIG1lbW9yeQ0K
KyAqCQlhY2Nlc3NlcyBhcmUgdmlzaWJsZSBiZWZvcmUgYWxsIHN1YnNlcXVl
bnQNCisgKgkJYWNjZXNzZXMgYW5kIHZpY2UgdmVyc2EuICBUaGlzIGlzIGFs
c28ga25vd24gYXMNCisgKgkJYSAiZmVuY2UuIiAgQWdhaW4sIGluIGNvbW1v
biBjb2RlLCBhbnkgcmVhZHMgdGhhdA0KKyAqCQlkZXBlbmQgb24gdGhlIG9y
ZGVyIG9mIHdyaXRlcyBtdXN0IHRoZW1zZWx2ZXMgYmUNCisgKgkJc2VwYXJh
dGVkIGJ5IGFuIG1iKCkgb3Igcm1iKCksIG9yIHRoZXJlIG11c3QgYmUNCisg
KgkJYSBkYXRhIGRlcGVuZGVuY3kgdGhhdCBmb3JjZXMgdGhlIHNlY29uZCB0
bw0KKyAqCQl3YWl0IHVudGlsIHRoZSBmaXJzdCBjb21wbGV0ZXMuDQogICoN
CiAgKiBOb3RlOiAibWIoKSIgYW5kIGl0cyB2YXJpYW50cyBjYW5ub3QgYmUg
dXNlZCBhcyBhIGZlbmNlIHRvIG9yZGVyDQogICogYWNjZXNzZXMgdG8gbWVt
b3J5IG1hcHBlZCBJL08gcmVnaXN0ZXJzLiAgRm9yIHRoYXQsIG1mLmEgbmVl
ZHMgdG8NCkBAIC05OSwxNSArMTI0LDIxIEBADQogI2RlZmluZSBtYigpCV9f
YXNtX18gX192b2xhdGlsZV9fICgibWYiIDo6OiAibWVtb3J5IikNCiAjZGVm
aW5lIHJtYigpCW1iKCkNCiAjZGVmaW5lIHdtYigpCW1iKCkNCisjZGVmaW5l
IHJtYmRkKCkJbWIoKQ0KKyNkZWZpbmUgd21iZGQoKQltYigpDQogDQogI2lm
ZGVmIENPTkZJR19TTVANCiAjIGRlZmluZSBzbXBfbWIoKQltYigpDQogIyBk
ZWZpbmUgc21wX3JtYigpCXJtYigpDQogIyBkZWZpbmUgc21wX3dtYigpCXdt
YigpDQorIyBkZWZpbmUgc21wX21iZGQoKQltYmRkKCkNCisjIGRlZmluZSBz
bXBfd21iZGQoKQl3bWJkZCgpDQogI2Vsc2UNCiAjIGRlZmluZSBzbXBfbWIo
KQliYXJyaWVyKCkNCiAjIGRlZmluZSBzbXBfcm1iKCkJYmFycmllcigpDQog
IyBkZWZpbmUgc21wX3dtYigpCWJhcnJpZXIoKQ0KKyMgZGVmaW5lIHNtcF9t
YmRkKCkJYmFycmllcigpDQorIyBkZWZpbmUgc21wX3dtYmRkKCkJYmFycmll
cigpDQogI2VuZGlmDQogDQogLyoNCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tl
bm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tbTY4ay9z
eXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tbTY4ay9z
eXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1tNjhrL3N5
c3RlbS5oCU1vbiBKdW4gMTEgMTk6MTU6MjcgMjAwMQ0KKysrIGxpbnV4LTIu
NC4xMC53bWJkZC9pbmNsdWRlL2FzbS1tNjhrL3N5c3RlbS5oCU1vbiBPY3Qg
IDggMTg6MzE6MTggMjAwMQ0KQEAgLTgxLDEyICs4MSwxNiBAQA0KICNkZWZp
bmUgbWIoKQkJYmFycmllcigpDQogI2RlZmluZSBybWIoKQkJYmFycmllcigp
DQogI2RlZmluZSB3bWIoKQkJYmFycmllcigpDQorI2RlZmluZSBybWJkZCgp
CQliYXJyaWVyKCkNCisjZGVmaW5lIHdtYmRkKCkJCWJhcnJpZXIoKQ0KICNk
ZWZpbmUgc2V0X21iKHZhciwgdmFsdWUpICAgIGRvIHsgeGNoZygmdmFyLCB2
YWx1ZSk7IH0gd2hpbGUgKDApDQogI2RlZmluZSBzZXRfd21iKHZhciwgdmFs
dWUpICAgIGRvIHsgdmFyID0gdmFsdWU7IHdtYigpOyB9IHdoaWxlICgwKQ0K
IA0KICNkZWZpbmUgc21wX21iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBf
cm1iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigp
DQorI2RlZmluZSBzbXBfbWJkZCgpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21w
X3dtYmRkKCkJYmFycmllcigpDQogDQogDQogI2RlZmluZSB4Y2hnKHB0cix4
KSAoKF9fdHlwZW9mX18oKihwdHIpKSlfX3hjaGcoKHVuc2lnbmVkIGxvbmcp
KHgpLChwdHIpLHNpemVvZigqKHB0cikpKSkNCmRpZmYgLXVyTiAtWCAvaG9t
ZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20t
bWlwcy9zeXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20t
bWlwcy9zeXN0ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1t
aXBzL3N5c3RlbS5oCVN1biBTZXAgIDkgMTA6NDM6MDEgMjAwMQ0KKysrIGxp
bnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1taXBzL3N5c3RlbS5oCU1v
biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTE1Miw2ICsxNTIsOCBAQA0K
ICNkZWZpbmUgcm1iKCkJZG8geyB9IHdoaWxlKDApDQogI2RlZmluZSB3bWIo
KQl3YmZsdXNoKCkNCiAjZGVmaW5lIG1iKCkJd2JmbHVzaCgpDQorI2RlZmlu
ZSB3bWJkZCgpCXdiZmx1c2goKQ0KKyNkZWZpbmUgbWJkZCgpCXdiZmx1c2go
KQ0KIA0KICNlbHNlIC8qIENPTkZJR19DUFVfSEFTX1dCICAqLw0KIA0KQEAg
LTE2Nyw2ICsxNjksOCBAQA0KIAk6ICJtZW1vcnkiKQ0KICNkZWZpbmUgcm1i
KCkgbWIoKQ0KICNkZWZpbmUgd21iKCkgbWIoKQ0KKyNkZWZpbmUgd21iZGQo
KQltYigpDQorI2RlZmluZSBtYmRkKCkJbWIoKQ0KIA0KICNlbmRpZiAvKiBD
T05GSUdfQ1BVX0hBU19XQiAgKi8NCiANCkBAIC0xNzQsMTAgKzE3OCwxNCBA
QA0KICNkZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigp
CXJtYigpDQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNt
cF9tYmRkKCkJbWJkZCgpDQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWJkZCgp
DQogI2Vsc2UNCiAjZGVmaW5lIHNtcF9tYigpCWJhcnJpZXIoKQ0KICNkZWZp
bmUgc21wX3JtYigpCWJhcnJpZXIoKQ0KICNkZWZpbmUgc21wX3dtYigpCWJh
cnJpZXIoKQ0KKyNkZWZpbmUgc21wX21iZGQoKQliYXJyaWVyKCkNCisjZGVm
aW5lIHNtcF93bWJkZCgpCWJhcnJpZXIoKQ0KICNlbmRpZg0KIA0KICNkZWZp
bmUgc2V0X21iKHZhciwgdmFsdWUpIFwNCmRpZmYgLXVyTiAtWCAvaG9tZS9t
Y2tlbm5leS9kb250ZGlmZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tbWlw
czY0L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1t
aXBzNjQvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20t
bWlwczY0L3N5c3RlbS5oCVdlZCBKdWwgIDQgMTE6NTA6MzkgMjAwMQ0KKysr
IGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1taXBzNjQvc3lzdGVt
LmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMTQ4LDE1ICsxNDgs
MjEgQEANCiAJOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpIG1iKCkNCiAj
ZGVmaW5lIHdtYigpIG1iKCkNCisjZGVmaW5lIHJtYmRkKCkgbWIoKQ0KKyNk
ZWZpbmUgd21iZGQoKSBtYigpDQogDQogI2lmZGVmIENPTkZJR19TTVANCiAj
ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo
KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk
ZCgpCW1iZGQoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJd21iZGQoKQ0KICNl
bHNlDQogI2RlZmluZSBzbXBfbWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNt
cF9ybWIoKQliYXJyaWVyKCkNCiAjZGVmaW5lIHNtcF93bWIoKQliYXJyaWVy
KCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJYmFycmllcigpDQorI2RlZmluZSBz
bXBfd21iZGQoKQliYXJyaWVyKCkNCiAjZW5kaWYNCiANCiAjZGVmaW5lIHNl
dF9tYih2YXIsIHZhbHVlKSBcDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5u
ZXkvZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlzYy9z
eXN0ZW0uaCBsaW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tcGFyaXNj
L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXBhcmlz
Yy9zeXN0ZW0uaAlXZWQgRGVjICA2IDExOjQ2OjM5IDIwMDANCisrKyBsaW51
eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tcGFyaXNjL3N5c3RlbS5oCU1v
biBPY3QgIDggMTg6MzE6MTggMjAwMQ0KQEAgLTUxLDYgKzUxLDggQEANCiAj
ZGVmaW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIo
KQ0KICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJk
ZCgpCXJtYigpDQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWIoKQ0KICNlbHNl
DQogLyogVGhpcyBpcyBzaW1wbHkgdGhlIGJhcnJpZXIoKSBtYWNybyBmcm9t
IGxpbnV4L2tlcm5lbC5oIGJ1dCB3aGVuIHNlcmlhbC5jDQogICogdXNlcyB0
cXVldWUuaCB1c2VzIHNtcF9tYigpIGRlZmluZWQgdXNpbmcgYmFycmllcigp
LCBsaW51eC9rZXJuZWwuaA0KQEAgLTU5LDYgKzYxLDggQEANCiAjZGVmaW5l
IHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIp
Ow0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIi
Ojo6Im1lbW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192
b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21iZGQo
KQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisjZGVm
aW5lIHNtcF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1l
bW9yeSIpOw0KICNlbmRpZg0KIA0KIC8qIGludGVycnVwdCBjb250cm9sICov
DQpAQCAtMTIyLDYgKzEyNiw4IEBADQogDQogI2RlZmluZSBtYigpICBfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiIDogOiA6Im1lbW9yeSIpDQogI2Rl
ZmluZSB3bWIoKSBtYigpDQorI2RlZmluZSBtYmRkKCkgbWIoKQ0KKyNkZWZp
bmUgd21iZGQoKSBtYigpDQogDQogZXh0ZXJuIHVuc2lnbmVkIGxvbmcgX194
Y2hnKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcgKiwgaW50KTsNCiAN
CmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51eC0y
LjQuMTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53
bWJkZC9pbmNsdWRlL2FzbS1wcGMvc3lzdGVtLmgNCi0tLSBsaW51eC0yLjQu
MTAvaW5jbHVkZS9hc20tcHBjL3N5c3RlbS5oCVR1ZSBBdWcgMjggMDY6NTg6
MzMgMjAwMQ0KKysrIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1w
cGMvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOCAyMDAxDQpAQCAtMzMs
NiArMzMsOCBAQA0KICNkZWZpbmUgbWIoKSAgX19hc21fXyBfX3ZvbGF0aWxl
X18gKCJzeW5jIiA6IDogOiAibWVtb3J5IikNCiAjZGVmaW5lIHJtYigpICBf
X2FzbV9fIF9fdm9sYXRpbGVfXyAoInN5bmMiIDogOiA6ICJtZW1vcnkiKQ0K
ICNkZWZpbmUgd21iKCkgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZWllaW8i
IDogOiA6ICJtZW1vcnkiKQ0KKyNkZWZpbmUgbWJkZCgpCW1iKCkNCisjZGVm
aW5lIHdtYmRkKCkJd21iKCkNCiANCiAjZGVmaW5lIHNldF9tYih2YXIsIHZh
bHVlKQlkbyB7IHZhciA9IHZhbHVlOyBtYigpOyB9IHdoaWxlICgwKQ0KICNk
ZWZpbmUgc2V0X3dtYih2YXIsIHZhbHVlKQlkbyB7IHZhciA9IHZhbHVlOyB3
bWIoKTsgfSB3aGlsZSAoMCkNCkBAIC00MSwxMCArNDMsMTQgQEANCiAjZGVm
aW5lIHNtcF9tYigpCW1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKQlybWIoKQ0K
ICNkZWZpbmUgc21wX3dtYigpCXdtYigpDQorI2RlZmluZSBzbXBfbWJkZCgp
CW1iKCkNCisjZGVmaW5lIHNtcF93bWJkZCgpCXdtYigpDQogI2Vsc2UNCiAj
ZGVmaW5lIHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOiA6IDoi
bWVtb3J5IikNCiAjZGVmaW5lIHNtcF9ybWIoKQlfX2FzbV9fIF9fdm9sYXRp
bGVfXygiIjogOiA6Im1lbW9yeSIpDQogI2RlZmluZSBzbXBfd21iKCkJX19h
c21fXyBfX3ZvbGF0aWxlX18oIiI6IDogOiJtZW1vcnkiKQ0KKyNkZWZpbmUg
c21wX21iZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjogOiA6Im1lbW9y
eSIpDQorI2RlZmluZSBzbXBfd21iZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVf
XygiIjogOiA6Im1lbW9yeSIpDQogI2VuZGlmIC8qIENPTkZJR19TTVAgKi8N
CiANCiAjaWZkZWYgX19LRVJORUxfXw0KZGlmZiAtdXJOIC1YIC9ob21lL21j
a2VubmV5L2RvbnRkaWZmIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkw
L3N5c3RlbS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zMzkw
L3N5c3RlbS5oDQotLS0gbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTAv
c3lzdGVtLmgJV2VkIEp1bCAyNSAxNDoxMjowMiAyMDAxDQorKysgbGludXgt
Mi40LjEwLndtYmRkL2luY2x1ZGUvYXNtLXMzOTAvc3lzdGVtLmgJTW9uIE9j
dCAgOCAxODozMToxOCAyMDAxDQpAQCAtMTE4LDkgKzExOCwxMyBAQA0KICNk
ZWZpbmUgbWIoKSAgICBlaWVpbygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlv
KCkNCiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgbWJkZCgp
CW1iKCkNCisjZGVmaW5lIHdtYmRkKCkJd21iKCkNCiAjZGVmaW5lIHNtcF9t
YigpICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgIHJtYigp
DQogI2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KKyNkZWZpbmUgc21w
X21iZGQoKSAgICAgbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkgICAgd21i
KCkNCiAjZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpICAgICBz
bXBfbWIoKQ0KICNkZWZpbmUgc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKSAg
ICAgIHNtcF9tYigpDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkv
ZG9udGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXMzOTB4L3N5c3Rl
bS5oIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zMzkweC9zeXN0
ZW0uaA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zMzkweC9zeXN0
ZW0uaAlXZWQgSnVsIDI1IDE0OjEyOjAzIDIwMDENCisrKyBsaW51eC0yLjQu
MTAud21iZGQvaW5jbHVkZS9hc20tczM5MHgvc3lzdGVtLmgJTW9uIE9jdCAg
OCAxODozMToxOSAyMDAxDQpAQCAtMTMxLDkgKzEzMSwxMyBAQA0KICNkZWZp
bmUgbWIoKSAgICBlaWVpbygpDQogI2RlZmluZSBybWIoKSAgIGVpZWlvKCkN
CiAjZGVmaW5lIHdtYigpICAgZWllaW8oKQ0KKyNkZWZpbmUgbWJkZCgpCW1i
KCkNCisjZGVmaW5lIHdtYmRkKCkJd21iKCkNCiAjZGVmaW5lIHNtcF9tYigp
ICAgICAgIG1iKCkNCiAjZGVmaW5lIHNtcF9ybWIoKSAgICAgIHJtYigpDQog
I2RlZmluZSBzbXBfd21iKCkgICAgICB3bWIoKQ0KKyNkZWZpbmUgc21wX21i
ZGQoKSAgICAgbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkgICAgd21iKCkN
CiAjZGVmaW5lIHNtcF9tYl9fYmVmb3JlX2NsZWFyX2JpdCgpICAgICBzbXBf
bWIoKQ0KICNkZWZpbmUgc21wX21iX19hZnRlcl9jbGVhcl9iaXQoKSAgICAg
IHNtcF9tYigpDQogDQpkaWZmIC11ck4gLVggL2hvbWUvbWNrZW5uZXkvZG9u
dGRpZmYgbGludXgtMi40LjEwL2luY2x1ZGUvYXNtLXNoL3N5c3RlbS5oIGxp
bnV4LTIuNC4xMC53bWJkZC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaA0KLS0t
IGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zaC9zeXN0ZW0uaAlTYXQgU2Vw
ICA4IDEyOjI5OjA5IDIwMDENCisrKyBsaW51eC0yLjQuMTAud21iZGQvaW5j
bHVkZS9hc20tc2gvc3lzdGVtLmgJTW9uIE9jdCAgOCAxODozMToxOSAyMDAx
DQpAQCAtODksMTUgKzg5LDIxIEBADQogI2RlZmluZSBtYigpCV9fYXNtX18g
X192b2xhdGlsZV9fICgiIjogOiA6Im1lbW9yeSIpDQogI2RlZmluZSBybWIo
KQltYigpDQogI2RlZmluZSB3bWIoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXyAo
IiI6IDogOiJtZW1vcnkiKQ0KKyNkZWZpbmUgbWJkZCgpCW1iKCkNCisjZGVm
aW5lIHdtYmRkKCkJd21iKCkNCiANCiAjaWZkZWYgQ09ORklHX1NNUA0KICNk
ZWZpbmUgc21wX21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigp
DQogI2RlZmluZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNtcF9tYmRk
KCkJbWIoKQ0KKyNkZWZpbmUgc21wX3dtYmRkKCkJd21iKCkNCiAjZWxzZQ0K
ICNkZWZpbmUgc21wX21iKCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfcm1i
KCkJYmFycmllcigpDQogI2RlZmluZSBzbXBfd21iKCkJYmFycmllcigpDQor
I2RlZmluZSBzbXBfbWJkZCgpCWJhcnJpZXIoKQ0KKyNkZWZpbmUgc21wX3dt
YmRkKCkJYmFycmllcigpDQogI2VuZGlmDQogDQogI2RlZmluZSBzZXRfbWIo
dmFyLCB2YWx1ZSkgZG8geyB4Y2hnKCZ2YXIsIHZhbHVlKTsgfSB3aGlsZSAo
MCkNCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlmZiBsaW51
eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmMvc3lzdGVtLmggbGludXgtMi40
LjEwLndtYmRkL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oDQotLS0gbGlu
dXgtMi40LjEwL2luY2x1ZGUvYXNtLXNwYXJjL3N5c3RlbS5oCVR1ZSBPY3Qg
IDMgMDk6MjQ6NDEgMjAwMA0KKysrIGxpbnV4LTIuNC4xMC53bWJkZC9pbmNs
dWRlL2FzbS1zcGFyYy9zeXN0ZW0uaAlNb24gT2N0ICA4IDE4OjMxOjE5IDIw
MDENCkBAIC0yNzgsMTEgKzI3OCwxNSBAQA0KICNkZWZpbmUgbWIoKQlfX2Fz
bV9fIF9fdm9sYXRpbGVfXyAoIiIgOiA6IDogIm1lbW9yeSIpDQogI2RlZmlu
ZSBybWIoKQltYigpDQogI2RlZmluZSB3bWIoKQltYigpDQorI2RlZmluZSBt
YmRkKCkJbWIoKQ0KKyNkZWZpbmUgd21iZGQoKQl3bWIoKQ0KICNkZWZpbmUg
c2V0X21iKF9fdmFyLCBfX3ZhbHVlKSAgZG8geyBfX3ZhciA9IF9fdmFsdWU7
IG1iKCk7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNldF93bWIoX192YXIsIF9f
dmFsdWUpIHNldF9tYihfX3ZhciwgX192YWx1ZSkNCiAjZGVmaW5lIHNtcF9t
YigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KICNk
ZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1l
bW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18gX192b2xhdGls
ZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21iZGQoKQlfX2Fz
bV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisjZGVmaW5lIHNt
cF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIp
Ow0KIA0KICNkZWZpbmUgbm9wKCkgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJu
b3AiKTsNCiANCmRpZmYgLXVyTiAtWCAvaG9tZS9tY2tlbm5leS9kb250ZGlm
ZiBsaW51eC0yLjQuMTAvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0uaCBs
aW51eC0yLjQuMTAud21iZGQvaW5jbHVkZS9hc20tc3BhcmM2NC9zeXN0ZW0u
aA0KLS0tIGxpbnV4LTIuNC4xMC9pbmNsdWRlL2FzbS1zcGFyYzY0L3N5c3Rl
bS5oCUZyaSBTZXAgIDcgMTE6MDE6MjAgMjAwMQ0KKysrIGxpbnV4LTIuNC4x
MC53bWJkZC9pbmNsdWRlL2FzbS1zcGFyYzY0L3N5c3RlbS5oCVdlZCBPY3Qg
MTAgMTY6NDM6MjEgMjAwMQ0KQEAgLTEwMCw2ICsxMDAsOCBAQA0KIAltZW1i
YXIoIiNMb2FkTG9hZCB8ICNMb2FkU3RvcmUgfCAjU3RvcmVTdG9yZSB8ICNT
dG9yZUxvYWQiKTsNCiAjZGVmaW5lIHJtYigpCQltZW1iYXIoIiNMb2FkTG9h
ZCIpDQogI2RlZmluZSB3bWIoKQkJbWVtYmFyKCIjU3RvcmVTdG9yZSIpDQor
I2RlZmluZSBtYmRkKCkJCW1iKCkNCisjZGVmaW5lIHdtYmRkKCkJCXdtYigp
DQogI2RlZmluZSBzZXRfbWIoX192YXIsIF9fdmFsdWUpIFwNCiAJZG8geyBf
X3ZhciA9IF9fdmFsdWU7IG1lbWJhcigiI1N0b3JlTG9hZCB8ICNTdG9yZVN0
b3JlIik7IH0gd2hpbGUoMCkNCiAjZGVmaW5lIHNldF93bWIoX192YXIsIF9f
dmFsdWUpIFwNCkBAIC0xMDksMTAgKzExMSwxNCBAQA0KICNkZWZpbmUgc21w
X21iKCkJbWIoKQ0KICNkZWZpbmUgc21wX3JtYigpCXJtYigpDQogI2RlZmlu
ZSBzbXBfd21iKCkJd21iKCkNCisjZGVmaW5lIHNtcF9tYmRkKCkJbWJkZCgp
DQorI2RlZmluZSBzbXBfd21iZGQoKQl3bWJkZCgpDQogI2Vsc2UNCiAjZGVm
aW5lIHNtcF9tYigpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6Im1lbW9y
eSIpOw0KICNkZWZpbmUgc21wX3JtYigpCV9fYXNtX18gX192b2xhdGlsZV9f
KCIiOjo6Im1lbW9yeSIpOw0KICNkZWZpbmUgc21wX3dtYigpCV9fYXNtX18g
X192b2xhdGlsZV9fKCIiOjo6Im1lbW9yeSIpOw0KKyNkZWZpbmUgc21wX21i
ZGQoKQlfX2FzbV9fIF9fdm9sYXRpbGVfXygiIjo6OiJtZW1vcnkiKTsNCisj
ZGVmaW5lIHNtcF93bWJkZCgpCV9fYXNtX18gX192b2xhdGlsZV9fKCIiOjo6
Im1lbW9yeSIpOw0KICNlbmRpZg0KIA0KICNkZWZpbmUgZmx1c2hpKGFkZHIp
CV9fYXNtX18gX192b2xhdGlsZV9fICgiZmx1c2ggJTAiIDogOiAiciIgKGFk
ZHIpIDogIm1lbW9yeSIpDQo=
--0-851401618-1002765386=:9717--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/