<?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>221194</bug_id>
          
          <creation_ts>2021-01-31 18:14:03 -0800</creation_ts>
          <short_desc>Fix longstanding FIXME in parseNumericColor about not doubly clamping color components</short_desc>
          <delta_ts>2021-02-02 12:15:22 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1724124</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-31 18:14:03 -0800</bug_when>
    <thetext>Fix long standing FIXME in parseNumericColor about not double clamping color components</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724126</commentid>
    <comment_count>1</comment_count>
      <attachid>418838</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-01-31 18:17:39 -0800</bug_when>
    <thetext>Created attachment 418838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724356</commentid>
    <comment_count>2</comment_count>
      <attachid>418838</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-01 12:16:53 -0800</bug_when>
    <thetext>Comment on attachment 418838
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Fix long standing FIXME in parseNumericColor about not double clamping color components

I realize now that &quot;doubly clamping&quot; is what you mean by &quot;double clamping&quot;; at first I thought it was referring to &quot;double&quot;, the C++ type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724378</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-01 13:01:35 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 418838 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=418838&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Fix long standing FIXME in parseNumericColor about not double clamping color components
&gt; 
&gt; I realize now that &quot;doubly clamping&quot; is what you mean by &quot;double clamping&quot;;
&gt; at first I thought it was referring to &quot;double&quot;, the C++ type.

Heh, yeah, doubly is definitely more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724411</commentid>
    <comment_count>4</comment_count>
      <attachid>418922</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-01 14:15:27 -0800</bug_when>
    <thetext>Created attachment 418922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724413</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-01 14:18:33 -0800</bug_when>
    <thetext>Ok, this one should be good to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724448</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-01 15:40:21 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #5)
&gt; Ok, this one should be good to review.

Apparently not. Hm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724695</commentid>
    <comment_count>7</comment_count>
      <attachid>419010</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-02 09:31:30 -0800</bug_when>
    <thetext>Created attachment 419010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724775</commentid>
    <comment_count>8</comment_count>
      <attachid>419010</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-02-02 11:09:45 -0800</bug_when>
    <thetext>Comment on attachment 419010
Patch

Ok, now!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724792</commentid>
    <comment_count>9</comment_count>
      <attachid>419010</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-02-02 11:36:34 -0800</bug_when>
    <thetext>Comment on attachment 419010
Patch

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

&gt; Source/WebCore/css/parser/CSSParserFastPaths.cpp:317
&gt; +    ASSERT(localValue &lt;= 255);

I see that these functions mostly use 255, not 0xFF, nor some symbolic constant or long horrible thing like static_cast&lt;int&gt;(std::numeric_limits&lt;uint8_t&gt;::max()).

For the record, I slightly prefer 0xFF. But there’s no 0xFF.0 for floating point, so maybe that’s a non-starter.

&gt; Source/WebCore/css/parser/CSSParserFastPaths.cpp:371
&gt; +        uint8_t result = negative ? 0 : tenthAlphaValues[string[length - 2] - &apos;0&apos;];

Could stick the character into a local variable instead of the result, if we want to avoid having to state the type of the result.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724806</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-02 12:14:00 -0800</bug_when>
    <thetext>Committed r272226: &lt;https://trac.webkit.org/changeset/272226&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 419010.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724808</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-02 12:15:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/73892310&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418838</attachid>
            <date>2021-01-31 18:17:39 -0800</date>
            <delta_ts>2021-02-01 14:15:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221194-20210131181738.patch</filename>
            <type>text/plain</type>
            <size>8976</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjEyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTMxICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbG9uZyBzdGFuZGluZyBGSVhN
