<?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>205783</bug_id>
          
          <creation_ts>2020-01-05 18:01:30 -0800</creation_ts>
          <short_desc>RegExp.prototype[Symbol.replace] does not support named capture groups</short_desc>
          <delta_ts>2020-01-08 05:49:14 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=205785</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>176435</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602922</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-05 18:01:30 -0800</bug_when>
    <thetext>While String.prototype.replace() works as expected with named capture groups, slow path is not implemented.

Test case:
  /(?&lt;a&gt;.)/[Symbol.replace](&quot;b&quot;, &quot;$&lt;a&gt;&quot;)

Expected:
  &quot;b&quot;

Actual:
  &quot;$&lt;a&gt;&quot;

ECMA262:
  https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 14.j)

Test262:
  https://test262.report/browse/built-ins/RegExp/named-groups/groups-object-subclass-sans.js
  https://test262.report/browse/built-ins/RegExp/named-groups/groups-object-subclass.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602925</commentid>
    <comment_count>1</comment_count>
      <attachid>386803</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-05 19:25:26 -0800</bug_when>
    <thetext>Created attachment 386803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603335</commentid>
    <comment_count>2</comment_count>
      <attachid>386803</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-06 15:43:14 -0800</bug_when>
    <thetext>Comment on attachment 386803
Patch

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

