<?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>127326</bug_id>
          
          <creation_ts>2014-01-20 17:37:31 -0800</creation_ts>
          <short_desc>IC status classes should directly query exit site information</short_desc>
          <delta_ts>2014-01-25 20:02:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>127325</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>970095</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-20 17:37:31 -0800</bug_when>
    <thetext>This consolidates all of the reasoning about whether or not to inline an IC at the IR level.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970096</commentid>
    <comment_count>1</comment_count>
      <attachid>221707</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-20 17:38:25 -0800</bug_when>
    <thetext>Created attachment 221707
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970098</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-20 17:40:18 -0800</bug_when>
    <thetext>Attachment 221707 did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:581:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 11 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>970138</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-20 19:29:52 -0800</bug_when>
    <thetext>Landed in branch in http://trac.webkit.org/changeset/162424</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970159</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-20 20:48:51 -0800</bug_when>
    <thetext>Looks like the no DFG build needs some help:

     1&gt;..\bytecode\CallLinkStatus.cpp(111): error C2039: &apos;hasExitSite&apos; : is not a member of &apos;JSC::CodeBlock&apos;
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\bytecode\CodeBlock.h(96) : see declaration of &apos;JSC::CodeBlock&apos;
         ExitKind.cpp
     1&gt;..\bytecode\CallLinkStatus.cpp(112): error C2039: &apos;hasExitSite&apos; : is not a member of &apos;JSC::CodeBlock&apos;
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\bytecode\CodeBlock.h(96) : see declaration of &apos;JSC::CodeBlock&apos;
     1&gt;..\bytecode\CallLinkStatus.cpp(113): error C2039: &apos;hasExitSite&apos; : is not a member of &apos;JSC::CodeBlock&apos;
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\bytecode\CodeBlock.h(96) : see declaration of &apos;JSC::CodeBlock&apos;
     1&gt;..\bytecode\CallLinkStatus.cpp(131): error C2039: &apos;hasExitSite&apos; : is not a member of &apos;JSC::CodeBlock&apos;
                 c:\cygwin\home\buildbot\webkit\source\javascriptcore\bytecode\CodeBlock.h(96) : see declaration of &apos;JSC::CodeBlock&apos;
     1&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\assembler\X86Assembler.h(2348): warning C4309: &apos;argument&apos; : truncation of constant value (..\bytecode\CodeBlockJettisoningWatchpoint.cpp)
         GetByIdStatus.cpp
         InlineCallFrameSet.cpp
         JumpTable.cpp
     1&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\assembler\X86Assembler.h(2348): warning C4309: &apos;argument&apos; : truncation of constant value (..\bytecode\InlineCallFrameSet.cpp)
     1&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\assembler\X86Assembler.h(2348): warning C4309: &apos;argument&apos; : truncation of constant value (..\bytecode\ExecutionCounter.cpp)
     1&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\assembler\X86Assembler.h(2348): warning C4309: &apos;argument&apos; : truncation of constant value (..\bytecode\JumpTable.cpp)
     1&gt;c:\cygwin\home\buildbot\webkit\source\javascriptcore\assembler\X86Assembler.h(2348): warning C4309: &apos;argument&apos; : truncation of constant value (..\bytecode\GetByIdStatus.cpp)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>970160</commentid>
    <comment_count>5</comment_count>
      <attachid>221707</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-20 20:49:02 -0800</bug_when>
    <thetext>Comment on attachment 221707
the patch

r=me with fixed build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972119</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-01-25 20:02:55 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/162424</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221707</attachid>
            <date>2014-01-20 17:38:25 -0800</date>
            <delta_ts>2014-01-20 20:49:02 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>18006</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYyMzk0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE0LTAxLTIwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
