<?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>108984</bug_id>
          
          <creation_ts>2013-02-05 14:52:35 -0800</creation_ts>
          <short_desc>Load event fires too early with threaded HTML parser</short_desc>
          <delta_ts>2013-02-11 11:24:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>109465</dependson>
          <blocked>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825842</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-05 14:52:35 -0800</bug_when>
    <thetext>Load event fires too early with threaded HTML parser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825843</commentid>
    <comment_count>1</comment_count>
      <attachid>186712</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-05 14:53:06 -0800</bug_when>
    <thetext>Created attachment 186712
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825849</commentid>
    <comment_count>2</comment_count>
      <attachid>186712</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-05 15:00:58 -0800</bug_when>
    <thetext>Comment on attachment 186712
work in progress

I&apos;m not sure if it makes sense for the parser to extend the document&apos;s lifetime or not.  Another approch is to put this off onto its own separate ref-counted object.

But it seems reasonable to me.  We could just make processingData() not be public, and instead have a new Document::parsingInProgress() or something which checks both of these on Document.  I think that woudl be better abstraction than DocumetnLoader knowing about DocumetnParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825886</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-05 15:40:12 -0800</bug_when>
    <thetext>&gt; I&apos;m not sure if it makes sense for the parser to extend the document&apos;s lifetime or not.  Another approch is to put this off onto its own separate ref-counted object.

I see.  The document loader would find the object from the document in isLoadingInAPISense.  Yeah, that seems better than refing the document.

By the way, this patch doesn&apos;t work yet.  It seems to delay the load event forever in this test case:

&lt;script&gt;
if (window.testRunner) {
    testRunner.dumpAsText();
}
window.onload = function() { alert(42); };
&lt;/script&gt;
&lt;iframe onload=&quot;alert(0);document.write(&apos;&lt;p&gt;PASS&lt;/p&gt;&apos;);alert(2);document.close();alert(3);&quot;&gt;&lt;/iframe&gt;
FAIL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827858</commentid>
    <comment_count>4</comment_count>
      <attachid>187167</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-07 13:31:06 -0800</bug_when>
    <thetext>Created attachment 187167
passes foo.html test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827861</commentid>
    <comment_count>5</comment_count>
      <attachid>187167</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-07 13:35:47 -0800</bug_when>
    <thetext>Comment on attachment 187167
passes foo.html test case

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

&gt; Source/WebCore/dom/Document.cpp:5781
&gt; +    if (!frame()-&gt;loader()-&gt;stateMachine()-&gt;creatingInitialEmptyDocument())

WAT?

&gt; Source/WebCore/html/parser/HTMLParserScheduler.cpp:65
&gt; +    : document(doc)

m_document?  I&apos;m sure this is private.

It&apos;s not clear to me if PumpSession should really hold a Document*.

&gt; Source/WebCore/loader/DocumentLoader.cpp:485
&gt; +        if (doc-&gt;parserSessionNestingLevel() &gt; 0)
&gt; +            return true;
&gt;          if (DocumentParser* parser = doc-&gt;parser())
&gt;              if (parser-&gt;processingData())
&gt;                  return true;

I would combine these all into one if, moving the processingData() function onto Document. Not surew ht the name is.  isParsing()?  parserIsActive?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827892</commentid>
    <comment_count>6</comment_count>
      <attachid>187176</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-07 14:23:01 -0800</bug_when>
    <thetext>Created attachment 187176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827894</commentid>
    <comment_count>7</comment_count>
      <attachid>187176</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-07 14:27:25 -0800</bug_when>
    <thetext>Comment on attachment 187176
Patch

This looks fantastic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828006</commentid>
    <comment_count>8</comment_count>
      <attachid>187176</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 16:38:41 -0800</bug_when>
    <thetext>Comment on attachment 187176
Patch

Rejecting attachment 187176 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 187176, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
at 305.
Hunk #2 succeeded at 365 (offset 9 lines).
1 out of 2 hunks FAILED -- saving rejects to file Source/WebCore/html/parser/HTMLDocumentParser.cpp.rej
patching file Source/WebCore/html/parser/HTMLParserScheduler.cpp
patching file Source/WebCore/html/parser/HTMLParserScheduler.h
patching file Source/WebCore/loader/DocumentLoader.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Eric Seidel&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16429390</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828012</commentid>
    <comment_count>9</comment_count>
      <attachid>187198</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-07 16:44:25 -0800</bug_when>
    <thetext>Created attachment 187198
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828109</commentid>
    <comment_count>10</comment_count>
      <attachid>187198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-07 19:28:46 -0800</bug_when>
    <thetext>Comment on attachment 187198
Patch for landing

Rejecting attachment 187198 from commit-queue.

New failing tests:
perf/nested-combined-selectors.html
perf/accessibility-title-ui-element.html
perf/document-contains.html
fast/parser/empty-text-resource.html
Full output: http://queues.webkit.org/results/16426462</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828970</commentid>
    <comment_count>11</comment_count>
      <attachid>187418</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-08 22:55:35 -0800</bug_when>
    <thetext>Created attachment 187418
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829094</commentid>
    <comment_count>12</comment_count>
      <attachid>187418</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 11:35:46 -0800</bug_when>
    <thetext>Comment on attachment 187418
Patch for landing

Clearing flags on attachment: 187418

Committed r142378: &lt;http://trac.webkit.org/changeset/142378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829095</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-09 11:35:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829146</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-02-09 18:12:26 -0800</bug_when>
    <thetext>This broke the Apple Windows build:
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/62203

7&gt;WebCore.lib(DocumentLoader.obj) : error LNK2001: unresolved external symbol &quot;public: bool __thiscall WebCore::Document::hasActiveParser(void)&quot; (?hasActiveParser@Document@WebCore@@QAE_NXZ)
7&gt;WebCore.lib(HTMLParserScheduler.obj) : error LNK2001: unresolved external symbol &quot;public: void __thiscall WebCore::Document::decrementActiveParserCount(void)&quot; (?decrementActiveParserCount@Document@WebCore@@QAEXXZ)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829149</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-09 18:32:33 -0800</bug_when>
    <thetext>ah. Export files. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829182</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-09 21:02:48 -0800</bug_when>
    <thetext>Sorry for breaking the build.  We probably just need to add ?decrementActiveParserCount@Document@WebCore@@QAEXXZ to the export file.  Unfortunately, I don&apos;t have a working copy right now.  Please feel free to roll out my patch if that&apos;s easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829206</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-09 22:29:28 -0800</bug_when>
    <thetext>It looks like it&apos;s only Apple Win Debug (Build).  Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829207</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-09 22:34:57 -0800</bug_when>
    <thetext>I think it&apos;s a problem with the builder.  If you look at &lt;http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/62203/steps/compile-webkit/logs/stdio&gt;, which is the first cycle with my patch, you&apos;ll see that it didn&apos;t recompile Document.cpp for whatever reason.  Those functions are defined in Document.cpp and not used outside WebCore.  They shouldn&apos;t need to be exported.  (Note that the release build also works fine.)

We should try a clobber build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829293</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-10 07:49:16 -0800</bug_when>
    <thetext>The bot is now healed after another patch touched Platform.h:

http://build.webkit.org/waterfall?show=Apple%20Win%20Debug%20(Build)

I suspect there&apos;s some sort of bad dependency in the Windows build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829377</commentid>
    <comment_count>20</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-10 17:32:18 -0800</bug_when>
    <thetext>It looks like the patch broke fast/frames/seamless/seamless-inherited-origin.html

For now, I marked the test as FAIL. Please take a look:
https://bugs.webkit.org/show_bug.cgi?id=109391</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186712</attachid>
            <date>2013-02-05 14:53:06 -0800</date>
            <delta_ts>2013-02-07 13:31:03 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-108984-20130205144943.patch</filename>
            <type>text/plain</type>
            <size>10232</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgwYzQ5YTIzMmI0MGRm
