<?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>192615</bug_id>
          
          <creation_ts>2018-12-11 22:22:36 -0800</creation_ts>
          <short_desc>[BigInt] Simplify boolean context evaluation by leveraging JSString::offsetOfLength() == JSBigInt::offsetOfLength()</short_desc>
          <delta_ts>2018-12-12 00:39:48 -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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1487131</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-11 22:22:36 -0800</bug_when>
    <thetext>[BigInt] Simplify boolean context evaluation by leveraging JSString::offsetOfLength() == JSBigInt::offsetOfLength()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487132</commentid>
    <comment_count>1</comment_count>
      <attachid>357105</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-11 22:24:43 -0800</bug_when>
    <thetext>Created attachment 357105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487133</commentid>
    <comment_count>2</comment_count>
      <attachid>357106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-11 22:26:07 -0800</bug_when>
    <thetext>Created attachment 357106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487134</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-12-11 22:29:39 -0800</bug_when>
    <thetext>Attachment 357106 did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h:180:  JSBigInt_length is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487151</commentid>
    <comment_count>4</comment_count>
      <attachid>357106</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 00:21:25 -0800</bug_when>
    <thetext>Comment on attachment 357106
Patch

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

&gt; Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.cpp:64
&gt; +    , JSBigInt_length(JSString_length)

Can we add a new field called something like JSBigIntOrString_length then when we load from this in that scenario we can use that field?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487152</commentid>
    <comment_count>5</comment_count>
      <attachid>357106</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-12-12 00:22:05 -0800</bug_when>
    <thetext>Comment on attachment 357106
Patch

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

&gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:799
&gt; +    ASSERT(JSString::offsetOfLength() == JSBigInt::offsetOfLength());

Let’s do RELEASE_ASSERT. LLVM will remove this branch anyways</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487153</commentid>
    <comment_count>6</comment_count>
      <attachid>357106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-12 00:28:18 -0800</bug_when>
    <thetext>Comment on attachment 357106
Patch

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

Thank you!

&gt;&gt; Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.cpp:64
&gt;&gt; +    , JSBigInt_length(JSString_length)
&gt; 
&gt; Can we add a new field called something like JSBigIntOrString_length then when we load from this in that scenario we can use that field?

Sounds nice. Fixed.

&gt;&gt; Source/JavaScriptCore/jit/AssemblyHelpers.cpp:799
&gt;&gt; +    ASSERT(JSString::offsetOfLength() == JSBigInt::offsetOfLength());
&gt; 
&gt; Let’s do RELEASE_ASSERT. LLVM will remove this branch anyways

OK, changed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487156</commentid>
    <comment_count>7</comment_count>
      <attachid>357106</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-12 00:35:10 -0800</bug_when>
    <thetext>Comment on attachment 357106
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.cpp:64
&gt;&gt;&gt; +    , JSBigInt_length(JSString_length)
&gt;&gt; 
&gt;&gt; Can we add a new field called something like JSBigIntOrString_length then when we load from this in that scenario we can use that field?
&gt; 
&gt; Sounds nice. Fixed.

I added JSBigIntOrString_length field, and make JSString_length and JSBigInt_length as references&amp; to this abstract heap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487157</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-12 00:38:50 -0800</bug_when>
    <thetext>Committed r239099: &lt;https://trac.webkit.org/changeset/239099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487158</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-12 00:39:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/46654988&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357105</attachid>
            <date>2018-12-11 22:24:43 -0800</date>
            <delta_ts>2018-12-11 22:26:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192615-20181212152442.patch</filename>
            <type>text/plain</type>
            <size>12469</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDMwZjUzZWY4ZmE2ZDMxYjlkM2NmNmVlMWEyYjNmYjQwZDVhNzYyLi40ZjI2NzEyYzEzN2UzODhk
