<?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>45649</bug_id>
          
          <creation_ts>2010-09-13 03:23:40 -0700</creation_ts>
          <short_desc>Move adjustLexerState to the HTMLTokenizer</short_desc>
          <delta_ts>2010-09-14 09:14:14 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278101</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 03:23:40 -0700</bug_when>
    <thetext>Move adjustLexerState to the HTMLTokenizer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278102</commentid>
    <comment_count>1</comment_count>
      <attachid>67391</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 03:25:54 -0700</bug_when>
    <thetext>Created attachment 67391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278278</commentid>
    <comment_count>2</comment_count>
      <attachid>67391</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-13 10:05:06 -0700</bug_when>
    <thetext>Comment on attachment 67391
Patch

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

Seems we could remove includes of TreeBuilder.h now, no?

&gt; WebCore/html/parser/HTMLTokenizer.h:142
&gt; +    // Updates the tokenizer&apos;s state according to the given tag name.  This is
&gt; +    // an approxmation of how the tree builder would update the tokenizer&apos;s
&gt; +    // state.  This method is useful for approximating HTML tokenization.  To
&gt; +    // get exactly the correct tokenization, you need the real tree builder.
&gt; +    void updateState(const AtomicString&amp; tagName, Frame*);
If this is an approximation, can we name it to say such?  approximateStateForTag or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278360</commentid>
    <comment_count>3</comment_count>
      <attachid>67446</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 11:53:31 -0700</bug_when>
    <thetext>Created attachment 67446
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278367</commentid>
    <comment_count>4</comment_count>
      <attachid>67446</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-09-13 12:01:14 -0700</bug_when>
    <thetext>Comment on attachment 67446
Patch

&gt; +    // Updates the tokenizer&apos;s state according to the given tag name.  This is
&gt; +    // an approxmation of how the tree builder would update the tokenizer&apos;s
&gt; +    // state.  This method is useful for approximating HTML tokenization.  To
&gt; +    // get exactly the correct tokenization, you need the real tree builder.

Typo &quot;approxmation&quot;
Two spaces after periods.

I am uncomfortable with the use of the verb &quot;approximate&quot; here. First, it’s easy to confuse the verb with the adjective. And if this was an adjectival form then it would have a return value.

Your comment uses the verb &quot;update&quot; and I think that should be in the function name. Maybe updateStateForFakeElement? Or something else like that? Probably not because the element is not fake.

Another problem with &quot;approximate&quot; is that it doesn’t say what’s wrong. To decide if it’s OK to use the function you need to know how far off “correct” it is, not just that it’s not perfect. It’s not enough to say that it’s not 100% correct; that’s enough to get someone off the hook in a court of law or mathematical proof but is not so great for high-quality software development.

commit-queue- to give you a chance to consider my comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278370</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 12:05:41 -0700</bug_when>
    <thetext>&gt; Your comment uses the verb &quot;update&quot; and I think that should be in the function name. Maybe updateStateForFakeElement? Or something else like that? Probably not because the element is not fake.

:)

I originally called it &quot;updateState&quot; but Eric asked me to change it.

&gt; Another problem with &quot;approximate&quot; is that it doesn’t say what’s wrong. To decide if it’s OK to use the function you need to know how far off “correct” it is, not just that it’s not perfect. It’s not enough to say that it’s not 100% correct; that’s enough to get someone off the hook in a court of law or mathematical proof but is not so great for high-quality software development.

We might eventually need something fancier here where we run the tree builder in a side-effect free way.  The main thing this function doesn&apos;t understand is foreign content.  I&apos;ll add more detail to the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278400</commentid>
    <comment_count>6</comment_count>
      <attachid>67454</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 12:29:07 -0700</bug_when>
    <thetext>Created attachment 67454
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278878</commentid>
    <comment_count>7</comment_count>
      <attachid>67454</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-14 07:26:07 -0700</bug_when>
    <thetext>Comment on attachment 67454
Patch for landing

Clearing flags on attachment: 67454

Committed r67467: &lt;http://trac.webkit.org/changeset/67467&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278879</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-14 07:26:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278953</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:14:14 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67467 might have broken GTK Linux 32-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/67465
http://trac.webkit.org/changeset/67466
http://trac.webkit.org/changeset/67467
http://trac.webkit.org/changeset/67468</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67391</attachid>
            <date>2010-09-13 03:25:54 -0700</date>
            <delta_ts>2010-09-13 11:53:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45649-20100913032553.patch</filename>
            <type>text/plain</type>
            <size>8128</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDVkMTYwYTc0MjllMGMxNmMzNmZiZWU3NzZlYzFhOWExYmY5ZWUxYy4uYjA5NjgxODA5ZTE3YTNl