r=me with nits

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        (step 14.j of https://tc39.es/ecma262/#sec-regexp.prototype-@@replace)

Probably better to indicate that it&apos;s not just 14.j but 14.j-l.

&gt; Source/JavaScriptCore/builtins/RegExpPrototype.js:360
&gt; +                namedCaptures = @toObject(namedCaptures, &quot;RegExp.prototype[Symbol.replace] requires result.group not be null or undefined&quot;);

Hmm, this is meant to be `result.groups`, right?  Though that still seems a bit problematic since `result` is an internal name. And I guess we&apos;ve verified that it&apos;s not undefined.

How about this?
&quot;RegExp.prototype.@@replace does not allow matches to have a null &apos;groups&apos; property.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603730</commentid>
    <comment_count>3</comment_count>
      <attachid>387020</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-07 12:31:00 -0800</bug_when>
    <thetext>Created attachment 387020
Patch

Set reviewer, tweak ChangeLog and error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603732</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-07 12:33:59 -0800</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #2)
&gt; How about this?
&gt; &quot;RegExp.prototype.@@replace does not allow matches to have a null &apos;groups&apos;
&gt; property.&quot;

Thank you for review, I went with &quot;RegExp.prototype[Symbol.replace] requires &apos;groups&apos; property of a match not be null&quot; to avoid @@ notation (because of https://github.com/tc39/ecma262/pull/1314) and for consistency with other @toObject error messages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603859</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-01-07 16:25:21 -0800</bug_when>
    <thetext>Guess there&apos;s a rebase conflict here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603955</commentid>
    <comment_count>6</comment_count>
      <attachid>387075</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-01-07 22:09:22 -0800</bug_when>
    <thetext>Created attachment 387075
Patch

Rebase patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604055</commentid>
    <comment_count>7</comment_count>
      <attachid>387075</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 05:48:28 -0800</bug_when>
    <thetext>Comment on attachment 387075
Patch

Clearing flags on attachment: 387075

Committed r254195: &lt;https://trac.webkit.org/changeset/254195&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604056</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 05:48:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604057</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-08 05:49:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/58406622&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386803</attachid>
            <date>2020-01-05 19:25:26 -0800</date>
            <delta_ts>2020-01-07 12:31:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205783-20200106052525.patch</filename>
            <type>text/plain</type>
            <size>6629</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTQwNDcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSBk
b2VzIG5vdCBzdXBwb3J0IG5hbWVkIGNhcHR1cmUgZ3JvdXBzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWw6
IE1hcmsgNiB0ZXN0IGNhc2VzIGFzIHBhc3NpbmcuCisKIDIwMjAtMDEtMDQgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIEpTT04ucGFyc2Ugc2hvdWxk
IGluaXRpYWxpemUgd3JhcHBlciBvYmplY3Qgd2l0aCBbW0RlZmluZU93blByb3BlcnR5XV0KSW5k
ZXg6IEpTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rl
c3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHJldmlzaW9uIDI1NDAzMikKKysrIEpTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkod29ya2luZyBjb3B5KQpAQCAtMTI3OSwxMiAr
MTI3OSw2IEBAIHRlc3QvYnVpbHQtaW5zL1Byb3h5L2NvbnN0cnVjdC9yZXR1cm4tbm8KIHRlc3Qv
YnVpbHQtaW5zL1Byb3h5L2NvbnN0cnVjdC90cmFwLWlzLW5vdC1jYWxsYWJsZS1yZWFsbS5qczoK
ICAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBh
IFR5cGVFcnJvcicKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlw
ZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCi10ZXN0L2J1aWx0LWlucy9SZWdFeHAvbmFtZWQt
Z3JvdXBzL2dyb3Vwcy1vYmplY3Qtc3ViY2xhc3Mtc2Fucy5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYsK7LCDCqyQ8YT7CuykgdG8gYmUgdHJ1ZScK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2LCuywg
wqskPGE+wrspIHRvIGJlIHRydWUnCi10ZXN0L2J1aWx0LWlucy9SZWdFeHAvbmFtZWQtZ3JvdXBz
L2dyb3Vwcy1vYmplY3Qtc3ViY2xhc3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq2LCuywgwqskPGE+wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtiwrssIMKrJDxhPsK7KSB0
byBiZSB0cnVlJwogdGVzdC9idWlsdC1pbnMvUmVnRXhwL25hbWVkLWdyb3Vwcy9zdHJpbmctcmVw
bGFjZS1ub2NhcHR1cmVzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqskPHNuZD4kPGZzdD5jZMK7LCDCqyQ8JDxmc3Q+Y2TCuykgdG8gYmUgdHJ1ZScK
ICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqyQ8c25k
PiQ8ZnN0PmNkwrssIMKrJDwkPGZzdD5jZMK7KSB0byBiZSB0cnVlJwpAQCAtMTY4Nyw5ICsxNjgx
LDYgQEAgdGVzdC9idWlsdC1pbnMvU2V0L3Byb3RvLWZyb20tY3Rvci1yZWFsbQogdGVzdC9idWls
dC1pbnMvU3RyaW5nL3Byb3RvLWZyb20tY3Rvci1yZWFsbS5qczoKICAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrwrssIMKrwrspIHRvIGJlIHRydWUnCiAgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqvCuykg
dG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL1N0cmluZy9wcm90b3R5cGUvcmVwbGFjZUFsbC9z
ZWFyY2hWYWx1ZS1yZXBsYWNlci1SZWdFeHAtY2FsbC5qczoKLSAgZGVmYXVsdDogIlRlc3QyNjJF
cnJvcjogc2FtcGxlIDExOiAnYWJjYmEnLnJlcGxhY2VBbGwoLyg/PG5hbWVkPmIpL2csICcoJDxu
YW1lZD4pJykgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYSgkPG5hbWVkPiljKCQ8bmFtZWQ+KWHCuywg
wqthKGIpYyhiKWHCuykgdG8gYmUgdHJ1ZSIKLSAgc3RyaWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6
IHNhbXBsZSAxMTogJ2FiY2JhJy5yZXBsYWNlQWxsKC8oPzxuYW1lZD5iKS9nLCAnKCQ8bmFtZWQ+
KScpIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2EoJDxuYW1lZD4pYygkPG5hbWVkPilhwrssIMKrYShi
KWMoYilhwrspIHRvIGJlIHRydWUiCiB0ZXN0L2J1aWx0LWlucy9UaHJvd1R5cGVFcnJvci9leHRl
bnNpYmxlLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVl
JwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTQwMzIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMjAtMDEtMDUgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgor
CisgICAgICAgIFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdIGRvZXMgbm90IHN1cHBv
cnQgbmFtZWQgY2FwdHVyZSBncm91cHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNTc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBuYW1lZCBjYXB0dXJlIGdyb3VwcyBzdXBw
b3J0IHRvIFJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdLAorICAgICAgICBmb3IgYm90
aCBmdW5jdGlvbmFsIGFuZCBzdHJpbmcgcGF0dGVybiByZXBsYWNlbWVudC4KKyAgICAgICAgKHN0
ZXAgMTQuaiBvZiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUt
QEByZXBsYWNlKQorCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gc2xvdyBwYXRoIG9m
IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSAoUmVnRXhwIHN1YmNsYXNzIGhhbmRsaW5nKSwKKyAg
ICAgICAgeWV0IGl0IGFsc28gY2FuIGJlIGludm9rZWQgZGlyZWN0bHkgaW4gdXNlciBjb2RlLgor
CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzOgorICAgICAgICAoZ2V0U3Vi
c3RpdHV0aW9uKToKKyAgICAgICAgKFN5bWJvbC5yZXBsYWNlKToKKwogMjAyMC0wMS0wMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1hcmtlZEJs
b2NrOjpIYW5kbGUgYW5kIEJsb2NrRGlyZWN0b3J5IHNob3VsZCBiZSBzaHJ1bmsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwko
cmV2aXNpb24gMjU0MDMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4
cFByb3RvdHlwZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSw3IEBAIGZ1bmN0aW9u
IHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIGZ1
bmN0aW9uIGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBjYXB0dXJlcywg
cmVwbGFjZW1lbnQpCisgICAgZnVuY3Rpb24gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwg
cG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkKICAgICB7CiAg
ICAgICAgICJ1c2Ugc3RyaWN0IjsKIApAQCAtMjE5LDYgKzIxOSwyNCBAQCBmdW5jdGlvbiByZXBs
YWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCArIHN0ci5zdWJzdHJpbmcodGFpbFBvcyk7CiAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
Kys7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgIjwi
OgorICAgICAgICAgICAgICAgICAgICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGdyb3VwTmFtZVN0YXJ0SW5kZXggPSBzdGFy
dCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBOYW1lRW5kSW5kZXggPSBy
ZXBsYWNlbWVudC5pbmRleE9mKCI+IiwgZ3JvdXBOYW1lU3RhcnRJbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1lRW5kSW5kZXggIT09IC0xKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGdyb3VwTmFtZSA9IHJlcGxhY2VtZW50LnN1YnN0cmluZyhn
cm91cE5hbWVTdGFydEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGNhcHR1cmUgPSBuYW1lZENhcHR1cmVzW2dyb3VwTmFtZV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhcHR1cmUgIT09IEB1bmRlZmluZWQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIEB0b1N0cmluZyhj
YXB0dXJlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ3JvdXBOYW1l
RW5kSW5kZXggKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgIiQ8IjsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
cnQrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgbGV0IGNoQ29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaENvZGUgPj0gMHgzMCAmJiBjaENvZGUgPD0gMHgzOSkg
ewpAQCAtMzI1LDE2ICszNDMsMjQgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2Up
CiAgICAgICAgIH0KIAogICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgIGxldCBuYW1l
ZENhcHR1cmVzID0gcmVzdWx0Lmdyb3VwczsKIAogICAgICAgICBpZiAoZnVuY3Rpb25hbFJlcGxh
Y2UpIHsKICAgICAgICAgICAgIGxldCByZXBsYWNlckFyZ3MgPSBbIG1hdGNoZWQgXS5jb25jYXQo
Y2FwdHVyZXMpOwogICAgICAgICAgICAgcmVwbGFjZXJBcmdzLkBwdXNoKHBvc2l0aW9uKTsKICAg
ICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChzdHIpOwogCisgICAgICAgICAgICBpZiAobmFt
ZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICByZXBsYWNlckFyZ3Mu
QHB1c2gobmFtZWRDYXB0dXJlcyk7CisKICAgICAgICAgICAgIGxldCByZXBsVmFsdWUgPSByZXBs
YWNlLkBhcHBseShAdW5kZWZpbmVkLCByZXBsYWNlckFyZ3MpOwogICAgICAgICAgICAgcmVwbGFj
ZW1lbnQgPSBAdG9TdHJpbmcocmVwbFZhbHVlKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBj
YXB0dXJlcywgcmVwbGFjZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobmFt
ZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBuYW1lZENhcHR1cmVz
ID0gQHRvT2JqZWN0KG5hbWVkQ2FwdHVyZXMsICJSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBs
YWNlXSByZXF1aXJlcyByZXN1bHQuZ3JvdXAgbm90IGJlIG51bGwgb3IgdW5kZWZpbmVkIik7CisK
KyAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwg
cG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlKTsKKyAgICAgICAgfQog
CiAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBuZXh0U291cmNlUG9zaXRpb24gJiYgcG9zaXRpb24g
Pj0gbGFzdFBvc2l0aW9uKSB7CiAgICAgICAgICAgICBhY2N1bXVsYXRlZFJlc3VsdCA9IGFjY3Vt
dWxhdGVkUmVzdWx0ICsgc3RyLnN1YnN0cmluZyhuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0aW9u
KSArIHJlcGxhY2VtZW50Owo=
</data>
<flag name="review"
          id="402568"
          type_id="1"
          status="+"
          setter="ross.kirsling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387020</attachid>
            <date>2020-01-07 12:31:00 -0800</date>
            <delta_ts>2020-01-07 22:09:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205783-20200106052525-2.patch</filename>
            <type>text/plain</type>
            <size>6632</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTQwNDcpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSBk
b2VzIG5vdCBzdXBwb3J0IG5hbWVkIGNhcHR1cmUgZ3JvdXBzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBSb3NzIEtpcnNsaW5nLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDog
TWFyayA2IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMS0wNCAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgSlNPTi5wYXJzZSBzaG91bGQg
aW5pdGlhbGl6ZSB3cmFwcGVyIG9iamVjdCB3aXRoIFtbRGVmaW5lT3duUHJvcGVydHldXQpJbmRl
eDogSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVz
dHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAkocmV2aXNpb24gMjU0MDMyKQorKysgSlNUZXN0
cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc5LDEyICsx
Mjc5LDYgQEAgdGVzdC9idWlsdC1pbnMvUHJveHkvY29uc3RydWN0L3JldHVybi1ubwogdGVzdC9i
dWlsdC1pbnMvUHJveHkvY29uc3RydWN0L3RyYXAtaXMtbm90LWNhbGxhYmxlLXJlYWxtLmpzOgog
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEg
VHlwZUVycm9yJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgYnV0IGdvdCBhIFR5cGVFcnJvcicKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9uYW1lZC1n
cm91cHMvZ3JvdXBzLW9iamVjdC1zdWJjbGFzcy1zYW5zLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtiwrssIMKrJDxhPsK7KSB0byBiZSB0cnVlJwot
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYsK7LCDC
qyQ8YT7CuykgdG8gYmUgdHJ1ZScKLXRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9uYW1lZC1ncm91cHMv
Z3JvdXBzLW9iamVjdC1zdWJjbGFzcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrYsK7LCDCqyQ8YT7CuykgdG8gYmUgdHJ1ZScKLSAgc3RyaWN0IG1v
ZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2LCuywgwqskPGE+wrspIHRv
IGJlIHRydWUnCiB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvbmFtZWQtZ3JvdXBzL3N0cmluZy1yZXBs
YWNlLW5vY2FwdHVyZXMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNh
bWVWYWx1ZSjCqyQ8c25kPiQ8ZnN0PmNkwrssIMKrJDwkPGZzdD5jZMK7KSB0byBiZSB0cnVlJwog
ICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrJDxzbmQ+
JDxmc3Q+Y2TCuywgwqskPCQ8ZnN0PmNkwrspIHRvIGJlIHRydWUnCkBAIC0xNjg3LDkgKzE2ODEs
NiBAQCB0ZXN0L2J1aWx0LWlucy9TZXQvcHJvdG8tZnJvbS1jdG9yLXJlYWxtCiB0ZXN0L2J1aWx0
LWlucy9TdHJpbmcvcHJvdG8tZnJvbS1jdG9yLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqvCuykgdG8gYmUgdHJ1ZScKICAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq8K7KSB0
byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvU3RyaW5nL3Byb3RvdHlwZS9yZXBsYWNlQWxsL3Nl
YXJjaFZhbHVlLXJlcGxhY2VyLVJlZ0V4cC1jYWxsLmpzOgotICBkZWZhdWx0OiAiVGVzdDI2MkVy
cm9yOiBzYW1wbGUgMTE6ICdhYmNiYScucmVwbGFjZUFsbCgvKD88bmFtZWQ+YikvZywgJygkPG5h
bWVkPiknKSBFeHBlY3RlZCBTYW1lVmFsdWUowqthKCQ8bmFtZWQ+KWMoJDxuYW1lZD4pYcK7LCDC
q2EoYiljKGIpYcK7KSB0byBiZSB0cnVlIgotICBzdHJpY3QgbW9kZTogIlRlc3QyNjJFcnJvcjog
c2FtcGxlIDExOiAnYWJjYmEnLnJlcGxhY2VBbGwoLyg/PG5hbWVkPmIpL2csICcoJDxuYW1lZD4p
JykgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrYSgkPG5hbWVkPiljKCQ8bmFtZWQ+KWHCuywgwqthKGIp
YyhiKWHCuykgdG8gYmUgdHJ1ZSIKIHRlc3QvYnVpbHQtaW5zL1Rocm93VHlwZUVycm9yL2V4dGVu
c2libGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjC
q3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUn
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDAzMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBA
QAorMjAyMC0wMS0wNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisK
KyAgICAgICAgUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wucmVwbGFjZV0gZG9lcyBub3Qgc3VwcG9y
dCBuYW1lZCBjYXB0dXJlIGdyb3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1NzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9zcyBLaXJzbGlu
Zy4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmFtZWQgY2FwdHVyZSBncm91cHMgc3VwcG9y
dCB0byBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSwKKyAgICAgICAgZm9yIGJvdGgg
ZnVuY3Rpb25hbCBhbmQgc3RyaW5nIHBhdHRlcm4gcmVwbGFjZW1lbnQuCisgICAgICAgIChzdGVw
IDE0LmotbCBvZiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLXJlZ2V4cC5wcm90b3R5cGUt
QEByZXBsYWNlKQorCisgICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWQgaW4gc2xvdyBwYXRoIG9m
IFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSAoUmVnRXhwIHN1YmNsYXNzIGhhbmRsaW5nKSwKKyAg
ICAgICAgeWV0IGl0IGFsc28gY2FuIGJlIGludm9rZWQgZGlyZWN0bHkgaW4gdXNlciBjb2RlLgor
CisgICAgICAgICogYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzOgorICAgICAgICAoZ2V0U3Vi
c3RpdHV0aW9uKToKKyAgICAgICAgKFN5bWJvbC5yZXBsYWNlKToKKwogMjAyMC0wMS0wMiAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIE1hcmtlZEJs
b2NrOjpIYW5kbGUgYW5kIEJsb2NrRGlyZWN0b3J5IHNob3VsZCBiZSBzaHJ1bmsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9SZWdFeHBQcm90b3R5cGUuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwko
cmV2aXNpb24gMjU0MDMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4
cFByb3RvdHlwZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMTc5LDcgKzE3OSw3IEBAIGZ1bmN0aW9u
IHJlcGxhY2Uoc3RyQXJnLCByZXBsYWNlKQogewogICAgICJ1c2Ugc3RyaWN0IjsKIAotICAgIGZ1
bmN0aW9uIGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBjYXB0dXJlcywg
cmVwbGFjZW1lbnQpCisgICAgZnVuY3Rpb24gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwg
cG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlbWVudCkKICAgICB7CiAg
ICAgICAgICJ1c2Ugc3RyaWN0IjsKIApAQCAtMjE5LDYgKzIxOSwyNCBAQCBmdW5jdGlvbiByZXBs
YWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdCArIHN0ci5zdWJzdHJpbmcodGFpbFBvcyk7CiAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
Kys7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgIjwi
OgorICAgICAgICAgICAgICAgICAgICBpZiAobmFtZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGdyb3VwTmFtZVN0YXJ0SW5kZXggPSBzdGFy
dCArIDE7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBOYW1lRW5kSW5kZXggPSBy
ZXBsYWNlbWVudC5pbmRleE9mKCI+IiwgZ3JvdXBOYW1lU3RhcnRJbmRleCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZ3JvdXBOYW1lRW5kSW5kZXggIT09IC0xKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IGdyb3VwTmFtZSA9IHJlcGxhY2VtZW50LnN1YnN0cmluZyhn
cm91cE5hbWVTdGFydEluZGV4LCBncm91cE5hbWVFbmRJbmRleCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IGNhcHR1cmUgPSBuYW1lZENhcHR1cmVzW2dyb3VwTmFtZV07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhcHR1cmUgIT09IEB1bmRlZmluZWQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIEB0b1N0cmluZyhj
YXB0dXJlKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gZ3JvdXBOYW1l
RW5kSW5kZXggKyAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgIiQ8IjsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
cnQrKzsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgbGV0IGNoQ29kZSA9IGNoLmNoYXJDb2RlQXQoMCk7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChjaENvZGUgPj0gMHgzMCAmJiBjaENvZGUgPD0gMHgzOSkg
ewpAQCAtMzI1LDE2ICszNDMsMjQgQEAgZnVuY3Rpb24gcmVwbGFjZShzdHJBcmcsIHJlcGxhY2Up
CiAgICAgICAgIH0KIAogICAgICAgICBsZXQgcmVwbGFjZW1lbnQ7CisgICAgICAgIGxldCBuYW1l
ZENhcHR1cmVzID0gcmVzdWx0Lmdyb3VwczsKIAogICAgICAgICBpZiAoZnVuY3Rpb25hbFJlcGxh
Y2UpIHsKICAgICAgICAgICAgIGxldCByZXBsYWNlckFyZ3MgPSBbIG1hdGNoZWQgXS5jb25jYXQo
Y2FwdHVyZXMpOwogICAgICAgICAgICAgcmVwbGFjZXJBcmdzLkBwdXNoKHBvc2l0aW9uKTsKICAg
ICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChzdHIpOwogCisgICAgICAgICAgICBpZiAobmFt
ZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICByZXBsYWNlckFyZ3Mu
QHB1c2gobmFtZWRDYXB0dXJlcyk7CisKICAgICAgICAgICAgIGxldCByZXBsVmFsdWUgPSByZXBs
YWNlLkBhcHBseShAdW5kZWZpbmVkLCByZXBsYWNlckFyZ3MpOwogICAgICAgICAgICAgcmVwbGFj
ZW1lbnQgPSBAdG9TdHJpbmcocmVwbFZhbHVlKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICByZXBsYWNlbWVudCA9IGdldFN1YnN0aXR1dGlvbihtYXRjaGVkLCBzdHIsIHBvc2l0aW9uLCBj
YXB0dXJlcywgcmVwbGFjZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAobmFt
ZWRDYXB0dXJlcyAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAgICBuYW1lZENhcHR1cmVz
ID0gQHRvT2JqZWN0KG5hbWVkQ2FwdHVyZXMsICJSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBs
YWNlXSByZXF1aXJlcyAnZ3JvdXBzJyBwcm9wZXJ0eSBvZiBhIG1hdGNoIG5vdCBiZSBudWxsIik7
CisKKyAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0
ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBuYW1lZENhcHR1cmVzLCByZXBsYWNlKTsKKyAgICAgICAg
fQogCiAgICAgICAgIGlmIChwb3NpdGlvbiA+PSBuZXh0U291cmNlUG9zaXRpb24gJiYgcG9zaXRp
b24gPj0gbGFzdFBvc2l0aW9uKSB7CiAgICAgICAgICAgICBhY2N1bXVsYXRlZFJlc3VsdCA9IGFj
Y3VtdWxhdGVkUmVzdWx0ICsgc3RyLnN1YnN0cmluZyhuZXh0U291cmNlUG9zaXRpb24sIHBvc2l0
aW9uKSArIHJlcGxhY2VtZW50Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387075</attachid>
            <date>2020-01-07 22:09:22 -0800</date>
            <delta_ts>2020-01-08 05:48:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205783-20200108080920.patch</filename>
            <type>text/plain</type>
            <size>6622</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTQxODUpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIwLTAxLTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSBk
b2VzIG5vdCBzdXBwb3J0IG5hbWVkIGNhcHR1cmUgZ3JvdXBzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU3ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBSb3NzIEtpcnNsaW5nLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDog
TWFyayA2IHRlc3QgY2FzZXMgYXMgcGFzc2luZy4KKwogMjAyMC0wMS0wNiAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAgICAgU3RyaW5nLnByb3RvdHlwZS5y
ZXBsYWNlKCkgaW5jb3JyZWN0bHkgaGFuZGxlcyBuYW1lZCByZWZlcmVuY2VzIG9uIFJlZ0V4cCB3
L28gbmFtZWQgZ3JvdXBzCkluZGV4OiBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCShyZXZpc2lv
biAyNTQxODUpCisrKyBKU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEyNjQsMTIgKzEyNjQsNiBAQCB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jb25zdHJ1
Y3QvcmV0dXJuLW5vCiB0ZXN0L2J1aWx0LWlucy9Qcm94eS9jb25zdHJ1Y3QvdHJhcC1pcy1ub3Qt
Y2FsbGFibGUtcmVhbG0uanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEg
VHlwZUVycm9yIGJ1dCBnb3QgYSBUeXBlRXJyb3InCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVHlwZUVycm9yJwotdGVzdC9idWls
dC1pbnMvUmVnRXhwL25hbWVkLWdyb3Vwcy9ncm91cHMtb2JqZWN0LXN1YmNsYXNzLXNhbnMuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2LCuywgwqsk
PGE+wrspIHRvIGJlIHRydWUnCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqtiwrssIMKrJDxhPsK7KSB0byBiZSB0cnVlJwotdGVzdC9idWlsdC1pbnMv
UmVnRXhwL25hbWVkLWdyb3Vwcy9ncm91cHMtb2JqZWN0LXN1YmNsYXNzLmpzOgotICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtiwrssIMKrJDxhPsK7KSB0byBi
ZSB0cnVlJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrYsK7LCDCqyQ8YT7CuykgdG8gYmUgdHJ1ZScKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9uYW1l
ZC1ncm91cHMvdW5pY29kZS1wcm9wZXJ0eS1uYW1lcy5qczoKICAgZGVmYXVsdDogJ1N5bnRheEVy
cm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogaW52YWxpZCBncm91cCBzcGVjaWZpZXIg
bmFtZScKICAgc3RyaWN0IG1vZGU6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJl
c3Npb246IGludmFsaWQgZ3JvdXAgc3BlY2lmaWVyIG5hbWUnCkBAIC0xNjY5LDkgKzE2NjMsNiBA
QCB0ZXN0L2J1aWx0LWlucy9TZXQvcHJvdG8tZnJvbS1jdG9yLXJlYWxtCiB0ZXN0L2J1aWx0LWlu
cy9TdHJpbmcvcHJvdG8tZnJvbS1jdG9yLXJlYWxtLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqvCuywgwqvCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq8K7LCDCq8K7KSB0byBi
ZSB0cnVlJwotdGVzdC9idWlsdC1pbnMvU3RyaW5nL3Byb3RvdHlwZS9yZXBsYWNlQWxsL3NlYXJj
aFZhbHVlLXJlcGxhY2VyLVJlZ0V4cC1jYWxsLmpzOgotICBkZWZhdWx0OiAiVGVzdDI2MkVycm9y
OiBzYW1wbGUgMTE6ICdhYmNiYScucmVwbGFjZUFsbCgvKD88bmFtZWQ+YikvZywgJygkPG5hbWVk
PiknKSBFeHBlY3RlZCBTYW1lVmFsdWUowqthKCQ8bmFtZWQ+KWMoJDxuYW1lZD4pYcK7LCDCq2Eo
YiljKGIpYcK7KSB0byBiZSB0cnVlIgotICBzdHJpY3QgbW9kZTogIlRlc3QyNjJFcnJvcjogc2Ft
cGxlIDExOiAnYWJjYmEnLnJlcGxhY2VBbGwoLyg/PG5hbWVkPmIpL2csICcoJDxuYW1lZD4pJykg
RXhwZWN0ZWQgU2FtZVZhbHVlKMKrYSgkPG5hbWVkPiljKCQ8bmFtZWQ+KWHCuywgwqthKGIpYyhi
KWHCuykgdG8gYmUgdHJ1ZSIKIHRlc3QvYnVpbHQtaW5zL1Rocm93VHlwZUVycm9yL2V4dGVuc2li
bGUuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3Ry
dWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUnCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDE4NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAyMC0wMS0wNyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmVnRXhwLnByb3RvdHlwZVtTeW1ib2wucmVwbGFjZV0gZG9lcyBub3Qgc3VwcG9ydCBu
YW1lZCBjYXB0dXJlIGdyb3VwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9zcyBLaXJzbGluZy4K
KworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgbmFtZWQgY2FwdHVyZSBncm91cHMgc3VwcG9ydCB0
byBSZWdFeHAucHJvdG90eXBlW1N5bWJvbC5yZXBsYWNlXSwKKyAgICAgICAgZm9yIGJvdGggZnVu
Y3Rpb25hbCBhbmQgc3RyaW5nIHBhdHRlcm4gcmVwbGFjZW1lbnQuCisgICAgICAgIChzdGVwcyAx
NC5qLWwgb2YgaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1yZWdleHAucHJvdG90eXBlLUBA
cmVwbGFjZSkKKworICAgICAgICBUaGlzIG1ldGhvZCBpcyB1c2VkIGluIHNsb3cgcGF0aCBvZiBT
dHJpbmcucHJvdG90eXBlLnJlcGxhY2UgKFJlZ0V4cCBzdWJjbGFzcyBoYW5kbGluZyksCisgICAg
ICAgIHlldCBpdCBhbHNvIGNhbiBiZSBpbnZva2VkIGRpcmVjdGx5IGluIHVzZXIgY29kZS4KKwor
ICAgICAgICAqIGJ1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qczoKKyAgICAgICAgKGdldFN1YnN0
aXR1dGlvbik6CisgICAgICAgIChTeW1ib2wucmVwbGFjZSk6CisKIDIwMjAtMDEtMDcgIFJvc3Mg
S2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
cmVzdGFiaWxpemF0aW9uIG9mIG5vbi11bmlmaWVkIGJ1aWxkLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1JlZ0V4cFByb3RvdHlwZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBlLmpzCShyZXZpc2lvbiAy
NTQxODUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvUmVnRXhwUHJvdG90eXBl
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gcmVwbGFjZShz
dHJBcmcsIHJlcGxhY2UpCiB7CiAgICAgInVzZSBzdHJpY3QiOwogCi0gICAgZnVuY3Rpb24gZ2V0
U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCByZXBsYWNlbWVu
dCkKKyAgICBmdW5jdGlvbiBnZXRTdWJzdGl0dXRpb24obWF0Y2hlZCwgc3RyLCBwb3NpdGlvbiwg
Y2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhY2VtZW50KQogICAgIHsKICAgICAgICAgInVz
ZSBzdHJpY3QiOwogCkBAIC0yMTksNiArMjE5LDI0IEBAIGZ1bmN0aW9uIHJlcGxhY2Uoc3RyQXJn
LCByZXBsYWNlKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgc3Ry
LnN1YnN0cmluZyh0YWlsUG9zKTsKICAgICAgICAgICAgICAgICAgICAgc3RhcnQrKzsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSAiPCI6CisgICAgICAg
ICAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVzICE9PSBAdW5kZWZpbmVkKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBsZXQgZ3JvdXBOYW1lU3RhcnRJbmRleCA9IHN0YXJ0ICsgMTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cE5hbWVFbmRJbmRleCA9IHJlcGxhY2VtZW50
LmluZGV4T2YoIj4iLCBncm91cE5hbWVTdGFydEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChncm91cE5hbWVFbmRJbmRleCAhPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsZXQgZ3JvdXBOYW1lID0gcmVwbGFjZW1lbnQuc3Vic3RyaW5nKGdyb3VwTmFtZVN0
YXJ0SW5kZXgsIGdyb3VwTmFtZUVuZEluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBsZXQgY2FwdHVyZSA9IG5hbWVkQ2FwdHVyZXNbZ3JvdXBOYW1lXTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoY2FwdHVyZSAhPT0gQHVuZGVmaW5lZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgQHRvU3RyaW5nKGNhcHR1cmUpOwor
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBncm91cE5hbWVFbmRJbmRleCAr
IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSByZXN1bHQgKyAiJDwiOworICAgICAgICAgICAgICAgICAgICBzdGFydCsrOworICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgICAgICAgICBsZXQgY2hDb2RlID0gY2guY2hhckNvZGVBdCgwKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoQ29kZSA+PSAweDMwICYmIGNoQ29kZSA8PSAweDM5KSB7CkBAIC0zMjUs
MTYgKzM0MywyNCBAQCBmdW5jdGlvbiByZXBsYWNlKHN0ckFyZywgcmVwbGFjZSkKICAgICAgICAg
fQogCiAgICAgICAgIGxldCByZXBsYWNlbWVudDsKKyAgICAgICAgbGV0IG5hbWVkQ2FwdHVyZXMg
PSByZXN1bHQuZ3JvdXBzOwogCiAgICAgICAgIGlmIChmdW5jdGlvbmFsUmVwbGFjZSkgewogICAg
ICAgICAgICAgbGV0IHJlcGxhY2VyQXJncyA9IFsgbWF0Y2hlZCBdLmNvbmNhdChjYXB0dXJlcyk7
CiAgICAgICAgICAgICByZXBsYWNlckFyZ3MuQHB1c2gocG9zaXRpb24pOwogICAgICAgICAgICAg
cmVwbGFjZXJBcmdzLkBwdXNoKHN0cik7CiAKKyAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVz
ICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIHJlcGxhY2VyQXJncy5AcHVzaChuYW1l
ZENhcHR1cmVzKTsKKwogICAgICAgICAgICAgbGV0IHJlcGxWYWx1ZSA9IHJlcGxhY2UuQGFwcGx5
KEB1bmRlZmluZWQsIHJlcGxhY2VyQXJncyk7CiAgICAgICAgICAgICByZXBsYWNlbWVudCA9IEB0
b1N0cmluZyhyZXBsVmFsdWUpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHJlcGxhY2Vt
ZW50ID0gZ2V0U3Vic3RpdHV0aW9uKG1hdGNoZWQsIHN0ciwgcG9zaXRpb24sIGNhcHR1cmVzLCBy
ZXBsYWNlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChuYW1lZENhcHR1cmVz
ICE9PSBAdW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIG5hbWVkQ2FwdHVyZXMgPSBAdG9PYmpl
Y3QobmFtZWRDYXB0dXJlcywgIlJlZ0V4cC5wcm90b3R5cGVbU3ltYm9sLnJlcGxhY2VdIHJlcXVp
cmVzICdncm91cHMnIHByb3BlcnR5IG9mIGEgbWF0Y2ggbm90IGJlIG51bGwiKTsKKworICAgICAg
ICAgICAgcmVwbGFjZW1lbnQgPSBnZXRTdWJzdGl0dXRpb24obWF0Y2hlZCwgc3RyLCBwb3NpdGlv
biwgY2FwdHVyZXMsIG5hbWVkQ2FwdHVyZXMsIHJlcGxhY2UpOworICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHBvc2l0aW9uID49IG5leHRTb3VyY2VQb3NpdGlvbiAmJiBwb3NpdGlvbiA+PSBsYXN0
UG9zaXRpb24pIHsKICAgICAgICAgICAgIGFjY3VtdWxhdGVkUmVzdWx0ID0gYWNjdW11bGF0ZWRS
ZXN1bHQgKyBzdHIuc3Vic3RyaW5nKG5leHRTb3VyY2VQb3NpdGlvbiwgcG9zaXRpb24pICsgcmVw
bGFjZW1lbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>