RSBpbiBwYXJzZU51bWVyaWNDb2xvciBhYm91dCBub3QgZG91YmxlIGNsYW1waW5nIGNvbG9yIGNv
bXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VDb2xvckludE9yUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUFscGhh
VmFsdWUpOgorICAgICAgICBTd2l0Y2ggdG8gcmV0dXJuaW5nIGFuIE9wdGlvbmFsPHVpbnQ4X3Q+
IGFuZCBhZGQgYXNzZXJ0aW9uIHRoYXQgdGhlIGNvbXBvbmVudAorICAgICAgICBpcyBjbGFtcGVk
LiBVc2UgY29udmVydEZsb2F0QWxwaGFUbyBoZWxwZXIgaW4gcGFyc2VBbHBoYVZhbHVlIHRvIHJl
bW92ZSBzb21lCisgICAgICAgIGR1cGxpY2F0ZSBsb2dpYy4KKworICAgICAgICAoV2ViQ29yZTo6
cGFyc2VOdW1lcmljQ29sb3IpOgorICAgICAgICBSZXBsYWNlIGNhbGwgdG8gbWFrZUZyb21Db21w
b25lbnRzQ2xhbXBpbmcgd2l0aCBjYWxsaW5nIHRoZSBjb25zdHJ1Y3RvcnMgZGlyZWN0bHkKKyAg
ICAgICAgbm93IHRoYXQgdGhlIHR5cGVzIGFyZSBjb3JyZWN0LgorCiAyMDIxLTAxLTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBJbmxpbmVD
b250ZW50QnJlYWtlcjo6cHJvY2Vzc092ZXJmbG93aW5nVGV4dENvbnRlbnQgc2hvdWxkIGZpbmQg
YnJlYWtpbmcgcG9zaXRpb25zIGV2ZW4gYWZ0ZXIgdGhlIG92ZXJmbG93aW5nIHJ1bgpJbmRleDog
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAko
cmV2aXNpb24gMjcyMTI3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJG
YXN0UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIGlu
dCBwYXJzZURvdWJsZShjb25zdCBDaGFyYWN0ZXJUeQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
Q2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY29u
c3QgQ2hhcmFjdGVyVHlwZSomIHN0cmluZywgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kLCBjb25z
dCBjaGFyIHRlcm1pbmF0b3IsIENTU1VuaXRUeXBlJiBleHBlY3QsIGludCYgdmFsdWUpCitzdGF0
aWMgT3B0aW9uYWw8dWludDhfdD4gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjb25zdCBDaGFy
YWN0ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQsIGNvbnN0IGNoYXIg
dGVybWluYXRvciwgQ1NTVW5pdFR5cGUmIGV4cGVjdCkKIHsKICAgICBjb25zdCBDaGFyYWN0ZXJU
eXBlKiBjdXJyZW50ID0gc3RyaW5nOwogICAgIGRvdWJsZSBsb2NhbFZhbHVlID0gMDsKQEAgLTI2
Miw3ICsyNjIsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGNvCiAg
ICAgICAgIGN1cnJlbnQrKzsKICAgICB9CiAgICAgaWYgKGN1cnJlbnQgPT0gZW5kIHx8ICFpc0FT
Q0lJRGlnaXQoKmN1cnJlbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kICYmIGlzQVNDSUlEaWdp
dCgqY3VycmVudCkpIHsKICAgICAgICAgZG91YmxlIG5ld1ZhbHVlID0gbG9jYWxWYWx1ZSAqIDEw
ICsgKmN1cnJlbnQrKyAtICcwJzsKICAgICAgICAgaWYgKG5ld1ZhbHVlID49IDI1NSkgewpAQCAt
Mjc2LDEwICsyNzYsMTAgQEAgc3RhdGljIGJvb2wgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShj
bwogICAgIH0KIAogICAgIGlmIChjdXJyZW50ID09IGVuZCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKGV4cGVjdCA9PSBDU1NV
bml0VHlwZTo6Q1NTX05VTUJFUiAmJiAoKmN1cnJlbnQgPT0gJy4nIHx8ICpjdXJyZW50ID09ICcl
JykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAogICAgIGlmICgqY3VycmVudCA9PSAnLicpIHsKICAgICAgICAgLy8gV2UgYWxyZWFkeSBwYXJz
ZWQgdGhlIGludGVncmFsIHBhcnQsIHRyeSB0byBwYXJzZQpAQCAtMjg3LDE1ICsyODcsMTUgQEAg
c3RhdGljIGJvb2wgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjbwogICAgICAgICBkb3VibGUg
cGVyY2VudGFnZSA9IDA7CiAgICAgICAgIGludCBudW1DaGFyYWN0ZXJzUGFyc2VkID0gcGFyc2VE
b3VibGUoY3VycmVudCwgZW5kLCAnJScsIHBlcmNlbnRhZ2UpOwogICAgICAgICBpZiAoIW51bUNo
YXJhY3RlcnNQYXJzZWQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBjdXJyZW50ICs9IG51bUNoYXJhY3RlcnNQYXJz
ZWQ7CiAgICAgICAgIGlmICgqY3VycmVudCAhPSAnJScpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBsb2NhbFZhbHVl
ICs9IHBlcmNlbnRhZ2U7CiAgICAgfQogCiAgICAgaWYgKGV4cGVjdCA9PSBDU1NVbml0VHlwZTo6
Q1NTX1BFUkNFTlRBR0UgJiYgKmN1cnJlbnQgIT0gJyUnKQotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBpZiAoKmN1cnJlbnQgPT0gJyUn
KSB7CiAgICAgICAgIGV4cGVjdCA9IENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTsKQEAgLTMw
NCwxOCArMzA0LDE4IEBAIHN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY28K
ICAgICAgICAgaWYgKGxvY2FsVmFsdWUgPiAyNTUpCiAgICAgICAgICAgICBsb2NhbFZhbHVlID0g
MjU1OwogICAgICAgICBjdXJyZW50Kys7Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2UKICAgICAg
ICAgZXhwZWN0ID0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7Ci0gICAgfQogCiAgICAgd2hpbGUg
KGN1cnJlbnQgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENoYXJhY3RlclR5cGU+KCpjdXJyZW50KSkK
ICAgICAgICAgY3VycmVudCsrOwogICAgIGlmIChjdXJyZW50ID09IGVuZCB8fCAqY3VycmVudCsr
ICE9IHRlcm1pbmF0b3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBDbGFtcCBuZWdh
dGl2ZSB2YWx1ZXMgYXQgemVyby4KLSAgICB2YWx1ZSA9IG5lZ2F0aXZlID8gMCA6IHN0YXRpY19j
YXN0PGludD4obG9jYWxWYWx1ZSk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAg
c3RyaW5nID0gY3VycmVudDsKLSAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIENsYW1wIG5lZ2F0
aXZlIHZhbHVlcyBhdCB6ZXJvLgorICAgIEFTU0VSVChsb2NhbFZhbHVlIDw9IDI1NSk7CisgICAg
cmV0dXJuIG5lZ2F0aXZlID8gMCA6IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGxvY2FsVmFsdWUpOwog
fQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAgLTMzMyw3ICszMzMsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNUZW50aEFscGhhKGNvbnN0IENoCiB9CiAKIHRlbXBsYXRl
IDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotc3RhdGljIGlubGluZSBib29sIHBhcnNlQWxwaGFW
YWx1ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBl
bmQsIGNvbnN0IGNoYXIgdGVybWluYXRvciwgaW50JiB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgT3B0
aW9uYWw8dWludDhfdD4gcGFyc2VBbHBoYVZhbHVlKGNvbnN0IENoYXJhY3RlclR5cGUqJiBzdHJp
bmcsIGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgY29uc3QgY2hhciB0ZXJtaW5hdG9yKQogewog
ICAgIHdoaWxlIChzdHJpbmcgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENoYXJhY3RlclR5cGU+KCpz
dHJpbmcpKQogICAgICAgICBzdHJpbmcrKzsKQEAgLTM0NSw0NSArMzQ1LDM4IEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBwYXJzZUFscGhhVmFsdWUoY29uc3QKICAgICAgICAgc3RyaW5nKys7CiAgICAg
fQogCi0gICAgdmFsdWUgPSAwOwotCiAgICAgaW50IGxlbmd0aCA9IGVuZCAtIHN0cmluZzsKICAg
ICBpZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogCiAgICAgaWYgKHN0cmluZ1tsZW5ndGggLSAxXSAhPSB0ZXJtaW5hdG9y
IHx8ICFpc0FTQ0lJRGlnaXQoc3RyaW5nW2xlbmd0aCAtIDJdKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKHN0cmluZ1swXSAh
PSAnMCcgJiYgc3RyaW5nWzBdICE9ICcxJyAmJiBzdHJpbmdbMF0gIT0gJy4nKSB7CiAgICAgICAg
IGlmIChjaGVja0ZvclZhbGlkRG91YmxlKHN0cmluZywgZW5kLCB0ZXJtaW5hdG9yKSkgewotICAg
ICAgICAgICAgdmFsdWUgPSBuZWdhdGl2ZSA/IDAgOiAyNTU7CiAgICAgICAgICAgICBzdHJpbmcg
PSBlbmQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBuZWdh
dGl2ZSA/IDAgOiAyNTU7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChsZW5ndGggPT0gMiAmJiBz
dHJpbmdbMF0gIT0gJy4nKSB7Ci0gICAgICAgIHZhbHVlID0gIW5lZ2F0aXZlICYmIHN0cmluZ1sw
XSA9PSAnMScgPyAyNTUgOiAwOwogICAgICAgICBzdHJpbmcgPSBlbmQ7Ci0gICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICByZXR1cm4gIW5lZ2F0aXZlICYmIHN0cmluZ1swXSA9PSAnMScgPyAy
NTUgOiAwOwogICAgIH0KIAogICAgIGlmIChpc1RlbnRoQWxwaGEoc3RyaW5nLCBsZW5ndGggLSAx
KSkgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHRlbnRoQWxwaGFWYWx1ZXNbXSA9IHsgMCwg
MjYsIDUxLCA3NywgMTAyLCAxMjgsIDE1MywgMTc5LCAyMDQsIDIzMCB9OwotICAgICAgICB2YWx1
ZSA9IG5lZ2F0aXZlID8gMCA6IHRlbnRoQWxwaGFWYWx1ZXNbc3RyaW5nW2xlbmd0aCAtIDJdIC0g
JzAnXTsKICAgICAgICAgc3RyaW5nID0gZW5kOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBpbnQgdGVudGhBbHBoYVZhbHVlc1tdID0geyAwLCAyNiwgNTEs
IDc3LCAxMDIsIDEyOCwgMTUzLCAxNzksIDIwNCwgMjMwIH07CisgICAgICAgIHJldHVybiBuZWdh
dGl2ZSA/IDAgOiB0ZW50aEFscGhhVmFsdWVzW3N0cmluZ1tsZW5ndGggLSAyXSAtICcwJ107CiAg
ICAgfQogCiAgICAgZG91YmxlIGFscGhhID0gMDsKICAgICBpZiAoIXBhcnNlRG91YmxlKHN0cmlu
ZywgZW5kLCB0ZXJtaW5hdG9yLCBhbHBoYSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIC8vIFczIHN0YW5kYXJkIHN0aXB1bGF0ZXMg
YSAyLjU1IGFscGhhIHZhbHVlIG11bHRpcGxpY2F0aW9uIGZhY3Rvci4KLSAgICB2YWx1ZSA9IG5l
Z2F0aXZlID8gMCA6IHN0YXRpY19jYXN0PGludD4obHJvdW5kZihjbGFtcFRvPGRvdWJsZT4oYWxw
aGEsIDAuMCwgMS4wKSAqIDI1NS4wZikpOwogICAgIHN0cmluZyA9IGVuZDsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gbmVnYXRpdmUgPyAwIDogY29udmVydEZsb2F0QWxwaGFUbzx1aW50
OF90PihhbHBoYSk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgpAQCAt
NDczLDM5ICs0NjYsMzkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4gc3RhdGlj
IAogICAgIGlmIChtaWdodEJlUkdCQShjaGFyYWN0ZXJzLCBsZW5ndGgpKSB7CiAgICAgICAgIGF1
dG8gY3VycmVudCA9IGNoYXJhY3RlcnMgKyA1OwogICAgICAgICBhdXRvIGVuZCA9IGNoYXJhY3Rl
cnMgKyBsZW5ndGg7Ci0gICAgICAgIGludCByZWQ7Ci0gICAgICAgIGlmICghcGFyc2VDb2xvcklu
dE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCByZWQpKQorICAgICAgICBh
dXRvIHJlZCA9IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcsIGV4
cGVjdCk7CisgICAgICAgIGlmICghcmVkKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKLSAgICAgICAgaW50IGdyZWVuOwotICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNl
bnRhZ2UoY3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgZ3JlZW4pKQorICAgICAgICBhdXRvIGdy
ZWVuID0gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0
KTsKKyAgICAgICAgaWYgKCFncmVlbikKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0gICAgICAgIGludCBibHVlOwotICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNlbnRh
Z2UoY3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgYmx1ZSkpCisgICAgICAgIGF1dG8gYmx1ZSA9
IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCk7Cisg
ICAgICAgIGlmICghYmx1ZSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAg
ICAgIGludCBhbHBoYTsKLSAgICAgICAgaWYgKCFwYXJzZUFscGhhVmFsdWUoY3VycmVudCwgZW5k
LCAnKScsIGFscGhhKSkKKyAgICAgICAgYXV0byBhbHBoYSA9IHBhcnNlQWxwaGFWYWx1ZShjdXJy
ZW50LCBlbmQsICcpJyk7CisgICAgICAgIGlmICghYWxwaGEpCiAgICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgICAgICBpZiAoY3VycmVudCAhPSBlbmQpCiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gbWFrZUZyb21Db21wb25lbnRzQ2xh
bXBpbmc8U1JHQkE8dWludDhfdD4+KHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhhKTsgLy8gRklYTUU6
IEFscmVhZHkgY2xhbXBlZCwgZG9lc24ndCBuZWVkIHRvIHJlLWNsYW1wLiBVcGRhdGUgcGFyc2VD
b2xvckludE9yUGVyY2VudGFnZS9wYXJzZUFscGhhVmFsdWUgdG8gcmV0dXJuIHVpbnQ4X3QgYW5k
IHJlcGxhY2UgY2FsbCB0byBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZzxTUkdCQTx1aW50OF90
Pj4gd2l0aCBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFNSR0JBPHVpbnQ4X3Q+LgorICAgICAgICBy
ZXR1cm4gU1JHQkE8dWludDhfdD4geyAqcmVkLCAqZ3JlZW4sICpibHVlLCAqYWxwaGEgfTsKICAg
ICB9CiAKICAgICAvLyBUcnkgcmdiKCkgc3ludGF4LgogICAgIGlmIChtaWdodEJlUkdCKGNoYXJh
Y3RlcnMsIGxlbmd0aCkpIHsKICAgICAgICAgYXV0byBjdXJyZW50ID0gY2hhcmFjdGVycyArIDQ7
CiAgICAgICAgIGF1dG8gZW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKLSAgICAgICAgaW50IHJl
ZDsKLSAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwg
JywnLCBleHBlY3QsIHJlZCkpCisgICAgICAgIGF1dG8gcmVkID0gcGFyc2VDb2xvckludE9yUGVy
Y2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0KTsKKyAgICAgICAgaWYgKCFyZWQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBpbnQgZ3JlZW47Ci0gICAg
ICAgIGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhw
ZWN0LCBncmVlbikpCisgICAgICAgIGF1dG8gZ3JlZW4gPSBwYXJzZUNvbG9ySW50T3JQZXJjZW50
YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QpOworICAgICAgICBpZiAoIWdyZWVuKQogICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgaW50IGJsdWU7Ci0gICAgICAg
IGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcpJywgZXhwZWN0
LCBibHVlKSkKKyAgICAgICAgYXV0byBibHVlID0gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShj
dXJyZW50LCBlbmQsICcpJywgZXhwZWN0KTsKKyAgICAgICAgaWYgKCFibHVlKQogICAgICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgaWYgKGN1cnJlbnQgIT0gZW5kKQogICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIG1ha2VGcm9tQ29t
cG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+PihyZWQsIGdyZWVuLCBibHVlKTsgLy8gRklY
TUU6IEFscmVhZHkgY2xhbXBlZCwgZG9lc24ndCBuZWVkIHRvIHJlLWNsYW1wLiBVcGRhdGUgcGFy
c2VDb2xvckludE9yUGVyY2VudGFnZS9wYXJzZUFscGhhVmFsdWUgdG8gcmV0dXJuIHVpbnQ4X3Qg
YW5kIHJlcGxhY2UgY2FsbCB0byBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZzxTUkdCQTx1aW50
OF90Pj4gd2l0aCBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFNSR0JBPHVpbnQ4X3Q+LgorICAgICAg
ICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAqcmVkLCAqZ3JlZW4sICpibHVlIH07CiAgICAgfQog
CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418922</attachid>
            <date>2021-02-01 14:15:27 -0800</date>
            <delta_ts>2021-02-02 09:31:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221194-20210201141526.patch</filename>
            <type>text/plain</type>
            <size>9029</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjE3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTMxICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbG9uZyBzdGFuZGluZyBGSVhN