M2E3OGIyNjNjNDU0NWE5YTY4ZjE4ODY4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzMCBAQAogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCisgICAgICAgIE1vdmUgYWRqdXN0TGV4ZXJTdGF0ZSB0
byB0aGUgSFRNTFRva2VuaXplcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDU2NDkKKworICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgbGV0IHVzIHNo
YXJlIGNvZGUgYmV0d2VlbiB0aGUgdHJlZSBidWlsZGVyIGFuZCB0aGUKKyAgICAgICAgdHdvIG90
aGVyIHVzZXJzIG9mIHRoZSBIVE1MVG9rZW5pemVyLiAgSG93ZXZlciwgbm93IHRoYXQgdGhlIHRy
ZWUKKyAgICAgICAgYnVpbGRlciBpcyBhbGwgZ3Jvd24gdXAsIGl0IGNhbid0IHVzZSB0aGlzIGNv
ZGUgYW55bW9yZS4gIFRoZSBvdGhlcgorICAgICAgICB1c2VycyB3b3VsZCBtdWNoIHJhdGhlciB0
aGlzIGNvZGUgbGl2ZWQgb24gSFRNTFRva2VuaXplciBhbmQgdW5kZXJzdG9vZAorICAgICAgICA8
c2NyaXB0Pi4gIFRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gbWFrZSB0aGVtIGhhcHB5LgorCisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rva2VuKToKKyAgICAgICAgKiBodG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUb2tlbml6ZXI6
OnVwZGF0ZVN0YXRlKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmg6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6c2NyaXB0RW5hYmxlZCk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VQYXJzZXI6OnVw
ZGF0ZVRva2VuaXplclN0YXRlKToKKworMjAxMC0wOS0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAg
ICAgIE1vcmUgdHJpdmlhbCBFT0YgaGFuZGxpbmcgaW4gdHJlZSBidWlsZGVyCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTY0OAogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggNTI4M2ZhMzFlOTc3NzRkNmQz
NWY3ZjExNDY2M2QwMTMwNGExYTZkMi4uNzE2MDVmMWI4NDhiOTNiODczOTk3NmYzOTVlZjVmOTA1
ZDAxNDlmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5u
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcApA
QCAtMTU3LDEzICsxNTcsNyBAQCB2b2lkIEhUTUxQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rva2Vu
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUHJlbG9hZFRhc2sgdGFzayhtX3Rva2VuKTsKLSAg
ICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3Rh
dGUobV90b2tlbml6ZXItPnN0YXRlKCksIHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5mcmFt
ZSgpKSk7Ci0gICAgaWYgKHRhc2sudGFnTmFtZSgpID09IHNjcmlwdFRhZykgewotICAgICAgICAv
LyBUaGUgdHJlZSBidWlsZGVyIGhhbmRsZXMgc2NyaXB0VGFnIHNlcGFyYXRlbHkgZnJvbSB0aGUg
b3RoZXIgdG9rZW5pemVyCi0gICAgICAgIC8vIHN0YXRlIGFkanVzdG1lbnRzLCBzbyB3ZSBuZWVk
IHRvIGhhbmRsZSBpdCBzZXBhcmF0ZWx5IHRvby4KLSAgICAgICAgQVNTRVJUKG1fdG9rZW5pemVy
LT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIG1fdG9rZW5p
emVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3RhdGUpOwotICAgIH0KKyAg
ICBtX3Rva2VuaXplci0+dXBkYXRlU3RhdGUodGFzay50YWdOYW1lKCksIG1fZG9jdW1lbnQtPmZy
YW1lKCkpOwogCiAgICAgaWYgKHRhc2sudGFnTmFtZSgpID09IGJvZHlUYWcpCiAgICAgICAgIG1f
Ym9keVNlZW4gPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9r
ZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKaW5kZXgg
NjM2MTJlNmEwZjk5OGYwODhhMjQyZGRmZWNmYzc4YjIyYzM3MTdkMi4uMDc3ZTY0YzQxNmM2NDQw
NGVlNTI1NzIzOWMwZTU2NWMwMjZiNTI5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6
ZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIVE1MRW50aXR5UGFyc2VyLmgi
CiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlIDx3dGYvQVNDSUlDVHlwZS5oPgpAQCAtMTYzMiw2ICsxNjMzLDIzIEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBIVE1MVG9rZW5pemVyOjp1cGRhdGVT
dGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUsIEZyYW1lKiBmcmFtZSkKK3sKKyAgICBp
ZiAodGFnTmFtZSA9PSB0ZXh0YXJlYVRhZyB8fCB0YWdOYW1lID09IHRpdGxlVGFnKQorICAgICAg
ICBzZXRTdGF0ZShSQ0RBVEFTdGF0ZSk7CisgICAgZWxzZSBpZiAodGFnTmFtZSA9PSBwbGFpbnRl
eHRUYWcpCisgICAgICAgIHNldFN0YXRlKFBMQUlOVEVYVFN0YXRlKTsKKyAgICBlbHNlIGlmICh0
YWdOYW1lID09IHNjcmlwdFRhZykKKyAgICAgICAgc2V0U3RhdGUoU2NyaXB0RGF0YVN0YXRlKTsK
KyAgICBlbHNlIGlmICh0YWdOYW1lID09IHN0eWxlVGFnCisgICAgICAgIHx8IHRhZ05hbWUgPT0g
aWZyYW1lVGFnCisgICAgICAgIHx8IHRhZ05hbWUgPT0geG1wVGFnCisgICAgICAgIHx8ICh0YWdO
YW1lID09IG5vZW1iZWRUYWcgJiYgSFRNTFRyZWVCdWlsZGVyOjpwbHVnaW5zRW5hYmxlZChmcmFt
ZSkpCisgICAgICAgIHx8IHRhZ05hbWUgPT0gbm9mcmFtZXNUYWcKKyAgICAgICAgfHwgKHRhZ05h
bWUgPT0gbm9zY3JpcHRUYWcgJiYgSFRNTFRyZWVCdWlsZGVyOjpzY3JpcHRFbmFibGVkKGZyYW1l
KSkpCisgICAgICAgIHNldFN0YXRlKFJBV1RFWFRTdGF0ZSk7Cit9CisKIGlubGluZSBib29sIEhU
TUxUb2tlbml6ZXI6OnRlbXBvcmFyeUJ1ZmZlcklzKGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRTdHJp
bmcpCiB7CiAgICAgcmV0dXJuIHZlY3RvckVxdWFsc1N0cmluZyhtX3RlbXBvcmFyeUJ1ZmZlciwg
ZXhwZWN0ZWRTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9r
ZW5pemVyLmggYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaAppbmRleCBlYjZl
ZWRhM2IxM2RmZGFlMmIxMmQxZGUyM2RjZTg5ZmY5ODcyMzg2Li45NjYxOTU5MGY5NzYzZDVlOTRh
ODk1MjU5YTc3MjEzM2RiYzJhNDI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaApA
QCAtMzYsNiArMzYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50Owor
Y2xhc3MgRnJhbWU7CiBjbGFzcyBIVE1MVG9rZW47CiAKIGNsYXNzIEhUTUxUb2tlbml6ZXIgOiBw
dWJsaWMgTm9uY29weWFibGUgewpAQCAtMTM0LDYgKzEzNSwxMiBAQCBwdWJsaWM6CiAgICAgU3Rh
dGUgc3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlOyB9CiAgICAgdm9pZCBzZXRTdGF0ZShT
dGF0ZSBzdGF0ZSkgeyBtX3N0YXRlID0gc3RhdGU7IH0KIAorICAgIC8vIFVwZGF0ZXMgdGhlIHRv
a2VuaXplcidzIHN0YXRlIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gdGFnIG5hbWUuICBUaGlzIGlz
CisgICAgLy8gYW4gYXBwcm94bWF0aW9uIG9mIGhvdyB0aGUgdHJlZSBidWlsZGVyIHdvdWxkIHVw
ZGF0ZSB0aGUgdG9rZW5pemVyJ3MKKyAgICAvLyBzdGF0ZS4gIFRoaXMgbWV0aG9kIGlzIHVzZWZ1
bCBmb3IgYXBwcm94aW1hdGluZyBIVE1MIHRva2VuaXphdGlvbi4gIFRvCisgICAgLy8gZ2V0IGV4
YWN0bHkgdGhlIGNvcnJlY3QgdG9rZW5pemF0aW9uLCB5b3UgbmVlZCB0aGUgcmVhbCB0cmVlIGJ1
aWxkZXIuCisgICAgdm9pZCB1cGRhdGVTdGF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUs
IEZyYW1lKik7CisKICAgICAvLyBIYWNrIHRvIHNraXAgbGVhZGluZyBuZXdsaW5lIGluIDxwcmU+
LzxsaXN0aW5nPiBmb3IgYXV0aG9yaW5nIGVhc2UuCiAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvdG9rZW5pemF0aW9uLmh0
bWwjcGFyc2luZy1tYWluLWluYm9keQogICAgIHZvaWQgc2V0U2tpcExlYWRpbmdOZXdMaW5lRm9y
TGlzdGluZyhib29sIHZhbHVlKSB7IG1fc2tpcExlYWRpbmdOZXdMaW5lRm9yTGlzdGluZyA9IHZh
bHVlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggY2Y4ZmQy
NWYzMWEyNzIwM2Y3MmMyMjkyNWM3NWVjMWI2ZDQwYjE4Zi4uNTE4NmY1YWMwODY0ZjM2NDM2MWI1
MzQxMjc0MDZlYjRlYzI0MmVlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmNwcApAQCAtNDUyLDI1ICs0NTIsNiBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVlQnVp
bGRlcjo6dGFrZVNjcmlwdFRvUHJvY2VzcyhpbnQmIHNjcmlwdFN0YXJ0TGluZSkKICAgICByZXR1
cm4gbV9zY3JpcHRUb1Byb2Nlc3MucmVsZWFzZSgpOwogfQogCi1IVE1MVG9rZW5pemVyOjpTdGF0
ZSBIVE1MVHJlZUJ1aWxkZXI6OmFkanVzdGVkTGV4ZXJTdGF0ZShIVE1MVG9rZW5pemVyOjpTdGF0
ZSBzdGF0ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lLCBGcmFtZSogZnJhbWUpCi17Ci0g
ICAgaWYgKHRhZ05hbWUgPT0gdGV4dGFyZWFUYWcgfHwgdGFnTmFtZSA9PSB0aXRsZVRhZykKLSAg
ICAgICAgcmV0dXJuIEhUTUxUb2tlbml6ZXI6OlJDREFUQVN0YXRlOwotCi0gICAgaWYgKHRhZ05h
bWUgPT0gc3R5bGVUYWcKLSAgICAgICAgfHwgdGFnTmFtZSA9PSBpZnJhbWVUYWcKLSAgICAgICAg
fHwgdGFnTmFtZSA9PSB4bXBUYWcKLSAgICAgICAgfHwgKHRhZ05hbWUgPT0gbm9lbWJlZFRhZyAm
JiBwbHVnaW5zRW5hYmxlZChmcmFtZSkpCi0gICAgICAgIHx8IHRhZ05hbWUgPT0gbm9mcmFtZXNU
YWcKLSAgICAgICAgfHwgKHRhZ05hbWUgPT0gbm9zY3JpcHRUYWcgJiYgc2NyaXB0RW5hYmxlZChm
cmFtZSkpKQotICAgICAgICByZXR1cm4gSFRNTFRva2VuaXplcjo6UkFXVEVYVFN0YXRlOwotCi0g
ICAgaWYgKHRhZ05hbWUgPT0gcGxhaW50ZXh0VGFnKQotICAgICAgICByZXR1cm4gSFRNTFRva2Vu
aXplcjo6UExBSU5URVhUU3RhdGU7Ci0KLSAgICByZXR1cm4gc3RhdGU7Ci19Ci0KIHZvaWQgSFRN
TFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3VG9rZW4p
CiB7CiAgICAgQXRvbWljSFRNTFRva2VuIHRva2VuKHJhd1Rva2VuKTsKQEAgLTI4MDIsOSArMjc4
Myw3IEBAIGJvb2wgSFRNTFRyZWVCdWlsZGVyOjpzY3JpcHRFbmFibGVkKEZyYW1lKiBmcmFtZSkK
IHsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKFNjcmlw
dENvbnRyb2xsZXIqIHNjcmlwdENvbnRyb2xsZXIgPSBmcmFtZS0+c2NyaXB0KCkpCi0gICAgICAg
IHJldHVybiBzY3JpcHRDb250cm9sbGVyLT5jYW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhl
Y3V0ZVNjcmlwdCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBmcmFtZS0+c2NyaXB0
KCktPmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KTsKIH0KIAogYm9v
bCBIVE1MVHJlZUJ1aWxkZXI6OnBsdWdpbnNFbmFibGVkKEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmggYi9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCmluZGV4IGI0ODNmOTY2MWMyYWE3NDA1NDY3YTY3OTI4
N2Q1ZDkzYWJmYTRmMmUuLjc5N2I3YmRkMzMzMTA1NWY4OGE5M2UxZjkzYTAwMzQ4ZGQyOWQ5YzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKKysrIGIv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaApAQCAtNzYsOCArNzYsNiBAQCBw
dWJsaWM6CiAgICAgLy8gRG9uZSwgY2xvc2UgYW55IG9wZW4gdGFncywgZXRjLgogICAgIHZvaWQg
ZmluaXNoZWQoKTsKIAotICAgIHN0YXRpYyBIVE1MVG9rZW5pemVyOjpTdGF0ZSBhZGp1c3RlZExl
eGVyU3RhdGUoSFRNTFRva2VuaXplcjo6U3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSwgRnJhbWUqKTsKLQogICAgIHN0YXRpYyBib29sIHNjcmlwdEVuYWJsZWQoRnJhbWUqKTsKICAg
ICBzdGF0aWMgYm9vbCBwbHVnaW5zRW5hYmxlZChGcmFtZSopOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCmluZGV4IDhhNzk4NGRjOGVjYjEzZjNjN2Nm
MDQ2MjZhNWQ3ZTFlYTUwNTE5MmQuLjExNGRlNTNmMDAzNTQ3ZmIyZTg4NWQwZDk5NzUwODM5NWE2
YjZkZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJz
ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3Bw
CkBAIC04NywxMyArODcsNyBAQCB2b2lkIEhUTUxWaWV3U291cmNlUGFyc2VyOjp1cGRhdGVUb2tl
bml6ZXJTdGF0ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEF0b21pY1N0cmluZyB0YWdOYW1l
KG1fdG9rZW4ubmFtZSgpLmRhdGEoKSwgbV90b2tlbi5uYW1lKCkuc2l6ZSgpKTsKLSAgICBtX3Rv
a2VuaXplci0+c2V0U3RhdGUoSFRNTFRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUobV90
b2tlbml6ZXItPnN0YXRlKCksIHRhZ05hbWUsIGRvY3VtZW50KCktPmZyYW1lKCkpKTsKLSAgICBp
ZiAodGFnTmFtZSA9PSBIVE1MTmFtZXM6OnNjcmlwdFRhZykgewotICAgICAgICAvLyBUaGUgdHJl
ZSBidWlsZGVyIGhhbmRsZXMgc2NyaXB0VGFnIHNlcGFyYXRlbHkgZnJvbSB0aGUgb3RoZXIgdG9r
ZW5pemVyCi0gICAgICAgIC8vIHN0YXRlIGFkanVzdG1lbnRzLCBzbyB3ZSBuZWVkIHRvIGhhbmRs
ZSBpdCBzZXBhcmF0ZWx5IHRvby4KLSAgICAgICAgQVNTRVJUKG1fdG9rZW5pemVyLT5zdGF0ZSgp
ID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIG1fdG9rZW5pemVyLT5zZXRT
dGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3RhdGUpOwotICAgIH0KKyAgICBtX3Rva2Vu
aXplci0+dXBkYXRlU3RhdGUodGFnTmFtZSwgZG9jdW1lbnQoKS0+ZnJhbWUoKSk7CiB9CiAKIHZv
aWQgSFRNTFZpZXdTb3VyY2VQYXJzZXI6OmZpbmlzaCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67446</attachid>
            <date>2010-09-13 11:53:31 -0700</date>
            <delta_ts>2010-09-13 12:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45649-20100913115330.patch</filename>
            <type>text/plain</type>
            <size>8058</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDktMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IGFkanVzdExleGVyU3RhdGUgdG8gdGhlIEhUTUxUb2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjQ5CisKKyAgICAgICAgVGhpcyBmdW5j