SUMgc3RhdHVzIGNsYXNzZXMgc2hvdWxkIGRpcmVjdGx5IHF1ZXJ5IGV4aXQgc2l0ZSBpbmZvcm1h
dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3
MzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAg
ICAgICBUaGlzIGNvbnNvbGlkYXRlcyBhbGwgb2YgdGhlIHJlYXNvbmluZyBhYm91dCB3aGV0aGVy
IG9yIG5vdCB0byBpbmxpbmUgYW4gSUMgYXQgdGhlIElSIGxldmVsLgorCisgICAgICAgICogYnl0
ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwOgorICAgICAgICAoSlNDOjpDYWxsTGlua1N0YXR1czo6
Y29tcHV0ZUZyb21MTEludCk6CisgICAgICAgIChKU0M6OkNhbGxMaW5rU3RhdHVzOjpjb21wdXRl
Rm9yKToKKyAgICAgICAgKiBieXRlY29kZS9DYWxsTGlua1N0YXR1cy5oOgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6Omhhc0V4aXRTaXRl
KToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcDoKKyAgICAgICAgKEpTQzo6
R2V0QnlJZFN0YXR1czo6aGFzRXhpdFNpdGUpOgorICAgICAgICAoSlNDOjpHZXRCeUlkU3RhdHVz
Ojpjb21wdXRlRm9yKToKKyAgICAgICAgKiBieXRlY29kZS9HZXRCeUlkU3RhdHVzLmg6CisgICAg
ICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHA6CisgICAgICAgIChKU0M6OlB1dEJ5SWRT
dGF0dXM6Omhhc0V4aXRTaXRlKToKKyAgICAgICAgKEpTQzo6UHV0QnlJZFN0YXR1czo6Y29tcHV0
ZUZvcik6CisgICAgICAgICogYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oOgorICAgICAgICAqIGJ5
dGVjb2RlL1N0cnVjdHVyZVNldC5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTZXQ6OlN0cnVj
dHVyZVNldCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVNldDo6YWRkKToKKyAgICAgICAgKiBk
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVDYWxsKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFu
ZGxlR2V0QnlJZCk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxv
Y2spOgorICAgICAgICAqIGRmZy9ERkdWYWxpZGF0ZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
VmFsaWRhdGU6OnZhbGlkYXRlKToKKwogMjAxNC0wMS0yMCAgTWF0dGhldyBNaXJtYW4gIDxtbWly
bWFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBcml0aFNxcnQgaW4gRlRMCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0YXR1cy5jcHAJKHJldmlz
aW9uIDE2MjM2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlua1N0
YXR1cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTgxLDExICs4MSwxNyBAQCBJbnRy
aW5zaWMgQ2FsbExpbmtTdGF0dXM6OmludHJpbnNpY0ZvcihDCiAgICAgcmV0dXJuIG1fZXhlY3V0
YWJsZS0+aW50cmluc2ljRm9yKGtpbmQpOwogfQogCi1DYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0
YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVk
IGJ5dGVjb2RlSW5kZXgpCitDYWxsTGlua1N0YXR1cyBDYWxsTGlua1N0YXR1czo6Y29tcHV0ZUZy
b21MTEludChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiBsb2NrZXIsIENvZGVCbG9jayogcHJv
ZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCkKIHsKICAgICBVTlVTRURfUEFSQU0o
cHJvZmlsZWRCbG9jayk7CiAgICAgVU5VU0VEX1BBUkFNKGJ5dGVjb2RlSW5kZXgpOwogI2lmIEVO
QUJMRShMTElOVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9ja2VyLCBE
Rkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkRnVuY3Rpb24pKSkgeworICAg
ICAgICAvLyBXZSBjb3VsZCBmb3JjZSB0aGlzIHRvIGJlIGEgY2xvc3VyZSBjYWxsLCBidXQgaW5z
dGVhZCB3ZSdsbCBqdXN0IGFzc3VtZSB0aGF0IGl0CisgICAgICAgIC8vIHRha2VzIHNsb3cgcGF0
aC4KKyAgICAgICAgcmV0dXJuIHRha2VzU2xvd1BhdGgoKTsKKyAgICB9CisgICAgCiAgICAgSW5z
dHJ1Y3Rpb24qIGluc3RydWN0aW9uID0gcHJvZmlsZWRCbG9jay0+aW5zdHJ1Y3Rpb25zKCkuYmVn
aW4oKSArIGJ5dGVjb2RlSW5kZXg7CiAgICAgTExJbnRDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5m
byA9IGluc3RydWN0aW9uWzVdLnUuY2FsbExpbmtJbmZvOwogICAgIApAQCAtMTAyLDExICsxMDgs
MTYgQEAgQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6OmNvbXB1dGVGbwogICAgIFVOVVNF
RF9QQVJBTShwcm9maWxlZEJsb2NrKTsKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7
CiAjaWYgRU5BQkxFKEpJVCkKKyAgICBpZiAocHJvZmlsZWRCbG9jay0+aGFzRXhpdFNpdGUobG9j
a2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkQ2FjaGUpKQorICAg
ICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRF
eGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpKQorICAgICAgICB8fCBw
cm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShi
eXRlY29kZUluZGV4LCBCYWRFeGVjdXRhYmxlKSkpCisgICAgICAgIHJldHVybiB0YWtlc1Nsb3dQ
YXRoKCk7CisgICAgCiAgICAgaWYgKCFwcm9maWxlZEJsb2NrLT5oYXNCYXNlbGluZUpJVFByb2Zp
bGluZygpKQotICAgICAgICByZXR1cm4gY29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBi
eXRlY29kZUluZGV4KTsKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGcm9tTExJbnQobG9ja2VyLCBw
cm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KTsKICAgICAKICAgICBpZiAocHJvZmlsZWRCbG9j
ay0+Y291bGRUYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCi0gICAgICAgIHJldHVybiBDYWxs
TGlua1N0YXR1czo6dGFrZXNTbG93UGF0aCgpOworICAgICAgICByZXR1cm4gdGFrZXNTbG93UGF0
aCgpOwogICAgIAogICAgIENhbGxMaW5rSW5mbyYgY2FsbExpbmtJbmZvID0gcHJvZmlsZWRCbG9j
ay0+Z2V0Q2FsbExpbmtJbmZvKGJ5dGVjb2RlSW5kZXgpOwogICAgIGlmIChjYWxsTGlua0luZm8u
c3R1YikKQEAgLTExNCw5ICsxMjUsMTAgQEAgQ2FsbExpbmtTdGF0dXMgQ2FsbExpbmtTdGF0dXM6
OmNvbXB1dGVGbwogICAgIAogICAgIEpTRnVuY3Rpb24qIHRhcmdldCA9IGNhbGxMaW5rSW5mby5s
YXN0U2VlbkNhbGxlZS5nZXQoKTsKICAgICBpZiAoIXRhcmdldCkKLSAgICAgICAgcmV0dXJuIGNv
bXB1dGVGcm9tTExJbnQocHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCk7CisgICAgICAgIHJl
dHVybiBjb21wdXRlRnJvbUxMSW50KGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRl
eCk7CiAgICAgCi0gICAgaWYgKGNhbGxMaW5rSW5mby5oYXNTZWVuQ2xvc3VyZSkKKyAgICBpZiAo
Y2FsbExpbmtJbmZvLmhhc1NlZW5DbG9zdXJlCisgICAgICAgIHx8IHByb2ZpbGVkQmxvY2stPmhh
c0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVjb2RlSW5kZXgsIEJh
ZEZ1bmN0aW9uKSkpCiAgICAgICAgIHJldHVybiBDYWxsTGlua1N0YXR1cyh0YXJnZXQtPmV4ZWN1
dGFibGUoKSwgdGFyZ2V0LT5zdHJ1Y3R1cmUoKSk7CiAKICAgICByZXR1cm4gQ2FsbExpbmtTdGF0
dXModGFyZ2V0KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a1N0YXR1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
YWxsTGlua1N0YXR1cy5oCShyZXZpc2lvbiAxNjIzNjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ2FsbExpbmtTdGF0dXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjcsNiArMjcsNyBAQAogI2RlZmluZSBDYWxsTGlua1N0YXR1c19oCiAKICNpbmNsdWRlICJDb2Rl
U3BlY2lhbGl6YXRpb25LaW5kLmgiCisjaW5jbHVkZSAiQ29uY3VycmVudEpJVExvY2suaCIKICNp
bmNsdWRlICJJbnRyaW5zaWMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlLmgiCiAKQEAgLTc0LDMy
ICs3NSw2IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0
ZUZvcihDb2RlQmxvY2sqLCB1bnNpZ25lZCBieXRlY29kZUluZGV4KTsKICAgICAKLSAgICBDYWxs
TGlua1N0YXR1cyYgc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0
ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1Byb3ZlZCk7Ci0gICAgICAgIGlmIChkaWRI
YXZlRXhpdFNpdGUpIHsKLSAgICAgICAgICAgIC8vIFR1cm4gdGhpcyBpbnRvIGEgY2xvc3VyZSBj
YWxsLgotICAgICAgICAgICAgbV9jYWxsVGFyZ2V0ID0gSlNWYWx1ZSgpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0gICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNl
dEhhc0JhZENhY2hlRXhpdFNpdGUoYm9vbCBkaWRIYXZlRXhpdFNpdGUpCi0gICAgewotICAgICAg
ICBBU1NFUlQoIW1faXNQcm92ZWQpOwotICAgICAgICBpZiAoZGlkSGF2ZUV4aXRTaXRlKQotICAg
ICAgICAgICAgKnRoaXMgPSB0YWtlc1Nsb3dQYXRoKCk7Ci0gICAgICAgIHJldHVybiAqdGhpczsK
LSAgICB9Ci0gICAgCi0gICAgQ2FsbExpbmtTdGF0dXMmIHNldEhhc0JhZEV4ZWN1dGFibGVFeGl0
U2l0ZShib29sIGRpZEhhdmVFeGl0U2l0ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9pc1By
b3ZlZCk7Ci0gICAgICAgIGlmIChkaWRIYXZlRXhpdFNpdGUpCi0gICAgICAgICAgICAqdGhpcyA9
IHRha2VzU2xvd1BhdGgoKTsKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLSAgICAKICAg
ICBib29sIGlzU2V0KCkgY29uc3QgeyByZXR1cm4gbV9jYWxsVGFyZ2V0IHx8IG1fZXhlY3V0YWJs
ZSB8fCBtX2NvdWxkVGFrZVNsb3dQYXRoOyB9CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvciEoKSBj
b25zdCB7IHJldHVybiAhaXNTZXQoKTsgfQpAQCAtMTE5LDcgKzk0LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKLSAgICBzdGF0
aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqLCB1bnNpZ25lZCBi
eXRlY29kZUluZGV4KTsKKyAgICBzdGF0aWMgQ2FsbExpbmtTdGF0dXMgY29tcHV0ZUZyb21MTElu
dChjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNv
ZGVJbmRleCk7CiAgICAgCiAgICAgSlNWYWx1ZSBtX2NhbGxUYXJnZXQ7CiAgICAgRXhlY3V0YWJs
ZUJhc2UqIG1fZXhlY3V0YWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE2MjM2MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTkyLDExICs1OTIsMTUg
QEAgcHVibGljOgogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxvY2tlcihtX2xvY2spOwog
ICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5hZGQobG9ja2VyLCBzaXRlKTsKICAgICB9Ci0g
ICAgICAgIAorICAgICAKKyAgICBib29sIGhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImIGxvY2tlciwgY29uc3QgREZHOjpGcmVxdWVudEV4aXRTaXRlJiBzaXRlKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobG9ja2VyLCBz
aXRlKTsKKyAgICB9CiAgICAgYm9vbCBoYXNFeGl0U2l0ZShjb25zdCBERkc6OkZyZXF1ZW50RXhp
dFNpdGUmIHNpdGUpIGNvbnN0CiAgICAgewogICAgICAgICBDb25jdXJyZW50SklUTG9ja2VyIGxv
Y2tlcihtX2xvY2spOwotICAgICAgICByZXR1cm4gbV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShs
b2NrZXIsIHNpdGUpOworICAgICAgICByZXR1cm4gaGFzRXhpdFNpdGUobG9ja2VyLCBzaXRlKTsK
ICAgICB9CiAKICAgICBERkc6OkV4aXRQcm9maWxlJiBleGl0UHJvZmlsZSgpIHsgcmV0dXJuIG1f
ZXhpdFByb2ZpbGU7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRC
eUlkU3RhdHVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvR2V0QnlJZFN0YXR1cy5jcHAJKHJldmlzaW9uIDE2MjM2MSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsNiArMzQsMTQgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKK2Jvb2wgR2V0QnlJZFN0
YXR1czo6aGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYgbG9ja2VyLCBDb2Rl
QmxvY2sqIHByb2ZpbGVkQmxvY2ssIHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpCit7CisgICAgcmV0
dXJuIHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRT
aXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+
aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwg
QmFkQ2FjaGVXYXRjaHBvaW50KSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9jay0+aGFzRXhpdFNp
dGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRleCwgQmFkV2Vha0Nv
bnN0YW50Q2FjaGUpKQorICAgICAgICB8fCBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2Nr
ZXIsIERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRXZWFrQ29uc3RhbnRD
YWNoZVdhdGNocG9pbnQpKTsKK30KKwogR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRnJvbUxMSW50KENvZGVCbG9jayogcHJvZmlsZWRCbG9jaywgdW5zaWduZWQgYnl0ZWNvZGVJ
bmRleCwgU3RyaW5nSW1wbCogdWlkKQogewogICAgIFVOVVNFRF9QQVJBTShwcm9maWxlZEJsb2Nr
KTsKQEAgLTExNCw4ICsxMjIsMTIgQEAgR2V0QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21w
dXRlRm9yKAogICAgIFVOVVNFRF9QQVJBTSh1aWQpOwogI2lmIEVOQUJMRShKSVQpCiAgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvID0gbWFwLmdldChDb2RlT3JpZ2luKGJ5dGVjb2RlSW5k
ZXgpKTsKLSAgICBpZiAoIXN0dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikKKyAgICBpZiAoIXN0
dWJJbmZvIHx8ICFzdHViSW5mby0+c2VlbikgeworICAgICAgICBpZiAoaGFzRXhpdFNpdGUobG9j
a2VyLCBwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4KSkKKyAgICAgICAgICAgIHJldHVybiBH
ZXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOworICAgIAogICAgICAgICByZXR1cm4g
Y29tcHV0ZUZyb21MTEludChwcm9maWxlZEJsb2NrLCBieXRlY29kZUluZGV4LCB1aWQpOworICAg
IH0KICAgICAKICAgICBpZiAoc3R1YkluZm8tPnJlc2V0QnlHQykKICAgICAgICAgcmV0dXJuIEdl
dEJ5SWRTdGF0dXMoVGFrZXNTbG93UGF0aCwgdHJ1ZSk7CkBAIC0xNDIsNyArMTU0LDggQEAgR2V0
QnlJZFN0YXR1cyBHZXRCeUlkU3RhdHVzOjpjb21wdXRlRm9yKAogICAgIH0KICAgICAKICAgICAv
LyBOZXh0IGNoZWNrIGlmIGl0IHRha2VzIHNsb3cgY2FzZSwgaW4gd2hpY2ggY2FzZSB3ZSB3YW50
IHRvIGJlIGtpbmQgb2YgY2FyZWZ1bC4KLSAgICBpZiAocHJvZmlsZWRCbG9jay0+bGlrZWx5VG9U
YWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCisgICAgaWYgKHByb2ZpbGVkQmxvY2stPmxpa2Vs
eVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpCisgICAgICAgIHx8IGhhc0V4aXRTaXRlKGxv
Y2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkpCiAgICAgICAgIHJldHVybiBHZXRC
eUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIHRydWUpOwogICAgIAogICAgIC8vIEZpbmFsbHkgZmln
dXJlIG91dCBpZiB3ZSBjYW4gZGVyaXZlIGFuIGFjY2VzcyBzdHJhdGVneS4KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXRCeUlkU3RhdHVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMuaAkocmV2aXNpb24g
MTYyMzYxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldEJ5SWRTdGF0dXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBHZXRC
eUlkU3RhdHVzX2gKICNkZWZpbmUgR2V0QnlJZFN0YXR1c19oCiAKKyNpbmNsdWRlICJDb25jdXJy
ZW50SklUTG9jay5oIgogI2luY2x1ZGUgIkludGVuZGVkU3RydWN0dXJlQ2hhaW4uaCIKICNpbmNs
dWRlICJQcm9wZXJ0eU9mZnNldC5oIgogI2luY2x1ZGUgIlN0cnVjdHVyZVNldC5oIgpAQCAtOTAs
NiArOTEsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCB3YXNTZWVuSW5KSVQoKSBjb25zdCB7IHJldHVy
biBtX3dhc1NlZW5JbkpJVDsgfQogICAgIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgYm9vbCBoYXNF
eGl0U2l0ZShjb25zdCBDb25jdXJyZW50SklUTG9ja2VyJiwgQ29kZUJsb2NrKiwgdW5zaWduZWQg
Ynl0ZWNvZGVJbmRleCk7CiAgICAgc3RhdGljIHZvaWQgY29tcHV0ZUZvckNoYWluKEdldEJ5SWRT
dGF0dXMmIHJlc3VsdCwgQ29kZUJsb2NrKiwgU3RyaW5nSW1wbCogdWlkKTsKICAgICBzdGF0aWMg
R2V0QnlJZFN0YXR1cyBjb21wdXRlRnJvbUxMSW50KENvZGVCbG9jayosIHVuc2lnbmVkIGJ5dGVj
b2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1B1dEJ5SWRTdGF0dXMuY3BwCShyZXZpc2lvbiAxNjIzNjEp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLCAy
MDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDE0IEBACiAKIG5hbWVzcGFjZSBKU0Mg
ewogCitib29sIFB1dEJ5SWRTdGF0dXM6Omhhc0V4aXRTaXRlKGNvbnN0IENvbmN1cnJlbnRKSVRM
b2NrZXImIGxvY2tlciwgQ29kZUJsb2NrKiBwcm9maWxlZEJsb2NrLCB1bnNpZ25lZCBieXRlY29k
ZUluZGV4KQoreworICAgIHJldHVybiBwcm9maWxlZEJsb2NrLT5oYXNFeGl0U2l0ZShsb2NrZXIs
IERGRzo6RnJlcXVlbnRFeGl0U2l0ZShieXRlY29kZUluZGV4LCBCYWRDYWNoZSkpCisgICAgICAg
IHx8IHByb2ZpbGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRT
aXRlKGJ5dGVjb2RlSW5kZXgsIEJhZENhY2hlV2F0Y2hwb2ludCkpCisgICAgICAgIHx8IHByb2Zp
bGVkQmxvY2stPmhhc0V4aXRTaXRlKGxvY2tlciwgREZHOjpGcmVxdWVudEV4aXRTaXRlKGJ5dGVj
b2RlSW5kZXgsIEJhZFdlYWtDb25zdGFudENhY2hlKSkKKyAgICAgICAgfHwgcHJvZmlsZWRCbG9j
ay0+aGFzRXhpdFNpdGUobG9ja2VyLCBERkc6OkZyZXF1ZW50RXhpdFNpdGUoYnl0ZWNvZGVJbmRl
eCwgQmFkV2Vha0NvbnN0YW50Q2FjaGVXYXRjaHBvaW50KSk7Cit9CisKIFB1dEJ5SWRTdGF0dXMg
UHV0QnlJZFN0YXR1czo6Y29tcHV0ZUZyb21MTEludChDb2RlQmxvY2sqIHByb2ZpbGVkQmxvY2ss
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgsIFN0cmluZ0ltcGwqIHVpZCkKIHsKICAgICBVTlVTRURf
UEFSQU0ocHJvZmlsZWRCbG9jayk7CkBAIC04OSw3ICs5Nyw4IEBAIFB1dEJ5SWRTdGF0dXMgUHV0
QnlJZFN0YXR1czo6Y29tcHV0ZUZvcigKICAgICBVTlVTRURfUEFSQU0oYnl0ZWNvZGVJbmRleCk7
CiAgICAgVU5VU0VEX1BBUkFNKHVpZCk7CiAjaWYgRU5BQkxFKEpJVCkKLSAgICBpZiAocHJvZmls
ZWRCbG9jay0+bGlrZWx5VG9UYWtlU2xvd0Nhc2UoYnl0ZWNvZGVJbmRleCkpCisgICAgaWYgKHBy
b2ZpbGVkQmxvY2stPmxpa2VseVRvVGFrZVNsb3dDYXNlKGJ5dGVjb2RlSW5kZXgpCisgICAgICAg
IHx8IGhhc0V4aXRTaXRlKGxvY2tlciwgcHJvZmlsZWRCbG9jaywgYnl0ZWNvZGVJbmRleCkpCiAg
ICAgICAgIHJldHVybiBQdXRCeUlkU3RhdHVzKFRha2VzU2xvd1BhdGgsIDAsIDAsIDAsIGludmFs
aWRPZmZzZXQpOwogICAgIAogICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IG1hcC5n
ZXQoQ29kZU9yaWdpbihieXRlY29kZUluZGV4KSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvUHV0QnlJZFN0YXR1cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgJKHJldmlzaW9uIDE2MjM2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9QdXRCeUlkU3RhdHVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEwOCw2ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgUHJvcGVydHlPZmZzZXQgb2Zmc2V0
KCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXQ7IH0KICAgICAKIHByaXZhdGU6CisgICAgc3RhdGlj
IGJvb2wgaGFzRXhpdFNpdGUoY29uc3QgQ29uY3VycmVudEpJVExvY2tlciYsIENvZGVCbG9jayos
IHVuc2lnbmVkIGJ5dGVjb2RlSW5kZXgpOwogICAgIHN0YXRpYyBQdXRCeUlkU3RhdHVzIGNvbXB1
dGVGcm9tTExJbnQoQ29kZUJsb2NrKiwgdW5zaWduZWQgYnl0ZWNvZGVJbmRleCwgU3RyaW5nSW1w
bCogdWlkKTsKICAgICAKICAgICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTZXQuaAkocmV2aXNpb24gMTYyMzYxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVNldC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBTdHJ1Y3R1cmVTZXQoU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgeworICAgICAgICBBU1NFUlQoc3RydWN0dXJlKTsKICAg
ICAgICAgbV9zdHJ1Y3R1cmVzLmFwcGVuZChzdHJ1Y3R1cmUpOwogICAgIH0KICAgICAKQEAgLTU1
LDYgKzU2LDcgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgYWRkKFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIHsKKyAgICAgICAgQVNTRVJUKHN0cnVjdHVyZSk7CiAgICAgICAgIEFTU0VSVCgh
Y29udGFpbnMoc3RydWN0dXJlKSk7CiAgICAgICAgIG1fc3RydWN0dXJlcy5hcHBlbmQoc3RydWN0
dXJlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2Rl
UGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5
dGVDb2RlUGFyc2VyLmNwcAkocmV2aXNpb24gMTYyMzYxKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyLCAyMDEzIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiwgMjAxMywgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTExNTgsMTQgKzExNTgsOCBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVDYWxsKEluc3RydWN0CiAKICAgICBpZiAobV9ncmFwaC5pc0NvbnN0YW50KGNhbGxUYXJnZXQp
KQogICAgICAgICBjYWxsTGlua1N0YXR1cyA9IENhbGxMaW5rU3RhdHVzKG1fZ3JhcGgudmFsdWVP
ZkpTQ29uc3RhbnQoY2FsbFRhcmdldCkpLnNldElzUHJvdmVkKHRydWUpOwotICAgIGVsc2Ugewor
ICAgIGVsc2UKICAgICAgICAgY2FsbExpbmtTdGF0dXMgPSBDYWxsTGlua1N0YXR1czo6Y29tcHV0
ZUZvcihtX2lubGluZVN0YWNrVG9wLT5tX3Byb2ZpbGVkQmxvY2ssIG1fY3VycmVudEluZGV4KTsK
LSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0SGFzQmFkRnVuY3Rpb25FeGl0U2l0ZShtX2lubGlu
ZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRG
dW5jdGlvbikpOwotICAgICAgICBjYWxsTGlua1N0YXR1cy5zZXRIYXNCYWRDYWNoZUV4aXRTaXRl
KAotICAgICAgICAgICAgbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0
ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2FjaGUpCi0gICAgICAgICAgICB8fCBtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZVdh
dGNocG9pbnQpKTsKLSAgICAgICAgY2FsbExpbmtTdGF0dXMuc2V0SGFzQmFkRXhlY3V0YWJsZUV4
aXRTaXRlKG1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZEV4ZWN1dGFibGUpKTsKLSAgICB9CiAgICAgCiAgICAgaWYgKCFjYWxsTGlu
a1N0YXR1cy5jYW5PcHRpbWl6ZSgpKSB7CiAgICAgICAgIC8vIE9kZGx5LCB0aGlzIGNvbmZsYXRl
cyBjYWxscyB0aGF0IGhhdmVuJ3QgZXhlY3V0ZWQgd2l0aCBjYWxscyB0aGF0IGJlaGF2ZWQgc3Vm
ZmljaWVudGx5IHBvbHltb3JwaGljYWxseQpAQCAtMTc3NSwxMSArMTc2OSw3IEBAIHZvaWQgQnl0
ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAgICAgaW50IGRlc3RpbmF0aW9uT3BlcmFuZCwg
U3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiwgTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmll
ck51bWJlciwKICAgICBjb25zdCBHZXRCeUlkU3RhdHVzJiBnZXRCeUlkU3RhdHVzKQogewotICAg
IGlmICghZ2V0QnlJZFN0YXR1cy5pc1NpbXBsZSgpCi0gICAgICAgIHx8IG1faW5saW5lU3RhY2tU
b3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENhY2hlKQot
ICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpCi0gICAgICAgIHx8IG1faW5saW5lU3Rh
Y2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFdlYWtD
b25zdGFudENhY2hlKQotICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxl
Lmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRXZWFrQ29uc3RhbnRDYWNoZVdhdGNocG9p
bnQpKSB7CisgICAgaWYgKCFnZXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkpIHsKICAgICAgICAgc2V0
KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9wZXJhbmQpLAogICAgICAgICAgICAgYWRkVG9H
cmFwaCgKICAgICAgICAgICAgICAgICBnZXRCeUlkU3RhdHVzLm1ha2VzQ2FsbHMoKSA/IEdldEJ5
SWRGbHVzaCA6IEdldEJ5SWQsCkBAIC0yNDgxLDE4ICsyNDcxLDExIEBAIGJvb2wgQnl0ZUNvZGVQ
YXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICBjYW5Db3VudEFzSW5s
aW5lZCA9IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBi
b29sIGhhc0V4aXRTaXRlID0KLSAgICAgICAgICAgICAgICBtX2lubGluZVN0YWNrVG9wLT5tX2V4
aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDYWNoZSkKLSAgICAgICAg
ICAgICAgICB8fCBtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1f
Y3VycmVudEluZGV4LCBCYWRDYWNoZVdhdGNocG9pbnQpCi0gICAgICAgICAgICAgICAgfHwgbV9p
bmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwg
QmFkV2Vha0NvbnN0YW50Q2FjaGUpCi0gICAgICAgICAgICAgICAgfHwgbV9pbmxpbmVTdGFja1Rv
cC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkV2Vha0NvbnN0
YW50Q2FjaGVXYXRjaHBvaW50KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFoYXNF
eGl0U2l0ZSAmJiBwdXRCeUlkU3RhdHVzLmlzU2ltcGxlUmVwbGFjZSgpKSB7CisgICAgICAgICAg
ICBpZiAocHV0QnlJZFN0YXR1cy5pc1NpbXBsZVJlcGxhY2UoKSkgewogICAgICAgICAgICAgICAg
IGFkZFRvR3JhcGgoQ2hlY2tTdHJ1Y3R1cmUsIE9wSW5mbyhtX2dyYXBoLmFkZFN0cnVjdHVyZVNl
dChwdXRCeUlkU3RhdHVzLm9sZFN0cnVjdHVyZSgpKSksIGJhc2UpOwogICAgICAgICAgICAgICAg
IGhhbmRsZVB1dEJ5T2Zmc2V0KGJhc2UsIGlkZW50aWZpZXJOdW1iZXIsIHB1dEJ5SWRTdGF0dXMu
b2Zmc2V0KCksIHZhbHVlKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoCi0gICAgICAgICAgICAg
ICAgIWhhc0V4aXRTaXRlCi0gICAgICAgICAgICAgICAgJiYgcHV0QnlJZFN0YXR1cy5pc1NpbXBs
ZVRyYW5zaXRpb24oKQorICAgICAgICAgICAgICAgIHB1dEJ5SWRTdGF0dXMuaXNTaW1wbGVUcmFu
c2l0aW9uKCkKICAgICAgICAgICAgICAgICAmJiAoIXB1dEJ5SWRTdGF0dXMuc3RydWN0dXJlQ2hh
aW4oKQogICAgICAgICAgICAgICAgICAgICB8fCBwdXRCeUlkU3RhdHVzLnN0cnVjdHVyZUNoYWlu
KCktPmlzU3RpbGxWYWxpZCgpKSkgewogICAgICAgICAgICAgICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDE2MjM2MSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFsaWRhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xODcsNiArMTg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0g
YmxvY2stPmF0KGkpOwogICAgICAgICAgICAgICAgIFZBTElEQVRFKChub2RlKSwgIW5vZGUtPmlz
VGVybWluYWwoKSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgYmxvY2stPnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAg
ICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChpKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICBpZiAobm9kZS0+aGFzU3RydWN0dXJlKCkpCisgICAgICAgICAgICAgICAgICAgIFZB
TElEQVRFKChub2RlKSwgISFub2RlLT5zdHJ1Y3R1cmUoKSk7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIHN3aXRjaCAobV9ncmFwaC5tX2Zvcm0pIHsK
</data>
<flag name="review"
          id="245659"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>