YjQ5MGNkZjRmMWE2ZDY5NGZlNTlkMGEzZS4uY2Q5YTNhNDZjNDI0YmNhNWYxYTZlMzU3YWYwZTUw
YmU2ZjM3NGE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAyLTA1ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0
b28gZWFybHkgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3Vt
ZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpwYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjppbmNyZW1lbnRQYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpkZWNyZW1lbnRQYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKToKKyAgICAg
ICAgKERvY3VtZW50KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQ
YXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjp+SFRNTERvY3Vt
ZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6aW5QdW1w
U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1
bWVudFBhcnNlcjo6cHJvY2Vzc1BhcnNlZENodW5rRnJvbUJhY2tncm91bmRQYXJzZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KToKKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaDoKKyAgICAgICAgKEhUTUxEb2N1bWVudFBhcnNl
cik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24pOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQdW1wU2Vzc2lvbjo6flB1bXBTZXNzaW9uKToKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFB1bXBTZXNzaW9uKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ0luQVBJ
U2Vuc2UpOgorCiAyMDEzLTAyLTA1ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0
ZUBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBSRUdSRVNTSU9OKHIxMzc0MzYpOiBJdCBtYWRl
IGFsbCBpbnNwZWN0b3IgdGVzdHMgdGltZW91dCBvbiBkZXZlbG9wZXIgYnVpbGRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAppbmRleCA2MjE0NzU2YmMxNDM4OTMxNjk5NjRkZWFjZmY3MmNhZmE3MjAz
NmIyLi42YWUyN2ZmNDJjZjZmMTlmNjFjNmViYmM0MjkzZjcyMjEyMmM4OWYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKQEAgLTQxMSw2ICs0MTEsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRp
bWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQpCiAg
ICAgLCBtX2xhc3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZSgwKQorICAgICwgbV9wYXJzZXJTZXNz
aW9uTmVzdGluZ0xldmVsKDApCiAgICAgLCBtX2NvbnRleHRGZWF0dXJlcyhDb250ZXh0RmVhdHVy
ZXM6OmRlZmF1bHRTd2l0Y2goKSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGUoTm9RdWlya3NN
b2RlKQogICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZUxvY2tlZChmYWxzZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggN2JkOWYxOTBjNDc1YTU3MzJlMzMyMzUzMWU3ZWI1NzQ0MTYyYjE2Yy4uODdi
Nzg1OWM1MjdiNTc3NTE0ODdmNThjMGMyNGIyOTNhYzAyZWI4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTExNjgsNiArMTE2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGp1c3RGbG9hdFF1
YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShWZWN0b3I8RmxvYXRRdWFk
PiYsIFJlbmRlck9iamVjdCopOwogICAgIHZvaWQgYWRqdXN0RmxvYXRSZWN0Rm9yU2Nyb2xsQW5k
QWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShGbG9hdFJlY3QmLCBSZW5kZXJPYmplY3QqKTsKIAor
ICAgIHVuc2lnbmVkIHBhcnNlclNlc3Npb25OZXN0aW5nTGV2ZWwoKSBjb25zdCB7IHJldHVybiBt
X3BhcnNlclNlc3Npb25OZXN0aW5nTGV2ZWw7IH0KKyAgICB2b2lkIGluY3JlbWVudFBhcnNlclNl
c3Npb25OZXN0aW5nTGV2ZWwoKSB7ICsrbV9wYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsOyB9Cisg
ICAgdm9pZCBkZWNyZW1lbnRQYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKCkgeyAtLW1fcGFyc2Vy
U2Vzc2lvbk5lc3RpbmdMZXZlbDsgfQorCiAgICAgdm9pZCBzZXRDb250ZXh0RmVhdHVyZXMoUGFz
c1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+KTsKICAgICBDb250ZXh0RmVhdHVyZXMqIGNvbnRleHRG
ZWF0dXJlcygpIHsgcmV0dXJuIG1fY29udGV4dEZlYXR1cmVzLmdldCgpOyB9CiAKQEAgLTEzMDcs
NiArMTMxMSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8Q2FjaGVkUmVzb3VyY2VMb2FkZXI+
IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXI7CiAgICAgUmVmUHRyPERvY3VtZW50UGFyc2VyPiBtX3Bh
cnNlcjsKKyAgICB1bnNpZ25lZCBtX3BhcnNlclNlc3Npb25OZXN0aW5nTGV2ZWw7CiAgICAgUmVm
UHRyPENvbnRleHRGZWF0dXJlcz4gbV9jb250ZXh0RmVhdHVyZXM7CiAKICAgICBib29sIG1fd2Vs
bEZvcm1lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuY3BwCmluZGV4IDcyZmViZWJiOGE1YWQ0ZmZkNjA2ZjhlMGM3NWYyMjc4Y2QxYWNlYjAu
LjI2N2QxNDc3NDNiNGI0ZDczYWMxZTY0OGMwZTUyMzc1N2RmMTNjZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcApAQCAtODksNyAr
ODksNiBAQCBIVE1MRG9jdW1lbnRQYXJzZXI6OkhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1l
bnQqIGRvY3VtZW50LCBib29sIHJlcG9ydEVycm9ycwogI2VuZGlmCiAgICAgLCBtX2VuZFdhc0Rl
bGF5ZWQoZmFsc2UpCiAgICAgLCBtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyKGZhbHNlKQotICAgICwg
bV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCgwKQogewogICAgIEFTU0VSVChzaG91bGRVc2VUaHJl
YWRpbmcoKSB8fCAobV90b2tlbiAmJiBtX3Rva2VuaXplcikpOwogfQpAQCAtMTA5LDcgKzEwOCw2
IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBFbGVtZW50KiBjb250CiAjZW5kaWYKICAgICAsIG1fZW5kV2FzRGVsYXll
ZChmYWxzZSkKICAgICAsIG1faGF2ZUJhY2tncm91bmRQYXJzZXIoZmFsc2UpCi0gICAgLCBtX3B1
bXBTZXNzaW9uTmVzdGluZ0xldmVsKDApCiB7CiAgICAgQVNTRVJUKCFzaG91bGRVc2VUaHJlYWRp
bmcoKSk7CiAgICAgYm9vbCByZXBvcnRFcnJvcnMgPSBmYWxzZTsgLy8gRm9yIG5vdyBkb2N1bWVu
dCBmcmFnbWVudCBwYXJzaW5nIG5ldmVyIHJlcG9ydHMgZXJyb3JzLgpAQCAtMTE5LDcgKzExNyw2
IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50LCBFbGVtZW50KiBjb250CiBIVE1MRG9jdW1lbnRQYXJzZXI6On5IVE1MRG9j
dW1lbnRQYXJzZXIoKQogewogICAgIEFTU0VSVCghbV9wYXJzZXJTY2hlZHVsZXIpOwotICAgIEFT
U0VSVCghbV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCk7CiAgICAgQVNTRVJUKCFtX3ByZWxvYWRT
Y2FubmVyKTsKICAgICBBU1NFUlQoIW1faW5zZXJ0aW9uUHJlbG9hZFNjYW5uZXIpOwogICAgIEFT
U0VSVCghbV9oYXZlQmFja2dyb3VuZFBhcnNlcik7CkBAIC0yMTUsNiArMjEyLDExIEBAIGJvb2wg
SFRNTERvY3VtZW50UGFyc2VyOjppc1NjaGVkdWxlZEZvclJlc3VtZSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fcGFyc2VyU2NoZWR1bGVyICYmIG1fcGFyc2VyU2NoZWR1bGVyLT5pc1NjaGVkdWxlZEZv
clJlc3VtZSgpOwogfQogCitib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6aW5QdW1wU2Vzc2lvbigp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGRvY3VtZW50KCkgJiYgZG9jdW1lbnQoKS0+cGFyc2VyU2Vz
c2lvbk5lc3RpbmdMZXZlbCgpID4gMDsKK30KKwogLy8gVXNlZCBieSBIVE1MUGFyc2VyU2NoZWR1
bGVyCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cmVzdW1lUGFyc2luZ0FmdGVyWWllbGQoKQog
ewpAQCAtMzA2LDYgKzMwOCw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFy
c2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcihQYXNzT3duUHRyPFBhcnNlCiAgICAgLy8gYnV0
IHdlIG5lZWQgdG8gZW5zdXJlIGl0IGlzbid0IGRlbGV0ZWQgeWV0LgogICAgIFJlZlB0cjxIVE1M
RG9jdW1lbnRQYXJzZXI+IHByb3RlY3QodGhpcyk7CiAKKyAgICBQdW1wU2Vzc2lvbiBzZXNzaW9u
KGRvY3VtZW50KCkpOworCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRDaHVuayk7CiAgICAgbV9jdXJy
ZW50Q2h1bmsgPSBjaHVuazsKICAgICBPd25QdHI8Q29tcGFjdEhUTUxUb2tlblN0cmVhbT4gdG9r
ZW5zID0gbV9jdXJyZW50Q2h1bmstPnRva2Vucy5yZWxlYXNlKCk7CkBAIC0zNTUsNyArMzU5LDcg
QEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIoU3luY2hyb25vdXNNb2Rl
IG1vZGUpCiAKICAgICBBU1NFUlQoIXNob3VsZFVzZVRocmVhZGluZygpIHx8IG1vZGUgPT0gRm9y
Y2VTeW5jaHJvbm91cyk7CiAKLSAgICBQdW1wU2Vzc2lvbiBzZXNzaW9uKG1fcHVtcFNlc3Npb25O
ZXN0aW5nTGV2ZWwpOworICAgIFB1bXBTZXNzaW9uIHNlc3Npb24oZG9jdW1lbnQoKSk7CiAKICAg
ICAvLyBXZSB0ZWxsIHRoZSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24gYWJvdXQgZXZlcnkgcHVt
cCwgZXZlbiBpZiB3ZQogICAgIC8vIGVuZCB1cCBwdW1waW5nIG5vdGhpbmcuICBJdCBjYW4gZmls
dGVyIG91dCBlbXB0eSBwdW1wcyBpdHNlbGYuCkBAIC00NzEsNyArNDc1LDYgQEAgdm9pZCBIVE1M
RG9jdW1lbnRQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKIAog
I2lmIEVOQUJMRShUSFJFQURFRF9IVE1MX1BBUlNFUikKICAgICBpZiAoIW1fdG9rZW5pemVyKSB7
Ci0gICAgICAgIEFTU0VSVCghaW5QdW1wU2Vzc2lvbigpKTsKICAgICAgICAgQVNTRVJUKG1faGF2
ZUJhY2tncm91bmRQYXJzZXIgfHwgd2FzQ3JlYXRlZEJ5U2NyaXB0KCkpOwogICAgICAgICBtX3Rv
a2VuID0gYWRvcHRQdHIobmV3IEhUTUxUb2tlbik7CiAgICAgICAgIG1fdG9rZW5pemVyID0gSFRN
TFRva2VuaXplcjo6Y3JlYXRlKG1fb3B0aW9ucyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCmluZGV4IGY3MjBmNGMwMWEzOTcwMGJmNTAxNmE3
MmIzNjJhY2EzNzIxMzFlMmEuLmI1Zjk1MDBkMjA4NjE1ZTVhZTEyOGY2Mjk1NTMwNzQ2N2UyZTk3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBh
cnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNl
ci5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaXNQYXJzaW5nRnJh
Z21lbnQoKSBjb25zdDsKICAgICBib29sIGlzU2NoZWR1bGVkRm9yUmVzdW1lKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpblB1bXBTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9wdW1wU2Vzc2lvbk5lc3Rp
bmdMZXZlbCA+IDA7IH0KKyAgICBib29sIGluUHVtcFNlc3Npb24oKSBjb25zdDsKICAgICBib29s
IHNob3VsZERlbGF5RW5kKCkgY29uc3QgeyByZXR1cm4gaW5QdW1wU2Vzc2lvbigpIHx8IGlzV2Fp
dGluZ0ZvclNjcmlwdHMoKSB8fCBpc1NjaGVkdWxlZEZvclJlc3VtZSgpIHx8IGlzRXhlY3V0aW5n
U2NyaXB0KCk7IH0KIAogICAgIEhUTUxUb2tlbiYgdG9rZW4oKSB7IHJldHVybiAqbV90b2tlbi5n
ZXQoKTsgfQpAQCAtMTg2LDcgKzE4Niw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZW5kV2Fz
RGVsYXllZDsKICAgICBib29sIG1faGF2ZUJhY2tncm91bmRQYXJzZXI7Ci0gICAgdW5zaWduZWQg
bV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAKaW5kZXggYTlkZDI0YWY2Y2Qz
OGQ2MDUxNDc5ZDEwNWE1ZmQ3OWRlZGYwOWY3NC4uNTIyNmU2NWI2OGNmMDkyZWQzODRiZDFiNWJk
MTVmYTczNGM5MmUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFBhcnNlclNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFBhcnNlclNjaGVkdWxlci5jcHAKQEAgLTYxLDYgKzYxLDI0IEBAIHN0YXRpYyBpbnQgcGFyc2Vy
Q2h1bmtTaXplKFBhZ2UqIHBhZ2UpCiAgICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJDaHVua1NpemU7
CiB9CiAKK1B1bXBTZXNzaW9uOjpQdW1wU2Vzc2lvbihEb2N1bWVudCogZG9jKQorICAgIDogZG9j
dW1lbnQoZG9jKQorICAgIC8vIFNldHRpbmcgcHJvY2Vzc2VkVG9rZW5zIHRvIElOVF9NQVggY2F1
c2VzIHVzIHRvIGNoZWNrIGZvciB5aWVsZHMKKyAgICAvLyBhZnRlciBhbnkgdG9rZW4gZHVyaW5n
IGFueSBwYXJzZSB3aGVyZSB5aWVsZGluZyBpcyBhbGxvd2VkLgorICAgIC8vIEF0IHRoYXQgdGlt
ZSB3ZSdsbCBpbml0aWFsaXplIHN0YXJ0VGltZS4KKyAgICAsIHByb2Nlc3NlZFRva2VucyhJTlRf
TUFYKQorICAgICwgc3RhcnRUaW1lKDApCisgICAgLCBuZWVkc1lpZWxkKGZhbHNlKQorICAgICwg
ZGlkU2VlU2NyaXB0KGZhbHNlKQoreworICAgIGRvY3VtZW50LT5pbmNyZW1lbnRQYXJzZXJTZXNz
aW9uTmVzdGluZ0xldmVsKCk7Cit9CisKK1B1bXBTZXNzaW9uOjp+UHVtcFNlc3Npb24oKQorewor
ICAgIGRvY3VtZW50LT5kZWNyZW1lbnRQYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKCk7Cit9CisK
IEhUTUxQYXJzZXJTY2hlZHVsZXI6OkhUTUxQYXJzZXJTY2hlZHVsZXIoSFRNTERvY3VtZW50UGFy
c2VyKiBwYXJzZXIpCiAgICAgOiBtX3BhcnNlcihwYXJzZXIpCiAgICAgLCBtX3BhcnNlclRpbWVM
aW1pdChwYXJzZXJUaW1lTGltaXQobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmgKaW5kZXgg
ZTUyZjNlZjNjODA0Y2Y3ODE5NTI2OWRlM2NiOTc5NDliMzVkOTExMy4uYTBhODA1OTI2ZjkyZjdm
N2VlNTdiMjA5NWFlZjdkNDczZGY5Njg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuaApAQCAtMjgsMjkgKzI4LDIyIEBACiAKICNpbmNs
dWRlIDxsaW1pdHMuaD4KIAotI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsK
IAotY2xhc3MgUHVtcFNlc3Npb24gOiBwdWJsaWMgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgewor
Y2xhc3MgUHVtcFNlc3Npb24gewogcHVibGljOgotICAgIFB1bXBTZXNzaW9uKHVuc2lnbmVkJiBu
ZXN0aW5nTGV2ZWwpCi0gICAgICAgIDogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobmVzdGluZ0xl
dmVsKQotICAgICAgICAvLyBTZXR0aW5nIHByb2Nlc3NlZFRva2VucyB0byBJTlRfTUFYIGNhdXNl
cyB1cyB0byBjaGVjayBmb3IgeWllbGRzCi0gICAgICAgIC8vIGFmdGVyIGFueSB0b2tlbiBkdXJp
bmcgYW55IHBhcnNlIHdoZXJlIHlpZWxkaW5nIGlzIGFsbG93ZWQuCi0gICAgICAgIC8vIEF0IHRo
YXQgdGltZSB3ZSdsbCBpbml0aWFsaXplIHN0YXJ0VGltZS4KLSAgICAgICAgLCBwcm9jZXNzZWRU
b2tlbnMoSU5UX01BWCkKLSAgICAgICAgLCBzdGFydFRpbWUoMCkKLSAgICAgICAgLCBuZWVkc1lp
ZWxkKGZhbHNlKQotICAgICAgICAsIGRpZFNlZVNjcmlwdChmYWxzZSkKLSAgICB7Ci0gICAgfQor
ICAgIGV4cGxpY2l0IFB1bXBTZXNzaW9uKERvY3VtZW50Kik7CisgICAgflB1bXBTZXNzaW9uKCk7
CiAKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50OwogICAgIGludCBwcm9jZXNzZWRUb2tl
bnM7CiAgICAgZG91YmxlIHN0YXJ0VGltZTsKICAgICBib29sIG5lZWRzWWllbGQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCA5YTk4YmI3MzUyYTgyNzcwZTQ4
YjBhNGEwZDA3N2Y4MDFlZWZmMWFjLi45ODcxZTk1MTI0YjAzOTVlOTRjZjk5ZWFmOWNlNTY2NGM4
MWFiYWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQ3
OCw2ICs0NzgsOCBAQCBib29sIERvY3VtZW50TG9hZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlKCkg
Y29uc3QKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAobV9jYWNoZWRSZXNv
dXJjZUxvYWRlci0+cmVxdWVzdENvdW50KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgaWYgKGRvYy0+cGFyc2VyU2Vzc2lvbk5lc3RpbmdMZXZlbCgpID4gMCkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRv
Yy0+cGFyc2VyKCkpCiAgICAgICAgICAgICBpZiAocGFyc2VyLT5wcm9jZXNzaW5nRGF0YSgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187167</attachid>
            <date>2013-02-07 13:31:06 -0800</date>
            <delta_ts>2013-02-07 14:22:59 -0800</delta_ts>
            <desc>passes foo.html test case</desc>
            <filename>bug-108984-20130207132743.patch</filename>
            <type>text/plain</type>
            <size>8929</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2