dGlvbiB1c2VkIGxldCB1cyBzaGFyZSBjb2RlIGJldHdlZW4gdGhlIHRyZWUgYnVpbGRlciBhbmQg
dGhlCisgICAgICAgIHR3byBvdGhlciB1c2VycyBvZiB0aGUgSFRNTFRva2VuaXplci4gIEhvd2V2
ZXIsIG5vdyB0aGF0IHRoZSB0cmVlCisgICAgICAgIGJ1aWxkZXIgaXMgYWxsIGdyb3duIHVwLCBp
dCBjYW4ndCB1c2UgdGhpcyBjb2RlIGFueW1vcmUuICBUaGUgb3RoZXIKKyAgICAgICAgdXNlcnMg
d291bGQgbXVjaCByYXRoZXIgdGhpcyBjb2RlIGxpdmVkIG9uIEhUTUxUb2tlbml6ZXIgYW5kIHVu
ZGVyc3Rvb2QKKyAgICAgICAgPHNjcmlwdD4uICBUaGlzIHBhdGNoIGF0dGVtcHRzIHRvIG1ha2Ug
dGhlbSBoYXBweS4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbik6
CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVG9rZW5pemVyOjphcHByb3hpbWF0ZVN0YXRlRm9yKToKKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MVG9rZW5pemVyLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6c2NyaXB0RW5h
YmxlZCk6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAg
ICogaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFZpZXdTb3VyY2VQYXJzZXI6OnVwZGF0ZVRva2VuaXplclN0YXRlKToKKwogMjAxMC0w
OS0xMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2Fk
U2Nhbm5lci5jcHAJKHJldmlzaW9uIDY3NDAwKQorKysgV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
UHJlbG9hZFNjYW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKLSNpbmNsdWRlICJIVE1MVHJlZUJ1aWxkZXIuaCIKICNp
bmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAt
MTU3LDEzICsxNTYsNyBAQCB2b2lkIEhUTUxQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rva2VuKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgUHJlbG9hZFRhc2sgdGFzayhtX3Rva2VuKTsKLSAgICBt
X3Rva2VuaXplci0+c2V0U3RhdGUoSFRNTFRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUo
bV90b2tlbml6ZXItPnN0YXRlKCksIHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5mcmFtZSgp
KSk7Ci0gICAgaWYgKHRhc2sudGFnTmFtZSgpID09IHNjcmlwdFRhZykgewotICAgICAgICAvLyBU
aGUgdHJlZSBidWlsZGVyIGhhbmRsZXMgc2NyaXB0VGFnIHNlcGFyYXRlbHkgZnJvbSB0aGUgb3Ro
ZXIgdG9rZW5pemVyCi0gICAgICAgIC8vIHN0YXRlIGFkanVzdG1lbnRzLCBzbyB3ZSBuZWVkIHRv
IGhhbmRsZSBpdCBzZXBhcmF0ZWx5IHRvby4KLSAgICAgICAgQVNTRVJUKG1fdG9rZW5pemVyLT5z
dGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIG1fdG9rZW5pemVy
LT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpTY3JpcHREYXRhU3RhdGUpOwotICAgIH0KKyAgICBt
X3Rva2VuaXplci0+YXBwcm94aW1hdGVTdGF0ZUZvcih0YXNrLnRhZ05hbWUoKSwgbV9kb2N1bWVu
dC0+ZnJhbWUoKSk7CiAKICAgICBpZiAodGFzay50YWdOYW1lKCkgPT0gYm9keVRhZykKICAgICAg
ICAgbV9ib2R5U2VlbiA9IHRydWU7CkluZGV4OiBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tl
bml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXpl
ci5jcHAJKHJldmlzaW9uIDY3NDAwKQorKysgV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5p
emVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSFRN
TEVudGl0eVBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxUb2tlbi5oIgorI2luY2x1ZGUgIkhUTUxU
cmVlQnVpbGRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KQEAgLTE2MzIsNiArMTYzMywy
MyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCit2b2lkIEhUTUxUb2tlbml6ZXI6OmFwcHJveGltYXRlU3RhdGVGb3IoY29u
c3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lLCBGcmFtZSogZnJhbWUpCit7CisgICAgaWYgKHRhZ05h
bWUgPT0gdGV4dGFyZWFUYWcgfHwgdGFnTmFtZSA9PSB0aXRsZVRhZykKKyAgICAgICAgc2V0U3Rh
dGUoUkNEQVRBU3RhdGUpOworICAgIGVsc2UgaWYgKHRhZ05hbWUgPT0gcGxhaW50ZXh0VGFnKQor
ICAgICAgICBzZXRTdGF0ZShQTEFJTlRFWFRTdGF0ZSk7CisgICAgZWxzZSBpZiAodGFnTmFtZSA9
PSBzY3JpcHRUYWcpCisgICAgICAgIHNldFN0YXRlKFNjcmlwdERhdGFTdGF0ZSk7CisgICAgZWxz
ZSBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZworICAgICAgICB8fCB0YWdOYW1lID09IGlmcmFtZVRh
ZworICAgICAgICB8fCB0YWdOYW1lID09IHhtcFRhZworICAgICAgICB8fCAodGFnTmFtZSA9PSBu
b2VtYmVkVGFnICYmIEhUTUxUcmVlQnVpbGRlcjo6cGx1Z2luc0VuYWJsZWQoZnJhbWUpKQorICAg
ICAgICB8fCB0YWdOYW1lID09IG5vZnJhbWVzVGFnCisgICAgICAgIHx8ICh0YWdOYW1lID09IG5v
c2NyaXB0VGFnICYmIEhUTUxUcmVlQnVpbGRlcjo6c2NyaXB0RW5hYmxlZChmcmFtZSkpKQorICAg
ICAgICBzZXRTdGF0ZShSQVdURVhUU3RhdGUpOworfQorCiBpbmxpbmUgYm9vbCBIVE1MVG9rZW5p
emVyOjp0ZW1wb3JhcnlCdWZmZXJJcyhjb25zdCBTdHJpbmcmIGV4cGVjdGVkU3RyaW5nKQogewog
ICAgIHJldHVybiB2ZWN0b3JFcXVhbHNTdHJpbmcobV90ZW1wb3JhcnlCdWZmZXIsIGV4cGVjdGVk
U3RyaW5nKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5oCShyZXZpc2lvbiA2
NzQwMCkKKysrIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiw2ICszNiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEVsZW1l
bnQ7CitjbGFzcyBGcmFtZTsKIGNsYXNzIEhUTUxUb2tlbjsKIAogY2xhc3MgSFRNTFRva2VuaXpl
ciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC0xMzQsNiArMTM1LDEyIEBAIHB1YmxpYzoKICAg
ICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNldFN0
YXRlKFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQogCisgICAgLy8gVXBkYXRlcyB0
aGUgdG9rZW5pemVyJ3Mgc3RhdGUgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiB0YWcgbmFtZS4gIFRo
aXMgaXMKKyAgICAvLyBhbiBhcHByb3htYXRpb24gb2YgaG93IHRoZSB0cmVlIGJ1aWxkZXIgd291
bGQgdXBkYXRlIHRoZSB0b2tlbml6ZXIncworICAgIC8vIHN0YXRlLiAgVGhpcyBtZXRob2QgaXMg
dXNlZnVsIGZvciBhcHByb3hpbWF0aW5nIEhUTUwgdG9rZW5pemF0aW9uLiAgVG8KKyAgICAvLyBn
ZXQgZXhhY3RseSB0aGUgY29ycmVjdCB0b2tlbml6YXRpb24sIHlvdSBuZWVkIHRoZSByZWFsIHRy
ZWUgYnVpbGRlci4KKyAgICB2b2lkIGFwcHJveGltYXRlU3RhdGVGb3IoY29uc3QgQXRvbWljU3Ry
aW5nJiB0YWdOYW1lLCBGcmFtZSopOworCiAgICAgLy8gSGFjayB0byBza2lwIGxlYWRpbmcgbmV3
bGluZSBpbiA8cHJlPi88bGlzdGluZz4gZm9yIGF1dGhvcmluZyBlYXNlLgogICAgIC8vIGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rv
a2VuaXphdGlvbi5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHkKICAgICB2b2lkIHNldFNraXBMZWFk
aW5nTmV3TGluZUZvckxpc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX3NraXBMZWFkaW5nTmV3TGluZUZv
ckxpc3RpbmcgPSB2YWx1ZTsgfQpJbmRleDogV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWls
ZGVyLmNwcAkocmV2aXNpb24gNjc0MDApCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MiwyNSArNDUyLDYgQEAgUGFzc1JlZlB0
cjxFbGVtZW50PiBIVE1MVHJlZUJ1aWxkZXI6OnRhawogICAgIHJldHVybiBtX3NjcmlwdFRvUHJv
Y2Vzcy5yZWxlYXNlKCk7CiB9CiAKLUhUTUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUcmVlQnVpbGRl
cjo6YWRqdXN0ZWRMZXhlclN0YXRlKEhUTUxUb2tlbml6ZXI6OlN0YXRlIHN0YXRlLCBjb25zdCBB
dG9taWNTdHJpbmcmIHRhZ05hbWUsIEZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAodGFnTmFtZSA9
PSB0ZXh0YXJlYVRhZyB8fCB0YWdOYW1lID09IHRpdGxlVGFnKQotICAgICAgICByZXR1cm4gSFRN
TFRva2VuaXplcjo6UkNEQVRBU3RhdGU7Ci0KLSAgICBpZiAodGFnTmFtZSA9PSBzdHlsZVRhZwot
ICAgICAgICB8fCB0YWdOYW1lID09IGlmcmFtZVRhZwotICAgICAgICB8fCB0YWdOYW1lID09IHht
cFRhZwotICAgICAgICB8fCAodGFnTmFtZSA9PSBub2VtYmVkVGFnICYmIHBsdWdpbnNFbmFibGVk
KGZyYW1lKSkKLSAgICAgICAgfHwgdGFnTmFtZSA9PSBub2ZyYW1lc1RhZwotICAgICAgICB8fCAo
dGFnTmFtZSA9PSBub3NjcmlwdFRhZyAmJiBzY3JpcHRFbmFibGVkKGZyYW1lKSkpCi0gICAgICAg
IHJldHVybiBIVE1MVG9rZW5pemVyOjpSQVdURVhUU3RhdGU7Ci0KLSAgICBpZiAodGFnTmFtZSA9
PSBwbGFpbnRleHRUYWcpCi0gICAgICAgIHJldHVybiBIVE1MVG9rZW5pemVyOjpQTEFJTlRFWFRT
dGF0ZTsKLQotICAgIHJldHVybiBzdGF0ZTsKLX0KLQogdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OmNv
bnN0cnVjdFRyZWVGcm9tVG9rZW4oSFRNTFRva2VuJiByYXdUb2tlbikKIHsKICAgICBBdG9taWNI
VE1MVG9rZW4gdG9rZW4ocmF3VG9rZW4pOwpAQCAtMjgwMSw5ICsyNzgyLDcgQEAgYm9vbCBIVE1M
VHJlZUJ1aWxkZXI6OnNjcmlwdEVuYWJsZWQoRnJhbQogewogICAgIGlmICghZnJhbWUpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlciogc2NyaXB0Q29udHJv
bGxlciA9IGZyYW1lLT5zY3JpcHQoKSkKLSAgICAgICAgcmV0dXJuIHNjcmlwdENvbnRyb2xsZXIt
PmNhbkV4ZWN1dGVTY3JpcHRzKE5vdEFib3V0VG9FeGVjdXRlU2NyaXB0KTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90
QWJvdXRUb0V4ZWN1dGVTY3JpcHQpOwogfQogCiBib29sIEhUTUxUcmVlQnVpbGRlcjo6cGx1Z2lu
c0VuYWJsZWQoRnJhbWUqIGZyYW1lKQpJbmRleDogV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCShyZXZpc2lvbiA2NzQwMCkKKysrIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVC
dWlsZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDggKzc2LDYgQEAgcHVibGljOgogICAgIC8v
IERvbmUsIGNsb3NlIGFueSBvcGVuIHRhZ3MsIGV0Yy4KICAgICB2b2lkIGZpbmlzaGVkKCk7CiAK
LSAgICBzdGF0aWMgSFRNTFRva2VuaXplcjo6U3RhdGUgYWRqdXN0ZWRMZXhlclN0YXRlKEhUTUxU
b2tlbml6ZXI6OlN0YXRlLCBjb25zdCBBdG9taWNTdHJpbmcmIHRhZ05hbWUsIEZyYW1lKik7Ci0K
ICAgICBzdGF0aWMgYm9vbCBzY3JpcHRFbmFibGVkKEZyYW1lKik7CiAgICAgc3RhdGljIGJvb2wg
cGx1Z2luc0VuYWJsZWQoRnJhbWUqKTsKIApJbmRleDogV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
Vmlld1NvdXJjZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVmlld1NvdXJjZVBhcnNlci5jcHAJKHJldmlzaW9uIDY3NDAwKQorKysgV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcg
KzI3LDYgQEAKICNpbmNsdWRlICJIVE1MVmlld1NvdXJjZVBhcnNlci5oIgogCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TFZpZXdTb3VyY2VEb2N1bWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04NywxMyAr
ODYsNyBAQCB2b2lkIEhUTUxWaWV3U291cmNlUGFyc2VyOjp1cGRhdGVUb2tlbml6CiAgICAgICAg
IHJldHVybjsKIAogICAgIEF0b21pY1N0cmluZyB0YWdOYW1lKG1fdG9rZW4ubmFtZSgpLmRhdGEo
KSwgbV90b2tlbi5uYW1lKCkuc2l6ZSgpKTsKLSAgICBtX3Rva2VuaXplci0+c2V0U3RhdGUoSFRN
TFRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUobV90b2tlbml6ZXItPnN0YXRlKCksIHRh
Z05hbWUsIGRvY3VtZW50KCktPmZyYW1lKCkpKTsKLSAgICBpZiAodGFnTmFtZSA9PSBIVE1MTmFt
ZXM6OnNjcmlwdFRhZykgewotICAgICAgICAvLyBUaGUgdHJlZSBidWlsZGVyIGhhbmRsZXMgc2Ny
aXB0VGFnIHNlcGFyYXRlbHkgZnJvbSB0aGUgb3RoZXIgdG9rZW5pemVyCi0gICAgICAgIC8vIHN0
YXRlIGFkanVzdG1lbnRzLCBzbyB3ZSBuZWVkIHRvIGhhbmRsZSBpdCBzZXBhcmF0ZWx5IHRvby4K
LSAgICAgICAgQVNTRVJUKG1fdG9rZW5pemVyLT5zdGF0ZSgpID09IEhUTUxUb2tlbml6ZXI6OkRh
dGFTdGF0ZSk7Ci0gICAgICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpT
Y3JpcHREYXRhU3RhdGUpOwotICAgIH0KKyAgICBtX3Rva2VuaXplci0+YXBwcm94aW1hdGVTdGF0
ZUZvcih0YWdOYW1lLCBkb2N1bWVudCgpLT5mcmFtZSgpKTsKIH0KIAogdm9pZCBIVE1MVmlld1Nv
dXJjZVBhcnNlcjo6ZmluaXNoKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67454</attachid>
            <date>2010-09-13 12:29:07 -0700</date>
            <delta_ts>2010-09-14 07:26:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45649-20100913122905.patch</filename>
            <type>text/plain</type>
            <size>12234</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NzQwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDktMTMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBNb3ZlIGFk
