<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>236783</bug_id>
          
          <creation_ts>2022-02-17 07:56:40 -0800</creation_ts>
          <short_desc>[WGSL] The lexer should use the functions from wtf/ASCIICType.h</short_desc>
          <delta_ts>2022-03-08 12:16:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>233276</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842900</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2022-02-17 07:56:40 -0800</bug_when>
    <thetext>As suggested by Darin in a post-landing review of https://bugs.webkit.org/show_bug.cgi?id=233276.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842903</commentid>
    <comment_count>1</comment_count>
      <attachid>452367</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2022-02-17 07:59:56 -0800</bug_when>
    <thetext>Created attachment 452367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842954</commentid>
    <comment_count>2</comment_count>
      <attachid>452367</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-17 10:07:17 -0800</bug_when>
    <thetext>Comment on attachment 452367
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=452367&amp;action=review

&gt; Source/WebGPU/WGSL/Lexer.cpp:163
&gt; +        if (isASCIIDigit (m_current)) {

Stray space here after isASCIIDigit.

&gt; Source/WebGPU/WGSL/Lexer.cpp:191
&gt; -        } else if (isIdentifierStart(m_current)) {
&gt; +        } else if (isASCIIAlpha(m_current)) {

Not sure this change is an improvement. Might want isIdentifierStart so the intent of the code is more apparent. The implementation of that function can use isASCIIAlpha.

&gt; Source/WebGPU/WGSL/Lexer.cpp:194
&gt; -            while (isValidIdentifierCharacter(m_current))
&gt; +            while (isASCIIAlphanumeric(m_current) || m_current == &apos;_&apos;)

Ditto.

&gt; Source/WebGPU/WGSL/Lexer.cpp:271
&gt; -    while (isWhiteSpace(m_current)) {
&gt; +    while (isASCIISpace(m_current)) {

It can be ambiguous sometimes which definition of whitespace to use in various contexts. Might still want a named function for that.

&gt; Source/WebGPU/WGSL/Lexer.cpp:301
&gt; -        value += readDecimal(m_current);
&gt; +        value += static_cast&lt;uint64_t&gt;(m_current - &apos;0&apos;);

This code looks less elegant than the old.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842981</commentid>
    <comment_count>3</comment_count>
      <attachid>452367</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2022-02-17 11:02:34 -0800</bug_when>
    <thetext>Comment on attachment 452367
Patch

Thank you for the review, I&apos;ve visibly overcorrected in eliminating my code.
I&apos;ll fix it and update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845610</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-24 07:57:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89418026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849062</commentid>
    <comment_count>5</comment_count>
      <attachid>454058</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2022-03-07 18:28:15 -0800</bug_when>
    <thetext>Created attachment 454058
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849363</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-08 12:16:19 -0800</bug_when>
    <thetext>Committed r291004 (248180@main): &lt;https://commits.webkit.org/248180@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454058.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452367</attachid>
            <date>2022-02-17 07:59:56 -0800</date>
            <delta_ts>2022-03-07 18:28:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patchImproveLexer</filename>
            <type>text/plain</type>
            <size>7656</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkdQVS9DaGFu
Z2VMb2cKaW5kZXggMzc2YjgxOGIxZDkzLi4wZWYyM2VkYmU5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMjItMDItMTcgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNv
bT4KKworICAgICAgICBbV0dTTF0gVGhlIGxleGVyIHNob3VsZCB1c2UgdGhlIGZ1bmN0aW9ucyBm
cm9tIHd0Zi9BU0NJSUNUeXBlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEkgd2FzIG5vdCBhd2FyZSBvZiB0aGVzZSBmdW5jdGlvbnMgd2hlbiBJIHdy
b3RlIHRoZSBsZXhlciwgYW5kIEkgZW5kZWQgdXAgcmVpbXBsZW1lbnRpbmcgdGhlbS4KKyAgICAg
ICAgUmV1c2luZyB0aGVtIGlzIGJvdGggc2ltcGxlciwgYW5kIHNsaWdodGx5IG1vcmUgZWZmaWNp
ZW50IGFzIHNvbWUgb2YgdGhlbSAoZXNwZWNpYWxseSBpc0FTQ0lJU3BhY2UpIGhhdmUgYmVlbiBv
cHRpbWl6ZWQuCisKKyAgICAgICAgKiBXR1NML0xleGVyLmNwcDoKKyAgICAgICAgKFdHU0w6Okxl
eGVyPFQ+OjpsZXgpOgorICAgICAgICAoV0dTTDo6TGV4ZXI8VD46OnNraXBXaGl0ZXNwYWNlKToK
KyAgICAgICAgKFdHU0w6OkxleGVyPFQ+OjpwYXJzZURlY2ltYWxJbnRlZ2VyKToKKyAgICAgICAg
KFdHU0w6OkxleGVyPFQ+OjpwYXJzZURlY2ltYWxGbG9hdEV4cG9uZW50KToKKyAgICAgICAgKFdH
U0w6OkxleGVyPFQ+Ojppc1doaXRlU3BhY2UpOiBEZWxldGVkLgorICAgICAgICAoV0dTTDo6TGV4
ZXI8VD46OmlzSWRlbnRpZmllclN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVy
PFQ+Ojppc1ZhbGlkSWRlbnRpZmllckNoYXJhY3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChXR1NM
OjpMZXhlcjxUPjo6aXNEZWNpbWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVyPFQ+
Ojppc0hleGFkZWNpbWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVyPFQ+OjpyZWFk
RGVjaW1hbCk6IERlbGV0ZWQuCisgICAgICAgIChXR1NMOjpMZXhlcjxUPjo6cmVhZEhleGFkZWNp
bWFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXR1NML0xleGVyLmg6CisKIDIwMjItMDItMTUgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR1BV
XSBVcGRhdGUgSURMcyBhbmQgc3R1YnMgdG8gbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHNwZWMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9MZXhlci5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dH
U0wvTGV4ZXIuY3BwCmluZGV4IGFhYmU3NDVlMDJhMS4uNDViZGY2N2RkZmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViR1BVL1dHU0wvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9M
ZXhlci5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJMZXhlci5oIgogCisjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KICNpbmNsdWRlIDx3dGYv
dW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiBuYW1lc3BhY2UgV0dTTCB7CkBAIC0xMTAsOSAr
MTExLDkgQEAgVG9rZW4gTGV4ZXI8VD46OmxleCgpCiAgICAgICAgICAgICAvLyBGSVhNRTogYWRk
IHN1cHBvcnQgZm9yIGhleGFkZWNpbWFsIGZsb2F0aW5nIHBvaW50IGxpdGVyYWxzCiAgICAgICAg
ICAgICBzaGlmdCgpOwogICAgICAgICAgICAgYm9vbCBoZXhOdW1iZXJJc0VtcHR5ID0gdHJ1ZTsK
LSAgICAgICAgICAgIHdoaWxlIChpc0hleGFkZWNpbWFsKG1fY3VycmVudCkpIHsKKyAgICAgICAg
ICAgIHdoaWxlIChpc0FTQ0lJSGV4RGlnaXQobV9jdXJyZW50KSkgewogICAgICAgICAgICAgICAg
IGxpdGVyYWxWYWx1ZSAqPSAxNjsKLSAgICAgICAgICAgICAgICBsaXRlcmFsVmFsdWUgKz0gcmVh
ZEhleGFkZWNpbWFsKG1fY3VycmVudCk7CisgICAgICAgICAgICAgICAgbGl0ZXJhbFZhbHVlICs9
IHRvQVNDSUlIZXhWYWx1ZShtX2N1cnJlbnQpOwogICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAg
ICAgICAgICAgICAgICAgaGV4TnVtYmVySXNFbXB0eSA9IGZhbHNlOwogICAgICAgICAgICAgfQpA
QCAtMTIyLDcgKzEyMyw3IEBAIFRva2VuIExleGVyPFQ+OjpsZXgoKQogICAgICAgICB9CiAKICAg
ICAgICAgYm9vbCBpc0Zsb2F0aW5nUG9pbnQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGlzRGVjaW1h
bChtX2N1cnJlbnQpIHx8IG1fY3VycmVudCA9PSAnLicgfHwgbV9jdXJyZW50ID09ICdlJyB8fCBt
X2N1cnJlbnQgPT0gJ0UnKSB7CisgICAgICAgIGlmIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSB8
fCBtX2N1cnJlbnQgPT0gJy4nIHx8IG1fY3VycmVudCA9PSAnZScgfHwgbV9jdXJyZW50ID09ICdF
JykgewogICAgICAgICAgICAgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaW50ZWdlclBhcnQgPSBw
YXJzZURlY2ltYWxJbnRlZ2VyKCk7CiAgICAgICAgICAgICBpZiAoaW50ZWdlclBhcnQpCiAgICAg
ICAgICAgICAgICAgbGl0ZXJhbFZhbHVlID0gaW50ZWdlclBhcnQudmFsdWUoKTsKQEAgLTE1OSw3
ICsxNjAsNyBAQCBUb2tlbiBMZXhlcjxUPjo6bGV4KCkKICAgICAgICAgcmV0dXJuIHBhcnNlSW50
ZWdlckxpdGVyYWxTdWZmaXgobGl0ZXJhbFZhbHVlKTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAg
ICAgICAgaWYgKGlzRGVjaW1hbCAobV9jdXJyZW50KSkgeworICAgICAgICBpZiAoaXNBU0NJSURp
Z2l0IChtX2N1cnJlbnQpKSB7CiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiB2
YWx1ZSA9IHBhcnNlRGVjaW1hbEludGVnZXIoKTsKICAgICAgICAgICAgIGlmICghdmFsdWUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VUb2tlbihUb2tlblR5cGU6OkludmFsaWQpOwpAQCAt
MTg3LDEwICsxODgsMTAgQEAgVG9rZW4gTGV4ZXI8VD46OmxleCgpCiAgICAgICAgICAgICBpZiAo
IWlzRmxvYXRpbmdQb2ludCkKICAgICAgICAgICAgICAgICByZXR1cm4gcGFyc2VJbnRlZ2VyTGl0
ZXJhbFN1ZmZpeChsaXRlcmFsVmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuIG1ha2VMaXRlcmFs
VG9rZW4oVG9rZW5UeXBlOjpEZWNpbWFsRmxvYXRMaXRlcmFsLCBsaXRlcmFsVmFsdWUpOwotICAg
ICAgICB9IGVsc2UgaWYgKGlzSWRlbnRpZmllclN0YXJ0KG1fY3VycmVudCkpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChpc0FTQ0lJQWxwaGEobV9jdXJyZW50KSkgewogICAgICAgICAgICAgY29uc3Qg
VCogc3RhcnRPZlRva2VuID0gbV9jb2RlOwogICAgICAgICAgICAgc2hpZnQoKTsKLSAgICAgICAg
ICAgIHdoaWxlIChpc1ZhbGlkSWRlbnRpZmllckNoYXJhY3RlcihtX2N1cnJlbnQpKQorICAgICAg
ICAgICAgd2hpbGUgKGlzQVNDSUlBbHBoYW51bWVyaWMobV9jdXJyZW50KSB8fCBtX2N1cnJlbnQg
PT0gJ18nKQogICAgICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICAvLyBGSVhNRTog
YSB0cmllIHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IGhlcmUsIGxvb2sgYXQgSmF2YVNjcmlwdENv
cmUvS2V5d29yZExvb2t1cEdlbmVyYXRvci5weSBmb3IgYW4gZXhhbXBsZSBvZiBjb2RlIGF1dG9n
ZW5lcmF0aW9uIHRoYXQgcHJvZHVjZXMgc3VjaCBhIHRyaWUuCiAgICAgICAgICAgICBTdHJpbmdW
aWV3IHZpZXcgeyBzdGFydE9mVG9rZW4sIGN1cnJlbnRUb2tlbkxlbmd0aCgpIH07CkBAIC0yNjcs
NyArMjY4LDcgQEAgVCBMZXhlcjxUPjo6cGVlayh1bnNpZ25lZCBpKQogdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiB2b2lkIExleGVyPFQ+Ojpza2lwV2hpdGVzcGFjZSgpCiB7Ci0gICAgd2hpbGUgKGlz
V2hpdGVTcGFjZShtX2N1cnJlbnQpKSB7CisgICAgd2hpbGUgKGlzQVNDSUlTcGFjZShtX2N1cnJl
bnQpKSB7CiAgICAgICAgIGlmIChtX2N1cnJlbnQgPT0gJ1xuJykgewogICAgICAgICAgICAgc2hp
ZnQoKTsKICAgICAgICAgICAgICsrbV9jdXJyZW50UG9zaXRpb24ubV9saW5lOwpAQCAtMjkxLDEz
ICsyOTIsMTMgQEAgYm9vbCBMZXhlcjxUPjo6aXNBdEVuZE9mRmlsZSgpIGNvbnN0CiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IExleGVyPFQ+OjpwYXJzZURl
Y2ltYWxJbnRlZ2VyKCkKIHsKLSAgICBpZiAoIWlzRGVjaW1hbChtX2N1cnJlbnQpKQorICAgIGlm
ICghaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKICAgICBDaGVja2VkVWludDY0IHZhbHVlID0gMDsKLSAgICB3aGlsZSAoaXNEZWNpbWFsKG1f
Y3VycmVudCkpIHsKKyAgICB3aGlsZSAoaXNBU0NJSURpZ2l0KG1fY3VycmVudCkpIHsKICAgICAg
ICAgdmFsdWUgKj0gMTB1bGw7Ci0gICAgICAgIHZhbHVlICs9IHJlYWREZWNpbWFsKG1fY3VycmVu
dCk7CisgICAgICAgIHZhbHVlICs9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtX2N1cnJlbnQgLSAn
MCcpOwogICAgICAgICBzaGlmdCgpOwogICAgIH0KICAgICBpZiAodmFsdWUuaGFzT3ZlcmZsb3dl
ZCgpKQpAQCAtMzE1LDkgKzMxNiw5IEBAIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gTGV4ZXI8VD46
OnBhcnNlRGVjaW1hbEZsb2F0RXhwb25lbnQoKQogICAgIGlmIChtX2N1cnJlbnQgIT0gJ2UnICYm
IG1fY3VycmVudCAhPSAnRScpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYg
KGNoYXIxID09ICcrJyB8fCBjaGFyMSA9PSAnLScpIHsKLSAgICAgICAgaWYgKCFpc0RlY2ltYWwo
Y2hhcjIpKQorICAgICAgICBpZiAoIWlzQVNDSUlEaWdpdChjaGFyMikpCiAgICAgICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIH0gZWxzZSBpZiAoIWlzRGVjaW1hbChjaGFyMSkpCisg
ICAgfSBlbHNlIGlmICghaXNBU0NJSURpZ2l0KGNoYXIxKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICBzaGlmdCgpOwogCkBAIC0zNTMsNjUgKzM1NCw2IEBAIFRva2VuIExleGVy
PFQ+OjpwYXJzZUludGVnZXJMaXRlcmFsU3VmZml4KGRvdWJsZSBsaXRlcmFsVmFsdWUpCiAgICAg
cmV0dXJuIG1ha2VMaXRlcmFsVG9rZW4oVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbCwgbGl0ZXJh
bFZhbHVlKTsKIH07CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotQUxXQVlTX0lOTElORSBib29s
IExleGVyPFQ+Ojppc1doaXRlU3BhY2UoVCBjaCkKLXsKLSAgICBzd2l0Y2ggKGNoKSB7Ci0gICAg
Y2FzZSBXVEY6OlVuaWNvZGU6OnNwYWNlOgotICAgIGNhc2UgV1RGOjpVbmljb2RlOjp0YWJDaGFy
YWN0ZXI6Ci0gICAgY2FzZSBXVEY6OlVuaWNvZGU6OmNhcnJpYWdlUmV0dXJuOgotICAgIGNhc2Ug
V1RGOjpVbmljb2RlOjpuZXdsaW5lQ2hhcmFjdGVyOgotICAgIGNhc2UgV1RGOjpVbmljb2RlOjp2
ZXJ0aWNhbFRhYnVsYXRpb246Ci0gICAgY2FzZSBXVEY6OlVuaWNvZGU6OmZvcm1GZWVkOgotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLUFMV0FZU19JTkxJTkUgYm9vbCBMZXhl
cjxUPjo6aXNJZGVudGlmaWVyU3RhcnQoVCBjaCkKLXsKLSAgICByZXR1cm4gKGNoID49ICdhJyAm
JiBjaCA8PSAneicpIHx8IChjaCA+PSAnQScgJiYgY2ggPD0gJ1onKTsKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+Ci1BTFdBWVNfSU5MSU5FIGJvb2wgTGV4ZXI8VD46OmlzVmFsaWRJZGVudGlm
aWVyQ2hhcmFjdGVyKFQgY2gpCi17Ci0gICAgcmV0dXJuIChjaCA+PSAnYScgJiYgY2ggPD0gJ3on
KSB8fCAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJykgfHwgKGNoID49ICcwJyAmJiBjaCA8PSAnOScp
IHx8IGNoID09ICdfJzsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1BTFdBWVNfSU5MSU5F
IGJvb2wgTGV4ZXI8VD46OmlzRGVjaW1hbChUIGNoKQotewotICAgIHJldHVybiAoY2ggPj0gJzAn
ICYmIGNoIDw9ICc5Jyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotQUxXQVlTX0lOTElO
RSBib29sIExleGVyPFQ+Ojppc0hleGFkZWNpbWFsKFQgY2gpCi17Ci0gICAgcmV0dXJuIChjaCA+
PSAnMCcgJiYgY2ggPD0gJzknKSB8fCAoY2ggPj0gJ2EnICYmIGNoIDw9ICdmJykgfHwgKGNoID49
ICdBJyAmJiBjaCA8PSAnRicpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLUFMV0FZU19J
TkxJTkUgdWludDY0X3QgTGV4ZXI8VD46OnJlYWREZWNpbWFsKFQgY2gpCi17Ci0gICAgQVNTRVJU
KGlzRGVjaW1hbChjaCkpOwotICAgIHJldHVybiBjaCAtICcwJzsKLX0KLQotdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+Ci1BTFdBWVNfSU5MSU5FIHVpbnQ2NF90IExleGVyPFQ+OjpyZWFkSGV4YWRlY2lt
YWwoVCBjaCkKLXsKLSAgICBBU1NFUlQoaXNIZXhhZGVjaW1hbChjaCkpOwotICAgIGlmIChjaCA+
PSAnMCcgJiYgY2ggPD0gJzknKQotICAgICAgICByZXR1cm4gY2ggLSAnMCc7Ci0gICAgaWYgKGNo
ID49ICdhJyAmJiBjaCA8PSAnZicpCi0gICAgICAgIHJldHVybiBjaCAtICdhJzsKLSAgICBBU1NF
UlQoY2ggPj0gJ0EnICYmIGNoIDw9ICdGJyk7Ci0gICAgcmV0dXJuIGNoIC0gJ0EnOwotfQotCiB0
ZW1wbGF0ZSBjbGFzcyBMZXhlcjxMQ2hhcj47CiB0ZW1wbGF0ZSBjbGFzcyBMZXhlcjxVQ2hhcj47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9MZXhlci5oIGIvU291cmNlL1dlYkdQ
VS9XR1NML0xleGVyLmgKaW5kZXggZjNlNmZmODk3YWUyLi40NmUyMGUwMTYwMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9MZXhlci5oCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9M
ZXhlci5oCkBAIC01MywxNSArNTMsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0F0RW5kT2ZGaWxl
KCkgY29uc3Q7CiAgICAgU291cmNlUG9zaXRpb24gY3VycmVudFBvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAgIC8vIE9ubHkgcHVibGljIHNvIHRoYXQg
dGhlIFVDaGFyIHZlcnNpb24gb2YgdGhlIExleGVyIGNhbiBkZWZlciB0byB0aGUgTENoYXIgdmVy
c2lvbgotICAgIHN0YXRpYyBib29sIGlzV2hpdGVTcGFjZShUIGNoYXJhY3Rlcik7Ci0gICAgc3Rh
dGljIGJvb2wgaXNJZGVudGlmaWVyU3RhcnQoVCBjaGFyYWN0ZXIpOwotICAgIHN0YXRpYyBib29s
IGlzVmFsaWRJZGVudGlmaWVyQ2hhcmFjdGVyKFQgY2hhcmFjdGVyKTsKLSAgICBzdGF0aWMgYm9v
bCBpc0RlY2ltYWwoVCBjaGFyYWN0ZXIpOwotICAgIHN0YXRpYyBib29sIGlzSGV4YWRlY2ltYWwo
VCBjaGFyYWN0ZXIpOwotICAgIHN0YXRpYyB1aW50NjRfdCByZWFkRGVjaW1hbChUIGNoYXJhY3Rl
cik7Ci0gICAgc3RhdGljIHVpbnQ2NF90IHJlYWRIZXhhZGVjaW1hbChUIGNoYXJhY3Rlcik7Ci0K
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgY3VycmVudE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudFBvc2l0aW9uLm1fb2Zmc2V0OyB9CiAgICAgdW5zaWduZWQgY3VycmVudFRva2VuTGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gY3VycmVudE9mZnNldCgpIC0gbV90b2tlblN0YXJ0aW5nUG9z
aXRpb24ubV9vZmZzZXQ7IH0K
</data>
<flag name="review"
          id="479391"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="479392"
          type_id="3"
          status="-"
          setter="rmorisset"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454058</attachid>
            <date>2022-03-07 18:28:15 -0800</date>
            <delta_ts>2022-03-08 12:16:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patchImproveLexer</filename>
            <type>text/plain</type>
            <size>7360</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkdQVS9DaGFu
Z2VMb2cKaW5kZXggNzYwZTM0MGJmMmM5Li44ZTdjZTk5MDYwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJHUFUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjcgQEAKKzIwMjItMDItMTcgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNv
bT4KKworICAgICAgICBbV0dTTF0gVGhlIGxleGVyIHNob3VsZCB1c2UgdGhlIGZ1bmN0aW9ucyBm
cm9tIHd0Zi9BU0NJSUNUeXBlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzNjc4MworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgor
CisgICAgICAgIEkgd2FzIG5vdCBhd2FyZSBvZiB0aGVzZSBmdW5jdGlvbnMgd2hlbiBJIHdyb3Rl
IHRoZSBsZXhlciwgYW5kIEkgZW5kZWQgdXAgcmVpbXBsZW1lbnRpbmcgdGhlbS4KKyAgICAgICAg
UmV1c2luZyB0aGVtIGlzIGJvdGggc2ltcGxlciwgYW5kIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50
IGFzIHNvbWUgb2YgdGhlbSAoZXNwZWNpYWxseSBpc0FTQ0lJU3BhY2UpIGhhdmUgYmVlbiBvcHRp
bWl6ZWQuCisKKyAgICAgICAgKiBXR1NML0xleGVyLmNwcDoKKyAgICAgICAgKFdHU0w6OkxleGVy
PFQ+OjpsZXgpOgorICAgICAgICAoV0dTTDo6TGV4ZXI8VD46OnNraXBXaGl0ZXNwYWNlKToKKyAg
ICAgICAgKFdHU0w6OkxleGVyPFQ+OjpwYXJzZURlY2ltYWxJbnRlZ2VyKToKKyAgICAgICAgKFdH
U0w6OkxleGVyPFQ+OjpwYXJzZURlY2ltYWxGbG9hdEV4cG9uZW50KToKKyAgICAgICAgKFdHU0w6
OkxleGVyPFQ+Ojppc1doaXRlU3BhY2UpOiBEZWxldGVkLgorICAgICAgICAoV0dTTDo6TGV4ZXI8
VD46OmlzSWRlbnRpZmllclN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVyPFQ+
Ojppc1ZhbGlkSWRlbnRpZmllckNoYXJhY3Rlcik6IERlbGV0ZWQuCisgICAgICAgIChXR1NMOjpM
ZXhlcjxUPjo6aXNEZWNpbWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVyPFQ+Ojpp
c0hleGFkZWNpbWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdHU0w6OkxleGVyPFQ+OjpyZWFkRGVj
aW1hbCk6IERlbGV0ZWQuCisgICAgICAgIChXR1NMOjpMZXhlcjxUPjo6cmVhZEhleGFkZWNpbWFs
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXR1NML0xleGVyLmg6CisKIDIwMjItMDMtMDcgIE1pY2hh
ZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2F0YWx5c3QgYnVpbGQg
ZmFpbHVyZSBpbiBXZWJHUFUgd2hlbiBidWlsZGluZyB3aXRoIFNZU1RFTV9DT05URU5UX1BBVEgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9MZXhlci5jcHAgYi9Tb3VyY2UvV2ViR1BV
L1dHU0wvTGV4ZXIuY3BwCmluZGV4IGFhYmU3NDVlMDJhMS4uZWQ2N2FiZTY0M2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dHU0wvTGV4ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dT
TC9MZXhlci5jcHAKQEAgLTExMCw5ICsxMTAsOSBAQCBUb2tlbiBMZXhlcjxUPjo6bGV4KCkKICAg
ICAgICAgICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgaGV4YWRlY2ltYWwgZmxvYXRpbmcg
cG9pbnQgbGl0ZXJhbHMKICAgICAgICAgICAgIHNoaWZ0KCk7CiAgICAgICAgICAgICBib29sIGhl
eE51bWJlcklzRW1wdHkgPSB0cnVlOwotICAgICAgICAgICAgd2hpbGUgKGlzSGV4YWRlY2ltYWwo
bV9jdXJyZW50KSkgeworICAgICAgICAgICAgd2hpbGUgKGlzQVNDSUlIZXhEaWdpdChtX2N1cnJl
bnQpKSB7CiAgICAgICAgICAgICAgICAgbGl0ZXJhbFZhbHVlICo9IDE2OwotICAgICAgICAgICAg
ICAgIGxpdGVyYWxWYWx1ZSArPSByZWFkSGV4YWRlY2ltYWwobV9jdXJyZW50KTsKKyAgICAgICAg
ICAgICAgICBsaXRlcmFsVmFsdWUgKz0gdG9BU0NJSUhleFZhbHVlKG1fY3VycmVudCk7CiAgICAg
ICAgICAgICAgICAgc2hpZnQoKTsKICAgICAgICAgICAgICAgICBoZXhOdW1iZXJJc0VtcHR5ID0g
ZmFsc2U7CiAgICAgICAgICAgICB9CkBAIC0xMjIsNyArMTIyLDcgQEAgVG9rZW4gTGV4ZXI8VD46
OmxleCgpCiAgICAgICAgIH0KIAogICAgICAgICBib29sIGlzRmxvYXRpbmdQb2ludCA9IGZhbHNl
OwotICAgICAgICBpZiAoaXNEZWNpbWFsKG1fY3VycmVudCkgfHwgbV9jdXJyZW50ID09ICcuJyB8
fCBtX2N1cnJlbnQgPT0gJ2UnIHx8IG1fY3VycmVudCA9PSAnRScpIHsKKyAgICAgICAgaWYgKGlz
QVNDSUlEaWdpdChtX2N1cnJlbnQpIHx8IG1fY3VycmVudCA9PSAnLicgfHwgbV9jdXJyZW50ID09
ICdlJyB8fCBtX2N1cnJlbnQgPT0gJ0UnKSB7CiAgICAgICAgICAgICBzdGQ6Om9wdGlvbmFsPHVp
bnQ2NF90PiBpbnRlZ2VyUGFydCA9IHBhcnNlRGVjaW1hbEludGVnZXIoKTsKICAgICAgICAgICAg
IGlmIChpbnRlZ2VyUGFydCkKICAgICAgICAgICAgICAgICBsaXRlcmFsVmFsdWUgPSBpbnRlZ2Vy
UGFydC52YWx1ZSgpOwpAQCAtMTU5LDcgKzE1OSw3IEBAIFRva2VuIExleGVyPFQ+OjpsZXgoKQog
ICAgICAgICByZXR1cm4gcGFyc2VJbnRlZ2VyTGl0ZXJhbFN1ZmZpeChsaXRlcmFsVmFsdWUpOwog
ICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBpZiAoaXNEZWNpbWFsIChtX2N1cnJlbnQpKSB7
CisgICAgICAgIGlmIChpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkgewogICAgICAgICAgICAgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gdmFsdWUgPSBwYXJzZURlY2ltYWxJbnRlZ2VyKCk7CiAgICAg
ICAgICAgICBpZiAoIXZhbHVlKQogICAgICAgICAgICAgICAgIHJldHVybiBtYWtlVG9rZW4oVG9r
ZW5UeXBlOjpJbnZhbGlkKTsKQEAgLTI2Nyw3ICsyNjcsNyBAQCBUIExleGVyPFQ+OjpwZWVrKHVu
c2lnbmVkIGkpCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIHZvaWQgTGV4ZXI8VD46OnNraXBXaGl0
ZXNwYWNlKCkKIHsKLSAgICB3aGlsZSAoaXNXaGl0ZVNwYWNlKG1fY3VycmVudCkpIHsKKyAgICB3
aGlsZSAoaXNBU0NJSVNwYWNlKG1fY3VycmVudCkpIHsKICAgICAgICAgaWYgKG1fY3VycmVudCA9
PSAnXG4nKSB7CiAgICAgICAgICAgICBzaGlmdCgpOwogICAgICAgICAgICAgKyttX2N1cnJlbnRQ
b3NpdGlvbi5tX2xpbmU7CkBAIC0yOTEsMTEgKzI5MSwxMSBAQCBib29sIExleGVyPFQ+Ojppc0F0
RW5kT2ZGaWxlKCkgY29uc3QKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogc3RkOjpvcHRpb25hbDx1
aW50NjRfdD4gTGV4ZXI8VD46OnBhcnNlRGVjaW1hbEludGVnZXIoKQogewotICAgIGlmICghaXNE
ZWNpbWFsKG1fY3VycmVudCkpCisgICAgaWYgKCFpc0FTQ0lJRGlnaXQobV9jdXJyZW50KSkKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIENoZWNrZWRVaW50NjQgdmFsdWUgPSAw
OwotICAgIHdoaWxlIChpc0RlY2ltYWwobV9jdXJyZW50KSkgeworICAgIHdoaWxlIChpc0FTQ0lJ
RGlnaXQobV9jdXJyZW50KSkgewogICAgICAgICB2YWx1ZSAqPSAxMHVsbDsKICAgICAgICAgdmFs
dWUgKz0gcmVhZERlY2ltYWwobV9jdXJyZW50KTsKICAgICAgICAgc2hpZnQoKTsKQEAgLTMxNSw5
ICszMTUsOSBAQCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+IExleGVyPFQ+OjpwYXJzZURlY2ltYWxG
bG9hdEV4cG9uZW50KCkKICAgICBpZiAobV9jdXJyZW50ICE9ICdlJyAmJiBtX2N1cnJlbnQgIT0g
J0UnKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmIChjaGFyMSA9PSAnKycg
fHwgY2hhcjEgPT0gJy0nKSB7Ci0gICAgICAgIGlmICghaXNEZWNpbWFsKGNoYXIyKSkKKyAgICAg
ICAgaWYgKCFpc0FTQ0lJRGlnaXQoY2hhcjIpKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLSAgICB9IGVsc2UgaWYgKCFpc0RlY2ltYWwoY2hhcjEpKQorICAgIH0gZWxzZSBpZiAo
IWlzQVNDSUlEaWdpdChjaGFyMSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
c2hpZnQoKTsKIApAQCAtMzUzLDY1ICszNTMsNiBAQCBUb2tlbiBMZXhlcjxUPjo6cGFyc2VJbnRl
Z2VyTGl0ZXJhbFN1ZmZpeChkb3VibGUgbGl0ZXJhbFZhbHVlKQogICAgIHJldHVybiBtYWtlTGl0
ZXJhbFRva2VuKFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWwsIGxpdGVyYWxWYWx1ZSk7CiB9Owog
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLUFMV0FZU19JTkxJTkUgYm9vbCBMZXhlcjxUPjo6aXNX
aGl0ZVNwYWNlKFQgY2gpCi17Ci0gICAgc3dpdGNoIChjaCkgewotICAgIGNhc2UgV1RGOjpVbmlj
b2RlOjpzcGFjZToKLSAgICBjYXNlIFdURjo6VW5pY29kZTo6dGFiQ2hhcmFjdGVyOgotICAgIGNh
c2UgV1RGOjpVbmljb2RlOjpjYXJyaWFnZVJldHVybjoKLSAgICBjYXNlIFdURjo6VW5pY29kZTo6
bmV3bGluZUNoYXJhY3RlcjoKLSAgICBjYXNlIFdURjo6VW5pY29kZTo6dmVydGljYWxUYWJ1bGF0
aW9uOgotICAgIGNhc2UgV1RGOjpVbmljb2RlOjpmb3JtRmVlZDoKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+Ci1BTFdBWVNfSU5MSU5FIGJvb2wgTGV4ZXI8VD46OmlzSWRlbnRp
ZmllclN0YXJ0KFQgY2gpCi17Ci0gICAgcmV0dXJuIChjaCA+PSAnYScgJiYgY2ggPD0gJ3onKSB8
fCAoY2ggPj0gJ0EnICYmIGNoIDw9ICdaJyk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
QUxXQVlTX0lOTElORSBib29sIExleGVyPFQ+Ojppc1ZhbGlkSWRlbnRpZmllckNoYXJhY3RlcihU
IGNoKQotewotICAgIHJldHVybiAoY2ggPj0gJ2EnICYmIGNoIDw9ICd6JykgfHwgKGNoID49ICdB
JyAmJiBjaCA8PSAnWicpIHx8IChjaCA+PSAnMCcgJiYgY2ggPD0gJzknKSB8fCBjaCA9PSAnXyc7
Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotQUxXQVlTX0lOTElORSBib29sIExleGVyPFQ+
Ojppc0RlY2ltYWwoVCBjaCkKLXsKLSAgICByZXR1cm4gKGNoID49ICcwJyAmJiBjaCA8PSAnOScp
OwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KLUFMV0FZU19JTkxJTkUgYm9vbCBMZXhlcjxU
Pjo6aXNIZXhhZGVjaW1hbChUIGNoKQotewotICAgIHJldHVybiAoY2ggPj0gJzAnICYmIGNoIDw9
ICc5JykgfHwgKGNoID49ICdhJyAmJiBjaCA8PSAnZicpIHx8IChjaCA+PSAnQScgJiYgY2ggPD0g
J0YnKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1BTFdBWVNfSU5MSU5FIHVpbnQ2NF90
IExleGVyPFQ+OjpyZWFkRGVjaW1hbChUIGNoKQotewotICAgIEFTU0VSVChpc0RlY2ltYWwoY2gp
KTsKLSAgICByZXR1cm4gY2ggLSAnMCc7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgotQUxX
QVlTX0lOTElORSB1aW50NjRfdCBMZXhlcjxUPjo6cmVhZEhleGFkZWNpbWFsKFQgY2gpCi17Ci0g
ICAgQVNTRVJUKGlzSGV4YWRlY2ltYWwoY2gpKTsKLSAgICBpZiAoY2ggPj0gJzAnICYmIGNoIDw9
ICc5JykKLSAgICAgICAgcmV0dXJuIGNoIC0gJzAnOwotICAgIGlmIChjaCA+PSAnYScgJiYgY2gg
PD0gJ2YnKQotICAgICAgICByZXR1cm4gY2ggLSAnYSc7Ci0gICAgQVNTRVJUKGNoID49ICdBJyAm
JiBjaCA8PSAnRicpOwotICAgIHJldHVybiBjaCAtICdBJzsKLX0KLQogdGVtcGxhdGUgY2xhc3Mg
TGV4ZXI8TENoYXI+OwogdGVtcGxhdGUgY2xhc3MgTGV4ZXI8VUNoYXI+OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViR1BVL1dHU0wvTGV4ZXIuaCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9MZXhlci5o
CmluZGV4IGYzZTZmZjg5N2FlMi4uYzhmNGM3NjI3ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
R1BVL1dHU0wvTGV4ZXIuaAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvTGV4ZXIuaApAQCAtMjYs
NiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJUb2tlbi5oIgorI2luY2x1ZGUg
PHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MywxNSArNTQsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc0F0RW5kT2ZGaWxlKCkgY29uc3Q7CiAgICAgU291cmNlUG9zaXRpb24gY3Vy
cmVudFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50UG9zaXRpb247IH0KIAotICAg
IC8vIE9ubHkgcHVibGljIHNvIHRoYXQgdGhlIFVDaGFyIHZlcnNpb24gb2YgdGhlIExleGVyIGNh
biBkZWZlciB0byB0aGUgTENoYXIgdmVyc2lvbgotICAgIHN0YXRpYyBib29sIGlzV2hpdGVTcGFj
ZShUIGNoYXJhY3Rlcik7Ci0gICAgc3RhdGljIGJvb2wgaXNJZGVudGlmaWVyU3RhcnQoVCBjaGFy
YWN0ZXIpOwotICAgIHN0YXRpYyBib29sIGlzVmFsaWRJZGVudGlmaWVyQ2hhcmFjdGVyKFQgY2hh
cmFjdGVyKTsKLSAgICBzdGF0aWMgYm9vbCBpc0RlY2ltYWwoVCBjaGFyYWN0ZXIpOwotICAgIHN0
YXRpYyBib29sIGlzSGV4YWRlY2ltYWwoVCBjaGFyYWN0ZXIpOwotICAgIHN0YXRpYyB1aW50NjRf
dCByZWFkRGVjaW1hbChUIGNoYXJhY3Rlcik7Ci0gICAgc3RhdGljIHVpbnQ2NF90IHJlYWRIZXhh
ZGVjaW1hbChUIGNoYXJhY3Rlcik7Ci0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgY3VycmVudE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFBvc2l0aW9uLm1fb2Zmc2V0OyB9CiAgICAg
dW5zaWduZWQgY3VycmVudFRva2VuTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gY3VycmVudE9mZnNl
dCgpIC0gbV90b2tlblN0YXJ0aW5nUG9zaXRpb24ubV9vZmZzZXQ7IH0KQEAgLTkwLDYgKzgyLDE0
IEBAIHByaXZhdGU6CiAgICAgLy8gQ2hlY2tzIHdoZXRoZXIgdGhlcmUgaXMgYW4gImkiIG9yICJ1
IiBjb21pbmcsIGFuZCByZXR1cm4gdGhlIHJpZ2h0IGtpbmQgb2YgbGl0ZXJhbCB0b2tlbgogICAg
IFRva2VuIHBhcnNlSW50ZWdlckxpdGVyYWxTdWZmaXgoZG91YmxlIGxpdGVyYWxWYWx1ZSk7CiAK
KyAgICBzdGF0aWMgYm9vbCBpc0lkZW50aWZpZXJTdGFydChUIGNoYXJhY3RlcikgeyByZXR1cm4g
aXNBU0NJSUFscGhhKGNoYXJhY3Rlcik7IH0KKyAgICBzdGF0aWMgYm9vbCBpc1ZhbGlkSWRlbnRp
ZmllckNoYXJhY3RlcihUIGNoYXJhY3RlcikgeyByZXR1cm4gaXNBU0NJSUFscGhhbnVtZXJpYyhj
aGFyYWN0ZXIpIHx8IGNoYXJhY3RlciA9PSAnXyc7IH0KKyAgICBzdGF0aWMgdW5zaWduZWQgcmVh
ZERlY2ltYWwoVCBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoaXNBU0NJSURpZ2l0
KGNoYXJhY3RlcikpOworICAgICAgICByZXR1cm4gY2hhcmFjdGVyIC0gJzAnOworICAgIH0KKwog
ICAgIFQgbV9jdXJyZW50OwogICAgIGNvbnN0IFQqIG1fY29kZTsKICAgICBjb25zdCBUKiBtX2Nv
ZGVFbmQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>