MjE0NzU2YmMxNDM4OTMxNjk5NjRkZWFjZmY3MmNhZmE3MjAzNmIyLi5mYzAwNTZmNGM0MjI5ZDM0
Yjk4NjA3NDhjNjk0Yjg5OGEyMDViNzMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQx
MSw2ICs0MTEsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX2d1YXJkUmVmQ291bnQo
MCkKICAgICAsIG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyKHRoaXMsICZEb2N1bWVudDo6
c3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJlc29s
dmVyQWNjZXNzVGltZSgwKQorICAgICwgbV9wYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKDApCiAg
ICAgLCBtX2NvbnRleHRGZWF0dXJlcyhDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKSkK
ICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGUoTm9RdWlya3NNb2RlKQogICAgICwgbV9jb21wYXRp
YmlsaXR5TW9kZUxvY2tlZChmYWxzZSkKQEAgLTU3NzIsNiArNTc3MywxNSBAQCB2b2lkIERvY3Vt
ZW50OjphZGp1c3RGbG9hdFJlY3RGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFtZVNjYWxl
KEZsb2F0UmVjdCYgcgogICAgICAgICByZWN0LnNjYWxlKGludmVyc2VGcmFtZVNjYWxlKTsKIH0K
IAordm9pZCBEb2N1bWVudDo6ZGVjcmVtZW50UGFyc2VyU2Vzc2lvbk5lc3RpbmdMZXZlbCgpCit7
CisgICAgLS1tX3BhcnNlclNlc3Npb25OZXN0aW5nTGV2ZWw7CisgICAgaWYgKCFmcmFtZSgpKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKCFmcmFtZSgpLT5sb2FkZXIoKS0+c3RhdGVNYWNoaW5l
KCktPmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSkKKyAgICAgICAgZnJhbWUoKS0+bG9h
ZGVyKCktPmNoZWNrTG9hZENvbXBsZXRlKCk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnNldENvbnRl
eHRGZWF0dXJlcyhQYXNzUmVmUHRyPENvbnRleHRGZWF0dXJlcz4gZmVhdHVyZXMpCiB7CiAgICAg
bV9jb250ZXh0RmVhdHVyZXMgPSBmZWF0dXJlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2Jk
OWYxOTBjNDc1YTU3MzJlMzMyMzUzMWU3ZWI1NzQ0MTYyYjE2Yy4uZjU3MzExYTIzNjQwM2E1MmJl
Y2EwZTUyM2I5ODRmMmVkNjc1YjYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExNjgsNiAr
MTE2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5k
QWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShWZWN0b3I8RmxvYXRRdWFkPiYsIFJlbmRlck9iamVj
dCopOwogICAgIHZvaWQgYWRqdXN0RmxvYXRSZWN0Rm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5k
RnJhbWVTY2FsZShGbG9hdFJlY3QmLCBSZW5kZXJPYmplY3QqKTsKIAorICAgIHVuc2lnbmVkIHBh
cnNlclNlc3Npb25OZXN0aW5nTGV2ZWwoKSBjb25zdCB7IHJldHVybiBtX3BhcnNlclNlc3Npb25O
ZXN0aW5nTGV2ZWw7IH0KKyAgICB2b2lkIGluY3JlbWVudFBhcnNlclNlc3Npb25OZXN0aW5nTGV2
ZWwoKSB7ICsrbV9wYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsOyB9CisgICAgdm9pZCBkZWNyZW1l
bnRQYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKCk7CisKICAgICB2b2lkIHNldENvbnRleHRGZWF0
dXJlcyhQYXNzUmVmUHRyPENvbnRleHRGZWF0dXJlcz4pOwogICAgIENvbnRleHRGZWF0dXJlcyog
Y29udGV4dEZlYXR1cmVzKCkgeyByZXR1cm4gbV9jb250ZXh0RmVhdHVyZXMuZ2V0KCk7IH0KIApA
QCAtMTMwNyw2ICsxMzExLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxDYWNoZWRSZXNvdXJj
ZUxvYWRlcj4gbV9jYWNoZWRSZXNvdXJjZUxvYWRlcjsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJz
ZXI+IG1fcGFyc2VyOworICAgIHVuc2lnbmVkIG1fcGFyc2VyU2Vzc2lvbk5lc3RpbmdMZXZlbDsK
ICAgICBSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBtX2NvbnRleHRGZWF0dXJlczsKIAogICAgIGJv
b2wgbV93ZWxsRm9ybWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKaW5kZXggMjNkZTY3NzliMjNhNmMyN2Y3ZDIxMzQ1YjM3ZmFiZmRm
NjFlMTRjOC4uMjA2ODhkYTdmMjA3M2IwN2FhNTc5MWRjM2Q3OWE5MzZhMTk3ZWYxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCkBA
IC04OSw3ICs4OSw2IEBAIEhUTUxEb2N1bWVudFBhcnNlcjo6SFRNTERvY3VtZW50UGFyc2VyKEhU
TUxEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgcmVwb3J0RXJyb3JzCiAjZW5kaWYKICAgICAsIG1f
ZW5kV2FzRGVsYXllZChmYWxzZSkKICAgICAsIG1faGF2ZUJhY2tncm91bmRQYXJzZXIoZmFsc2Up
Ci0gICAgLCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKDApCiB7CiAgICAgQVNTRVJUKHNob3Vs
ZFVzZVRocmVhZGluZygpIHx8IChtX3Rva2VuICYmIG1fdG9rZW5pemVyKSk7CiB9CkBAIC0xMDgs
NyArMTA3LDYgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1l
bnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnQKICNlbmRpZgogICAgICwgbV9lbmRX
YXNEZWxheWVkKGZhbHNlKQogICAgICwgbV9oYXZlQmFja2dyb3VuZFBhcnNlcihmYWxzZSkKLSAg
ICAsIG1fcHVtcFNlc3Npb25OZXN0aW5nTGV2ZWwoMCkKIHsKICAgICBBU1NFUlQoIXNob3VsZFVz
ZVRocmVhZGluZygpKTsKICAgICBib29sIHJlcG9ydEVycm9ycyA9IGZhbHNlOyAvLyBGb3Igbm93
IGRvY3VtZW50IGZyYWdtZW50IHBhcnNpbmcgbmV2ZXIgcmVwb3J0cyBlcnJvcnMuCkBAIC0xMTgs
NyArMTE2LDYgQEAgSFRNTERvY3VtZW50UGFyc2VyOjpIVE1MRG9jdW1lbnRQYXJzZXIoRG9jdW1l
bnRGcmFnbWVudCogZnJhZ21lbnQsIEVsZW1lbnQqIGNvbnQKIEhUTUxEb2N1bWVudFBhcnNlcjo6
fkhUTUxEb2N1bWVudFBhcnNlcigpCiB7CiAgICAgQVNTRVJUKCFtX3BhcnNlclNjaGVkdWxlcik7
Ci0gICAgQVNTRVJUKCFtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsKTsKICAgICBBU1NFUlQoIW1f
cHJlbG9hZFNjYW5uZXIpOwogICAgIEFTU0VSVCghbV9pbnNlcnRpb25QcmVsb2FkU2Nhbm5lcik7
CiAgICAgQVNTRVJUKCFtX2hhdmVCYWNrZ3JvdW5kUGFyc2VyKTsKQEAgLTIxNCw2ICsyMTEsMTEg
QEAgYm9vbCBIVE1MRG9jdW1lbnRQYXJzZXI6OmlzU2NoZWR1bGVkRm9yUmVzdW1lKCkgY29uc3QK
ICAgICByZXR1cm4gbV9wYXJzZXJTY2hlZHVsZXIgJiYgbV9wYXJzZXJTY2hlZHVsZXItPmlzU2No
ZWR1bGVkRm9yUmVzdW1lKCk7CiB9CiAKK2Jvb2wgSFRNTERvY3VtZW50UGFyc2VyOjppblB1bXBT
ZXNzaW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5w
YXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKCkgPiAwOworfQorCiAvLyBVc2VkIGJ5IEhUTUxQYXJz
ZXJTY2hlZHVsZXIKIHZvaWQgSFRNTERvY3VtZW50UGFyc2VyOjpyZXN1bWVQYXJzaW5nQWZ0ZXJZ
aWVsZCgpCiB7CkBAIC0zMDUsNiArMzA3LDggQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnBy
b2Nlc3NQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKFBhc3NPd25QdHI8UGFyc2UKICAg
ICAvLyBidXQgd2UgbmVlZCB0byBlbnN1cmUgaXQgaXNuJ3QgZGVsZXRlZCB5ZXQuCiAgICAgUmVm
UHRyPEhUTUxEb2N1bWVudFBhcnNlcj4gcHJvdGVjdCh0aGlzKTsKIAorICAgIFB1bXBTZXNzaW9u
IHNlc3Npb24oZG9jdW1lbnQoKSk7CisKICAgICBBU1NFUlQoIW1fY3VycmVudENodW5rKTsKICAg
ICBtX2N1cnJlbnRDaHVuayA9IGNodW5rOwogICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3Ry
ZWFtPiB0b2tlbnMgPSBtX2N1cnJlbnRDaHVuay0+dG9rZW5zLnJlbGVhc2UoKTsKQEAgLTM1Niw3
ICszNjAsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcihTeW5jaHJv
bm91c01vZGUgbW9kZSkKIAogICAgIEFTU0VSVCghc2hvdWxkVXNlVGhyZWFkaW5nKCkgfHwgbW9k
ZSA9PSBGb3JjZVN5bmNocm9ub3VzKTsKIAotICAgIFB1bXBTZXNzaW9uIHNlc3Npb24obV9wdW1w
U2Vzc2lvbk5lc3RpbmdMZXZlbCk7CisgICAgUHVtcFNlc3Npb24gc2Vzc2lvbihkb2N1bWVudCgp
KTsKIAogICAgIC8vIFdlIHRlbGwgdGhlIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBhYm91dCBl
dmVyeSBwdW1wLCBldmVuIGlmIHdlCiAgICAgLy8gZW5kIHVwIHB1bXBpbmcgbm90aGluZy4gIEl0
IGNhbiBmaWx0ZXIgb3V0IGVtcHR5IHB1bXBzIGl0c2VsZi4KQEAgLTQ3MSw3ICs0NzUsNiBAQCB2
b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6aW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYgc291
cmNlKQogCiAjaWYgRU5BQkxFKFRIUkVBREVEX0hUTUxfUEFSU0VSKQogICAgIGlmICghbV90b2tl
bml6ZXIpIHsKLSAgICAgICAgQVNTRVJUKCFpblB1bXBTZXNzaW9uKCkpOwogICAgICAgICBBU1NF
UlQobV9oYXZlQmFja2dyb3VuZFBhcnNlciB8fCB3YXNDcmVhdGVkQnlTY3JpcHQoKSk7CiAgICAg
ICAgIG1fdG9rZW4gPSBhZG9wdFB0cihuZXcgSFRNTFRva2VuKTsKICAgICAgICAgbV90b2tlbml6
ZXIgPSBIVE1MVG9rZW5pemVyOjpjcmVhdGUobV9vcHRpb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKaW5kZXggYWU4NjIzMzA3MDFiNDFl
MGZkM2QwNTgzOTZmZTY2NWYxYWJjYmFkYy4uZDU1OTI2Y2YwNDRjNmYzMGY3Y2U3OGM3ODk5YzJm
Y2I0MTc1ZGE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3Vt
ZW50UGFyc2VyLmgKQEAgLTE1Nyw3ICsxNTcsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBpc1Bh
cnNpbmdGcmFnbWVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNTY2hlZHVsZWRGb3JSZXN1bWUoKSBj
b25zdDsKLSAgICBib29sIGluUHVtcFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3B1bXBTZXNz
aW9uTmVzdGluZ0xldmVsID4gMDsgfQorICAgIGJvb2wgaW5QdW1wU2Vzc2lvbigpIGNvbnN0Owog
ICAgIGJvb2wgc2hvdWxkRGVsYXlFbmQoKSBjb25zdCB7IHJldHVybiBpblB1bXBTZXNzaW9uKCkg
fHwgaXNXYWl0aW5nRm9yU2NyaXB0cygpIHx8IGlzU2NoZWR1bGVkRm9yUmVzdW1lKCkgfHwgaXNF
eGVjdXRpbmdTY3JpcHQoKTsgfQogCiAgICAgSFRNTFRva2VuJiB0b2tlbigpIHsgcmV0dXJuICpt
X3Rva2VuLmdldCgpOyB9CkBAIC0xODUsNyArMTg1LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
bV9lbmRXYXNEZWxheWVkOwogICAgIGJvb2wgbV9oYXZlQmFja2dyb3VuZFBhcnNlcjsKLSAgICB1
bnNpZ25lZCBtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcAppbmRleCBhOWRk
MjRhZjZjZDM4ZDYwNTE0NzlkMTA1YTVmZDc5ZGVkZjA5Zjc0Li41MjI2ZTY1YjY4Y2YwOTJlZDM4
NGJkMWI1YmQxNWZhNzM0YzkyZTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcApAQCAtNjEsNiArNjEsMjQgQEAgc3RhdGljIGlu
dCBwYXJzZXJDaHVua1NpemUoUGFnZSogcGFnZSkKICAgICByZXR1cm4gZGVmYXVsdFBhcnNlckNo
dW5rU2l6ZTsKIH0KIAorUHVtcFNlc3Npb246OlB1bXBTZXNzaW9uKERvY3VtZW50KiBkb2MpCisg
ICAgOiBkb2N1bWVudChkb2MpCisgICAgLy8gU2V0dGluZyBwcm9jZXNzZWRUb2tlbnMgdG8gSU5U
X01BWCBjYXVzZXMgdXMgdG8gY2hlY2sgZm9yIHlpZWxkcworICAgIC8vIGFmdGVyIGFueSB0b2tl
biBkdXJpbmcgYW55IHBhcnNlIHdoZXJlIHlpZWxkaW5nIGlzIGFsbG93ZWQuCisgICAgLy8gQXQg
dGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxpemUgc3RhcnRUaW1lLgorICAgICwgcHJvY2Vzc2VkVG9r
ZW5zKElOVF9NQVgpCisgICAgLCBzdGFydFRpbWUoMCkKKyAgICAsIG5lZWRzWWllbGQoZmFsc2Up
CisgICAgLCBkaWRTZWVTY3JpcHQoZmFsc2UpCit7CisgICAgZG9jdW1lbnQtPmluY3JlbWVudFBh
cnNlclNlc3Npb25OZXN0aW5nTGV2ZWwoKTsKK30KKworUHVtcFNlc3Npb246On5QdW1wU2Vzc2lv
bigpCit7CisgICAgZG9jdW1lbnQtPmRlY3JlbWVudFBhcnNlclNlc3Npb25OZXN0aW5nTGV2ZWwo
KTsKK30KKwogSFRNTFBhcnNlclNjaGVkdWxlcjo6SFRNTFBhcnNlclNjaGVkdWxlcihIVE1MRG9j
dW1lbnRQYXJzZXIqIHBhcnNlcikKICAgICA6IG1fcGFyc2VyKHBhcnNlcikKICAgICAsIG1fcGFy
c2VyVGltZUxpbWl0KHBhcnNlclRpbWVMaW1pdChtX3BhcnNlci0+ZG9jdW1lbnQoKS0+cGFnZSgp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hl
ZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIu
aAppbmRleCBlNTJmM2VmM2M4MDRjZjc4MTk1MjY5ZGUzY2I5Nzk0OWIzNWQ5MTEzLi5hMGE4MDU5
MjZmOTJmN2Y3ZWU1N2IyMDk1YWVmN2Q0NzNkZjk2ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oCkBAIC0yOCwyOSArMjgsMjIgQEAK
IAogI2luY2x1ZGUgPGxpbWl0cy5oPgogCi0jaW5jbHVkZSAiTmVzdGluZ0xldmVsSW5jcmVtZW50
ZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogY2xhc3MgSFRNTERvY3VtZW50
UGFyc2VyOwogCi1jbGFzcyBQdW1wU2Vzc2lvbiA6IHB1YmxpYyBOZXN0aW5nTGV2ZWxJbmNyZW1l
bnRlciB7CitjbGFzcyBQdW1wU2Vzc2lvbiB7CiBwdWJsaWM6Ci0gICAgUHVtcFNlc3Npb24odW5z
aWduZWQmIG5lc3RpbmdMZXZlbCkKLSAgICAgICAgOiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihu
ZXN0aW5nTGV2ZWwpCi0gICAgICAgIC8vIFNldHRpbmcgcHJvY2Vzc2VkVG9rZW5zIHRvIElOVF9N
QVggY2F1c2VzIHVzIHRvIGNoZWNrIGZvciB5aWVsZHMKLSAgICAgICAgLy8gYWZ0ZXIgYW55IHRv
a2VuIGR1cmluZyBhbnkgcGFyc2Ugd2hlcmUgeWllbGRpbmcgaXMgYWxsb3dlZC4KLSAgICAgICAg
Ly8gQXQgdGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxpemUgc3RhcnRUaW1lLgotICAgICAgICAsIHBy
b2Nlc3NlZFRva2VucyhJTlRfTUFYKQotICAgICAgICAsIHN0YXJ0VGltZSgwKQotICAgICAgICAs
IG5lZWRzWWllbGQoZmFsc2UpCi0gICAgICAgICwgZGlkU2VlU2NyaXB0KGZhbHNlKQotICAgIHsK
LSAgICB9CisgICAgZXhwbGljaXQgUHVtcFNlc3Npb24oRG9jdW1lbnQqKTsKKyAgICB+UHVtcFNl
c3Npb24oKTsKIAorICAgIFJlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQ7CiAgICAgaW50IHByb2Nl
c3NlZFRva2VuczsKICAgICBkb3VibGUgc3RhcnRUaW1lOwogICAgIGJvb2wgbmVlZHNZaWVsZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDlhOThiYjczNTJh
ODI3NzBlNDhiMGE0YTBkMDc3ZjgwMWVlZmYxYWMuLjk4NzFlOTUxMjRiMDM5NWU5NGNmOTllYWY5
Y2U1NjY0YzgxYWJhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cApAQCAtNDc4LDYgKzQ3OCw4IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTG9hZGluZ0luQVBJ
U2Vuc2UoKSBjb25zdAogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChtX2Nh
Y2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q291bnQoKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBpZiAoZG9jLT5wYXJzZXJTZXNzaW9uTmVzdGluZ0xldmVsKCkgPiAwKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIGlmIChEb2N1bWVudFBhcnNlciogcGFy
c2VyID0gZG9jLT5wYXJzZXIoKSkKICAgICAgICAgICAgIGlmIChwYXJzZXItPnByb2Nlc3NpbmdE
YXRhKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187176</attachid>
            <date>2013-02-07 14:23:01 -0800</date>
            <delta_ts>2013-02-07 16:44:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108984-20130207141939.patch</filename>
            <type>text/plain</type>
            <size>9848</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWZlZTNmNWQ5ZGRiZjVl