anVzdExleGVyU3RhdGUgdG8gdGhlIEhUTUxUb2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjQ5CisKKyAgICAgICAgVGhpcyBmdW5jdGlv
biB1c2VkIGxldCB1cyBzaGFyZSBjb2RlIGJldHdlZW4gdGhlIHRyZWUgYnVpbGRlciBhbmQgdGhl
CisgICAgICAgIHR3byBvdGhlciB1c2VycyBvZiB0aGUgSFRNTFRva2VuaXplci4gIEhvd2V2ZXIs
IG5vdyB0aGF0IHRoZSB0cmVlCisgICAgICAgIGJ1aWxkZXIgaXMgYWxsIGdyb3duIHVwLCBpdCBj
YW4ndCB1c2UgdGhpcyBjb2RlIGFueW1vcmUuICBUaGUgb3RoZXIKKyAgICAgICAgdXNlcnMgd291
bGQgbXVjaCByYXRoZXIgdGhpcyBjb2RlIGxpdmVkIG9uIEhUTUxUb2tlbml6ZXIgYW5kIHVuZGVy
c3Rvb2QKKyAgICAgICAgPHNjcmlwdD4uICBUaGlzIHBhdGNoIGF0dGVtcHRzIHRvIG1ha2UgdGhl
bSBoYXBweS4KKworICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbik6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVG9rZW5pemVyOjp1cGRhdGVTdGF0ZUZvcik6CisgICAgICAgICogaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJlZUJ1aWxkZXI6OnNjcmlwdEVuYWJsZWQpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oOgorICAgICAgICAqIGh0bWwv
cGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxW
aWV3U291cmNlUGFyc2VyOjp1cGRhdGVUb2tlbml6ZXJTdGF0ZSk6CisKIDIwMTAtMDktMTMgIFJ5
b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
dCBUYW11cmEuCkluZGV4OiBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIu
Y3BwCShyZXZpc2lvbiA2NzQwMCkKKysrIFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MVG9rZW5pemVyLmgiCi0jaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCiAjaW5jbHVkZSAi
SFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAKQEAgLTE1NywxMyAr
MTU2LDcgQEAgdm9pZCBIVE1MUHJlbG9hZFNjYW5uZXI6OnByb2Nlc3NUb2tlbigpCiAgICAgICAg
IHJldHVybjsKIAogICAgIFByZWxvYWRUYXNrIHRhc2sobV90b2tlbik7Ci0gICAgbV90b2tlbml6
ZXItPnNldFN0YXRlKEhUTUxUcmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRlKG1fdG9rZW5p
emVyLT5zdGF0ZSgpLCB0YXNrLnRhZ05hbWUoKSwgbV9kb2N1bWVudC0+ZnJhbWUoKSkpOwotICAg
IGlmICh0YXNrLnRhZ05hbWUoKSA9PSBzY3JpcHRUYWcpIHsKLSAgICAgICAgLy8gVGhlIHRyZWUg
YnVpbGRlciBoYW5kbGVzIHNjcmlwdFRhZyBzZXBhcmF0ZWx5IGZyb20gdGhlIG90aGVyIHRva2Vu
aXplcgotICAgICAgICAvLyBzdGF0ZSBhZGp1c3RtZW50cywgc28gd2UgbmVlZCB0byBoYW5kbGUg
aXQgc2VwYXJhdGVseSB0b28uCi0gICAgICAgIEFTU0VSVChtX3Rva2VuaXplci0+c3RhdGUoKSA9
PSBIVE1MVG9rZW5pemVyOjpEYXRhU3RhdGUpOwotICAgICAgICBtX3Rva2VuaXplci0+c2V0U3Rh
dGUoSFRNTFRva2VuaXplcjo6U2NyaXB0RGF0YVN0YXRlKTsKLSAgICB9CisgICAgbV90b2tlbml6
ZXItPnVwZGF0ZVN0YXRlRm9yKHRhc2sudGFnTmFtZSgpLCBtX2RvY3VtZW50LT5mcmFtZSgpKTsK
IAogICAgIGlmICh0YXNrLnRhZ05hbWUoKSA9PSBib2R5VGFnKQogICAgICAgICBtX2JvZHlTZWVu
ID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRva2VuaXplci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNp
b24gNjc0MDApCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIVE1MRW50aXR5UGFyc2Vy
LmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgpAQCAtMTcxLDcgKzE3Miw3IEBAIGlubGluZSBib29s
IEhUTUxUb2tlbml6ZXI6OnByb2Nlc3NFbnRpdHkKIAogLy8gU29tZXRpbWVzIHRoZXJlJ3MgbW9y
ZSBjb21wbGljYXRlZCBsb2dpYyBpbiB0aGUgc3BlYyB0aGF0IHNlcGFyYXRlcyB3aGVuCiAvLyB3
ZSBjb25zdW1lIHRoZSBuZXh0IGlucHV0IGNoYXJhY3RlciBhbmQgd2hlbiB3ZSBzd2l0Y2ggdG8g
YSBwYXJ0aWN1bGFyCi0vLyBzdGF0ZS4gIFdlIGhhbmRsZSB0aG9zZSBjYXNlcyBieSBhZHZhbmNp
bmcgdGhlIHNvdXJjZSBkaXJlY3RseSBhbmQgdXNpbmcKKy8vIHN0YXRlLiBXZSBoYW5kbGUgdGhv
c2UgY2FzZXMgYnkgYWR2YW5jaW5nIHRoZSBzb3VyY2UgZGlyZWN0bHkgYW5kIHVzaW5nCiAvLyB0
aGlzIG1hY3JvIHRvIHN3aXRjaCB0byB0aGUgaW5kaWNhdGVkIHN0YXRlLgogI2RlZmluZSBTV0lU
Q0hfVE8oc3RhdGVOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXAogICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMjc3LDcgKzI3OCw3IEBAIGJvb2wgSFRN
TFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFMKIAogICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL3Rva2VuaXphdGlv
bi5odG1sI3BhcnNpbmctbWFpbi1pbmJvZHkKICAgICAvLyBOb3RlIHRoYXQgdGhpcyBsb2dpYyBp
cyBkaWZmZXJlbnQgdGhhbiB0aGUgZ2VuZXJpYyBcclxuIGNvbGxhcHNpbmcKLSAgICAvLyBoYW5k
bGVkIGluIHRoZSBpbnB1dCBzdHJlYW0gcHJlcHJvY2Vzc29yLiAgVGhpcyBsb2dpYyBpcyBoZXJl
IGFzIGFuCisgICAgLy8gaGFuZGxlZCBpbiB0aGUgaW5wdXQgc3RyZWFtIHByZXByb2Nlc3Nvci4g
VGhpcyBsb2dpYyBpcyBoZXJlIGFzIGFuCiAgICAgLy8gImF1dGhvcmluZyBjb252ZW5pZW5jZSIg
c28gZm9sa3MgY2FuIHdyaXRlOgogICAgIC8vCiAgICAgLy8gPHByZT4KQEAgLTEwNTQsNyArMTA1
NSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFMKICAgICAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZVZhbHVlKCppdGVyKTsKICAgICAgICAg
fQogICAgICAgICAvLyBXZSdyZSBzdXBwb3NlZCB0byBzd2l0Y2ggYmFjayB0byB0aGUgYXR0cmli
dXRlIHZhbHVlIHN0YXRlIHRoYXQKLSAgICAgICAgLy8gd2Ugd2VyZSBpbiB3aGVuIHdlIHdlcmUg
c3dpdGNoZWQgaW50byB0aGlzIHN0YXRlLiAgUmF0aGVyIHRoYW4KKyAgICAgICAgLy8gd2Ugd2Vy
ZSBpbiB3aGVuIHdlIHdlcmUgc3dpdGNoZWQgaW50byB0aGlzIHN0YXRlLiBSYXRoZXIgdGhhbgog
ICAgICAgICAvLyBrZWVwaW5nIHRyYWNrIG9mIHRoaXMgZXhwbGljdGx5LCB3ZSBvYnNlcnZlIHRo
YXQgdGhlIHByZXZpb3VzCiAgICAgICAgIC8vIHN0YXRlIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IG1f
YWRkaXRpb25hbEFsbG93ZWRDaGFyYWN0ZXIuCiAgICAgICAgIGlmIChtX2FkZGl0aW9uYWxBbGxv
d2VkQ2hhcmFjdGVyID09ICciJykKQEAgLTE2MzIsNiArMTYzMywyMyBAQCBib29sIEhUTUxUb2tl
bml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lk
IEhUTUxUb2tlbml6ZXI6OnVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSwgRnJhbWUqIGZyYW1lKQoreworICAgIGlmICh0YWdOYW1lID09IHRleHRhcmVhVGFnIHx8IHRh
Z05hbWUgPT0gdGl0bGVUYWcpCisgICAgICAgIHNldFN0YXRlKFJDREFUQVN0YXRlKTsKKyAgICBl
bHNlIGlmICh0YWdOYW1lID09IHBsYWludGV4dFRhZykKKyAgICAgICAgc2V0U3RhdGUoUExBSU5U
RVhUU3RhdGUpOworICAgIGVsc2UgaWYgKHRhZ05hbWUgPT0gc2NyaXB0VGFnKQorICAgICAgICBz
ZXRTdGF0ZShTY3JpcHREYXRhU3RhdGUpOworICAgIGVsc2UgaWYgKHRhZ05hbWUgPT0gc3R5bGVU
YWcKKyAgICAgICAgfHwgdGFnTmFtZSA9PSBpZnJhbWVUYWcKKyAgICAgICAgfHwgdGFnTmFtZSA9
PSB4bXBUYWcKKyAgICAgICAgfHwgKHRhZ05hbWUgPT0gbm9lbWJlZFRhZyAmJiBIVE1MVHJlZUJ1
aWxkZXI6OnBsdWdpbnNFbmFibGVkKGZyYW1lKSkKKyAgICAgICAgfHwgdGFnTmFtZSA9PSBub2Zy
YW1lc1RhZworICAgICAgICB8fCAodGFnTmFtZSA9PSBub3NjcmlwdFRhZyAmJiBIVE1MVHJlZUJ1
aWxkZXI6OnNjcmlwdEVuYWJsZWQoZnJhbWUpKSkKKyAgICAgICAgc2V0U3RhdGUoUkFXVEVYVFN0
YXRlKTsKK30KKwogaW5saW5lIGJvb2wgSFRNTFRva2VuaXplcjo6dGVtcG9yYXJ5QnVmZmVySXMo
Y29uc3QgU3RyaW5nJiBleHBlY3RlZFN0cmluZykKIHsKICAgICByZXR1cm4gdmVjdG9yRXF1YWxz
U3RyaW5nKG1fdGVtcG9yYXJ5QnVmZmVyLCBleHBlY3RlZFN0cmluZyk7CkluZGV4OiBXZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuaAkocmV2aXNpb24gNjc0MDApCisrKyBXZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxUb2tlbml6ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFbGVtZW50OworY2xhc3MgRnJhbWU7CiBjbGFz
cyBIVE1MVG9rZW47CiAKIGNsYXNzIEhUTUxUb2tlbml6ZXIgOiBwdWJsaWMgTm9uY29weWFibGUg
ewpAQCAtMTIzLDcgKzEyNCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXQoKTsKIAotICAg
IC8vIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmIGl0IGVtaXRzIGEgdG9rZW4uICBPdGhl
cndpc2UsIGNhbGxlcnMKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSBpZiBpdCBl
bWl0cyBhIHRva2VuLiBPdGhlcndpc2UsIGNhbGxlcnMKICAgICAvLyBtdXN0IHByb3ZpZGUgdGhl
IHNhbWUgKGluIHByb2dyZXNzKSB0b2tlbiBvbiB0aGUgbmV4dCBjYWxsICh1bmxlc3MKICAgICAv
LyB0aGV5IGNhbGwgcmVzZXQoKSBmaXJzdCkuCiAgICAgYm9vbCBuZXh0VG9rZW4oU2VnbWVudGVk
U3RyaW5nJiwgSFRNTFRva2VuJik7CkBAIC0xMzQsNiArMTM1LDIyIEBAIHB1YmxpYzoKICAgICBT
dGF0ZSBzdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGU7IH0KICAgICB2b2lkIHNldFN0YXRl
KFN0YXRlIHN0YXRlKSB7IG1fc3RhdGUgPSBzdGF0ZTsgfQogCisgICAgLy8gVXBkYXRlcyB0aGUg
dG9rZW5pemVyJ3Mgc3RhdGUgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiB0YWcgbmFtZS4gVGhpcyBp
cworICAgIC8vIGFuIGFwcHJveGltYXRpb24gb2YgaG93IHRoZSB0cmVlIGJ1aWxkZXIgd291bGQg
dXBkYXRlIHRoZSB0b2tlbml6ZXIncworICAgIC8vIHN0YXRlLiBUaGlzIG1ldGhvZCBpcyB1c2Vm
dWwgZm9yIGFwcHJveGltYXRpbmcgSFRNTCB0b2tlbml6YXRpb24uIFRvCisgICAgLy8gZ2V0IGV4
YWN0bHkgdGhlIGNvcnJlY3QgdG9rZW5pemF0aW9uLCB5b3UgbmVlZCB0aGUgcmVhbCB0cmVlIGJ1
aWxkZXIuCisgICAgLy8KKyAgICAvLyBUaGUgbWFpbiBmYWlsdXJlcyBpbiB0aGUgYXBwcm94aW1h
dGlvbiBhcmUgYXMgZm9sbG93czoKKyAgICAvLworICAgIC8vICAqIFRoZSBmaXJzdCBzZXQgb2Yg
Y2hhcmFjdGVyIHRva2VucyBlbWl0dGVkIGZvciBhIDxwcmU+IGVsZW1lbnQgbWlnaHQKKyAgICAv
LyAgICBjb250YWluIGFuIGV4dHJhIGxlYWRpbmcgbmV3bGluZS4KKyAgICAvLyAgKiBUaGUgcmVw
bGFjZW1lbnQgb2YgVSswMDAwIHdpdGggVStGRkZEIHdpbGwgbm90IGJlIHNlbnNpdGl2ZSB0byB0
aGUKKyAgICAvLyAgICB0cmVlIGJ1aWxkZXIncyBpbnNlcnRpb24gbW9kZS4KKyAgICAvLyAgKiBD
REFUQSBzZWN0aW9ucyBpbiBmb3JlaWduIGNvbnRlbnQgd2lsbCBiZSB0b2tlbml6ZWQgYXMgYm9n
dXMgY29tbWVudHMKKyAgICAvLyAgICBpbnN0ZWFkIG9mIGFzIGNoYXJhY3RlciB0b2tlbnMuCisg
ICAgLy8KKyAgICB2b2lkIHVwZGF0ZVN0YXRlRm9yKGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFt
ZSwgRnJhbWUqKTsKKwogICAgIC8vIEhhY2sgdG8gc2tpcCBsZWFkaW5nIG5ld2xpbmUgaW4gPHBy
ZT4vPGxpc3Rpbmc+IGZvciBhdXRob3JpbmcgZWFzZS4KICAgICAvLyBodHRwOi8vd3d3LndoYXR3
Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS90b2tlbml6YXRpb24u
aHRtbCNwYXJzaW5nLW1haW4taW5ib2R5CiAgICAgdm9pZCBzZXRTa2lwTGVhZGluZ05ld0xpbmVG
b3JMaXN0aW5nKGJvb2wgdmFsdWUpIHsgbV9za2lwTGVhZGluZ05ld0xpbmVGb3JMaXN0aW5nID0g
dmFsdWU7IH0KQEAgLTE3Niw4ICsxOTMsOCBAQCBwcml2YXRlOgogCiAgICAgICAgICAgICAvLyBF
dmVyeSBicmFuY2ggaW4gdGhpcyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhhdmUgYQog
ICAgICAgICAgICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRoYXQgZG9u
J3QgcmVxdWlyZSBzcGVjaWFsCi0gICAgICAgICAgICAvLyBoYW5kbGluZy4gIFBsZWFzZSBydW4g
dGhlIHBhcnNlciBiZW5jaG1hcmsgd2hlbmV2ZXIgeW91IHRvdWNoCi0gICAgICAgICAgICAvLyB0
aGlzIGZ1bmN0aW9uLiAgSXQncyB2ZXJ5IGhvdC4KKyAgICAgICAgICAgIC8vIGhhbmRsaW5nLiBQ
bGVhc2UgcnVuIHRoZSBwYXJzZXIgYmVuY2htYXJrIHdoZW5ldmVyIHlvdSB0b3VjaAorICAgICAg
ICAgICAgLy8gdGhpcyBmdW5jdGlvbi4gSXQncyB2ZXJ5IGhvdC4KICAgICAgICAgICAgIHN0YXRp
YyBjb25zdCBVQ2hhciBzcGVjaWFsQ2hhcmFjdGVyTWFzayA9ICdcbicgfCAnXHInIHwgJ1wwJzsK
ICAgICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciAmIH5zcGVjaWFsQ2hhcmFjdGVy
TWFzaykgewogICAgICAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CkBAIC0y
NTYsNyArMjczLDcgQEAgcHJpdmF0ZToKICAgICBpbmxpbmUgYm9vbCB0ZW1wb3JhcnlCdWZmZXJJ
cyhjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIFNvbWV0aW1lcyB3ZSBzcGVjdWxhdGl2ZWx5IGNv
bnN1bWUgaW5wdXQgY2hhcmFjdGVycyBhbmQgd2UgZG9uJ3QKLSAgICAvLyBrbm93IHdoZXRoZXIg
dGhleSByZXByZXNlbnQgZW5kIHRhZ3Mgb3IgUkNEQVRBLCBldGMuICBUaGVzZQorICAgIC8vIGtu
b3cgd2hldGhlciB0aGV5IHJlcHJlc2VudCBlbmQgdGFncyBvciBSQ0RBVEEsIGV0Yy4gVGhlc2UK
ICAgICAvLyBmdW5jdGlvbnMgaGVscCBtYW5hZ2UgdGhlc2Ugc3RhdGUuCiAgICAgaW5saW5lIHZv
aWQgYWRkVG9Qb3NzaWJsZUVuZFRhZyhVQ2hhciBjYyk7CiAgICAgaW5saW5lIHZvaWQgc2F2ZUVu
ZFRhZ05hbWVJZk5lZWRlZCgpOwpAQCAtMjY4LDcgKzI4NSw3IEBAIHByaXZhdGU6CiAKICAgICBW
ZWN0b3I8VUNoYXIsIDMyPiBtX2FwcHJvcHJpYXRlRW5kVGFnTmFtZTsKIAotICAgIC8vIG1fdG9r
ZW4gaXMgb3duZWQgYnkgdGhlIGNhbGxlci4gIElmIG5leHRUb2tlbiBpcyBub3Qgb24gdGhlIHN0
YWNrLAorICAgIC8vIG1fdG9rZW4gaXMgb3duZWQgYnkgdGhlIGNhbGxlci4gSWYgbmV4dFRva2Vu
IGlzIG5vdCBvbiB0aGUgc3RhY2ssCiAgICAgLy8gdGhpcyBtZW1iZXIgbWlnaHQgYmUgcG9pbnRp
bmcgdG8gdW5hbGxvY2F0ZWQgbWVtb3J5LgogICAgIEhUTUxUb2tlbiogbV90b2tlbjsKICAgICBp
bnQgbV9saW5lTnVtYmVyOwpAQCAtMjgxLDcgKzI5OCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PFVDaGFyLCAzMj4gbV90ZW1wb3JhcnlCdWZmZXI7CiAKICAgICAvLyBXZSBvY2NhdGlvbmFsbHkg
d2FudCB0byBlbWl0IGJvdGggYSBjaGFyYWN0ZXIgdG9rZW4gYW5kIGFuIGVuZCB0YWcKLSAgICAv
LyB0b2tlbiAoZS5nLiwgd2hlbiBsZXhpbmcgc2NyaXB0KS4gIFdlIGJ1ZmZlciB0aGUgbmFtZSBv
ZiB0aGUgZW5kIHRhZworICAgIC8vIHRva2VuIChlLmcuLCB3aGVuIGxleGluZyBzY3JpcHQpLiBX
ZSBidWZmZXIgdGhlIG5hbWUgb2YgdGhlIGVuZCB0YWcKICAgICAvLyB0b2tlbiBoZXJlIHNvIHdl
IHJlbWVtYmVyIGl0IG5leHQgdGltZSB3ZSByZS1lbnRlciB0aGUgdG9rZW5pemVyLgogICAgIFZl
Y3RvcjxVQ2hhciwgMzI+IG1fYnVmZmVyZWRFbmRUYWdOYW1lOwogCkluZGV4OiBXZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCShyZXZpc2lvbiA2NzQwMCkKKysrIFdlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUyLDI1
ICs0NTIsNiBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IEhUTUxUcmVlQnVpbGRlcjo6dGFrCiAgICAg
cmV0dXJuIG1fc2NyaXB0VG9Qcm9jZXNzLnJlbGVhc2UoKTsKIH0KIAotSFRNTFRva2VuaXplcjo6
U3RhdGUgSFRNTFRyZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUoSFRNTFRva2VuaXplcjo6
U3RhdGUgc3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYgdGFnTmFtZSwgRnJhbWUqIGZyYW1lKQot
ewotICAgIGlmICh0YWdOYW1lID09IHRleHRhcmVhVGFnIHx8IHRhZ05hbWUgPT0gdGl0bGVUYWcp
Ci0gICAgICAgIHJldHVybiBIVE1MVG9rZW5pemVyOjpSQ0RBVEFTdGF0ZTsKLQotICAgIGlmICh0
YWdOYW1lID09IHN0eWxlVGFnCi0gICAgICAgIHx8IHRhZ05hbWUgPT0gaWZyYW1lVGFnCi0gICAg
ICAgIHx8IHRhZ05hbWUgPT0geG1wVGFnCi0gICAgICAgIHx8ICh0YWdOYW1lID09IG5vZW1iZWRU
YWcgJiYgcGx1Z2luc0VuYWJsZWQoZnJhbWUpKQotICAgICAgICB8fCB0YWdOYW1lID09IG5vZnJh
bWVzVGFnCi0gICAgICAgIHx8ICh0YWdOYW1lID09IG5vc2NyaXB0VGFnICYmIHNjcmlwdEVuYWJs
ZWQoZnJhbWUpKSkKLSAgICAgICAgcmV0dXJuIEhUTUxUb2tlbml6ZXI6OlJBV1RFWFRTdGF0ZTsK
LQotICAgIGlmICh0YWdOYW1lID09IHBsYWludGV4dFRhZykKLSAgICAgICAgcmV0dXJuIEhUTUxU
b2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlOwotCi0gICAgcmV0dXJuIHN0YXRlOwotfQotCiB2b2lk
IEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rv
a2VuKQogewogICAgIEF0b21pY0hUTUxUb2tlbiB0b2tlbihyYXdUb2tlbik7CkBAIC0yODAxLDkg
KzI3ODIsNyBAQCBib29sIEhUTUxUcmVlQnVpbGRlcjo6c2NyaXB0RW5hYmxlZChGcmFtCiB7CiAg
ICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChTY3JpcHRDb250
cm9sbGVyKiBzY3JpcHRDb250cm9sbGVyID0gZnJhbWUtPnNjcmlwdCgpKQotICAgICAgICByZXR1
cm4gc2NyaXB0Q29udHJvbGxlci0+Y2FuRXhlY3V0ZVNjcmlwdHMoTm90QWJvdXRUb0V4ZWN1dGVT
Y3JpcHQpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLT5j
YW5FeGVjdXRlU2NyaXB0cyhOb3RBYm91dFRvRXhlY3V0ZVNjcmlwdCk7CiB9CiAKIGJvb2wgSFRN
TFRyZWVCdWlsZGVyOjpwbHVnaW5zRW5hYmxlZChGcmFtZSogZnJhbWUpCkluZGV4OiBXZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgJKHJldmlzaW9uIDY3NDAwKQorKysgV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsOCArNzYs
NiBAQCBwdWJsaWM6CiAgICAgLy8gRG9uZSwgY2xvc2UgYW55IG9wZW4gdGFncywgZXRjLgogICAg
IHZvaWQgZmluaXNoZWQoKTsKIAotICAgIHN0YXRpYyBIVE1MVG9rZW5pemVyOjpTdGF0ZSBhZGp1
c3RlZExleGVyU3RhdGUoSFRNTFRva2VuaXplcjo6U3RhdGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dGFnTmFtZSwgRnJhbWUqKTsKLQogICAgIHN0YXRpYyBib29sIHNjcmlwdEVuYWJsZWQoRnJhbWUq
KTsKICAgICBzdGF0aWMgYm9vbCBwbHVnaW5zRW5hYmxlZChGcmFtZSopOwogCkluZGV4OiBXZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcAkocmV2aXNpb24gNjc0
MDApCisrKyBXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIkhUTUxWaWV3U291cmNlUGFy
c2VyLmgiCiAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MVHJlZUJ1aWxk
ZXIuaCIKICNpbmNsdWRlICJIVE1MVmlld1NvdXJjZURvY3VtZW50LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTg3LDEzICs4Niw3IEBAIHZvaWQgSFRNTFZpZXdTb3VyY2VQYXJzZXI6OnVw
ZGF0ZVRva2VuaXoKICAgICAgICAgcmV0dXJuOwogCiAgICAgQXRvbWljU3RyaW5nIHRhZ05hbWUo
bV90b2tlbi5uYW1lKCkuZGF0YSgpLCBtX3Rva2VuLm5hbWUoKS5zaXplKCkpOwotICAgIG1fdG9r
ZW5pemVyLT5zZXRTdGF0ZShIVE1MVHJlZUJ1aWxkZXI6OmFkanVzdGVkTGV4ZXJTdGF0ZShtX3Rv
a2VuaXplci0+c3RhdGUoKSwgdGFnTmFtZSwgZG9jdW1lbnQoKS0+ZnJhbWUoKSkpOwotICAgIGlm
ICh0YWdOYW1lID09IEhUTUxOYW1lczo6c2NyaXB0VGFnKSB7Ci0gICAgICAgIC8vIFRoZSB0cmVl
IGJ1aWxkZXIgaGFuZGxlcyBzY3JpcHRUYWcgc2VwYXJhdGVseSBmcm9tIHRoZSBvdGhlciB0b2tl
bml6ZXIKLSAgICAgICAgLy8gc3RhdGUgYWRqdXN0bWVudHMsIHNvIHdlIG5lZWQgdG8gaGFuZGxl
IGl0IHNlcGFyYXRlbHkgdG9vLgotICAgICAgICBBU1NFUlQobV90b2tlbml6ZXItPnN0YXRlKCkg
PT0gSFRNTFRva2VuaXplcjo6RGF0YVN0YXRlKTsKLSAgICAgICAgbV90b2tlbml6ZXItPnNldFN0
YXRlKEhUTUxUb2tlbml6ZXI6OlNjcmlwdERhdGFTdGF0ZSk7Ci0gICAgfQorICAgIG1fdG9rZW5p
emVyLT51cGRhdGVTdGF0ZUZvcih0YWdOYW1lLCBkb2N1bWVudCgpLT5mcmFtZSgpKTsKIH0KIAog
dm9pZCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6ZmluaXNoKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>