RSBpbiBwYXJzZU51bWVyaWNDb2xvciBhYm91dCBub3QgZG91Ymx5IGNsYW1waW5nIGNvbG9yIGNv
bXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VDb2xvckludE9yUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUFscGhh
VmFsdWUpOgorICAgICAgICBTd2l0Y2ggdG8gcmV0dXJuaW5nIGFuIE9wdGlvbmFsPHVpbnQ4X3Q+
IGFuZCBhZGQgYXNzZXJ0aW9uIHRoYXQgdGhlIGNvbXBvbmVudAorICAgICAgICBpcyBjbGFtcGVk
LiBVc2UgY29udmVydEZsb2F0QWxwaGFUbyBoZWxwZXIgaW4gcGFyc2VBbHBoYVZhbHVlIHRvIHJl
bW92ZSBzb21lCisgICAgICAgIGR1cGxpY2F0ZSBsb2dpYy4KKworICAgICAgICAoV2ViQ29yZTo6
cGFyc2VOdW1lcmljQ29sb3IpOgorICAgICAgICBSZXBsYWNlIGNhbGwgdG8gbWFrZUZyb21Db21w
b25lbnRzQ2xhbXBpbmcgd2l0aCBjYWxsaW5nIHRoZSBjb25zdHJ1Y3RvcnMgZGlyZWN0bHkKKyAg
ICAgICAgbm93IHRoYXQgdGhlIHR5cGVzIGFyZSBjb3JyZWN0LgorCiAyMDIxLTAyLTAxICBTYWFt
IEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIExhemlseSBjcmVhdGUgbV93
aW5kb3dDbG9zZVdhdGNocG9pbnRzIHNvIHdlIGRvbid0IG1pc3Rha2VubHkgdGhpbmsgd2UgaGF2
ZSBhIGZyYW1lIHdoZW4gcmUtYXNzb2NpYXRpbmcgYSBkb2N1bWVudCB0byBhIGdpdmVuIGNhY2hl
ZCBmcmFtZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0
aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2Vy
RmFzdFBhdGhzLmNwcAkocmV2aXNpb24gMjcyMTc3KQorKysgU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNyArMjUw
LDcgQEAgc3RhdGljIGludCBwYXJzZURvdWJsZShjb25zdCBDaGFyYWN0ZXJUeQogfQogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KLXN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRP
clBlcmNlbnRhZ2UoY29uc3QgQ2hhcmFjdGVyVHlwZSomIHN0cmluZywgY29uc3QgQ2hhcmFjdGVy
VHlwZSogZW5kLCBjb25zdCBjaGFyIHRlcm1pbmF0b3IsIENTU1VuaXRUeXBlJiBleHBlY3QsIGlu
dCYgdmFsdWUpCitzdGF0aWMgT3B0aW9uYWw8dWludDhfdD4gcGFyc2VDb2xvckludE9yUGVyY2Vu
dGFnZShjb25zdCBDaGFyYWN0ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBl
bmQsIGNvbnN0IGNoYXIgdGVybWluYXRvciwgQ1NTVW5pdFR5cGUmIGV4cGVjdCkKIHsKICAgICBj
b25zdCBDaGFyYWN0ZXJUeXBlKiBjdXJyZW50ID0gc3RyaW5nOwogICAgIGRvdWJsZSBsb2NhbFZh
bHVlID0gMDsKQEAgLTI2Miw3ICsyNjIsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZUNvbG9ySW50T3JQ
ZXJjZW50YWdlKGNvCiAgICAgICAgIGN1cnJlbnQrKzsKICAgICB9CiAgICAgaWYgKGN1cnJlbnQg
PT0gZW5kIHx8ICFpc0FTQ0lJRGlnaXQoKmN1cnJlbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5k
ICYmIGlzQVNDSUlEaWdpdCgqY3VycmVudCkpIHsKICAgICAgICAgZG91YmxlIG5ld1ZhbHVlID0g
bG9jYWxWYWx1ZSAqIDEwICsgKmN1cnJlbnQrKyAtICcwJzsKICAgICAgICAgaWYgKG5ld1ZhbHVl
ID49IDI1NSkgewpAQCAtMjc2LDEwICsyNzYsMTAgQEAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcklu
dE9yUGVyY2VudGFnZShjbwogICAgIH0KIAogICAgIGlmIChjdXJyZW50ID09IGVuZCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYg
KGV4cGVjdCA9PSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUiAmJiAoKmN1cnJlbnQgPT0gJy4nIHx8
ICpjdXJyZW50ID09ICclJykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAogICAgIGlmICgqY3VycmVudCA9PSAnLicpIHsKICAgICAgICAgLy8g
V2UgYWxyZWFkeSBwYXJzZWQgdGhlIGludGVncmFsIHBhcnQsIHRyeSB0byBwYXJzZQpAQCAtMjg3
LDE1ICsyODcsMTUgQEAgc3RhdGljIGJvb2wgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjbwog
ICAgICAgICBkb3VibGUgcGVyY2VudGFnZSA9IDA7CiAgICAgICAgIGludCBudW1DaGFyYWN0ZXJz
UGFyc2VkID0gcGFyc2VEb3VibGUoY3VycmVudCwgZW5kLCAnJScsIHBlcmNlbnRhZ2UpOwogICAg
ICAgICBpZiAoIW51bUNoYXJhY3RlcnNQYXJzZWQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBjdXJyZW50ICs9IG51
bUNoYXJhY3RlcnNQYXJzZWQ7CiAgICAgICAgIGlmICgqY3VycmVudCAhPSAnJScpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
ICAgICBsb2NhbFZhbHVlICs9IHBlcmNlbnRhZ2U7CiAgICAgfQogCiAgICAgaWYgKGV4cGVjdCA9
PSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0UgJiYgKmN1cnJlbnQgIT0gJyUnKQotICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBpZiAo
KmN1cnJlbnQgPT0gJyUnKSB7CiAgICAgICAgIGV4cGVjdCA9IENTU1VuaXRUeXBlOjpDU1NfUEVS
Q0VOVEFHRTsKQEAgLTMwNCwxOCArMzA0LDE4IEBAIHN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRP
clBlcmNlbnRhZ2UoY28KICAgICAgICAgaWYgKGxvY2FsVmFsdWUgPiAyNTUpCiAgICAgICAgICAg
ICBsb2NhbFZhbHVlID0gMjU1OwogICAgICAgICBjdXJyZW50Kys7Ci0gICAgfSBlbHNlIHsKKyAg
ICB9IGVsc2UKICAgICAgICAgZXhwZWN0ID0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7Ci0gICAg
fQogCiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENoYXJhY3RlclR5
cGU+KCpjdXJyZW50KSkKICAgICAgICAgY3VycmVudCsrOwogICAgIGlmIChjdXJyZW50ID09IGVu
ZCB8fCAqY3VycmVudCsrICE9IHRlcm1pbmF0b3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAvLyBDbGFtcCBuZWdhdGl2ZSB2YWx1ZXMgYXQgemVyby4KLSAgICB2YWx1ZSA9IG5lZ2F0aXZl
ID8gMCA6IHN0YXRpY19jYXN0PGludD4obG9jYWxWYWx1ZSk7CisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgc3RyaW5nID0gY3VycmVudDsKLSAgICByZXR1cm4gdHJ1ZTsKKworICAg
IC8vIENsYW1wIG5lZ2F0aXZlIHZhbHVlcyBhdCB6ZXJvLgorICAgIEFTU0VSVChsb2NhbFZhbHVl
IDw9IDI1NSk7CisgICAgcmV0dXJuIG5lZ2F0aXZlID8gMCA6IHN0YXRpY19jYXN0PHVpbnQ4X3Q+
KGxvY2FsVmFsdWUpOwogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAg
LTMzMyw3ICszMzMsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNUZW50aEFscGhhKGNvbnN0IENo
CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotc3RhdGljIGlubGluZSBi
b29sIHBhcnNlQWxwaGFWYWx1ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBD
aGFyYWN0ZXJUeXBlKiBlbmQsIGNvbnN0IGNoYXIgdGVybWluYXRvciwgaW50JiB2YWx1ZSkKK3N0
YXRpYyBpbmxpbmUgT3B0aW9uYWw8dWludDhfdD4gcGFyc2VBbHBoYVZhbHVlKGNvbnN0IENoYXJh
Y3RlclR5cGUqJiBzdHJpbmcsIGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgY29uc3QgY2hhciB0
ZXJtaW5hdG9yKQogewogICAgIHdoaWxlIChzdHJpbmcgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENo
YXJhY3RlclR5cGU+KCpzdHJpbmcpKQogICAgICAgICBzdHJpbmcrKzsKQEAgLTM0NSw0NSArMzQ1
LDM5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXJzZUFscGhhVmFsdWUoY29uc3QKICAgICAgICAg
c3RyaW5nKys7CiAgICAgfQogCi0gICAgdmFsdWUgPSAwOwotCiAgICAgaW50IGxlbmd0aCA9IGVu
ZCAtIHN0cmluZzsKICAgICBpZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKHN0cmluZ1tsZW5ndGggLSAx
XSAhPSB0ZXJtaW5hdG9yIHx8ICFpc0FTQ0lJRGlnaXQoc3RyaW5nW2xlbmd0aCAtIDJdKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAg
aWYgKHN0cmluZ1swXSAhPSAnMCcgJiYgc3RyaW5nWzBdICE9ICcxJyAmJiBzdHJpbmdbMF0gIT0g
Jy4nKSB7CiAgICAgICAgIGlmIChjaGVja0ZvclZhbGlkRG91YmxlKHN0cmluZywgZW5kLCB0ZXJt
aW5hdG9yKSkgewotICAgICAgICAgICAgdmFsdWUgPSBuZWdhdGl2ZSA/IDAgOiAyNTU7CiAgICAg
ICAgICAgICBzdHJpbmcgPSBlbmQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
ICAgIHJldHVybiBuZWdhdGl2ZSA/IDAgOiAyNTU7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChs
ZW5ndGggPT0gMiAmJiBzdHJpbmdbMF0gIT0gJy4nKSB7Ci0gICAgICAgIHZhbHVlID0gIW5lZ2F0
aXZlICYmIHN0cmluZ1swXSA9PSAnMScgPyAyNTUgOiAwOwogICAgICAgICBzdHJpbmcgPSBlbmQ7
Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gIW5lZ2F0aXZlICYmIHN0cmlu
Z1swXSA9PSAnMScgPyAyNTUgOiAwOwogICAgIH0KIAogICAgIGlmIChpc1RlbnRoQWxwaGEoc3Ry
aW5nLCBsZW5ndGggLSAxKSkgewotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHRlbnRoQWxwaGFW
YWx1ZXNbXSA9IHsgMCwgMjYsIDUxLCA3NywgMTAyLCAxMjgsIDE1MywgMTc5LCAyMDQsIDIzMCB9
OwotICAgICAgICB2YWx1ZSA9IG5lZ2F0aXZlID8gMCA6IHRlbnRoQWxwaGFWYWx1ZXNbc3RyaW5n
W2xlbmd0aCAtIDJdIC0gJzAnXTsKKyAgICAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IHRl
bnRoQWxwaGFWYWx1ZXNbXSA9IHsgMCwgMjYsIDUxLCA3NywgMTAyLCAxMjgsIDE1MywgMTc5LCAy
MDQsIDIzMCB9OworICAgICAgICB1aW50OF90IHJlc3VsdCA9IG5lZ2F0aXZlID8gMCA6IHRlbnRo
QWxwaGFWYWx1ZXNbc3RyaW5nW2xlbmd0aCAtIDJdIC0gJzAnXTsKICAgICAgICAgc3RyaW5nID0g
ZW5kOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAKICAgICBkb3VibGUgYWxwaGEgPSAwOwogICAgIGlmICghcGFyc2VEb3VibGUoc3RyaW5nLCBl
bmQsIHRlcm1pbmF0b3IsIGFscGhhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogCi0gICAgLy8gVzMgc3RhbmRhcmQgc3RpcHVsYXRlcyBhIDIu
NTUgYWxwaGEgdmFsdWUgbXVsdGlwbGljYXRpb24gZmFjdG9yLgotICAgIHZhbHVlID0gbmVnYXRp
dmUgPyAwIDogc3RhdGljX2Nhc3Q8aW50Pihscm91bmRmKGNsYW1wVG88ZG91YmxlPihhbHBoYSwg
MC4wLCAxLjApICogMjU1LjBmKSk7CiAgICAgc3RyaW5nID0gZW5kOwotICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBuZWdhdGl2ZSA/IDAgOiBjb252ZXJ0RmxvYXRBbHBoYVRvPHVpbnQ4X3Q+
KGFscGhhKTsKIH0KIAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CkBAIC00NzMs
MzkgKzQ2NywzOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPiBzdGF0aWMgCiAg
ICAgaWYgKG1pZ2h0QmVSR0JBKGNoYXJhY3RlcnMsIGxlbmd0aCkpIHsKICAgICAgICAgYXV0byBj
dXJyZW50ID0gY2hhcmFjdGVycyArIDU7CiAgICAgICAgIGF1dG8gZW5kID0gY2hhcmFjdGVycyAr
IGxlbmd0aDsKLSAgICAgICAgaW50IHJlZDsKLSAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQ
ZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIHJlZCkpCisgICAgICAgIGF1dG8g
cmVkID0gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0
KTsKKyAgICAgICAgaWYgKCFyZWQpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owot
ICAgICAgICBpbnQgZ3JlZW47Ci0gICAgICAgIGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFn
ZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCBncmVlbikpCisgICAgICAgIGF1dG8gZ3JlZW4g
PSBwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QpOwor
ICAgICAgICBpZiAoIWdyZWVuKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAg
ICAgICAgaW50IGJsdWU7Ci0gICAgICAgIGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShj
dXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCBibHVlKSkKKyAgICAgICAgYXV0byBibHVlID0gcGFy
c2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0KTsKKyAgICAg
ICAgaWYgKCFibHVlKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAg
aW50IGFscGhhOwotICAgICAgICBpZiAoIXBhcnNlQWxwaGFWYWx1ZShjdXJyZW50LCBlbmQsICcp
JywgYWxwaGEpKQorICAgICAgICBhdXRvIGFscGhhID0gcGFyc2VBbHBoYVZhbHVlKGN1cnJlbnQs
IGVuZCwgJyknKTsKKyAgICAgICAgaWYgKCFhbHBoYSkKICAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAgICAgICAgIGlmIChjdXJyZW50ICE9IGVuZCkKICAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIHJldHVybiBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGlu
ZzxTUkdCQTx1aW50OF90Pj4ocmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEpOyAvLyBGSVhNRTogQWxy
ZWFkeSBjbGFtcGVkLCBkb2Vzbid0IG5lZWQgdG8gcmUtY2xhbXAuIFVwZGF0ZSBwYXJzZUNvbG9y
SW50T3JQZXJjZW50YWdlL3BhcnNlQWxwaGFWYWx1ZSB0byByZXR1cm4gdWludDhfdCBhbmQgcmVw
bGFjZSBjYWxsIHRvIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+PiB3
aXRoIGRpcmVjdCBjb25zdHJ1Y3Rpb24gb2YgU1JHQkE8dWludDhfdD4uCisgICAgICAgIHJldHVy
biBTUkdCQTx1aW50OF90PiB7ICpyZWQsICpncmVlbiwgKmJsdWUsICphbHBoYSB9OwogICAgIH0K
IAogICAgIC8vIFRyeSByZ2IoKSBzeW50YXguCiAgICAgaWYgKG1pZ2h0QmVSR0IoY2hhcmFjdGVy
cywgbGVuZ3RoKSkgewogICAgICAgICBhdXRvIGN1cnJlbnQgPSBjaGFyYWN0ZXJzICsgNDsKICAg
ICAgICAgYXV0byBlbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOwotICAgICAgICBpbnQgcmVkOwot
ICAgICAgICBpZiAoIXBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcs
IGV4cGVjdCwgcmVkKSkKKyAgICAgICAgYXV0byByZWQgPSBwYXJzZUNvbG9ySW50T3JQZXJjZW50
YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QpOworICAgICAgICBpZiAoIXJlZCkKICAgICAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgICAgIGludCBncmVlbjsKLSAgICAgICAg
aWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3Qs
IGdyZWVuKSkKKyAgICAgICAgYXV0byBncmVlbiA9IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2Uo
Y3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCk7CisgICAgICAgIGlmICghZ3JlZW4pCiAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBpbnQgYmx1ZTsKLSAgICAgICAgaWYg
KCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJyknLCBleHBlY3QsIGJs
dWUpKQorICAgICAgICBhdXRvIGJsdWUgPSBwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1cnJl
bnQsIGVuZCwgJyknLCBleHBlY3QpOworICAgICAgICBpZiAoIWJsdWUpCiAgICAgICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBpZiAoY3VycmVudCAhPSBlbmQpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gbWFrZUZyb21Db21wb25l
bnRzQ2xhbXBpbmc8U1JHQkE8dWludDhfdD4+KHJlZCwgZ3JlZW4sIGJsdWUpOyAvLyBGSVhNRTog
QWxyZWFkeSBjbGFtcGVkLCBkb2Vzbid0IG5lZWQgdG8gcmUtY2xhbXAuIFVwZGF0ZSBwYXJzZUNv
bG9ySW50T3JQZXJjZW50YWdlL3BhcnNlQWxwaGFWYWx1ZSB0byByZXR1cm4gdWludDhfdCBhbmQg
cmVwbGFjZSBjYWxsIHRvIG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+
PiB3aXRoIGRpcmVjdCBjb25zdHJ1Y3Rpb24gb2YgU1JHQkE8dWludDhfdD4uCisgICAgICAgIHJl
dHVybiBTUkdCQTx1aW50OF90PiB7ICpyZWQsICpncmVlbiwgKmJsdWUgfTsKICAgICB9CiAKICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419010</attachid>
            <date>2021-02-02 09:31:30 -0800</date>
            <delta_ts>2021-02-02 12:14:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221194-20210202093129.patch</filename>
            <type>text/plain</type>
            <size>8988</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3MjIxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTMxICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggbG9uZyBzdGFuZGluZyBGSVhN
