<?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>145872</bug_id>
          
          <creation_ts>2015-06-10 22:04:27 -0700</creation_ts>
          <short_desc>WebCore::reportException() needs to be able to accept a raw thrown value in addition to Exception objects</short_desc>
          <delta_ts>2015-06-11 22:41:23 -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>528+ (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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mkwst</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1101225</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-10 22:04:27 -0700</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101226</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-10 22:04:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/21277462&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101478</commentid>
    <comment_count>2</comment_count>
      <attachid>254777</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-11 19:29:52 -0700</bug_when>
    <thetext>Created attachment 254777
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101479</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-11 19:31:48 -0700</bug_when>
    <thetext>Attachment 254777 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm:320:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm:324:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 2 in 18 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>1101487</commentid>
    <comment_count>4</comment_count>
      <attachid>254777</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2015-06-11 21:51:06 -0700</bug_when>
    <thetext>Comment on attachment 254777
the patch.

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:7
&gt; +

Add to that m_lastException is providing the stack trace that VM::exceptionStackTrace() used to provide

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:190
&gt;          exec-&gt;clearException();
&gt; +        exec-&gt;clearLastException();

Aren&apos;t these redundant with the same calls on lines 164 &amp; 165?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101488</commentid>
    <comment_count>5</comment_count>
      <attachid>254777</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-11 21:55:40 -0700</bug_when>
    <thetext>Comment on attachment 254777
the patch.

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:7
&gt;&gt; +
&gt; 
&gt; Add to that m_lastException is providing the stack trace that VM::exceptionStackTrace() used to provide

Will do.

&gt;&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:190
&gt;&gt; +        exec-&gt;clearLastException();
&gt; 
&gt; Aren&apos;t these redundant with the same calls on lines 164 &amp; 165?

These aren’t redundant.  They are needed in case the preceding toString() (called to make the errorMessage string) throws an exception.  reportException() is not supposed to cause a new exception to be thrown.  I will add a comment to document this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1101490</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-06-11 22:41:23 -0700</bug_when>
    <thetext>Thanks for the review.  I also added more details in the JavaScriptCore ChangeLog on why we need VM::lastEcception().

Landed in r185487: &lt;http://trac.webkit.org/r185487&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254777</attachid>
            <date>2015-06-11 19:29:52 -0700</date>
            <delta_ts>2015-06-11 21:51:06 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-145872.patch</filename>
            <type>text/plain</type>
            <size>21013</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg1NDgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDE1LTA2LTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oKSBuZWVkcyB0byBiZSBhYmxlIHRvIGFjY2VwdCBhIHJh
dyB0aHJvd24gdmFsdWUgaW4gYWRkaXRpb24gdG8gRXhjZXB0aW9uIG9iamVjdHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4NzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnZpc2l0RXhjZXB0aW9uKToKKyAgICAgICAgLSB2aXNpdCBW
TTo6bV9sYXN0RXhjZXB0aW9uIG9uIEdDcy4KKworICAgICAgICAqIGludGVycHJldGVyL0NhbGxG
cmFtZS5oOgorICAgICAgICAoSlNDOjpFeGVjU3RhdGU6Omxhc3RFeGNlcHRpb24pOgorICAgICAg
ICAoSlNDOjpFeGVjU3RhdGU6OmNsZWFyTGFzdEV4Y2VwdGlvbik6CisgICAgICAgIC0gY29udmVu
aWVuY2UgZnVuY3Rpb25zIHRvIGdldCBhbmQgY2xlYXIgdGhlIGxhc3QgZXhjZXB0aW9uLgorCisg
ICAgICAgICogcnVudGltZS9FeGNlcHRpb24uY3BwOgorICAgICAgICAoSlNDOjpFeGNlcHRpb246
OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkV4Y2VwdGlvbjo6ZmluaXNoQ3JlYXRpb24pOgorICAg
ICAgICAtIGFkZCBzdXBwb3J0IHRvIGNyZWF0ZSBhbiBFeGNlcHRpb24gb2JqZWN0IHdpdGhvdXQg
Y2FwdHVyaW5nIHRoZSBKUyBzdGFjayB0cmFjZS4KKyAgICAgICAgICBUaGlzIGlzIG5lZWRlZCBm
b3IgbWFraW5nIGFuIEV4Y2VwdGlvbiBvYmplY3QgdG8gd3JhcCBhIHRocm93biB2YWx1ZSB0aGF0
IGRvZXMKKyAgICAgICAgICBub3QgaGF2ZSBhIHN0YWNrIHRyYWNlLgorICAgICAgICAgIEN1cnJl
bnRseSwgdGhpcyBpcyBvbmx5IHVzZWQgYnkgV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uKCkgd2hl
biB0aGVyZSBpcyBubworICAgICAgICAgIEV4Y2VwdGlvbiBvYmplY3QgYW5kIG5vIGxhc3QgZXhj
ZXB0aW9uIGF2YWlsYWJsZSB0byBwcm92aWRlIGEgc3RhY2sgdHJhY2UuCisKKyAgICAgICAgKiBy
dW50aW1lL0V4Y2VwdGlvbi5oOgorICAgICAgICAoSlNDOjpFeGNlcHRpb246OmNhc3QpOiBEZWxl
dGVkLiAgTm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKyAgICAg
ICAgKEpTQzo6Vk06OmNsZWFyTGFzdEV4Y2VwdGlvbik6CisgICAgICAgIChKU0M6OlZNOjpzZXRF
eGNlcHRpb24pOgorICAgICAgICAoSlNDOjpWTTo6bGFzdEV4Y2VwdGlvbik6CisgICAgICAgIChK
U0M6OlZNOjphZGRyZXNzT2ZMYXN0RXhjZXB0aW9uKToKKyAgICAgICAgLSBBZGRlZCBzdXBwb3J0
IGZvciBWTTo6bV9sYXN0RXhjZXB0aW9uLgorCisgICAgICAgICogcnVudGltZS9WTUVudHJ5U2Nv
cGUuY3BwOgorICAgICAgICAoSlNDOjpWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZSk6CisgICAg
ICAgIC0gQ2xlYXIgVk06Om1fbGFzdEV4Y2VwdGlvbiB3aGVuIHdlIHJlLWVudGVyIHRoZSBWTS4g
IEV4Y2VwdGlvbnMgc2hvdWxkIGhhdmUgYmVlbgorICAgICAgICAgIGhhbmRsZWQgYmVmb3JlIHdl
IHJlLWVudGVyIHRoZSBWTSBhbnl3YXkuICBTbywgdGhpcyBpcyBhIGdvb2QgcGxhY2UgdG8gcmVs
ZWFzZQorICAgICAgICAgIHRoZSBjYWNoZWQgbGFzdCBleGNlcHRpb24uCisKKyAgICAgICAgICBO
T1RFOiB0aGlzIGlzIGFsc28gd2hlcmUgdGhlIG9sZCBjb2RlIGJlZm9yZSByMTg1MjU5IGNsZWFy
cyB0aGUgbGFzdCBleGNlcHRpb24KKyAgICAgICAgICBzdGFjayB0cmFjZS4gIFNvLCB3ZSdyZSBq
dXN0IHJlc3RvcmluZyB0aGUgcHJldmlvdXMgYmVoYXZpb3IgaGVyZSBpbiB0ZXJtcyBvZgorICAg
ICAgICAgIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGxhc3QgZXhjZXB0aW9uIHN0YWNrLgorCiAyMDE1
LTA2LTExICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTg1NDY1LgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDE4NTQ3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MTcsMTAgKzcxNywxMSBAQCB2b2lk
IEhlYXA6OnZpc2l0QXJndW1lbnRCdWZmZXJzKEhlYXBSb290CiB2b2lkIEhlYXA6OnZpc2l0RXhj
ZXB0aW9uKEhlYXBSb290VmlzaXRvciYgdmlzaXRvcikKIHsKICAgICBHQ1BIQVNFKE1hcmtpbmdF
eGNlcHRpb24pOwotICAgIGlmICghbV92bS0+ZXhjZXB0aW9uKCkpCisgICAgaWYgKCFtX3ZtLT5l
eGNlcHRpb24oKSAmJiAhbV92bS0+bGFzdEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm47CiAK
ICAgICB2aXNpdG9yLnZpc2l0KG1fdm0tPmFkZHJlc3NPZkV4Y2VwdGlvbigpKTsKKyAgICB2aXNp
dG9yLnZpc2l0KG1fdm0tPmFkZHJlc3NPZkxhc3RFeGNlcHRpb24oKSk7CiAKICAgICBpZiAoT3B0
aW9uczo6bG9nR0MoKSA9PSBHQ0xvZ2dpbmc6OlZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coIkV4
Y2VwdGlvbnM6XG4iLCBtX3Nsb3RWaXNpdG9yKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW50ZXJwcmV0ZXIvQ2FsbEZyYW1lLmgJKHJldmlzaW9uIDE4NTQ3NykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9DYWxsRnJhbWUuaAkod29ya2luZyBjb3B5KQpA
QCAtNzksNiArNzksOSBAQCBuYW1lc3BhY2UgSlNDICB7CiAgICAgICAgIEV4Y2VwdGlvbiogZXhj
ZXB0aW9uKCkgY29uc3QgeyByZXR1cm4gdm0oKS5leGNlcHRpb24oKTsgfQogICAgICAgICBib29s
IGhhZEV4Y2VwdGlvbigpIGNvbnN0IHsgcmV0dXJuICEhdm0oKS5leGNlcHRpb24oKTsgfQogCisg
ICAgICAgIEV4Y2VwdGlvbiogbGFzdEV4Y2VwdGlvbigpIGNvbnN0IHsgcmV0dXJuIHZtKCkubGFz
dEV4Y2VwdGlvbigpOyB9CisgICAgICAgIHZvaWQgY2xlYXJMYXN0RXhjZXB0aW9uKCkgeyB2bSgp
LmNsZWFyTGFzdEV4Y2VwdGlvbigpOyB9CisKICAgICAgICAgQXRvbWljU3RyaW5nVGFibGUqIGF0
b21pY1N0cmluZ1RhYmxlKCkgY29uc3QgeyByZXR1cm4gdm0oKS5hdG9taWNTdHJpbmdUYWJsZSgp
OyB9CiAgICAgICAgIGNvbnN0IENvbW1vbklkZW50aWZpZXJzJiBwcm9wZXJ0eU5hbWVzKCkgY29u
c3QgeyByZXR1cm4gKnZtKCkucHJvcGVydHlOYW1lczsgfQogICAgICAgICBjb25zdCBNYXJrZWRB
cmd1bWVudEJ1ZmZlciYgZW1wdHlMaXN0KCkgY29uc3QgeyByZXR1cm4gKnZtKCkuZW1wdHlMaXN0
OyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbi5jcHAJ
KHJldmlzaW9uIDE4NTQ3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2Vw
dGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxMCBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIEV4Y2VwdGlvbjo6c19pbmZvID0geyAiRXhjZXB0aW9uIiwg
JkJhc2U6OnNfaW5mbywgMCwgQ1JFQVRFX01FVEhPRF9UQUJMRShFeGNlcHRpb24pIH07CiAKLUV4
Y2VwdGlvbiogRXhjZXB0aW9uOjpjcmVhdGUoVk0mIHZtLCBKU1ZhbHVlIHRocm93blZhbHVlKQor
RXhjZXB0aW9uKiBFeGNlcHRpb246OmNyZWF0ZShWTSYgdm0sIEpTVmFsdWUgdGhyb3duVmFsdWUs
IFN0YWNrQ2FwdHVyZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgRXhjZXB0aW9uKiByZXN1bHQgPSBu
ZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxFeGNlcHRpb24+KHZtLmhlYXApKSBFeGNlcHRpb24o
dm0pOwotICAgIHJlc3VsdC0+ZmluaXNoQ3JlYXRpb24odm0sIHRocm93blZhbHVlKTsKKyAgICBy
ZXN1bHQtPmZpbmlzaENyZWF0aW9uKHZtLCB0aHJvd25WYWx1ZSwgYWN0aW9uKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCkBAIC02OCwxNCArNjgsMTUgQEAgRXhjZXB0aW9uOjp+RXhjZXB0aW9u
KCkKIHsKIH0KIAotdm9pZCBFeGNlcHRpb246OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNWYWx1
ZSB0aHJvd25WYWx1ZSkKK3ZvaWQgRXhjZXB0aW9uOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpT
VmFsdWUgdGhyb3duVmFsdWUsIFN0YWNrQ2FwdHVyZUFjdGlvbiBhY3Rpb24pCiB7CiAgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24odm0pOwogCiAgICAgbV92YWx1ZS5zZXQodm0sIHRoaXMsIHRocm93
blZhbHVlKTsKIAogICAgIFZlY3RvcjxTdGFja0ZyYW1lPiBzdGFja1RyYWNlOwotICAgIHZtLmlu
dGVycHJldGVyLT5nZXRTdGFja1RyYWNlKHN0YWNrVHJhY2UpOworICAgIGlmIChhY3Rpb24gPT0g
U3RhY2tDYXB0dXJlQWN0aW9uOjpDYXB0dXJlU3RhY2spCisgICAgICAgIHZtLmludGVycHJldGVy
LT5nZXRTdGFja1RyYWNlKHN0YWNrVHJhY2UpOwogICAgIG1fc3RhY2sgPSBSZWZDb3VudGVkQXJy
YXk8U3RhY2tGcmFtZT4oc3RhY2tUcmFjZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4Y2VwdGlvbi5oCShyZXZpc2lvbiAxODU0NzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyAr
MzYsMTEgQEAgcHVibGljOgogICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFN0cnVjdHVyZUlzSW1tb3J0
YWwgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAotICAgIHN0YXRpYyBFeGNlcHRpb24qIGNyZWF0
ZShWTSYsIEpTVmFsdWUgdGhyb3duVmFsdWUpOworICAgIGVudW0gU3RhY2tDYXB0dXJlQWN0aW9u
IHsKKyAgICAgICAgQ2FwdHVyZVN0YWNrLAorICAgICAgICBEb05vdENhcHR1cmVTdGFjaworICAg
IH07CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIEV4Y2VwdGlvbiogY3JlYXRlKFZNJiwg
SlNWYWx1ZSB0aHJvd25WYWx1ZSwgU3RhY2tDYXB0dXJlQWN0aW9uID0gQ2FwdHVyZVN0YWNrKTsK
IAogICAgIHN0YXRpYyBjb25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIHN0
YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CkBAIC01MiwxMSArNTYsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoRXhjZXB0aW9uLCBtX3ZhbHVlKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgRXhjZXB0aW9uKiBjYXN0KEpTVmFsdWUgZXhjZXB0aW9uQXNKU1ZhbHVl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGpzQ2FzdDxFeGNlcHRpb24qPihleGNlcHRpb25Bc0pT
VmFsdWUuYXNDZWxsKCkpOwotICAgIH0KLQogICAgIEpTVmFsdWUgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlLmdldCgpOyB9CiAgICAgY29uc3QgUmVmQ291bnRlZEFycmF5PFN0YWNrRnJh
bWU+JiBzdGFjaygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2s7IH0KIApAQCAtNjcsNyArNjYsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRXhjZXB0aW9uKFZNJik7Ci0gICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihWTSYsIEpTVmFsdWUgdGhyb3duVmFsdWUpOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oVk0mLCBKU1ZhbHVlIHRocm93blZhbHVlLCBTdGFja0NhcHR1cmVBY3Rpb24pOwogCiAg
ICAgV3JpdGVCYXJyaWVyPFVua25vd24+IG1fdmFsdWU7CiAgICAgUmVmQ291bnRlZEFycmF5PFN0
YWNrRnJhbWU+IG1fc3RhY2s7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJl
dmlzaW9uIDE4NTQ3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM3NCwxMSArMzc0LDIwIEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2
b2lkIGNsZWFyRXhjZXB0aW9uKCkgeyBtX2V4Y2VwdGlvbiA9IG51bGxwdHI7IH0KLSAgICB2b2lk
IHNldEV4Y2VwdGlvbihFeGNlcHRpb24qIGV4Y2VwdGlvbikgeyBtX2V4Y2VwdGlvbiA9IGV4Y2Vw
dGlvbjsgfQorICAgIHZvaWQgY2xlYXJMYXN0RXhjZXB0aW9uKCkgeyBtX2xhc3RFeGNlcHRpb24g
PSBudWxscHRyOyB9CisKKyAgICB2b2lkIHNldEV4Y2VwdGlvbihFeGNlcHRpb24qIGV4Y2VwdGlv
bikKKyAgICB7CisgICAgICAgIG1fZXhjZXB0aW9uID0gZXhjZXB0aW9uOworICAgICAgICBtX2xh
c3RFeGNlcHRpb24gPSBleGNlcHRpb247CisgICAgfQogCiAgICAgRXhjZXB0aW9uKiBleGNlcHRp
b24oKSBjb25zdCB7IHJldHVybiBtX2V4Y2VwdGlvbjsgfQogICAgIEpTQ2VsbCoqIGFkZHJlc3NP
ZkV4Y2VwdGlvbigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKio+KCZtX2V4Y2Vw
dGlvbik7IH0KIAorICAgIEV4Y2VwdGlvbiogbGFzdEV4Y2VwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fbGFzdEV4Y2VwdGlvbjsgfQorICAgIEpTQ2VsbCoqIGFkZHJlc3NPZkxhc3RFeGNlcHRpb24o
KSB7IHJldHVybiByZWludGVycHJldF9jYXN0PEpTQ2VsbCoqPigmbV9sYXN0RXhjZXB0aW9uKTsg
fQorCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCB0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUq
LCBFeGNlcHRpb24qKTsKICAgICBKU19FWFBPUlRfUFJJVkFURSBKU1ZhbHVlIHRocm93RXhjZXB0
aW9uKEV4ZWNTdGF0ZSosIEpTVmFsdWUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIEpTT2JqZWN0
KiB0aHJvd0V4Y2VwdGlvbihFeGVjU3RhdGUqLCBKU09iamVjdCopOwpAQCAtNTcwLDYgKzU3OSw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkKiBtX2xhc3RTdGFja1RvcDsKICAgICBFeGNl
cHRpb24qIG1fZXhjZXB0aW9uIHsgbnVsbHB0ciB9OworICAgIEV4Y2VwdGlvbiogbV9sYXN0RXhj
ZXB0aW9uIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9pbkRlZmluZU93blByb3BlcnR5OwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2RlQ2FjaGU+IG1fY29kZUNhY2hlOwogICAgIExlZ2FjeVByb2Zp
bGVyKiBtX2VuYWJsZWRQcm9maWxlcjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNpb24gMTg1NDc3KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDksNiArNDksOCBAQCBWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZShWTSYgdm0sIEpTR2xvCiAg
ICAgICAgIC8vIG9ic2VydmUgdGltZSB4b25lIGNoYW5nZXMuCiAgICAgICAgIHZtLnJlc2V0RGF0
ZUNhY2hlKCk7CiAgICAgfQorCisgICAgdm0uY2xlYXJMYXN0RXhjZXB0aW9uKCk7CiB9CiAKIHZv
aWQgVk1FbnRyeVNjb3BlOjpzZXRFbnRyeVNjb3BlRGlkUG9wTGlzdGVuZXIodm9pZCoga2V5LCBF
bnRyeVNjb3BlRGlkUG9wTGlzdGVuZXIgbGlzdGVuZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biAxODU0ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwzNCBAQAorMjAxNS0wNi0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+
CisKKyAgICAgICAgV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uKCkgbmVlZHMgdG8gYmUgYWJsZSB0
byBhY2NlcHQgYSByYXcgdGhyb3duIHZhbHVlIGluIGFkZGl0aW9uIHRvIEV4Y2VwdGlvbiBvYmpl
Y3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1
ODcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQVBJ
IHRlc3QgYWRkZWQ6IFdlYktpdDEuUmVwb3J0RXhjZXB0aW9uVGVzdC4KKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXBvcnRFeGNl
cHRpb24pOgorICAgICAgICAtIEFkZGVkIGEgdmVyc2lvbiBvZiByZXBvcnRFeGNlcHRpb24oKSB0
aGF0IHRha2VzIGEgSlNWYWx1ZSBpbnN0ZWFkIG9mIGFuIEV4Y2VwdGlvbgorICAgICAgICAgIG9i
amVjdC4gIFRoaXMgdmVyc2lvbiB3aWxsIGVuc3VyZSB0aGF0IHdlIGhhdmUgYW4gRXhjZXB0aW9u
IG9iamVjdCBiZWZvcmUgY2FsbGluZworICAgICAgICAgIGludG8gdGhlIG9yaWdpbmFsIHJlcG9y
dEV4Y2VwdGlvbigpIGFzIGZvbGxvd3M6CisKKyAgICAgICAgICAxLiBJZiB0aGUgSlNWYWx1ZSBp
cyBhbHJlYWR5IGFuIEV4Y2VwdGlvbiBvYmplY3QsIHdlJ3JlIGdvb2QgdG8gZ28uCisKKyAgICAg
ICAgICAyLiBFbHNlLCBpZiBWTTo6bGFzdEV4Y2VwdGlvbigpIGlzIGF2YWlsYWJsZSwgdXNlIHRo
YXQgYXMgdGhlIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICBUaGlzIGlzIGhvdyB0aGUgb2xkIGNv
ZGUgdXNlIHRvIGJlaGF2ZSAoaW4gdGVybXMgb2Ygd2hlcmUgaXQgZ2V0cyB0aGUgZXhjZXB0aW9u
CisgICAgICAgICAgICAgc3RhY2sgdHJhY2UpLiAgVGhlIGFzc3VtcHRpb24gaXMgdGhhdCByZXBv
cnRFeGNlcHRpb24oKSB3aWxsIGJlIGNhbGxlZCBpbgorICAgICAgICAgICAgIGEgdGltZWx5IG1h
bm5lciBiZWZvcmUgdGhlIGV4Y2VwdGlvbiBzdGFjayB0cmFjZSBoYXMgYmVlbiBwdXJnZWQuCisK
KyAgICAgICAgICAzLiBFbHNlLCBjcmVhdGUgYW4gRXhjZXB0aW9uIG9iamVjdCB3aXRoIG5vIHN0
YWNrIHRyYWNlLiAgVGhpcyBpcyB0aGUgZmFsbCBiYWNrCisgICAgICAgICAgICAgaW4gY2FzZSB0
aGUgY2xpZW50IGRpZCBub3QgY2FsbCByZXBvcnRFeGNlcHRpb24oKSBpbiBhIHRpbWVseSBtYW5u
ZXIuCisKKyAgICAgICAgLSBBbHNvIGNsZWFyIHRoZSBsYXN0IGV4Y2VwdGlvbiBhZnRlciB3ZSd2
ZSByZXBvcnRlZCBpdC4gIFRoaXMgaXMgaG93IHRoZSBvbGQgY29kZQorICAgICAgICAgIGJlZm9y
ZSByMTg1MjU5IGJlaGF2ZSAoaW4gdGVybXMgb2YgdGhlIGxpZmVjeWNsZSBvZiB0aGUgbGFzdCBl
eGNlcHRpb24gc3RhY2sKKyAgICAgICAgICB0cmFjZSkuICBXZSdyZSByZXN0b3JpbmcgdGhhdCBi
ZWhhdmlvciBoZXJlLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisK
IDIwMTUtMDYtMTEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODU0NzAuCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHJldmlzaW9uIDE4NTQ3NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzOSw2ICsxMzksMTkgQEAgSlNDOjpKU1ZhbHVlIGpzQXJyYXkoSlNDOjpFeGVjU3Rh
dGUqIGV4ZQogICAgIHJldHVybiBKU0M6OmNvbnN0cnVjdEFycmF5KGV4ZWMsIDAsIGdsb2JhbE9i
amVjdCwgbGlzdCk7CiB9CiAKK3ZvaWQgcmVwb3J0RXhjZXB0aW9uKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSBleGNlcHRpb25WYWx1ZSwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+dm0oKS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9j
aygpKTsKKyAgICBFeGNlcHRpb24qIGV4Y2VwdGlvbiA9IGpzRHluYW1pY0Nhc3Q8RXhjZXB0aW9u
Kj4oZXhjZXB0aW9uVmFsdWUpOworICAgIGlmICghZXhjZXB0aW9uKSB7CisgICAgICAgIGV4Y2Vw
dGlvbiA9IGV4ZWMtPmxhc3RFeGNlcHRpb24oKTsKKyAgICAgICAgaWYgKCFleGNlcHRpb24pCisg
ICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb246OmNyZWF0ZShleGVjLT52bSgpLCBleGNl
cHRpb25WYWx1ZSwgRXhjZXB0aW9uOjpEb05vdENhcHR1cmVTdGFjayk7CisgICAgfQorCisgICAg
cmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbiwgY2FjaGVkU2NyaXB0KTsKK30KKwogdm9p
ZCByZXBvcnRFeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeGNlcHRpb24qIGV4Y2VwdGlvbiwg
Q2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoZXhlYy0+
dm0oKS5jdXJyZW50VGhyZWFkSXNIb2xkaW5nQVBJTG9jaygpKTsKQEAgLTE0OSw2ICsxNjIsNyBA
QCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4CiAKICAgICBSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBjYWxsU3RhY2soY3JlYXRlU2NyaXB0Q2FsbFN0YWNrRnJvbUV4Y2Vw
dGlvbihleGVjLCBleGNlcHRpb24sIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRv
Q2FwdHVyZSkpOwogICAgIGV4ZWMtPmNsZWFyRXhjZXB0aW9uKCk7CisgICAgZXhlYy0+Y2xlYXJM
YXN0RXhjZXB0aW9uKCk7CiAKICAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0g
anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
ICAgICBpZiAoSlNET01XaW5kb3cqIHdpbmRvdyA9IGpzRHluYW1pY0Nhc3Q8SlNET01XaW5kb3cq
PihnbG9iYWxPYmplY3QpKSB7CkBAIC0xNzMsNiArMTg3LDcgQEAgdm9pZCByZXBvcnRFeGNlcHRp
b24oRXhlY1N0YXRlKiBleGVjLCBFeAogICAgICAgICAvLyBJZiB0aGlzIGlzIGEgY3VzdG9uIGV4
Y2VwdGlvbiBvYmplY3QsIGNhbGwgdG9TdHJpbmcgb24gaXQgdG8gdHJ5IGFuZCBnZXQgYSBuaWNl
IHN0cmluZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGV4Y2VwdGlvbi4KICAgICAgICAgZXJyb3JN
ZXNzYWdlID0gZXhjZXB0aW9uLT52YWx1ZSgpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICAgICAgZXhlYy0+Y2xlYXJFeGNlcHRpb24oKTsKKyAgICAgICAgZXhlYy0+Y2xlYXJMYXN0
RXhjZXB0aW9uKCk7CiAgICAgfQogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCA9IGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgJKHJldmlz
aW9uIDE4NTQ3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsNiArMjQyLDcgQEAgdm9pZCBhZGRJbXB1cmVQcm9wZXJ0
eShjb25zdCBBdG9taWNTdHJpbgogCiBjb25zdCBKU0M6Okhhc2hUYWJsZSYgZ2V0SGFzaFRhYmxl
Rm9yR2xvYmFsRGF0YShKU0M6OlZNJiwgY29uc3QgSlNDOjpIYXNoVGFibGUmIHN0YXRpY1RhYmxl
KTsKIAorV0VCQ09SRV9FWFBPUlQgdm9pZCByZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTVmFsdWUgZXhjZXB0aW9uLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RXhj
ZXB0aW9uKiwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIpOwogdm9pZCByZXBvcnRDdXJyZW50RXhj
ZXB0aW9uKEpTQzo6RXhlY1N0YXRlKik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTQ4
MikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDE1LTA2LTExICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oKSBuZWVkcyB0byBiZSBhYmxlIHRvIGFjY2Vw
dCBhIHJhdyB0aHJvd24gdmFsdWUgaW4gYWRkaXRpb24gdG8gRXhjZXB0aW9uIG9iamVjdHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4NzIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZTo6cmVwb3J0RXhjZXB0aW9uKToKKyAgICAgICAgLSBEb24ndCBhc3N1bWUg
d2UgaGF2ZSBhbiBFeGNlcHRpb24gb2JqZWN0LiAgTGV0IFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlv
bigpIHRha2UKKyAgICAgICAgICBjYXJlIG9mIGl0LgorCiAyMDE1LTA2LTExICBDYXJsb3MgQWxi
ZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtDTWFrZV0g
VW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE4NTQ3OS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCShyZXZpc2lvbiAxODU0NzcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDcg
KzUyMyw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlcG9ydEV4Y2VwdGlvbihKU0MKICAgICBp
ZiAoIXRvSlNET01XaW5kb3coZXhlY1N0YXRlLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oZXhlY1N0YXRlLCBF
eGNlcHRpb246OmNhc3QodG9KUyhleGVjU3RhdGUsIGV4Y2VwdGlvbikpKTsKKyAgICBXZWJDb3Jl
OjpyZXBvcnRFeGNlcHRpb24oZXhlY1N0YXRlLCB0b0pTKGV4ZWNTdGF0ZSwgZXhjZXB0aW9uKSk7
CiB9CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmRpZENyZWF0ZVBhZ2UoV2ViUGFnZSogcGFnZSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NTQ4MikKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA2LTEx
ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJDb3JlOjpyZXBv
cnRFeGNlcHRpb24oKSBuZWVkcyB0byBiZSBhYmxlIHRvIGFjY2VwdCBhIHJhdyB0aHJvd24gdmFs
dWUgaW4gYWRkaXRpb24gdG8gRXhjZXB0aW9uIG9iamVjdHMuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDU4NzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAg
ICAgKCtbV2ViVmlldyBfcmVwb3J0RXhjZXB0aW9uOmluQ29udGV4dDpdKToKKyAgICAgICAgLSBE
b24ndCBhc3N1bWUgd2UgaGF2ZSBhbiBFeGNlcHRpb24gb2JqZWN0LiAgTGV0IFdlYkNvcmU6OnJl
cG9ydEV4Y2VwdGlvbigpIHRha2UKKyAgICAgICAgICBjYXJlIG9mIGl0LgorCiAyMDE1LTA2LTEx
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbWVkaWEgY29u
dHJvbHMgSlMgYW5kIENTUyB0byB1c2UgcGljdHVyZS1pbi1waWN0dXJlCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAxODU0NzcpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTcyMiw4ICs3MjIs
NyBAQCArICh2b2lkKV9yZXBvcnRFeGNlcHRpb246KEpTVmFsdWVSZWYpZXhjCiAgICAgaWYgKCF0
b0pTRE9NV2luZG93KGV4ZWNTdGF0ZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgRXhjZXB0aW9uKiB2bUV4Y2VwdGlvbiA9IEV4Y2VwdGlvbjo6Y2FzdCh0
b0pTKGV4ZWNTdGF0ZSwgZXhjZXB0aW9uKSk7Ci0gICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWNTdGF0
ZSwgdm1FeGNlcHRpb24pOworICAgIHJlcG9ydEV4Y2VwdGlvbihleGVjU3RhdGUsIHRvSlMoZXhl
Y1N0YXRlLCBleGNlcHRpb24pKTsKIH0KIAogc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUFw
cGxpY2F0aW9uQ2FjaGVQYXRoSWZOZWNlc3NhcnkoKQpJbmRleDogU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2
aXNpb24gMTg1NDgyKQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTUtMDYtMTEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgorCisgICAgICAgIFdlYkNvcmU6OnJlcG9ydEV4Y2VwdGlvbigpIG5lZWRzIHRvIGJl
IGFibGUgdG8gYWNjZXB0IGEgcmF3IHRocm93biB2YWx1ZSBpbiBhZGRpdGlvbiB0byBFeGNlcHRp
b24gb2JqZWN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NTg3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpyZXBvcnRFeGNlcHRpb24pOgor
ICAgICAgICAtIERvbid0IGFzc3VtZSB3ZSBoYXZlIGFuIEV4Y2VwdGlvbiBvYmplY3QuICBMZXQg
V2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uKCkgdGFrZQorICAgICAgICAgIGNhcmUgb2YgaXQuCisK
IDIwMTUtMDYtMDkgIEh5dW5nd29vayBMZWUgIDxoeXVuZ3dvb2subGVlQG5hdmVyY29ycC5jb20+
CiAKICAgICAgICAgSW1wbGVtZW50IGR1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soKSBmb3Ig
V2luIGxheW91dFRlc3RDb250cm9sbGVyLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlz
aW9uIDE4NTQ3NykKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MDQ2LDggKzYwNDYsNyBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OnJlcG9yCiAgICAgaWYgKCF0b0pTRE9NV2luZG93KGV4ZWNTdGF0ZS0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKSkKICAgICAgICAgcmV0dXJuIEVfRkFJTDsKIAotICAgIEpTQzo6RXhjZXB0aW9u
KiB2bUV4Y2VwdGlvbiA9IEpTQzo6RXhjZXB0aW9uOjpjYXN0KHRvSlMoZXhlY1N0YXRlLCBleGNl
cHRpb24pKTsKLSAgICBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oZXhlY1N0YXRlLCB2bUV4Y2Vw
dGlvbik7CisgICAgV2ViQ29yZTo6cmVwb3J0RXhjZXB0aW9uKGV4ZWNTdGF0ZSwgdG9KUyhleGVj
U3RhdGUsIGV4Y2VwdGlvbikpOwogICAgIHJldHVybiBTX09LOwogfQogCkluZGV4OiBUb29scy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODU0ODIp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAx
NS0wNi0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29y
ZTo6cmVwb3J0RXhjZXB0aW9uKCkgbmVlZHMgdG8gYmUgYWJsZSB0byBhY2NlcHQgYSByYXcgdGhy
b3duIHZhbHVlIGluIGFkZGl0aW9uIHRvIEV4Y2VwdGlvbiBvYmplY3RzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1ODcyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L21hYy9XZWJWaWV3RGlkQ3JlYXRlSmF2YVNjcmlwdENvbnRleHQubW06CisgICAgICAgICgtW0Rp
ZENyZWF0ZUphdmFTY3JpcHRDb250ZXh0RnJhbWVMb2FkRGVsZWdhdGUgd2ViVmlldzpkaWRDcmVh
dGVKYXZhU2NyaXB0Q29udGV4dDpmb3JGcmFtZTpdKToKKyAgICAgICAgLSBFeGVyY2lzZXMgdGhl
IEpTQyBPYmpDIEFQSSB0byBjYWxsIGEgZnVuY3Rpb24gd2hpY2ggdGhyb3dzIGFuIGV4Y2VwdGlv
bi4gIFRoYXQKKyAgICAgICAgICBleGNlcHRpb24gd2lsbCBiZSByZXR1cm5lZCBhcyBhIEpTVmFs
dWUgaW5zdGVhZCBvZiBhbiBFeGNlcHRpb24gb2JqZWN0LiAgV2UKKyAgICAgICAgICB3aWxsIHVz
ZSB0aGlzIEpTVmFsdWUgdG8gdGVzdCBXZWJDb3JlOjpyZXBvcnRFeGNlcHRpb24oKSB0byBjb25m
aXJtIHRoYXQgaXQgaXMKKyAgICAgICAgICBhYmxlIHRvIGhhbmRsZSBhbiBleGNlcHRpb24gdmFs
dWUgd2hpY2ggaXMgbm90IGFuIEV4Y2VwdGlvbiBvYmplY3QuCisKIDIwMTUtMDYtMTEgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIENhbm5vdCBydW4g
cnVuLXdlYmtpdC10ZXN0cyB3aXRoIHB1YmxpYyBTREs7IExheW91dFRlc3RSZWxheSBmYWlscyB0
byBidWlsZApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZENy
ZWF0ZUphdmFTY3JpcHRDb250ZXh0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL1dlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbQkocmV2aXNp
b24gMTg1NDc3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvV2ViVmlld0RpZENy
ZWF0ZUphdmFTY3JpcHRDb250ZXh0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0V4cG9ydC5oPgogI2ltcG9ydCA8SmF2YVNjcmlw
dENvcmUvSlNDb250ZXh0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViRnJhbWVMb2FkRGVsZWdhdGVQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KIAogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECkBAIC0zOSw2ICs0MCw3
IEBAIHN0YXRpYyBib29sIGRpZENvbXBsZXRlVGVzdFN1Y2Nlc3NmdWxseSAKIHN0YXRpYyBib29s
IGRpZENhbGxXaW5kb3dDYWxsYmFjayA9IGZhbHNlOwogc3RhdGljIGJvb2wgZGlkRmluZE15Q3Vz
dG9tUHJvcGVydHkgPSBmYWxzZTsKIHN0YXRpYyBib29sIGRpZEluc2VydE15Q3VzdG9tUHJvcGVy
dHkgPSB0cnVlOworc3RhdGljIGJvb2wgZGlkUmVwb3J0RXhjZXB0aW9uID0gZmFsc2U7CiAKIEBw
cm90b2NvbCBNeUNvbnNvbGU8SlNFeHBvcnQ+CiAtICh2b2lkKWxvZzooTlNTdHJpbmcgKilzOwpA
QCAtMTA3LDYgKzEwOSwyNyBAQCAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKil3ZWJWaWV3IGRp
ZENyCiAgICAgICAgIFtlbGVtZW50IHNldFZhbHVlOmZvcnR5VHdvIGZvclByb3BlcnR5OkAibXlD
dXN0b21Qcm9wZXJ0eSJdOwogICAgICAgICBkaWRJbnNlcnRNeUN1c3RvbVByb3BlcnR5ID0gdHJ1
ZTsKICAgICB9OworCisgICAgY29udGV4dFtAInRlc3RSZXBvcnRFeGNlcHRpb24iXSA9IF57Cisg
ICAgICAgIEpTQ29udGV4dCogY29udGV4dCA9IFtKU0NvbnRleHQgY3VycmVudENvbnRleHRdOwor
ICAgICAgICBbY29udGV4dCBldmFsdWF0ZVNjcmlwdDpAImZ1bmN0aW9uIGRvVGhyb3coKSB7IHRo
cm93ICdUZXN0RXJyb3InOyB9Il07CisKKyAgICAgICAgSlNHbG9iYWxDb250ZXh0UmVmIGdsb2Jh
bENvbnRleHQgPSBbY29udGV4dCBKU0dsb2JhbENvbnRleHRSZWZdOworICAgICAgICBKU09iamVj
dFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoZ2xvYmFsQ29udGV4
dCk7CisKKyAgICAgICAgSlNTdHJpbmdSZWYganNTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiZG9UaHJvdyIpOworICAgICAgICBKU1ZhbHVlUmVmIGZ1bmN0aW9uID0gSlNP
YmplY3RHZXRQcm9wZXJ0eShnbG9iYWxDb250ZXh0LCBnbG9iYWxPYmplY3QsIGpzU3RyaW5nLCBu
dWxscHRyKTsKKyAgICAgICAgSlNTdHJpbmdSZWxlYXNlKGpzU3RyaW5nKTsKKworICAgICAgICBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdID0geyB9OworCisgICAgICAgIEpTVmFsdWVSZWYg
ZXhjZXB0aW9uID0gMDsKKyAgICAgICAgSlNPYmplY3RDYWxsQXNGdW5jdGlvbihnbG9iYWxDb250
ZXh0LCAoSlNPYmplY3RSZWYpZnVuY3Rpb24sIGdsb2JhbE9iamVjdCwgMCwgYXJndW1lbnRzLCAm
ZXhjZXB0aW9uKTsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgW1dlYlZp
ZXcgX3JlcG9ydEV4Y2VwdGlvbjpleGNlcHRpb24gaW5Db250ZXh0Omdsb2JhbENvbnRleHRdOwor
ICAgICAgICAgICAgZGlkUmVwb3J0RXhjZXB0aW9uID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIH07
CiB9CiAKIEBlbmQKQEAgLTI4Myw2ICszMDYsMjkgQEAgVEVTVChXZWJLaXQxLCBEaWRDcmVhdGVK
YXZhU2NyaXB0Q29udGV4dAogICAgIH0KIH0KIAorVEVTVChXZWJLaXQxLCBSZXBvcnRFeGNlcHRp
b25UZXN0KQoreworICAgIGRpZFJlcG9ydEV4Y2VwdGlvbiA9IGZhbHNlOworICAgIEBhdXRvcmVs
ZWFzZXBvb2wgeworICAgICAgICBSZXRhaW5QdHI8V2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMo
W1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTIwLCAyMDAp
IGZyYW1lTmFtZTpuaWwgZ3JvdXBOYW1lOm5pbF0pOworICAgICAgICBSZXRhaW5QdHI8RGlkQ3Jl
YXRlSmF2YVNjcmlwdENvbnRleHRGcmFtZUxvYWREZWxlZ2F0ZT4gZnJhbWVMb2FkRGVsZWdhdGUg
PSBhZG9wdE5TKFtbRGlkQ3JlYXRlSmF2YVNjcmlwdENvbnRleHRGcmFtZUxvYWREZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgICAgICAKKyAgICAgICAgd2ViVmlldy5nZXQoKS5mcmFtZUxvYWRE
ZWxlZ2F0ZSA9IGZyYW1lTG9hZERlbGVnYXRlLmdldCgpOworICAgICAgICBXZWJGcmFtZSAqbWFp
bkZyYW1lID0gd2ViVmlldy5nZXQoKS5tYWluRnJhbWU7CisgICAgICAgIAorICAgICAgICBOU1N0
cmluZyAqYm9keVN0cmluZyA9CisgICAgICAgICAgICBAIjxib2R5PiBcCisgICAgICAgICAgICAg
ICAgPHNjcmlwdD4gXAorICAgICAgICAgICAgICAgICAgICB0ZXN0UmVwb3J0RXhjZXB0aW9uKCk7
IFwKKyAgICAgICAgICAgICAgICA8L3NjcmlwdD4gXAorICAgICAgICAgICAgPC9ib2R5PiI7Cisg
ICAgICAgIE5TVVJMICphYm91dEJsYW5rVVJMID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJhYm91
dDpibGFuayJdOworICAgICAgICAKKyAgICAgICAgW21haW5GcmFtZSBsb2FkSFRNTFN0cmluZzpi
b2R5U3RyaW5nIGJhc2VVUkw6YWJvdXRCbGFua1VSTF07CisgICAgICAgIFV0aWw6OnJ1bigmZGlk
UmVwb3J0RXhjZXB0aW9uKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKIAogI2VuZGlmIC8vIEVOQUJMRShKU0NfT0JKQ19BUEkpCg==
</data>
<flag name="review"
          id="279770"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>