[PATCH branch-1.6] input: Revert "Reorder token recognition to match other implementations."

Eric Blake via M4-patches <[email protected]> Wed, 21 May 2025 21:48:09 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
VGhpcyByZXZlcnRzIGNvbW1pdCAxNmU3MTJiOWRiYy4gIEl0IHR1cm5zIG91dCB0aGF0IGhhdmlu
ZyBjb21tZW50cyBhcwphIGhpZ2hlciBwcmlvcml0eSB0aGFuIG1hY3JvcyBtYWtlcyBpdCBwb3Nz
aWJsZSB0byBwYXJzZSBmaWxlcyB0aGF0CnVzZSBib3RoIFJFTSBvciBSRU1BUksgYXMgYSBjb21t
ZW50LCBhcyB3ZWxsIGFzIHRvIHBhcnNlIGZpbGVzIHRoYXQKY29udGFpbiBtaXNtYXRjaGVkICgp
IGFzIGEgc2luZ2xlIGNvbW1lbnQgbG9uZyBlbm91Z2ggdG8gdGhlbiB0cmFuc2xpdAp0aG9zZSBp
bnRvIHNvbWV0aGluZyBzYWZlIGZvciBmdXJ0aGVyIG00IGhhbmRsaW5nLiAgUE9TSVggbWF5IHNh
eSBpdAppcyB1bmRlZmluZWQsIGJ1dCBzaW5jZSBJIGFjdHVhbGx5IGVuY291bnRlcmVkIGEgY2Fz
ZSB3aXRoIHRoZSBBZHZlbnQKb2YgQ29kZSBjaGFsbGVuZ2VzIChhZHZlbnRvZmNvZGUuY29tKSB3
aGVyZSBiZWluZyBhYmxlIHRvIGFidXNlIEdOVSBtNApjb21tZW50IHNlbWFudGljcyBsZXQgbWUg
c29sdmUgYSBwcm9ibGVtIGluIG00LCBJIHNlZSBubyByZWFzb24gdG8KYnJlYWsgaXQgYWZ0ZXIg
YWxsLgoKKiBORVdTOiBSZW1vdmUgbWVudGlvbiBvZiByZXZlcnRlZCBjaGFuZ2UuCiogZG9jL200
LnRleGkgKENoYW5nZWNvbSk6IFVwZGF0ZSB0ZXh0IHRvIGRlc2NyaWJlIG9sZGVyIHJ1bGVzLCBi
dXQKd2l0aCBtb3JlIHRlc3RzLgoqIHNyYy9pbnB1dC5jIChuZXh0X3Rva2VuKTogUGFyc2UgY29t
bWVudHMgd2l0aCBoaWdoZXN0IHByaW9yaXR5LgotLS0KIE5FV1MgICAgICAgIHwgICA0IC0tCiBk
b2MvbTQudGV4aSB8ICA0NSArKysrKysrKysrKystLS0tLS0tLQogc3JjL2lucHV0LmMgfCAxMTYg
KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMyBm
aWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA3OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9ORVdTIGIvTkVXUwppbmRleCA5N2M0ZDljMC4uNTQ4MDJmZGIgMTAwNjQ0Ci0tLSBhL05F
V1MKKysrIGIvTkVXUwpAQCAtNDYsMTAgKzQ2LDYgQEAgR05VIE00IE5FV1MgLSBVc2VyIHZpc2li
bGUgY2hhbmdlcy4KICAgIHRoZW4gYXBwbHkgdGhpcyBwYXRjaDoKICAgICAgaHR0cDovL2dpdC5z
di5nbnUub3JnL2dpdHdlYi8/cD1hdXRvY29uZi5naXQ7YT1jb21taXRkaWZmO2g9NTZkNDJmYTcx
CgotKiogVGhlIGBjaGFuZ2Vjb20nIGJ1aWx0aW4gc2VtYW50aWNzIG5vdyBtYXRjaCB0cmFkaXRp
b25hbAotICAgaW1wbGVtZW50YXRpb25zOyBpZiB0aGUgc3RhcnQtY29tbWVudCBzdHJpbmcgcmVz
ZW1ibGVzIGEgbWFjcm8gbmFtZSBvcgotICAgdGhlIHN0YXJ0LXF1b3RlIHN0cmluZywgY29tbWVu
dHMgYXJlIGVmZmVjdGl2ZWx5IGRpc2FibGVkLgotCiAqKiBUaGUgYGRpdmVydCcgYnVpbHRpbiBu
b3cgYWNjZXB0cyBhbiBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgb2YgdGV4dAogICAgdGhhdCBp
cyBpbW1lZGlhdGVseSBwbGFjZWQgaW4gdGhlIG5ldyBkaXZlcnNpb24sIHJlZ2FyZGxlc3Mgb2Yg
d2hldGhlcgogICAgdGhlIGN1cnJlbnQgZXhwYW5zaW9uIGlzIG5lc3RlZCB3aXRoaW4gYXJndW1l
bnQgY29sbGVjdGlvbiBvZiBhbm90aGVyCmRpZmYgLS1naXQgYS9kb2MvbTQudGV4aSBiL2RvYy9t
NC50ZXhpCmluZGV4IGQ4YmVmYTUyLi4zYTVlNTVhZCAxMDA2NDQKLS0tIGEvZG9jL200LnRleGkK
KysrIGIvZG9jL200LnRleGkKQEAgLTUzMDUsMTIgKzUzMDUsMjEgQEAgQ2hhbmdlY29tCiBvZiBh
bnkgbGVuZ3RoLiAgT3RoZXIgaW1wbGVtZW50YXRpb25zIGNhcCB0aGUgZGVsaW1pdGVyIGxlbmd0
aCB0byBmaXZlCiBjaGFyYWN0ZXJzLCBidXQgR05VIGhhcyBubyBpbmhlcmVudCBsaW1pdC4KCi1B
cyBvZiBNNCAxLjYsIG1hY3JvcyBhbmQgcXVvdGVzIGFyZSByZWNvZ25pemVkIGluIHByZWZlcmVu
Y2UgdG8KLWNvbW1lbnRzLCBzbyBpZiBhIHByZWZpeCBvZiBAdmFye3N0YXJ0fSBjYW4gYmUgcmVj
b2duaXplZCBhcyBwYXJ0IG9mIGEKLXBvdGVudGlhbCBtYWNybyBuYW1lLCBvciBjb25mdXNlZCB3
aXRoIGEgcXVvdGVkIHN0cmluZywgdGhlIGNvbW1lbnQKLW1lY2hhbmlzbSBpcyBlZmZlY3RpdmVs
eSBkaXNhYmxlZCAoZWFybGllciB2ZXJzaW9ucyBvZiBHTlUgTTQKLWZhdm9yZWQgY29tbWVudHMs
IGJ1dCB0aGlzIHdhcyBpbmNvbnNpc3RlbnQgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMpLgot
VGhpcyBtZWFucwotdGhhdCBAdmFye3N0YXJ0fSBzaG91bGQgbm90IGJlZ2luIHdpdGggYSBsZXR0
ZXIsIGRpZ2l0LCBvciBAc2FtcHtffQotKHVuZGVyc2NvcmUpLCBhbmQgdGhhdCBuZWl0aGVyIHRo
ZSBzdGFydC1xdW90ZSBub3IgdGhlIHN0YXJ0LWNvbW1lbnQKLXN0cmluZyBzaG91bGQgYmUgYSBw
cmVmaXggb2YgdGhlIG90aGVyLgorUE9TSVggc3RhdGVzIHRoYXQgYmVoYXZpb3IgaXMgdW5zcGVj
aWZpZWQgaWYgZWl0aGVyIEB2YXJ7c3RhcnR9IG9yCitAdmFye2VuZH0gY29udGFpbnMgbGV0dGVy
cywgbnVtYmVycywgdW5kZXJzY29yZSwgb3IgbGVmdCBwYXJlbnRoZXNpczsKK3RoaXMgaXMgYmVj
YXVzZSBvdGhlciBpbXBsZW1lbnRhdGlvbnMgZG8gbm90IGFncmVlIG9uIHdoZXRoZXIgYSBjb21t
ZW50CitvciBhIG1hY3JvIG5hbWUgc2hvdWxkIHRha2UgcHJlY2VkZW5jZS4gIExpa2V3aXNlLCBu
ZWl0aGVyIHRoZQorc3RhcnQtcXVvdGUgbm9yIHRoZSBzdGFydC1jb21tZW50IHN0cmluZyBzaG91
bGQgYmUgYSBwcmVmaXggb2YgdGhlCitvdGhlci4gIEhvd2V2ZXIsIGFzIGFuIGV4dGVuc2lvbiwg
R05VIE00IGFsbG93cyBhbnkgb2YgdGhvc2UgY2hhcmFjdGVycworaW4gdGhlIEBjb2Rle2NoYW5n
ZWNvbX0gYXJndW1lbnRzLCBhbmQgcmVjb2duaXplcyBjb21tZW50cyB3aXRoIGEgaGlnaGVyCitw
cmVjZWRlbmNlIHRoYW4gbWFjcm9zIG9yIHF1b3RlZCBzdHJpbmdzLiAgT25lIHVzZSBvZiB0aGlz
IG5vbi1wb3J0YWJsZQorZXh0ZW5zaW9uIGlzIHRvIHRlbXBvcmFyaWx5IGNoYW5nZSBjb21tZW50
cyB0byBhIHN0YXJ0IHNlcXVlbmNlIGtub3duIHRvCithcHBlYXIgZWFybHkgaW4gYSBmaWxlLCBh
bmQgYW4gZW5kIHNlcXVlbmNlIHRoYXQgZG9lcyBub3QgYXBwZWFyIGluIHRoZQorZmlsZSwgaW4g
b3JkZXIgdG8gdGhlbiB1c2UgQGNvZGV7aW5jbHVkZX0gb24gYSBmaWxlIHRoYXQgbWF5IGNvbnRh
aW4KK3VuYmFsYW5jZWQgcGFyZW50aGVzaXMgb3IgdW5xdW90ZWQgbWFjcm9zIG9yIGNvbW1hcywg
dGhlcmVieSB0cmVhdGluZwordGhhdCBlbnRpcmUgZmlsZSBhcyBhIHNpbmdsZSBjb21tZW50IHRo
YXQgY2FuIHRoZW4gYmUgcGFzc2VkIGFzIGEgc2luZ2xlCithcmd1bWVudCB0byBAY29kZXt0cmFu
c2xpdH0gb3IgQGNvZGV7cGF0c3Vic3R9IHRvIGNvbnZlcnQgdGhlIGNvbW1lbnQKK2ludG8gc29t
ZXRoaW5nIHNhZmUgdG8gcHJvY2Vzcy4gIE5vdGUgdGhhdCBhIGNvbW1lbnQgZGVsaW1pdGVyIGlz
IG5vdAorcmVjb2duaXplZCBpbiB0aGUgbWlkZGxlIG9mIGEgcG90ZW50aWFsIG1hY3JvIG5hbWUg
b3IgcXVvdGVkIHN0cmluZywgYnV0Cit0aGF0IGEgY29tbWVudCBkZWxpbWl0ZXIgdGhhdCByZXNl
bWJsZXMgYSBtYWNybyBuYW1lIGlzIG5vdCBhdm9pZGVkCittZXJlbHkgYnkgYXBwZW5kaW5nIG1v
cmUgbWFjcm8gY2hhcmFjdGVycy4KCiBAZXhhbXBsZQogZGVmaW5lKGBoaScsIGBISScpCkBAIC01
MzIzLDMzICs1MzMyLDM1IEBAIENoYW5nZWNvbQogY2hhbmdlY29tKGBxJywgYFEnKQogQHJlc3Vs
dHt9CiBxIGhpIFEgaGkKLUByZXN1bHR7fXEgSEkgUSBISQorQHJlc3VsdHt9cSBoaSBRIEhJCiBj
aGFuZ2Vjb20oYDEnLCBgMicpCiBAcmVzdWx0e30KIGhpMWhpMgogQHJlc3VsdHt9aGVsbG8KIGhp
IDFoaTIKIEByZXN1bHR7fUhJIDFoaTIKLWNoYW5nZWNvbShgW1snLCBgXV0nKQorY2hhbmdlY29t
KGBSRU0nKQogQHJlc3VsdHt9Ci1jaGFuZ2VxdW90ZShgW1tbJywgYF1dXScpCitSRU0gaGkKK0By
ZXN1bHR7fVJFTSBoaQorUkVNQVJLIGhpCitAcmVzdWx0e31SRU1BUksgaGkKK2NoYW5nZWNvbShg
W1snLCBgXV0nKWNoYW5nZXF1b3RlKGBbW1snLCBgXV1dJykKIEByZXN1bHR7fQogW2hpXQogQHJl
c3VsdHt9W0hJXQogW1toaV1dCiBAcmVzdWx0e31bW2hpXV0KIFtbW2hpXV1dCi1AcmVzdWx0e31o
aQorQHJlc3VsdHt9W1tbaGldXV0KIGNoYW5nZXF1b3RlCiBAcmVzdWx0e30KLWNoYW5nZWNvbShg
W1tbJywgYF1dXScpCi1AcmVzdWx0e30KLWNoYW5nZXF1b3RlKGBbWycsIGBdXScpCitjaGFuZ2Vj
b20oYFtbWycsIGBdXV0nKWNoYW5nZXF1b3RlKGBbWycsIGBdXScpCiBAcmVzdWx0e30KIFtbaGld
XQogQHJlc3VsdHt9aGkKIFtbW2hpXV1dCi1AcmVzdWx0e31baGldCitAcmVzdWx0e31bW1toaV1d
XQogQGVuZCBleGFtcGxlCgogQ29tbWVudHMgYXJlIHJlY29nbml6ZWQgaW4gcHJlZmVyZW5jZSB0
byBhcmd1bWVudCBjb2xsZWN0aW9uLiAgSW4KZGlmZiAtLWdpdCBhL3NyYy9pbnB1dC5jIGIvc3Jj
L2lucHV0LmMKaW5kZXggNzg2YTViMzkuLjBkY2ViN2I0IDEwMDY0NAotLS0gYS9zcmMvaW5wdXQu
YworKysgYi9zcmMvaW5wdXQuYwpAQCAtMTg4NCw3ICsxODg0LDY0IEBAIG5leHRfdG9rZW4gKHRv
a2VuX2RhdGEgKnRkLCBpbnQgKmxpbmUsIHN0cnVjdCBvYnN0YWNrICpvYnMsIGJvb2wgYWxsb3df
YXJndiwKICAgICAgIHJldHVybiBUT0tFTl9BUkdWOwogICAgIH0KCi0gIGlmIChjX2lzYWxwaGEg
KGNoKSB8fCBjaCA9PSAnXycpCisgIGlmIChNQVRDSCAoY2gsIGN1cnJfY29tbS5zdHIxLCBjdXJy
X2NvbW0ubGVuMSwgdHJ1ZSkpCisgICAgeworICAgICAgaWYgKG9icykKKyAgICAgICAgb2JzX3Rk
ID0gb2JzOworICAgICAgb2JzdGFja19ncm93IChvYnNfdGQsIGN1cnJfY29tbS5zdHIxLCBjdXJy
X2NvbW0ubGVuMSk7CisgICAgICB3aGlsZSAoMSkKKyAgICAgICAgeworICAgICAgICAgIC8qIFN0
YXJ0IHdpdGggYnVmZmVyIHNlYXJjaCBmb3IgcG90ZW50aWFsIGVuZCBkZWxpbWl0ZXIuICAqLwor
ICAgICAgICAgIHNpemVfdCBsZW47CisgICAgICAgICAgY29uc3QgY2hhciAqYnVmZmVyID0gbmV4
dF9idWZmZXIgKCZsZW4sIGZhbHNlKTsKKyAgICAgICAgICBpZiAoYnVmZmVyKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICBjb25zdCBjaGFyICpwID0gKGNoYXIgKikgbWVtY2hyIChidWZm
ZXIsICpjdXJyX2NvbW0uc3RyMiwgbGVuKTsKKyAgICAgICAgICAgICAgaWYgKHApCisgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgb2JzdGFja19ncm93IChvYnNfdGQsIGJ1ZmZl
ciwgcCAtIGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgICBjaCA9IHRvX3VjaGFyICgqcCk7Cisg
ICAgICAgICAgICAgICAgICBjb25zdW1lX2J1ZmZlciAocCAtIGJ1ZmZlciArIDEpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAgIG9ic3RhY2tfZ3JvdyAob2JzX3RkLCBidWZmZXIsIGxlbik7CisgICAgICAg
ICAgICAgICAgICBjb25zdW1lX2J1ZmZlciAobGVuKTsKKyAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgIC8qIEZh
bGwgYmFjayB0byBieXRlLXdpc2Ugc2VhcmNoLiAgKi8KKyAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICBjaCA9IG5leHRfY2hhciAoZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICBpZiAoY2ggPT0g
Q0hBUl9FT0YpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIC8qIEN1cnJlbnRfZmlsZSBj
aGFuZ2VkIHRvICIiIGlmIHdlIHNlZSBDSEFSX0VPRiwgdXNlCisgICAgICAgICAgICAgICAgIHRo
ZSBwcmV2aW91cyB2YWx1ZSB3ZSBzdG9yZWQgZWFybGllci4gICovCisgICAgICAgICAgICAgIGlm
ICghY2FsbGVyKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGFzc2VydCAo
bGluZSk7CisgICAgICAgICAgICAgICAgICBjdXJyZW50X2xpbmUgPSAqbGluZTsKKyAgICAgICAg
ICAgICAgICAgIGN1cnJlbnRfZmlsZSA9IGZpbGU7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICBtNF9lcnJvciAoRVhJVF9GQUlMVVJFLCAwLCBjYWxsZXIsIF8oImVuZCBvZiBmaWxl
IGluIGNvbW1lbnQiKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgaWYgKGNoID09IENIQVJf
TUFDUk8pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGluaXRfbWFjcm9fdG9rZW4gKG9i
cywgb2JzID8gdGQgOiBOVUxMKTsKKyAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgaWYgKE1BVENIIChjaCwgY3Vycl9jb21tLnN0cjIsIGN1cnJfY29tbS5s
ZW4yLCB0cnVlKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgb2JzdGFja19ncm93IChv
YnNfdGQsIGN1cnJfY29tbS5zdHIyLCBjdXJyX2NvbW0ubGVuMik7CisgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgIGFzc2VydCAoY2ggPCBDSEFSX0VPRik7Cisg
ICAgICAgICAgb2JzdGFja18xZ3JvdyAob2JzX3RkLCBjaCk7CisgICAgICAgIH0KKyAgICAgIHR5
cGUgPSBUT0tFTl9DT01NRU5UOworICAgIH0KKyAgZWxzZSBpZiAoY19pc2FscGhhIChjaCkgfHwg
Y2ggPT0gJ18nKQogICAgIHsKICAgICAgIG9ic3RhY2tfMWdyb3cgKCZ0b2tlbl9zdGFjaywgY2gp
OwogICAgICAgd2hpbGUgKDEpCkBAIC0yMDAyLDYzICsyMDU5LDYgQEAgbmV4dF90b2tlbiAodG9r
ZW5fZGF0YSAqdGQsIGludCAqbGluZSwgc3RydWN0IG9ic3RhY2sgKm9icywgYm9vbCBhbGxvd19h
cmd2LAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICBlbHNlIGlmIChNQVRDSCAo
Y2gsIGN1cnJfY29tbS5zdHIxLCBjdXJyX2NvbW0ubGVuMSwgdHJ1ZSkpCi0gICAgewotICAgICAg
aWYgKG9icykKLSAgICAgICAgb2JzX3RkID0gb2JzOwotICAgICAgb2JzdGFja19ncm93IChvYnNf
dGQsIGN1cnJfY29tbS5zdHIxLCBjdXJyX2NvbW0ubGVuMSk7Ci0gICAgICB3aGlsZSAoMSkKLSAg
ICAgICAgewotICAgICAgICAgIC8qIFN0YXJ0IHdpdGggYnVmZmVyIHNlYXJjaCBmb3IgcG90ZW50
aWFsIGVuZCBkZWxpbWl0ZXIuICAqLwotICAgICAgICAgIHNpemVfdCBsZW47Ci0gICAgICAgICAg
Y29uc3QgY2hhciAqYnVmZmVyID0gbmV4dF9idWZmZXIgKCZsZW4sIGZhbHNlKTsKLSAgICAgICAg
ICBpZiAoYnVmZmVyKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBjb25zdCBjaGFyICpw
ID0gKGNoYXIgKikgbWVtY2hyIChidWZmZXIsICpjdXJyX2NvbW0uc3RyMiwgbGVuKTsKLSAgICAg
ICAgICAgICAgaWYgKHApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgb2Jz
dGFja19ncm93IChvYnNfdGQsIGJ1ZmZlciwgcCAtIGJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAg
ICBjaCA9IHRvX3VjaGFyICgqcCk7Ci0gICAgICAgICAgICAgICAgICBjb25zdW1lX2J1ZmZlciAo
cCAtIGJ1ZmZlciArIDEpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgIG9ic3RhY2tfZ3JvdyAob2JzX3Rk
LCBidWZmZXIsIGxlbik7Ci0gICAgICAgICAgICAgICAgICBjb25zdW1lX2J1ZmZlciAobGVuKTsK
LSAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgIC8qIEZhbGwgYmFjayB0byBieXRlLXdpc2Ugc2VhcmNoLiAgKi8K
LSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBjaCA9IG5leHRfY2hhciAoZmFsc2UsIGZhbHNl
KTsKLSAgICAgICAgICBpZiAoY2ggPT0gQ0hBUl9FT0YpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgIC8qIEN1cnJlbnRfZmlsZSBjaGFuZ2VkIHRvICIiIGlmIHdlIHNlZSBDSEFSX0VPRiwg
dXNlCi0gICAgICAgICAgICAgICAgIHRoZSBwcmV2aW91cyB2YWx1ZSB3ZSBzdG9yZWQgZWFybGll
ci4gICovCi0gICAgICAgICAgICAgIGlmICghY2FsbGVyKQotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgIGFzc2VydCAobGluZSk7Ci0gICAgICAgICAgICAgICAgICBjdXJyZW50
X2xpbmUgPSAqbGluZTsKLSAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZmlsZSA9IGZpbGU7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBtNF9lcnJvciAoRVhJVF9GQUlMVVJFLCAw
LCBjYWxsZXIsIF8oImVuZCBvZiBmaWxlIGluIGNvbW1lbnQiKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgaWYgKGNoID09IENIQVJfTUFDUk8pCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgIGluaXRfbWFjcm9fdG9rZW4gKG9icywgb2JzID8gdGQgOiBOVUxMKTsKLSAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgaWYgKE1BVENIIChjaCwgY3Vy
cl9jb21tLnN0cjIsIGN1cnJfY29tbS5sZW4yLCB0cnVlKSkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgb2JzdGFja19ncm93IChvYnNfdGQsIGN1cnJfY29tbS5zdHIyLCBjdXJyX2NvbW0u
bGVuMik7Ci0gICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgIGFz
c2VydCAoY2ggPCBDSEFSX0VPRik7Ci0gICAgICAgICAgb2JzdGFja18xZ3JvdyAob2JzX3RkLCBj
aCk7Ci0gICAgICAgIH0KLSAgICAgIHR5cGUgPSBUT0tFTl9DT01NRU5UOwotICAgIH0KICAgZWxz
ZQogICAgIHsKICAgICAgIGFzc2VydCAoY2ggPCBDSEFSX0VPRik7Ci0tIAoyLjQ5LjAKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpNNC1wYXRjaGVzIG1h
aWxpbmcgbGlzdApNNC1wYXRjaGVzQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxt
YW4vbGlzdGluZm8vbTQtcGF0Y2hlcwo=