RSBpbiBwYXJzZU51bWVyaWNDb2xvciBhYm91dCBub3QgZG91Ymx5IGNsYW1waW5nIGNvbG9yIGNv
bXBvbmVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VDb2xvckludE9yUGVyY2VudGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUFscGhh
VmFsdWUpOgorICAgICAgICBTd2l0Y2ggdG8gcmV0dXJuaW5nIGFuIE9wdGlvbmFsPHVpbnQ4X3Q+
IGFuZCBhZGQgYXNzZXJ0aW9uIHRoYXQgdGhlIGNvbXBvbmVudAorICAgICAgICBpcyBjbGFtcGVk
LiBVc2UgY29udmVydEZsb2F0QWxwaGFUbyBoZWxwZXIgaW4gcGFyc2VBbHBoYVZhbHVlIHRvIHJl
bW92ZSBzb21lCisgICAgICAgIGR1cGxpY2F0ZSBsb2dpYy4KKworICAgICAgICAoV2ViQ29yZTo6
cGFyc2VOdW1lcmljQ29sb3IpOgorICAgICAgICBSZXBsYWNlIGNhbGwgdG8gbWFrZUZyb21Db21w
b25lbnRzQ2xhbXBpbmcgd2l0aCBjYWxsaW5nIHRoZSBjb25zdHJ1Y3RvcnMgZGlyZWN0bHkKKyAg
ICAgICAgbm93IHRoYXQgdGhlIHR5cGVzIGFyZSBjb3JyZWN0LgorCiAyMDIxLTAyLTAyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNvdmVyIE1lZGlhU3Ry
ZWFtVHJhY2sgYXVkaW8gcmVuZGVyaW5nIGZyb20gR1BVUHJvY2VzcyBjcmFzaApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0UGF0aHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUGFyc2VyRmFzdFBhdGhzLmNwcAkocmV2
aXNpb24gMjcyMjEzKQorKysgU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQYXJzZXJGYXN0
UGF0aHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNyArMjUwLDcgQEAgc3RhdGljIGludCBw
YXJzZURvdWJsZShjb25zdCBDaGFyYWN0ZXJUeQogfQogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hh
cmFjdGVyVHlwZT4KLXN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY29uc3Qg
Q2hhcmFjdGVyVHlwZSomIHN0cmluZywgY29uc3QgQ2hhcmFjdGVyVHlwZSogZW5kLCBjb25zdCBj
aGFyIHRlcm1pbmF0b3IsIENTU1VuaXRUeXBlJiBleHBlY3QsIGludCYgdmFsdWUpCitzdGF0aWMg
T3B0aW9uYWw8dWludDhfdD4gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjb25zdCBDaGFyYWN0
ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQsIGNvbnN0IGNoYXIgdGVy
bWluYXRvciwgQ1NTVW5pdFR5cGUmIGV4cGVjdCkKIHsKICAgICBjb25zdCBDaGFyYWN0ZXJUeXBl
KiBjdXJyZW50ID0gc3RyaW5nOwogICAgIGRvdWJsZSBsb2NhbFZhbHVlID0gMDsKQEAgLTI2Miw3
ICsyNjIsNyBAQCBzdGF0aWMgYm9vbCBwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGNvCiAgICAg
ICAgIGN1cnJlbnQrKzsKICAgICB9CiAgICAgaWYgKGN1cnJlbnQgPT0gZW5kIHx8ICFpc0FTQ0lJ
RGlnaXQoKmN1cnJlbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAgICAgd2hpbGUgKGN1cnJlbnQgIT0gZW5kICYmIGlzQVNDSUlEaWdpdCgq
Y3VycmVudCkpIHsKICAgICAgICAgZG91YmxlIG5ld1ZhbHVlID0gbG9jYWxWYWx1ZSAqIDEwICsg
KmN1cnJlbnQrKyAtICcwJzsKICAgICAgICAgaWYgKG5ld1ZhbHVlID49IDI1NSkgewpAQCAtMjc2
LDEwICsyNzYsMTAgQEAgc3RhdGljIGJvb2wgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjbwog
ICAgIH0KIAogICAgIGlmIChjdXJyZW50ID09IGVuZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKGV4cGVjdCA9PSBDU1NVbml0
VHlwZTo6Q1NTX05VTUJFUiAmJiAoKmN1cnJlbnQgPT0gJy4nIHx8ICpjdXJyZW50ID09ICclJykp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAog
ICAgIGlmICgqY3VycmVudCA9PSAnLicpIHsKICAgICAgICAgLy8gV2UgYWxyZWFkeSBwYXJzZWQg
dGhlIGludGVncmFsIHBhcnQsIHRyeSB0byBwYXJzZQpAQCAtMjg3LDE1ICsyODcsMTUgQEAgc3Rh
dGljIGJvb2wgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjbwogICAgICAgICBkb3VibGUgcGVy
Y2VudGFnZSA9IDA7CiAgICAgICAgIGludCBudW1DaGFyYWN0ZXJzUGFyc2VkID0gcGFyc2VEb3Vi
bGUoY3VycmVudCwgZW5kLCAnJScsIHBlcmNlbnRhZ2UpOwogICAgICAgICBpZiAoIW51bUNoYXJh
Y3RlcnNQYXJzZWQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBjdXJyZW50ICs9IG51bUNoYXJhY3RlcnNQYXJzZWQ7
CiAgICAgICAgIGlmICgqY3VycmVudCAhPSAnJScpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBsb2NhbFZhbHVlICs9
IHBlcmNlbnRhZ2U7CiAgICAgfQogCiAgICAgaWYgKGV4cGVjdCA9PSBDU1NVbml0VHlwZTo6Q1NT
X1BFUkNFTlRBR0UgJiYgKmN1cnJlbnQgIT0gJyUnKQotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKICAgICBpZiAoKmN1cnJlbnQgPT0gJyUnKSB7
CiAgICAgICAgIGV4cGVjdCA9IENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTsKQEAgLTMwNCwx
OCArMzA0LDE4IEBAIHN0YXRpYyBib29sIHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY28KICAg
ICAgICAgaWYgKGxvY2FsVmFsdWUgPiAyNTUpCiAgICAgICAgICAgICBsb2NhbFZhbHVlID0gMjU1
OwogICAgICAgICBjdXJyZW50Kys7Ci0gICAgfSBlbHNlIHsKKyAgICB9IGVsc2UKICAgICAgICAg
ZXhwZWN0ID0gQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI7Ci0gICAgfQogCiAgICAgd2hpbGUgKGN1
cnJlbnQgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENoYXJhY3RlclR5cGU+KCpjdXJyZW50KSkKICAg
ICAgICAgY3VycmVudCsrOwogICAgIGlmIChjdXJyZW50ID09IGVuZCB8fCAqY3VycmVudCsrICE9
IHRlcm1pbmF0b3IpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBDbGFtcCBuZWdhdGl2
ZSB2YWx1ZXMgYXQgemVyby4KLSAgICB2YWx1ZSA9IG5lZ2F0aXZlID8gMCA6IHN0YXRpY19jYXN0
PGludD4obG9jYWxWYWx1ZSk7CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgc3Ry
aW5nID0gY3VycmVudDsKLSAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIENsYW1wIG5lZ2F0aXZl
IHZhbHVlcyBhdCB6ZXJvLgorICAgIEFTU0VSVChsb2NhbFZhbHVlIDw9IDI1NSk7CisgICAgcmV0
dXJuIG5lZ2F0aXZlID8gMCA6IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGxvY2FsVmFsdWUpOwogfQog
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KQEAgLTMzMyw3ICszMzMsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNUZW50aEFscGhhKGNvbnN0IENoCiB9CiAKIHRlbXBsYXRlIDx0
eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgotc3RhdGljIGlubGluZSBib29sIHBhcnNlQWxwaGFWYWx1
ZShjb25zdCBDaGFyYWN0ZXJUeXBlKiYgc3RyaW5nLCBjb25zdCBDaGFyYWN0ZXJUeXBlKiBlbmQs
IGNvbnN0IGNoYXIgdGVybWluYXRvciwgaW50JiB2YWx1ZSkKK3N0YXRpYyBpbmxpbmUgT3B0aW9u
YWw8dWludDhfdD4gcGFyc2VBbHBoYVZhbHVlKGNvbnN0IENoYXJhY3RlclR5cGUqJiBzdHJpbmcs
IGNvbnN0IENoYXJhY3RlclR5cGUqIGVuZCwgY29uc3QgY2hhciB0ZXJtaW5hdG9yKQogewogICAg
IHdoaWxlIChzdHJpbmcgIT0gZW5kICYmIGlzSFRNTFNwYWNlPENoYXJhY3RlclR5cGU+KCpzdHJp
bmcpKQogICAgICAgICBzdHJpbmcrKzsKQEAgLTM0NSw0NSArMzQ1LDQwIEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBwYXJzZUFscGhhVmFsdWUoY29uc3QKICAgICAgICAgc3RyaW5nKys7CiAgICAgfQog
Ci0gICAgdmFsdWUgPSAwOwotCiAgICAgaW50IGxlbmd0aCA9IGVuZCAtIHN0cmluZzsKICAgICBp
ZiAobGVuZ3RoIDwgMikKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogCiAgICAgaWYgKHN0cmluZ1tsZW5ndGggLSAxXSAhPSB0ZXJtaW5hdG9yIHx8
ICFpc0FTQ0lJRGlnaXQoc3RyaW5nW2xlbmd0aCAtIDJdKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCiAgICAgaWYgKHN0cmluZ1swXSAhPSAn
MCcgJiYgc3RyaW5nWzBdICE9ICcxJyAmJiBzdHJpbmdbMF0gIT0gJy4nKSB7CiAgICAgICAgIGlm
IChjaGVja0ZvclZhbGlkRG91YmxlKHN0cmluZywgZW5kLCB0ZXJtaW5hdG9yKSkgewotICAgICAg
ICAgICAgdmFsdWUgPSBuZWdhdGl2ZSA/IDAgOiAyNTU7CiAgICAgICAgICAgICBzdHJpbmcgPSBl
bmQ7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBuZWdhdGl2
ZSA/IDAgOiAyNTU7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAogICAgIGlmIChsZW5ndGggPT0gMiAmJiBzdHJp
bmdbMF0gIT0gJy4nKSB7Ci0gICAgICAgIHZhbHVlID0gIW5lZ2F0aXZlICYmIHN0cmluZ1swXSA9
PSAnMScgPyAyNTUgOiAwOworICAgICAgICB1aW50OF90IHJlc3VsdCA9ICFuZWdhdGl2ZSAmJiBz
dHJpbmdbMF0gPT0gJzEnID8gMjU1IDogMDsKICAgICAgICAgc3RyaW5nID0gZW5kOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBpZiAo
aXNUZW50aEFscGhhKHN0cmluZywgbGVuZ3RoIC0gMSkpIHsKLSAgICAgICAgc3RhdGljIGNvbnN0
IGludCB0ZW50aEFscGhhVmFsdWVzW10gPSB7IDAsIDI2LCA1MSwgNzcsIDEwMiwgMTI4LCAxNTMs
IDE3OSwgMjA0LCAyMzAgfTsKLSAgICAgICAgdmFsdWUgPSBuZWdhdGl2ZSA/IDAgOiB0ZW50aEFs
cGhhVmFsdWVzW3N0cmluZ1tsZW5ndGggLSAyXSAtICcwJ107CisgICAgICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDhfdCB0ZW50aEFscGhhVmFsdWVzW10gPSB7IDAsIDI2LCA1MSwgNzcsIDEwMiwg
MTI4LCAxNTMsIDE3OSwgMjA0LCAyMzAgfTsKKyAgICAgICAgdWludDhfdCByZXN1bHQgPSBuZWdh
dGl2ZSA/IDAgOiB0ZW50aEFscGhhVmFsdWVzW3N0cmluZ1tsZW5ndGggLSAyXSAtICcwJ107CiAg
ICAgICAgIHN0cmluZyA9IGVuZDsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogCiAgICAgZG91YmxlIGFscGhhID0gMDsKICAgICBpZiAoIXBhcnNl
RG91YmxlKHN0cmluZywgZW5kLCB0ZXJtaW5hdG9yLCBhbHBoYSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIC8vIFczIHN0YW5kYXJk
IHN0aXB1bGF0ZXMgYSAyLjU1IGFscGhhIHZhbHVlIG11bHRpcGxpY2F0aW9uIGZhY3Rvci4KLSAg
ICB2YWx1ZSA9IG5lZ2F0aXZlID8gMCA6IHN0YXRpY19jYXN0PGludD4obHJvdW5kZihjbGFtcFRv
PGRvdWJsZT4oYWxwaGEsIDAuMCwgMS4wKSAqIDI1NS4wZikpOwogICAgIHN0cmluZyA9IGVuZDsK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbmVnYXRpdmUgPyAwIDogY29udmVydEZsb2F0
QWxwaGFUbzx1aW50OF90PihhbHBoYSk7CiB9CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0
ZXJUeXBlPgpAQCAtNDczLDM5ICs0NjgsMzkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4gc3RhdGljIAogICAgIGlmIChtaWdodEJlUkdCQShjaGFyYWN0ZXJzLCBsZW5ndGgpKSB7
CiAgICAgICAgIGF1dG8gY3VycmVudCA9IGNoYXJhY3RlcnMgKyA1OwogICAgICAgICBhdXRvIGVu
ZCA9IGNoYXJhY3RlcnMgKyBsZW5ndGg7Ci0gICAgICAgIGludCByZWQ7Ci0gICAgICAgIGlmICgh
cGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0LCByZWQp
KQorICAgICAgICBhdXRvIHJlZCA9IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwg
ZW5kLCAnLCcsIGV4cGVjdCk7CisgICAgICAgIGlmICghcmVkKQogICAgICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLSAgICAgICAgaW50IGdyZWVuOwotICAgICAgICBpZiAoIXBhcnNlQ29s
b3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgZ3JlZW4pKQorICAg
ICAgICBhdXRvIGdyZWVuID0gcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQs
ICcsJywgZXhwZWN0KTsKKyAgICAgICAgaWYgKCFncmVlbikKICAgICAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgICAgIGludCBibHVlOwotICAgICAgICBpZiAoIXBhcnNlQ29sb3JJ
bnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcsIGV4cGVjdCwgYmx1ZSkpCisgICAgICAg
IGF1dG8gYmx1ZSA9IHBhcnNlQ29sb3JJbnRPclBlcmNlbnRhZ2UoY3VycmVudCwgZW5kLCAnLCcs
IGV4cGVjdCk7CisgICAgICAgIGlmICghYmx1ZSkKICAgICAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgICAgIGludCBhbHBoYTsKLSAgICAgICAgaWYgKCFwYXJzZUFscGhhVmFsdWUo
Y3VycmVudCwgZW5kLCAnKScsIGFscGhhKSkKKyAgICAgICAgYXV0byBhbHBoYSA9IHBhcnNlQWxw
aGFWYWx1ZShjdXJyZW50LCBlbmQsICcpJyk7CisgICAgICAgIGlmICghYWxwaGEpCiAgICAgICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgICAgICBpZiAoY3VycmVudCAhPSBlbmQpCiAg
ICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICByZXR1cm4gbWFrZUZyb21D
b21wb25lbnRzQ2xhbXBpbmc8U1JHQkE8dWludDhfdD4+KHJlZCwgZ3JlZW4sIGJsdWUsIGFscGhh
KTsgLy8gRklYTUU6IEFscmVhZHkgY2xhbXBlZCwgZG9lc24ndCBuZWVkIHRvIHJlLWNsYW1wLiBV
cGRhdGUgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZS9wYXJzZUFscGhhVmFsdWUgdG8gcmV0dXJu
IHVpbnQ4X3QgYW5kIHJlcGxhY2UgY2FsbCB0byBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGluZzxT
UkdCQTx1aW50OF90Pj4gd2l0aCBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFNSR0JBPHVpbnQ4X3Q+
LgorICAgICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAqcmVkLCAqZ3JlZW4sICpibHVlLCAq
YWxwaGEgfTsKICAgICB9CiAKICAgICAvLyBUcnkgcmdiKCkgc3ludGF4LgogICAgIGlmIChtaWdo
dEJlUkdCKGNoYXJhY3RlcnMsIGxlbmd0aCkpIHsKICAgICAgICAgYXV0byBjdXJyZW50ID0gY2hh
cmFjdGVycyArIDQ7CiAgICAgICAgIGF1dG8gZW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsKLSAg
ICAgICAgaW50IHJlZDsKLSAgICAgICAgaWYgKCFwYXJzZUNvbG9ySW50T3JQZXJjZW50YWdlKGN1
cnJlbnQsIGVuZCwgJywnLCBleHBlY3QsIHJlZCkpCisgICAgICAgIGF1dG8gcmVkID0gcGFyc2VD
b2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcsJywgZXhwZWN0KTsKKyAgICAgICAg
aWYgKCFyZWQpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBpbnQg
Z3JlZW47Ci0gICAgICAgIGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBl
bmQsICcsJywgZXhwZWN0LCBncmVlbikpCisgICAgICAgIGF1dG8gZ3JlZW4gPSBwYXJzZUNvbG9y
SW50T3JQZXJjZW50YWdlKGN1cnJlbnQsIGVuZCwgJywnLCBleHBlY3QpOworICAgICAgICBpZiAo
IWdyZWVuKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgaW50IGJs
dWU7Ci0gICAgICAgIGlmICghcGFyc2VDb2xvckludE9yUGVyY2VudGFnZShjdXJyZW50LCBlbmQs
ICcpJywgZXhwZWN0LCBibHVlKSkKKyAgICAgICAgYXV0byBibHVlID0gcGFyc2VDb2xvckludE9y
UGVyY2VudGFnZShjdXJyZW50LCBlbmQsICcpJywgZXhwZWN0KTsKKyAgICAgICAgaWYgKCFibHVl
KQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICAgICAgaWYgKGN1cnJlbnQg
IT0gZW5kKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJu
IG1ha2VGcm9tQ29tcG9uZW50c0NsYW1waW5nPFNSR0JBPHVpbnQ4X3Q+PihyZWQsIGdyZWVuLCBi
bHVlKTsgLy8gRklYTUU6IEFscmVhZHkgY2xhbXBlZCwgZG9lc24ndCBuZWVkIHRvIHJlLWNsYW1w
LiBVcGRhdGUgcGFyc2VDb2xvckludE9yUGVyY2VudGFnZS9wYXJzZUFscGhhVmFsdWUgdG8gcmV0
dXJuIHVpbnQ4X3QgYW5kIHJlcGxhY2UgY2FsbCB0byBtYWtlRnJvbUNvbXBvbmVudHNDbGFtcGlu
ZzxTUkdCQTx1aW50OF90Pj4gd2l0aCBkaXJlY3QgY29uc3RydWN0aW9uIG9mIFNSR0JBPHVpbnQ4
X3Q+LgorICAgICAgICByZXR1cm4gU1JHQkE8dWludDhfdD4geyAqcmVkLCAqZ3JlZW4sICpibHVl
IH07CiAgICAgfQogCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>