ZWFkNGNiZDNiNjE4NDUyZDQ1ODBkZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOC0xMi0xMSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIFtCaWdJbnRdIFNpbXBsaWZ5IGJvb2xlYW4gY29udGV4dCBl
dmFsdWF0aW9uIGJ5IGxldmVyYWdpbmcgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkgPT0gSlNC
aWdJbnQ6Om9mZnNldE9mTGVuZ3RoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEpTU3RyaW5nIGFuZCBKU0JpZ0ludCBoYXZlIHNpbWlsYXIgY29uY2Vw
dCBpbiB0ZXJtcyBvZiB0aGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIEJvdGggYXJlIGltbXV0
YWJsZSwgSlNDZWxscywgYW5kIGhhdmUgbGVuZ3RoIGluZm9ybWF0aW9uLiBtX2xlbmd0aCBpcyBs
b2NhdGVkCisgICAgICAgIGp1c3QgYWZ0ZXIgSlNDZWxsIGhlYWRlciBwYXJ0LCB3ZSBjYW4gZW5z
dXJlIGBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSA9PSBKU0JpZ0ludDo6b2Zmc2V0T2ZMZW5n
dGgoKWAsCisgICAgICAgIGFuZCBpdCBhbGxvd3MgdXMgdG8gb3B0aW1pemUgdGhlIGJvb2xlYW4g
Y29udGV4dCBldmFsdWF0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbGV2ZXJhZ2VzIHRoZSBh
Ym92ZSBpbmZvcm1hdGlvbiB0byByZWR1Y2UgdGhlIGNvZGUgc2l6ZSBmb3IgdGhlIGJvb2xlYW4g
Y29udGV4dCBldmFsdWF0aW9uLgorCisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmJvb2xpZnkpOgorICAgICAgICAqIGppdC9Bc3Nl
bWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252
ZXJ0VmFsdWVUb0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5j
aElmVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6SlNCaWdJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6b2Zmc2V0T2ZM
ZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKwogMjAxOC0x
Mi0xMCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIE1v
dmUgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5jcHAKaW5kZXggZmNlZTk0ZGY0NDZiMDBhNTI2MjU4YzcyNjIzMzBjNWZh
ODMyMjA4NS4uNjZhZDNjOGRjYzZlZmRhY2Q5NTBjMTUzMmMzOTEzMGNhN2VhZjBhNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuY3BwCkBAIC02MSw2ICs2MSw3IEBAIEFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkoKQogICAgICwgSlNDZWxsX2ZyZWVMaXN0TmV4dChKU0NlbGxfaGVh
ZGVyKQogICAgICwgQXJyYXlTdG9yYWdlX3B1YmxpY0xlbmd0aChCdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKQogICAgICwgQXJyYXlTdG9yYWdlX3ZlY3Rvckxlbmd0aChCdXR0ZXJmbHlfdmVjdG9yTGVu
Z3RoKQorICAgICwgSlNCaWdJbnRfbGVuZ3RoKEpTU3RyaW5nX2xlbmd0aCkKICAgICAKICNkZWZp
bmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5hbWUsIG9mZnNldCwgc2l6
ZSkgLCBuYW1lKCZyb290LCAjbmFtZSwgb2Zmc2V0LCBzaXplKQogICAgIEZPUl9FQUNIX0lOREVY
RURfQUJTVFJBQ1RfSEVBUChJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3Np
dG9yeS5oCmluZGV4IDNmZmNhMTcwNDk2NzFjZmM2ZTQ4MTdmMWVhNTZlZDYxODFkMWE3ZDMuLjll
ZjVjM2MyYWU0NmEzZTA3NTk3NzI1MzYzMTU0N2UwODllYmY0OGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RIZWFwUmVwb3NpdG9yeS5oCkBAIC04
NSw3ICs4NSw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgRlRMIHsKICAgICBtYWNybyhK
U1N0cmluZ19mbGFncywgSlNTdHJpbmc6Om9mZnNldE9mRmxhZ3MoKSkgXAogICAgIG1hY3JvKEpT
U3RyaW5nX2xlbmd0aCwgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAgICBtYWNybyhK
U1N0cmluZ192YWx1ZSwgSlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSkgXAotICAgIG1hY3JvKEpT
QmlnSW50X2xlbmd0aCwgSlNCaWdJbnQ6Om9mZnNldE9mTGVuZ3RoKCkpIFwKICAgICBtYWNybyhK
U1N5bWJvbFRhYmxlT2JqZWN0X3N5bWJvbFRhYmxlLCBKU1N5bWJvbFRhYmxlT2JqZWN0OjpvZmZz
ZXRPZlN5bWJvbFRhYmxlKCkpIFwKICAgICBtYWNybyhKU1dyYXBwZXJPYmplY3RfaW50ZXJuYWxW
YWx1ZSwgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZhbHVlT2Zmc2V0KCkpIFwKICAgICBtYWNy
byhSZWdFeHBDb25zdHJ1Y3Rvcl9jYWNoZWRSZXN1bHRfbGFzdFJlZ0V4cCwgUmVnRXhwQ29uc3Ry
dWN0b3I6Om9mZnNldE9mQ2FjaGVkUmVzdWx0KCkgKyBSZWdFeHBDYWNoZWRSZXN1bHQ6Om9mZnNl
dE9mTGFzdFJlZ0V4cCgpKSBcCkBAIC0xNzgsNiArMTc3LDcgQEAgY2xhc3MgQWJzdHJhY3RIZWFw
UmVwb3NpdG9yeSB7CiAgICAgQWJzdHJhY3RIZWFwJiBKU0NlbGxfZnJlZUxpc3ROZXh0OwogICAg
IEFic3RyYWN0SGVhcCYgQXJyYXlTdG9yYWdlX3B1YmxpY0xlbmd0aDsKICAgICBBYnN0cmFjdEhl
YXAmIEFycmF5U3RvcmFnZV92ZWN0b3JMZW5ndGg7CisgICAgQWJzdHJhY3RIZWFwJiBKU0JpZ0lu
dF9sZW5ndGg7CiAgICAgCiAjZGVmaW5lIElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElP
TihuYW1lLCBvZmZzZXQsIHNpemUpIEluZGV4ZWRBYnN0cmFjdEhlYXAgbmFtZTsKICAgICBGT1Jf
RUFDSF9JTkRFWEVEX0FCU1RSQUNUX0hFQVAoSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0RFQ0xBUkFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
QjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmlu
ZGV4IDA4MjNmYzhmNzgwNThkYWYzNGI1OTA4MWQ3M2NjN2FmMzE3M2JhOWMuLjc1ZTcwYmY2MDBj
OWQ5ZjIwMTU0OGVkMmM2ZTc4YWYxMDBmNjlhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEzNjA1LDEwICsxMzYwNSw5IEBAIGNsYXNz
IExvd2VyREZHVG9CMyB7CiAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIExCYXNpY0Jsb2NrIGNlbGxDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgICAg
IExCYXNpY0Jsb2NrIHN0cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICAgICAg
TEJhc2ljQmxvY2sgbm90U3RyaW5nQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAg
ICBMQmFzaWNCbG9jayBiaWdJbnRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKLSAgICAgICAgICAg
IExCYXNpY0Jsb2NrIG5vdEJpZ0ludENhc2UgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICAg
ICAgTEJhc2ljQmxvY2sgc3RyaW5nT3JCaWdJbnRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKKyAg
ICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdFN0cmluZ09yQmlnSW50Q2FzZSA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBub3RDZWxsQ2FzZSA9IG1fb3V0Lm5ld0Js
b2NrKCk7CiAgICAgICAgICAgICBMQmFzaWNCbG9jayBpbnQzMkNhc2UgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90SW50MzJDYXNlID0gbV9vdXQubmV3Qmxv
Y2soKTsKQEAgLTEzNjIwLDI5ICsxMzYxOSwyMyBAQCBjbGFzcyBMb3dlckRGR1RvQjMgewogICAg
ICAgICAgICAgCiAgICAgICAgICAgICBtX291dC5icmFuY2goaXNDZWxsKHZhbHVlLCBwcm92ZW5U
eXBlKGVkZ2UpKSwgdW5zdXJlKGNlbGxDYXNlKSwgdW5zdXJlKG5vdENlbGxDYXNlKSk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5k
VG8oY2VsbENhc2UsIHN0cmluZ0Nhc2UpOworICAgICAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5l
eHQgPSBtX291dC5hcHBlbmRUbyhjZWxsQ2FzZSwgbm90U3RyaW5nQ2FzZSk7CiAgICAgICAgICAg
ICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgaXNTdHJpbmcodmFsdWUsIHByb3ZlblR5
cGUoZWRnZSkgJiBTcGVjQ2VsbCksCi0gICAgICAgICAgICAgICAgdW5zdXJlKHN0cmluZ0Nhc2Up
LCB1bnN1cmUobm90U3RyaW5nQ2FzZSkpOworICAgICAgICAgICAgICAgIHVuc3VyZShzdHJpbmdP
ckJpZ0ludENhc2UpLCB1bnN1cmUobm90U3RyaW5nQ2FzZSkpOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhzdHJpbmdDYXNlLCBub3RTdHJpbmdDYXNlKTsKLSAgICAg
ICAgICAgIExWYWx1ZSBub25FbXB0eVN0cmluZyA9IG1fb3V0Lm5vdFplcm8zMigKLSAgICAgICAg
ICAgICAgICBtX291dC5sb2FkMzJOb25OZWdhdGl2ZSh2YWx1ZSwgbV9oZWFwcy5KU1N0cmluZ19s
ZW5ndGgpKTsKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0LmFuY2hvcihub25FbXB0
eVN0cmluZykpOwotICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCi0gICAg
ICAgICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmdDYXNlLCBiaWdJbnRDYXNlKTsKKyAgICAg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdFN0cmluZ0Nhc2UsIHN0cmluZ09yQmlnSW50Q2FzZSk7
CiAgICAgICAgICAgICBtX291dC5icmFuY2goCiAgICAgICAgICAgICAgICAgaXNCaWdJbnQodmFs
dWUsIHByb3ZlblR5cGUoZWRnZSkgJiBTcGVjQ2VsbCksCi0gICAgICAgICAgICAgICAgdW5zdXJl
KGJpZ0ludENhc2UpLCB1bnN1cmUobm90QmlnSW50Q2FzZSkpOworICAgICAgICAgICAgICAgIHVu
c3VyZShzdHJpbmdPckJpZ0ludENhc2UpLCB1bnN1cmUobm90U3RyaW5nT3JCaWdJbnRDYXNlKSk7
CiAKLSAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKGJpZ0ludENhc2UsIG5vdEJpZ0ludENhc2Up
OwotICAgICAgICAgICAgTFZhbHVlIG5vblplcm9CaWdJbnQgPSBtX291dC5ub3RaZXJvMzIoCisg
ICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzdHJpbmdPckJpZ0ludENhc2UsIG5vdFN0cmluZ09y
QmlnSW50Q2FzZSk7CisgICAgICAgICAgICBMVmFsdWUgbm9uWmVyb0NlbGwgPSBtX291dC5ub3Ra
ZXJvMzIoCiAgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUodmFsdWUsIG1f
aGVhcHMuSlNCaWdJbnRfbGVuZ3RoKSk7Ci0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291
dC5hbmNob3Iobm9uWmVyb0JpZ0ludCkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9v
dXQuYW5jaG9yKG5vblplcm9DZWxsKSk7CiAgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVh
dGlvbik7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdEJpZ0lu
dENhc2UsIG5vdENlbGxDYXNlKTsKKyAgICAgICAgICAgIG1fb3V0LmFwcGVuZFRvKG5vdFN0cmlu
Z09yQmlnSW50Q2FzZSwgbm90Q2VsbENhc2UpOwogICAgICAgICAgICAgTFZhbHVlIGlzVHJ1dGh5
T2JqZWN0OwogICAgICAgICAgICAgaWYgKG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRjaHBvaW50
SXNTdGlsbFZhbGlkKCkpCiAgICAgICAgICAgICAgICAgaXNUcnV0aHlPYmplY3QgPSBtX291dC5i
b29sZWFuVHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1i
bHlIZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJz
LmNwcAppbmRleCAyNjJkNTE2NjA4OTFkMGNlODE5OGExOGM3N2EzOTlhZDljNjMzYzcwLi4yMmRl
M2QyNmJjNTY3YTBiMjkyMjU3MjkxZTQwNzA0NWVjYzg3MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCkBAIC03NzUsMTggKzc3NSw5IEBAIHZv
aWQgQXNzZW1ibHlIZWxwZXJzOjplbWl0Q29udmVydFZhbHVlVG9Cb29sZWFuKFZNJiB2bSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsIEdQUlJlCiAgICAgSnVtcExpc3QgZG9uZTsKIAogICAgIGF1dG8gbm90
Q2VsbCA9IGJyYW5jaElmTm90Q2VsbCh2YWx1ZSk7Ci0gICAgYXV0byBpc0NlbGxCdXROb3RTdHJp
bmcgPSBicmFuY2hJZk5vdFN0cmluZyh2YWx1ZS5wYXlsb2FkR1BSKCkpOwotICAgIGxvYWQzMihB
ZGRyZXNzKHZhbHVlLnBheWxvYWRHUFIoKSwgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpLCBy
ZXN1bHQpOwotICAgIGNvbXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFsLCByZXN1bHQs
IFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKLSAgICBkb25lLmFwcGVuZChqdW1wKCkpOworICAg
IGF1dG8gaXNTdHJpbmcgPSBicmFuY2hJZlN0cmluZyh2YWx1ZS5wYXlsb2FkR1BSKCkpOworICAg
IGF1dG8gaXNCaWdJbnQgPSBicmFuY2hJZkJpZ0ludCh2YWx1ZS5wYXlsb2FkR1BSKCkpOwogCi0g
ICAgaXNDZWxsQnV0Tm90U3RyaW5nLmxpbmsodGhpcyk7Ci0gICAgYXV0byBpc0NlbGxCdXROb3RC
aWdJbnRPclN0cmluZyA9IGJyYW5jaElmTm90QmlnSW50KHZhbHVlLnBheWxvYWRHUFIoKSk7Ci0g
ICAgbG9hZDMyKEFkZHJlc3ModmFsdWUucGF5bG9hZEdQUigpLCBKU0JpZ0ludDo6b2Zmc2V0T2ZM
ZW5ndGgoKSksIHJlc3VsdCk7Ci0gICAgY29tcGFyZTMyKGludmVydCA/IEVxdWFsIDogTm90RXF1
YWwsIHJlc3VsdCwgVHJ1c3RlZEltbTMyKDApLCByZXN1bHQpOwotICAgIGRvbmUuYXBwZW5kKGp1
bXAoKSk7Ci0KLSAgICBpc0NlbGxCdXROb3RCaWdJbnRPclN0cmluZy5saW5rKHRoaXMpOwogICAg
IGlmIChzaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQpIHsKICAgICAgICAgQVNTRVJU
KHNjcmF0Y2hJZlNob3VsZENoZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCAhPSBJbnZhbGlkR1BS
UmVnKTsKICAgICAgICAgSnVtcExpc3QgaXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOwpAQCAt
ODAzLDYgKzc5NCwxMyBAQCB2b2lkIEFzc2VtYmx5SGVscGVyczo6ZW1pdENvbnZlcnRWYWx1ZVRv
Qm9vbGVhbihWTSYgdm0sIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZQogICAgIG1vdmUoaW52ZXJ0
ID8gVHJ1c3RlZEltbTMyKDApIDogVHJ1c3RlZEltbTMyKDEpLCByZXN1bHQpOwogICAgIGRvbmUu
YXBwZW5kKGp1bXAoKSk7CiAKKyAgICBpc1N0cmluZy5saW5rKHRoaXMpOworICAgIGlzQmlnSW50
LmxpbmsodGhpcyk7CisgICAgQVNTRVJUKEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpID09IEpT
QmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpKTsKKyAgICBsb2FkMzIoQWRkcmVzcyh2YWx1ZS5wYXls
b2FkR1BSKCksIEpTQmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpKSwgcmVzdWx0KTsKKyAgICBjb21w
YXJlMzIoaW52ZXJ0ID8gRXF1YWwgOiBOb3RFcXVhbCwgcmVzdWx0LCBUcnVzdGVkSW1tMzIoMCks
IHJlc3VsdCk7CisgICAgZG9uZS5hcHBlbmQoanVtcCgpKTsKKwogICAgIG5vdENlbGwubGluayh0
aGlzKTsKICAgICBhdXRvIG5vdEludDMyID0gYnJhbmNoSWZOb3RJbnQzMih2YWx1ZSk7CiAgICAg
Y29tcGFyZTMyKGludmVydCA/IEVxdWFsIDogTm90RXF1YWwsIHZhbHVlLnBheWxvYWRHUFIoKSwg
VHJ1c3RlZEltbTMyKDApLCByZXN1bHQpOwpAQCAtODU1LDE2ICs4NTMsMTAgQEAgQXNzZW1ibHlI
ZWxwZXJzOjpKdW1wTGlzdCBBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUoVk0mIHZtLCBK
U1ZhbHVlUmVncyB2YWwKICAgICBKdW1wTGlzdCB0cnV0aHk7CiAKICAgICBhdXRvIG5vdENlbGwg
PSBicmFuY2hJZk5vdENlbGwodmFsdWUpOwotICAgIGF1dG8gaXNDZWxsQnV0Tm90U3RyaW5nID0g
YnJhbmNoSWZOb3RTdHJpbmcodmFsdWUucGF5bG9hZEdQUigpKTsKLSAgICB0cnV0aHkuYXBwZW5k
KGJyYW5jaFRlc3QzMihpbnZlcnQgPyBaZXJvIDogTm9uWmVybywgQWRkcmVzcyh2YWx1ZS5wYXls
b2FkR1BSKCksIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSkpOwotICAgIGRvbmUuYXBwZW5k
KGp1bXAoKSk7Ci0gICAgaXNDZWxsQnV0Tm90U3RyaW5nLmxpbmsodGhpcyk7Ci0gICAgYXV0byBp
c0NlbGxCdXROb3RCaWdJbnRPclN0cmluZyA9IGJyYW5jaElmTm90QmlnSW50KHZhbHVlLnBheWxv
YWRHUFIoKSk7Ci0gICAgdHJ1dGh5LmFwcGVuZChicmFuY2hUZXN0MzIoaW52ZXJ0ID8gWmVybyA6
IE5vblplcm8sIEFkZHJlc3ModmFsdWUucGF5bG9hZEdQUigpLCBKU0JpZ0ludDo6b2Zmc2V0T2ZM
ZW5ndGgoKSkpKTsKLSAgICBkb25lLmFwcGVuZChqdW1wKCkpOworICAgIGF1dG8gaXNTdHJpbmcg
PSBicmFuY2hJZlN0cmluZyh2YWx1ZS5wYXlsb2FkR1BSKCkpOworICAgIGF1dG8gaXNCaWdJbnQg
PSBicmFuY2hJZkJpZ0ludCh2YWx1ZS5wYXlsb2FkR1BSKCkpOwogCiAgICAgaWYgKHNob3VsZENo
ZWNrTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCkgewotICAgICAgICBpc0NlbGxCdXROb3RCaWdJbnRP
clN0cmluZy5saW5rKHRoaXMpOwogICAgICAgICBBU1NFUlQoc2NyYXRjaElmU2hvdWxkQ2hlY2tN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkICE9IEludmFsaWRHUFJSZWcpOwogICAgICAgICBKdW1wTGlz
dCBpc05vdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ7CiAgICAgICAgIGlzTm90TWFzcXVlcmFkZXNB
c1VuZGVmaW5lZC5hcHBlbmQoYnJhbmNoVGVzdDgoWmVybywgQWRkcmVzcyh2YWx1ZS5wYXlsb2Fk
R1BSKCksIEpTQ2VsbDo6dHlwZUluZm9GbGFnc09mZnNldCgpKSwgVHJ1c3RlZEltbTMyKE1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQpKSk7CkBAIC04ODQsMTEgKzg3NiwxNyBAQCBBc3NlbWJseUhlbHBl
cnM6Okp1bXBMaXN0IEFzc2VtYmx5SGVscGVyczo6YnJhbmNoSWZWYWx1ZShWTSYgdm0sIEpTVmFs
dWVSZWdzIHZhbAogICAgICAgICAgICAgdHJ1dGh5LmFwcGVuZChpc05vdE1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChpbnZlcnQpCi0gICAgICAgICAg
ICBkb25lLmFwcGVuZChpc0NlbGxCdXROb3RCaWdJbnRPclN0cmluZyk7CisgICAgICAgICAgICBk
b25lLmFwcGVuZChqdW1wKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB0cnV0aHkuYXBw
ZW5kKGlzQ2VsbEJ1dE5vdEJpZ0ludE9yU3RyaW5nKTsKKyAgICAgICAgICAgIHRydXRoeS5hcHBl
bmQoanVtcCgpKTsKICAgICB9CiAKKyAgICBpc1N0cmluZy5saW5rKHRoaXMpOworICAgIGlzQmln
SW50LmxpbmsodGhpcyk7CisgICAgQVNTRVJUKEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpID09
IEpTQmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpKTsKKyAgICB0cnV0aHkuYXBwZW5kKGJyYW5jaFRl
c3QzMihpbnZlcnQgPyBaZXJvIDogTm9uWmVybywgQWRkcmVzcyh2YWx1ZS5wYXlsb2FkR1BSKCks
IEpTQmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpKSkpOworICAgIGRvbmUuYXBwZW5kKGp1bXAoKSk7
CisKICAgICBub3RDZWxsLmxpbmsodGhpcyk7CiAgICAgYXV0byBub3RJbnQzMiA9IGJyYW5jaElm
Tm90SW50MzIodmFsdWUpOwogICAgIHRydXRoeS5hcHBlbmQoYnJhbmNoVGVzdDMyKGludmVydCA/
IFplcm8gOiBOb25aZXJvLCB2YWx1ZS5wYXlsb2FkR1BSKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcAppbmRleCAzNTM2M2VlMjE4MzQxMjE5OGI1OWRiZTg0
MjIxOWNhNGJkYWVmNjU4Li5hZmUzY2ZkZTAwMzZjOWU2YjI1NTFhYmRlYTA1NjQyMjg1MDBkZjE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCkBAIC02NSw3
ICs2NSw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0JpZ0ludDo6c19pbmZvID0KIEpTQmlnSW50OjpK
U0JpZ0ludChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBsZW5ndGgpCiAg
ICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2xlbmd0aChsZW5ndGgpCi0gICAgLCBt
X3NpZ24oZmFsc2UpCiB7IH0KIAogdm9pZCBKU0JpZ0ludDo6aW5pdGlhbGl6ZShJbml0aWFsaXph
dGlvblR5cGUgaW5pdFR5cGUpCkBAIC0xNjk0LDExICsxNjkzLDYgQEAgaW5saW5lIHNpemVfdCBK
U0JpZ0ludDo6b2Zmc2V0T2ZEYXRhKCkKICAgICByZXR1cm4gV1RGOjpyb3VuZFVwVG9NdWx0aXBs
ZU9mPHNpemVvZihEaWdpdCk+KHNpemVvZihKU0JpZ0ludCkpOwogfQogCi1zaXplX3QgSlNCaWdJ
bnQ6Om9mZnNldE9mTGVuZ3RoKCkKLXsKLSAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTQmln
SW50LCBtX2xlbmd0aCk7Ci19Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBDaGFyVHlwZT4KIEpTQmln
SW50KiBKU0JpZ0ludDo6cGFyc2VJbnQoRXhlY1N0YXRlKiBleGVjLCBDaGFyVHlwZSogIGRhdGEs
IHVuc2lnbmVkIGxlbmd0aCwgRXJyb3JQYXJzZU1vZGUgZXJyb3JQYXJzZU1vZGUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaAppbmRleCBkYjFmNGQwMTA1ZjA0OGNk
MDVjYmNkOGQxZTU0NmZhM2MxYWRhNGNhLi44ZTE0Y2E1MTIzMGM1NTRlMmQ0YzFlODI5YmQ0ZDZj
MGEzYTUzNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Jp
Z0ludC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKQEAg
LTU4LDcgKzU4LDEwIEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAg
ICAgc3RhdGljIEpTQmlnSW50KiBjcmVhdGVGcm9tKFZNJiwgaW50NjRfdCB2YWx1ZSk7CiAgICAg
c3RhdGljIEpTQmlnSW50KiBjcmVhdGVGcm9tKFZNJiwgYm9vbCB2YWx1ZSk7CiAKLSAgICBzdGF0
aWMgc2l6ZV90IG9mZnNldE9mTGVuZ3RoKCk7CisgICAgc3RhdGljIHNpemVfdCBvZmZzZXRPZkxl
bmd0aCgpCisgICAgeworICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEpTQmlnSW50LCBt
X2xlbmd0aCk7CisgICAgfQogCiAgICAgREVDTEFSRV9FWFBPUlRfSU5GTzsKIApAQCAtMjMyLDcg
KzIzNSw3IEBAIGNsYXNzIEpTQmlnSW50IGZpbmFsIDogcHVibGljIEpTQ2VsbCB7CiAgICAgdm9p
ZCBzZXREaWdpdCh1bnNpZ25lZCwgRGlnaXQpOwogICAgICAgICAKICAgICB1bnNpZ25lZCBtX2xl
bmd0aDsKLSAgICBib29sIG1fc2lnbjsKKyAgICBib29sIG1fc2lnbiB7IGZhbHNlIH07CiB9Owog
CiBpbmxpbmUgSlNCaWdJbnQqIGFzQmlnSW50KEpTVmFsdWUgdmFsdWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357106</attachid>
            <date>2018-12-11 22:26:07 -0800</date>
            <delta_ts>2018-12-12 00:21:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192615-20181212152606.patch</filename>
            <type>text/plain</type>
            <size>12980</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDMwZjUzZWY4ZmE2ZDMxYjlkM2NmNmVlMWEyYjNmYjQwZDVhNzYyLi40ZjI2NzEyYzEzN2UzODhk
