<?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>213255</bug_id>
          
          <creation_ts>2020-06-16 10:58:40 -0700</creation_ts>
          <short_desc>Add a shiftAndAdd() emitter in AssemblyHelpers.</short_desc>
          <delta_ts>2020-06-17 11:40:05 -0700</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>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>
          
          <blocked>213071</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</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>1663164</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-16 10:58:40 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663375</commentid>
    <comment_count>1</comment_count>
      <attachid>402078</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-16 21:39:36 -0700</bug_when>
    <thetext>Created attachment 402078
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663383</commentid>
    <comment_count>2</comment_count>
      <attachid>402081</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-16 23:05:31 -0700</bug_when>
    <thetext>Created attachment 402081
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663470</commentid>
    <comment_count>3</comment_count>
      <attachid>402081</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-06-17 07:38:29 -0700</bug_when>
    <thetext>Comment on attachment 402081
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663494</commentid>
    <comment_count>4</comment_count>
      <attachid>402081</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-17 08:34:04 -0700</bug_when>
    <thetext>Comment on attachment 402081
proposed patch.

Thanks for the review.  Landing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663503</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-17 08:59:53 -0700</bug_when>
    <thetext>Committed r263151: &lt;https://trac.webkit.org/changeset/263151&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402081.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663504</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-17 09:00:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/64450207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663622</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-06-17 11:40:05 -0700</bug_when>
    <thetext>Also landed r263173: &lt;http://trac.webkit.org/r263173&gt; to unbreak the CLoop build.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402078</attachid>
            <date>2020-06-16 21:39:36 -0700</date>
            <delta_ts>2020-06-16 22:45:03 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-213255.patch</filename>
            <type>text/plain</type>
            <size>17438</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYzMTM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDIwLTA2LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgU2NhbGU6OlRpbWVzMTYgdGhydSBTY2FsZTo6VGltZXMyRyB0byBnZXRF
ZmZlY3RpdmVBZGRyZXNzKCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMTMyNTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGFzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmg6CisgICAgICAg
ICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk02NDo6Z2V0RWZmZWN0aXZlQWRkcmVzcyk6CisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
WDg2Q29tbW9uOjp4ODZMZWEzMik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2XzY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0Ojp4ODZMZWE2NCk6
CisgICAgICAgICogYXNzZW1ibGVyL3Rlc3RtYXNtLmNwcDoKKyAgICAgICAgKGRvdWJsZU9wZXJh
bmRzKToKKyAgICAgICAgKGZsb2F0T3BlcmFuZHMpOgorICAgICAgICAoaW50MzJPcGVyYW5kcyk6
CisgICAgICAgIChpbnQ2NE9wZXJhbmRzKToKKyAgICAgICAgKEpTQzo6dGVzdEdldEVmZmVjdGl2
ZUFkZHJlc3MpOgorICAgICAgICAoSlNDOjpydW4pOgorICAgICAgICAoSlNDOjpkb3VibGVPcGVy
YW5kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmZsb2F0T3BlcmFuZHMpOiBEZWxldGVkLgor
ICAgICAgICAoSlNDOjppbnQzMk9wZXJhbmRzKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6aW50
NjRPcGVyYW5kcyk6IERlbGV0ZWQuCisKIDIwMjAtMDYtMTYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBDaGVjayBOdWxsU2V0dGVyRnVuY3Rpb24g
dW5kZXIgc3RyaWN0LW1vZGUgY29udGV4dCBzaW5jZSBzdHJ1Y3R1cmUgLyBQcm9wZXJ0eUNvbmRp
dGlvbiBhcmUgdW5hd2FyZSBvZiB0aGlzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24g
MjYzMTMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3Jv
QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA4LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTYsMTAgKzExNiwzOCBAQCBwdWJsaWM6
CiAgICAgLy8gZGVzY3JpYmluZyBpbW1lZGlhdGUgIGFuZCBtZW1vcnkgb3BlcmFuZHMgdG8gdGhl
IGluc3RydWN0aW9ucyB0byBiZSBwbGFudGVkLgogCiAgICAgZW51bSBTY2FsZSB7Ci0gICAgICAg
IFRpbWVzT25lLAotICAgICAgICBUaW1lc1R3bywKLSAgICAgICAgVGltZXNGb3VyLAotICAgICAg
ICBUaW1lc0VpZ2h0LAorICAgICAgICBUaW1lc09uZSwgICAvLyAxIDw8IDAKKyAgICAgICAgVGlt
ZXNUd28sICAgLy8gMSA8PCAxCisgICAgICAgIFRpbWVzRm91ciwgIC8vIDEgPDwgMgorICAgICAg
ICBUaW1lc0VpZ2h0LCAvLyAxIDw8IDMKKyAgICAgICAgVGltZXMxNiwgICAgLy8gMSA8PCA0Cisg
ICAgICAgIFRpbWVzMzIsICAgIC8vIDEgPDwgNQorICAgICAgICBUaW1lczY0LCAgICAvLyAxIDw8
IDYKKyAgICAgICAgVGltZXMxMjgsICAgLy8gMSA8PCA3CisgICAgICAgIFRpbWVzMjU2LCAgIC8v
IDEgPDwgOAorICAgICAgICBUaW1lczUxMiwgICAvLyAxIDw8IDkKKyAgICAgICAgVGltZXMxSywg
ICAgLy8gMSA8PCAxMAorICAgICAgICBUaW1lczJLLCAgICAvLyAxIDw8IDExCisgICAgICAgIFRp
bWVzNEssICAgIC8vIDEgPDwgMTIKKyAgICAgICAgVGltZXM4SywgICAgLy8gMSA8PCAxMworICAg
ICAgICBUaW1lczE2SywgICAvLyAxIDw8IDE0CisgICAgICAgIFRpbWVzMzJLLCAgIC8vIDEgPDwg
MTUKKyAgICAgICAgVGltZXM2NEssICAgLy8gMSA8PCAxNgorICAgICAgICBUaW1lczEyOEssICAv
LyAxIDw8IDE3CisgICAgICAgIFRpbWVzMjU2SywgIC8vIDEgPDwgMTgKKyAgICAgICAgVGltZXM1
MTJLLCAgLy8gMSA8PCAxOQorICAgICAgICBUaW1lczFNLCAgICAvLyAxIDw8IDIwCisgICAgICAg
IFRpbWVzMk0sICAgIC8vIDEgPDwgMjEKKyAgICAgICAgVGltZXM0TSwgICAgLy8gMSA8PCAyMgor
ICAgICAgICBUaW1lczhNLCAgICAvLyAxIDw8IDIzCisgICAgICAgIFRpbWVzMTZNLCAgIC8vIDEg
PDwgMjQKKyAgICAgICAgVGltZXMzMk0sICAgLy8gMSA8PCAyNQorICAgICAgICBUaW1lczY0TSwg
ICAvLyAxIDw8IDI2CisgICAgICAgIFRpbWVzMTI4TSwgIC8vIDEgPDwgMjcKKyAgICAgICAgVGlt
ZXMyNTZNLCAgLy8gMSA8PCAyOAorICAgICAgICBUaW1lczUxMk0sICAvLyAxIDw8IDI5CisgICAg
ICAgIFRpbWVzMUcsICAgIC8vIDEgPDwgMzAKKyAgICAgICAgVGltZXMyRywgICAgLy8gMSA8PCAz
MQogICAgICAgICBTY2FsZVB0ciA9IGlzQWRkcmVzczY0Qml0KCkgPyBUaW1lc0VpZ2h0IDogVGlt
ZXNGb3VyLAogICAgIH07CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNNjQuaAkocmV2aXNpb24gMjYzMTMyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MzIsOCArMTczMiwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBn
ZXRFZmZlY3RpdmVBZGRyZXNzKEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewogICAgICAgICBtX2Fzc2VtYmxlci5hZGQ8NjQ+KGRlc3QsIGFkZHJlc3MuYmFzZSwgYWRk
cmVzcy5pbmRleCwgQXNzZW1ibGVyOjpMU0wsIGFkZHJlc3Muc2NhbGUpOwotICAgICAgICBpZiAo
YWRkcmVzcy5vZmZzZXQpCisgICAgICAgIGlmIChhZGRyZXNzLm9mZnNldCkgeworICAgICAgICAg
ICAgaWYgKGRlc3QgPT0gZGF0YVRlbXBSZWdpc3RlciB8fCBhZGRyZXNzLmJhc2UgPT0gZGF0YVRl
bXBSZWdpc3RlciB8fCBhZGRyZXNzLmluZGV4ID09IGRhdGFUZW1wUmVnaXN0ZXIpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIWlzVUludDEyKGFkZHJlc3Mub2Zmc2V0KSAmJiAhaXNVSW50MTIoLWFk
ZHJlc3Mub2Zmc2V0KSkgeworICAgICAgICAgICAgICAgICAgICBwdXNoUGFpcihtZW1vcnlUZW1w
UmVnaXN0ZXIsIEFSTTY0UmVnaXN0ZXJzOjp4MCk7CisgICAgICAgICAgICAgICAgICAgIHNpZ25F
eHRlbmQzMlRvUHRyKFRydXN0ZWRJbW0zMihhZGRyZXNzLm9mZnNldCksIG1lbW9yeVRlbXBSZWdp
c3Rlcik7CisgICAgICAgICAgICAgICAgICAgIGFkZDY0KG1lbW9yeVRlbXBSZWdpc3RlciwgZGVz
dCk7CisgICAgICAgICAgICAgICAgICAgIHBvcFBhaXIobWVtb3J5VGVtcFJlZ2lzdGVyLCBBUk02
NFJlZ2lzdGVyczo6eDApOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKGFk
ZHJlc3Mub2Zmc2V0KSwgZGVzdCk7CisgICAgICAgIH0KICAgICB9CiAKICAgICAvLyBGbG9hdGlu
Zy1wb2ludCBvcGVyYXRpb25zOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAkocmV2aXNpb24gMjYz
MTMyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjI3LDYgKzIyNyw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgeDg2TGVhMzIoQmFzZUluZGV4IGluZGV4LCBSZWdpc3RlcklEIGRlc3QpCiAgICAg
eworICAgICAgICBBU1NFUlQoaW5kZXguaW5kZXggIT0gaW5kZXguYmFzZSk7CiAgICAgICAgIGlm
ICghaW5kZXguc2NhbGUgJiYgIWluZGV4Lm9mZnNldCkgewogICAgICAgICAgICAgaWYgKGluZGV4
LmJhc2UgPT0gZGVzdCkgewogICAgICAgICAgICAgICAgIGFkZDMyKGluZGV4LmluZGV4LCBkZXN0
KTsKQEAgLTIzNyw2ICsyMzgsMjYgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXguc2NhbGUgPiBUaW1l
c0VpZ2h0KSB7CisgICAgICAgICAgICBSZWdpc3RlcklEIGluZGV4U2NyYXRjaCA9IGRlc3Q7Cisg
ICAgICAgICAgICBib29sIG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlciA9IGZhbHNlOworICAg
ICAgICAgICAgaWYgKGluZGV4LmJhc2UgPT0gZGVzdCkgeworICAgICAgICAgICAgICAgIGluZGV4
U2NyYXRjaCA9IHNjcmF0Y2hSZWdpc3RlcigpOworICAgICAgICAgICAgICAgIGlmIChpbmRleC5i
YXNlID09IGluZGV4U2NyYXRjaCkgeworICAgICAgICAgICAgICAgICAgICBpbmRleFNjcmF0Y2gg
PSBpbmRleC5pbmRleDsKKyAgICAgICAgICAgICAgICAgICAgbmVlZFRvUHJlc2VydmVJbmRleFJl
Z2lzdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4LmluZGV4ID09
IGluZGV4U2NyYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgbmVlZFRvUHJlc2VydmVJbmRleFJl
Z2lzdGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBpZiAobmVlZFRvUHJlc2VydmVJbmRleFJl
Z2lzdGVyKQorICAgICAgICAgICAgICAgICAgICBwdXNoKGluZGV4LmluZGV4KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIG1vdmUoaW5kZXguaW5kZXgsIGluZGV4U2NyYXRjaCk7CisgICAg
ICAgICAgICBsc2hpZnQzMihUcnVzdGVkSW1tMzIoaW5kZXguc2NhbGUpLCBpbmRleFNjcmF0Y2gp
OworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGVhbF9tcihpbmRleC5vZmZzZXQsIGluZGV4LmJh
c2UsIGluZGV4U2NyYXRjaCwgMCwgZGVzdCk7CisgICAgICAgICAgICBpZiAobmVlZFRvUHJlc2Vy
dmVJbmRleFJlZ2lzdGVyKQorICAgICAgICAgICAgICAgIHBvcChpbmRleC5pbmRleCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgbV9hc3NlbWJsZXIubGVhbF9tcihp
bmRleC5vZmZzZXQsIGluZGV4LmJhc2UsIGluZGV4LmluZGV4LCBpbmRleC5zY2FsZSwgZGVzdCk7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2XzY0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCShyZXZpc2lvbiAyNjMxMzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3Niw2ICszNzYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHg4NkxlYTY0KEJh
c2VJbmRleCBpbmRleCwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKKyAgICAgICAgQVNTRVJUKGlu
ZGV4LmluZGV4ICE9IGluZGV4LmJhc2UpOwogICAgICAgICBpZiAoIWluZGV4LnNjYWxlICYmICFp
bmRleC5vZmZzZXQpIHsKICAgICAgICAgICAgIGlmIChpbmRleC5iYXNlID09IGRlc3QpIHsKICAg
ICAgICAgICAgICAgICBhZGQ2NChpbmRleC5pbmRleCwgZGVzdCk7CkBAIC0zODYsNiArMzg3LDI2
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KKyAgICAgICAgaWYgKGluZGV4LnNjYWxlID4gVGltZXNFaWdodCkgeworICAgICAgICAg
ICAgUmVnaXN0ZXJJRCBpbmRleFNjcmF0Y2ggPSBkZXN0OworICAgICAgICAgICAgYm9vbCBuZWVk
VG9QcmVzZXJ2ZUluZGV4UmVnaXN0ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIGlmIChpbmRleC5i
YXNlID09IGRlc3QpIHsKKyAgICAgICAgICAgICAgICBpbmRleFNjcmF0Y2ggPSBzY3JhdGNoUmVn
aXN0ZXIoKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXguYmFzZSA9PSBpbmRleFNjcmF0Y2gp
IHsKKyAgICAgICAgICAgICAgICAgICAgaW5kZXhTY3JhdGNoID0gaW5kZXguaW5kZXg7CisgICAg
ICAgICAgICAgICAgICAgIG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlciA9IHRydWU7CisgICAg
ICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleC5pbmRleCA9PSBpbmRleFNjcmF0Y2gpCisgICAg
ICAgICAgICAgICAgICAgIG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlciA9IHRydWU7CisgICAg
ICAgICAgICAgICAgaWYgKG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlcikKKyAgICAgICAgICAg
ICAgICAgICAgcHVzaChpbmRleC5pbmRleCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBt
b3ZlKGluZGV4LmluZGV4LCBpbmRleFNjcmF0Y2gpOworICAgICAgICAgICAgbHNoaWZ0NjQoVHJ1
c3RlZEltbTMyKGluZGV4LnNjYWxlKSwgaW5kZXhTY3JhdGNoKTsKKyAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLmxlYXFfbXIoaW5kZXgub2Zmc2V0LCBpbmRleC5iYXNlLCBpbmRleFNjcmF0Y2gsIDAs
IGRlc3QpOworICAgICAgICAgICAgaWYgKG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlcikKKyAg
ICAgICAgICAgICAgICBwb3AoaW5kZXguaW5kZXgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CiAgICAgICAgIG1fYXNzZW1ibGVyLmxlYXFfbXIoaW5kZXgub2Zmc2V0LCBpbmRleC5i
YXNlLCBpbmRleC5pbmRleCwgaW5kZXguc2NhbGUsIGRlc3QpOwogICAgIH0KIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDI2
MzEzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw4MSBAQAogLy8gV2UgZG9uJ3QgaGF2ZSBhIE5PX1JF
VFVSTl9EVUVfVE9fRVhJVCwgbm9yIHNob3VsZCB3ZS4gVGhhdCdzIHJpZGljdWxvdXMuCiBzdGF0
aWMgYm9vbCBoaWRkZW5UcnV0aEJlY2F1c2VOb1JldHVybklzU3R1cGlkKCkgeyByZXR1cm4gdHJ1
ZTsgfQogCitzdGF0aWMgVmVjdG9yPGRvdWJsZT4gZG91YmxlT3BlcmFuZHMoKQoreworICAgIHJl
dHVybiBWZWN0b3I8ZG91YmxlPiB7CisgICAgICAgIDAsCisgICAgICAgIC0wLAorICAgICAgICAx
LAorICAgICAgICAtMSwKKyAgICAgICAgNDIsCisgICAgICAgIC00MiwKKyAgICAgICAgc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0
czxkb3VibGU+OjptaW4oKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojps
b3dlc3QoKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAg
ICAgICAtc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgIH07Cit9
CisKKworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKK3N0YXRpYyBW
ZWN0b3I8ZmxvYXQ+IGZsb2F0T3BlcmFuZHMoKQoreworICAgIHJldHVybiBWZWN0b3I8ZmxvYXQ+
IHsKKyAgICAgICAgMCwKKyAgICAgICAgLTAsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAg
ICAgICA0MiwKKyAgICAgICAgLTQyLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0
Pjo6bWF4KCksCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSwKKyAg
ICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Omxvd2VzdCgpLAorICAgICAgICBzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVpZXRfTmFOKCksCisgICAgICAgIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpLAorICAgICAgICAtc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46OmluZmluaXR5KCksCisgICAgfTsKK30KKyNlbmRpZgorCitzdGF0aWMgVmVjdG9y
PGludDMyX3Q+IGludDMyT3BlcmFuZHMoKQoreworICAgIHJldHVybiBWZWN0b3I8aW50MzJfdD4g
eworICAgICAgICAwLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMiwKKyAgICAg
ICAgLTIsCisgICAgICAgIDQyLAorICAgICAgICAtNDIsCisgICAgICAgIDY0LAorICAgICAgICBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSwKKyAgICAgICAgc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQzMl90Pjo6bWluKCksCisgICAgfTsKK30KKworI2lmIENQVShYODZfNjQpIHx8
IENQVShBUk02NCkKK3N0YXRpYyBWZWN0b3I8aW50NjRfdD4gaW50NjRPcGVyYW5kcygpCit7Cisg
ICAgcmV0dXJuIFZlY3RvcjxpbnQ2NF90PiB7CisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAg
ICAgIC0xLAorICAgICAgICAyLAorICAgICAgICAtMiwKKyAgICAgICAgNDIsCisgICAgICAgIC00
MiwKKyAgICAgICAgNjQsCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1h
eCgpLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSwKKyAgICAg
ICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWF4KCksCisgICAgICAgIHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50NjRfdD46Om1pbigpLAorICAgIH07Cit9CisjZW5kaWYKKwogc3RhdGlj
IHZvaWQgdXNhZ2UoKQogewogICAgIGRhdGFMb2coIlVzYWdlOiB0ZXN0bWFzbSBbPGZpbHRlcj5d
XG4iKTsKQEAgLTIwNywxNiArMjgyLDkwIEBAIHZvaWQgdGVzdFNpbXBsZSgpCiAgICAgfSksIDQy
KTsKIH0KIAotdm9pZCB0ZXN0R2V0RWZmZWN0aXZlQWRkcmVzcyhzaXplX3QgcG9pbnRlciwgcHRy
ZGlmZl90IGxlbmd0aCwgaW50MzJfdCBvZmZzZXQsIENDYWxsSGVscGVyczo6U2NhbGUgc2NhbGUp
Cit2b2lkIHRlc3RHZXRFZmZlY3RpdmVBZGRyZXNzKCkKIHsKLSAgICBDSEVDS19FUShjb21waWxl
QW5kUnVuPHNpemVfdD4oWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgewotICAgICAgICBlbWl0RnVu
Y3Rpb25Qcm9sb2d1ZShqaXQpOwotICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihwb2ludGVyKSksIEdQUkluZm86OnJlZ1QwKTsK
LSAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJpdHdpc2VfY2Fz
dDx2b2lkKj4obGVuZ3RoKSksIEdQUkluZm86OnJlZ1QxKTsKLSAgICAgICAgaml0LmdldEVmZmVj
dGl2ZUFkZHJlc3MoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoR1BSSW5mbzo6cmVnVDAsIEdQUklu
Zm86OnJlZ1QxLCBzY2FsZSwgb2Zmc2V0KSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOwotICAg
ICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShqaXQpOwotICAgICAgICBqaXQucmV0KCk7Ci0gICAg
fSksIHBvaW50ZXIgKyBvZmZzZXQgKyAoc3RhdGljX2Nhc3Q8c2l6ZV90PigxKSA8PCBzdGF0aWNf
Y2FzdDxpbnQ+KHNjYWxlKSkgKiBsZW5ndGgpOworICAgIGNvbnN0ZXhwciBpbnRwdHJfdCBwb2lu
dGVyID0gMHgxMjM0YWJjZDsKKworICAgIGNvbnN0ZXhwciBDQ2FsbEhlbHBlcnM6OlNjYWxlIHNj
YWxlc1tdID0geworICAgICAgICBzdGF0aWNfY2FzdDxDQ2FsbEhlbHBlcnM6OlNjYWxlPigwKSwK
KyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSwgICAvLyAxIDw8IDAKKyAgICAgICAgQ0Nh
bGxIZWxwZXJzOjpUaW1lc1R3bywgICAvLyAxIDw8IDEKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpU
aW1lc0ZvdXIsICAvLyAxIDw8IDIKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0LCAv
LyAxIDw8IDMKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUaW1lczE2LCAgICAvLyAxIDw8IDQKKyAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpUaW1lczMyLCAgICAvLyAxIDw8IDUKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUaW1lczI1Nk0sICAvLyAxIDw8IDI4CisgICAgICAgIENDYWxsSGVscGVyczo6VGlt
ZXM1MTJNLCAgLy8gMSA8PCAyOQorICAgICAgICBDQ2FsbEhlbHBlcnM6OlRpbWVzMUcsICAgIC8v
IDEgPDwgMzAKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpUaW1lczJHLCAgICAvLyAxIDw8IDMxCisg
ICAgfTsKKworICAgIGVudW0gY2xhc3MgUmVnIHsKKyAgICAgICAgQXJndW1lbnRHUFIwLAorICAg
ICAgICBBcmd1bWVudEdQUjEsCisgICAgICAgIEFyZ3VtZW50R1BSMiwKKyAgICAgICAgQXJndW1l
bnRHUFIzLAorICAgICAgICBTY3JhdGNoR1BSCisgICAgfTsKKworICAgIGF1dG8gdGVzdCA9IFsm
XSAoaW50cHRyX3QgaW5kZXgsIENDYWxsSGVscGVyczo6U2NhbGUgc2NhbGUsIGludDMyX3Qgb2Zm
c2V0LCBSZWcgZGVzdFJlZywgUmVnIGJhc2VSZWcsIFJlZyBpbmRleFJlZykgeworICAgICAgICBh
dXRvIHRlc3QgPSBjb21waWxlKFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKKyAgICAgICAgICAg
IENDYWxsSGVscGVyczo6UmVnaXN0ZXJJRCBzY3JhdGNoR1BSID0gaml0LnNjcmF0Y2hSZWdpc3Rl
cigpOworCisgICAgICAgICAgICBhdXRvIHJlZ2lzdGVySURGb3JSZWcgPSBbPV0gKFJlZyByZWcp
IC0+IENDYWxsSGVscGVyczo6UmVnaXN0ZXJJRCB7CisgICAgICAgICAgICAgICAgc3dpdGNoIChy
ZWcpIHsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZzo6QXJndW1lbnRHUFIwOiByZXR1cm4gR1BS
SW5mbzo6YXJndW1lbnRHUFIwOworICAgICAgICAgICAgICAgIGNhc2UgUmVnOjpBcmd1bWVudEdQ
UjE6IHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjE7CisgICAgICAgICAgICAgICAgY2FzZSBS
ZWc6OkFyZ3VtZW50R1BSMjogcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMjsKKyAgICAgICAg
ICAgICAgICBjYXNlIFJlZzo6QXJndW1lbnRHUFIzOiByZXR1cm4gR1BSSW5mbzo6YXJndW1lbnRH
UFIzOworICAgICAgICAgICAgICAgIGNhc2UgUmVnOjpTY3JhdGNoR1BSOiByZXR1cm4gc2NyYXRj
aEdQUjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIENDYWxsSGVscGVy
czo6UmVnaXN0ZXJJRCBkZXN0R1BSID0gcmVnaXN0ZXJJREZvclJlZyhkZXN0UmVnKTsKKyAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6UmVnaXN0ZXJJRCBiYXNlR1BSID0gcmVnaXN0ZXJJREZvclJl
ZyhiYXNlUmVnKTsKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6UmVnaXN0ZXJJRCBpbmRleEdQ
UiA9IHJlZ2lzdGVySURGb3JSZWcoaW5kZXhSZWcpOworCisgICAgICAgICAgICBlbWl0RnVuY3Rp
b25Qcm9sb2d1ZShqaXQpOworICAgICAgICAgICAgaml0LnB1c2hQYWlyKHNjcmF0Y2hHUFIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMyk7CisKKyAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nhc3Q8dm9pZCo+KHBvaW50ZXIpKSwgYmFzZUdQUik7
CisgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYml0d2lz
ZV9jYXN0PHZvaWQqPihpbmRleCkpLCBpbmRleEdQUik7CisgICAgICAgICAgICBqaXQuZ2V0RWZm
ZWN0aXZlQWRkcmVzcyhDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChiYXNlR1BSLCBpbmRleEdQUiwg
c2NhbGUsIG9mZnNldCksIGRlc3RHUFIpOworCisjaWYgRU5BQkxFKE1BU01fUFJPQkUpCisgICAg
ICAgICAgICBqaXQucHJvYmUoWz1dIChQcm9iZTo6Q29udGV4dCYgY29udGV4dCkgeworICAgICAg
ICAgICAgICAgIGlmIChiYXNlUmVnICE9IGRlc3RSZWcpCisgICAgICAgICAgICAgICAgICAgIENI
RUNLX0VRKGNvbnRleHQuZ3ByPGludHB0cl90PihiYXNlR1BSKSwgcG9pbnRlcik7CisgICAgICAg
ICAgICAgICAgaWYgKGluZGV4UmVnICE9IGRlc3RSZWcpCisgICAgICAgICAgICAgICAgICAgIENI
RUNLX0VRKGNvbnRleHQuZ3ByPGludHB0cl90PihpbmRleEdQUiksIGluZGV4KTsKKyAgICAgICAg
ICAgIH0pOworI2VuZGlmCisgICAgICAgICAgICBqaXQubW92ZShkZXN0R1BSLCBHUFJJbmZvOjpy
ZXR1cm5WYWx1ZUdQUik7CisKKyAgICAgICAgICAgIGppdC5wb3BQYWlyKHNjcmF0Y2hHUFIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgICAgICBlbWl0RnVuY3Rpb25FcGlsb2d1ZShq
aXQpOworICAgICAgICAgICAgaml0LnJldCgpOworICAgICAgICB9KTsKKworICAgICAgICBDSEVD
S19FUShpbnZva2U8aW50cHRyX3Q+KHRlc3QpLCBwb2ludGVyICsgb2Zmc2V0ICsgKHN0YXRpY19j
YXN0PGludHB0cl90PigxKSA8PCBzdGF0aWNfY2FzdDxpbnQ+KHNjYWxlKSkgKiBpbmRleCk7Cisg
ICAgfTsKKworICAgIGZvciAoYXV0byBpbmRleCA6IGludDMyT3BlcmFuZHMoKSkgeworICAgICAg
ICBmb3IgKGF1dG8gc2NhbGUgOiBzY2FsZXMpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byBvZmZz
ZXQgOiBpbnQzMk9wZXJhbmRzKCkpIHsKKyAgICAgICAgICAgICAgICB0ZXN0KGluZGV4LCBzY2Fs
ZSwgb2Zmc2V0LCBSZWc6OlNjcmF0Y2hHUFIsIFJlZzo6U2NyYXRjaEdQUiwgUmVnOjpBcmd1bWVu
dEdQUjMpOyAgICAgLy8gU2NlbmFyaW86IEJhc2VJbmRleCBkZXN0ID09IGJhc2UgPT0gc2NyYXRj
aFJlZ2lzdGVyLgorICAgICAgICAgICAgICAgIHRlc3QoaW5kZXgsIHNjYWxlLCBvZmZzZXQsIFJl
Zzo6QXJndW1lbnRHUFIyLCBSZWc6OkFyZ3VtZW50R1BSMiwgUmVnOjpBcmd1bWVudEdQUjMpOyAv
LyBTY2VuYXJpbzogQmFzZUluZGV4IGRlc3QgPT0gYmFzZSAhPSBzY3JhdGNoUmVnaXN0ZXIuCisg
ICAgICAgICAgICAgICAgdGVzdChpbmRleCwgc2NhbGUsIG9mZnNldCwgUmVnOjpTY3JhdGNoR1BS
LCBSZWc6OkFyZ3VtZW50R1BSMiwgUmVnOjpTY3JhdGNoR1BSKTsgICAgIC8vIFNjZW5hcmlvOiBC
YXNlSW5kZXggZGVzdCA9PSBpbmRleCA9PSBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAgICAg
ICAgdGVzdChpbmRleCwgc2NhbGUsIG9mZnNldCwgUmVnOjpBcmd1bWVudEdQUjMsIFJlZzo6QXJn
dW1lbnRHUFIyLCBSZWc6OkFyZ3VtZW50R1BSMyk7IC8vIFNjZW5hcmlvOiBCYXNlSW5kZXggZGVz
dCA9PSBpbmRleCAhPSBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAgICAgICAgdGVzdChpbmRl
eCwgc2NhbGUsIG9mZnNldCwgUmVnOjpBcmd1bWVudEdQUjEsIFJlZzo6QXJndW1lbnRHUFIyLCBS
ZWc6OkFyZ3VtZW50R1BSMyk7IC8vIFNjZW5hcmlvOiBhbGwgZGlmZmVyZW50IHJlZ2lzdGVycywg
bm8gc2NyYXRjaFJlZ2lzdGVyLgorICAgICAgICAgICAgICAgIHRlc3QoaW5kZXgsIHNjYWxlLCBv
ZmZzZXQsIFJlZzo6U2NyYXRjaEdQUiwgUmVnOjpBcmd1bWVudEdQUjIsIFJlZzo6QXJndW1lbnRH
UFIzKTsgICAvLyBTY2VuYXJpbzogYWxsIGRpZmZlcmVudCByZWdpc3RlcnMsIGRlc3QgPT0gc2Ny
YXRjaFJlZ2lzdGVyLgorICAgICAgICAgICAgICAgIHRlc3QoaW5kZXgsIHNjYWxlLCBvZmZzZXQs
IFJlZzo6QXJndW1lbnRHUFIxLCBSZWc6OlNjcmF0Y2hHUFIsIFJlZzo6QXJndW1lbnRHUFIzKTsg
ICAvLyBTY2VuYXJpbzogYWxsIGRpZmZlcmVudCByZWdpc3RlcnMsIGJhc2UgPT0gc2NyYXRjaFJl
Z2lzdGVyLgorICAgICAgICAgICAgICAgIHRlc3QoaW5kZXgsIHNjYWxlLCBvZmZzZXQsIFJlZzo6
QXJndW1lbnRHUFIxLCBSZWc6OkFyZ3VtZW50R1BSMiwgUmVnOjpTY3JhdGNoR1BSKTsgICAvLyBT
Y2VuYXJpbzogYWxsIGRpZmZlcmVudCByZWdpc3RlcnMsIGluZGV4ID09IHNjcmF0Y2hSZWdpc3Rl
ci4KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIH0KIAogLy8gYnJhbmNoVHJ1bmNh
dGVEb3VibGVUb0ludDMyKCksIHdoZW4gZW5jb3VudGVyaW5nIEluZmluaXR5LCAtSW5maW5pdHkg
b3IgYQpAQCAtMjU3LDgyICs0MDYsNiBAQCB2b2lkIHRlc3RCcmFuY2hUcnVuY2F0ZURvdWJsZVRv
SW50MzIoZG91CiAgICAgfSksIGV4cGVjdGVkKTsKIH0KIAotCi1zdGF0aWMgVmVjdG9yPGRvdWJs
ZT4gZG91YmxlT3BlcmFuZHMoKQotewotICAgIHJldHVybiBWZWN0b3I8ZG91YmxlPiB7Ci0gICAg
ICAgIDAsCi0gICAgICAgIC0wLAotICAgICAgICAxLAotICAgICAgICAtMSwKLSAgICAgICAgNDIs
Ci0gICAgICAgIC00MiwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgo
KSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptaW4oKSwKLSAgICAgICAg
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpsb3dlc3QoKSwKLSAgICAgICAgc3RkOjpudW1l
cmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjppbmZpbml0eSgpLAotICAgICAgICAtc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjppbmZpbml0eSgpLAotICAgIH07Ci19Ci0KLQotI2lmIENQVShYODYpIHx8IENQVShY
ODZfNjQpIHx8IENQVShBUk02NCkKLXN0YXRpYyBWZWN0b3I8ZmxvYXQ+IGZsb2F0T3BlcmFuZHMo
KQotewotICAgIHJldHVybiBWZWN0b3I8ZmxvYXQ+IHsKLSAgICAgICAgMCwKLSAgICAgICAgLTAs
Ci0gICAgICAgIDEsCi0gICAgICAgIC0xLAotICAgICAgICA0MiwKLSAgICAgICAgLTQyLAotICAg
ICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCksCi0gICAgICAgIHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46Omxvd2VzdCgpLAotICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6cXVp
ZXRfTmFOKCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgp
LAotICAgICAgICAtc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5KCksCi0gICAg
fTsKLX0KLSNlbmRpZgotCi1zdGF0aWMgVmVjdG9yPGludDMyX3Q+IGludDMyT3BlcmFuZHMoKQot
ewotICAgIHJldHVybiBWZWN0b3I8aW50MzJfdD4gewotICAgICAgICAwLAotICAgICAgICAxLAot
ICAgICAgICAtMSwKLSAgICAgICAgMiwKLSAgICAgICAgLTIsCi0gICAgICAgIDQyLAotICAgICAg
ICAtNDIsCi0gICAgICAgIDY0LAotICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptYXgoKSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCksCi0g
ICAgfTsKLX0KLQotI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKLXN0YXRpYyBWZWN0b3I8
aW50NjRfdD4gaW50NjRPcGVyYW5kcygpCi17Ci0gICAgcmV0dXJuIFZlY3RvcjxpbnQ2NF90PiB7
Ci0gICAgICAgIDAsCi0gICAgICAgIDEsCi0gICAgICAgIC0xLAotICAgICAgICAyLAotICAgICAg
ICAtMiwKLSAgICAgICAgNDIsCi0gICAgICAgIC00MiwKLSAgICAgICAgNjQsCi0gICAgICAgIHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLAotICAgICAgICBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyX3Q+OjptaW4oKSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2
NF90Pjo6bWF4KCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1pbigp
LAotICAgIH07Ci19Ci0jZW5kaWYKLQogI2lmIENQVShYODZfNjQpCiB2b2lkIHRlc3RCcmFuY2hU
ZXN0Qml0MzJSZWdSZWcoKQogewpAQCAtMjQ3MSw4ICsyNTQ0LDcgQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogICAgIH07CiAKICAgICBSVU4odGVzdFNpbXBsZSgpKTsKLSAgICBSVU4o
dGVzdEdldEVmZmVjdGl2ZUFkZHJlc3MoMHhmZjAwLCA0MiwgOCwgQ0NhbGxIZWxwZXJzOjpUaW1l
c0VpZ2h0KSk7Ci0gICAgUlVOKHRlc3RHZXRFZmZlY3RpdmVBZGRyZXNzKDB4ZmYwMCwgLTIwMCwg
LTMwMCwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSk7CisgICAgUlVOKHRlc3RHZXRFZmZlY3Rp
dmVBZGRyZXNzKCkpOwogICAgIFJVTih0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKDAs
IDApKTsKICAgICBSVU4odGVzdEJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMig0MiwgNDIpKTsK
ICAgICBSVU4odGVzdEJyYW5jaFRydW5jYXRlRG91YmxlVG9JbnQzMig0Mi43LCA0MikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402081</attachid>
            <date>2020-06-16 23:05:31 -0700</date>
            <delta_ts>2020-06-17 08:59:53 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-213255.patch</filename>
            <type>text/plain</type>
            <size>10983</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYzMTM2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDIwLTA2LTE2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgYSBzaGlmdEFuZEFkZCgpIGVtaXR0ZXIgaW4gQXNzZW1ibHlIZWxwZXJzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMjU1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdm9pZCBzaGlmdEFuZEFkZChS
ZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIHVpbnQ4X3Qgc2hpZnQsIFJlZ2lzdGVy
SUQgZGVzdCwgT3B0aW9uYWw8UmVnaXN0ZXJJRD4gPSB7IH0pOworCisgICAgICAgIEVtaXRzIGNv
ZGUgdG8gY29tcHV0ZTogZGVzdCA9IGJhc2UgKyBpbmRleCA8PCBzaGlmdC4KKworICAgICAgICAq
IGFzc2VtYmxlci90ZXN0bWFzbS5jcHA6CisgICAgICAgIChkb3VibGVPcGVyYW5kcyk6CisgICAg
ICAgIChmbG9hdE9wZXJhbmRzKToKKyAgICAgICAgKGludDMyT3BlcmFuZHMpOgorICAgICAgICAo
aW50NjRPcGVyYW5kcyk6CisgICAgICAgIChKU0M6OnRlc3RTaGlmdEFuZEFkZCk6CisgICAgICAg
IChKU0M6OnJ1bik6CisgICAgICAgIChKU0M6OmRvdWJsZU9wZXJhbmRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKEpTQzo6ZmxvYXRPcGVyYW5kcyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OmludDMy
T3BlcmFuZHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjppbnQ2NE9wZXJhbmRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkFzc2Vt
Ymx5SGVscGVyczo6c2hpZnRBbmRBZGQpOgorCiAyMDIwLTA2LTE2ICBZdXN1a2UgU3V6dWtpICA8
eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQ2hlY2sgTnVsbFNldHRlckZ1bmN0
aW9uIHVuZGVyIHN0cmljdC1tb2RlIGNvbnRleHQgc2luY2Ugc3RydWN0dXJlIC8gUHJvcGVydHlD
b25kaXRpb24gYXJlIHVuYXdhcmUgb2YgdGhpcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDI2MzEzMikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw2ICs0Niw4MSBAQAogLy8gV2UgZG9uJ3QgaGF2ZSBhIE5PX1JFVFVSTl9EVUVfVE9fRVhJVCwg
bm9yIHNob3VsZCB3ZS4gVGhhdCdzIHJpZGljdWxvdXMuCiBzdGF0aWMgYm9vbCBoaWRkZW5UcnV0
aEJlY2F1c2VOb1JldHVybklzU3R1cGlkKCkgeyByZXR1cm4gdHJ1ZTsgfQogCitzdGF0aWMgVmVj
dG9yPGRvdWJsZT4gZG91YmxlT3BlcmFuZHMoKQoreworICAgIHJldHVybiBWZWN0b3I8ZG91Ymxl
PiB7CisgICAgICAgIDAsCisgICAgICAgIC0wLAorICAgICAgICAxLAorICAgICAgICAtMSwKKyAg
ICAgICAgNDIsCisgICAgICAgIC00MiwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3Vi
bGU+OjptYXgoKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptaW4oKSwK
KyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpsb3dlc3QoKSwKKyAgICAgICAg
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSwKKyAgICAgICAgc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgICAgICAtc3RkOjpudW1lcmlj
X2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpLAorICAgIH07Cit9CisKKworI2lmIENQVShYODYp
IHx8IENQVShYODZfNjQpIHx8IENQVShBUk02NCkKK3N0YXRpYyBWZWN0b3I8ZmxvYXQ+IGZsb2F0
T3BlcmFuZHMoKQoreworICAgIHJldHVybiBWZWN0b3I8ZmxvYXQ+IHsKKyAgICAgICAgMCwKKyAg
ICAgICAgLTAsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICA0MiwKKyAgICAgICAg
LTQyLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCksCisgICAgICAg
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSwKKyAgICAgICAgc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46Omxvd2VzdCgpLAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6cXVpZXRfTmFOKCksCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpp
bmZpbml0eSgpLAorICAgICAgICAtc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OmluZmluaXR5
KCksCisgICAgfTsKK30KKyNlbmRpZgorCitzdGF0aWMgVmVjdG9yPGludDMyX3Q+IGludDMyT3Bl
cmFuZHMoKQoreworICAgIHJldHVybiBWZWN0b3I8aW50MzJfdD4geworICAgICAgICAwLAorICAg
ICAgICAxLAorICAgICAgICAtMSwKKyAgICAgICAgMiwKKyAgICAgICAgLTIsCisgICAgICAgIDQy
LAorICAgICAgICAtNDIsCisgICAgICAgIDY0LAorICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptYXgoKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6
bWluKCksCisgICAgfTsKK30KKworI2lmIENQVShYODZfNjQpIHx8IENQVShBUk02NCkKK3N0YXRp
YyBWZWN0b3I8aW50NjRfdD4gaW50NjRPcGVyYW5kcygpCit7CisgICAgcmV0dXJuIFZlY3Rvcjxp
bnQ2NF90PiB7CisgICAgICAgIDAsCisgICAgICAgIDEsCisgICAgICAgIC0xLAorICAgICAgICAy
LAorICAgICAgICAtMiwKKyAgICAgICAgNDIsCisgICAgICAgIC00MiwKKyAgICAgICAgNjQsCisg
ICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpLAorICAgICAgICBzdGQ6
Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSwKKyAgICAgICAgc3RkOjpudW1lcmljX2xp
bWl0czxpbnQ2NF90Pjo6bWF4KCksCisgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRf
dD46Om1pbigpLAorICAgIH07Cit9CisjZW5kaWYKKwogc3RhdGljIHZvaWQgdXNhZ2UoKQogewog
ICAgIGRhdGFMb2coIlVzYWdlOiB0ZXN0bWFzbSBbPGZpbHRlcj5dXG4iKTsKQEAgLTI1Nyw4MiAr
MzMyLDYgQEAgdm9pZCB0ZXN0QnJhbmNoVHJ1bmNhdGVEb3VibGVUb0ludDMyKGRvdQogICAgIH0p
LCBleHBlY3RlZCk7CiB9CiAKLQotc3RhdGljIFZlY3Rvcjxkb3VibGU+IGRvdWJsZU9wZXJhbmRz
KCkKLXsKLSAgICByZXR1cm4gVmVjdG9yPGRvdWJsZT4gewotICAgICAgICAwLAotICAgICAgICAt
MCwKLSAgICAgICAgMSwKLSAgICAgICAgLTEsCi0gICAgICAgIDQyLAotICAgICAgICAtNDIsCi0g
ICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWF4KCksCi0gICAgICAgIHN0ZDo6
bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6bWluKCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6bG93ZXN0KCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5m
aW5pdHkoKSwKLSAgICAgICAgLXN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6aW5maW5pdHko
KSwKLSAgICB9OwotfQotCi0KLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJN
NjQpCi1zdGF0aWMgVmVjdG9yPGZsb2F0PiBmbG9hdE9wZXJhbmRzKCkKLXsKLSAgICByZXR1cm4g
VmVjdG9yPGZsb2F0PiB7Ci0gICAgICAgIDAsCi0gICAgICAgIC0wLAotICAgICAgICAxLAotICAg
ICAgICAtMSwKLSAgICAgICAgNDIsCi0gICAgICAgIC00MiwKLSAgICAgICAgc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46Om1heCgpLAotICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0
Pjo6bWluKCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSwK
LSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46OnF1aWV0X05hTigpLAotICAgICAg
ICBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6aW5maW5pdHkoKSwKLSAgICAgICAgLXN0ZDo6
bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjppbmZpbml0eSgpLAotICAgIH07Ci19Ci0jZW5kaWYKLQot
c3RhdGljIFZlY3RvcjxpbnQzMl90PiBpbnQzMk9wZXJhbmRzKCkKLXsKLSAgICByZXR1cm4gVmVj
dG9yPGludDMyX3Q+IHsKLSAgICAgICAgMCwKLSAgICAgICAgMSwKLSAgICAgICAgLTEsCi0gICAg
ICAgIDIsCi0gICAgICAgIC0yLAotICAgICAgICA0MiwKLSAgICAgICAgLTQyLAotICAgICAgICA2
NCwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCksCi0gICAgICAg
IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpLAotICAgIH07Ci19Ci0KLSNpZiBD
UFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpCi1zdGF0aWMgVmVjdG9yPGludDY0X3Q+IGludDY0T3Bl
cmFuZHMoKQotewotICAgIHJldHVybiBWZWN0b3I8aW50NjRfdD4gewotICAgICAgICAwLAotICAg
ICAgICAxLAotICAgICAgICAtMSwKLSAgICAgICAgMiwKLSAgICAgICAgLTIsCi0gICAgICAgIDQy
LAotICAgICAgICAtNDIsCi0gICAgICAgIDY0LAotICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRz
PGludDMyX3Q+OjptYXgoKSwKLSAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6
bWluKCksCi0gICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpLAotICAg
ICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptaW4oKSwKLSAgICB9OwotfQotI2Vu
ZGlmCi0KICNpZiBDUFUoWDg2XzY0KQogdm9pZCB0ZXN0QnJhbmNoVGVzdEJpdDMyUmVnUmVnKCkK
IHsKQEAgLTY1OSw2ICs2NTgsNzYgQEAgdm9pZCB0ZXN0Q291bnRUcmFpbGluZ1plcm9zNjRXaXRo
b3V0TnVsbAogICAgIHRlc3RDb3VudFRyYWlsaW5nWmVyb3M2NEltcGwod29yZENhbkJlWmVybyk7
CiB9CiAKK3ZvaWQgdGVzdFNoaWZ0QW5kQWRkKCkKK3sKKyAgICBjb25zdGV4cHIgaW50cHRyX3Qg
YmFzZVBvaW50ZXIgPSAweDEyMzRhYmNkOworCisgICAgZW51bSBjbGFzcyBSZWcgeworICAgICAg
ICBBcmd1bWVudEdQUjAsCisgICAgICAgIEFyZ3VtZW50R1BSMSwKKyAgICAgICAgQXJndW1lbnRH
UFIyLAorICAgICAgICBBcmd1bWVudEdQUjMsCisgICAgICAgIFNjcmF0Y2hHUFIKKyAgICB9Owor
CisgICAgYXV0byB0ZXN0ID0gWyZdIChpbnRwdHJfdCBpbmRleCwgdWludDhfdCBzaGlmdCwgUmVn
IGRlc3RSZWcsIFJlZyBiYXNlUmVnLCBSZWcgaW5kZXhSZWcpIHsKKyAgICAgICAgYXV0byB0ZXN0
ID0gY29tcGlsZShbPV0gKENDYWxsSGVscGVycyYgaml0KSB7CisgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OlJlZ2lzdGVySUQgc2NyYXRjaEdQUiA9IGppdC5zY3JhdGNoUmVnaXN0ZXIoKTsKKwor
ICAgICAgICAgICAgYXV0byByZWdpc3RlcklERm9yUmVnID0gWz1dIChSZWcgcmVnKSAtPiBDQ2Fs
bEhlbHBlcnM6OlJlZ2lzdGVySUQgeworICAgICAgICAgICAgICAgIHN3aXRjaCAocmVnKSB7Cisg
ICAgICAgICAgICAgICAgY2FzZSBSZWc6OkFyZ3VtZW50R1BSMDogcmV0dXJuIEdQUkluZm86OmFy
Z3VtZW50R1BSMDsKKyAgICAgICAgICAgICAgICBjYXNlIFJlZzo6QXJndW1lbnRHUFIxOiByZXR1
cm4gR1BSSW5mbzo6YXJndW1lbnRHUFIxOworICAgICAgICAgICAgICAgIGNhc2UgUmVnOjpBcmd1
bWVudEdQUjI6IHJldHVybiBHUFJJbmZvOjphcmd1bWVudEdQUjI7CisgICAgICAgICAgICAgICAg
Y2FzZSBSZWc6OkFyZ3VtZW50R1BSMzogcmV0dXJuIEdQUkluZm86OmFyZ3VtZW50R1BSMzsKKyAg
ICAgICAgICAgICAgICBjYXNlIFJlZzo6U2NyYXRjaEdQUjogcmV0dXJuIHNjcmF0Y2hHUFI7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgICAgICAgICB9OworCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlJlZ2lz
dGVySUQgZGVzdEdQUiA9IHJlZ2lzdGVySURGb3JSZWcoZGVzdFJlZyk7CisgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlJlZ2lzdGVySUQgYmFzZUdQUiA9IHJlZ2lzdGVySURGb3JSZWcoYmFzZVJl
Zyk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlJlZ2lzdGVySUQgaW5kZXhHUFIgPSByZWdp
c3RlcklERm9yUmVnKGluZGV4UmVnKTsKKworICAgICAgICAgICAgZW1pdEZ1bmN0aW9uUHJvbG9n
dWUoaml0KTsKKyAgICAgICAgICAgIGppdC5wdXNoUGFpcihzY3JhdGNoR1BSLCBHUFJJbmZvOjph
cmd1bWVudEdQUjMpOworCisgICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0
ZWRJbW1QdHIoYml0d2lzZV9jYXN0PHZvaWQqPihiYXNlUG9pbnRlcikpLCBiYXNlR1BSKTsKKyAg
ICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihiaXR3aXNlX2Nh
c3Q8dm9pZCo+KGluZGV4KSksIGluZGV4R1BSKTsKKyAgICAgICAgICAgIGppdC5zaGlmdEFuZEFk
ZChiYXNlR1BSLCBpbmRleEdQUiwgc2hpZnQsIGRlc3RHUFIpOworCisjaWYgRU5BQkxFKE1BU01f
UFJPQkUpCisgICAgICAgICAgICBqaXQucHJvYmUoWz1dIChQcm9iZTo6Q29udGV4dCYgY29udGV4
dCkgeworICAgICAgICAgICAgICAgIGlmIChiYXNlUmVnICE9IGRlc3RSZWcpCisgICAgICAgICAg
ICAgICAgICAgIENIRUNLX0VRKGNvbnRleHQuZ3ByPGludHB0cl90PihiYXNlR1BSKSwgYmFzZVBv
aW50ZXIpOworICAgICAgICAgICAgICAgIGlmIChpbmRleFJlZyAhPSBkZXN0UmVnKQorICAgICAg
ICAgICAgICAgICAgICBDSEVDS19FUShjb250ZXh0LmdwcjxpbnRwdHJfdD4oaW5kZXhHUFIpLCBp
bmRleCk7CisgICAgICAgICAgICB9KTsKKyNlbmRpZgorICAgICAgICAgICAgaml0Lm1vdmUoZGVz
dEdQUiwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIpOworCisgICAgICAgICAgICBqaXQucG9wUGFp
cihzY3JhdGNoR1BSLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOworICAgICAgICAgICAgZW1pdEZ1
bmN0aW9uRXBpbG9ndWUoaml0KTsKKyAgICAgICAgICAgIGppdC5yZXQoKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgQ0hFQ0tfRVEoaW52b2tlPGludHB0cl90Pih0ZXN0KSwgYmFzZVBvaW50ZXIg
KyAoaW5kZXggPDwgc2hpZnQpKTsKKyAgICB9OworCisgICAgZm9yIChhdXRvIGluZGV4IDogaW50
MzJPcGVyYW5kcygpKSB7CisgICAgICAgIGZvciAodWludDhfdCBzaGlmdCA9IDA7IHNoaWZ0IDwg
MzI7ICsrc2hpZnQpIHsKKyAgICAgICAgICAgIHRlc3QoaW5kZXgsIHNoaWZ0LCBSZWc6OlNjcmF0
Y2hHUFIsIFJlZzo6U2NyYXRjaEdQUiwgUmVnOjpBcmd1bWVudEdQUjMpOyAgICAgLy8gU2NlbmFy
aW86IGRlc3QgPT0gYmFzZSA9PSBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAgICB0ZXN0KGlu
ZGV4LCBzaGlmdCwgUmVnOjpBcmd1bWVudEdQUjIsIFJlZzo6QXJndW1lbnRHUFIyLCBSZWc6OkFy
Z3VtZW50R1BSMyk7IC8vIFNjZW5hcmlvOiBkZXN0ID09IGJhc2UgIT0gc2NyYXRjaFJlZ2lzdGVy
LgorICAgICAgICAgICAgdGVzdChpbmRleCwgc2hpZnQsIFJlZzo6U2NyYXRjaEdQUiwgUmVnOjpB
cmd1bWVudEdQUjIsIFJlZzo6U2NyYXRjaEdQUik7ICAgICAvLyBTY2VuYXJpbzogZGVzdCA9PSBp
bmRleCA9PSBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAgICB0ZXN0KGluZGV4LCBzaGlmdCwg
UmVnOjpBcmd1bWVudEdQUjMsIFJlZzo6QXJndW1lbnRHUFIyLCBSZWc6OkFyZ3VtZW50R1BSMyk7
IC8vIFNjZW5hcmlvOiBkZXN0ID09IGluZGV4ICE9IHNjcmF0Y2hSZWdpc3Rlci4KKyAgICAgICAg
ICAgIHRlc3QoaW5kZXgsIHNoaWZ0LCBSZWc6OkFyZ3VtZW50R1BSMSwgUmVnOjpBcmd1bWVudEdQ
UjIsIFJlZzo6QXJndW1lbnRHUFIzKTsgLy8gU2NlbmFyaW86IGFsbCBkaWZmZXJlbnQgcmVnaXN0
ZXJzLCBubyBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAgICB0ZXN0KGluZGV4LCBzaGlmdCwg
UmVnOjpTY3JhdGNoR1BSLCBSZWc6OkFyZ3VtZW50R1BSMiwgUmVnOjpBcmd1bWVudEdQUjMpOyAg
IC8vIFNjZW5hcmlvOiBhbGwgZGlmZmVyZW50IHJlZ2lzdGVycywgZGVzdCA9PSBzY3JhdGNoUmVn
aXN0ZXIuCisgICAgICAgICAgICB0ZXN0KGluZGV4LCBzaGlmdCwgUmVnOjpBcmd1bWVudEdQUjEs
IFJlZzo6U2NyYXRjaEdQUiwgUmVnOjpBcmd1bWVudEdQUjMpOyAgIC8vIFNjZW5hcmlvOiBhbGwg
ZGlmZmVyZW50IHJlZ2lzdGVycywgYmFzZSA9PSBzY3JhdGNoUmVnaXN0ZXIuCisgICAgICAgICAg
ICB0ZXN0KGluZGV4LCBzaGlmdCwgUmVnOjpBcmd1bWVudEdQUjEsIFJlZzo6QXJndW1lbnRHUFIy
LCBSZWc6OlNjcmF0Y2hHUFIpOyAgIC8vIFNjZW5hcmlvOiBhbGwgZGlmZmVyZW50IHJlZ2lzdGVy
cywgaW5kZXggPT0gc2NyYXRjaFJlZ2lzdGVyLgorICAgICAgICB9CisgICAgfQorfQorCiB2b2lk
IHRlc3RTdG9yZTY0SW1tNjRBZGRyZXNzUG9pbnRlcigpCiB7CiAgICAgYXV0byBkb1Rlc3QgPSBb
XSAoaW50NjRfdCB2YWx1ZSkgewpAQCAtMjUyNCw2ICsyNTkzLDcgQEAgdm9pZCBydW4oY29uc3Qg
Y2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0Q2xlYXJCaXRzNjRXaXRoTWFza1Rlcm5hcnkoKSk7
CiAgICAgUlVOKHRlc3RDb3VudFRyYWlsaW5nWmVyb3M2NCgpKTsKICAgICBSVU4odGVzdENvdW50
VHJhaWxpbmdaZXJvczY0V2l0aG91dE51bGxDaGVjaygpKTsKKyAgICBSVU4odGVzdFNoaWZ0QW5k
QWRkKCkpOwogICAgIFJVTih0ZXN0U3RvcmU2NEltbTY0QWRkcmVzc1BvaW50ZXIoKSk7CiAjZW5k
aWYKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5o
CShyZXZpc2lvbiAyNjMxMzIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NTgsNiArNTU4LDM3IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIHB1c2goYWRkcmVzcyk7CiAgICAgfQorCisgICAgLy8gZGVzdCA9IGJhc2Ug
KyBpbmRleCA8PCBzaGlmdC4KKyAgICB2b2lkIHNoaWZ0QW5kQWRkKFJlZ2lzdGVySUQgYmFzZSwg
UmVnaXN0ZXJJRCBpbmRleCwgdWludDhfdCBzaGlmdCwgUmVnaXN0ZXJJRCBkZXN0LCBPcHRpb25h
bDxSZWdpc3RlcklEPiBvcHRpb25hbFNjcmF0Y2ggPSB7IH0pCisgICAgeworICAgICAgICBBU1NF
UlQoc2hpZnQgPCAzMik7CisgICAgICAgIGlmIChzaGlmdCA8PSAzKSB7CisgICAgICAgICAgICB4
ODZMZWE2NChCYXNlSW5kZXgoYmFzZSwgaW5kZXgsIHN0YXRpY19jYXN0PFNjYWxlPihzaGlmdCkp
LCBkZXN0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIFJlZ2lz
dGVySUQgc2NyYXRjaCA9IGRlc3Q7CisgICAgICAgIGJvb2wgbmVlZFRvUHJlc2VydmVJbmRleFJl
Z2lzdGVyID0gZmFsc2U7CisgICAgICAgIGlmIChiYXNlID09IGRlc3QpIHsKKyAgICAgICAgICAg
IHNjcmF0Y2ggPSBvcHRpb25hbFNjcmF0Y2ggPyBvcHRpb25hbFNjcmF0Y2gudmFsdWUoKSA6IHNj
cmF0Y2hSZWdpc3RlcigpOworICAgICAgICAgICAgaWYgKGJhc2UgPT0gc2NyYXRjaCkgeworICAg
ICAgICAgICAgICAgIHNjcmF0Y2ggPSBpbmRleDsKKyAgICAgICAgICAgICAgICBuZWVkVG9QcmVz
ZXJ2ZUluZGV4UmVnaXN0ZXIgPSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9
PSBzY3JhdGNoKQorICAgICAgICAgICAgICAgIG5lZWRUb1ByZXNlcnZlSW5kZXhSZWdpc3RlciA9
IHRydWU7CisgICAgICAgICAgICBpZiAobmVlZFRvUHJlc2VydmVJbmRleFJlZ2lzdGVyKQorICAg
ICAgICAgICAgICAgIHB1c2goaW5kZXgpOworICAgICAgICB9CisKKyAgICAgICAgbW92ZShpbmRl
eCwgc2NyYXRjaCk7CisgICAgICAgIGxzaGlmdDY0KFRydXN0ZWRJbW0zMihzaGlmdCksIHNjcmF0
Y2gpOworICAgICAgICBtX2Fzc2VtYmxlci5sZWFxX21yKDAsIGJhc2UsIHNjcmF0Y2gsIDAsIGRl
c3QpOworCisgICAgICAgIGlmIChuZWVkVG9QcmVzZXJ2ZUluZGV4UmVnaXN0ZXIpCisgICAgICAg
ICAgICBwb3AoaW5kZXgpOworICAgIH0KKwogI2VuZGlmIC8vIENQVShYODZfNjQpCiAKICNpZiBD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KQpAQCAtNTk5LDYgKzYzMCwxNiBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBsb2FkUHRyKGFkZHJlc3MsIGxpbmtSZWdpc3Rlcik7CiAgICAgfQor
CisjaWYgQ1BVKEFSTTY0KQorICAgIC8vIGRlc3QgPSBiYXNlICsgaW5kZXggPDwgc2hpZnQuCisg
ICAgdm9pZCBzaGlmdEFuZEFkZChSZWdpc3RlcklEIGJhc2UsIFJlZ2lzdGVySUQgaW5kZXgsIHVp
bnQ4X3Qgc2hpZnQsIFJlZ2lzdGVySUQgZGVzdCwgT3B0aW9uYWw8UmVnaXN0ZXJJRD4gPSB7IH0p
CisgICAgeworICAgICAgICBBU1NFUlQoc2hpZnQgPCAzMik7CisgICAgICAgIEFTU0VSVChiYXNl
ICE9IGluZGV4KTsKKyAgICAgICAgZ2V0RWZmZWN0aXZlQWRkcmVzcyhCYXNlSW5kZXgoYmFzZSwg
aW5kZXgsIHN0YXRpY19jYXN0PFNjYWxlPihzaGlmdCkpLCBkZXN0KTsKKyAgICB9CisjZW5kaWYg
Ly8gQ1BVKEFSTTY0KQogI2VuZGlmCiAKICNpZiBDUFUoTUlQUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>