c/7431: Compile glibc-2.2.5

george@navi.com.ua george@navi.com.ua
Mon Jul 29 05:45:00 GMT 2002


>Number:         7431
>Category:       c
>Synopsis:       Compile glibc-2.2.5
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Jul 29 04:36:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     george@navi.com.ua
>Release:        gcc-3.1.1
>Organization:
>Environment:

>Description:

>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="s_tan.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="s_tan.c"

LyoKICogSUJNIEFjY3VyYXRlIE1hdGhlbWF0aWNhbCBMaWJyYXJ5CiAqIENvcHlyaWdodCAoYykg
SW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcyBDb3JwLiwgMjAwMQogKgogKiBUaGlzIHBy
b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v
ZGlmeQogKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICogR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBG
cmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRl
IDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCiAqLwovKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAg
TU9EVUxFX05BTUU6IHV0YW4uYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgRlVOQ1RJT05TOiB1dGFuICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgICB0
YW5NcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwov
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqLwovKiAgRklMRVMgTkVFREVEOmRsYS5oIGVuZGlhbi5oIG1wYS5oIG15ZGVm
cy5oIHV0YW4uaCAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgICAgIGJyYW5yZWQuYyBz
aW5jb3MzMi5jIG1wdGFuLmMgICAgICAgICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAg
ICAgIHV0YW4udGJsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
LwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwovKiBBbiB1bHRpbWF0ZSB0YW4gcm91dGluZS4gR2l2ZW4gYW4gSUVF
RSBkb3VibGUgbWFjaGluZSBudW1iZXIgeCAgICAqLwovKiBpdCBjb21wdXRlcyB0aGUgY29ycmVj
dGx5IHJvdW5kZWQgKHRvIG5lYXJlc3QpIHZhbHVlIG9mIHRhbih4KS4gICAqLwovKiBBc3N1bXB0
aW9uOiBNYWNoaW5lIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVkIGluICAgICAg
ICAqLwovKiByb3VuZCB0byBuZWFyZXN0IG1vZGUgb2YgSUVFRSA3NTQgc3RhbmRhcmQuICAgICAg
ICAgICAgICAgICAgICAgICAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVk
ZSAiZW5kaWFuLmgiCiNpbmNsdWRlICJkbGEuaCIKI2luY2x1ZGUgIm1wYS5oIgojaW5jbHVkZSAi
TWF0aExpYi5oIgojaW5jbHVkZSAibWF0aC5oIgoKc3RhdGljIGRvdWJsZSB0YW5NcChkb3VibGUp
Owp2b2lkIF9fbXB0YW4oZG91YmxlLCBtcF9ubyAqLCBpbnQpOwoKZG91YmxlIHRhbihkb3VibGUg
eCkgewojaW5jbHVkZSAidXRhbi5oIgojaW5jbHVkZSAidXRhbi50YmwiCgogIGludCB1eCxpLG47
CiAgZG91YmxlIGEsZGEsYTIsYixkYixjLGRjLGMxLGNjMSxjMixjYzIsYzMsY2MzLGZpLGZmaSxn
aSxweixzLHN5LAogIHQsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgsdDksdDEwLHcseDIseG4seHgy
LHkseWEseXlhLHowLHosenosejIsenoyOwogIGludCBwOwogIG51bWJlciBudW0sdjsKICBtcF9u
byBtcGEsbXB0MSxtcHQyOwojaWYgMAogIG1wX25vIG1weTsKI2VuZGlmCgogIGludCBfX2JyYW5y
ZWQoZG91YmxlLCBkb3VibGUgKiwgZG91YmxlICopOwogIGludCBfX21wcmFucmVkKGRvdWJsZSwg
bXBfbm8gKiwgaW50KTsKCiAgLyogeD0rLUlORiwgeD1OYU4gKi8KICBudW0uZCA9IHg7ICB1eCA9
IG51bS5pW0hJR0hfSEFMRl07CiAgaWYgKCh1eCYweDdmZjAwMDAwKT09MHg3ZmYwMDAwMCkgcmV0
dXJuIHgteDsKCiAgdz0oeDxaRVJPKSA/IC14IDogeDsKCiAgLyogKEkpIFRoZSBjYXNlIGFicyh4
KSA8PSAxLjI1OWUtOCAqLwogIGlmICh3PD1nMS5kKSAgcmV0dXJuIHg7CgogIC8qIChJSSkgVGhl
IGNhc2UgMS4yNTllLTggPCBhYnMoeCkgPD0gMC4wNjA4ICovCiAgaWYgKHc8PWcyLmQpIHsKCiAg
ICAvKiBGaXJzdCBzdGFnZSAqLwogICAgeDIgPSB4Kng7CiAgICB0MiA9IHgqeDIqKGQzLmQreDIq
KGQ1LmQreDIqKGQ3LmQreDIqKGQ5LmQreDIqZDExLmQpKSkpOwogICAgaWYgKCh5PXgrKHQyLXUx
LmQqdDIpKSA9PSB4Kyh0Mit1MS5kKnQyKSkgIHJldHVybiB5OwoKICAgIC8qIFNlY29uZCBzdGFn
ZSAqLwogICAgYzEgPSB4MiooYTE1LmQreDIqKGExNy5kK3gyKihhMTkuZCt4MiooYTIxLmQreDIq
KGEyMy5kK3gyKihhMjUuZCsKICAgICAgICAgeDIqYTI3LmQpKSkpKSk7CiAgICBFTVVMVih4LHgs
eDIseHgyLHQxLHQyLHQzLHQ0LHQ1KQogICAgQUREMihhMTMuZCxhYTEzLmQsYzEsemVyby5kLGMy
LGNjMix0MSx0MikKICAgIE1VTDIoeDIseHgyLGMyLGNjMixjMSxjYzEsdDEsdDIsdDMsdDQsdDUs
dDYsdDcsdDgpCiAgICBBREQyKGExMS5kLGFhMTEuZCxjMSxjYzEsYzIsY2MyLHQxLHQyKQogICAg
TVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFE
RDIoYTkuZCAsYWE5LmQgLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAgICBNVUwyKHgyLHh4MixjMixj
YzIsYzEsY2MxLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgQUREMihhNy5kICxhYTcuZCAs
YzEsY2MxLGMyLGNjMix0MSx0MikKICAgIE1VTDIoeDIseHgyLGMyLGNjMixjMSxjYzEsdDEsdDIs
dDMsdDQsdDUsdDYsdDcsdDgpCiAgICBBREQyKGE1LmQgLGFhNS5kICxjMSxjYzEsYzIsY2MyLHQx
LHQyKQogICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0
OCkKICAgIEFERDIoYTMuZCAsYWEzLmQgLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAgICBNVUwyKHgy
LHh4MixjMixjYzIsYzEsY2MxLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgTVVMMih4ICx6
ZXJvLmQsYzEsY2MxLGMyLGNjMix0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFERDIoeCAg
ICAsemVyby5kLGMyLGNjMixjMSxjYzEsdDEsdDIpCiAgICBpZiAoKHk9YzErKGNjMS11Mi5kKmMx
KSkgPT0gYzErKGNjMSt1Mi5kKmMxKSkgIHJldHVybiB5OwogICAgcmV0dXJuIHRhbk1wKHgpOwog
IH0KCiAgLyogKElJSSkgVGhlIGNhc2UgMC4wNjA4IDwgYWJzKHgpIDw9IDAuNzg3ICovCiAgaWYg
KHc8PWczLmQpIHsKCiAgICAvKiBGaXJzdCBzdGFnZSAqLwogICAgaSA9ICgoaW50KSAobWZmdG5o
Zi5kK1RXTzgqdykpOwogICAgeiA9IHcteGZnW2ldWzBdLmQ7ICB6MiA9IHoqejsgICBzID0gKHg8
WkVSTykgPyBNT05FIDogT05FOwogICAgcHogPSB6K3oqejIqKGUwLmQrejIqZTEuZCk7CiAgICBm
aSA9IHhmZ1tpXVsxXS5kOyAgIGdpID0geGZnW2ldWzJdLmQ7ICAgdDIgPSBweiooZ2krZmkpLyhn
aS1weik7CiAgICBpZiAoKHk9ZmkrKHQyLWZpKnUzLmQpKT09ZmkrKHQyK2ZpKnUzLmQpKSAgcmV0
dXJuIChzKnkpOwogICAgdDMgPSAodDI8WkVSTykgPyAtdDIgOiB0MjsKICAgIGlmICgoeT1maSso
dDItKHQ0PWZpKnVhMy5kK3QzKnViMy5kKSkpPT1maSsodDIrdDQpKSAgcmV0dXJuIChzKnkpOwoK
ICAgIC8qIFNlY29uZCBzdGFnZSAqLwogICAgZmZpID0geGZnW2ldWzNdLmQ7CiAgICBjMSA9IHoy
KihhNy5kK3oyKihhOS5kK3oyKmExMS5kKSk7CiAgICBFTVVMVih6LHosejIsenoyLHQxLHQyLHQz
LHQ0LHQ1KQogICAgQUREMihhNS5kLGFhNS5kLGMxLHplcm8uZCxjMixjYzIsdDEsdDIpCiAgICBN
VUwyKHoyLHp6MixjMixjYzIsYzEsY2MxLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgQURE
MihhMy5kLGFhMy5kLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAgICBNVUwyKHoyLHp6MixjMixjYzIs
YzEsY2MxLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgTVVMMih6ICx6ZXJvLmQsYzEsY2Mx
LGMyLGNjMix0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFERDIoeiAsemVyby5kLGMyLGNj
MixjMSxjYzEsdDEsdDIpCgogICAgQUREMihmaSAsZmZpLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAg
ICBNVUwyKGZpICxmZmksYzEsY2MxLGMzLGNjMyx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAg
IFNVQjIob25lLmQsemVyby5kLGMzLGNjMyxjMSxjYzEsdDEsdDIpCiAgICBESVYyKGMyLGNjMixj
MSxjYzEsYzMsY2MzLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4LHQ5LHQxMCkKCiAgICBpZiAoKHk9
YzMrKGNjMy11NC5kKmMzKSk9PWMzKyhjYzMrdTQuZCpjMykpICByZXR1cm4gKHMqeSk7CiAgICBy
ZXR1cm4gdGFuTXAoeCk7CiAgfQoKICAvKiAoLS0tKSBUaGUgY2FzZSAwLjc4NyA8IGFicyh4KSA8
PSAyNSAqLwogIGlmICh3PD1nNC5kKSB7CiAgICAvKiBSYW5nZSByZWR1Y3Rpb24gYnkgYWxnb3Jp
dGhtIGkgKi8KICAgIHQgPSAoeCpocGludi5kICsgdG9pbnQuZCk7CiAgICB4biA9IHQgLSB0b2lu
dC5kOwogICAgdi5kID0gdDsKICAgIHQxID0gKHggLSB4biptcDEuZCkgLSB4biptcDIuZDsKICAg
IG4gPXYuaVtMT1dfSEFMRl0gJiAweDAwMDAwMDAxOwogICAgZGEgPSB4biptcDMuZDsKICAgIGE9
dDEtZGE7CiAgICBkYSA9ICh0MS1hKS1kYTsKICAgIGlmIChhPFpFUk8pICB7eWE9LWE7ICB5eWE9
LWRhOyAgc3k9TU9ORTt9CiAgICBlbHNlICAgICAgICAge3lhPSBhOyAgeXlhPSBkYTsgIHN5PSBP
TkU7fQoKICAgIC8qIChJViksKFYpIFRoZSBjYXNlIDAuNzg3IDwgYWJzKHgpIDw9IDI1LCAgICBh
YnMoeSkgPD0gMWUtNyAqLwogICAgaWYgKHlhPD1neTEuZCkgIHJldHVybiB0YW5NcCh4KTsKCiAg
ICAvKiAoVkkpIFRoZSBjYXNlIDAuNzg3IDwgYWJzKHgpIDw9IDI1LCAgICAxZS03IDwgYWJzKHkp
IDw9IDAuMDYwOCAqLwogICAgaWYgKHlhPD1neTIuZCkgewogICAgICBhMiA9IGEqYTsKICAgICAg
dDIgPSBkYSthKmEyKihkMy5kK2EyKihkNS5kK2EyKihkNy5kK2EyKihkOS5kK2EyKmQxMS5kKSkp
KTsKICAgICAgaWYgKG4pIHsKICAgICAgICAvKiBGaXJzdCBzdGFnZSAtY290ICovCiAgICAgICAg
RUFERChhLHQyLGIsZGIpCiAgICAgICAgRElWMihvbmUuZCx6ZXJvLmQsYixkYixjLGRjLHQxLHQy
LHQzLHQ0LHQ1LHQ2LHQ3LHQ4LHQ5LHQxMCkKICAgICAgICBpZiAoKHk9YysoZGMtdTYuZCpjKSk9
PWMrKGRjK3U2LmQqYykpICByZXR1cm4gKC15KTsgfQogICAgICBlbHNlIHsKICAgICAgICAvKiBG
aXJzdCBzdGFnZSB0YW4gKi8KICAgICAgICBpZiAoKHk9YSsodDItdTUuZCphKSk9PWErKHQyK3U1
LmQqYSkpICByZXR1cm4geTsgfQogICAgICAvKiBTZWNvbmQgc3RhZ2UgKi8KICAgICAgLyogUmFu
Z2UgcmVkdWN0aW9uIGJ5IGFsZ29yaXRobSBpaSAqLwogICAgICB0ID0gKHgqaHBpbnYuZCArIHRv
aW50LmQpOwogICAgICB4biA9IHQgLSB0b2ludC5kOwogICAgICB2LmQgPSB0OwogICAgICB0MSA9
ICh4IC0geG4qbXAxLmQpIC0geG4qbXAyLmQ7CiAgICAgIG4gPXYuaVtMT1dfSEFMRl0gJiAweDAw
MDAwMDAxOwogICAgICBkYSA9IHhuKnBwMy5kOwogICAgICB0PXQxLWRhOwogICAgICBkYSA9ICh0
MS10KS1kYTsKICAgICAgdDEgPSB4bipwcDQuZDsKICAgICAgYSA9IHQgLSB0MTsKICAgICAgZGEg
PSAoKHQtYSktdDEpK2RhOwoKICAgICAgLyogU2Vjb25kIHN0YWdlICovCiAgICAgIEVBREQoYSxk
YSx0MSx0MikgICBhPXQxOyAgZGE9dDI7CiAgICAgIE1VTDIoYSxkYSxhLGRhLHgyLHh4Mix0MSx0
Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgYzEgPSB4MiooYTE1LmQreDIqKGExNy5kK3gyKihh
MTkuZCt4MiooYTIxLmQreDIqKGEyMy5kK3gyKihhMjUuZCsKICAgICAgICAgICB4MiphMjcuZCkp
KSkpKTsKICAgICAgQUREMihhMTMuZCxhYTEzLmQsYzEsemVyby5kLGMyLGNjMix0MSx0MikKICAg
ICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAg
ICAgQUREMihhMTEuZCxhYTExLmQsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4
eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhOS5k
ICxhYTkuZCAsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMx
LGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhNy5kICxhYTcuZCAsYzEs
Y2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0
Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhNS5kICxhYTUuZCAsYzEsY2MxLGMyLGNjMix0
MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0
Nyx0OCkKICAgICAgQUREMihhMy5kICxhYTMuZCAsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAg
TVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAg
TVVMMihhICxkYSAsYzEsY2MxLGMyLGNjMix0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAg
QUREMihhICAsZGEgICxjMixjYzIsYzEsY2MxLHQxLHQyKQoKICAgICAgaWYgKG4pIHsKICAgICAg
ICAvKiBTZWNvbmQgc3RhZ2UgLWNvdCAqLwogICAgICAgIERJVjIob25lLmQsemVyby5kLGMxLGNj
MSxjMixjYzIsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgsdDksdDEwKQogICAgICAgIGlmICgoeT1j
MisoY2MyLXU4LmQqYzIpKSA9PSBjMisoY2MyK3U4LmQqYzIpKSAgcmV0dXJuICgteSk7IH0KICAg
ICAgZWxzZSB7CiAgICAgICAgLyogU2Vjb25kIHN0YWdlIHRhbiAqLwogICAgICAgIGlmICgoeT1j
MSsoY2MxLXU3LmQqYzEpKSA9PSBjMSsoY2MxK3U3LmQqYzEpKSAgcmV0dXJuIHk7IH0KICAgICAg
cmV0dXJuIHRhbk1wKHgpOwogICAgfQoKICAgIC8qIChWSUkpIFRoZSBjYXNlIDAuNzg3IDwgYWJz
KHgpIDw9IDI1LCAgICAwLjA2MDggPCBhYnMoeSkgPD0gMC43ODcgKi8KCiAgICAvKiBGaXJzdCBz
dGFnZSAqLwogICAgaSA9ICgoaW50KSAobWZmdG5oZi5kK1RXTzgqeWEpKTsKICAgIHogPSAoejA9
KHlhLXhmZ1tpXVswXS5kKSkreXlhOyAgejIgPSB6Kno7CiAgICBweiA9IHoreip6MiooZTAuZCt6
MiplMS5kKTsKICAgIGZpID0geGZnW2ldWzFdLmQ7ICAgZ2kgPSB4ZmdbaV1bMl0uZDsKCiAgICBp
ZiAobikgewogICAgICAvKiAtY290ICovCiAgICAgIHQyID0gcHoqKGZpK2dpKS8oZmkrcHopOwog
ICAgICBpZiAoKHk9Z2ktKHQyLWdpKnUxMC5kKSk9PWdpLSh0MitnaSp1MTAuZCkpICByZXR1cm4g
KC1zeSp5KTsKICAgICAgdDMgPSAodDI8WkVSTykgPyAtdDIgOiB0MjsKICAgICAgaWYgKCh5PWdp
LSh0Mi0odDQ9Z2kqdWExMC5kK3QzKnViMTAuZCkpKT09Z2ktKHQyK3Q0KSkgIHJldHVybiAoLXN5
KnkpOyB9CiAgICBlbHNlICAgewogICAgICAvKiB0YW4gKi8KICAgICAgdDIgPSBweiooZ2krZmkp
LyhnaS1weik7CiAgICAgIGlmICgoeT1maSsodDItZmkqdTkuZCkpPT1maSsodDIrZmkqdTkuZCkp
ICByZXR1cm4gKHN5KnkpOwogICAgICB0MyA9ICh0MjxaRVJPKSA/IC10MiA6IHQyOwogICAgICBp
ZiAoKHk9ZmkrKHQyLSh0ND1maSp1YTkuZCt0Myp1YjkuZCkpKT09ZmkrKHQyK3Q0KSkgIHJldHVy
biAoc3kqeSk7IH0KCiAgICAvKiBTZWNvbmQgc3RhZ2UgKi8KICAgIGZmaSA9IHhmZ1tpXVszXS5k
OwogICAgRUFERCh6MCx5eWEseix6eikKICAgIE1VTDIoeix6eix6LHp6LHoyLHp6Mix0MSx0Mix0
Myx0NCx0NSx0Nix0Nyx0OCkKICAgIGMxID0gejIqKGE3LmQrejIqKGE5LmQrejIqYTExLmQpKTsK
ICAgIEFERDIoYTUuZCxhYTUuZCxjMSx6ZXJvLmQsYzIsY2MyLHQxLHQyKQogICAgTVVMMih6Mix6
ejIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFERDIoYTMuZCxh
YTMuZCxjMSxjYzEsYzIsY2MyLHQxLHQyKQogICAgTVVMMih6Mix6ejIsYzIsY2MyLGMxLGNjMSx0
MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIE1VTDIoeiAsenogLGMxLGNjMSxjMixjYzIsdDEs
dDIsdDMsdDQsdDUsdDYsdDcsdDgpCiAgICBBREQyKHogLHp6ICxjMixjYzIsYzEsY2MxLHQxLHQy
KQoKICAgIEFERDIoZmkgLGZmaSxjMSxjYzEsYzIsY2MyLHQxLHQyKQogICAgTVVMMihmaSAsZmZp
LGMxLGNjMSxjMyxjYzMsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgpCiAgICBTVUIyKG9uZS5kLHpl
cm8uZCxjMyxjYzMsYzEsY2MxLHQxLHQyKQoKICAgIGlmIChuKSB7CiAgICAgIC8qIC1jb3QgKi8K
ICAgICAgRElWMihjMSxjYzEsYzIsY2MyLGMzLGNjMyx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCx0
OSx0MTApCiAgICAgIGlmICgoeT1jMysoY2MzLXUxMi5kKmMzKSk9PWMzKyhjYzMrdTEyLmQqYzMp
KSAgcmV0dXJuICgtc3kqeSk7IH0KICAgIGVsc2UgewogICAgICAvKiB0YW4gKi8KICAgICAgRElW
MihjMixjYzIsYzEsY2MxLGMzLGNjMyx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCx0OSx0MTApCiAg
ICAgIGlmICgoeT1jMysoY2MzLXUxMS5kKmMzKSk9PWMzKyhjYzMrdTExLmQqYzMpKSAgcmV0dXJu
IChzeSp5KTsgfQoKICAgIHJldHVybiB0YW5NcCh4KTsKICB9CgogIC8qICgtLS0pIFRoZSBjYXNl
IDI1IDwgYWJzKHgpIDw9IDFlOCAqLwogIGlmICh3PD1nNS5kKSB7CiAgICAvKiBSYW5nZSByZWR1
Y3Rpb24gYnkgYWxnb3JpdGhtIGlpICovCiAgICB0ID0gKHgqaHBpbnYuZCArIHRvaW50LmQpOwog
ICAgeG4gPSB0IC0gdG9pbnQuZDsKICAgIHYuZCA9IHQ7CiAgICB0MSA9ICh4IC0geG4qbXAxLmQp
IC0geG4qbXAyLmQ7CiAgICBuID12LmlbTE9XX0hBTEZdICYgMHgwMDAwMDAwMTsKICAgIGRhID0g
eG4qcHAzLmQ7CiAgICB0PXQxLWRhOwogICAgZGEgPSAodDEtdCktZGE7CiAgICB0MSA9IHhuKnBw
NC5kOwogICAgYSA9IHQgLSB0MTsKICAgIGRhID0gKCh0LWEpLXQxKStkYTsKICAgIEVBREQoYSxk
YSx0MSx0MikgICBhPXQxOyAgZGE9dDI7CiAgICBpZiAoYTxaRVJPKSAge3lhPS1hOyAgeXlhPS1k
YTsgIHN5PU1PTkU7fQogICAgZWxzZSAgICAgICAgIHt5YT0gYTsgIHl5YT0gZGE7ICBzeT0gT05F
O30KCiAgICAvKiAoKysrKSBUaGUgY2FzZSAyNSA8IGFicyh4KSA8PSAxZTgsICAgIGFicyh5KSA8
PSAxZS03ICovCiAgICBpZiAoeWE8PWd5MS5kKSAgcmV0dXJuIHRhbk1wKHgpOwoKICAgIC8qIChW
SUlJKSBUaGUgY2FzZSAyNSA8IGFicyh4KSA8PSAxZTgsICAgIDFlLTcgPCBhYnMoeSkgPD0gMC4w
NjA4ICovCiAgICBpZiAoeWE8PWd5Mi5kKSB7CiAgICAgIGEyID0gYSphOwogICAgICB0MiA9IGRh
K2EqYTIqKGQzLmQrYTIqKGQ1LmQrYTIqKGQ3LmQrYTIqKGQ5LmQrYTIqZDExLmQpKSkpOwogICAg
ICBpZiAobikgewogICAgICAgIC8qIEZpcnN0IHN0YWdlIC1jb3QgKi8KICAgICAgICBFQUREKGEs
dDIsYixkYikKICAgICAgICBESVYyKG9uZS5kLHplcm8uZCxiLGRiLGMsZGMsdDEsdDIsdDMsdDQs
dDUsdDYsdDcsdDgsdDksdDEwKQogICAgICAgIGlmICgoeT1jKyhkYy11MTQuZCpjKSk9PWMrKGRj
K3UxNC5kKmMpKSAgcmV0dXJuICgteSk7IH0KICAgICAgZWxzZSB7CiAgICAgICAgLyogRmlyc3Qg
c3RhZ2UgdGFuICovCiAgICAgICAgaWYgKCh5PWErKHQyLXUxMy5kKmEpKT09YSsodDIrdTEzLmQq
YSkpICByZXR1cm4geTsgfQoKICAgICAgLyogU2Vjb25kIHN0YWdlICovCiAgICAgIE1VTDIoYSxk
YSxhLGRhLHgyLHh4Mix0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgYzEgPSB4MiooYTE1
LmQreDIqKGExNy5kK3gyKihhMTkuZCt4MiooYTIxLmQreDIqKGEyMy5kK3gyKihhMjUuZCsKICAg
ICAgICAgICB4MiphMjcuZCkpKSkpKTsKICAgICAgQUREMihhMTMuZCxhYTEzLmQsYzEsemVyby5k
LGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0
NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhMTEuZCxhYTExLmQsYzEsY2MxLGMyLGNjMix0MSx0
MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0
OCkKICAgICAgQUREMihhOS5kICxhYTkuZCAsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVM
Mih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQURE
MihhNy5kICxhYTcuZCAsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIs
Y2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhNS5kICxhYTUu
ZCAsYzEsY2MxLGMyLGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0
MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgICAgQUREMihhMy5kICxhYTMuZCAsYzEsY2MxLGMy
LGNjMix0MSx0MikKICAgICAgTVVMMih4Mix4eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0
NSx0Nix0Nyx0OCkKICAgICAgTVVMMihhICxkYSAsYzEsY2MxLGMyLGNjMix0MSx0Mix0Myx0NCx0
NSx0Nix0Nyx0OCkKICAgICAgQUREMihhICAsZGEgICxjMixjYzIsYzEsY2MxLHQxLHQyKQoKICAg
ICAgaWYgKG4pIHsKICAgICAgICAvKiBTZWNvbmQgc3RhZ2UgLWNvdCAqLwogICAgICAgIERJVjIo
b25lLmQsemVyby5kLGMxLGNjMSxjMixjYzIsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgsdDksdDEw
KQogICAgICAgIGlmICgoeT1jMisoY2MyLXUxNi5kKmMyKSkgPT0gYzIrKGNjMit1MTYuZCpjMikp
ICByZXR1cm4gKC15KTsgfQogICAgICBlbHNlIHsKICAgICAgICAvKiBTZWNvbmQgc3RhZ2UgdGFu
ICovCiAgICAgICAgaWYgKCh5PWMxKyhjYzEtdTE1LmQqYzEpKSA9PSBjMSsoY2MxK3UxNS5kKmMx
KSkgIHJldHVybiAoeSk7IH0KICAgICAgcmV0dXJuIHRhbk1wKHgpOwogICAgfQoKICAgIC8qIChJ
WCkgVGhlIGNhc2UgMjUgPCBhYnMoeCkgPD0gMWU4LCAgICAwLjA2MDggPCBhYnMoeSkgPD0gMC43
ODcgKi8KICAgIC8qIEZpcnN0IHN0YWdlICovCiAgICBpID0gKChpbnQpIChtZmZ0bmhmLmQrVFdP
OCp5YSkpOwogICAgeiA9ICh6MD0oeWEteGZnW2ldWzBdLmQpKSt5eWE7ICB6MiA9IHoqejsKICAg
IHB6ID0geit6KnoyKihlMC5kK3oyKmUxLmQpOwogICAgZmkgPSB4ZmdbaV1bMV0uZDsgICBnaSA9
IHhmZ1tpXVsyXS5kOwoKICAgIGlmIChuKSB7CiAgICAgIC8qIC1jb3QgKi8KICAgICAgdDIgPSBw
eiooZmkrZ2kpLyhmaStweik7CiAgICAgIGlmICgoeT1naS0odDItZ2kqdTE4LmQpKT09Z2ktKHQy
K2dpKnUxOC5kKSkgIHJldHVybiAoLXN5KnkpOwogICAgICB0MyA9ICh0MjxaRVJPKSA/IC10MiA6
IHQyOwogICAgICBpZiAoKHk9Z2ktKHQyLSh0ND1naSp1YTE4LmQrdDMqdWIxOC5kKSkpPT1naS0o
dDIrdDQpKSAgcmV0dXJuICgtc3kqeSk7IH0KICAgIGVsc2UgICB7CiAgICAgIC8qIHRhbiAqLwog
ICAgICB0MiA9IHB6KihnaStmaSkvKGdpLXB6KTsKICAgICAgaWYgKCh5PWZpKyh0Mi1maSp1MTcu
ZCkpPT1maSsodDIrZmkqdTE3LmQpKSAgcmV0dXJuIChzeSp5KTsKICAgICAgdDMgPSAodDI8WkVS
TykgPyAtdDIgOiB0MjsKICAgICAgaWYgKCh5PWZpKyh0Mi0odDQ9ZmkqdWExNy5kK3QzKnViMTcu
ZCkpKT09ZmkrKHQyK3Q0KSkgIHJldHVybiAoc3kqeSk7IH0KCiAgICAvKiBTZWNvbmQgc3RhZ2Ug
Ki8KICAgIGZmaSA9IHhmZ1tpXVszXS5kOwogICAgRUFERCh6MCx5eWEseix6eikKICAgIE1VTDIo
eix6eix6LHp6LHoyLHp6Mix0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIGMxID0gejIqKGE3
LmQrejIqKGE5LmQrejIqYTExLmQpKTsKICAgIEFERDIoYTUuZCxhYTUuZCxjMSx6ZXJvLmQsYzIs
Y2MyLHQxLHQyKQogICAgTVVMMih6Mix6ejIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0
Nix0Nyx0OCkKICAgIEFERDIoYTMuZCxhYTMuZCxjMSxjYzEsYzIsY2MyLHQxLHQyKQogICAgTVVM
Mih6Mix6ejIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIE1VTDIo
eiAsenogLGMxLGNjMSxjMixjYzIsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgpCiAgICBBREQyKHog
LHp6ICxjMixjYzIsYzEsY2MxLHQxLHQyKQoKICAgIEFERDIoZmkgLGZmaSxjMSxjYzEsYzIsY2My
LHQxLHQyKQogICAgTVVMMihmaSAsZmZpLGMxLGNjMSxjMyxjYzMsdDEsdDIsdDMsdDQsdDUsdDYs
dDcsdDgpCiAgICBTVUIyKG9uZS5kLHplcm8uZCxjMyxjYzMsYzEsY2MxLHQxLHQyKQoKICAgIGlm
IChuKSB7CiAgICAgIC8qIC1jb3QgKi8KICAgICAgRElWMihjMSxjYzEsYzIsY2MyLGMzLGNjMyx0
MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCx0OSx0MTApCiAgICAgIGlmICgoeT1jMysoY2MzLXUyMC5k
KmMzKSk9PWMzKyhjYzMrdTIwLmQqYzMpKSAgcmV0dXJuICgtc3kqeSk7IH0KICAgIGVsc2Ugewog
ICAgICAvKiB0YW4gKi8KICAgICAgRElWMihjMixjYzIsYzEsY2MxLGMzLGNjMyx0MSx0Mix0Myx0
NCx0NSx0Nix0Nyx0OCx0OSx0MTApCiAgICAgIGlmICgoeT1jMysoY2MzLXUxOS5kKmMzKSk9PWMz
KyhjYzMrdTE5LmQqYzMpKSAgcmV0dXJuIChzeSp5KTsgfQogICAgcmV0dXJuIHRhbk1wKHgpOwog
IH0KCiAgLyogKC0tLSkgVGhlIGNhc2UgMWU4IDwgYWJzKHgpIDwgMioqMTAyNCAqLwogIC8qIFJh
bmdlIHJlZHVjdGlvbiBieSBhbGdvcml0aG0gaWlpICovCiAgbiA9IChfX2JyYW5yZWQoeCwmYSwm
ZGEpKSAmIDB4MDAwMDAwMDE7CiAgRUFERChhLGRhLHQxLHQyKSAgIGE9dDE7ICBkYT10MjsKICBp
ZiAoYTxaRVJPKSAge3lhPS1hOyAgeXlhPS1kYTsgIHN5PU1PTkU7fQogIGVsc2UgICAgICAgICB7
eWE9IGE7ICB5eWE9IGRhOyAgc3k9IE9ORTt9CgogIC8qICgrKyspIFRoZSBjYXNlIDFlOCA8IGFi
cyh4KSA8IDIqKjEwMjQsICAgIGFicyh5KSA8PSAxZS03ICovCiAgaWYgKHlhPD1neTEuZCkgIHJl
dHVybiB0YW5NcCh4KTsKCiAgLyogKFgpIFRoZSBjYXNlIDFlOCA8IGFicyh4KSA8IDIqKjEwMjQs
ICAgIDFlLTcgPCBhYnMoeSkgPD0gMC4wNjA4ICovCiAgaWYgKHlhPD1neTIuZCkgewogICAgYTIg
PSBhKmE7CiAgICB0MiA9IGRhK2EqYTIqKGQzLmQrYTIqKGQ1LmQrYTIqKGQ3LmQrYTIqKGQ5LmQr
YTIqZDExLmQpKSkpOwogICAgaWYgKG4pIHsKICAgICAgLyogRmlyc3Qgc3RhZ2UgLWNvdCAqLwog
ICAgICBFQUREKGEsdDIsYixkYikKICAgICAgRElWMihvbmUuZCx6ZXJvLmQsYixkYixjLGRjLHQx
LHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4LHQ5LHQxMCkKICAgICAgaWYgKCh5PWMrKGRjLXUyMi5kKmMp
KT09YysoZGMrdTIyLmQqYykpICByZXR1cm4gKC15KTsgfQogICAgZWxzZSB7CiAgICAgIC8qIEZp
cnN0IHN0YWdlIHRhbiAqLwogICAgICBpZiAoKHk9YSsodDItdTIxLmQqYSkpPT1hKyh0Mit1MjEu
ZCphKSkgIHJldHVybiB5OyB9CgogICAgLyogU2Vjb25kIHN0YWdlICovCiAgICAvKiBSZWR1Y3Rp
b24gYnkgYWxnb3JpdGhtIGl2ICovCiAgICBwPTEwOyAgICBuID0gKF9fbXByYW5yZWQoeCwmbXBh
LHApKSAmIDB4MDAwMDAwMDE7CiAgICBfX21wX2RibCgmbXBhLCZhLHApOyAgICAgICAgX19kYmxf
bXAoYSwmbXB0MSxwKTsKICAgIF9fc3ViKCZtcGEsJm1wdDEsJm1wdDIscCk7ICBfX21wX2RibCgm
bXB0MiwmZGEscCk7CgogICAgTVVMMihhLGRhLGEsZGEseDIseHgyLHQxLHQyLHQzLHQ0LHQ1LHQ2
LHQ3LHQ4KQogICAgYzEgPSB4MiooYTE1LmQreDIqKGExNy5kK3gyKihhMTkuZCt4MiooYTIxLmQr
eDIqKGEyMy5kK3gyKihhMjUuZCsKICAgICAgICAgeDIqYTI3LmQpKSkpKSk7CiAgICBBREQyKGEx
My5kLGFhMTMuZCxjMSx6ZXJvLmQsYzIsY2MyLHQxLHQyKQogICAgTVVMMih4Mix4eDIsYzIsY2My
LGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFERDIoYTExLmQsYWExMS5kLGMx
LGNjMSxjMixjYzIsdDEsdDIpCiAgICBNVUwyKHgyLHh4MixjMixjYzIsYzEsY2MxLHQxLHQyLHQz
LHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgQUREMihhOS5kICxhYTkuZCAsYzEsY2MxLGMyLGNjMix0MSx0
MikKICAgIE1VTDIoeDIseHgyLGMyLGNjMixjMSxjYzEsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgp
CiAgICBBREQyKGE3LmQgLGFhNy5kICxjMSxjYzEsYzIsY2MyLHQxLHQyKQogICAgTVVMMih4Mix4
eDIsYzIsY2MyLGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICAgIEFERDIoYTUuZCAs
YWE1LmQgLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAgICBNVUwyKHgyLHh4MixjMixjYzIsYzEsY2Mx
LHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogICAgQUREMihhMy5kICxhYTMuZCAsYzEsY2MxLGMy
LGNjMix0MSx0MikKICAgIE1VTDIoeDIseHgyLGMyLGNjMixjMSxjYzEsdDEsdDIsdDMsdDQsdDUs
dDYsdDcsdDgpCiAgICBNVUwyKGEgLGRhICxjMSxjYzEsYzIsY2MyLHQxLHQyLHQzLHQ0LHQ1LHQ2
LHQ3LHQ4KQogICAgQUREMihhICAgICxkYSAgICAsYzIsY2MyLGMxLGNjMSx0MSx0MikKCiAgICBp
ZiAobikgewogICAgICAvKiBTZWNvbmQgc3RhZ2UgLWNvdCAqLwogICAgICBESVYyKG9uZS5kLHpl
cm8uZCxjMSxjYzEsYzIsY2MyLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4LHQ5LHQxMCkKICAgICAg
aWYgKCh5PWMyKyhjYzItdTI0LmQqYzIpKSA9PSBjMisoY2MyK3UyNC5kKmMyKSkgIHJldHVybiAo
LXkpOyB9CiAgICBlbHNlIHsKICAgICAgLyogU2Vjb25kIHN0YWdlIHRhbiAqLwogICAgICBpZiAo
KHk9YzErKGNjMS11MjMuZCpjMSkpID09IGMxKyhjYzErdTIzLmQqYzEpKSAgcmV0dXJuIHk7IH0K
ICAgIHJldHVybiB0YW5NcCh4KTsKICB9CgogIC8qIChYSSkgVGhlIGNhc2UgMWU4IDwgYWJzKHgp
IDwgMioqMTAyNCwgICAgMC4wNjA4IDwgYWJzKHkpIDw9IDAuNzg3ICovCiAgLyogRmlyc3Qgc3Rh
Z2UgKi8KICBpID0gKChpbnQpIChtZmZ0bmhmLmQrVFdPOCp5YSkpOwogIHogPSAoejA9KHlhLXhm
Z1tpXVswXS5kKSkreXlhOyAgejIgPSB6Kno7CiAgcHogPSB6K3oqejIqKGUwLmQrejIqZTEuZCk7
CiAgZmkgPSB4ZmdbaV1bMV0uZDsgICBnaSA9IHhmZ1tpXVsyXS5kOwoKICBpZiAobikgewogICAg
LyogLWNvdCAqLwogICAgdDIgPSBweiooZmkrZ2kpLyhmaStweik7CiAgICBpZiAoKHk9Z2ktKHQy
LWdpKnUyNi5kKSk9PWdpLSh0MitnaSp1MjYuZCkpICByZXR1cm4gKC1zeSp5KTsKICAgIHQzID0g
KHQyPFpFUk8pID8gLXQyIDogdDI7CiAgICBpZiAoKHk9Z2ktKHQyLSh0ND1naSp1YTI2LmQrdDMq
dWIyNi5kKSkpPT1naS0odDIrdDQpKSAgcmV0dXJuICgtc3kqeSk7IH0KICBlbHNlICAgewogICAg
LyogdGFuICovCiAgICB0MiA9IHB6KihnaStmaSkvKGdpLXB6KTsKICAgIGlmICgoeT1maSsodDIt
ZmkqdTI1LmQpKT09ZmkrKHQyK2ZpKnUyNS5kKSkgIHJldHVybiAoc3kqeSk7CiAgICB0MyA9ICh0
MjxaRVJPKSA/IC10MiA6IHQyOwogICAgaWYgKCh5PWZpKyh0Mi0odDQ9ZmkqdWEyNS5kK3QzKnVi
MjUuZCkpKT09ZmkrKHQyK3Q0KSkgIHJldHVybiAoc3kqeSk7IH0KCiAgLyogU2Vjb25kIHN0YWdl
ICovCiAgZmZpID0geGZnW2ldWzNdLmQ7CiAgRUFERCh6MCx5eWEseix6eikKICBNVUwyKHosenos
eix6eix6Mix6ejIsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgpCiAgYzEgPSB6MiooYTcuZCt6Mioo
YTkuZCt6MiphMTEuZCkpOwogIEFERDIoYTUuZCxhYTUuZCxjMSx6ZXJvLmQsYzIsY2MyLHQxLHQy
KQogIE1VTDIoejIsenoyLGMyLGNjMixjMSxjYzEsdDEsdDIsdDMsdDQsdDUsdDYsdDcsdDgpCiAg
QUREMihhMy5kLGFhMy5kLGMxLGNjMSxjMixjYzIsdDEsdDIpCiAgTVVMMih6Mix6ejIsYzIsY2My
LGMxLGNjMSx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCkKICBNVUwyKHogLHp6ICxjMSxjYzEsYzIs
Y2MyLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogIEFERDIoeiAsenogLGMyLGNjMixjMSxjYzEs
dDEsdDIpCgogIEFERDIoZmkgLGZmaSxjMSxjYzEsYzIsY2MyLHQxLHQyKQogIE1VTDIoZmkgLGZm
aSxjMSxjYzEsYzMsY2MzLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4KQogIFNVQjIob25lLmQsemVy
by5kLGMzLGNjMyxjMSxjYzEsdDEsdDIpCgogIGlmIChuKSB7CiAgICAvKiAtY290ICovCiAgICBE
SVYyKGMxLGNjMSxjMixjYzIsYzMsY2MzLHQxLHQyLHQzLHQ0LHQ1LHQ2LHQ3LHQ4LHQ5LHQxMCkK
ICAgIGlmICgoeT1jMysoY2MzLXUyOC5kKmMzKSk9PWMzKyhjYzMrdTI4LmQqYzMpKSAgcmV0dXJu
ICgtc3kqeSk7IH0KICBlbHNlIHsKICAgIC8qIHRhbiAqLwogICAgRElWMihjMixjYzIsYzEsY2Mx
LGMzLGNjMyx0MSx0Mix0Myx0NCx0NSx0Nix0Nyx0OCx0OSx0MTApCiAgICBpZiAoKHk9YzMrKGNj
My11MjcuZCpjMykpPT1jMysoY2MzK3UyNy5kKmMzKSkgIHJldHVybiAoc3kqeSk7IH0KICByZXR1
cm4gdGFuTXAoeCk7Cn0KCgovKiBtdWx0aXBsZSBwcmVjaXNpb24gc3RhZ2UgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLyogQ29udmVydCB4IHRvIG11bHRp
IHByZWNpc2lvbiBudW1iZXIsY29tcHV0ZSB0YW4oeCkgYnkgbXB0YW4oKSByb3V0aW5lICovCi8q
IGFuZCBjb252ZXJ0cyByZXN1bHQgYmFjayB0byBkb3VibGUgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqLwpzdGF0aWMgZG91YmxlIHRhbk1wKGRvdWJsZSB4KQp7CiAgaW50IHA7
CiAgZG91YmxlIHk7CiAgbXBfbm8gbXB5OwogIHA9MzI7CiAgX19tcHRhbih4LCAmbXB5LCBwKTsK
ICBfX21wX2RibCgmbXB5LCZ5LHApOwogIHJldHVybiB5Owp9CgojaWZkZWYgTk9fTE9OR19ET1VC
TEUKd2Vha19hbGlhcyAodGFuLCB0YW5sKQojZW5kaWYK



More information about the Gcc-bugs mailing list