NTA0MTI0YjcxZTlhNGExYmZkMTQxNjU1OS4uOGFhMWEyNjJhZmYxZmM3OTVlNjgyZmY4N2ZkMDlm
ZGNmY2QxZjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAyLTA3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0
b28gZWFybHkgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIERvY3VtZW50TG9hZGVy
IHdvdWxkIGFsd2F5cyBiZSBvbiB0aGUgc3RhY2sgd2hlbiB0aGUKKyAgICAgICAgSFRNTERvY3Vt
ZW50UGFyc2VyIHdhcyBwcm9jZXNzaW5nIGRhdGEgZnJvbSB0aGUgbmV0d29yay4gIFRoZQorICAg
ICAgICBEb2N1bWVudExvYWRlciB3b3VsZCB0aGVuIHRlbGwgaXNMb2FkaW5nSW5BUElTZW5zZSBu
b3QgdG8gZmlyZSB0aGUgbG9hZAorICAgICAgICBldmVudC4gIE5vdyB0aGF0IHdlIHByb2Nlc3Mg
ZGF0YSBhc3luY2hyb25vdXNseSB3aXRoIHRoZSB0aHJlYWRlZAorICAgICAgICBwYXJzZXIsIHRo
ZSBEb2N1bWVudExvYWRlciBpcyBub3QgYWx3YXlzIG9uIHRoZSBzdGFjaywgd2hpY2ggbWVhbnMg
d2UKKyAgICAgICAgbmVlZCB0byBkZWxheSB0aGUgbG9hZCBldmVudCB1c2luZyB0aGUgY2xhdXNl
IHRoYXQgYXNrcyB0aGUgcGFyc2VyCisgICAgICAgIHdoZXRoZXIgaXQgaXMgcHJvY2Vzc2luZyBk
YXRhLgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgY2xhdXNlIGlzIGZyYWdpbGUgYmVj
YXVzZSB3ZSBjYW4gY2hlY2sgZm9yIGxvYWQKKyAgICAgICAgY29tcGxldGlvbiB3aGlsZSB3ZSdy
ZSBzd2l0Y2hpbmcgcGFyc2VycyBiZXR3ZWVuIHRoZSBuZXR3b3JrLWNyZWF0ZWQKKyAgICAgICAg
cGFyc2VyIGFuZCBhIHNjcmlwdC1jcmVhdGVkIHBhcnNlci4gVG8gYXZvaWQgYWNjaWRlbnRpYWxs
eSB0cmlnZ2VyaW4KKyAgICAgICAgdGhlIGxvYWQgZXZlbnQgZHVyaW5nIHRoZXNlICJnYXBzLCIg
dGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY291bnRlciBvbgorICAgICAgICBkb2N1bWVudCB0byBy
ZWNvcmQgaG93IG1hbnkgcGFyc2VycyBhcmUgYWN0aXZlIG9uIHRoZSBzdGFjay4gIFdoaWxlCisg
ICAgICAgIHRoYXQgbnVtZXIgaXMgbm9uLXplcm8sIHdlJ2xsIGRlbGF5IHRoZSBsb2FkIGV2ZW50
LiBXaGVuIHRoYXQgbnVtYmVyCisgICAgICAgIHJlYWNoZXMgemVybywgd2UnbGwgY2hlY2sgZm9y
IGxvYWQgY29tcGxldGUuCisKKyAgICAgICAgVGhhdCBsYXN0IHN0ZXAgaXMgcmVxdWlyZWQgYmVj
YXVzZSB0aGUgRG9jdW1lbnRMb2FkZXI6OmZpbmlzaExvYWRpbmcKKyAgICAgICAgbWV0aG9kIGlz
IG5vIGxvbmdlciBndWFydW50ZWVkIHRvIGNoZWNrIGZvciBsb2FkIGNvbXBsZXRlIGFmdGVyIGNh
bGxpbmcKKyAgICAgICAgZmluaXNoIG9uIHRoZSBwYXJzZXIgYmVjYXVzZSB0aGUgZmluaXNoIG9w
ZXJhdGlvbiBtaWdodCBjb21wbGV0ZQorICAgICAgICBhc3luY2hyb25vdXNseS4KKworICAgICAg
ICBBZnRlciB0aGlzIHBhdGNoLCB0aGUgdGhyZWFkZWQgcGFyc2VyIHBhc3NlcyBhbGwgYnV0IGZv
dXIgZmFzdC9wYXJzZXIKKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjpoYXNBY3RpdmVQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQpOgor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmluY3JlbWVudEFjdGl2ZVBhcnNlckNvdW50KToKKyAgICAgICAg
KiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNl
cik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIp
OgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWN0aXZlUGFyc2VyU2Vzc2lvbjo6QWN0aXZlUGFyc2VyU2Vzc2lvbik6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjdGl2ZVBhcnNlclNlc3Npb246
On5BY3RpdmVQYXJzZXJTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlB1bXBTZXNzaW9uOjpQ
dW1wU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQdW1wU2Vzc2lvbjo6flB1bXBTZXNzaW9u
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKEFjdGl2ZVBhcnNlclNlc3Npb24pOgorICAgICAgICAoUHVt
cFNlc3Npb24pOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSk6CisKIDIwMTMt
MDItMDcgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+
CiAKICAgICAgICAgW1dLMl1bRUZMXVtRVF1SRUdSRVNTSU9OKHIxNDIwNDUpOiBTY3JvbGxpbmcg
aXMgYnJva2VuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA2MjE0NzU2YmMxNDM4OTMxNjk5
NjRkZWFjZmY3MmNhZmE3MjAzNmIyLi41OTFmM2E5ZmU5Njk0ZmZmNWQ4ZTA5MDRmNjJhMWZhOGU3
MWZiZDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQxMSw2ICs0MTEsNyBAQCBEb2N1
bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRN
TCwgYm9vbCBpc0hUTUwpCiAgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1fc3R5bGVS
ZXNvbHZlclRocm93YXdheVRpbWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZXNvbHZlclRocm93
YXdheVRpbWVyRmlyZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZSgwKQor
ICAgICwgbV9hY3RpdmVQYXJzZXJDb3VudCgwKQogICAgICwgbV9jb250ZXh0RmVhdHVyZXMoQ29u
dGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkpCiAgICAgLCBtX2NvbXBhdGliaWxpdHlNb2Rl
KE5vUXVpcmtzTW9kZSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGVMb2NrZWQoZmFsc2UpCkBA
IC01NzcyLDYgKzU3NzMsMTkgQEAgdm9pZCBEb2N1bWVudDo6YWRqdXN0RmxvYXRSZWN0Rm9yU2Ny
b2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShGbG9hdFJlY3QmIHIKICAgICAgICAgcmVj
dC5zY2FsZShpbnZlcnNlRnJhbWVTY2FsZSk7CiB9CiAKK2Jvb2wgRG9jdW1lbnQ6Omhhc0FjdGl2
ZVBhcnNlcigpCit7CisgICAgcmV0dXJuIG1fYWN0aXZlUGFyc2VyQ291bnQgfHwgKG1fcGFyc2Vy
ICYmIG1fcGFyc2VyLT5wcm9jZXNzaW5nRGF0YSgpKTsKK30KKwordm9pZCBEb2N1bWVudDo6ZGVj
cmVtZW50QWN0aXZlUGFyc2VyQ291bnQoKQoreworICAgIC0tbV9hY3RpdmVQYXJzZXJDb3VudDsK
KyAgICBpZiAoIWZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmcmFtZSgpLT5sb2FkZXIo
KS0+Y2hlY2tMb2FkQ29tcGxldGUoKTsKK30KKwogdm9pZCBEb2N1bWVudDo6c2V0Q29udGV4dEZl
YXR1cmVzKFBhc3NSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBmZWF0dXJlcykKIHsKICAgICBtX2Nv
bnRleHRGZWF0dXJlcyA9IGZlYXR1cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3YmQ5ZjE5
MGM0NzVhNTczMmUzMzIzNTMxZTdlYjU3NDQxNjJiMTZjLi43MmM4Mzk5M2JlMDdmZjhjMjc2MjAy
OTlhYTIxNjQ5NmNmN2Y1OWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE2OCw2ICsxMTY4
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkanVzdEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNv
bHV0ZVpvb21BbmRGcmFtZVNjYWxlKFZlY3RvcjxGbG9hdFF1YWQ+JiwgUmVuZGVyT2JqZWN0Kik7
CiAgICAgdm9pZCBhZGp1c3RGbG9hdFJlY3RGb3JTY3JvbGxBbmRBYnNvbHV0ZVpvb21BbmRGcmFt
ZVNjYWxlKEZsb2F0UmVjdCYsIFJlbmRlck9iamVjdCopOwogCisgICAgYm9vbCBoYXNBY3RpdmVQ
YXJzZXIoKTsKKyAgICB2b2lkIGluY3JlbWVudEFjdGl2ZVBhcnNlckNvdW50KCkgeyArK21fYWN0
aXZlUGFyc2VyQ291bnQ7IH0KKyAgICB2b2lkIGRlY3JlbWVudEFjdGl2ZVBhcnNlckNvdW50KCk7
CisKICAgICB2b2lkIHNldENvbnRleHRGZWF0dXJlcyhQYXNzUmVmUHRyPENvbnRleHRGZWF0dXJl
cz4pOwogICAgIENvbnRleHRGZWF0dXJlcyogY29udGV4dEZlYXR1cmVzKCkgeyByZXR1cm4gbV9j
b250ZXh0RmVhdHVyZXMuZ2V0KCk7IH0KIApAQCAtMTMwNyw2ICsxMzExLDcgQEAgcHJpdmF0ZToK
IAogICAgIFJlZlB0cjxDYWNoZWRSZXNvdXJjZUxvYWRlcj4gbV9jYWNoZWRSZXNvdXJjZUxvYWRl
cjsKICAgICBSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IG1fcGFyc2VyOworICAgIHVuc2lnbmVkIG1f
YWN0aXZlUGFyc2VyQ291bnQ7CiAgICAgUmVmUHRyPENvbnRleHRGZWF0dXJlcz4gbV9jb250ZXh0
RmVhdHVyZXM7CiAKICAgICBib29sIG1fd2VsbEZvcm1lZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwCmluZGV4IDIzZGU2Nzc5YjIzYTZj
MjdmN2QyMTM0NWIzN2ZhYmZkZjYxZTE0YzguLmQ2YTZkN2E3ZjEwOGJkYjJiN2Y2OTI4MDlkN2Uy
NTZiNTkyZjg2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxE
b2N1bWVudFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERv
Y3VtZW50UGFyc2VyLmNwcApAQCAtMzA1LDYgKzMwNSw4IEBAIHZvaWQgSFRNTERvY3VtZW50UGFy
c2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcihQYXNzT3duUHRyPFBh
cnNlCiAgICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIGl0IGlzbid0IGRlbGV0ZWQgeWV0Lgog
ICAgIFJlZlB0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHByb3RlY3QodGhpcyk7CiAKKyAgICBBY3Rp
dmVQYXJzZXJTZXNzaW9uIHNlc3Npb24oZG9jdW1lbnQoKSk7CisKICAgICBBU1NFUlQoIW1fY3Vy
cmVudENodW5rKTsKICAgICBtX2N1cnJlbnRDaHVuayA9IGNodW5rOwogICAgIE93blB0cjxDb21w
YWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnMgPSBtX2N1cnJlbnRDaHVuay0+dG9rZW5zLnJlbGVh
c2UoKTsKQEAgLTM1Niw3ICszNTgsNyBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHVtcFRv
a2VuaXplcihTeW5jaHJvbm91c01vZGUgbW9kZSkKIAogICAgIEFTU0VSVCghc2hvdWxkVXNlVGhy
ZWFkaW5nKCkgfHwgbW9kZSA9PSBGb3JjZVN5bmNocm9ub3VzKTsKIAotICAgIFB1bXBTZXNzaW9u
IHNlc3Npb24obV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCk7CisgICAgUHVtcFNlc3Npb24gc2Vz
c2lvbihtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsLCBkb2N1bWVudCgpKTsKIAogICAgIC8vIFdl
IHRlbGwgdGhlIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBhYm91dCBldmVyeSBwdW1wLCBldmVu
IGlmIHdlCiAgICAgLy8gZW5kIHVwIHB1bXBpbmcgbm90aGluZy4gIEl0IGNhbiBmaWx0ZXIgb3V0
IGVtcHR5IHB1bXBzIGl0c2VsZi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFBhcnNlclNjaGVkdWxlci5jcHAKaW5kZXggYTlkZDI0YWY2Y2QzOGQ2MDUxNDc5ZDEwNWE1
ZmQ3OWRlZGYwOWY3NC4uNjE2ZTMzNzk2Zjc2NmMxYzFiMzk4ZDNlNWViZTc5ZmEyNGQ5YTk2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxl
ci5jcHAKQEAgLTYxLDYgKzYxLDM0IEBAIHN0YXRpYyBpbnQgcGFyc2VyQ2h1bmtTaXplKFBhZ2Uq
IHBhZ2UpCiAgICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJDaHVua1NpemU7CiB9CiAKK0FjdGl2ZVBh
cnNlclNlc3Npb246OkFjdGl2ZVBhcnNlclNlc3Npb24oRG9jdW1lbnQqIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKKyAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRBY3Rp
dmVQYXJzZXJDb3VudCgpOworfQorCitBY3RpdmVQYXJzZXJTZXNzaW9uOjp+QWN0aXZlUGFyc2Vy
U2Vzc2lvbigpCit7CisgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQo
KTsKK30KKworUHVtcFNlc3Npb246OlB1bXBTZXNzaW9uKHVuc2lnbmVkJiBuZXN0aW5nTGV2ZWws
IERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE5lc3RpbmdMZXZlbEluY3JlbWVudGVyKG5lc3Rp
bmdMZXZlbCkKKyAgICAsIEFjdGl2ZVBhcnNlclNlc3Npb24oZG9jdW1lbnQpCisgICAgLy8gU2V0
dGluZyBwcm9jZXNzZWRUb2tlbnMgdG8gSU5UX01BWCBjYXVzZXMgdXMgdG8gY2hlY2sgZm9yIHlp
ZWxkcworICAgIC8vIGFmdGVyIGFueSB0b2tlbiBkdXJpbmcgYW55IHBhcnNlIHdoZXJlIHlpZWxk
aW5nIGlzIGFsbG93ZWQuCisgICAgLy8gQXQgdGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxpemUgc3Rh
cnRUaW1lLgorICAgICwgcHJvY2Vzc2VkVG9rZW5zKElOVF9NQVgpCisgICAgLCBzdGFydFRpbWUo
MCkKKyAgICAsIG5lZWRzWWllbGQoZmFsc2UpCisgICAgLCBkaWRTZWVTY3JpcHQoZmFsc2UpCit7
Cit9CisKK1B1bXBTZXNzaW9uOjp+UHVtcFNlc3Npb24oKQoreworfQorCiBIVE1MUGFyc2VyU2No
ZWR1bGVyOjpIVE1MUGFyc2VyU2NoZWR1bGVyKEhUTUxEb2N1bWVudFBhcnNlciogcGFyc2VyKQog
ICAgIDogbV9wYXJzZXIocGFyc2VyKQogICAgICwgbV9wYXJzZXJUaW1lTGltaXQocGFyc2VyVGlt
ZUxpbWl0KG1fcGFyc2VyLT5kb2N1bWVudCgpLT5wYWdlKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oCmluZGV4IGU1MmYzZWYzYzgwNGNm
NzgxOTUyNjlkZTNjYjk3OTQ5YjM1ZDkxMTMuLjkxMTJjNTg0MTAwNWJmODJhMmRhMjJkODJiM2M2
ZDNmM2M4M2UwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
YXJzZXJTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFy
c2VyU2NoZWR1bGVyLmgKQEAgLTI2LDMwICsyNiwzMSBAQAogI2lmbmRlZiBIVE1MUGFyc2VyU2No
ZWR1bGVyX2gKICNkZWZpbmUgSFRNTFBhcnNlclNjaGVkdWxlcl9oCiAKLSNpbmNsdWRlIDxsaW1p
dHMuaD4KLQogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCiAjaW5jbHVkZSAi
VGltZXIuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxEb2N1
bWVudFBhcnNlcjsKIAotY2xhc3MgUHVtcFNlc3Npb24gOiBwdWJsaWMgTmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIgeworY2xhc3MgQWN0aXZlUGFyc2VyU2Vzc2lvbiB7CiBwdWJsaWM6Ci0gICAgUHVt
cFNlc3Npb24odW5zaWduZWQmIG5lc3RpbmdMZXZlbCkKLSAgICAgICAgOiBOZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlcihuZXN0aW5nTGV2ZWwpCi0gICAgICAgIC8vIFNldHRpbmcgcHJvY2Vzc2VkVG9r
ZW5zIHRvIElOVF9NQVggY2F1c2VzIHVzIHRvIGNoZWNrIGZvciB5aWVsZHMKLSAgICAgICAgLy8g
YWZ0ZXIgYW55IHRva2VuIGR1cmluZyBhbnkgcGFyc2Ugd2hlcmUgeWllbGRpbmcgaXMgYWxsb3dl
ZC4KLSAgICAgICAgLy8gQXQgdGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxpemUgc3RhcnRUaW1lLgot
ICAgICAgICAsIHByb2Nlc3NlZFRva2VucyhJTlRfTUFYKQotICAgICAgICAsIHN0YXJ0VGltZSgw
KQotICAgICAgICAsIG5lZWRzWWllbGQoZmFsc2UpCi0gICAgICAgICwgZGlkU2VlU2NyaXB0KGZh
bHNlKQotICAgIHsKLSAgICB9CisgICAgZXhwbGljaXQgQWN0aXZlUGFyc2VyU2Vzc2lvbihEb2N1
bWVudCopOworICAgIH5BY3RpdmVQYXJzZXJTZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAgUmVm
UHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworfTsKKworY2xhc3MgUHVtcFNlc3Npb24gOiBwdWJs
aWMgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIsIHB1YmxpYyBBY3RpdmVQYXJzZXJTZXNzaW9uIHsK
K3B1YmxpYzoKKyAgICBQdW1wU2Vzc2lvbih1bnNpZ25lZCYgbmVzdGluZ0xldmVsLCBEb2N1bWVu
dCopOworICAgIH5QdW1wU2Vzc2lvbigpOwogCiAgICAgaW50IHByb2Nlc3NlZFRva2VuczsKICAg
ICBkb3VibGUgc3RhcnRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5j
cHAKaW5kZXggOWE5OGJiNzM1MmE4Mjc3MGU0OGIwYTRhMGQwNzdmODAxZWVmZjFhYy4uZmJjMWU4
YmM1NzFiOTg3MjEyNzljYmY2MWRmMmE1ZmRiZjMzYTJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00NzgsOSArNDc4LDggQEAgYm9vbCBEb2N1bWVudExv
YWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgaWYgKG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RDb3VudCgpKQog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChEb2N1bWVudFBhcnNlciogcGFy
c2VyID0gZG9jLT5wYXJzZXIoKSkKLSAgICAgICAgICAgIGlmIChwYXJzZXItPnByb2Nlc3NpbmdE
YXRhKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGlmIChkb2MtPmhh
c0FjdGl2ZVBhcnNlcigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmcmFtZUxvYWRlcigpLT5zdWJmcmFtZUlzTG9hZGluZygpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187198</attachid>
            <date>2013-02-07 16:44:25 -0800</date>
            <delta_ts>2013-02-08 22:55:32 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108984-20130207164103.patch</filename>
            <type>text/plain</type>
            <size>9282</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MjIwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAyLTA3ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0b28g
ZWFybHkgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIERvY3VtZW50TG9hZGVyIHdvdWxk
IGFsd2F5cyBiZSBvbiB0aGUgc3RhY2sgd2hlbiB0aGUKKyAgICAgICAgSFRNTERvY3VtZW50UGFy
c2VyIHdhcyBwcm9jZXNzaW5nIGRhdGEgZnJvbSB0aGUgbmV0d29yay4gIFRoZQorICAgICAgICBE
b2N1bWVudExvYWRlciB3b3VsZCB0aGVuIHRlbGwgaXNMb2FkaW5nSW5BUElTZW5zZSBub3QgdG8g
ZmlyZSB0aGUgbG9hZAorICAgICAgICBldmVudC4gIE5vdyB0aGF0IHdlIHByb2Nlc3MgZGF0YSBh
c3luY2hyb25vdXNseSB3aXRoIHRoZSB0aHJlYWRlZAorICAgICAgICBwYXJzZXIsIHRoZSBEb2N1
bWVudExvYWRlciBpcyBub3QgYWx3YXlzIG9uIHRoZSBzdGFjaywgd2hpY2ggbWVhbnMgd2UKKyAg
ICAgICAgbmVlZCB0byBkZWxheSB0aGUgbG9hZCBldmVudCB1c2luZyB0aGUgY2xhdXNlIHRoYXQg
YXNrcyB0aGUgcGFyc2VyCisgICAgICAgIHdoZXRoZXIgaXQgaXMgcHJvY2Vzc2luZyBkYXRhLgor
CisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgY2xhdXNlIGlzIGZyYWdpbGUgYmVjYXVzZSB3
ZSBjYW4gY2hlY2sgZm9yIGxvYWQKKyAgICAgICAgY29tcGxldGlvbiB3aGlsZSB3ZSdyZSBzd2l0
Y2hpbmcgcGFyc2VycyBiZXR3ZWVuIHRoZSBuZXR3b3JrLWNyZWF0ZWQKKyAgICAgICAgcGFyc2Vy
IGFuZCBhIHNjcmlwdC1jcmVhdGVkIHBhcnNlci4gVG8gYXZvaWQgYWNjaWRlbnRpYWxseSB0cmln
Z2VyaW4KKyAgICAgICAgdGhlIGxvYWQgZXZlbnQgZHVyaW5nIHRoZXNlICJnYXBzLCIgdGhpcyBw
YXRjaCBpbnRyb2R1Y2VzIGEgY291bnRlciBvbgorICAgICAgICBkb2N1bWVudCB0byByZWNvcmQg
aG93IG1hbnkgcGFyc2VycyBhcmUgYWN0aXZlIG9uIHRoZSBzdGFjay4gIFdoaWxlCisgICAgICAg
IHRoYXQgbnVtZXIgaXMgbm9uLXplcm8sIHdlJ2xsIGRlbGF5IHRoZSBsb2FkIGV2ZW50LiBXaGVu
IHRoYXQgbnVtYmVyCisgICAgICAgIHJlYWNoZXMgemVybywgd2UnbGwgY2hlY2sgZm9yIGxvYWQg
Y29tcGxldGUuCisKKyAgICAgICAgVGhhdCBsYXN0IHN0ZXAgaXMgcmVxdWlyZWQgYmVjYXVzZSB0
aGUgRG9jdW1lbnRMb2FkZXI6OmZpbmlzaExvYWRpbmcKKyAgICAgICAgbWV0aG9kIGlzIG5vIGxv
bmdlciBndWFydW50ZWVkIHRvIGNoZWNrIGZvciBsb2FkIGNvbXBsZXRlIGFmdGVyIGNhbGxpbmcK
KyAgICAgICAgZmluaXNoIG9uIHRoZSBwYXJzZXIgYmVjYXVzZSB0aGUgZmluaXNoIG9wZXJhdGlv
biBtaWdodCBjb21wbGV0ZQorICAgICAgICBhc3luY2hyb25vdXNseS4KKworICAgICAgICBBZnRl
ciB0aGlzIHBhdGNoLCB0aGUgdGhyZWFkZWQgcGFyc2VyIHBhc3NlcyBhbGwgYnV0IGZvdXIgZmFz
dC9wYXJzZXIKKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50OjpoYXNBY3RpdmVQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmluY3JlbWVudEFjdGl2ZVBhcnNlckNvdW50KToKKyAgICAgICAgKiBodG1s
L3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERv
Y3VtZW50UGFyc2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWN0aXZlUGFyc2VyU2Vzc2lvbjo6QWN0aXZlUGFyc2VyU2Vzc2lvbik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjdGl2ZVBhcnNlclNlc3Npb246On5BY3Rp
dmVQYXJzZXJTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlB1bXBTZXNzaW9uOjpQdW1wU2Vz
c2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQdW1wU2Vzc2lvbjo6flB1bXBTZXNzaW9uKToKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmg6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKEFjdGl2ZVBhcnNlclNlc3Npb24pOgorICAgICAgICAoUHVtcFNlc3Np
b24pOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSk6CisKIDIwMTMtMDItMDcg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVu
dCBGb2N1c0V2ZW50IGNvbnN0cnVjdG9yCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJl
dmlzaW9uIDE0MjIwNSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQxMSw2ICs0MTEsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBLCiAgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1fc3R5bGVSZXNv
bHZlclRocm93YXdheVRpbWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZXNvbHZlclRocm93YXdh
eVRpbWVyRmlyZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZSgwKQorICAg
ICwgbV9hY3RpdmVQYXJzZXJDb3VudCgwKQogICAgICwgbV9jb250ZXh0RmVhdHVyZXMoQ29udGV4
dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNoKCkpCiAgICAgLCBtX2NvbXBhdGliaWxpdHlNb2RlKE5v
UXVpcmtzTW9kZSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGVMb2NrZWQoZmFsc2UpCkBAIC01
NzcyLDYgKzU3NzMsMTkgQEAgdm9pZCBEb2N1bWVudDo6YWRqdXN0RmxvYXRSZWN0Rm9yU2Nyb2xs
QQogICAgICAgICByZWN0LnNjYWxlKGludmVyc2VGcmFtZVNjYWxlKTsKIH0KIAorYm9vbCBEb2N1
bWVudDo6aGFzQWN0aXZlUGFyc2VyKCkKK3sKKyAgICByZXR1cm4gbV9hY3RpdmVQYXJzZXJDb3Vu
dCB8fCAobV9wYXJzZXIgJiYgbV9wYXJzZXItPnByb2Nlc3NpbmdEYXRhKCkpOworfQorCit2b2lk
IERvY3VtZW50OjpkZWNyZW1lbnRBY3RpdmVQYXJzZXJDb3VudCgpCit7CisgICAgLS1tX2FjdGl2
ZVBhcnNlckNvdW50OworICAgIGlmICghZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZy
YW1lKCktPmxvYWRlcigpLT5jaGVja0xvYWRDb21wbGV0ZSgpOworfQorCiB2b2lkIERvY3VtZW50
OjpzZXRDb250ZXh0RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+IGZlYXR1cmVz
KQogewogICAgIG1fY29udGV4dEZlYXR1cmVzID0gZmVhdHVyZXM7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAkocmV2aXNpb24gMTQyMjA1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNjgsNiArMTE2OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBhZGp1c3RGbG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShW
ZWN0b3I8RmxvYXRRdWFkPiYsIFJlbmRlck9iamVjdCopOwogICAgIHZvaWQgYWRqdXN0RmxvYXRS
ZWN0Rm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShGbG9hdFJlY3QmLCBSZW5k
ZXJPYmplY3QqKTsKIAorICAgIGJvb2wgaGFzQWN0aXZlUGFyc2VyKCk7CisgICAgdm9pZCBpbmNy
ZW1lbnRBY3RpdmVQYXJzZXJDb3VudCgpIHsgKyttX2FjdGl2ZVBhcnNlckNvdW50OyB9CisgICAg
dm9pZCBkZWNyZW1lbnRBY3RpdmVQYXJzZXJDb3VudCgpOworCiAgICAgdm9pZCBzZXRDb250ZXh0
RmVhdHVyZXMoUGFzc1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+KTsKICAgICBDb250ZXh0RmVhdHVy
ZXMqIGNvbnRleHRGZWF0dXJlcygpIHsgcmV0dXJuIG1fY29udGV4dEZlYXR1cmVzLmdldCgpOyB9
CiAKQEAgLTEzMDcsNiArMTMxMSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8Q2FjaGVkUmVz
b3VyY2VMb2FkZXI+IG1fY2FjaGVkUmVzb3VyY2VMb2FkZXI7CiAgICAgUmVmUHRyPERvY3VtZW50
UGFyc2VyPiBtX3BhcnNlcjsKKyAgICB1bnNpZ25lZCBtX2FjdGl2ZVBhcnNlckNvdW50OwogICAg
IFJlZlB0cjxDb250ZXh0RmVhdHVyZXM+IG1fY29udGV4dEZlYXR1cmVzOwogCiAgICAgYm9vbCBt
X3dlbGxGb3JtZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5jcHAJKHJldmlzaW9uIDE0MjIwNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMx
NCw2ICszMTQsOCBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc1BhcnNlZENoCiAg
ICAgLy8gYnV0IHdlIG5lZWQgdG8gZW5zdXJlIGl0IGlzbid0IGRlbGV0ZWQgeWV0LgogICAgIFJl
ZlB0cjxIVE1MRG9jdW1lbnRQYXJzZXI+IHByb3RlY3QodGhpcyk7CiAKKyAgICBBY3RpdmVQYXJz
ZXJTZXNzaW9uIHNlc3Npb24oZG9jdW1lbnQoKSk7CisKICAgICBtX2N1cnJlbnRDaHVuayA9IGNo
dW5rOwogICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tlbnMgPSBtX2N1cnJl
bnRDaHVuay0+dG9rZW5zLnJlbGVhc2UoKTsKIApAQCAtMzY1LDcgKzM2Nyw3IEBAIHZvaWQgSFRN
TERvY3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKFMKIAogICAgIEFTU0VSVCghc2hvdWxkVXNl
VGhyZWFkaW5nKCkgfHwgbW9kZSA9PSBGb3JjZVN5bmNocm9ub3VzKTsKIAotICAgIFB1bXBTZXNz
aW9uIHNlc3Npb24obV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCk7CisgICAgUHVtcFNlc3Npb24g
c2Vzc2lvbihtX3B1bXBTZXNzaW9uTmVzdGluZ0xldmVsLCBkb2N1bWVudCgpKTsKIAogICAgIC8v
IFdlIHRlbGwgdGhlIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiBhYm91dCBldmVyeSBwdW1wLCBl
dmVuIGlmIHdlCiAgICAgLy8gZW5kIHVwIHB1bXBpbmcgbm90aGluZy4gIEl0IGNhbiBmaWx0ZXIg
b3V0IGVtcHR5IHB1bXBzIGl0c2VsZi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAxNDIyMDUpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjEsNiArNjEsMzQgQEAgc3RhdGljIGludCBwYXJzZXJDaHVua1NpemUoUGFn
ZSogcGFnZSkKICAgICByZXR1cm4gZGVmYXVsdFBhcnNlckNodW5rU2l6ZTsKIH0KIAorQWN0aXZl
UGFyc2VyU2Vzc2lvbjo6QWN0aXZlUGFyc2VyU2Vzc2lvbihEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQoreworICAgIG1fZG9jdW1lbnQtPmluY3JlbWVudEFj
dGl2ZVBhcnNlckNvdW50KCk7Cit9CisKK0FjdGl2ZVBhcnNlclNlc3Npb246On5BY3RpdmVQYXJz
ZXJTZXNzaW9uKCkKK3sKKyAgICBtX2RvY3VtZW50LT5kZWNyZW1lbnRBY3RpdmVQYXJzZXJDb3Vu
dCgpOworfQorCitQdW1wU2Vzc2lvbjo6UHVtcFNlc3Npb24odW5zaWduZWQmIG5lc3RpbmdMZXZl
bCwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIobmVz
dGluZ0xldmVsKQorICAgICwgQWN0aXZlUGFyc2VyU2Vzc2lvbihkb2N1bWVudCkKKyAgICAvLyBT
ZXR0aW5nIHByb2Nlc3NlZFRva2VucyB0byBJTlRfTUFYIGNhdXNlcyB1cyB0byBjaGVjayBmb3Ig
eWllbGRzCisgICAgLy8gYWZ0ZXIgYW55IHRva2VuIGR1cmluZyBhbnkgcGFyc2Ugd2hlcmUgeWll
bGRpbmcgaXMgYWxsb3dlZC4KKyAgICAvLyBBdCB0aGF0IHRpbWUgd2UnbGwgaW5pdGlhbGl6ZSBz
dGFydFRpbWUuCisgICAgLCBwcm9jZXNzZWRUb2tlbnMoSU5UX01BWCkKKyAgICAsIHN0YXJ0VGlt
ZSgwKQorICAgICwgbmVlZHNZaWVsZChmYWxzZSkKKyAgICAsIGRpZFNlZVNjcmlwdChmYWxzZSkK
K3sKK30KKworUHVtcFNlc3Npb246On5QdW1wU2Vzc2lvbigpCit7Cit9CisKIEhUTUxQYXJzZXJT
Y2hlZHVsZXI6OkhUTUxQYXJzZXJTY2hlZHVsZXIoSFRNTERvY3VtZW50UGFyc2VyKiBwYXJzZXIp
CiAgICAgOiBtX3BhcnNlcihwYXJzZXIpCiAgICAgLCBtX3BhcnNlclRpbWVMaW1pdChwYXJzZXJU
aW1lTGltaXQobV9wYXJzZXItPmRvY3VtZW50KCktPnBhZ2UoKSkpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oCShyZXZpc2lvbiAx
NDIyMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDMwICsyNiwzMSBAQAogI2lmbmRlZiBIVE1MUGFyc2Vy
U2NoZWR1bGVyX2gKICNkZWZpbmUgSFRNTFBhcnNlclNjaGVkdWxlcl9oCiAKLSNpbmNsdWRlIDxs
aW1pdHMuaD4KLQogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEhUTUxE
b2N1bWVudFBhcnNlcjsKIAotY2xhc3MgUHVtcFNlc3Npb24gOiBwdWJsaWMgTmVzdGluZ0xldmVs
SW5jcmVtZW50ZXIgeworY2xhc3MgQWN0aXZlUGFyc2VyU2Vzc2lvbiB7CiBwdWJsaWM6Ci0gICAg
UHVtcFNlc3Npb24odW5zaWduZWQmIG5lc3RpbmdMZXZlbCkKLSAgICAgICAgOiBOZXN0aW5nTGV2
ZWxJbmNyZW1lbnRlcihuZXN0aW5nTGV2ZWwpCi0gICAgICAgIC8vIFNldHRpbmcgcHJvY2Vzc2Vk
VG9rZW5zIHRvIElOVF9NQVggY2F1c2VzIHVzIHRvIGNoZWNrIGZvciB5aWVsZHMKLSAgICAgICAg
Ly8gYWZ0ZXIgYW55IHRva2VuIGR1cmluZyBhbnkgcGFyc2Ugd2hlcmUgeWllbGRpbmcgaXMgYWxs
b3dlZC4KLSAgICAgICAgLy8gQXQgdGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxpemUgc3RhcnRUaW1l
LgotICAgICAgICAsIHByb2Nlc3NlZFRva2VucyhJTlRfTUFYKQotICAgICAgICAsIHN0YXJ0VGlt
ZSgwKQotICAgICAgICAsIG5lZWRzWWllbGQoZmFsc2UpCi0gICAgICAgICwgZGlkU2VlU2NyaXB0
KGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgZXhwbGljaXQgQWN0aXZlUGFyc2VyU2Vzc2lvbihE
b2N1bWVudCopOworICAgIH5BY3RpdmVQYXJzZXJTZXNzaW9uKCk7CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworfTsKKworY2xhc3MgUHVtcFNlc3Npb24gOiBw
dWJsaWMgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIsIHB1YmxpYyBBY3RpdmVQYXJzZXJTZXNzaW9u
IHsKK3B1YmxpYzoKKyAgICBQdW1wU2Vzc2lvbih1bnNpZ25lZCYgbmVzdGluZ0xldmVsLCBEb2N1
bWVudCopOworICAgIH5QdW1wU2Vzc2lvbigpOwogCiAgICAgaW50IHByb2Nlc3NlZFRva2VuczsK
ICAgICBkb3VibGUgc3RhcnRUaW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1l
bnRMb2FkZXIuY3BwCShyZXZpc2lvbiAxNDIyMDUpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzgsOSArNDc4LDggQEAgYm9v
bCBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGlmIChtX2NhY2hlZFJlc291cmNlTG9hZGVyLT5yZXF1ZXN0Q291bnQo
KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoRG9jdW1lbnRQYXJzZXIq
IHBhcnNlciA9IGRvYy0+cGFyc2VyKCkpCi0gICAgICAgICAgICBpZiAocGFyc2VyLT5wcm9jZXNz
aW5nRGF0YSgpKQotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZG9j
LT5oYXNBY3RpdmVQYXJzZXIoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAg
ICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+c3ViZnJhbWVJc0xvYWRpbmcoKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187418</attachid>
            <date>2013-02-08 22:55:35 -0800</date>
            <delta_ts>2013-02-09 11:35:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108984-20130208225209.patch</filename>
            <type>text/plain</type>
            <size>11003</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4MWYyM2I0ODNlZWZk
