<?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>109489</bug_id>
          
          <creation_ts>2013-02-11 14:23:28 -0800</creation_ts>
          <short_desc>DFG LogicalNot/Branch peephole removal and inversion ignores the possibility of things exiting</short_desc>
          <delta_ts>2013-02-13 13:02:08 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>830127</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-11 14:23:28 -0800</bug_when>
    <thetext>The solution is to perform this transformation late, when we know that the LogicalNot cannot be used by OSR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831667</commentid>
    <comment_count>1</comment_count>
      <attachid>188019</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-12 23:23:03 -0800</bug_when>
    <thetext>Created attachment 188019
the wrong way

I started by assuming that we should just introduce CompareNotEq and friends.  I think this is not a good idea.

I will do it a better way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831681</commentid>
    <comment_count>2</comment_count>
      <attachid>188024</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-12 23:49:00 -0800</bug_when>
    <thetext>Created attachment 188024
another wrong way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831694</commentid>
    <comment_count>3</comment_count>
      <attachid>188027</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-13 00:03:49 -0800</bug_when>
    <thetext>Created attachment 188027
the patch

I went for the brute force way.  Still need to test if this is OK for performance...

I&apos;m also still running tests, will have expectations file soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831719</commentid>
    <comment_count>4</comment_count>
      <attachid>188027</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-13 01:15:58 -0800</bug_when>
    <thetext>Comment on attachment 188027
the patch

Attachment 188027 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16530028

New failing tests:
fast/js/dfg-branch-logical-not-peephole-around-osr-exit.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>831785</commentid>
    <comment_count>5</comment_count>
      <attachid>188027</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 03:50:31 -0800</bug_when>
    <thetext>Comment on attachment 188027
the patch

Attachment 188027 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16454796

New failing tests:
fast/js/dfg-branch-logical-not-peephole-around-osr-exit.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832139</commentid>
    <comment_count>6</comment_count>
      <attachid>188027</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-02-13 11:55:38 -0800</bug_when>
    <thetext>Comment on attachment 188027
the patch

r=me with test expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832233</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-02-13 13:02:08 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/142779</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188019</attachid>
            <date>2013-02-12 23:23:03 -0800</date>
            <delta_ts>2013-02-12 23:49:00 -0800</delta_ts>
            <desc>the wrong way</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20910</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RTdGF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdFN0YXRlLmNw