ZWFkNGNiZDNiNjE4NDUyZDQ1ODBkZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxOC0xMi0xMSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIFtCaWdJbnRdIFNpbXBsaWZ5IGJvb2xlYW4gY29udGV4dCBl
dmFsdWF0aW9uIGJ5IGxldmVyYWdpbmcgSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkgPT0gSlNC
aWdJbnQ6Om9mZnNldE9mTGVuZ3RoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MjYxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEpTU3RyaW5nIGFuZCBKU0JpZ0ludCBoYXZlIHNpbWlsYXIgY29uY2Vw
dCBpbiB0ZXJtcyBvZiB0aGUgaW1wbGVtZW50YXRpb24uCisgICAgICAgIEJvdGggYXJlIGltbXV0
YWJsZSwgSlNDZWxscywgYW5kIGhhdmUgbGVuZ3RoIGluZm9ybWF0aW9uLiBtX2xlbmd0aCBpcyBs
b2NhdGVkCisgICAgICAgIGp1c3QgYWZ0ZXIgSlNDZWxsIGhlYWRlciBwYXJ0LCB3ZSBjYW4gZW5z
dXJlIGBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSA9PSBKU0JpZ0ludDo6b2Zmc2V0T2ZMZW5n
dGgoKWAsCisgICAgICAgIGFuZCBpdCBhbGxvd3MgdXMgdG8gb3B0aW1pemUgdGhlIGJvb2xlYW4g
Y29udGV4dCBldmFsdWF0aW9uLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbGV2ZXJhZ2VzIHRoZSBh
Ym92ZSBpbmZvcm1hdGlvbiB0byByZWR1Y2UgdGhlIGNvZGUgc2l6ZSBmb3IgdGhlIGJvb2xlYW4g
Y29udGV4dCBldmFsdWF0aW9uLgorCisgICAgICAgICogZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFi
c3RyYWN0SGVhcFJlcG9zaXRvcnkpOgorICAgICAgICAqIGZ0bC9GVExBYnN0cmFjdEhlYXBSZXBv
c2l0b3J5Lmg6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmJvb2xpZnkpOgorICAgICAgICAqIGppdC9Bc3Nl
bWJseUhlbHBlcnMuY3BwOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252
ZXJ0VmFsdWVUb0Jvb2xlYW4pOgorICAgICAgICAoSlNDOjpBc3NlbWJseUhlbHBlcnM6OmJyYW5j
aElmVmFsdWUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuY3BwOgorICAgICAgICAoSlND
OjpKU0JpZ0ludDo6SlNCaWdJbnQpOgorICAgICAgICAoSlNDOjpKU0JpZ0ludDo6b2Zmc2V0T2ZM
ZW5ndGgpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNCaWdJbnQuaDoKKwogMjAxOC0x
Mi0xMCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIE1v
dmUgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBGZWF0dXJlRGVmaW5lcy54Y2Nv
bmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhl
YXBSZXBvc2l0b3J5LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQWJzdHJhY3RI
ZWFwUmVwb3NpdG9yeS5jcHAKaW5kZXggZmNlZTk0ZGY0NDZiMDBhNTI2MjU4YzcyNjIzMzBjNWZh
ODMyMjA4NS4uY2VjMjg2MDkyNTFhMDEzNWQ1OGYyMzZkNzAwNzQ1MTU2ZDM4NTkwMiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0b3J5
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9z
aXRvcnkuY3BwCkBAIC02MSw2ICs2MSw3IEBAIEFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3Ry
YWN0SGVhcFJlcG9zaXRvcnkoKQogICAgICwgSlNDZWxsX2ZyZWVMaXN0TmV4dChKU0NlbGxfaGVh
ZGVyKQogICAgICwgQXJyYXlTdG9yYWdlX3B1YmxpY0xlbmd0aChCdXR0ZXJmbHlfcHVibGljTGVu
Z3RoKQogICAgICwgQXJyYXlTdG9yYWdlX3ZlY3Rvckxlbmd0aChCdXR0ZXJmbHlfdmVjdG9yTGVu
Z3RoKQorICAgICwgSlNCaWdJbnRfbGVuZ3RoKEpTU3RyaW5nX2xlbmd0aCkKICAgICAKICNkZWZp
bmUgSU5ERVhFRF9BQlNUUkFDVF9IRUFQX0lOSVRJQUxJWkFUSU9OKG5hbWUsIG9mZnNldCwgc2l6
ZSkgLCBuYW1lKCZyb290LCAjbmFtZSwgb2Zmc2V0LCBzaXplKQogICAgIEZPUl9FQUNIX0lOREVY
RURfQUJTVFJBQ1RfSEVBUChJTkRFWEVEX0FCU1RSQUNUX0hFQVBfSU5JVElBTElaQVRJT04pCkBA
IC03OCw2ICs3OSw4IEBAIEFic3RyYWN0SGVhcFJlcG9zaXRvcnk6OkFic3RyYWN0SGVhcFJlcG9z
aXRvcnkoKQogICAgIFJFTEVBU0VfQVNTRVJUKEpTQ2VsbF9pbmRleGluZ1R5cGVBbmRNaXNjLm9m
ZnNldCgpICsgMiA9PSBKU0NlbGxfdHlwZUluZm9GbGFncy5vZmZzZXQoKSk7CiAgICAgUkVMRUFT
RV9BU1NFUlQoSlNDZWxsX2luZGV4aW5nVHlwZUFuZE1pc2Mub2Zmc2V0KCkgKyAzID09IEpTQ2Vs
bF9jZWxsU3RhdGUub2Zmc2V0KCkpOwogCisgICAgUkVMRUFTRV9BU1NFUlQoSlNCaWdJbnQ6Om9m
ZnNldE9mTGVuZ3RoKCkgPT0gSlNTdHJpbmc6Om9mZnNldE9mTGVuZ3RoKCkpOworCiAgICAgSlND
ZWxsX3N0cnVjdHVyZUlELmNoYW5nZVBhcmVudCgmSlNDZWxsX2hlYWRlcik7CiAgICAgSlNDZWxs
X3VzZWZ1bEJ5dGVzLmNoYW5nZVBhcmVudCgmSlNDZWxsX2hlYWRlcik7CiAgICAgSlNDZWxsX2lu
ZGV4aW5nVHlwZUFuZE1pc2MuY2hhbmdlUGFyZW50KCZKU0NlbGxfdXNlZnVsQnl0ZXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExBYnN0cmFjdEhlYXBSZXBvc2l0
b3J5LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRv
cnkuaAppbmRleCAzZmZjYTE3MDQ5NjcxY2ZjNmU0ODE3ZjFlYTU2ZWQ2MTgxZDFhN2QzLi45ZWY1
YzNjMmFlNDZhM2UwNzU5NzcyNTM2MzE1NDdlMDg5ZWJmNDhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEFic3RyYWN0SGVhcFJlcG9zaXRvcnkuaApAQCAtODUs
NyArODUsNiBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSlNT
dHJpbmdfZmxhZ3MsIEpTU3RyaW5nOjpvZmZzZXRPZkZsYWdzKCkpIFwKICAgICBtYWNybyhKU1N0
cmluZ19sZW5ndGgsIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSBcCiAgICAgbWFjcm8oSlNT
dHJpbmdfdmFsdWUsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpIFwKLSAgICBtYWNybyhKU0Jp
Z0ludF9sZW5ndGgsIEpTQmlnSW50OjpvZmZzZXRPZkxlbmd0aCgpKSBcCiAgICAgbWFjcm8oSlNT
eW1ib2xUYWJsZU9iamVjdF9zeW1ib2xUYWJsZSwgSlNTeW1ib2xUYWJsZU9iamVjdDo6b2Zmc2V0
T2ZTeW1ib2xUYWJsZSgpKSBcCiAgICAgbWFjcm8oSlNXcmFwcGVyT2JqZWN0X2ludGVybmFsVmFs
dWUsIEpTV3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZU9mZnNldCgpKSBcCiAgICAgbWFjcm8o
UmVnRXhwQ29uc3RydWN0b3JfY2FjaGVkUmVzdWx0X2xhc3RSZWdFeHAsIFJlZ0V4cENvbnN0cnVj
dG9yOjpvZmZzZXRPZkNhY2hlZFJlc3VsdCgpICsgUmVnRXhwQ2FjaGVkUmVzdWx0OjpvZmZzZXRP
Zkxhc3RSZWdFeHAoKSkgXApAQCAtMTc4LDYgKzE3Nyw3IEBAIGNsYXNzIEFic3RyYWN0SGVhcFJl
cG9zaXRvcnkgewogICAgIEFic3RyYWN0SGVhcCYgSlNDZWxsX2ZyZWVMaXN0TmV4dDsKICAgICBB
YnN0cmFjdEhlYXAmIEFycmF5U3RvcmFnZV9wdWJsaWNMZW5ndGg7CiAgICAgQWJzdHJhY3RIZWFw
JiBBcnJheVN0b3JhZ2VfdmVjdG9yTGVuZ3RoOworICAgIEFic3RyYWN0SGVhcCYgSlNCaWdJbnRf
bGVuZ3RoOwogICAgIAogI2RlZmluZSBJTkRFWEVEX0FCU1RSQUNUX0hFQVBfREVDTEFSQVRJT04o
bmFtZSwgb2Zmc2V0LCBzaXplKSBJbmRleGVkQWJzdHJhY3RIZWFwIG5hbWU7CiAgICAgRk9SX0VB
Q0hfSU5ERVhFRF9BQlNUUkFDVF9IRUFQKElOREVYRURfQUJTVFJBQ1RfSEVBUF9ERUNMQVJBVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0Iz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRl
eCAwODIzZmM4Zjc4MDU4ZGFmMzRiNTkwODFkNzNjYzdhZjMxNzNiYTljLi43NWU3MGJmNjAwYzlk
OWYyMDE1NDhlZDJjNmU3OGFmMTAwZjY5YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzYwNSwxMCArMTM2MDUsOSBAQCBjbGFzcyBM
b3dlckRGR1RvQjMgewogICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBMQmFzaWNCbG9jayBjZWxsQ2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICBM
QmFzaWNCbG9jayBzdHJpbmdDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKICAgICAgICAgICAgIExC
YXNpY0Jsb2NrIG5vdFN0cmluZ0Nhc2UgPSBtX291dC5uZXdCbG9jaygpOwotICAgICAgICAgICAg
TEJhc2ljQmxvY2sgYmlnSW50Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7Ci0gICAgICAgICAgICBM
QmFzaWNCbG9jayBub3RCaWdJbnRDYXNlID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgICAg
IExCYXNpY0Jsb2NrIHN0cmluZ09yQmlnSW50Q2FzZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAg
ICAgICAgICBMQmFzaWNCbG9jayBub3RTdHJpbmdPckJpZ0ludENhc2UgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgbm90Q2VsbENhc2UgPSBtX291dC5uZXdCbG9j
aygpOwogICAgICAgICAgICAgTEJhc2ljQmxvY2sgaW50MzJDYXNlID0gbV9vdXQubmV3QmxvY2so
KTsKICAgICAgICAgICAgIExCYXNpY0Jsb2NrIG5vdEludDMyQ2FzZSA9IG1fb3V0Lm5ld0Jsb2Nr
KCk7CkBAIC0xMzYyMCwyOSArMTM2MTksMjMgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzQ2VsbCh2YWx1ZSwgcHJvdmVuVHlw
ZShlZGdlKSksIHVuc3VyZShjZWxsQ2FzZSksIHVuc3VyZShub3RDZWxsQ2FzZSkpOwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRv
KGNlbGxDYXNlLCBzdHJpbmdDYXNlKTsKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0
ID0gbV9vdXQuYXBwZW5kVG8oY2VsbENhc2UsIG5vdFN0cmluZ0Nhc2UpOwogICAgICAgICAgICAg
bV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIGlzU3RyaW5nKHZhbHVlLCBwcm92ZW5UeXBl
KGVkZ2UpICYgU3BlY0NlbGwpLAotICAgICAgICAgICAgICAgIHVuc3VyZShzdHJpbmdDYXNlKSwg
dW5zdXJlKG5vdFN0cmluZ0Nhc2UpKTsKKyAgICAgICAgICAgICAgICB1bnN1cmUoc3RyaW5nT3JC
aWdJbnRDYXNlKSwgdW5zdXJlKG5vdFN0cmluZ0Nhc2UpKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8oc3RyaW5nQ2FzZSwgbm90U3RyaW5nQ2FzZSk7Ci0gICAgICAg
ICAgICBMVmFsdWUgbm9uRW1wdHlTdHJpbmcgPSBtX291dC5ub3RaZXJvMzIoCi0gICAgICAgICAg
ICAgICAgbV9vdXQubG9hZDMyTm9uTmVnYXRpdmUodmFsdWUsIG1faGVhcHMuSlNTdHJpbmdfbGVu
Z3RoKSk7Ci0gICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtX291dC5hbmNob3Iobm9uRW1wdHlT
dHJpbmcpKTsKLSAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKLQotICAgICAg
ICAgICAgbV9vdXQuYXBwZW5kVG8obm90U3RyaW5nQ2FzZSwgYmlnSW50Q2FzZSk7CisgICAgICAg
ICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmdDYXNlLCBzdHJpbmdPckJpZ0ludENhc2UpOwog
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAogICAgICAgICAgICAgICAgIGlzQmlnSW50KHZhbHVl
LCBwcm92ZW5UeXBlKGVkZ2UpICYgU3BlY0NlbGwpLAotICAgICAgICAgICAgICAgIHVuc3VyZShi
aWdJbnRDYXNlKSwgdW5zdXJlKG5vdEJpZ0ludENhc2UpKTsKKyAgICAgICAgICAgICAgICB1bnN1
cmUoc3RyaW5nT3JCaWdJbnRDYXNlKSwgdW5zdXJlKG5vdFN0cmluZ09yQmlnSW50Q2FzZSkpOwog
Ci0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhiaWdJbnRDYXNlLCBub3RCaWdJbnRDYXNlKTsK
LSAgICAgICAgICAgIExWYWx1ZSBub25aZXJvQmlnSW50ID0gbV9vdXQubm90WmVybzMyKAorICAg
ICAgICAgICAgbV9vdXQuYXBwZW5kVG8oc3RyaW5nT3JCaWdJbnRDYXNlLCBub3RTdHJpbmdPckJp
Z0ludENhc2UpOworICAgICAgICAgICAgTFZhbHVlIG5vblplcm9DZWxsID0gbV9vdXQubm90WmVy
bzMyKAogICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMk5vbk5lZ2F0aXZlKHZhbHVlLCBtX2hl
YXBzLkpTQmlnSW50X2xlbmd0aCkpOwotICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobV9vdXQu
YW5jaG9yKG5vblplcm9CaWdJbnQpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1fb3V0
LmFuY2hvcihub25aZXJvQ2VsbCkpOwogICAgICAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRp
b24pOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RCaWdJbnRD
YXNlLCBub3RDZWxsQ2FzZSk7CisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhub3RTdHJpbmdP
ckJpZ0ludENhc2UsIG5vdENlbGxDYXNlKTsKICAgICAgICAgICAgIExWYWx1ZSBpc1RydXRoeU9i
amVjdDsKICAgICAgICAgICAgIGlmIChtYXNxdWVyYWRlc0FzVW5kZWZpbmVkV2F0Y2hwb2ludElz
U3RpbGxWYWxpZCgpKQogICAgICAgICAgICAgICAgIGlzVHJ1dGh5T2JqZWN0ID0gbV9vdXQuYm9v
bGVhblRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5
SGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Fzc2VtYmx5SGVscGVycy5j
cHAKaW5kZXggMjYyZDUxNjYwODkxZDBjZTgxOThhMThjNzdhMzk5YWQ5YzYzM2M3MC4uMjJkZTNk
MjZiYzU2N2EwYjI5MjI1NzI5MWU0MDcwNDVlY2M4NzAxZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcApAQCAtNzc1LDE4ICs3NzUsOSBAQCB2b2lk
IEFzc2VtYmx5SGVscGVyczo6ZW1pdENvbnZlcnRWYWx1ZVRvQm9vbGVhbihWTSYgdm0sIEpTVmFs
dWVSZWdzIHZhbHVlLCBHUFJSZQogICAgIEp1bXBMaXN0IGRvbmU7CiAKICAgICBhdXRvIG5vdENl
bGwgPSBicmFuY2hJZk5vdENlbGwodmFsdWUpOwotICAgIGF1dG8gaXNDZWxsQnV0Tm90U3RyaW5n
ID0gYnJhbmNoSWZOb3RTdHJpbmcodmFsdWUucGF5bG9hZEdQUigpKTsKLSAgICBsb2FkMzIoQWRk
cmVzcyh2YWx1ZS5wYXlsb2FkR1BSKCksIEpTU3RyaW5nOjpvZmZzZXRPZkxlbmd0aCgpKSwgcmVz
dWx0KTsKLSAgICBjb21wYXJlMzIoaW52ZXJ0ID8gRXF1YWwgOiBOb3RFcXVhbCwgcmVzdWx0LCBU
cnVzdGVkSW1tMzIoMCksIHJlc3VsdCk7Ci0gICAgZG9uZS5hcHBlbmQoanVtcCgpKTsKKyAgICBh
dXRvIGlzU3RyaW5nID0gYnJhbmNoSWZTdHJpbmcodmFsdWUucGF5bG9hZEdQUigpKTsKKyAgICBh
dXRvIGlzQmlnSW50ID0gYnJhbmNoSWZCaWdJbnQodmFsdWUucGF5bG9hZEdQUigpKTsKIAotICAg
IGlzQ2VsbEJ1dE5vdFN0cmluZy5saW5rKHRoaXMpOwotICAgIGF1dG8gaXNDZWxsQnV0Tm90Qmln
SW50T3JTdHJpbmcgPSBicmFuY2hJZk5vdEJpZ0ludCh2YWx1ZS5wYXlsb2FkR1BSKCkpOwotICAg
IGxvYWQzMihBZGRyZXNzKHZhbHVlLnBheWxvYWRHUFIoKSwgSlNCaWdJbnQ6Om9mZnNldE9mTGVu
Z3RoKCkpLCByZXN1bHQpOwotICAgIGNvbXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFs
LCByZXN1bHQsIFRydXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKLSAgICBkb25lLmFwcGVuZChqdW1w
KCkpOwotCi0gICAgaXNDZWxsQnV0Tm90QmlnSW50T3JTdHJpbmcubGluayh0aGlzKTsKICAgICBp
ZiAoc2hvdWxkQ2hlY2tNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSB7CiAgICAgICAgIEFTU0VSVChz
Y3JhdGNoSWZTaG91bGRDaGVja01hc3F1ZXJhZGVzQXNVbmRlZmluZWQgIT0gSW52YWxpZEdQUlJl
Zyk7CiAgICAgICAgIEp1bXBMaXN0IGlzTm90TWFzcXVlcmFkZXNBc1VuZGVmaW5lZDsKQEAgLTgw
Myw2ICs3OTQsMTMgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmVtaXRDb252ZXJ0VmFsdWVUb0Jv
b2xlYW4oVk0mIHZtLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmUKICAgICBtb3ZlKGludmVydCA/
IFRydXN0ZWRJbW0zMigwKSA6IFRydXN0ZWRJbW0zMigxKSwgcmVzdWx0KTsKICAgICBkb25lLmFw
cGVuZChqdW1wKCkpOwogCisgICAgaXNTdHJpbmcubGluayh0aGlzKTsKKyAgICBpc0JpZ0ludC5s
aW5rKHRoaXMpOworICAgIEFTU0VSVChKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSA9PSBKU0Jp
Z0ludDo6b2Zmc2V0T2ZMZW5ndGgoKSk7CisgICAgbG9hZDMyKEFkZHJlc3ModmFsdWUucGF5bG9h
ZEdQUigpLCBKU0JpZ0ludDo6b2Zmc2V0T2ZMZW5ndGgoKSksIHJlc3VsdCk7CisgICAgY29tcGFy
ZTMyKGludmVydCA/IEVxdWFsIDogTm90RXF1YWwsIHJlc3VsdCwgVHJ1c3RlZEltbTMyKDApLCBy
ZXN1bHQpOworICAgIGRvbmUuYXBwZW5kKGp1bXAoKSk7CisKICAgICBub3RDZWxsLmxpbmsodGhp
cyk7CiAgICAgYXV0byBub3RJbnQzMiA9IGJyYW5jaElmTm90SW50MzIodmFsdWUpOwogICAgIGNv
bXBhcmUzMihpbnZlcnQgPyBFcXVhbCA6IE5vdEVxdWFsLCB2YWx1ZS5wYXlsb2FkR1BSKCksIFRy
dXN0ZWRJbW0zMigwKSwgcmVzdWx0KTsKQEAgLTg1NSwxNiArODUzLDEwIEBAIEFzc2VtYmx5SGVs
cGVyczo6SnVtcExpc3QgQXNzZW1ibHlIZWxwZXJzOjpicmFuY2hJZlZhbHVlKFZNJiB2bSwgSlNW
YWx1ZVJlZ3MgdmFsCiAgICAgSnVtcExpc3QgdHJ1dGh5OwogCiAgICAgYXV0byBub3RDZWxsID0g
YnJhbmNoSWZOb3RDZWxsKHZhbHVlKTsKLSAgICBhdXRvIGlzQ2VsbEJ1dE5vdFN0cmluZyA9IGJy
YW5jaElmTm90U3RyaW5nKHZhbHVlLnBheWxvYWRHUFIoKSk7Ci0gICAgdHJ1dGh5LmFwcGVuZChi
cmFuY2hUZXN0MzIoaW52ZXJ0ID8gWmVybyA6IE5vblplcm8sIEFkZHJlc3ModmFsdWUucGF5bG9h
ZEdQUigpLCBKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSkpKTsKLSAgICBkb25lLmFwcGVuZChq
dW1wKCkpOwotICAgIGlzQ2VsbEJ1dE5vdFN0cmluZy5saW5rKHRoaXMpOwotICAgIGF1dG8gaXND
ZWxsQnV0Tm90QmlnSW50T3JTdHJpbmcgPSBicmFuY2hJZk5vdEJpZ0ludCh2YWx1ZS5wYXlsb2Fk
R1BSKCkpOwotICAgIHRydXRoeS5hcHBlbmQoYnJhbmNoVGVzdDMyKGludmVydCA/IFplcm8gOiBO
b25aZXJvLCBBZGRyZXNzKHZhbHVlLnBheWxvYWRHUFIoKSwgSlNCaWdJbnQ6Om9mZnNldE9mTGVu
Z3RoKCkpKSk7Ci0gICAgZG9uZS5hcHBlbmQoanVtcCgpKTsKKyAgICBhdXRvIGlzU3RyaW5nID0g
YnJhbmNoSWZTdHJpbmcodmFsdWUucGF5bG9hZEdQUigpKTsKKyAgICBhdXRvIGlzQmlnSW50ID0g
YnJhbmNoSWZCaWdJbnQodmFsdWUucGF5bG9hZEdQUigpKTsKIAogICAgIGlmIChzaG91bGRDaGVj
a01hc3F1ZXJhZGVzQXNVbmRlZmluZWQpIHsKLSAgICAgICAgaXNDZWxsQnV0Tm90QmlnSW50T3JT
dHJpbmcubGluayh0aGlzKTsKICAgICAgICAgQVNTRVJUKHNjcmF0Y2hJZlNob3VsZENoZWNrTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCAhPSBJbnZhbGlkR1BSUmVnKTsKICAgICAgICAgSnVtcExpc3Qg
aXNOb3RNYXNxdWVyYWRlc0FzVW5kZWZpbmVkOwogICAgICAgICBpc05vdE1hc3F1ZXJhZGVzQXNV
bmRlZmluZWQuYXBwZW5kKGJyYW5jaFRlc3Q4KFplcm8sIEFkZHJlc3ModmFsdWUucGF5bG9hZEdQ
UigpLCBKU0NlbGw6OnR5cGVJbmZvRmxhZ3NPZmZzZXQoKSksIFRydXN0ZWRJbW0zMihNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkKSkpOwpAQCAtODg0LDExICs4NzYsMTcgQEAgQXNzZW1ibHlIZWxwZXJz
OjpKdW1wTGlzdCBBc3NlbWJseUhlbHBlcnM6OmJyYW5jaElmVmFsdWUoVk0mIHZtLCBKU1ZhbHVl
UmVncyB2YWwKICAgICAgICAgICAgIHRydXRoeS5hcHBlbmQoaXNOb3RNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoaW52ZXJ0KQotICAgICAgICAgICAg
ZG9uZS5hcHBlbmQoaXNDZWxsQnV0Tm90QmlnSW50T3JTdHJpbmcpOworICAgICAgICAgICAgZG9u
ZS5hcHBlbmQoanVtcCgpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdHJ1dGh5LmFwcGVu
ZChpc0NlbGxCdXROb3RCaWdJbnRPclN0cmluZyk7CisgICAgICAgICAgICB0cnV0aHkuYXBwZW5k
KGp1bXAoKSk7CiAgICAgfQogCisgICAgaXNTdHJpbmcubGluayh0aGlzKTsKKyAgICBpc0JpZ0lu
dC5saW5rKHRoaXMpOworICAgIEFTU0VSVChKU1N0cmluZzo6b2Zmc2V0T2ZMZW5ndGgoKSA9PSBK
U0JpZ0ludDo6b2Zmc2V0T2ZMZW5ndGgoKSk7CisgICAgdHJ1dGh5LmFwcGVuZChicmFuY2hUZXN0
MzIoaW52ZXJ0ID8gWmVybyA6IE5vblplcm8sIEFkZHJlc3ModmFsdWUucGF5bG9hZEdQUigpLCBK
U0JpZ0ludDo6b2Zmc2V0T2ZMZW5ndGgoKSkpKTsKKyAgICBkb25lLmFwcGVuZChqdW1wKCkpOwor
CiAgICAgbm90Q2VsbC5saW5rKHRoaXMpOwogICAgIGF1dG8gbm90SW50MzIgPSBicmFuY2hJZk5v
dEludDMyKHZhbHVlKTsKICAgICB0cnV0aHkuYXBwZW5kKGJyYW5jaFRlc3QzMihpbnZlcnQgPyBa
ZXJvIDogTm9uWmVybywgdmFsdWUucGF5bG9hZEdQUigpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0JpZ0ludC5jcHAKaW5kZXggMzUzNjNlZTIxODM0MTIxOThiNTlkYmU4NDIy
MTljYTRiZGFlZjY1OC4uYWZlM2NmZGUwMDM2YzllNmIyNTUxYWJkZWEwNTY0MjI4NTAwZGYxNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmNwcApAQCAtNjUsNyAr
NjUsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNCaWdJbnQ6OnNfaW5mbyA9CiBKU0JpZ0ludDo6SlNC
aWdJbnQoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgbGVuZ3RoKQogICAg
IDogQmFzZSh2bSwgc3RydWN0dXJlKQogICAgICwgbV9sZW5ndGgobGVuZ3RoKQotICAgICwgbV9z
aWduKGZhbHNlKQogeyB9CiAKIHZvaWQgSlNCaWdJbnQ6OmluaXRpYWxpemUoSW5pdGlhbGl6YXRp
b25UeXBlIGluaXRUeXBlKQpAQCAtMTY5NCwxMSArMTY5Myw2IEBAIGlubGluZSBzaXplX3QgSlNC
aWdJbnQ6Om9mZnNldE9mRGF0YSgpCiAgICAgcmV0dXJuIFdURjo6cm91bmRVcFRvTXVsdGlwbGVP
ZjxzaXplb2YoRGlnaXQpPihzaXplb2YoSlNCaWdJbnQpKTsKIH0KIAotc2l6ZV90IEpTQmlnSW50
OjpvZmZzZXRPZkxlbmd0aCgpCi17Ci0gICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0JpZ0lu
dCwgbV9sZW5ndGgpOwotfQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+CiBKU0JpZ0lu
dCogSlNCaWdJbnQ6OnBhcnNlSW50KEV4ZWNTdGF0ZSogZXhlYywgQ2hhclR5cGUqICBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIEVycm9yUGFyc2VNb2RlIGVycm9yUGFyc2VNb2RlKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJbnQuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQmlnSW50LmgKaW5kZXggZGIxZjRkMDEwNWYwNDhjZDA1
Y2JjZDhkMWU1NDZmYTNjMWFkYTRjYS4uOGUxNGNhNTEyMzBjNTU0ZTJkNGMxZTgyOWJkNGQ2YzBh
M2E1MzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCaWdJ
bnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0JpZ0ludC5oCkBAIC01
OCw3ICs1OCwxMCBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAg
IHN0YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIGludDY0X3QgdmFsdWUpOwogICAgIHN0
YXRpYyBKU0JpZ0ludCogY3JlYXRlRnJvbShWTSYsIGJvb2wgdmFsdWUpOwogCi0gICAgc3RhdGlj
IHNpemVfdCBvZmZzZXRPZkxlbmd0aCgpOworICAgIHN0YXRpYyBzaXplX3Qgb2Zmc2V0T2ZMZW5n
dGgoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihKU0JpZ0ludCwgbV9s
ZW5ndGgpOworICAgIH0KIAogICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CiAKQEAgLTIzMiw3ICsy
MzUsNyBAQCBjbGFzcyBKU0JpZ0ludCBmaW5hbCA6IHB1YmxpYyBKU0NlbGwgewogICAgIHZvaWQg
c2V0RGlnaXQodW5zaWduZWQsIERpZ2l0KTsKICAgICAgICAgCiAgICAgdW5zaWduZWQgbV9sZW5n
dGg7Ci0gICAgYm9vbCBtX3NpZ247CisgICAgYm9vbCBtX3NpZ24geyBmYWxzZSB9OwogfTsKIAog
aW5saW5lIEpTQmlnSW50KiBhc0JpZ0ludChKU1ZhbHVlIHZhbHVlKQo=
</data>
<flag name="review"
          id="374022"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>