ODM0MDFmNTdlMGYwODFjYzdkMzI4Y2ZiMi4uMzMxZWIzMGM5MmFlMzM5NGI2ZDAzMjY1Y2U0ZWJi
NWVmN2RhMjdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAyLTA4ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTG9hZCBldmVudCBmaXJlcyB0
b28gZWFybHkgd2l0aCB0aHJlYWRlZCBIVE1MIHBhcnNlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4OTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCisKKyAgICAgICAgUHJldmlvdXNseSwgdGhlIERvY3VtZW50TG9hZGVyIHdv
dWxkIGFsd2F5cyBiZSBvbiB0aGUgc3RhY2sgd2hlbiB0aGUKKyAgICAgICAgSFRNTERvY3VtZW50
UGFyc2VyIHdhcyBwcm9jZXNzaW5nIGRhdGEgZnJvbSB0aGUgbmV0d29yay4gIFRoZQorICAgICAg
ICBEb2N1bWVudExvYWRlciB3b3VsZCB0aGVuIHRlbGwgaXNMb2FkaW5nSW5BUElTZW5zZSBub3Qg
dG8gZmlyZSB0aGUgbG9hZAorICAgICAgICBldmVudC4gIE5vdyB0aGF0IHdlIHByb2Nlc3MgZGF0
YSBhc3luY2hyb25vdXNseSB3aXRoIHRoZSB0aHJlYWRlZAorICAgICAgICBwYXJzZXIsIHRoZSBE
b2N1bWVudExvYWRlciBpcyBub3QgYWx3YXlzIG9uIHRoZSBzdGFjaywgd2hpY2ggbWVhbnMgd2UK
KyAgICAgICAgbmVlZCB0byBkZWxheSB0aGUgbG9hZCBldmVudCB1c2luZyB0aGUgY2xhdXNlIHRo
YXQgYXNrcyB0aGUgcGFyc2VyCisgICAgICAgIHdoZXRoZXIgaXQgaXMgcHJvY2Vzc2luZyBkYXRh
LgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIHRoYXQgY2xhdXNlIGlzIGZyYWdpbGUgYmVjYXVz
ZSB3ZSBjYW4gY2hlY2sgZm9yIGxvYWQKKyAgICAgICAgY29tcGxldGlvbiB3aGlsZSB3ZSdyZSBz
d2l0Y2hpbmcgcGFyc2VycyBiZXR3ZWVuIHRoZSBuZXR3b3JrLWNyZWF0ZWQKKyAgICAgICAgcGFy
c2VyIGFuZCBhIHNjcmlwdC1jcmVhdGVkIHBhcnNlci4gVG8gYXZvaWQgYWNjaWRlbnRpYWxseSB0
cmlnZ2VyaW4KKyAgICAgICAgdGhlIGxvYWQgZXZlbnQgZHVyaW5nIHRoZXNlICJnYXBzLCIgdGhp
cyBwYXRjaCBpbnRyb2R1Y2VzIGEgY291bnRlciBvbgorICAgICAgICBkb2N1bWVudCB0byByZWNv
cmQgaG93IG1hbnkgcGFyc2VycyBhcmUgYWN0aXZlIG9uIHRoZSBzdGFjay4gIFdoaWxlCisgICAg
ICAgIHRoYXQgbnVtZXIgaXMgbm9uLXplcm8sIHdlJ2xsIGRlbGF5IHRoZSBsb2FkIGV2ZW50LiBX
aGVuIHRoYXQgbnVtYmVyCisgICAgICAgIHJlYWNoZXMgemVybywgd2UnbGwgY2hlY2sgZm9yIGxv
YWQgY29tcGxldGUuCisKKyAgICAgICAgVGhhdCBsYXN0IHN0ZXAgaXMgcmVxdWlyZWQgYmVjYXVz
ZSB0aGUgRG9jdW1lbnRMb2FkZXI6OmZpbmlzaExvYWRpbmcKKyAgICAgICAgbWV0aG9kIGlzIG5v
IGxvbmdlciBndWFydW50ZWVkIHRvIGNoZWNrIGZvciBsb2FkIGNvbXBsZXRlIGFmdGVyIGNhbGxp
bmcKKyAgICAgICAgZmluaXNoIG9uIHRoZSBwYXJzZXIgYmVjYXVzZSB0aGUgZmluaXNoIG9wZXJh
dGlvbiBtaWdodCBjb21wbGV0ZQorICAgICAgICBhc3luY2hyb25vdXNseS4KKworICAgICAgICBB
ZnRlciB0aGlzIHBhdGNoLCB0aGUgdGhyZWFkZWQgcGFyc2VyIHBhc3NlcyBhbGwgYnV0IGZvdXIg
ZmFzdC9wYXJzZXIKKyAgICAgICAgdGVzdHMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpoYXNBY3RpdmVQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmluY3JlbWVudEFjdGl2ZVBhcnNlckNvdW50KToKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50UGFyc2VyOjpwcm9jZXNzUGFyc2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcik6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tlbml6ZXIpOgor
ICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QWN0aXZlUGFyc2VyU2Vzc2lvbjo6QWN0aXZlUGFyc2VyU2Vzc2lvbik6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjdGl2ZVBhcnNlclNlc3Npb246On5B
Y3RpdmVQYXJzZXJTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlB1bXBTZXNzaW9uOjpQdW1w
U2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpQdW1wU2Vzc2lvbjo6flB1bXBTZXNzaW9uKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKEFjdGl2ZVBhcnNlclNlc3Npb24pOgorICAgICAgICAoUHVtcFNl
c3Npb24pOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSk6CisKIDIwMTMtMDIt
MDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92
ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGJmNTQ2YzMwMDFiYjRiOGMyYjc4ZDE3MjdiM2Fh
Zjg1MDQ3MTg5NzkuLjRkNjI5NjNjYTExZTUwOThmMGUxZjc3NzcyZjFhZDg5MWM1ODhkMzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDEyLDYgKzQxMiw3IEBAIERvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlz
SFRNTCkKICAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogICAgICwgbV9zdHlsZVJlc29sdmVyVGhy
b3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50OjpzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJG
aXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lKDApCisgICAgLCBtX2Fj
dGl2ZVBhcnNlckNvdW50KDApCiAgICAgLCBtX2NvbnRleHRGZWF0dXJlcyhDb250ZXh0RmVhdHVy
ZXM6OmRlZmF1bHRTd2l0Y2goKSkKICAgICAsIG1fY29tcGF0aWJpbGl0eU1vZGUoTm9RdWlya3NN
b2RlKQogICAgICwgbV9jb21wYXRpYmlsaXR5TW9kZUxvY2tlZChmYWxzZSkKQEAgLTU3NjgsNiAr
NTc2OSwxOSBAQCB2b2lkIERvY3VtZW50OjphZGp1c3RGbG9hdFJlY3RGb3JTY3JvbGxBbmRBYnNv
bHV0ZVpvb21BbmRGcmFtZVNjYWxlKEZsb2F0UmVjdCYgcgogICAgICAgICByZWN0LnNjYWxlKGlu
dmVyc2VGcmFtZVNjYWxlKTsKIH0KIAorYm9vbCBEb2N1bWVudDo6aGFzQWN0aXZlUGFyc2VyKCkK
K3sKKyAgICByZXR1cm4gbV9hY3RpdmVQYXJzZXJDb3VudCB8fCAobV9wYXJzZXIgJiYgbV9wYXJz
ZXItPnByb2Nlc3NpbmdEYXRhKCkpOworfQorCit2b2lkIERvY3VtZW50OjpkZWNyZW1lbnRBY3Rp
dmVQYXJzZXJDb3VudCgpCit7CisgICAgLS1tX2FjdGl2ZVBhcnNlckNvdW50OworICAgIGlmICgh
ZnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZyYW1lKCktPmxvYWRlcigpLT5jaGVja0xv
YWRDb21wbGV0ZSgpOworfQorCiB2b2lkIERvY3VtZW50OjpzZXRDb250ZXh0RmVhdHVyZXMoUGFz
c1JlZlB0cjxDb250ZXh0RmVhdHVyZXM+IGZlYXR1cmVzKQogewogICAgIG1fY29udGV4dEZlYXR1
cmVzID0gZmVhdHVyZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDdiZDlmMTkwYzQ3NWE1NzMy
ZTMzMjM1MzFlN2ViNTc0NDE2MmIxNmMuLjcyYzgzOTkzYmUwN2ZmOGMyNzYyMDI5OWFhMjE2NDk2
Y2Y3ZjU5ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTY4LDYgKzExNjgsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRqdXN0RmxvYXRRdWFkc0ZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFu
ZEZyYW1lU2NhbGUoVmVjdG9yPEZsb2F0UXVhZD4mLCBSZW5kZXJPYmplY3QqKTsKICAgICB2b2lk
IGFkanVzdEZsb2F0UmVjdEZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFuZEZyYW1lU2NhbGUoRmxv
YXRSZWN0JiwgUmVuZGVyT2JqZWN0Kik7CiAKKyAgICBib29sIGhhc0FjdGl2ZVBhcnNlcigpOwor
ICAgIHZvaWQgaW5jcmVtZW50QWN0aXZlUGFyc2VyQ291bnQoKSB7ICsrbV9hY3RpdmVQYXJzZXJD
b3VudDsgfQorICAgIHZvaWQgZGVjcmVtZW50QWN0aXZlUGFyc2VyQ291bnQoKTsKKwogICAgIHZv
aWQgc2V0Q29udGV4dEZlYXR1cmVzKFBhc3NSZWZQdHI8Q29udGV4dEZlYXR1cmVzPik7CiAgICAg
Q29udGV4dEZlYXR1cmVzKiBjb250ZXh0RmVhdHVyZXMoKSB7IHJldHVybiBtX2NvbnRleHRGZWF0
dXJlcy5nZXQoKTsgfQogCkBAIC0xMzA3LDYgKzEzMTEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVm
UHRyPENhY2hlZFJlc291cmNlTG9hZGVyPiBtX2NhY2hlZFJlc291cmNlTG9hZGVyOwogICAgIFJl
ZlB0cjxEb2N1bWVudFBhcnNlcj4gbV9wYXJzZXI7CisgICAgdW5zaWduZWQgbV9hY3RpdmVQYXJz
ZXJDb3VudDsKICAgICBSZWZQdHI8Q29udGV4dEZlYXR1cmVzPiBtX2NvbnRleHRGZWF0dXJlczsK
IAogICAgIGJvb2wgbV93ZWxsRm9ybWVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKaW5kZXggMmIwY2FmMTJiZDU4MzcwZjE0YjZiOTZk
M2MyYzA2ZjFjMTI5ZjNjZi4uYTA1ZTQ1MWUxYTBhNGM2MjYyYjUzMmI0OTExMmMyYjFjYWRjZDFm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJz
ZXIuY3BwCkBAIC0zMTMsNiArMzEzLDggQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnByb2Nl
c3NQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFyc2VyKFBhc3NPd25QdHI8UGFyc2UKICAgICAv
LyBidXQgd2UgbmVlZCB0byBlbnN1cmUgaXQgaXNuJ3QgZGVsZXRlZCB5ZXQuCiAgICAgUmVmUHRy
PEhUTUxEb2N1bWVudFBhcnNlcj4gcHJvdGVjdCh0aGlzKTsKIAorICAgIEFjdGl2ZVBhcnNlclNl
c3Npb24gc2Vzc2lvbihjb250ZXh0Rm9yUGFyc2luZ1Nlc3Npb24oKSk7CisKICAgICBtX2N1cnJl
bnRDaHVuayA9IGNodW5rOwogICAgIE93blB0cjxDb21wYWN0SFRNTFRva2VuU3RyZWFtPiB0b2tl
bnMgPSBtX2N1cnJlbnRDaHVuay0+dG9rZW5zLnJlbGVhc2UoKTsKIApAQCAtMzU1LDYgKzM1Nywx
NSBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNlcjo6cHJvY2Vzc1BhcnNlZENodW5rRnJvbUJhY2tn
cm91bmRQYXJzZXIoUGFzc093blB0cjxQYXJzZQogCiAjZW5kaWYgLy8gRU5BQkxFKFRIUkVBREVE
X0hUTUxfUEFSU0VSKQogCitEb2N1bWVudCogSFRNTERvY3VtZW50UGFyc2VyOjpjb250ZXh0Rm9y
UGFyc2luZ1Nlc3Npb24oKQoreworICAgIC8vIFRoZSBwYXJzaW5nIHNlc3Npb24gc2hvdWxkIGlu
dGVyYWN0IHdpdGggdGhlIGRvY3VtZW50IG9ubHkgd2hlbiBwYXJzaW5nCisgICAgLy8gbm9uLWZy
YWdtZW50cy4gT3RoZXJ3aXNlLCB3ZSBtaWdodCBkZWxheSB0aGUgbG9hZCBldmVudCBtaXN0YWtl
bmx5LgorICAgIGlmIChpc1BhcnNpbmdGcmFnbWVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gZG9jdW1lbnQoKTsKK30KKwogdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBU
b2tlbml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKCFpc1N0b3BwZWQo
KSk7CkBAIC0zNjQsNyArMzc1LDcgQEAgdm9pZCBIVE1MRG9jdW1lbnRQYXJzZXI6OnB1bXBUb2tl
bml6ZXIoU3luY2hyb25vdXNNb2RlIG1vZGUpCiAKICAgICBBU1NFUlQoIXNob3VsZFVzZVRocmVh
ZGluZygpIHx8IG1vZGUgPT0gRm9yY2VTeW5jaHJvbm91cyk7CiAKLSAgICBQdW1wU2Vzc2lvbiBz
ZXNzaW9uKG1fcHVtcFNlc3Npb25OZXN0aW5nTGV2ZWwpOworICAgIFB1bXBTZXNzaW9uIHNlc3Np
b24obV9wdW1wU2Vzc2lvbk5lc3RpbmdMZXZlbCwgY29udGV4dEZvclBhcnNpbmdTZXNzaW9uKCkp
OwogCiAgICAgLy8gV2UgdGVsbCB0aGUgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uIGFib3V0IGV2
ZXJ5IHB1bXAsIGV2ZW4gaWYgd2UKICAgICAvLyBlbmQgdXAgcHVtcGluZyBub3RoaW5nLiAgSXQg
Y2FuIGZpbHRlciBvdXQgZW1wdHkgcHVtcHMgaXRzZWxmLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCA3YzQyNzg1MjVkZTkyYzA1OTEy
YmE0MmM0NDhiNzM1MGY2YTBmODc5Li4wODRhMGYwOWRlYTk2MzM3YTNlYjk1YjY2OWVlNDg5NGUw
YjhlYmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1l
bnRQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQ
YXJzZXIuaApAQCAtMTM1LDYgKzEzNSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcm9jZXNzUGFy
c2VkQ2h1bmtGcm9tQmFja2dyb3VuZFBhcnNlcihQYXNzT3duUHRyPFBhcnNlZENodW5rPik7CiAj
ZW5kaWYKIAorICAgIERvY3VtZW50KiBjb250ZXh0Rm9yUGFyc2luZ1Nlc3Npb24oKTsKKwogICAg
IGVudW0gU3luY2hyb25vdXNNb2RlIHsKICAgICAgICAgQWxsb3dZaWVsZCwKICAgICAgICAgRm9y
Y2VTeW5jaHJvbm91cywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxQYXJzZXJTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBh
cnNlclNjaGVkdWxlci5jcHAKaW5kZXggYTlkZDI0YWY2Y2QzOGQ2MDUxNDc5ZDEwNWE1ZmQ3OWRl
ZGYwOWY3NC4uOWVjYWNjMWE1NDQ2ZDVmN2MzM2Q4YWUxZmJkYWI4NjBhYzQ1MzQ0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5jcHAK
QEAgLTYxLDYgKzYxLDM4IEBAIHN0YXRpYyBpbnQgcGFyc2VyQ2h1bmtTaXplKFBhZ2UqIHBhZ2Up
CiAgICAgcmV0dXJuIGRlZmF1bHRQYXJzZXJDaHVua1NpemU7CiB9CiAKK0FjdGl2ZVBhcnNlclNl
c3Npb246OkFjdGl2ZVBhcnNlclNlc3Npb24oRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogbV9k
b2N1bWVudChkb2N1bWVudCkKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQpCisgICAgICAgIHJldHVy
bjsKKyAgICBtX2RvY3VtZW50LT5pbmNyZW1lbnRBY3RpdmVQYXJzZXJDb3VudCgpOworfQorCitB
Y3RpdmVQYXJzZXJTZXNzaW9uOjp+QWN0aXZlUGFyc2VyU2Vzc2lvbigpCit7CisgICAgaWYgKCFt
X2RvY3VtZW50KQorICAgICAgICByZXR1cm47CisgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50QWN0
aXZlUGFyc2VyQ291bnQoKTsKK30KKworUHVtcFNlc3Npb246OlB1bXBTZXNzaW9uKHVuc2lnbmVk
JiBuZXN0aW5nTGV2ZWwsIERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyKG5lc3RpbmdMZXZlbCkKKyAgICAsIEFjdGl2ZVBhcnNlclNlc3Npb24oZG9jdW1l
bnQpCisgICAgLy8gU2V0dGluZyBwcm9jZXNzZWRUb2tlbnMgdG8gSU5UX01BWCBjYXVzZXMgdXMg
dG8gY2hlY2sgZm9yIHlpZWxkcworICAgIC8vIGFmdGVyIGFueSB0b2tlbiBkdXJpbmcgYW55IHBh
cnNlIHdoZXJlIHlpZWxkaW5nIGlzIGFsbG93ZWQuCisgICAgLy8gQXQgdGhhdCB0aW1lIHdlJ2xs
IGluaXRpYWxpemUgc3RhcnRUaW1lLgorICAgICwgcHJvY2Vzc2VkVG9rZW5zKElOVF9NQVgpCisg
ICAgLCBzdGFydFRpbWUoMCkKKyAgICAsIG5lZWRzWWllbGQoZmFsc2UpCisgICAgLCBkaWRTZWVT
Y3JpcHQoZmFsc2UpCit7Cit9CisKK1B1bXBTZXNzaW9uOjp+UHVtcFNlc3Npb24oKQoreworfQor
CiBIVE1MUGFyc2VyU2NoZWR1bGVyOjpIVE1MUGFyc2VyU2NoZWR1bGVyKEhUTUxEb2N1bWVudFBh
cnNlciogcGFyc2VyKQogICAgIDogbV9wYXJzZXIocGFyc2VyKQogICAgICwgbV9wYXJzZXJUaW1l
TGltaXQocGFyc2VyVGltZUxpbWl0KG1fcGFyc2VyLT5kb2N1bWVudCgpLT5wYWdlKCkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlclNjaGVkdWxlci5oCmluZGV4
IGU1MmYzZWYzYzgwNGNmNzgxOTUyNjlkZTNjYjk3OTQ5YjM1ZDkxMTMuLjkxMTJjNTg0MTAwNWJm
ODJhMmRhMjJkODJiM2M2ZDNmM2M4M2UwZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL0hUTUxQYXJzZXJTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MUGFyc2VyU2NoZWR1bGVyLmgKQEAgLTI2LDMwICsyNiwzMSBAQAogI2lmbmRl
ZiBIVE1MUGFyc2VyU2NoZWR1bGVyX2gKICNkZWZpbmUgSFRNTFBhcnNlclNjaGVkdWxlcl9oCiAK
LSNpbmNsdWRlIDxsaW1pdHMuaD4KLQogI2luY2x1ZGUgIk5lc3RpbmdMZXZlbEluY3JlbWVudGVy
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KICNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEhUTUxEb2N1bWVudFBhcnNlcjsKIAotY2xhc3MgUHVtcFNlc3Npb24gOiBwdWJsaWMg
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIgeworY2xhc3MgQWN0aXZlUGFyc2VyU2Vzc2lvbiB7CiBw
dWJsaWM6Ci0gICAgUHVtcFNlc3Npb24odW5zaWduZWQmIG5lc3RpbmdMZXZlbCkKLSAgICAgICAg
OiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlcihuZXN0aW5nTGV2ZWwpCi0gICAgICAgIC8vIFNldHRp
bmcgcHJvY2Vzc2VkVG9rZW5zIHRvIElOVF9NQVggY2F1c2VzIHVzIHRvIGNoZWNrIGZvciB5aWVs
ZHMKLSAgICAgICAgLy8gYWZ0ZXIgYW55IHRva2VuIGR1cmluZyBhbnkgcGFyc2Ugd2hlcmUgeWll
bGRpbmcgaXMgYWxsb3dlZC4KLSAgICAgICAgLy8gQXQgdGhhdCB0aW1lIHdlJ2xsIGluaXRpYWxp
emUgc3RhcnRUaW1lLgotICAgICAgICAsIHByb2Nlc3NlZFRva2VucyhJTlRfTUFYKQotICAgICAg
ICAsIHN0YXJ0VGltZSgwKQotICAgICAgICAsIG5lZWRzWWllbGQoZmFsc2UpCi0gICAgICAgICwg
ZGlkU2VlU2NyaXB0KGZhbHNlKQotICAgIHsKLSAgICB9CisgICAgZXhwbGljaXQgQWN0aXZlUGFy
c2VyU2Vzc2lvbihEb2N1bWVudCopOworICAgIH5BY3RpdmVQYXJzZXJTZXNzaW9uKCk7CisKK3By
aXZhdGU6CisgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworfTsKKworY2xhc3MgUHVt
cFNlc3Npb24gOiBwdWJsaWMgTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIsIHB1YmxpYyBBY3RpdmVQ
YXJzZXJTZXNzaW9uIHsKK3B1YmxpYzoKKyAgICBQdW1wU2Vzc2lvbih1bnNpZ25lZCYgbmVzdGlu
Z0xldmVsLCBEb2N1bWVudCopOworICAgIH5QdW1wU2Vzc2lvbigpOwogCiAgICAgaW50IHByb2Nl
c3NlZFRva2VuczsKICAgICBkb3VibGUgc3RhcnRUaW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKaW5kZXggOWE5OGJiNzM1MmE4Mjc3MGU0OGIwYTRhMGQwNzdmODAx
ZWVmZjFhYy4uZmJjMWU4YmM1NzFiOTg3MjEyNzljYmY2MWRmMmE1ZmRiZjMzYTJlYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC00NzgsOSArNDc4LDggQEAg
Ym9vbCBEb2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKG1fY2FjaGVkUmVzb3VyY2VMb2FkZXItPnJl
cXVlc3RDb3VudCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIGlmIChEb2N1
bWVudFBhcnNlciogcGFyc2VyID0gZG9jLT5wYXJzZXIoKSkKLSAgICAgICAgICAgIGlmIChwYXJz
ZXItPnByb2Nlc3NpbmdEYXRhKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIGlmIChkb2MtPmhhc0FjdGl2ZVBhcnNlcigpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5zdWJmcmFtZUlzTG9hZGluZygpOwog
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>