This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c/9305: GCC 3.2.1 do segmentation fault


>Number:         9305
>Category:       c
>Synopsis:       GCC 3.2.1 do segmentation fault
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          rejects-legal
>Submitter-Id:   net
>Arrival-Date:   Tue Jan 14 03:36:04 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Klaus Ethgen
>Release:        3.2.1
>Organization:
>Environment:
LD_RUN_PATH=/usr/lib:/usr/openwin/lib
DISPLAY=localhost:24.0
TERM=xterm
HOME=/local-home/local
PATH=/usr/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/sbin:/usr/sepp/bin:/usr/sepp/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/usr/lib
OPENWINHOME=/usr/openwin
>Description:
The following Error I get if I compile netpbm-10.11.4 on a Solaris 8 maschine.

gcc is compiled with the following options:
Configured with: ../configure --prefix=/usr/pack/gcc-3.2.1-mo --exec-prefix=/usr/pack/gcc-3.2.1-mo/sun4u-sun-solaris2.8 --enable-shared --with-cpu=ultrasparc --enable-languages=c,c++,f77,java --enable-version-specific-runtime-libs --enable-threads

ppmpat.c: In function `sq_assign_colors':
ppmpat.c:860: internal error: Segmentation Fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.

>How-To-Repeat:
gcc-3.2.1 -c -I/usr/pack/gimp-1.2.3-ke/src/netpbm-10.11.4/generator -I. -pedantic -O3 -Wall -Wno-uninitialized -Wmissing-declarations -Wimplicit -Wwrite-strings -I/usr/pack/gimp-1.2.3-ke/sun4u-sun-solaris2.8/include  -o ppmpat.o ppmpat.c
>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-csrc; name="ppmpat.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ppmpat.c"

LyogcHBtcGF0LmMgLSBtYWtlIGEgcGl4bWFwCioqCioqIENvcHlyaWdodCAoQykgMTk4OSwgMTk5
MSBieSBKZWYgUG9za2FuemVyLgoqKgoqKiBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5
LCBhbmQgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGFuZCBpdHMKKiogZG9jdW1lbnRhdGlvbiBm
b3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLCBwcm92aWRl
ZAoqKiB0aGF0IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFwcGVhciBpbiBhbGwgY29waWVz
IGFuZCB0aGF0IGJvdGggdGhhdAoqKiBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np
b24gbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nCioqIGRvY3VtZW50YXRpb24uICBUaGlzIHNv
ZnR3YXJlIGlzIHByb3ZpZGVkICJhcyBpcyIgd2l0aG91dCBleHByZXNzIG9yCioqIGltcGxpZWQg
d2FycmFudHkuCiovCgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSAicHBtLmgiCiNpbmNsdWRl
ICJwcG1kcmF3LmgiCiNpZm5kZWYgTV9QSQojZGVmaW5lIE1fUEkJMy4xNDE1OTI2NTM1ODk3OTMy
Mzg0NgojZW5kaWYgLypNX1BJKi8KCnN0YXRpYyBwaXhlbCByYW5kb21fY29sb3IgQVJHUygoIHBp
eHZhbCBtYXh2YWwgKSk7CnN0YXRpYyBwaXhlbCByYW5kb21fYnJpZ2h0X2NvbG9yIEFSR1MoKCBw
aXh2YWwgbWF4dmFsICkpOwpzdGF0aWMgcGl4ZWwgcmFuZG9tX2RhcmtfY29sb3IgQVJHUygoIHBp
eHZhbCBtYXh2YWwgKSk7CnN0YXRpYyBwaXhlbCBhdmVyYWdlX3R3b19jb2xvcnMgQVJHUygoIHBp
eGVsIHAxLCBwaXhlbCBwMiApKTsKc3RhdGljIHZvaWQgZ2luZ2hhbTIgQVJHUygoIHBpeGVsKiog
cGl4ZWxzLCBpbnQgY29scywgaW50IHJvd3MsIHBpeHZhbCBtYXh2YWwgKSk7CnN0YXRpYyB2b2lk
IGdpbmdoYW0zIEFSR1MoKCBwaXhlbCoqIHBpeGVscywgaW50IGNvbHMsIGludCByb3dzLCBwaXh2
YWwgbWF4dmFsICkpOwpzdGF0aWMgdm9pZCBtYWRyYXMgQVJHUygoIHBpeGVsKiogcGl4ZWxzLCBp
bnQgY29scywgaW50IHJvd3MsIHBpeHZhbCBtYXh2YWwgKSk7CnN0YXRpYyB2b2lkIHRhcnRhbiBB
UkdTKCggcGl4ZWwqKiBwaXhlbHMsIGludCBjb2xzLCBpbnQgcm93cywgcGl4dmFsIG1heHZhbCAp
KTsKc3RhdGljIHZvaWQgcG9sZXMgQVJHUygoIHBpeGVsKiogcGl4ZWxzLCBpbnQgY29scywgaW50
IHJvd3MsIHBpeHZhbCBtYXh2YWwgKSk7CnN0YXRpYyB2b2lkIHNxdWlnIEFSR1MoKCBwaXhlbCoq
IHBpeGVscywgaW50IGNvbHMsIGludCByb3dzLCBwaXh2YWwgbWF4dmFsICkpOwpzdGF0aWMgdm9p
ZCBzcV9hc3NpZ25fY29sb3JzIEFSR1MoKCBpbnQgY2lyY2xlY291bnQsIHBpeHZhbCBtYXh2YWws
IHBpeGVsKiBjb2xvcnMgKSk7CnN0YXRpYyBwaXhlbCByYW5kb21fY2Ftb19jb2xvciBBUkdTKCgg
cGl4dmFsIG1heHZhbCApKTsKc3RhdGljIHBpeGVsIHJhbmRvbV9hbnRpY2Ftb19jb2xvciBBUkdT
KCggcGl4dmFsIG1heHZhbCApKTsKc3RhdGljIGZsb2F0IHJuZHVuaSBBUkdTKCggdm9pZCApKTsK
c3RhdGljIHZvaWQgY2FtbyBBUkdTKCggcGl4ZWwqKiBwaXhlbHMsIGludCBjb2xzLCBpbnQgcm93
cywgcGl4dmFsIG1heHZhbCwgaW50IGFudGlmbGFnICkpOwpzdGF0aWMgdm9pZCB0ZXN0IEFSR1Mo
KCBwaXhlbCoqIHBpeGVscywgaW50IGNvbHMsIGludCByb3dzLCBwaXh2YWwgbWF4dmFsICkpOwoK
CmludAptYWluKCBhcmdjLCBhcmd2ICkKICAgIGludCBhcmdjOwogICAgY2hhciogYXJndltdOwog
ICAgewogICAgcGl4ZWwqKiBwaXhlbHM7CiAgICBpbnQgYXJnbiwgcGF0dGVybiwgY29scywgcm93
czsKI2RlZmluZSBQQVRfTk9ORSAwCiNkZWZpbmUgUEFUX0dJTkdIQU0yIDEKI2RlZmluZSBQQVRf
R0lOR0hBTTMgMgojZGVmaW5lIFBBVF9NQURSQVMgMwojZGVmaW5lIFBBVF9UQVJUQU4gNAojZGVm
aW5lIFBBVF9QT0xFUyA1CiNkZWZpbmUgUEFUX1NRVUlHIDYKI2RlZmluZSBQQVRfQ0FNTyA3CiNk
ZWZpbmUgUEFUX0FOVElDQU1PIDgKI2RlZmluZSBQQVRfVEVTVCA5CiAgICBjb25zdCBjaGFyKiBj
b25zdCB1c2FnZSA9ICItZ2luZ2hhbXwtZzJ8LWdpbmdoYW0zfC1nM3wtbWFkcmFzfC10YXJ0YW58
LXBvbGVzfC1zcXVpZ3wtY2Ftb3wtYW50aWNhbW8gPHdpZHRoPiA8aGVpZ2h0PiI7CgoKICAgIHBw
bV9pbml0KCAmYXJnYywgYXJndiApOwoKICAgIGFyZ24gPSAxOwogICAgcGF0dGVybiA9IFBBVF9O
T05FOwoKICAgIHdoaWxlICggYXJnbiA8IGFyZ2MgJiYgYXJndlthcmduXVswXSA9PSAnLScgJiYg
YXJndlthcmduXVsxXSAhPSAnXDAnICkKCXsKCWlmICggcG1fa2V5bWF0Y2goIGFyZ3ZbYXJnbl0s
ICItZ2luZ2hhbTIiLCA5ICkgfHwKCSAgICAgcG1fa2V5bWF0Y2goIGFyZ3ZbYXJnbl0sICItZzIi
LCAzICkgKQoJICAgIHsKCSAgICBpZiAoIHBhdHRlcm4gIT0gUEFUX05PTkUgKQoJCXBtX2Vycm9y
KCAib25seSBvbmUgYmFzZSBwYXR0ZXJuIG1heSBiZSBzcGVjaWZpZWQiICk7CgkgICAgcGF0dGVy
biA9IFBBVF9HSU5HSEFNMjsKCSAgICB9CgllbHNlIGlmICggcG1fa2V5bWF0Y2goIGFyZ3ZbYXJn
bl0sICItZ2luZ2hhbTMiLCA5ICkgfHwKCSAgICAgcG1fa2V5bWF0Y2goIGFyZ3ZbYXJnbl0sICIt
ZzMiLCAzICkgKQoJICAgIHsKCSAgICBpZiAoIHBhdHRlcm4gIT0gUEFUX05PTkUgKQoJCXBtX2Vy
cm9yKCAib25seSBvbmUgYmFzZSBwYXR0ZXJuIG1heSBiZSBzcGVjaWZpZWQiICk7CgkgICAgcGF0
dGVybiA9IFBBVF9HSU5HSEFNMzsKCSAgICB9CgllbHNlIGlmICggcG1fa2V5bWF0Y2goIGFyZ3Zb
YXJnbl0sICItbWFkcmFzIiwgMiApICkKCSAgICB7CgkgICAgaWYgKCBwYXR0ZXJuICE9IFBBVF9O
T05FICkKCQlwbV9lcnJvciggIm9ubHkgb25lIGJhc2UgcGF0dGVybiBtYXkgYmUgc3BlY2lmaWVk
IiApOwoJICAgIHBhdHRlcm4gPSBQQVRfTUFEUkFTOwoJICAgIH0KCWVsc2UgaWYgKCBwbV9rZXlt
YXRjaCggYXJndlthcmduXSwgIi10YXJ0YW4iLCAyICkgKQoJICAgIHsKCSAgICBpZiAoIHBhdHRl
cm4gIT0gUEFUX05PTkUgKQoJCXBtX2Vycm9yKCAib25seSBvbmUgYmFzZSBwYXR0ZXJuIG1heSBi
ZSBzcGVjaWZpZWQiICk7CgkgICAgcGF0dGVybiA9IFBBVF9UQVJUQU47CgkgICAgfQoJZWxzZSBp
ZiAoIHBtX2tleW1hdGNoKCBhcmd2W2FyZ25dLCAiLXBvbGVzIiwgMiApICkKCSAgICB7CgkgICAg
aWYgKCBwYXR0ZXJuICE9IFBBVF9OT05FICkKCQlwbV9lcnJvciggIm9ubHkgb25lIGJhc2UgcGF0
dGVybiBtYXkgYmUgc3BlY2lmaWVkIiApOwoJICAgIHBhdHRlcm4gPSBQQVRfUE9MRVM7CgkgICAg
fQoJZWxzZSBpZiAoIHBtX2tleW1hdGNoKCBhcmd2W2FyZ25dLCAiLXNxdWlnIiwgMiApICkKCSAg
ICB7CgkgICAgaWYgKCBwYXR0ZXJuICE9IFBBVF9OT05FICkKCQlwbV9lcnJvciggIm9ubHkgb25l
IGJhc2UgcGF0dGVybiBtYXkgYmUgc3BlY2lmaWVkIiApOwoJICAgIHBhdHRlcm4gPSBQQVRfU1FV
SUc7CgkgICAgfQoJZWxzZSBpZiAoIHBtX2tleW1hdGNoKCBhcmd2W2FyZ25dLCAiLWNhbW8iLCAy
ICkgKQoJICAgIHsKCSAgICBpZiAoIHBhdHRlcm4gIT0gUEFUX05PTkUgKQoJCXBtX2Vycm9yKCAi
b25seSBvbmUgYmFzZSBwYXR0ZXJuIG1heSBiZSBzcGVjaWZpZWQiICk7CgkgICAgcGF0dGVybiA9
IFBBVF9DQU1POwoJICAgIH0KCWVsc2UgaWYgKCBwbV9rZXltYXRjaCggYXJndlthcmduXSwgIi1h
bnRpY2FtbyIsIDIgKSApCgkgICAgewoJICAgIGlmICggcGF0dGVybiAhPSBQQVRfTk9ORSApCgkJ
cG1fZXJyb3IoICJvbmx5IG9uZSBiYXNlIHBhdHRlcm4gbWF5IGJlIHNwZWNpZmllZCIgKTsKCSAg
ICBwYXR0ZXJuID0gUEFUX0FOVElDQU1POwoJICAgIH0KCWVsc2UgaWYgKCBwbV9rZXltYXRjaCgg
YXJndlthcmduXSwgIi10ZXN0IiwgMyApICkKCSAgICB7CgkgICAgaWYgKCBwYXR0ZXJuICE9IFBB
VF9OT05FICkKCQlwbV9lcnJvciggIm9ubHkgb25lIGJhc2UgcGF0dGVybiBtYXkgYmUgc3BlY2lm
aWVkIiApOwoJICAgIHBhdHRlcm4gPSBQQVRfVEVTVDsKCSAgICB9CgllbHNlCgkgICAgcG1fdXNh
Z2UoIHVzYWdlICk7CgkrK2FyZ247Cgl9CiAgICBpZiAoIHBhdHRlcm4gPT0gUEFUX05PTkUgKQoJ
cG1fZXJyb3IoICJhIGJhc2UgcGF0dGVybiBtdXN0IGJlIHNwZWNpZmllZCIgKTsKCiAgICBpZiAo
IGFyZ24gPT0gYXJnYyApCglwbV91c2FnZSggdXNhZ2UpOwogICAgaWYgKCBzc2NhbmYoIGFyZ3Zb
YXJnbl0sICIlZCIsICZjb2xzICkgIT0gMSApCglwbV91c2FnZSggdXNhZ2UgKTsKICAgICsrYXJn
bjsKICAgIGlmICggYXJnbiA9PSBhcmdjICkKCXBtX3VzYWdlKCB1c2FnZSk7CiAgICBpZiAoIHNz
Y2FuZiggYXJndlthcmduXSwgIiVkIiwgJnJvd3MgKSAhPSAxICkKCXBtX3VzYWdlKCB1c2FnZSAp
OwogICAgKythcmduOwoKICAgIGlmICggYXJnbiAhPSBhcmdjICkKCXBtX3VzYWdlKCB1c2FnZSk7
CgogICAgc3JhbmQoIChpbnQpICggdGltZSggMCApIF4gZ2V0cGlkKCApICkgKTsKICAgIHBpeGVs
cyA9IHBwbV9hbGxvY2FycmF5KCBjb2xzLCByb3dzICk7CgogICAgc3dpdGNoICggcGF0dGVybiAp
Cgl7CgljYXNlIFBBVF9HSU5HSEFNMjoKCWdpbmdoYW0yKCBwaXhlbHMsIGNvbHMsIHJvd3MsIFBQ
TV9NQVhNQVhWQUwgKTsKCWJyZWFrOwoKCWNhc2UgUEFUX0dJTkdIQU0zOgoJZ2luZ2hhbTMoIHBp
eGVscywgY29scywgcm93cywgUFBNX01BWE1BWFZBTCApOwoJYnJlYWs7CgoJY2FzZSBQQVRfTUFE
UkFTOgoJbWFkcmFzKCBwaXhlbHMsIGNvbHMsIHJvd3MsIFBQTV9NQVhNQVhWQUwgKTsKCWJyZWFr
OwoKCWNhc2UgUEFUX1RBUlRBTjoKCXRhcnRhbiggcGl4ZWxzLCBjb2xzLCByb3dzLCBQUE1fTUFY
TUFYVkFMICk7CglicmVhazsKCgljYXNlIFBBVF9QT0xFUzoKCXBvbGVzKCBwaXhlbHMsIGNvbHMs
IHJvd3MsIFBQTV9NQVhNQVhWQUwgKTsKCWJyZWFrOwoKCWNhc2UgUEFUX1NRVUlHOgoJc3F1aWco
IHBpeGVscywgY29scywgcm93cywgUFBNX01BWE1BWFZBTCApOwoJYnJlYWs7CgoJY2FzZSBQQVRf
Q0FNTzoKCWNhbW8oIHBpeGVscywgY29scywgcm93cywgUFBNX01BWE1BWFZBTCwgMCApOwoJYnJl
YWs7CgoJY2FzZSBQQVRfQU5USUNBTU86CgljYW1vKCBwaXhlbHMsIGNvbHMsIHJvd3MsIFBQTV9N
QVhNQVhWQUwsIDEgKTsKCWJyZWFrOwoKCWNhc2UgUEFUX1RFU1Q6Cgl0ZXN0KCBwaXhlbHMsIGNv
bHMsIHJvd3MsIFBQTV9NQVhNQVhWQUwgKTsKCWJyZWFrOwoKCWRlZmF1bHQ6CglwbV9lcnJvcigg
ImNhbid0IGhhcHBlbiEiICk7Cgl9CgogICAgLyogQWxsIGRvbmUsIHdyaXRlIGl0IG91dC4gKi8K
ICAgIHBwbV93cml0ZXBwbSggc3Rkb3V0LCBwaXhlbHMsIGNvbHMsIHJvd3MsIFBQTV9NQVhNQVhW
QUwsIDAgKTsKICAgIHBtX2Nsb3NlKCBzdGRvdXQgKTsKCiAgICBleGl0KCAwICk7CiAgICB9Cgoj
aWYgX19TVERDX18Kc3RhdGljIHBpeGVsCnJhbmRvbV9jb2xvciggcGl4dmFsIG1heHZhbCApCiNl
bHNlIC8qX19TVERDX18qLwpzdGF0aWMgcGl4ZWwKcmFuZG9tX2NvbG9yKCBtYXh2YWwgKQogICAg
cGl4dmFsIG1heHZhbDsKI2VuZGlmIC8qX19TVERDX18qLwogICAgewogICAgcGl4ZWwgcDsKCiAg
ICBQUE1fQVNTSUdOKAoJcCwgcmFuZCgpICUgKCBtYXh2YWwgKyAxICksIHJhbmQoKSAlICggbWF4
dmFsICsgMSApLAoJcmFuZCgpICUgKCBtYXh2YWwgKyAxICkgKTsKCiAgICByZXR1cm4gcDsKICAg
IH0KCiNkZWZpbmUgREFSS19USFJFU0ggMC4yNQoKI2lmIF9fU1REQ19fCnN0YXRpYyBwaXhlbApy
YW5kb21fYnJpZ2h0X2NvbG9yKCBwaXh2YWwgbWF4dmFsICkKI2Vsc2UgLypfX1NURENfXyovCnN0
YXRpYyBwaXhlbApyYW5kb21fYnJpZ2h0X2NvbG9yKCBtYXh2YWwgKQogICAgcGl4dmFsIG1heHZh
bDsKI2VuZGlmIC8qX19TVERDX18qLwogICAgewogICAgcGl4ZWwgcDsKCiAgICBkbwoJewoJcCA9
IHJhbmRvbV9jb2xvciggbWF4dmFsICk7Cgl9CiAgICB3aGlsZSAoIFBQTV9MVU1JTiggcCApIDw9
IG1heHZhbCAqIERBUktfVEhSRVNIICk7CgogICAgcmV0dXJuIHA7CiAgICB9CgojaWYgX19TVERD
X18Kc3RhdGljIHBpeGVsCnJhbmRvbV9kYXJrX2NvbG9yKCBwaXh2YWwgbWF4dmFsICkKI2Vsc2Ug
LypfX1NURENfXyovCnN0YXRpYyBwaXhlbApyYW5kb21fZGFya19jb2xvciggbWF4dmFsICkKICAg
IHBpeHZhbCBtYXh2YWw7CiNlbmRpZiAvKl9fU1REQ19fKi8KICAgIHsKICAgIHBpeGVsIHA7Cgog
ICAgZG8KCXsKCXAgPSByYW5kb21fY29sb3IoIG1heHZhbCApOwoJfQogICAgd2hpbGUgKCBQUE1f
TFVNSU4oIHAgKSA+IG1heHZhbCAqIERBUktfVEhSRVNIICk7CgogICAgcmV0dXJuIHA7CiAgICB9
CgpzdGF0aWMgcGl4ZWwKYXZlcmFnZV90d29fY29sb3JzKCBwMSwgcDIgKQpwaXhlbCBwMSwgcDI7
CiAgICB7CiAgICBwaXhlbCBwOwoKICAgIFBQTV9BU1NJR04oCglwLCAoIChpbnQpIFBQTV9HRVRS
KHAxKSArIChpbnQpIFBQTV9HRVRSKHAyKSApIC8gMiwKCSggKGludCkgUFBNX0dFVEcocDEpICsg
KGludCkgUFBNX0dFVEcocDIpICkgLyAyLAoJKCAoaW50KSBQUE1fR0VUQihwMSkgKyAoaW50KSBQ
UE1fR0VUQihwMikgKSAvIDIgKTsKCiAgICByZXR1cm4gcDsKICAgIH0KCi8qIEdpbmdoYW0gc3R1
ZmYuICovCgpzdGF0aWMgdm9pZAphdmVyYWdlX2RyYXdwcm9jKHBpeGVsKiogY29uc3QgcGl4ZWxz
LCAKICAgICAgICAgICAgICAgICBpbnQgY29uc3QgY29scywgCiAgICAgICAgICAgICAgICAgaW50
IGNvbnN0IHJvd3MsIAogICAgICAgICAgICAgICAgIHBpeHZhbCBjb25zdCBtYXh2YWwsIAogICAg
ICAgICAgICAgICAgIGludCBjb25zdCBjb2wsIAogICAgICAgICAgICAgICAgIGludCBjb25zdCBy
b3csIAogICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGNvbnN0IGNsaWVudGRhdGEgKQp7CiAg
ICBpZiAoIGNvbCA+PSAwICYmIGNvbCA8IGNvbHMgJiYgcm93ID49IDAgJiYgcm93IDwgcm93cyAp
CiAgICAgICAgcGl4ZWxzW3Jvd11bY29sXSA9CiAgICAgICAgICAgIGF2ZXJhZ2VfdHdvX2NvbG9y
cyggcGl4ZWxzW3Jvd11bY29sXSwgKiggKHBpeGVsKikgY2xpZW50ZGF0YSApICk7Cn0KCnN0YXRp
YyB2b2lkCmdpbmdoYW0yKCBwaXhlbCoqIHBpeGVscywgaW50IGNvbHMsIGludCByb3dzLCBwaXh2
YWwgbWF4dmFsICkKewogICAgcGl4ZWwgY29uc3QgYmFja2NvbG9yID0gcmFuZG9tX2RhcmtfY29s
b3IoIG1heHZhbCApOwogICAgcGl4ZWwgY29uc3QgZm9yZWNvbG9yID0gcmFuZG9tX2JyaWdodF9j
b2xvciggbWF4dmFsICk7CiAgICBpbnQgY29uc3QgY29sc28yID0gY29scyAvIDI7CiAgICBpbnQg
Y29uc3Qgcm93c28yID0gcm93cyAvIDI7CgogICAgLyogV2FycC4gKi8KICAgIHBwbWRfZmlsbGVk
cmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCAwLCBjb2xz
bzIsIHJvd3MsIFBQTURfTlVMTERSQVdQUk9DLAogICAgICAgICZiYWNrY29sb3IgKTsKICAgIHBw
bWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCBj
b2xzbzIsIDAsIGNvbHMgLSBjb2xzbzIsIHJvd3MsCiAgICAgICAgUFBNRF9OVUxMRFJBV1BST0Ms
ICZmb3JlY29sb3IgKTsKCiAgICAvKiBXb29mLiAqLwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUo
CiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDAsIGNvbHMsIHJvd3NvMiwg
YXZlcmFnZV9kcmF3cHJvYywKICAgICAgICAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJl
Y3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMCwgcm93c28yLCBj
b2xzLCByb3dzIC0gcm93c28yLAogICAgICAgIGF2ZXJhZ2VfZHJhd3Byb2MsICZmb3JlY29sb3Ig
KTsKICAgIH0KCiNpZiBfX1NURENfXwpzdGF0aWMgdm9pZApnaW5naGFtMyggcGl4ZWwqKiBwaXhl
bHMsIGludCBjb2xzLCBpbnQgcm93cywgcGl4dmFsIG1heHZhbCApCiNlbHNlIC8qX19TVERDX18q
LwpzdGF0aWMgdm9pZApnaW5naGFtMyggcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwgKQogICAg
cGl4ZWwqKiBwaXhlbHM7CiAgICBpbnQgY29scywgcm93czsKICAgIHBpeHZhbCBtYXh2YWw7CiNl
bmRpZiAvKl9fU1REQ19fKi8KICAgIHsKICAgIGludCBjb2xzbzQsIHJvd3NvNDsKICAgIHBpeGVs
IGJhY2tjb2xvciwgZm9yZTFjb2xvciwgZm9yZTJjb2xvcjsKCiAgICBjb2xzbzQgPSBjb2xzIC8g
NDsKICAgIHJvd3NvNCA9IHJvd3MgLyA0OwogICAgYmFja2NvbG9yID0gcmFuZG9tX2RhcmtfY29s
b3IoIG1heHZhbCApOwogICAgZm9yZTFjb2xvciA9IHJhbmRvbV9icmlnaHRfY29sb3IoIG1heHZh
bCApOwogICAgZm9yZTJjb2xvciA9IHJhbmRvbV9icmlnaHRfY29sb3IoIG1heHZhbCApOwoKICAg
IC8qIFdhcnAuICovCiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNv
bHMsIHJvd3MsIG1heHZhbCwgMCwgMCwgY29sc280LCByb3dzLCBQUE1EX05VTExEUkFXUFJPQywK
ICAgICAgICAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBw
aXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgY29sc280LCAwLCBjb2xzbzQsIHJvd3MsIFBQTURf
TlVMTERSQVdQUk9DLAogICAgICAgICZmb3JlMWNvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3Rh
bmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMiAqIGNvbHNvNCwgMCwg
Y29sc280LCByb3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJjb2xvciApOwog
ICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2
YWwsIDMgKiBjb2xzbzQsIDAsIGNvbHMgLSBjb2xzbzQsIHJvd3MsCiAgICAgICAgUFBNRF9OVUxM
RFJBV1BST0MsICZmb3JlMWNvbG9yICk7CgogICAgLyogV29vZi4gKi8KICAgIHBwbWRfZmlsbGVk
cmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCAwLCBjb2xz
LCByb3dzbzQsIGF2ZXJhZ2VfZHJhd3Byb2MsCiAgICAgICAgJmJhY2tjb2xvciApOwogICAgcHBt
ZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAs
IHJvd3NvNCwgY29scywgcm93c280LCBhdmVyYWdlX2RyYXdwcm9jLAogICAgICAgICZmb3JlMWNv
bG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJv
d3MsIG1heHZhbCwgMCwgMiAqIHJvd3NvNCwgY29scywgcm93c280LAogICAgICAgIGF2ZXJhZ2Vf
ZHJhd3Byb2MsICZmb3JlMmNvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAg
ICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMCwgMyAqIHJvd3NvNCwgY29scywgcm93cyAt
IHJvd3NvNCwKICAgICAgICBhdmVyYWdlX2RyYXdwcm9jLCAmZm9yZTFjb2xvciApOwogICAgfQoK
I2lmIF9fU1REQ19fCnN0YXRpYyB2b2lkCm1hZHJhcyggcGl4ZWwqKiBwaXhlbHMsIGludCBjb2xz
LCBpbnQgcm93cywgcGl4dmFsIG1heHZhbCApCiNlbHNlIC8qX19TVERDX18qLwpzdGF0aWMgdm9p
ZAptYWRyYXMoIHBpeGVscywgY29scywgcm93cywgbWF4dmFsICkKICAgIHBpeGVsKiogcGl4ZWxz
OwogICAgaW50IGNvbHMsIHJvd3M7CiAgICBwaXh2YWwgbWF4dmFsOwojZW5kaWYgLypfX1NURENf
XyovCiAgICB7CiAgICBpbnQgY29sczIsIHJvd3MyLCBjb2xzMywgcm93czMsIGNvbHMxMiwgcm93
czEyLCBjb2xzNmEsIHJvd3M2YSwgY29sczZiLAoJcm93czZiOwogICAgcGl4ZWwgYmFja2NvbG9y
LCBmb3JlMWNvbG9yLCBmb3JlMmNvbG9yOwoKICAgIGNvbHMyID0gY29scyAqIDIgLyA0NDsKICAg
IHJvd3MyID0gcm93cyAqIDIgLyA0NDsKICAgIGNvbHMzID0gY29scyAqIDMgLyA0NDsKICAgIHJv
d3MzID0gcm93cyAqIDMgLyA0NDsKICAgIGNvbHMxMiA9IGNvbHMgLSAxMCAqIGNvbHMyIC0gNCAq
IGNvbHMzOwogICAgcm93czEyID0gcm93cyAtIDEwICogcm93czIgLSA0ICogcm93czM7CiAgICBj
b2xzNmEgPSBjb2xzMTIgLyAyOwogICAgcm93czZhID0gcm93czEyIC8gMjsKICAgIGNvbHM2YiA9
IGNvbHMxMiAtIGNvbHM2YTsKICAgIHJvd3M2YiA9IHJvd3MxMiAtIHJvd3M2YTsKICAgIGJhY2tj
b2xvciA9IHJhbmRvbV9kYXJrX2NvbG9yKCBtYXh2YWwgKTsKICAgIGZvcmUxY29sb3IgPSByYW5k
b21fYnJpZ2h0X2NvbG9yKCBtYXh2YWwgKTsKICAgIGZvcmUyY29sb3IgPSByYW5kb21fYnJpZ2h0
X2NvbG9yKCBtYXh2YWwgKTsKCiAgICAvKiBXYXJwLiAqLwogICAgcHBtZF9maWxsZWRyZWN0YW5n
bGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDAsIGNvbHMyLCByb3dz
LCBQUE1EX05VTExEUkFXUFJPQywKICAgICAgICAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxl
ZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgY29sczIsIDAs
IGNvbHMzLCByb3dzLCBQUE1EX05VTExEUkFXUFJPQywKICAgICAgICAmZm9yZTFjb2xvciApOwog
ICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2
YWwsIGNvbHMyICsgY29sczMsIDAsIGNvbHMyLCByb3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQ
Uk9DLCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhl
bHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMiAqIGNvbHMyICsgY29sczMsIDAsIGNvbHMyLCByb3dz
LAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJjb2xvciApOwogICAgcHBtZF9maWxs
ZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDMgKiBjb2xz
MiArIGNvbHMzLCAwLCBjb2xzMiwgcm93cywKICAgICAgICBQUE1EX05VTExEUkFXUFJPQywgJmJh
Y2tjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xz
LCByb3dzLCBtYXh2YWwsIDQgKiBjb2xzMiArIGNvbHMzLCAwLCBjb2xzNmEsIHJvd3MsCiAgICAg
ICAgUFBNRF9OVUxMRFJBV1BST0MsICZmb3JlMWNvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3Rh
bmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgNCAqIGNvbHMyICsgY29s
czMgKyBjb2xzNmEsIDAsIGNvbHMyLCByb3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAm
YmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNv
bHMsIHJvd3MsIG1heHZhbCwgNSAqIGNvbHMyICsgY29sczMgKyBjb2xzNmEsIDAsIGNvbHMzLCBy
b3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJjb2xvciApOwogICAgcHBtZF9m
aWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDUgKiBj
b2xzMiArIDIgKiBjb2xzMyArIGNvbHM2YSwgMCwgY29sczIsCiAgICAgICAgcm93cywgUFBNRF9O
VUxMRFJBV1BST0MsICZiYWNrY29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAg
ICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCA2ICogY29sczIgKyAyICogY29sczMgKyBj
b2xzNmEsIDAsIGNvbHMzLAogICAgICAgIHJvd3MsIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJj
b2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCBy
b3dzLCBtYXh2YWwsIDYgKiBjb2xzMiArIDMgKiBjb2xzMyArIGNvbHM2YSwgMCwgY29sczIsCiAg
ICAgICAgcm93cywgUFBNRF9OVUxMRFJBV1BST0MsICZiYWNrY29sb3IgKTsKICAgIHBwbWRfZmls
bGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCA3ICogY29s
czIgKyAzICogY29sczMgKyBjb2xzNmEsIDAsIGNvbHM2YiwKICAgICAgICByb3dzLCBQUE1EX05V
TExEUkFXUFJPQywgJmZvcmUxY29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAg
ICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCA3ICogY29sczIgKyAzICogY29sczMgKyBj
b2xzNmEgKyBjb2xzNmIsIDAsCiAgICAgICAgY29sczIsIHJvd3MsIFBQTURfTlVMTERSQVdQUk9D
LCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMs
IGNvbHMsIHJvd3MsIG1heHZhbCwgOCAqIGNvbHMyICsgMyAqIGNvbHMzICsgY29sczZhICsgY29s
czZiLCAwLAogICAgICAgIGNvbHMyLCByb3dzLCBQUE1EX05VTExEUkFXUFJPQywgJmZvcmUyY29s
b3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93
cywgbWF4dmFsLCA5ICogY29sczIgKyAzICogY29sczMgKyBjb2xzNmEgKyBjb2xzNmIsIDAsCiAg
ICAgICAgY29sczIsIHJvd3MsIFBQTURfTlVMTERSQVdQUk9DLCAmYmFja2NvbG9yICk7CiAgICBw
cG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwg
MTAgKiBjb2xzMiArIDMgKiBjb2xzMyArIGNvbHM2YSArIGNvbHM2YiwgCiAgICAgICAgMCwgY29s
czMsIHJvd3MsIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTFjb2xvciApOwoKICAgIC8qIFdvb2Yu
ICovCiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3Ms
IG1heHZhbCwgMCwgMCwgY29scywgcm93czIsIGF2ZXJhZ2VfZHJhd3Byb2MsCiAgICAgICAgJmJh
Y2tjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xz
LCByb3dzLCBtYXh2YWwsIDAsIHJvd3MyLCBjb2xzLCByb3dzMywgYXZlcmFnZV9kcmF3cHJvYywK
ICAgICAgICAmZm9yZTJjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAg
cGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIHJvd3MyICsgcm93czMsIGNvbHMsIHJvd3My
LAogICAgICAgIGF2ZXJhZ2VfZHJhd3Byb2MsICZiYWNrY29sb3IgKTsKICAgIHBwbWRfZmlsbGVk
cmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCAyICogcm93
czIgKyByb3dzMywgY29scywgcm93czIsCiAgICAgICAgYXZlcmFnZV9kcmF3cHJvYywgJmZvcmUx
Y29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywg
cm93cywgbWF4dmFsLCAwLCAzICogcm93czIgKyByb3dzMywgY29scywgcm93czIsCiAgICAgICAg
YXZlcmFnZV9kcmF3cHJvYywgJmJhY2tjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUo
CiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDQgKiByb3dzMiArIHJvd3Mz
LCBjb2xzLCByb3dzNmEsCiAgICAgICAgYXZlcmFnZV9kcmF3cHJvYywgJmZvcmUyY29sb3IgKTsK
ICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4
dmFsLCAwLCA0ICogcm93czIgKyByb3dzMyArIHJvd3M2YSwgY29scywgcm93czIsCiAgICAgICAg
YXZlcmFnZV9kcmF3cHJvYywgJmJhY2tjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUo
CiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDUgKiByb3dzMiArIHJvd3Mz
ICsgcm93czZhLCBjb2xzLCByb3dzMywKICAgICAgICBhdmVyYWdlX2RyYXdwcm9jLCAmZm9yZTFj
b2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCBy
b3dzLCBtYXh2YWwsIDAsIDUgKiByb3dzMiArIDIgKiByb3dzMyArIHJvd3M2YSwgY29scywKICAg
ICAgICByb3dzMiwgYXZlcmFnZV9kcmF3cHJvYywgJmJhY2tjb2xvciApOwogICAgcHBtZF9maWxs
ZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDYgKiBy
b3dzMiArIDIgKiByb3dzMyArIHJvd3M2YSwgY29scywKICAgICAgICByb3dzMywgYXZlcmFnZV9k
cmF3cHJvYywgJmZvcmUxY29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAg
IHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCA2ICogcm93czIgKyAzICogcm93czMgKyBy
b3dzNmEsIGNvbHMsCiAgICAgICAgcm93czIsIGF2ZXJhZ2VfZHJhd3Byb2MsICZiYWNrY29sb3Ig
KTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywg
bWF4dmFsLCAwLCA3ICogcm93czIgKyAzICogcm93czMgKyByb3dzNmEsIGNvbHMsCiAgICAgICAg
cm93czZiLCBhdmVyYWdlX2RyYXdwcm9jLCAmZm9yZTJjb2xvciApOwogICAgcHBtZF9maWxsZWRy
ZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDcgKiByb3dz
MiArIDMgKiByb3dzMyArIHJvd3M2YSArIHJvd3M2YiwKICAgICAgICBjb2xzLCByb3dzMiwgYXZl
cmFnZV9kcmF3cHJvYywgJmJhY2tjb2xvciApOwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAg
ICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDggKiByb3dzMiArIDMgKiByb3dz
MyArIHJvd3M2YSArIHJvd3M2YiwKICAgICAgICBjb2xzLCByb3dzMiwgYXZlcmFnZV9kcmF3cHJv
YywgJmZvcmUxY29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVs
cywgY29scywgcm93cywgbWF4dmFsLCAwLCA5ICogcm93czIgKyAzICogcm93czMgKyByb3dzNmEg
KyByb3dzNmIsCiAgICAgICAgY29scywgcm93czIsIGF2ZXJhZ2VfZHJhd3Byb2MsICZiYWNrY29s
b3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93
cywgbWF4dmFsLCAwLCAKICAgICAgICAxMCAqIHJvd3MyICsgMyAqIHJvd3MzICsgcm93czZhICsg
cm93czZiLAogICAgICAgIGNvbHMsIHJvd3MzLCBhdmVyYWdlX2RyYXdwcm9jLCAmZm9yZTJjb2xv
ciApOwogICAgfQoKI2lmIF9fU1REQ19fCnN0YXRpYyB2b2lkCnRhcnRhbiggcGl4ZWwqKiBwaXhl
bHMsIGludCBjb2xzLCBpbnQgcm93cywgcGl4dmFsIG1heHZhbCApCiNlbHNlIC8qX19TVERDX18q
LwpzdGF0aWMgdm9pZAp0YXJ0YW4oIHBpeGVscywgY29scywgcm93cywgbWF4dmFsICkKICAgIHBp
eGVsKiogcGl4ZWxzOwogICAgaW50IGNvbHMsIHJvd3M7CiAgICBwaXh2YWwgbWF4dmFsOwojZW5k
aWYgLypfX1NURENfXyovCiAgICB7CiAgICBpbnQgY29sczEsIHJvd3MxLCBjb2xzMywgcm93czMs
IGNvbHMxMCwgcm93czEwLCBjb2xzNWEsIHJvd3M1YSwgY29sczViLAoJcm93czViOwogICAgcGl4
ZWwgYmFja2NvbG9yLCBmb3JlMWNvbG9yLCBmb3JlMmNvbG9yOwoKICAgIGNvbHMxID0gY29scyAv
IDIyOwogICAgcm93czEgPSByb3dzIC8gMjI7CiAgICBjb2xzMyA9IGNvbHMgKiAzIC8gMjI7CiAg
ICByb3dzMyA9IHJvd3MgKiAzIC8gMjI7CiAgICBjb2xzMTAgPSBjb2xzIC0gMyAqIGNvbHMxIC0g
MyAqIGNvbHMzOwogICAgcm93czEwID0gcm93cyAtIDMgKiByb3dzMSAtIDMgKiByb3dzMzsKICAg
IGNvbHM1YSA9IGNvbHMxMCAvIDI7CiAgICByb3dzNWEgPSByb3dzMTAgLyAyOwogICAgY29sczVi
ID0gY29sczEwIC0gY29sczVhOwogICAgcm93czViID0gcm93czEwIC0gcm93czVhOwogICAgYmFj
a2NvbG9yID0gcmFuZG9tX2RhcmtfY29sb3IoIG1heHZhbCApOwogICAgZm9yZTFjb2xvciA9IHJh
bmRvbV9icmlnaHRfY29sb3IoIG1heHZhbCApOwogICAgZm9yZTJjb2xvciA9IHJhbmRvbV9icmln
aHRfY29sb3IoIG1heHZhbCApOwoKICAgIC8qIFdhcnAuICovCiAgICBwcG1kX2ZpbGxlZHJlY3Rh
bmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMCwgMCwgY29sczVhLCBy
b3dzLCBQUE1EX05VTExEUkFXUFJPQywKICAgICAgICAmYmFja2NvbG9yICk7CiAgICBwcG1kX2Zp
bGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgY29sczVh
LCAwLCBjb2xzMSwgcm93cywgUFBNRF9OVUxMRFJBV1BST0MsCiAgICAgICAgJmZvcmUxY29sb3Ig
KTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywg
bWF4dmFsLCBjb2xzNWEgKyBjb2xzMSwgMCwgY29sczViLCByb3dzLAogICAgICAgIFBQTURfTlVM
TERSQVdQUk9DLCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAg
ICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgY29sczEwICsgY29sczEsIDAsIGNvbHMzLCBy
b3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJjb2xvciApOwogICAgcHBtZF9m
aWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIGNvbHMx
MCArIGNvbHMxICsgY29sczMsIDAsIGNvbHMxLCByb3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQ
Uk9DLCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhl
bHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgY29sczEwICsgMiAqIGNvbHMxICsgY29sczMsIDAsIGNv
bHMzLCByb3dzLAogICAgICAgIFBQTURfTlVMTERSQVdQUk9DLCAmZm9yZTJjb2xvciApOwogICAg
cHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWws
IGNvbHMxMCArIDIgKiBjb2xzMSArIDIgKiBjb2xzMywgMCwgY29sczEsCiAgICAgICAgcm93cywg
UFBNRF9OVUxMRFJBV1BST0MsIChjaGFyKikgJmJhY2tjb2xvciApOwogICAgcHBtZF9maWxsZWRy
ZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIGNvbHMxMCArIDMg
KiBjb2xzMSArIDIgKiBjb2xzMywgMCwgY29sczMsCiAgICAgICAgcm93cywgUFBNRF9OVUxMRFJB
V1BST0MsICZmb3JlMmNvbG9yICk7CgogICAgLyogV29vZi4gKi8KICAgIHBwbWRfZmlsbGVkcmVj
dGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCAwLCBjb2xzLCBy
b3dzNWEsIGF2ZXJhZ2VfZHJhd3Byb2MsCiAgICAgICAgJmJhY2tjb2xvciApOwogICAgcHBtZF9m
aWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIHJv
d3M1YSwgY29scywgcm93czEsIGF2ZXJhZ2VfZHJhd3Byb2MsCiAgICAgICAgJmZvcmUxY29sb3Ig
KTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywg
bWF4dmFsLCAwLCByb3dzNWEgKyByb3dzMSwgY29scywgcm93czViLAogICAgICAgIGF2ZXJhZ2Vf
ZHJhd3Byb2MsICZiYWNrY29sb3IgKTsKICAgIHBwbWRfZmlsbGVkcmVjdGFuZ2xlKAogICAgICAg
IHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCByb3dzMTAgKyByb3dzMSwgY29scywgcm93
czMsCiAgICAgICAgYXZlcmFnZV9kcmF3cHJvYywgJmZvcmUyY29sb3IgKTsKICAgIHBwbWRfZmls
bGVkcmVjdGFuZ2xlKAogICAgICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAwLCByb3dz
MTAgKyByb3dzMSArIHJvd3MzLCBjb2xzLCByb3dzMSwKICAgICAgICBhdmVyYWdlX2RyYXdwcm9j
LCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMs
IGNvbHMsIHJvd3MsIG1heHZhbCwgMCwgcm93czEwICsgMiAqIHJvd3MxICsgcm93czMsIGNvbHMs
IHJvd3MzLAogICAgICAgIGF2ZXJhZ2VfZHJhd3Byb2MsICZmb3JlMmNvbG9yICk7CiAgICBwcG1k
X2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMCwg
cm93czEwICsgMiAqIHJvd3MxICsgMiAqIHJvd3MzLCBjb2xzLAogICAgICAgIHJvd3MxLCBhdmVy
YWdlX2RyYXdwcm9jLCAmYmFja2NvbG9yICk7CiAgICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAg
ICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgMCwgcm93czEwICsgMyAqIHJvd3MxICsg
MiAqIHJvd3MzLCBjb2xzLAogICAgICAgIHJvd3MzLCBhdmVyYWdlX2RyYXdwcm9jLCAmZm9yZTJj
b2xvciApOwogICAgfQoKLyogUG9sZXMgc3R1ZmYuICovCgojZGVmaW5lIE1BWFBPTEVTIDUwMAoK
I2lmIF9fU1REQ19fCnN0YXRpYyB2b2lkCnBvbGVzKCBwaXhlbCoqIHBpeGVscywgaW50IGNvbHMs
IGludCByb3dzLCBwaXh2YWwgbWF4dmFsICkKI2Vsc2UgLypfX1NURENfXyovCnN0YXRpYyB2b2lk
CnBvbGVzKCBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCApCiAgICBwaXhlbCoqIHBpeGVsczsK
ICAgIGludCBjb2xzLCByb3dzOwogICAgcGl4dmFsIG1heHZhbDsKI2VuZGlmIC8qX19TVERDX18q
LwogICAgewogICAgaW50IHBvbGVzLCBpLCB4c1tNQVhQT0xFU10sIHlzW01BWFBPTEVTXSwgY29s
LCByb3c7CiAgICBwaXhlbCBjb2xvcnNbTUFYUE9MRVNdOwoKICAgIHBvbGVzID0gY29scyAqIHJv
d3MgLyAzMDAwMDsKCiAgICAvKiBQbGFjZSBhbmQgY29sb3IgcG9sZXMgcmFuZG9tbHkuICovCiAg
ICBmb3IgKCBpID0gMDsgaSA8IHBvbGVzOyArK2kgKQoJewoJeHNbaV0gPSByYW5kKCkgJSBjb2xz
OwoJeXNbaV0gPSByYW5kKCkgJSByb3dzOwoJY29sb3JzW2ldID0gcmFuZG9tX2JyaWdodF9jb2xv
ciggbWF4dmFsICk7Cgl9CgogICAgLyogTm93IGludGVycG9sYXRlIHBvaW50cy4gKi8KICAgIGZv
ciAoIHJvdyA9IDA7IHJvdyA8IHJvd3M7ICsrcm93ICkKCWZvciAoIGNvbCA9IDA7IGNvbCA8IGNv
bHM7ICsrY29sICkKCSAgICB7CgkgICAgcmVnaXN0ZXIgbG9uZyBkaXN0MSwgZGlzdDIsIG5ld2Rp
c3QsIHIsIGcsIGI7CgkgICAgcGl4ZWwgY29sb3IxLCBjb2xvcjI7CgoJICAgIC8qIEZpbmQgdHdv
IGNsb3Nlc3QgcG9sZXMuICovCgkgICAgZGlzdDEgPSBkaXN0MiA9IDIwMDAwMDAwMDA7CgkgICAg
Zm9yICggaSA9IDA7IGkgPCBwb2xlczsgKytpICkKCQl7CgkJbmV3ZGlzdCA9ICggY29sIC0geHNb
aV0gKSAqICggY29sIC0geHNbaV0gKSArCgkJCSAgKCByb3cgLSB5c1tpXSApICogKCByb3cgLSB5
c1tpXSApOwoJCWlmICggbmV3ZGlzdCA8IGRpc3QxICkKCQkgICAgewoJCSAgICBkaXN0MSA9IG5l
d2Rpc3Q7CgkJICAgIGNvbG9yMSA9IGNvbG9yc1tpXTsKCQkgICAgfQoJCWVsc2UgaWYgKCBuZXdk
aXN0IDwgZGlzdDIgKQoJCSAgICB7CgkJICAgIGRpc3QyID0gbmV3ZGlzdDsKCQkgICAgY29sb3Iy
ID0gY29sb3JzW2ldOwoJCSAgICB9CgkJfQoKCSAgICAvKiBBbmQgYXNzaWduIGludGVycG9sYXRl
ZCBjb2xvci4gKi8KCSAgICBuZXdkaXN0ID0gZGlzdDEgKyBkaXN0MjsKCSAgICByID0gUFBNX0dF
VFIoY29sb3IxKSpkaXN0Mi9uZXdkaXN0ICsgUFBNX0dFVFIoY29sb3IyKSpkaXN0MS9uZXdkaXN0
OwoJICAgIGcgPSBQUE1fR0VURyhjb2xvcjEpKmRpc3QyL25ld2Rpc3QgKyBQUE1fR0VURyhjb2xv
cjIpKmRpc3QxL25ld2Rpc3Q7CgkgICAgYiA9IFBQTV9HRVRCKGNvbG9yMSkqZGlzdDIvbmV3ZGlz
dCArIFBQTV9HRVRCKGNvbG9yMikqZGlzdDEvbmV3ZGlzdDsKCSAgICBQUE1fQVNTSUdOKCBwaXhl
bHNbcm93XVtjb2xdLCByLCBnLCBiICk7CgkgICAgfQogICAgfQoKLyogU3F1aWcgc3R1ZmYuICov
CgojZGVmaW5lIFNRVUlHUyA1CiNkZWZpbmUgU1FfUE9JTlRTIDcKI2RlZmluZSBTUV9NQVhDSVJD
TEVfUE9JTlRTIDUwMDAKCnN0YXRpYyBpbnQgc3FfcmFkaXVzLCBzcV9jaXJjbGVjb3VudDsKc3Rh
dGljIHBpeGVsIHNxX2NvbG9yc1tTUV9NQVhDSVJDTEVfUE9JTlRTXTsKc3RhdGljIGludCBzcV94
b2Zmc1tTUV9NQVhDSVJDTEVfUE9JTlRTXSwgc3FfeW9mZnNbU1FfTUFYQ0lSQ0xFX1BPSU5UU107
CgpzdGF0aWMgdm9pZApzcV9tZWFzdXJlY2lyY2xlX2RyYXdwcm9jKHBpeGVsKiogY29uc3QgcGl4
ZWxzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY29uc3QgY29scywgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGNvbnN0IHJvd3MsIAogICAgICAgICAgICAgICAgICAgICAg
ICAgIHBpeHZhbCBjb25zdCBtYXh2YWwsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCBj
b25zdCBjb2wsIAogICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb25zdCByb3csIAogICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQqIGNvbnN0IGNsaWVudGRhdGEpCnsKICAg
IHNxX3hvZmZzW3NxX2NpcmNsZWNvdW50XSA9IGNvbDsKICAgIHNxX3lvZmZzW3NxX2NpcmNsZWNv
dW50XSA9IHJvdzsKICAgICsrc3FfY2lyY2xlY291bnQ7Cn0KCnN0YXRpYyB2b2lkCnNxX3JhaW5i
b3djaXJjbGVfZHJhd3Byb2MocGl4ZWwqKiBjb25zdCBwaXhlbHMsIAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBjb25zdCBjb2xzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
Y29uc3Qgcm93cywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4dmFsIGNvbnN0IG1heHZh
bCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNvbnN0IGNvbCwgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGNvbnN0IHJvdywgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3Qgdm9pZCogY29uc3QgY2xpZW50ZGF0YSApCnsKICAgIGludCBpOwoKICAgIGZvciAoIGkg
PSAwOyBpIDwgc3FfY2lyY2xlY291bnQ7ICsraSApCglwcG1kX3BvaW50X2RyYXdwcm9jKAoJICAg
IHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCBjb2wgKyBzcV94b2Zmc1tpXSwgcm93ICsgc3Ff
eW9mZnNbaV0sCgkgICAgJihzcV9jb2xvcnNbaV0pICk7CiAgICB9CgojaWYgX19TVERDX18Kc3Rh
dGljIHZvaWQKc3F1aWcoIHBpeGVsKiogcGl4ZWxzLCBpbnQgY29scywgaW50IHJvd3MsIHBpeHZh
bCBtYXh2YWwgKQojZWxzZSAvKl9fU1REQ19fKi8Kc3RhdGljIHZvaWQKc3F1aWcoIHBpeGVscywg
Y29scywgcm93cywgbWF4dmFsICkKICAgIHBpeGVsKiogcGl4ZWxzOwogICAgaW50IGNvbHMsIHJv
d3M7CiAgICBwaXh2YWwgbWF4dmFsOwojZW5kaWYgLypfX1NURENfXyovCiAgICB7CiAgICBwaXhl
bCBjb2xvcjsKICAgIGludCBpLCBqLCB4Y1tTUV9QT0lOVFNdLCB5Y1tTUV9QT0lOVFNdLCB4MCwg
eTAsIHgxLCB5MSwgeDIsIHkyLCB4MywgeTM7CgogICAgLyogQ2xlYXIgaW1hZ2UgdG8gYmxhY2su
ICovCiAgICBQUE1fQVNTSUdOKCBjb2xvciwgMCwgMCwgMCApOwogICAgcHBtZF9maWxsZWRyZWN0
YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDAsIGNvbHMsIHJv
d3MsIFBQTURfTlVMTERSQVdQUk9DLAogICAgICAgICZjb2xvciApOwoKICAgIC8qIERyYXcgdGhl
IHNxdWlncy4gKi8KICAgICh2b2lkKSBwcG1kX3NldGxpbmV0eXBlKCBQUE1EX0xJTkVUWVBFX05P
RElBR1MgKTsKICAgICh2b2lkKSBwcG1kX3NldGxpbmVjbGlwKCAwICk7CiAgICBmb3IgKCBpID0g
U1FVSUdTOyBpID4gMDsgLS1pICkKCXsKCS8qIE1lYXN1cmUgY2lyY2xlLiAqLwoJc3FfcmFkaXVz
ID0gKCBjb2xzICsgcm93cyApIC8gMiAvICggMjUgKyBpICogMiApOwoJc3FfY2lyY2xlY291bnQg
PSAwOwoJcHBtZF9jaXJjbGUoCgkgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIDAsIDAs
IHNxX3JhZGl1cywKCSAgICBzcV9tZWFzdXJlY2lyY2xlX2RyYXdwcm9jLCBOVUxMICk7CglzcV9h
c3NpZ25fY29sb3JzKCBzcV9jaXJjbGVjb3VudCwgbWF4dmFsLCBzcV9jb2xvcnMgKTsKCgkvKiBD
aG9vc2Ugd3JhcC1hcm91bmQgcG9pbnQuICovCglzd2l0Y2ggKCByYW5kKCkgJSA0ICkKCSAgICB7
CgkgICAgY2FzZSAwOgoJICAgIHgxID0gcmFuZCgpICUgY29sczsKCSAgICB5MSA9IDA7CgkgICAg
aWYgKCB4MSA8IGNvbHMgLyAyICkKCQl4Y1swXSA9IHJhbmQoKSAlICggeDEgKiAyICk7CgkgICAg
ZWxzZQoJCXhjWzBdID0gY29scyAtIDEgLSByYW5kKCkgJSAoICggY29scyAtIHgxICkgKiAyICk7
CgkgICAgeWNbMF0gPSByYW5kKCkgJSByb3dzOwoJICAgIHgyID0geDE7CgkgICAgeTIgPSByb3dz
IC0gMTsKCSAgICB4Y1tTUV9QT0lOVFMgLSAxXSA9IDIgKiB4MiAtIHhjWzBdOwoJICAgIHljW1NR
X1BPSU5UUyAtIDFdID0geTIgLSB5Y1swXTsKCSAgICB4MCA9IHhjW1NRX1BPSU5UUyAtIDFdOwoJ
ICAgIHkwID0geWNbU1FfUE9JTlRTIC0gMV0gLSByb3dzOwoJICAgIHgzID0geGNbMF07CgkgICAg
eTMgPSB5Y1swXSArIHJvd3M7CgkgICAgYnJlYWs7CgoJICAgIGNhc2UgMToKCSAgICB4MiA9IHJh
bmQoKSAlIGNvbHM7CgkgICAgeTIgPSAwOwoJICAgIGlmICggeDIgPCBjb2xzIC8gMiApCgkJeGNb
U1FfUE9JTlRTIC0gMV0gPSByYW5kKCkgJSAoIHgyICogMiApOwoJICAgIGVsc2UKCQl4Y1tTUV9Q
T0lOVFMgLSAxXSA9IGNvbHMgLSAxIC0gcmFuZCgpICUgKCAoIGNvbHMgLSB4MiApICogMiApOwoJ
ICAgIHljW1NRX1BPSU5UUyAtIDFdID0gcmFuZCgpICUgcm93czsKCSAgICB4MSA9IHgyOwoJICAg
IHkxID0gcm93cyAtIDE7CgkgICAgeGNbMF0gPSAyICogeDEgLSB4Y1tTUV9QT0lOVFMgLSAxXTsK
CSAgICB5Y1swXSA9IHkxIC0geWNbU1FfUE9JTlRTIC0gMV07CgkgICAgeDAgPSB4Y1tTUV9QT0lO
VFMgLSAxXTsKCSAgICB5MCA9IHljW1NRX1BPSU5UUyAtIDFdICsgcm93czsKCSAgICB4MyA9IHhj
WzBdOwoJICAgIHkzID0geWNbMF0gLSByb3dzOwoJICAgIGJyZWFrOwoKCSAgICBjYXNlIDI6Cgkg
ICAgeDEgPSAwOwoJICAgIHkxID0gcmFuZCgpICUgcm93czsKCSAgICB4Y1swXSA9IHJhbmQoKSAl
IGNvbHM7CgkgICAgaWYgKCB5MSA8IHJvd3MgLyAyICkKCQl5Y1swXSA9IHJhbmQoKSAlICggeTEg
KiAyICk7CgkgICAgZWxzZQoJCXljWzBdID0gcm93cyAtIDEgLSByYW5kKCkgJSAoICggcm93cyAt
IHkxICkgKiAyICk7CgkgICAgeDIgPSBjb2xzIC0gMTsKCSAgICB5MiA9IHkxOwoJICAgIHhjW1NR
X1BPSU5UUyAtIDFdID0geDIgLSB4Y1swXTsKCSAgICB5Y1tTUV9QT0lOVFMgLSAxXSA9IDIgKiB5
MiAtIHljWzBdOwoJICAgIHgwID0geGNbU1FfUE9JTlRTIC0gMV0gLSBjb2xzOwoJICAgIHkwID0g
eWNbU1FfUE9JTlRTIC0gMV07CgkgICAgeDMgPSB4Y1swXSArIGNvbHM7CgkgICAgeTMgPSB5Y1sw
XTsKCSAgICBicmVhazsKCgkgICAgY2FzZSAzOgoJICAgIHgyID0gMDsKCSAgICB5MiA9IHJhbmQo
KSAlIHJvd3M7CgkgICAgeGNbU1FfUE9JTlRTIC0gMV0gPSByYW5kKCkgJSBjb2xzOwoJICAgIGlm
ICggeTIgPCByb3dzIC8gMiApCgkJeWNbU1FfUE9JTlRTIC0gMV0gPSByYW5kKCkgJSAoIHkyICog
MiApOwoJICAgIGVsc2UKCQl5Y1tTUV9QT0lOVFMgLSAxXSA9IHJvd3MgLSAxIC0gcmFuZCgpICUg
KCAoIHJvd3MgLSB5MiApICogMiApOwoJICAgIHgxID0gY29scyAtIDE7CgkgICAgeTEgPSB5MjsK
CSAgICB4Y1swXSA9IHgxIC0geGNbU1FfUE9JTlRTIC0gMV07CgkgICAgeWNbMF0gPSAyICogeTEg
LSB5Y1tTUV9QT0lOVFMgLSAxXTsKCSAgICB4MCA9IHhjW1NRX1BPSU5UUyAtIDFdICsgY29sczsK
CSAgICB5MCA9IHljW1NRX1BPSU5UUyAtIDFdOwoJICAgIHgzID0geGNbMF0gLSBjb2xzOwoJICAg
IHkzID0geWNbMF07CgkgICAgYnJlYWs7CgkgICAgfQoKCWZvciAoIGogPSAxOyBqIDwgU1FfUE9J
TlRTIC0gMTsgKytqICkKCSAgICB7CgkgICAgeGNbal0gPSAoIHJhbmQoKSAlICggY29scyAtIDIg
KiBzcV9yYWRpdXMgKSApICsgc3FfcmFkaXVzOwoJICAgIHljW2pdID0gKCByYW5kKCkgJSAoIHJv
d3MgLSAyICogc3FfcmFkaXVzICkgKSArIHNxX3JhZGl1czsKCSAgICB9CgoJcHBtZF9saW5lKAoJ
ICAgIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCB4MCwgeTAsIHgxLCB5MSwKCSAgICBzcV9y
YWluYm93Y2lyY2xlX2RyYXdwcm9jLCBOVUxMICk7CglwcG1kX3BvbHlzcGxpbmUoCgkgICAgcGl4
ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIHgxLCB5MSwgU1FfUE9JTlRTLCB4YywgeWMsIHgyLCB5
MiwKCSAgICBzcV9yYWluYm93Y2lyY2xlX2RyYXdwcm9jLCBOVUxMICk7CglwcG1kX2xpbmUoCgkg
ICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIHgyLCB5MiwgeDMsIHkzLAoJICAgIHNxX3Jh
aW5ib3djaXJjbGVfZHJhd3Byb2MsIE5VTEwgKTsKCX0KICAgIH0KCiNpZiBfX1NURENfXwpzdGF0
aWMgdm9pZApzcV9hc3NpZ25fY29sb3JzKCBpbnQgY2lyY2xlY291bnQsIHBpeHZhbCBtYXh2YWws
IHBpeGVsKiBjb2xvcnMgKQojZWxzZSAvKl9fU1REQ19fKi8Kc3RhdGljIHZvaWQKc3FfYXNzaWdu
X2NvbG9ycyggY2lyY2xlY291bnQsIG1heHZhbCwgY29sb3JzICkKICAgIGludCBjaXJjbGVjb3Vu
dDsKICAgIHBpeHZhbCBtYXh2YWw7CiAgICBwaXhlbCogY29sb3JzOwojZW5kaWYgLypfX1NURENf
XyovCiAgICB7CiAgICBwaXhlbCByYzEsIHJjMiwgcmMzOwogICAgZmxvYXQgY2NvMzsKICAgIGlu
dCBpOwoKICAgIHJjMSA9IHJhbmRvbV9icmlnaHRfY29sb3IoIG1heHZhbCApOwogICAgcmMyID0g
cmFuZG9tX2JyaWdodF9jb2xvciggbWF4dmFsICk7CiAgICByYzMgPSByYW5kb21fYnJpZ2h0X2Nv
bG9yKCBtYXh2YWwgKTsKICAgIGNjbzMgPSAoIGNpcmNsZWNvdW50IC0gMSApIC8gMy4wOwoKICAg
IGZvciAoIGkgPSAwOyBpIDwgY2lyY2xlY291bnQgOyArK2kgKQoJewoJaWYgKCBpIDwgY2NvMyAp
CgkgICAgUFBNX0FTU0lHTigKCQljb2xvcnNbaV0sCgkJKGZsb2F0KSBQUE1fR0VUUihyYzEpICsK
CQkgICAgKCAoZmxvYXQpIFBQTV9HRVRSKHJjMikgLSAoZmxvYXQpIFBQTV9HRVRSKHJjMSkgKSAq
CgkJICAgIChmbG9hdCkgaSAvIGNjbzMsCgkJKGZsb2F0KSBQUE1fR0VURyhyYzEpICsKCQkgICAg
KCAoZmxvYXQpIFBQTV9HRVRHKHJjMikgLSAoZmxvYXQpIFBQTV9HRVRHKHJjMSkgKSAqCgkJICAg
IChmbG9hdCkgaSAvIGNjbzMsCgkJKGZsb2F0KSBQUE1fR0VUQihyYzEpICsKCQkgICAgKCAoZmxv
YXQpIFBQTV9HRVRCKHJjMikgLSAoZmxvYXQpIFBQTV9HRVRCKHJjMSkgKSAqCgkJICAgIChmbG9h
dCkgaSAvIGNjbzMgKTsKCWVsc2UgaWYgKCBpIDwgMi4wICogY2NvMyApCgkgICAgUFBNX0FTU0lH
TigKCQljb2xvcnNbaV0sCgkJKGZsb2F0KSBQUE1fR0VUUihyYzIpICsKCQkgICAgKCAoZmxvYXQp
IFBQTV9HRVRSKHJjMykgLSAoZmxvYXQpIFBQTV9HRVRSKHJjMikgKSAqCgkJICAgICggKGZsb2F0
KSBpIC8gY2NvMyAtIDEuMCApLAoJCShmbG9hdCkgUFBNX0dFVEcocmMyKSArCgkJICAgICggKGZs
b2F0KSBQUE1fR0VURyhyYzMpIC0gKGZsb2F0KSBQUE1fR0VURyhyYzIpICkgKgoJCSAgICAoIChm
bG9hdCkgaSAvIGNjbzMgLSAxLjAgKSwKCQkoZmxvYXQpIFBQTV9HRVRCKHJjMikgKwoJCSAgICAo
IChmbG9hdCkgUFBNX0dFVEIocmMzKSAtIChmbG9hdCkgUFBNX0dFVEIocmMyKSApICoKCQkgICAg
KCAoZmxvYXQpIGkgLyBjY28zIC0gMS4wICkgKTsKCWVsc2UKCSAgICBQUE1fQVNTSUdOKAoJCWNv
bG9yc1tpXSwKCQkoZmxvYXQpIFBQTV9HRVRSKHJjMykgKwoJCSAgICAoIChmbG9hdCkgUFBNX0dF
VFIocmMxKSAtIChmbG9hdCkgUFBNX0dFVFIocmMzKSApICoKCQkgICAgKCAoZmxvYXQpIGkgLyBj
Y28zIC0gMi4wICksCgkJKGZsb2F0KSBQUE1fR0VURyhyYzMpICsKCQkgICAgKCAoZmxvYXQpIFBQ
TV9HRVRHKHJjMSkgLSAoZmxvYXQpIFBQTV9HRVRHKHJjMykgKSAqCgkJICAgICggKGZsb2F0KSBp
IC8gY2NvMyAtIDIuMCApLAoJCShmbG9hdCkgUFBNX0dFVEIocmMzKSArCgkJICAgICggKGZsb2F0
KSBQUE1fR0VUQihyYzEpIC0gKGZsb2F0KSBQUE1fR0VUQihyYzMpICkgKgoJCSAgICAoIChmbG9h
dCkgaSAvIGNjbzMgLSAyLjAgKSApOwoJfQogICAgfQoKLyogQ2Ftb3VmbGFnZSBzdHVmZi4gKi8K
CiNpZiBfX1NURENfXwpzdGF0aWMgcGl4ZWwKcmFuZG9tX2NhbW9fY29sb3IoIHBpeHZhbCBtYXh2
YWwgKQojZWxzZSAvKl9fU1REQ19fKi8Kc3RhdGljIHBpeGVsCnJhbmRvbV9jYW1vX2NvbG9yKCBt
YXh2YWwgKQogICAgcGl4dmFsIG1heHZhbDsKI2VuZGlmIC8qX19TVERDX18qLwogICAgewogICAg
aW50IHYxLCB2MiwgdjM7CiAgICBwaXhlbCBwOwoKICAgIHYxID0gKCAoaW50KSBtYXh2YWwgKyAx
ICkgLyA4OwogICAgdjIgPSAoIChpbnQpIG1heHZhbCArIDEgKSAvIDQ7CiAgICB2MyA9ICggKGlu
dCkgbWF4dmFsICsgMSApIC8gMjsKCiAgICBzd2l0Y2ggKCByYW5kKCkgJSAxMCApCgl7CgljYXNl
IDA6CWNhc2UgMTogY2FzZSAyOiAvKiBsaWdodCBicm93biAqLwoJUFBNX0FTU0lHTigKCSAgICBw
LCByYW5kKCkgJSB2MyArIHYzLCByYW5kKCkgJSB2MyArIHYyLCByYW5kKCkgJSB2MyArIHYyICk7
CglicmVhazsKCgljYXNlIDM6CWNhc2UgNDogY2FzZSA1OiAvKiBkYXJrIGdyZWVuICovCglQUE1f
QVNTSUdOKCBwLCByYW5kKCkgJSB2MiwgcmFuZCgpICUgdjIgKyAzICogdjEsIHJhbmQoKSAlIHYy
ICk7CglicmVhazsKCgljYXNlIDY6CWNhc2UgNzogLyogYnJvd24gKi8KCVBQTV9BU1NJR04oIHAs
IHJhbmQoKSAlIHYyICsgdjIsIHJhbmQoKSAlIHYyLCByYW5kKCkgJSB2MiApOwoJYnJlYWs7CgoJ
Y2FzZSA4OgljYXNlIDk6IC8qIGRhcmsgYnJvd24gKi8KCVBQTV9BU1NJR04oIHAsIHJhbmQoKSAl
IHYxICsgdjEsIHJhbmQoKSAlIHYxLCByYW5kKCkgJSB2MSApOwoJYnJlYWs7Cgl9CgogICAgcmV0
dXJuIHA7CiAgICB9CgojaWYgX19TVERDX18Kc3RhdGljIHBpeGVsCnJhbmRvbV9hbnRpY2Ftb19j
b2xvciggcGl4dmFsIG1heHZhbCApCiNlbHNlIC8qX19TVERDX18qLwpzdGF0aWMgcGl4ZWwKcmFu
ZG9tX2FudGljYW1vX2NvbG9yKCBtYXh2YWwgKQogICAgcGl4dmFsIG1heHZhbDsKI2VuZGlmIC8q
X19TVERDX18qLwogICAgewogICAgaW50IHYxLCB2MiwgdjM7CiAgICBwaXhlbCBwOwoKICAgIHYx
ID0gKCAoaW50KSBtYXh2YWwgKyAxICkgLyA0OwogICAgdjIgPSAoIChpbnQpIG1heHZhbCArIDEg
KSAvIDI7CiAgICB2MyA9IDMgKiB2MTsKCiAgICBzd2l0Y2ggKCByYW5kKCkgJSAxNSApCgl7Cglj
YXNlIDA6IGNhc2UgMToKCVBQTV9BU1NJR04oIHAsIHJhbmQoKSAlIHYxICsgdjMsIHJhbmQoKSAl
IHYyLCByYW5kKCkgJSB2MiApOwoJYnJlYWs7CgoJY2FzZSAyOiBjYXNlIDM6CglQUE1fQVNTSUdO
KCBwLCByYW5kKCkgJSB2MiwgcmFuZCgpICUgdjEgKyB2MywgcmFuZCgpICUgdjIgKTsKCWJyZWFr
OwoKCWNhc2UgNDogY2FzZSA1OgoJUFBNX0FTU0lHTiggcCwgcmFuZCgpICUgdjIsIHJhbmQoKSAl
IHYyLCByYW5kKCkgJSB2MSArIHYzICk7CglicmVhazsKCgljYXNlIDY6IGNhc2UgNzogY2FzZSA4
OgoJUFBNX0FTU0lHTiggcCwgcmFuZCgpICUgdjIsIHJhbmQoKSAlIHYxICsgdjMsIHJhbmQoKSAl
IHYxICsgdjMgKTsKCWJyZWFrOwoKCWNhc2UgOTogY2FzZSAxMDogY2FzZSAxMToKCVBQTV9BU1NJ
R04oIHAsIHJhbmQoKSAlIHYxICsgdjMsIHJhbmQoKSAlIHYyLCByYW5kKCkgJSB2MSArIHYzICk7
CglicmVhazsKCgljYXNlIDEyOiBjYXNlIDEzOiBjYXNlIDE0OgoJUFBNX0FTU0lHTiggcCwgcmFu
ZCgpICUgdjEgKyB2MywgcmFuZCgpICUgdjEgKyB2MywgcmFuZCgpICUgdjIgKTsKCWJyZWFrOwoK
CX0KCiAgICByZXR1cm4gcDsKICAgIH0KCnN0YXRpYyBmbG9hdApybmR1bmkoICkKICAgIHsKICAg
IHJldHVybiByYW5kKCkgJSAzMjc2NyAvIDMyNzY3LjA7CiAgICB9CgojZGVmaW5lIEJMT0JSQUQg
NTAKCiNkZWZpbmUgTUlOX1BPSU5UUyA3CiNkZWZpbmUgTUFYX1BPSU5UUyAxMwoKI2RlZmluZSBN
SU5fRUxMSVBTRV9GQUNUT1IgMC41CiNkZWZpbmUgTUFYX0VMTElQU0VfRkFDVE9SIDIuMAoKI2Rl
ZmluZSBNSU5fUE9JTlRfRkFDVE9SIDAuNQojZGVmaW5lIE1BWF9QT0lOVF9GQUNUT1IgMi4wCgoj
aWYgX19TVERDX18Kc3RhdGljIHZvaWQKY2FtbyggcGl4ZWwqKiBwaXhlbHMsIGludCBjb2xzLCBp
bnQgcm93cywgcGl4dmFsIG1heHZhbCwgaW50IGFudGlmbGFnICkKI2Vsc2UgLypfX1NURENfXyov
CnN0YXRpYyB2b2lkCmNhbW8oIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCBhbnRpZmxhZyAp
CiAgICBwaXhlbCoqIHBpeGVsczsKICAgIGludCBjb2xzLCByb3dzLCBhbnRpZmxhZzsKICAgIHBp
eHZhbCBtYXh2YWw7CiNlbmRpZiAvKl9fU1REQ19fKi8KICAgIHsKICAgIHBpeGVsIGNvbG9yOwog
ICAgaW50IG4sIGksIGN4LCBjeTsKICAgIGNoYXIqIGZoOwoKICAgIC8qIENsZWFyIGJhY2tncm91
bmQuICovCiAgICBpZiAoIGFudGlmbGFnICkKCWNvbG9yID0gcmFuZG9tX2FudGljYW1vX2NvbG9y
KCBtYXh2YWwgKTsKICAgIGVsc2UKCWNvbG9yID0gcmFuZG9tX2NhbW9fY29sb3IoIG1heHZhbCAp
OwogICAgcHBtZF9maWxsZWRyZWN0YW5nbGUoCiAgICAgICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBt
YXh2YWwsIDAsIDAsIGNvbHMsIHJvd3MsIFBQTURfTlVMTERSQVdQUk9DLAogICAgICAgICZjb2xv
ciApOwoKICAgIG4gPSAoIHJvd3MgKiBjb2xzICkgLyAoIEJMT0JSQUQgKiBCTE9CUkFEICkgKiA1
OwogICAgZm9yICggaSA9IDA7IGkgPCBuOyArK2kgKQoJewoJaW50IHBvaW50cywgcCwgeHNbTUFY
X1BPSU5UU10sIHlzW01BWF9QT0lOVFNdLCB4MCwgeTA7CglmbG9hdCBhLCBiLCBjLCB0aGV0YSwg
dGFuZywgdHgsIHR5OwoKCWN4ID0gcmFuZCgpICUgY29sczsKCWN5ID0gcmFuZCgpICUgcm93czsK
Cglwb2ludHMgPSByYW5kKCkgJSAoIE1BWF9QT0lOVFMgLSBNSU5fUE9JTlRTICsgMSApICsgTUlO
X1BPSU5UUzsKCWEgPSBybmR1bmkoKSAqICggTUFYX0VMTElQU0VfRkFDVE9SIC0gTUlOX0VMTElQ
U0VfRkFDVE9SICkgKwoJICAgIE1JTl9FTExJUFNFX0ZBQ1RPUjsKCWIgPSBybmR1bmkoKSAqICgg
TUFYX0VMTElQU0VfRkFDVE9SIC0gTUlOX0VMTElQU0VfRkFDVE9SICkgKwoJICAgIE1JTl9FTExJ
UFNFX0ZBQ1RPUjsKCXRoZXRhID0gcm5kdW5pKCkgKiAyLjAgKiBNX1BJOwoJZm9yICggcCA9IDA7
IHAgPCBwb2ludHM7ICsrcCApCgkgICAgewoJICAgIHR4ID0gYSAqIHNpbiggcCAqIDIuMCAqIE1f
UEkgLyBwb2ludHMgKTsKCSAgICB0eSA9IGIgKiBjb3MoIHAgKiAyLjAgKiBNX1BJIC8gcG9pbnRz
ICk7CgkgICAgdGFuZyA9IGF0YW4yKCB0eSwgdHggKSArIHRoZXRhOwoJICAgIGMgPSBybmR1bmko
KSAqICggTUFYX1BPSU5UX0ZBQ1RPUiAtIE1JTl9QT0lOVF9GQUNUT1IgKSArCgkJTUlOX1BPSU5U
X0ZBQ1RPUjsKCSAgICB4c1twXSA9IGN4ICsgQkxPQlJBRCAqIGMgKiBzaW4oIHRhbmcgKTsKCSAg
ICB5c1twXSA9IGN5ICsgQkxPQlJBRCAqIGMgKiBjb3MoIHRhbmcgKTsKCSAgICB9Cgl4MCA9ICgg
eHNbMF0gKyB4c1twb2ludHMgLSAxXSApIC8gMjsKCXkwID0gKCB5c1swXSArIHlzW3BvaW50cyAt
IDFdICkgLyAyOwoKCWZoID0gcHBtZF9maWxsX2luaXQoKTsKCglwcG1kX3BvbHlzcGxpbmUoCgkg
ICAgcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIHgwLCB5MCwgcG9pbnRzLCB4cywgeXMsIHgw
LCB5MCwKCSAgICBwcG1kX2ZpbGxfZHJhd3Byb2MsIGZoICk7CgoJaWYgKCBhbnRpZmxhZyApCgkg
ICAgY29sb3IgPSByYW5kb21fYW50aWNhbW9fY29sb3IoIG1heHZhbCApOwoJZWxzZQoJICAgIGNv
bG9yID0gcmFuZG9tX2NhbW9fY29sb3IoIG1heHZhbCApOwoJcHBtZF9maWxsKCBwaXhlbHMsIGNv
bHMsIHJvd3MsIG1heHZhbCwgZmgsIFBQTURfTlVMTERSQVdQUk9DLCAmY29sb3IgKTsKCX0KICAg
IH0KCi8qIFRlc3QgcGF0dGVybi4gIEp1c3QgYSBwbGFjZSB0byBwdXQgcHBtZHJhdyBleGVyY2lz
ZXMuICovCgojaWYgX19TVERDX18Kc3RhdGljIHZvaWQKdGVzdCggcGl4ZWwqKiBwaXhlbHMsIGlu
dCBjb2xzLCBpbnQgcm93cywgcGl4dmFsIG1heHZhbCApCiNlbHNlIC8qX19TVERDX18qLwpzdGF0
aWMgdm9pZAp0ZXN0KCBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCApCiAgICBwaXhlbCoqIHBp
eGVsczsKICAgIGludCBjb2xzLCByb3dzOwogICAgcGl4dmFsIG1heHZhbDsKI2VuZGlmIC8qX19T
VERDX18qLwogICAgewogICAgcGl4ZWwgY29sb3I7CiAgICBjaGFyKiBmaDsKCiAgICAvKiBDbGVh
ciBpbWFnZSB0byBibGFjay4gKi8KICAgIFBQTV9BU1NJR04oIGNvbG9yLCAwLCAwLCAwICk7CiAg
ICBwcG1kX2ZpbGxlZHJlY3RhbmdsZSgKICAgICAgICBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZh
bCwgMCwgMCwgY29scywgcm93cywgUFBNRF9OVUxMRFJBV1BST0MsCiAgICAgICAgJmNvbG9yICk7
CgogICAgZmggPSBwcG1kX2ZpbGxfaW5pdCgpOwoKICAgIHBwbWRfbGluZSggcGl4ZWxzLCBjb2xz
LCByb3dzLCBtYXh2YWwsIAogICAgICAgICAgICAgICBjb2xzLzgsIHJvd3MvOCwgY29scy8yLCBy
b3dzLzQsIHBwbWRfZmlsbF9kcmF3cHJvYywgZmggKTsKICAgIHBwbWRfbGluZSggcGl4ZWxzLCBj
b2xzLCByb3dzLCBtYXh2YWwsIAogICAgICAgICAgICAgICBjb2xzLzIsIHJvd3MvNCwgY29scy1j
b2xzLzgsIHJvd3MvOCwgcHBtZF9maWxsX2RyYXdwcm9jLCBmaCApOwogICAgcHBtZF9saW5lKCBw
aXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgCiAgICAgICAgICAgICAgIGNvbHMtY29scy84LCBy
b3dzLzgsIGNvbHMvMiwgcm93cy8yLCBwcG1kX2ZpbGxfZHJhd3Byb2MsIGZoICk7CiAgICBwcG1k
X3NwbGluZTMoIHBpeGVscywgY29scywgcm93cywgbWF4dmFsLCAKICAgICAgICAgICAgICAgICAg
Y29scy8yLCByb3dzLzIsIGNvbHMvMi1jb2xzLzE2LCByb3dzLzItcm93cy8xMCwgCiAgICAgICAg
ICAgICAgICAgIGNvbHMvMi1jb2xzLzgsIHJvd3MvMiwgcHBtZF9maWxsX2RyYXdwcm9jLCBmaCAp
OwogICAgcHBtZF9zcGxpbmUzKCBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgCiAgICAgICAg
ICAgICAgICAgIGNvbHMvMi1jb2xzLzgsIHJvd3MvMiwgY29scy80K2NvbHMvMTYsIHJvd3MvMity
b3dzLzEwLCAKICAgICAgICAgICAgICAgICAgY29scy80LCByb3dzLzIsIHBwbWRfZmlsbF9kcmF3
cHJvYywgZmggKTsKICAgIHBwbWRfbGluZSggcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWwsIAog
ICAgICAgICAgICAgICBjb2xzLzQsIHJvd3MvMiwgY29scy84LCByb3dzLzIsIHBwbWRfZmlsbF9k
cmF3cHJvYywgZmggKTsKICAgIHBwbWRfbGluZSggcGl4ZWxzLCBjb2xzLCByb3dzLCBtYXh2YWws
IAogICAgICAgICAgICAgICBjb2xzLzgsIHJvd3MvMiwgY29scy84LCByb3dzLzgsIHBwbWRfZmls
bF9kcmF3cHJvYywgZmggKTsKCiAgICBQUE1fQVNTSUdOKCBjb2xvciwgbWF4dmFsLCBtYXh2YWws
IG1heHZhbCApOwogICAgcHBtZF9maWxsKCBwaXhlbHMsIGNvbHMsIHJvd3MsIG1heHZhbCwgZmgs
IFBQTURfTlVMTERSQVdQUk9DLCAmY29sb3IgKTsKICAgIH0K


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]