cAkocmV2aXNpb24gMTQyNzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdFN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgwLDcgKzc4MCw5IEBAIGJvb2wgQWJz
dHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICBjYXNlIENvbXBhcmVHcmVhdGVy
OgogICAgIGNhc2UgQ29tcGFyZUdyZWF0ZXJFcToKICAgICBjYXNlIENvbXBhcmVFcToKLSAgICBj
YXNlIENvbXBhcmVFcUNvbnN0YW50OiB7CisgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDoKKyAg
ICBjYXNlIENvbXBhcmVOb3RFcToKKyAgICBjYXNlIENvbXBhcmVOb3RFcUNvbnN0YW50OiB7CiAg
ICAgICAgIGJvb2wgY29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKIAogICAgICAgICBKU1ZhbHVlIGxl
ZnRDb25zdCA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLnZhbHVlKCk7CkBAIC04MDIsOCArODA0
LDEzIEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAg
ICAgICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihh
ID49IGIpKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgQ29tcGFy
ZUVxOgorICAgICAgICAgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDoKICAgICAgICAgICAgICAg
ICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhID09IGIp
KTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ29tcGFyZU5vdEVx
OgorICAgICAgICAgICAgY2FzZSBDb21wYXJlTm90RXFDb25zdGFudDoKKyAgICAgICAgICAgICAg
ICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihhICE9IGIp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICBj
b25zdGFudFdhc1NldCA9IGZhbHNlOwpAQCAtODExLDEyICs4MTgsMTIgQEAgYm9vbCBBYnN0cmFj
dFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBpZiAoIWNvbnN0YW50V2FzU2V0ICYmIChub2RlLT5vcCgpID09IENv
bXBhcmVFcUNvbnN0YW50IHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxKSkgeworICAgICAgICBp
ZiAoIWNvbnN0YW50V2FzU2V0KSB7CiAgICAgICAgICAgICBTcGVjdWxhdGVkVHlwZSBsZWZ0VHlw
ZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZTsKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHJpZ2h0VHlwZSA9IGZvck5vZGUobm9kZS0+Y2hpbGQyKCkpLm1fdHlwZTsKICAgICAg
ICAgICAgIGlmICgoaXNJbnQzMlNwZWN1bGF0aW9uKGxlZnRUeXBlKSAmJiBpc090aGVyU3BlY3Vs
YXRpb24ocmlnaHRUeXBlKSkKICAgICAgICAgICAgICAgICB8fCAoaXNPdGhlclNwZWN1bGF0aW9u
KGxlZnRUeXBlKSAmJiBpc0ludDMyU3BlY3VsYXRpb24ocmlnaHRUeXBlKSkpCi0gICAgICAgICAg
ICAgICAgY29uc3RhbnRXYXNTZXQgPSB0cnlTZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oZmFs
c2UpKTsKKyAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IHRyeVNldENvbnN0YW50KG5v
ZGUsIGpzQm9vbGVhbihpbnZlcnRlZEVxdWFsaXR5KG5vZGUtPm9wKCkpKSk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIGlmIChjb25zdGFudFdhc1NldCkgewpAQCAtODI3LDcgKzgzNCw3
IEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQKICAgICAgICAgCiAg
ICAgICAgIGZvck5vZGUobm9kZSkuc2V0KFNwZWNCb29sZWFuKTsKICAgICAgICAgCi0gICAgICAg
IGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcUNvbnN0YW50KSB7CisgICAgICAgIGlmIChub2Rl
LT5vcCgpID09IENvbXBhcmVFcUNvbnN0YW50IHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFyZU5vdEVx
Q29uc3RhbnQpIHsKICAgICAgICAgICAgIC8vIFdlIGNhbiBleGl0IGlmIHdlIGhhdmVuJ3QgZmly
ZWQgdGhlIE1hc3F1ZXJhZGVzQXNVbmRlZmluZCB3YXRjaHBvaW50IHlldC4KICAgICAgICAgICAg
IG5vZGUtPnNldENhbkV4aXQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLT5jb2Rl
T3JpZ2luKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKS0+aXNTdGlsbFZhbGlk
KCkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC04NDMsNyArODUwLDcgQEAgYm9vbCBBYnN0cmFj
dFN0YXRlOjpleGVjdXRlKHVuc2lnbmVkIGluZAogICAgICAgICB9IGVsc2UgaWYgKE5vZGU6OnNo
b3VsZFNwZWN1bGF0ZU51bWJlcihsZWZ0LCByaWdodCkpIHsKICAgICAgICAgICAgIGZpbHRlciA9
IFNwZWNOdW1iZXI7CiAgICAgICAgICAgICBjaGVja2VyID0gaXNOdW1iZXJTcGVjdWxhdGlvbjsK
LSAgICAgICAgfSBlbHNlIGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcSkgeworICAgICAgICB9
IGVsc2UgaWYgKG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxIHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFy
ZUVxQ29uc3RhbnQpIHsKICAgICAgICAgICAgIGlmIChsZWZ0LT5zaG91bGRTcGVjdWxhdGVTdHJp
bmcoKSB8fCByaWdodC0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkpIHsKICAgICAgICAgICAgICAg
ICBub2RlLT5zZXRDYW5FeGl0KGZhbHNlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg4
NCwxOSArODkxLDIxIEBAIGJvb2wgQWJzdHJhY3RTdGF0ZTo6ZXhlY3V0ZSh1bnNpZ25lZCBpbmQK
ICAgICB9CiAgICAgICAgICAgICAKICAgICBjYXNlIENvbXBhcmVTdHJpY3RFcToKLSAgICBjYXNl
IENvbXBhcmVTdHJpY3RFcUNvbnN0YW50OiB7CisgICAgY2FzZSBDb21wYXJlU3RyaWN0RXFDb25z
dGFudDoKKyAgICBjYXNlIENvbXBhcmVTdHJpY3ROb3RFcToKKyAgICBjYXNlIENvbXBhcmVTdHJp
Y3ROb3RFcUNvbnN0YW50OiB7CiAgICAgICAgIE5vZGUqIGxlZnROb2RlID0gbm9kZS0+Y2hpbGQx
KCkubm9kZSgpOwogICAgICAgICBOb2RlKiByaWdodE5vZGUgPSBub2RlLT5jaGlsZDIoKS5ub2Rl
KCk7CiAgICAgICAgIEpTVmFsdWUgbGVmdCA9IGZvck5vZGUobGVmdE5vZGUpLnZhbHVlKCk7CiAg
ICAgICAgIEpTVmFsdWUgcmlnaHQgPSBmb3JOb2RlKHJpZ2h0Tm9kZSkudmFsdWUoKTsKICAgICAg
ICAgaWYgKGxlZnQgJiYgcmlnaHQgJiYgbGVmdC5pc051bWJlcigpICYmIHJpZ2h0LmlzTnVtYmVy
KCkKLSAgICAgICAgICAgICYmIHRyeVNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihsZWZ0LmFz
TnVtYmVyKCkgPT0gcmlnaHQuYXNOdW1iZXIoKSkpKSB7CisgICAgICAgICAgICAmJiB0cnlTZXRD
b25zdGFudChub2RlLCBqc0Jvb2xlYW4oaW52ZXJ0ZWRFcXVhbGl0eShub2RlLT5vcCgpKSBeIChs
ZWZ0LmFzTnVtYmVyKCkgPT0gcmlnaHQuYXNOdW1iZXIoKSkpKSkgewogICAgICAgICAgICAgbV9m
b3VuZENvbnN0YW50cyA9IHRydWU7CiAgICAgICAgICAgICBub2RlLT5zZXRDYW5FeGl0KGZhbHNl
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGZvck5vZGUobm9kZSku
c2V0KFNwZWNCb29sZWFuKTsKLSAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ29tcGFyZVN0cmlj
dEVxQ29uc3RhbnQpIHsKKyAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gQ29tcGFyZVN0cmljdEVx
Q29uc3RhbnQgfHwgbm9kZS0+b3AoKSA9PSBDb21wYXJlU3RyaWN0Tm90RXFDb25zdGFudCkgewog
ICAgICAgICAgICAgbm9kZS0+c2V0Q2FuRXhpdChmYWxzZSk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE0MjcyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYzLDEzICsy
NDYzLDEzIEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAg
ICAgICAgICAgICAgICAgTkVYVF9PUENPREUob3Bfc3RyaWN0ZXEpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0u
dS5vcGVyYW5kLCBhZGRUb0dyYXBoKExvZ2ljYWxOb3QsIGFkZFRvR3JhcGgoQ29tcGFyZUVxLCBv
cDEsIG9wMikpKTsKKyAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kLCBhZGRUb0dyYXBoKENvbXBhcmVOb3RFcSwgb3AxLCBvcDIpKTsKICAgICAgICAgICAgIE5F
WFRfT1BDT0RFKG9wX25lcSk7CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIG9wX25lcV9udWxs
OiB7CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kKTsKLSAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVy
YW5kLCBhZGRUb0dyYXBoKExvZ2ljYWxOb3QsIGFkZFRvR3JhcGgoQ29tcGFyZUVxQ29uc3RhbnQs
IHZhbHVlLCBjb25zdGFudE51bGwoKSkpKTsKKyAgICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBoKENvbXBhcmVOb3RFcUNvbnN0YW50LCB2YWx1
ZSwgY29uc3RhbnROdWxsKCkpKTsKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX25lcV9udWxs
KTsKICAgICAgICAgfQogCkBAIC0yNDg1LDE0ICsyNDg1LDE0IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQKICAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREUo
b3Bfc3RyaWN0ZXEpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIE5vZGUqIGludmVydGVkUmVzdWx0OworICAgICAgICAgICAgTm9kZSogcmVzdWx0OwogICAg
ICAgICAgICAgaWYgKGlzQ29uc3RhbnRGb3JDb21wYXJlU3RyaWN0RXEob3AxKSkKLSAgICAgICAg
ICAgICAgICBpbnZlcnRlZFJlc3VsdCA9IGFkZFRvR3JhcGgoQ29tcGFyZVN0cmljdEVxQ29uc3Rh
bnQsIG9wMiwgb3AxKTsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBhZGRUb0dyYXBoKENvbXBh
cmVTdHJpY3ROb3RFcUNvbnN0YW50LCBvcDIsIG9wMSk7CiAgICAgICAgICAgICBlbHNlIGlmIChp
c0NvbnN0YW50Rm9yQ29tcGFyZVN0cmljdEVxKG9wMikpCi0gICAgICAgICAgICAgICAgaW52ZXJ0
ZWRSZXN1bHQgPSBhZGRUb0dyYXBoKENvbXBhcmVTdHJpY3RFcUNvbnN0YW50LCBvcDEsIG9wMik7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gYWRkVG9HcmFwaChDb21wYXJlU3RyaWN0Tm90RXFD
b25zdGFudCwgb3AxLCBvcDIpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGlu
dmVydGVkUmVzdWx0ID0gYWRkVG9HcmFwaChDb21wYXJlU3RyaWN0RXEsIG9wMSwgb3AyKTsKLSAg
ICAgICAgICAgIHNldChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCBhZGRUb0dyYXBo
KExvZ2ljYWxOb3QsIGludmVydGVkUmVzdWx0KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
YWRkVG9HcmFwaChDb21wYXJlU3RyaWN0Tm90RXEsIG9wMSwgb3AyKTsKKyAgICAgICAgICAgIHNl
dChjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kLCByZXN1bHQpOwogICAgICAgICAgICAg
TkVYVF9PUENPREUob3BfbnN0cmljdGVxKTsKICAgICAgICAgfQogCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0NTRVBoYXNlLmNwcAkocmV2aXNpb24gMTQyNzIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDU0VQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMzIsNiArMTEzMiwxMSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIEdldFNjb3BlOgogICAg
ICAgICBjYXNlIFR5cGVPZjoKICAgICAgICAgY2FzZSBDb21wYXJlRXFDb25zdGFudDoKKyAgICAg
ICAgY2FzZSBDb21wYXJlTm90RXFDb25zdGFudDoKKyAgICAgICAgY2FzZSBDb21wYXJlU3RyaWN0
RXE6CisgICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQ6CisgICAgICAgIGNhc2Ug
Q29tcGFyZVN0cmljdE5vdEVxOgorICAgICAgICBjYXNlIENvbXBhcmVTdHJpY3ROb3RFcUNvbnN0
YW50OgogICAgICAgICAgICAgc2V0UmVwbGFjZW1lbnQocHVyZUNTRShub2RlKSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIApAQCAtMTI1Miw3ICsxMjU3LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBDb21wYXJlTGVzc0VxOgogICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVy
OgogICAgICAgICBjYXNlIENvbXBhcmVHcmVhdGVyRXE6Ci0gICAgICAgIGNhc2UgQ29tcGFyZUVx
OiB7CisgICAgICAgIGNhc2UgQ29tcGFyZUVxOgorICAgICAgICBjYXNlIENvbXBhcmVOb3RFcTog
ewogICAgICAgICAgICAgaWYgKG1fZ3JhcGguaXNQcmVkaWN0ZWROdW1lcmljYWwobm9kZSkpIHsK
ICAgICAgICAgICAgICAgICBOb2RlKiByZXBsYWNlbWVudCA9IHB1cmVDU0Uobm9kZSk7CiAgICAg
ICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ICYmIG1fZ3JhcGguaXNQcmVkaWN0ZWROdW1lcmlj
YWwocmVwbGFjZW1lbnQpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1
cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxNDI3MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjgsMjIgKzIyOCw2IEBA
IHByaXZhdGU6CiAgICAgICAgICAgICBpZiAoIW5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxh
dGVJbnRlZ2VyKCkKICAgICAgICAgICAgICAgICAmJiBub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3Bl
Y3VsYXRlTnVtYmVyKCkpCiAgICAgICAgICAgICAgICAgZml4RG91YmxlRWRnZSgwKTsKLQotICAg
ICAgICAgICAgTm9kZSogbG9naWNhbE5vdCA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsKLSAgICAg
ICAgICAgIGlmIChsb2dpY2FsTm90LT5vcCgpID09IExvZ2ljYWxOb3QKLSAgICAgICAgICAgICAg
ICAmJiBsb2dpY2FsTm90LT5hZGp1c3RlZFJlZkNvdW50KCkgPT0gMSkgewotICAgICAgICAgICAg
ICAgIEVkZ2UgbmV3Q2hpbGRFZGdlID0gbG9naWNhbE5vdC0+Y2hpbGQxKCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKG5ld0NoaWxkRWRnZS0+aGFzQm9vbGVhblJlc3VsdCgpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG1fZ3JhcGgucmVmKG5ld0NoaWxkRWRnZSk7Ci0gICAgICAgICAgICAgICAgICAg
IG1fZ3JhcGguZGVyZWYobG9naWNhbE5vdCk7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPmNo
aWxkcmVuLnNldENoaWxkMShuZXdDaGlsZEVkZ2UpOwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgQmxvY2tJbmRleCB0b0JlVGFrZW4gPSBub2RlLT5ub3RUYWtlbkJs
b2NrSW5kZXgoKTsKLSAgICAgICAgICAgICAgICAgICAgQmxvY2tJbmRleCB0b0JlTm90VGFrZW4g
PSBub2RlLT50YWtlbkJsb2NrSW5kZXgoKTsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+c2V0
VGFrZW5CbG9ja0luZGV4KHRvQmVUYWtlbik7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPnNl
dE5vdFRha2VuQmxvY2tJbmRleCh0b0JlTm90VGFrZW4pOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9uIDE0MjcyMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2luZyBjb3B5KQpA
QCAtNTc5LDYgKzU3OSw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlcjoK
ICAgICAgICAgY2FzZSBDb21wYXJlR3JlYXRlckVxOgogICAgICAgICBjYXNlIENvbXBhcmVFcToK
KyAgICAgICAgY2FzZSBDb21wYXJlTm90RXE6CiAgICAgICAgICAgICByZXR1cm4gIWlzUHJlZGlj
dGVkTnVtZXJpY2FsKG5vZGUpOwogICAgICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICBjYXNl
IFB1dEJ5VmFsOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAko
cmV2aXNpb24gMTQyNzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTAsNiArMTkwLDEwIEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhDb21wYXJlRXFDb25zdGFudCwgTm9kZVJlc3VsdEJv
b2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ29tcGFyZVN0cmljdEVxLCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKENvbXBhcmVTdHJpY3RFcUNvbnN0YW50LCBO
b2RlUmVzdWx0Qm9vbGVhbikgXAorICAgIG1hY3JvKENvbXBhcmVOb3RFcSwgTm9kZVJlc3VsdEJv
b2xlYW4gfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZU1pZ2h0Q2xvYmJlcikgXAorICAgIG1hY3Jv
KENvbXBhcmVOb3RFcUNvbnN0YW50LCBOb2RlUmVzdWx0Qm9vbGVhbiB8IE5vZGVNdXN0R2VuZXJh
dGUpIFwKKyAgICBtYWNybyhDb21wYXJlU3RyaWN0Tm90RXEsIE5vZGVSZXN1bHRCb29sZWFuKSBc
CisgICAgbWFjcm8oQ29tcGFyZVN0cmljdE5vdEVxQ29uc3RhbnQsIE5vZGVSZXN1bHRCb29sZWFu
KSBcCiAgICAgXAogICAgIC8qIENhbGxzLiAqL1wKICAgICBtYWNybyhDYWxsLCBOb2RlUmVzdWx0
SlMgfCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZUhhc1ZhckFyZ3MgfCBOb2RlQ2xvYmJlcnNXb3Js
ZCkgXApAQCAtMjg0LDYgKzI4OCwyNSBAQCBpbmxpbmUgTm9kZUZsYWdzIGRlZmF1bHRGbGFncyhO
b2RlVHlwZSBvCiAgICAgfQogfQogCitpbmxpbmUgYm9vbCBpbnZlcnRlZEVxdWFsaXR5KE5vZGVU
eXBlIG9wKQoreworICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIENvbXBhcmVFcToKKyAgICBj
YXNlIENvbXBhcmVFcUNvbnN0YW50OgorICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgorICAgIGNh
c2UgQ29tcGFyZVN0cmljdEVxQ29uc3RhbnQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBj
YXNlIENvbXBhcmVOb3RFcToKKyAgICBjYXNlIENvbXBhcmVOb3RFcUNvbnN0YW50OgorICAgIGNh
c2UgQ29tcGFyZVN0cmljdE5vdEVxOgorICAgIGNhc2UgQ29tcGFyZVN0cmljdE5vdEVxQ29uc3Rh
bnQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGRlZmF1bHQ6CisgICAgICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisK
IH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpERkcKIAogI2VuZGlmIC8vIEVOQUJMRShERkdfSklUKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDE0MjcyMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MTEsNiArNTExLDEwIEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ29t
cGFyZUVxQ29uc3RhbnQ6CiAgICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgogICAgICAgICBj
YXNlIENvbXBhcmVTdHJpY3RFcUNvbnN0YW50OgorICAgICAgICBjYXNlIENvbXBhcmVOb3RFcToK
KyAgICAgICAgY2FzZSBDb21wYXJlTm90RXFDb25zdGFudDoKKyAgICAgICAgY2FzZSBDb21wYXJl
U3RyaWN0Tm90RXE6CisgICAgICAgIGNhc2UgQ29tcGFyZVN0cmljdE5vdEVxQ29uc3RhbnQ6CiAg
ICAgICAgIGNhc2UgSW5zdGFuY2VPZjoKICAgICAgICAgY2FzZSBJc1VuZGVmaW5lZDoKICAgICAg
ICAgY2FzZSBJc0Jvb2xlYW46CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE0MjcyMykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0MSw3ICs2NDEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZVBl
ZXBoCiAgICAgICAgIHRha2VuID0gbm90VGFrZW47CiAgICAgICAgIG5vdFRha2VuID0gdG1wOwog
ICAgIH0KLQorICAgIAogICAgIEpTVmFsdWVPcGVyYW5kIGFyZyh0aGlzLCBvcGVyYW5kKTsKICAg
ICBHUFJSZWcgYXJnR1BSID0gYXJnLmdwcigpOwogICAgIApAQCAtMTU5NiwxMSArMTU5NiwxMyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlT2JqZWN0RXF1YWxpCiAgICAgICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMihNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKSkp
OwogICAgIH0KICAgICAKKyAgICBib29sIGludmVydCA9IGludmVydGVkRXF1YWxpdHkobm9kZS0+
b3AoKSk7CisgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZmFsc2VDYXNlID0gbV9qaXQu
YnJhbmNoNjQoTWFjcm9Bc3NlbWJsZXI6Ok5vdEVxdWFsLCBvcDFHUFIsIG9wMkdQUik7Ci0gICAg
bV9qaXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVUcnVlKSwgcmVzdWx0R1BSKTsKKyAgICBtX2pp
dC5tb3ZlKFRydXN0ZWRJbW0zMihpbnZlcnQgPyBWYWx1ZUZhbHNlIDogVmFsdWVUcnVlKSwgcmVz
dWx0R1BSKTsKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBkb25lID0gbV9qaXQuanVtcCgpOwog
ICAgIGZhbHNlQ2FzZS5saW5rKCZtX2ppdCk7Ci0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIo
VmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CisgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoaW52
ZXJ0ID8gVmFsdWVUcnVlIDogVmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CiAgICAgZG9uZS5saW5r
KCZtX2ppdCk7CiAKICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdEdQUiwgbV9jdXJyZW50Tm9kZSwg
RGF0YUZvcm1hdEpTQm9vbGVhbik7CkBAIC0xNzAzLDExICsxNzA1LDEzIEBAIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVPYmplY3RUb09iamUKICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6VHJ1c3RlZEltbTY0KFZhbHVlTnVsbCkpKTsKICAgICB9CiAgICAgCisgICAgYm9vbCBp
bnZlcnQgPSBpbnZlcnRlZEVxdWFsaXR5KG5vZGUtPm9wKCkpOworICAgIAogICAgIGZhbHNlQ2Fz
ZS5saW5rKCZtX2ppdCk7Ci0gICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVGYWxzZSks
IHJlc3VsdEdQUik7CisgICAgbV9qaXQubW92ZShUcnVzdGVkSW1tMzIoaW52ZXJ0ID8gVmFsdWVU
cnVlIDogVmFsdWVGYWxzZSksIHJlc3VsdEdQUik7CiAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAg
ZG9uZSA9IG1faml0Lmp1bXAoKTsKICAgICB0cnVlQ2FzZS5saW5rKCZtX2ppdCk7Ci0gICAgbV9q
aXQubW92ZShUcnVzdGVkSW1tMzIoVmFsdWVUcnVlKSwgcmVzdWx0R1BSKTsKKyAgICBtX2ppdC5t
b3ZlKFRydXN0ZWRJbW0zMihpbnZlcnQgPyBWYWx1ZUZhbHNlIDogVmFsdWVUcnVlKSwgcmVzdWx0
R1BSKTsKICAgICBkb25lLmxpbmsoJm1faml0KTsKICAgICAKICAgICBqc1ZhbHVlUmVzdWx0KHJl
c3VsdEdQUiwgbV9jdXJyZW50Tm9kZSwgRGF0YUZvcm1hdEpTQm9vbGVhbik7CkBAIC0yNTU3LDIx
ICsyNTYxLDQyIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIENvbXBhcmVOb3RF
cUNvbnN0YW50OgorICAgICAgICBBU1NFUlQoaXNOdWxsQ29uc3RhbnQobm9kZS0+Y2hpbGQyKCku
bm9kZSgpKSk7CisgICAgICAgIGlmIChub25TcGVjdWxhdGl2ZUNvbXBhcmVOdWxsKG5vZGUsIG5v
ZGUtPmNoaWxkMSgpLCB0cnVlKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgYnJlYWs7
CisKICAgICBjYXNlIENvbXBhcmVFcToKICAgICAgICAgaWYgKGNvbXBhcmUobm9kZSwgSklUQ29t
cGlsZXI6OkVxdWFsLCBKSVRDb21waWxlcjo6RG91YmxlRXF1YWwsIG9wZXJhdGlvbkNvbXBhcmVF
cSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBDb21w
YXJlTm90RXE6CisgICAgICAgIGlmIChjb21wYXJlKG5vZGUsIEpJVENvbXBpbGVyOjpOb3RFcXVh
bCwgSklUQ29tcGlsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQsIG9wZXJhdGlvbkNvbXBh
cmVOb3RFcSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGJyZWFrOworCiAgICAgY2Fz
ZSBDb21wYXJlU3RyaWN0RXFDb25zdGFudDoKICAgICAgICAgaWYgKGNvbXBpbGVTdHJpY3RFcUZv
ckNvbnN0YW50KG5vZGUsIG5vZGUtPmNoaWxkMSgpLCB2YWx1ZU9mSlNDb25zdGFudChub2RlLT5j
aGlsZDIoKS5ub2RlKCkpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgYnJlYWs7CiAK
KyAgICBjYXNlIENvbXBhcmVTdHJpY3ROb3RFcUNvbnN0YW50OgorICAgICAgICBpZiAoY29tcGls
ZVN0cmljdEVxRm9yQ29uc3RhbnQobm9kZSwgbm9kZS0+Y2hpbGQxKCksIHZhbHVlT2ZKU0NvbnN0
YW50KG5vZGUtPmNoaWxkMigpLm5vZGUoKSksIHRydWUpKQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBicmVhazsKKwogICAgIGNhc2UgQ29tcGFyZVN0cmljdEVxOgogICAgICAgICBpZiAo
Y29tcGlsZVN0cmljdEVxKG5vZGUpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBicmVh
azsKIAorICAgIGNhc2UgQ29tcGFyZVN0cmljdE5vdEVxOgorICAgICAgICBpZiAoY29tcGlsZVN0
cmljdEVxKG5vZGUsIHRydWUpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsK
KwogICAgIGNhc2UgU3RyaW5nQ2hhckNvZGVBdDogewogICAgICAgICBjb21waWxlR2V0Q2hhckNv
ZGVBdChub2RlKTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTQyNzIzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2MDMsNyArMTYwMyw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVQZWVw
SG9sZUJyYW4KICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZUludGVnZXJCcmFuY2gobm9kZSwg
YnJhbmNoTm9kZSwgY29uZGl0aW9uKTsKICAgICAgICAgZWxzZSBpZiAoTm9kZTo6c2hvdWxkU3Bl
Y3VsYXRlTnVtYmVyKG5vZGUtPmNoaWxkMSgpLm5vZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgp
KSkKICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZURvdWJsZUJyYW5jaChub2RlLCBicmFuY2hO
b2RlLCBkb3VibGVDb25kaXRpb24pOwotICAgICAgICBlbHNlIGlmIChub2RlLT5vcCgpID09IENv
bXBhcmVFcSkgeworICAgICAgICBlbHNlIGlmIChub2RlLT5vcCgpID09IENvbXBhcmVFcSB8fCBu
b2RlLT5vcCgpID09IENvbXBhcmVOb3RFcSkgewogICAgICAgICAgICAgaWYgKG5vZGUtPmNoaWxk
MSgpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSB8fCBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3Bl
Y3VsYXRlU3RyaW5nKCkpIHsKICAgICAgICAgICAgICAgICBub25TcGVjdWxhdGl2ZVBlZXBob2xl
QnJhbmNoKG5vZGUsIGJyYW5jaE5vZGUsIGNvbmRpdGlvbiwgb3BlcmF0aW9uKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE2MTEsOSArMTYxMSw5IEBAIGJvb2wgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVQZWVwSG9sZUJyYW4KICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkgJiYgbm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1
bGF0ZU9iamVjdCgpKQogICAgICAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZU9iamVjdEVxdWFs
aXR5KG5vZGUsIGJyYW5jaE5vZGUpOwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQx
KCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpICYmIG5vZGUtPmNoaWxkMigpLT5zaG91bGRTcGVj
dWxhdGVPYmplY3RPck90aGVyKCkpCi0gICAgICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlT2Jq
ZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkobm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigp
LCBicmFuY2hOb2RlKTsKKyAgICAgICAgICAgICAgICBjb21waWxlUGVlcEhvbGVPYmplY3RUb09i
amVjdE9yT3RoZXJFcXVhbGl0eShub2RlLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCks
IGJyYW5jaE5vZGUpOwogICAgICAgICAgICAgZWxzZSBpZiAobm9kZS0+Y2hpbGQxKCktPnNob3Vs
ZFNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoKSAmJiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3Vs
YXRlT2JqZWN0KCkpCi0gICAgICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlT2JqZWN0VG9PYmpl
Y3RPck90aGVyRXF1YWxpdHkobm9kZS0+Y2hpbGQyKCksIG5vZGUtPmNoaWxkMSgpLCBicmFuY2hO
b2RlKTsKKyAgICAgICAgICAgICAgICBjb21waWxlUGVlcEhvbGVPYmplY3RUb09iamVjdE9yT3Ro
ZXJFcXVhbGl0eShub2RlLCBub2RlLT5jaGlsZDIoKSwgbm9kZS0+Y2hpbGQxKCksIGJyYW5jaE5v
ZGUpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbm9uU3BlY3VsYXRpdmVQ
ZWVwaG9sZUJyYW5jaChub2RlLCBicmFuY2hOb2RlLCBjb25kaXRpb24sIG9wZXJhdGlvbik7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0zMzg2LDcgKzMzODYsNyBAQCBib29sIFNw
ZWN1bGF0aXZlSklUOjpjb21wYXJlKE5vZGUqIG5vZGUsCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAgICAgCi0gICAgaWYgKG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxKSB7CisgICAgaWYg
KG5vZGUtPm9wKCkgPT0gQ29tcGFyZUVxIHx8IG5vZGUtPm9wKCkgPT0gQ29tcGFyZU5vdEVxKSB7
CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlU3RyaW5nKCkgfHwg
bm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZVN0cmluZygpKSB7CiAgICAgICAgICAgICBu
b25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29tcGFyZShub2RlLCBjb25kaXRpb24sIG9wZXJhdGlv
bik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0zMzk4LDEyICszMzk4LDEyIEBAIGJv
b2wgU3BlY3VsYXRpdmVKSVQ6OmNvbXBhcmUoTm9kZSogbm9kZSwKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVPYmplY3QoKSAm
JiBub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0T3JPdGhlcigpKSB7Ci0gICAg
ICAgICAgICBjb21waWxlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkobm9kZS0+Y2hpbGQx
KCksIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgICAgIGNvbXBpbGVPYmplY3RUb09iamVjdE9y
T3RoZXJFcXVhbGl0eShub2RlLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdE9yT3RoZXIoKSAmJiBub2RlLT5j
aGlsZDIoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkpIHsKLSAgICAgICAgICAgIGNvbXBpbGVP
YmplY3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eShub2RlLT5jaGlsZDIoKSwgbm9kZS0+Y2hpbGQx
KCkpOworICAgICAgICAgICAgY29tcGlsZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KG5v
ZGUsIG5vZGUtPmNoaWxkMigpLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0zNDg4LDEzICszNDg4LDEzIEBAIGJvb2wgU3Bl
Y3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcUZvckMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcShOb2RlKiBub2RlKQorYm9vbCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVN0cmljdEVxKE5vZGUqIG5vZGUsIGJvb2wgaW52ZXJ0KQog
ewogICAgIGlmIChOb2RlOjpzaG91bGRTcGVjdWxhdGVJbnRlZ2VyKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSwgbm9kZS0+Y2hpbGQyKCkubm9kZSgpKSkgewogICAgICAgICB1bnNpZ25lZCBicmFuY2hJ
bmRleEluQmxvY2sgPSBkZXRlY3RQZWVwSG9sZUJyYW5jaCgpOwogICAgICAgICBpZiAoYnJhbmNo
SW5kZXhJbkJsb2NrICE9IFVJTlRfTUFYKSB7CiAgICAgICAgICAgICBOb2RlKiBicmFuY2hOb2Rl
ID0gbV9qaXQuZ3JhcGgoKS5tX2Jsb2Nrc1ttX2Jsb2NrXS0+YXQoYnJhbmNoSW5kZXhJbkJsb2Nr
KTsKLSAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9sZUludGVnZXJCcmFuY2gobm9kZSwgYnJhbmNo
Tm9kZSwgTWFjcm9Bc3NlbWJsZXI6OkVxdWFsKTsKKyAgICAgICAgICAgIGNvbXBpbGVQZWVwSG9s
ZUludGVnZXJCcmFuY2gobm9kZSwgYnJhbmNoTm9kZSwgaW52ZXJ0ID8gTWFjcm9Bc3NlbWJsZXI6
Ok5vdEVxdWFsIDogTWFjcm9Bc3NlbWJsZXI6OkVxdWFsKTsKICAgICAgICAgICAgIHVzZShub2Rl
LT5jaGlsZDEoKSk7CiAgICAgICAgICAgICB1c2Uobm9kZS0+Y2hpbGQyKCkpOwogICAgICAgICAg
ICAgbV9pbmRleEluQmxvY2sgPSBicmFuY2hJbmRleEluQmxvY2s7CkBAIC0zNTA5LDcgKzM1MDks
NyBAQCBib29sIFNwZWN1bGF0aXZlSklUOjpjb21waWxlU3RyaWN0RXEoTm9kCiAgICAgICAgIHVu
c2lnbmVkIGJyYW5jaEluZGV4SW5CbG9jayA9IGRldGVjdFBlZXBIb2xlQnJhbmNoKCk7CiAgICAg
ICAgIGlmIChicmFuY2hJbmRleEluQmxvY2sgIT0gVUlOVF9NQVgpIHsKICAgICAgICAgICAgIE5v
ZGUqIGJyYW5jaE5vZGUgPSBtX2ppdC5ncmFwaCgpLm1fYmxvY2tzW21fYmxvY2tdLT5hdChicmFu
Y2hJbmRleEluQmxvY2spOwotICAgICAgICAgICAgY29tcGlsZVBlZXBIb2xlRG91YmxlQnJhbmNo
KG5vZGUsIGJyYW5jaE5vZGUsIE1hY3JvQXNzZW1ibGVyOjpEb3VibGVFcXVhbCk7CisgICAgICAg
ICAgICBjb21waWxlUGVlcEhvbGVEb3VibGVCcmFuY2gobm9kZSwgYnJhbmNoTm9kZSwgaW52ZXJ0
ID8gTWFjcm9Bc3NlbWJsZXI6OkRvdWJsZU5vdEVxdWFsT3JVbm9yZGVyZWQgOiBNYWNyb0Fzc2Vt
Ymxlcjo6RG91YmxlRXF1YWwpOwogICAgICAgICAgICAgdXNlKG5vZGUtPmNoaWxkMSgpKTsKICAg
ICAgICAgICAgIHVzZShub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBtX2luZGV4SW5CbG9j
ayA9IGJyYW5jaEluZGV4SW5CbG9jazsKQEAgLTM1MjEsNyArMzUyMSw3IEBAIGJvb2wgU3BlY3Vs
YXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcShOb2QKICAgICB9CiAgICAgCiAgICAgaWYgKG5vZGUt
PmNoaWxkMSgpLT5zaG91bGRTcGVjdWxhdGVTdHJpbmcoKSB8fCBub2RlLT5jaGlsZDIoKS0+c2hv
dWxkU3BlY3VsYXRlU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiBub25TcGVjdWxhdGl2ZVN0cmlj
dEVxKG5vZGUpOworICAgICAgICByZXR1cm4gbm9uU3BlY3VsYXRpdmVTdHJpY3RFcShub2RlLCBp
bnZlcnQpOwogICAgIGlmIChub2RlLT5jaGlsZDEoKS0+c2hvdWxkU3BlY3VsYXRlT2JqZWN0KCkg
JiYgbm9kZS0+Y2hpbGQyKCktPnNob3VsZFNwZWN1bGF0ZU9iamVjdCgpKSB7CiAgICAgICAgIHVu
c2lnbmVkIGJyYW5jaEluZGV4SW5CbG9jayA9IGRldGVjdFBlZXBIb2xlQnJhbmNoKCk7CiAgICAg
ICAgIGlmIChicmFuY2hJbmRleEluQmxvY2sgIT0gVUlOVF9NQVgpIHsKQEAgLTM1MzcsNyArMzUz
Nyw3IEBAIGJvb2wgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJpY3RFcShOb2QKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gbm9uU3BlY3VsYXRpdmVTdHJp
Y3RFcShub2RlKTsKKyAgICByZXR1cm4gbm9uU3BlY3VsYXRpdmVTdHJpY3RFcShub2RlLCBpbnZl
cnQpOwogfQogCiB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0SW5kZXhlZFByb3BlcnR5
U3RvcmFnZShOb2RlKiBub2RlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuaAkocmV2aXNpb24gMTQyNzIzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDM2LDkg
KzIwMzYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlUGVlcEhvbGVJbnRlZ2VyQnJhbmNo
KE5vZGUqLCBOb2RlKiBicmFuY2hOb2RlLCBKSVRDb21waWxlcjo6UmVsYXRpb25hbENvbmRpdGlv
bik7CiAgICAgdm9pZCBjb21waWxlUGVlcEhvbGVEb3VibGVCcmFuY2goTm9kZSosIE5vZGUqIGJy
YW5jaE5vZGUsIEpJVENvbXBpbGVyOjpEb3VibGVDb25kaXRpb24pOwogICAgIHZvaWQgY29tcGls
ZVBlZXBIb2xlT2JqZWN0RXF1YWxpdHkoTm9kZSosIE5vZGUqIGJyYW5jaE5vZGUpOwotICAgIHZv
aWQgY29tcGlsZVBlZXBIb2xlT2JqZWN0VG9PYmplY3RPck90aGVyRXF1YWxpdHkoRWRnZSBsZWZ0
Q2hpbGQsIEVkZ2UgcmlnaHRDaGlsZCwgTm9kZSogYnJhbmNoTm9kZSk7CisgICAgdm9pZCBjb21w
aWxlUGVlcEhvbGVPYmplY3RUb09iamVjdE9yT3RoZXJFcXVhbGl0eShOb2RlKiwgRWRnZSBsZWZ0
Q2hpbGQsIEVkZ2UgcmlnaHRDaGlsZCwgTm9kZSogYnJhbmNoTm9kZSk7CiAgICAgdm9pZCBjb21w
aWxlT2JqZWN0RXF1YWxpdHkoTm9kZSopOwotICAgIHZvaWQgY29tcGlsZU9iamVjdFRvT2JqZWN0
T3JPdGhlckVxdWFsaXR5KEVkZ2UgbGVmdENoaWxkLCBFZGdlIHJpZ2h0Q2hpbGQpOworICAgIHZv
aWQgY29tcGlsZU9iamVjdFRvT2JqZWN0T3JPdGhlckVxdWFsaXR5KE5vZGUqLCBFZGdlIGxlZnRD
aGlsZCwgRWRnZSByaWdodENoaWxkKTsKICAgICB2b2lkIGNvbXBpbGVWYWx1ZUFkZChOb2RlKik7
CiAgICAgdm9pZCBjb21waWxlT2JqZWN0T3JPdGhlckxvZ2ljYWxOb3QoRWRnZSB2YWx1ZSwgYm9v
bCBuZWVkU3BlY3VsYXRpb25DaGVjayk7CiAgICAgdm9pZCBjb21waWxlTG9naWNhbE5vdChOb2Rl
Kik7CkBAIC0yMDQ4LDkgKzIwNDgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21waWxlSW50ZWdl
ckNvbXBhcmUoTm9kZSosIE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbmFsQ29uZGl0aW9uKTsKICAg
ICB2b2lkIGNvbXBpbGVEb3VibGVDb21wYXJlKE5vZGUqLCBNYWNyb0Fzc2VtYmxlcjo6RG91Ymxl
Q29uZGl0aW9uKTsKICAgICAKLSAgICBib29sIGNvbXBpbGVTdHJpY3RFcUZvckNvbnN0YW50KE5v
ZGUqLCBFZGdlIHZhbHVlLCBKU1ZhbHVlIGNvbnN0YW50KTsKKyAgICBib29sIGNvbXBpbGVTdHJp
Y3RFcUZvckNvbnN0YW50KE5vZGUqLCBFZGdlIHZhbHVlLCBKU1ZhbHVlIGNvbnN0YW50LCBib29s
IGludmVydCA9IGZhbHNlKTsKICAgICAKLSAgICBib29sIGNvbXBpbGVTdHJpY3RFcShOb2RlKik7
CisgICAgYm9vbCBjb21waWxlU3RyaWN0RXEoTm9kZSosIGJvb2wgaW52ZXJ0ID0gZmFsc2UpOwog
ICAgIAogICAgIHZvaWQgY29tcGlsZUFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsKICAg
ICB2b2lkIGNvbXBpbGVSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlKE5vZGUqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188024</attachid>
            <date>2013-02-12 23:49:00 -0800</date>
            <delta_ts>2013-02-13 00:03:49 -0800</delta_ts>
            <desc>another wrong way</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6421</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WYWx1ZVJlY292ZXJ5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZhbHVlUmVjb3Zlcnku
aAkocmV2aXNpb24gMTQyNzIzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1Zh
bHVlUmVjb3ZlcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNjksMTYgKzY5LDI3IEBAIGVudW0gVmFs
dWVSZWNvdmVyeVRlY2huaXF1ZSB7CiAgICAgRG9udEtub3cKIH07CiAKK2VudW0gUm9sbEZvcndh
cmQgeworICAgIE5vUm9sbEZvcndhcmQsCisgICAgUm9sbEZvcndhcmRMb2dpY2FsTm90Cit9Owor
CiBjbGFzcyBWYWx1ZVJlY292ZXJ5IHsKIHB1YmxpYzoKICAgICBWYWx1ZVJlY292ZXJ5KCkKICAg
ICAgICAgOiBtX3RlY2huaXF1ZShEb250S25vdykKKyAgICAgICAgLCBtX3JvbGxGb3J3YXJkKE5v
Um9sbEZvcndhcmQpCiAgICAgewogICAgIH0KICAgICAKLSAgICBib29sIGlzU2V0KCkgY29uc3Qg
eyByZXR1cm4gbV90ZWNobmlxdWUgIT0gRG9udEtub3c7IH0KKyAgICBWYWx1ZVJlY292ZXJ5VGVj
aG5pcXVlIHRlY2huaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFZhbHVlUmVjb3Zl
cnlUZWNobmlxdWU+KG1fdGVjaG5pcXVlKTsgfQorICAgIFJvbGxGb3J3YXJkIHJvbGxGb3J3YXJk
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Um9sbEZvcndhcmQ+KG1fcm9sbEZvcndhcmQp
OyB9CisgICAgCisgICAgYm9vbCBpc1NldCgpIGNvbnN0IHsgcmV0dXJuIHRlY2huaXF1ZSgpICE9
IERvbnRLbm93OyB9CiAgICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhaXNTZXQo
KTsgfQogICAgIAorICAgIGJvb2wgcmVxdWlyZXNSb2xsRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJu
IHJvbGxGb3J3YXJkKCkgIT0gTm9Sb2xsRm9yd2FyZDsgfQorICAgIAogICAgIHN0YXRpYyBWYWx1
ZVJlY292ZXJ5IGFscmVhZHlJbkpTU3RhY2soKQogICAgIHsKICAgICAgICAgVmFsdWVSZWNvdmVy
eSByZXN1bHQ7CkBAIC0yMDIsMTMgKzIxMywxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogICAgIAotICAgIFZhbHVlUmVjb3ZlcnlUZWNobmlxdWUgdGVjaG5pcXVl
KCkgY29uc3QgeyByZXR1cm4gbV90ZWNobmlxdWU7IH0KLSAgICAKLSAgICBib29sIGlzQ29uc3Rh
bnQoKSBjb25zdCB7IHJldHVybiBtX3RlY2huaXF1ZSA9PSBDb25zdGFudDsgfQorICAgIGJvb2wg
aXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIHRlY2huaXF1ZSgpID09IENvbnN0YW50OyB9CiAg
ICAgCiAgICAgYm9vbCBpc0luUmVnaXN0ZXJzKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHN3aXRj
aCAobV90ZWNobmlxdWUpIHsKKyAgICAgICAgc3dpdGNoICh0ZWNobmlxdWUoKSkgewogICAgICAg
ICBjYXNlIEluR1BSOgogICAgICAgICBjYXNlIFVuYm94ZWRJbnQzMkluR1BSOgogICAgICAgICBj
YXNlIFVuYm94ZWRCb29sZWFuSW5HUFI6CkBAIC0yMzgsNDIgKzI0Nyw0NyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgZ3ByKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3RlY2huaXF1ZSA9PSBJbkdQUiB8fCBtX3RlY2huaXF1ZSA9PSBVbmJv
eGVkSW50MzJJbkdQUiB8fCBtX3RlY2huaXF1ZSA9PSBVbmJveGVkQm9vbGVhbkluR1BSIHx8IG1f
dGVjaG5pcXVlID09IFVJbnQzMkluR1BSKTsKKyAgICAgICAgQVNTRVJUKHRlY2huaXF1ZSgpID09
IEluR1BSIHx8IHRlY2huaXF1ZSgpID09IFVuYm94ZWRJbnQzMkluR1BSIHx8IHRlY2huaXF1ZSgp
ID09IFVuYm94ZWRCb29sZWFuSW5HUFIgfHwgdGVjaG5pcXVlKCkgPT0gVUludDMySW5HUFIpOwog
ICAgICAgICByZXR1cm4gbV9zb3VyY2UuZ3ByOwogICAgIH0KICAgICAKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQogICAgIE1hY3JvQXNzZW1ibGVyOjpSZWdpc3RlcklEIHRhZ0dQUigpIGNvbnN0CiAg
ICAgewotICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUgPT0gSW5QYWlyKTsKKyAgICAgICAgQVNT
RVJUKHRlY2huaXF1ZSgpID09IEluUGFpcik7CiAgICAgICAgIHJldHVybiBtX3NvdXJjZS5wYWly
LnRhZ0dQUjsKICAgICB9CiAgICAgCiAgICAgTWFjcm9Bc3NlbWJsZXI6OlJlZ2lzdGVySUQgcGF5
bG9hZEdQUigpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUgPT0gSW5Q
YWlyKTsKKyAgICAgICAgQVNTRVJUKHRlY2huaXF1ZSgpID09IEluUGFpcik7CiAgICAgICAgIHJl
dHVybiBtX3NvdXJjZS5wYWlyLnBheWxvYWRHUFI7CiAgICAgfQogI2VuZGlmCiAgICAgCiAgICAg
TWFjcm9Bc3NlbWJsZXI6OkZQUmVnaXN0ZXJJRCBmcHIoKSBjb25zdAogICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fdGVjaG5pcXVlID09IEluRlBSKTsKKyAgICAgICAgQVNTRVJUKHRlY2huaXF1ZSgp
ID09IEluRlBSKTsKICAgICAgICAgcmV0dXJuIG1fc291cmNlLmZwcjsKICAgICB9CiAgICAgCiAg
ICAgVmlydHVhbFJlZ2lzdGVyIHZpcnR1YWxSZWdpc3RlcigpIGNvbnN0CiAgICAgewotICAgICAg
ICBBU1NFUlQobV90ZWNobmlxdWUgPT0gRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVl
ID09IEludDMyRGlzcGxhY2VkSW5KU1N0YWNrIHx8IG1fdGVjaG5pcXVlID09IERvdWJsZURpc3Bs
YWNlZEluSlNTdGFjayB8fCBtX3RlY2huaXF1ZSA9PSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrIHx8
IG1fdGVjaG5pcXVlID09IEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2spOworICAgICAgICBBU1NF
UlQodGVjaG5pcXVlKCkgPT0gRGlzcGxhY2VkSW5KU1N0YWNrIHx8IHRlY2huaXF1ZSgpID09IElu
dDMyRGlzcGxhY2VkSW5KU1N0YWNrIHx8IHRlY2huaXF1ZSgpID09IERvdWJsZURpc3BsYWNlZElu
SlNTdGFjayB8fCB0ZWNobmlxdWUoKSA9PSBDZWxsRGlzcGxhY2VkSW5KU1N0YWNrIHx8IHRlY2hu
aXF1ZSgpID09IEJvb2xlYW5EaXNwbGFjZWRJbkpTU3RhY2spOwogICAgICAgICByZXR1cm4gbV9z
b3VyY2UudmlydHVhbFJlZzsKICAgICB9CiAgICAgCiAgICAgSlNWYWx1ZSBjb25zdGFudCgpIGNv
bnN0CiAgICAgewotICAgICAgICBBU1NFUlQobV90ZWNobmlxdWUgPT0gQ29uc3RhbnQpOworICAg
ICAgICBBU1NFUlQodGVjaG5pcXVlKCkgPT0gQ29uc3RhbnQpOwogICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZGVjb2RlKG1fc291cmNlLmNvbnN0YW50KTsKICAgICB9CiAgICAgCisgICAgdm9pZCBz
ZXRSb2xsRm9yd2FyZChSb2xsRm9yd2FyZCByb2xsRm9yd2FyZCkKKyAgICB7CisgICAgICAgIG1f
cm9sbEZvcndhcmQgPSByb2xsRm9yd2FyZDsKKyAgICB9CisgICAgCiAgICAgdm9pZCBkdW1wKFBy
aW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgewogICAgICAgICBzd2l0Y2ggKHRlY2huaXF1ZSgp
KSB7CkBAIC0zNDMsNyArMzU3LDggQEAgcHVibGljOgogICAgIH0KICAgICAKIHByaXZhdGU6Ci0g
ICAgVmFsdWVSZWNvdmVyeVRlY2huaXF1ZSBtX3RlY2huaXF1ZTsKKyAgICBpbnQ4X3QgbV90ZWNo
bmlxdWU7CisgICAgaW50OF90IG1fcm9sbEZvcndhcmQ7CiAgICAgdW5pb24gewogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6UmVnaXN0ZXJJRCBncHI7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpG
UFJlZ2lzdGVySUQgZnByOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdNaW5p
ZmllZE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR01p
bmlmaWVkTm9kZS5oCShyZXZpc2lvbiAxNDI3MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR01pbmlmaWVkTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw4ICs0NSwxMCBAQCBp
bmxpbmUgYm9vbCBiZWxvbmdzSW5NaW5pZmllZEdyYXBoKE5vZGVUCiAgICAgY2FzZSBXZWFrSlND
b25zdGFudDoKICAgICBjYXNlIFZhbHVlVG9JbnQzMjoKICAgICBjYXNlIEludDMyVG9Eb3VibGU6
CisgICAgY2FzZSBGb3J3YXJkSW50MzJUb0RvdWJsZToKICAgICBjYXNlIFVJbnQzMlRvTnVtYmVy
OgogICAgIGNhc2UgRG91YmxlQXNJbnQzMjoKKyAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgY2Fz
ZSBQaGFudG9tQXJndW1lbnRzOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBkZWZhdWx0OgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDE0MjcyMykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05
NDcsNiArOTQ3LDcgQEAgc3RydWN0IE5vZGUgewogICAgICAgICBjYXNlIFZhbHVlVG9JbnQzMjoK
ICAgICAgICAgY2FzZSBVSW50MzJUb051bWJlcjoKICAgICAgICAgY2FzZSBEb3VibGVBc0ludDMy
OgorICAgICAgICBjYXNlIExvZ2ljYWxOb3Q6CiAgICAgICAgIGNhc2UgUGhhbnRvbUFyZ3VtZW50
czoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFBoYW50b206CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmlhYmxlRXZlbnRTdHJlYW0uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyaWFibGVFdmVudFN0
cmVhbS5jcHAJKHJldmlzaW9uIDE0MjcyMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHVmFyaWFibGVFdmVudFN0cmVhbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMs
MTMgQEAgdm9pZCBWYXJpYWJsZUV2ZW50U3RyZWFtOjpyZWNvbnN0cnVjdCgKICAgICAgICAgICAg
IAogICAgICAgICAgICAgYm9vbCBmb3VuZCA9IGZhbHNlOwogICAgICAgICAgICAgCisgICAgICAg
ICAgICAvLyBUaGlzIGlzIGdvaW5nIHRvIGJlIGEgd29ybGQgb2YgaHVydC4gV2UgY2FuIGhhdmUg
YW4gYXJiaXRyYXJ5IHRvd2VyIG9mCisgICAgICAgICAgICAvLyBMb2dpY2FsTm90J3MsIGNvbWJp
bmVkIHdpdGggVUludDMyVG9OdW1iZXIncyBhbmQgdGhlIG90aGVyIHRoaW5ncy4KKyAgICAgICAg
ICAgIC8vIFdvcmxkIG9mIGh1cnQgZG9lc24ndCBldmVuIGJlZ2luIHRvIGRlc2NyaWJlIHRoZSBz
aXR1YXRpb24uCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChub2RlKSB7CisgICAgICAg
ICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBVSW50
MzJUb051bWJlcjoKICAgICAgICAgICAgIGlmIChub2RlICYmIG5vZGUtPm9wKCkgPT0gVUludDMy
VG9OdW1iZXIpIHsKICAgICAgICAgICAgICAgICBNaW5pZmllZElEIGlkID0gbm9kZS0+Y2hpbGQx
KCk7CiAgICAgICAgICAgICAgICAgaWYgKHRyeVRvU2V0Q29uc3RhbnRSZWNvdmVyeSh2YWx1ZVJl
Y292ZXJpZXNbaV0sIGNvZGVCbG9jaywgZ3JhcGguYXQoaWQpKSkKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAkocmV2aXNpb24gMTQyNzIzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzk3LDYgKzM5Nyw3IEBAIHZvaWQgQXJndW1lbnRzOjp0ZWFyT2ZmRm9ySW5saW5lQ2Fs
bEZyYW0KIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbnVtQXJndW1lbnRzOyArK2kp
IHsKICAgICAgICAgVmFsdWVSZWNvdmVyeSYgcmVjb3ZlcnkgPSBpbmxpbmVDYWxsRnJhbWUtPmFy
Z3VtZW50c1tpICsgMV07CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFyZWNvdmVyeS5yZXF1aXJl
c1JvbGxGb3J3YXJkKCkpOwogICAgICAgICAvLyBJbiB0aGUgZnV0dXJlIHdlJ2xsIHN1cHBvcnQg
ZGlzcGxhY2VkIHJlY292ZXJpZXMgKGluZGljYXRpbmcgdGhhdCB0aGUKICAgICAgICAgLy8gYXJn
dW1lbnQgd2FzIGZsdXNoZWQgdG8gYSBkaWZmZXJlbnQgbG9jYXRpb24pLCBidXQgZm9yIG5vdyB3
ZSBkb24ndCBkbwogICAgICAgICAvLyB0aGF0IHNvIHRoaXMgY29kZSB3aWxsIGZhaWwgaWYgdGhh
dCB3ZXJlIHRvIGhhcHBlbi4gT24gdGhlIG90aGVyIGhhbmQsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188027</attachid>
            <date>2013-02-13 00:03:49 -0800</date>
            <delta_ts>2013-02-13 11:55:38 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>6206</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNzI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDEzLTAyLTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIExvZ2ljYWxOb3QvQnJhbmNoIHBlZXBob2xlIHJlbW92YWwgYW5kIGludmVyc2lvbiBpZ25v
cmVzIHRoZSBwb3NzaWJpbGl0eSBvZiB0aGluZ3MgZXhpdGluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDg5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJZiB0aGluZ3MgY2FuIGV4aXQg
YmV0d2VlbiB0aGUgTG9naWNhbE5vdCBhbmQgdGhlIEJyYW5jaCB0aGVuIGRvbid0IHBlZXBob2xl
LgorCisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisKIDIwMTMtMDItMTIgIEpvc2VwaCBQZWNvcmFybyAg
PHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBFbmFibGUgUEFHRV9WSVNJQklM
SVRZX0FQSQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwCShyZXZpc2lvbiAxNDI3MjMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Zp
eHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIsMTYgKzIzMiwzOSBAQCBwcml2YXRl
OgogICAgICAgICAgICAgTm9kZSogbG9naWNhbE5vdCA9IG5vZGUtPmNoaWxkMSgpLm5vZGUoKTsK
ICAgICAgICAgICAgIGlmIChsb2dpY2FsTm90LT5vcCgpID09IExvZ2ljYWxOb3QKICAgICAgICAg
ICAgICAgICAmJiBsb2dpY2FsTm90LT5hZGp1c3RlZFJlZkNvdW50KCkgPT0gMSkgewotICAgICAg
ICAgICAgICAgIEVkZ2UgbmV3Q2hpbGRFZGdlID0gbG9naWNhbE5vdC0+Y2hpbGQxKCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKG5ld0NoaWxkRWRnZS0+aGFzQm9vbGVhblJlc3VsdCgpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIG1fZ3JhcGgucmVmKG5ld0NoaWxkRWRnZSk7Ci0gICAgICAgICAgICAg
ICAgICAgIG1fZ3JhcGguZGVyZWYobG9naWNhbE5vdCk7Ci0gICAgICAgICAgICAgICAgICAgIG5v
ZGUtPmNoaWxkcmVuLnNldENoaWxkMShuZXdDaGlsZEVkZ2UpOwotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgQmxvY2tJbmRleCB0b0JlVGFrZW4gPSBub2RlLT5ub3RU
YWtlbkJsb2NrSW5kZXgoKTsKLSAgICAgICAgICAgICAgICAgICAgQmxvY2tJbmRleCB0b0JlTm90
VGFrZW4gPSBub2RlLT50YWtlbkJsb2NrSW5kZXgoKTsKLSAgICAgICAgICAgICAgICAgICAgbm9k
ZS0+c2V0VGFrZW5CbG9ja0luZGV4KHRvQmVUYWtlbik7Ci0gICAgICAgICAgICAgICAgICAgIG5v
ZGUtPnNldE5vdFRha2VuQmxvY2tJbmRleCh0b0JlTm90VGFrZW4pOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IE9TUiBleGl0IGNhbid0IG9ic2Vy
dmUgdGhlIExvZ2ljYWxOb3QuIElmIGl0IGNhbiwKKyAgICAgICAgICAgICAgICAvLyB0aGVuIHdl
IG11c3QgY29tcHV0ZSBpdCBhbmQgY2Fubm90IHBlZXBob2xlIGFyb3VuZCBpdC4KKyAgICAgICAg
ICAgICAgICBib29sIGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgYm9vbCBvayA9IHRy
dWU7CisgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gbV9pbmRleEluQmxvY2s7IGkt
LTspIHsKKyAgICAgICAgICAgICAgICAgICAgTm9kZSogY2FuZGlkYXRlID0gbV9ibG9jay0+YXQo
aSk7CisgICAgICAgICAgICAgICAgICAgIGlmICghY2FuZGlkYXRlLT5zaG91bGRHZW5lcmF0ZSgp
KQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgICAg
IGlmIChjYW5kaWRhdGUgPT0gbG9naWNhbE5vdCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
Zm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZS0+Y2FuRXhpdCgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAgICAgICAgICAgICAg
ICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
QVNTRVJUX1VOVVNFRChmb3VuZCwgZm91bmQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIGlmIChvaykgeworICAgICAgICAgICAgICAgICAgICBFZGdlIG5ld0NoaWxkRWRnZSA9
IGxvZ2ljYWxOb3QtPmNoaWxkMSgpOworICAgICAgICAgICAgICAgICAgICBpZiAobmV3Q2hpbGRF
ZGdlLT5oYXNCb29sZWFuUmVzdWx0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3Jh
cGgucmVmKG5ld0NoaWxkRWRnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmRl
cmVmKGxvZ2ljYWxOb3QpOworICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+Y2hpbGRyZW4u
c2V0Q2hpbGQxKG5ld0NoaWxkRWRnZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEJsb2NrSW5kZXggdG9CZVRha2VuID0gbm9kZS0+bm90VGFrZW5C
bG9ja0luZGV4KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBCbG9ja0luZGV4IHRvQmVOb3RU
YWtlbiA9IG5vZGUtPnRha2VuQmxvY2tJbmRleCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZS0+c2V0VGFrZW5CbG9ja0luZGV4KHRvQmVUYWtlbik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBub2RlLT5zZXROb3RUYWtlbkJsb2NrSW5kZXgodG9CZU5vdFRha2VuKTsKKyAgICAgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTQyNzI2KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDItMTIgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBERkcgTG9naWNhbE5vdC9CcmFu
Y2ggcGVlcGhvbGUgcmVtb3ZhbCBhbmQgaW52ZXJzaW9uIGlnbm9yZXMgdGhlIHBvc3NpYmlsaXR5
IG9mIHRoaW5ncyBleGl0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvanMvZGZnLWJyYW5jaC1sb2dpY2FsLW5vdC1wZWVwaG9sZS1hcm91
bmQtb3NyLWV4aXQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9qc2MtdGVzdC1saXN0
OgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL2RmZy1icmFuY2gtbG9naWNhbC1ub3Qt
cGVlcGhvbGUtYXJvdW5kLW9zci1leGl0LmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6CisKIDIw
MTMtMDItMTIgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAg
IFtJbnRlcm5hbHNdIHNldFNoYWRvd0RPTUVuYWJsZWQoKSBzaG91bGRuJ3QgYmUgdXNlZCBleGNl
cHQgYSBmZXcgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2RmZy1icmFuY2gtbG9n
aWNhbC1ub3QtcGVlcGhvbGUtYXJvdW5kLW9zci1leGl0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9qcy9kZmctYnJhbmNoLWxvZ2ljYWwtbm90LXBlZXBob2xlLWFyb3VuZC1v
c3ItZXhpdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9kZmctYnJh
bmNoLWxvZ2ljYWwtbm90LXBlZXBob2xlLWFyb3VuZC1vc3ItZXhpdC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9kZmctYnJhbmNoLWxvZ2ljYWwtbm90LXBlZWxob2xlLWFyb3VuZC1vc3ItZXhpdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10
ZXN0LWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9qc2MtdGVzdC1saXN0
CShyZXZpc2lvbiAxNDI3MjMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2pzYy10ZXN0LWxpc3QJ
KHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAgZmFzdC9qcy9kZmctYXJyYXktcG9wLXZh
bHVlLWNsZWFyaW5nCiBmYXN0L2pzL2RmZy1hcnJheS1wdXNoLWJhZC10aW1lCiBmYXN0L2pzL2Rm
Zy1hcnJheS1wdXNoLXNsb3ctcHV0CiBmYXN0L2pzL2RmZy1ib29sLXRvLWludDMyLXJldXNlCitm
YXN0L2pzL2RmZy1icmFuY2gtbG9naWNhbC1ub3QtcGVlcGhvbGUtYXJvdW5kLW9zci1leGl0CiBm
YXN0L2pzL2RmZy1icmFuY2gtbm90LWZhaWwKIGZhc3QvanMvZGZnLWNmYS1tZXJnZS13aXRoLWRl
YWQtdXNlLWF0LXRhaWwKIGZhc3QvanMvZGZnLWNmZy1zaW1wbGlmeS1waGFudG9tLWdldC1sb2Nh
bC1vbi1zYW1lLWJsb2NrLXNldC1sb2NhbApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3Jp
cHQtdGVzdHMvZGZnLWJyYW5jaC1sb2dpY2FsLW5vdC1wZWVwaG9sZS1hcm91bmQtb3NyLWV4aXQu
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZGZnLWJy
YW5jaC1sb2dpY2FsLW5vdC1wZWVwaG9sZS1hcm91bmQtb3NyLWV4aXQuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9kZmctYnJhbmNoLWxvZ2ljYWwt
bm90LXBlZXBob2xlLWFyb3VuZC1vc3ItZXhpdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDE5IEBACitkZXNjcmlwdGlvbigKKyJUZXN0cyB0aGF0IG91ciBhdHRlbXB0cyB0byBkbyBwZWVw
aG9sZSBCcmFuY2goTG9naWNhbE5vdCkgb3B0aW1pemF0aW9uIGRvZXNuJ3QgYnJlYWsgT1NSIGV4
aXQncyBhYmlsaXR5IHRvIHJlY292ZXIgdGhlIHZhbHVlIG9mIExvZ2ljYWxOb3QuIgorKTsKKwor
ZnVuY3Rpb24gZm9vKGEsIGIsIGMpIHsKKyAgICB2YXIgeCA9IGEgIT09IGI7CisgICAgdmFyIHJl
c3VsdCA9IGEgKyBjOworICAgIGlmICh4KQorICAgICAgICByZXN1bHQrKzsKKyAgICBlbHNlCisg
ICAgICAgIHJlc3VsdC0tOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMjAwOyArK2kpIHsKKyAgICB2YXIgZXhwZWN0ZWQgPSBpICsgKGkgPT0gOTkgPyAyMTQ3
NDgzNjQ3IDogNSkgKyAoaSAhPT0gNSA/IDEgOiAtMSkKKyAgICBzaG91bGRCZSgiZm9vKGksIDUs
IGkgPT0gOTkgPyAyMTQ3NDgzNjQ3IDogNSkiLCAiIiArIGV4cGVjdGVkKTsKK30KKwo=
</data>
<flag name="review"
          id="208021"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
    <flag name="commit-queue"
          id="208025"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>