<?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>16950</bug_id>
          
          <creation_ts>2008-01-20 15:25:29 -0800</creation_ts>
          <short_desc>the base tag overwrites document.documentURI</short_desc>
          <delta_ts>2008-06-16 00:26:27 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://crypto.stanford.edu/~abarth/research/webkit/base/</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="Sam Weinig">sam</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>collinj</cc>
    
    <cc>darin</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67796</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-01-20 15:25:29 -0800</bug_when>
    <thetext>This is a follow up bug for bug 16775.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83325</commentid>
    <comment_count>1</comment_count>
      <attachid>21701</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-06-14 13:22:55 -0700</bug_when>
    <thetext>Created attachment 21701
Patch

This patch corrects the documentURI getter and drops support for setting documentURI (which we didn&apos;t implement correctly before anyway), aligning our behavior with Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83327</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-06-14 14:11:49 -0700</bug_when>
    <thetext>What is the correct behavior for setting document.documentURI?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83330</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-06-14 15:08:12 -0700</bug_when>
    <thetext>&gt; What is the correct behavior for setting document.documentURI?

I&apos;m not an expert in reading specs, but here is my interpretation:

http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-documentURI says:

&lt;blockquote&gt;
No lexical checking is performed when setting this attribute; this could result in a null value returned when using Node.baseURI.  Beware that when the Document supports the feature &quot;HTML&quot; [DOM Level 2 HTML], the href attribute of the HTML BASE element takes precedence over this attribute when computing Node.baseURI.
&lt;/blockquote&gt;

Which says to me that you can set documentURI to any string whatsoever.  Setting documentURI does have an effect on baseURI.  http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-baseURI says:

&lt;blockquote&gt;
The absolute base URI of this node or null if the implementation wasn&apos;t able to obtain an absolute URI. This value is computed as described in Base URIs. However, when the Document supports the feature &quot;HTML&quot; [DOM Level 2 HTML], the base URI is computed using first the value of the href attribute of the HTML BASE element if any, and the value of the documentURI attribute from the Document interface otherwise.
&lt;/blockquote&gt;

I think the correct behavior is this:

1) document.documentURI is initialized to m_url;
2) Script can set document.documentURI to any string whatsoever.

The rules for computing baseURI are as follows:

1) If the baseURL has been set explicitly via &lt;base href=&quot;...&quot;&gt;, return that URL.
2) Otherwise, parse documentURI as a URL.
  a) If the parse succeeds, return that URL.
  b) If the parse fails, return null.

I can implement this behavior, if you like, or I can implement something else if you have a different interpretation.  I don&apos;t know of any other browsers that support setting documentURI.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83344</commentid>
    <comment_count>4</comment_count>
      <attachid>21701</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-06-14 19:29:20 -0700</bug_when>
    <thetext>Comment on attachment 21701
Patch

Yeah, I think we should implement the specified behavior and not regress these tests.

r- for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83360</commentid>
    <comment_count>5</comment_count>
      <attachid>21708</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-06-15 03:11:15 -0700</bug_when>
    <thetext>Created attachment 21708
Step 1: Refactor Document::m_baseURL

This cleans up our handling of baseURLs to makes it easier to implement documentURI correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83361</commentid>
    <comment_count>6</comment_count>
      <attachid>21709</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-06-15 03:12:25 -0700</bug_when>
    <thetext>Created attachment 21709
Step 2: Implement documentURI

This patch implements both get and set for documentURI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83427</commentid>
    <comment_count>7</comment_count>
      <attachid>21721</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2008-06-15 23:15:39 -0700</bug_when>
    <thetext>Created attachment 21721
Step 2b: Fix tests</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21701</attachid>
            <date>2008-06-14 13:22:55 -0700</date>
            <delta_ts>2008-06-15 03:12:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>document-uri.patch</filename>
            <type>text/plain</type>
            <size>8485</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDMwYTY5Li4xZDJlYmE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDgtMDYt
MTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgZG9jdW1lbnRVUkkgaXMgdW5h
ZmZlY3RlZCBieSB0aGUgPGJhc2U+IHRhZy4gIFdlIG5vIGxvbmdlcgorICAgICAgICBzdXBwb3J0
IHNldHRpbmcgdGhpcyBwcm9wZXJ0eS4gIFJlLWJhc2VsaW5lZCB0ZXN0cyB0byBleHBlY3QgdGhh
dCB3ZQorICAgICAgICBkb24ndCBzdXBwb3J0IHNldHRpbmcgdGhlIHByb3BlcnR5LgorCisgICAg
ICAgICogZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMS1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3VtZW50c2V0ZG9j
dW1lbnR1cmkwMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3hodG1sL2xldmVsMy9jb3Jl
L2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZG9tL3ho
dG1sL2xldmVsMy9jb3JlL25vZGVnZXRiYXNldXJpMDItZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUtanMtbnVsbC5odG1sOgorICAgICAgICAq
IGZhc3QvZG9tL2RvY3VtZW50dXJpLXVuYWZmZWN0ZWQtYnktYmFzZS10YWctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS11bmFmZmVjdGVkLWJ5LWJh
c2UtdGFnLmh0bWw6IEFkZGVkLgorCiAyMDA4LTA2LTE0ICBDYW1lcm9uIFp3YXJpY2ggIDxjd3p3
YXJpY2hAdXdhdGVybG9vLmNhPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlci4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHNldGRvY3Vt
ZW50dXJpMDEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3Jl
L2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMS1leHBlY3RlZC50eHQKaW5kZXggNTA1MmJkNS4uNWY4
NzFlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9jb3JlL2RvY3Vt
ZW50c2V0ZG9jdW1lbnR1cmkwMS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZG9tL3ho
dG1sL2xldmVsMy9jb3JlL2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMS1leHBlY3RlZC50eHQKQEAg
LTEsMiArMSwzIEBACiBUZXN0CWh0dHA6Ly93d3cudzMub3JnLzIwMDEvRE9NLVRlc3QtU3VpdGUv
bGV2ZWwzL2NvcmUvZG9jdW1lbnRzZXRkb2N1bWVudHVyaTAxCi1TdGF0dXMJU3VjY2VzcworU3Rh
dHVzCWVycm9yCitNZXNzYWdlCUVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlv
biA5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1l
bnRzZXRkb2N1bWVudHVyaTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2RvbS94aHRtbC9s
ZXZlbDMvY29yZS9kb2N1bWVudHNldGRvY3VtZW50dXJpMDItZXhwZWN0ZWQudHh0CmluZGV4IGJj
ZTZjYTAuLmIzYTI3ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2RvbS94aHRtbC9sZXZlbDMv
Y29yZS9kb2N1bWVudHNldGRvY3VtZW50dXJpMDItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2RvbS94aHRtbC9sZXZlbDMvY29yZS9kb2N1bWVudHNldGRvY3VtZW50dXJpMDItZXhwZWN0
ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1U
ZXN0LVN1aXRlL2xldmVsMy9jb3JlL2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMgotU3RhdHVzCVN1
Y2Nlc3MKK1N0YXR1cwllcnJvcgorTWVzc2FnZQlFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERP
TSBFeGNlcHRpb24gOQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZG9tL3hodG1sL2xldmVsMy9j
b3JlL2RvY3VtZW50c2V0ZG9jdW1lbnR1cmkwMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9k
b20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRzZXRkb2N1bWVudHVyaTAzLWV4cGVjdGVkLnR4
dAppbmRleCA4ODUyNTlmLi5hZTVjYWI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0
bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRzZXRkb2N1bWVudHVyaTAzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2ZWwzL2NvcmUvZG9jdW1lbnRzZXRkb2N1bWVudHVy
aTAzLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDMgQEAKIFRlc3QJaHR0cDovL3d3dy53My5vcmcv
MjAwMS9ET00tVGVzdC1TdWl0ZS9sZXZlbDMvY29yZS9kb2N1bWVudHNldGRvY3VtZW50dXJpMDMK
LVN0YXR1cwlTdWNjZXNzCitTdGF0dXMJZXJyb3IKK01lc3NhZ2UJRXJyb3I6IE5PVF9TVVBQT1JU
RURfRVJSOiBET00gRXhjZXB0aW9uIDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2RvbS94aHRt
bC9sZXZlbDMvY29yZS9ub2RlZ2V0YmFzZXVyaTAyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2RvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0YmFzZXVyaTAyLWV4cGVjdGVkLnR4dAppbmRl
eCBhMWI1OWI3Li40ZWM0NjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9kb20veGh0bWwvbGV2
ZWwzL2NvcmUvbm9kZWdldGJhc2V1cmkwMi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
ZG9tL3hodG1sL2xldmVsMy9jb3JlL25vZGVnZXRiYXNldXJpMDItZXhwZWN0ZWQudHh0CkBAIC0x
LDIgKzEsMyBAQAogVGVzdAlodHRwOi8vd3d3LnczLm9yZy8yMDAxL0RPTS1UZXN0LVN1aXRlL2xl
dmVsMy9jb3JlL25vZGVnZXRiYXNldXJpMDIKLVN0YXR1cwlTdWNjZXNzCitTdGF0dXMJZXJyb3IK
K01lc3NhZ2UJRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1u
dWxsLWV4cGVjdGVkLnR4dAppbmRleCBmYTU5MzRiLi5lMDA0MGQ4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUtanMtbnVsbC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsNiBAQAogVGhpcyB0ZXN0IHNldHRpbmcgdmFyaW91cyBhdHRy
aWJ1dGVzIG9mIGRvY3VtZW50cyB0byBKYXZhU2NyaXB0IG51bGwuCiAKIFRFU1QgU1VDQ0VFREVE
OiBUaGUgdmFsdWUgd2FzIG51bGwuIFt0ZXN0ZWQgRG9jdW1lbnQueG1sVmVyc2lvbl0KLVRFU1Qg
U1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIG51bGwuIFt0ZXN0ZWQgRG9jdW1lbnQuZG9jdW1lbnRV
UkldCiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB1bmRlZmluZWQuIFt0ZXN0ZWQgRG9j
dW1lbnQuY2hhcnNldF0KIFRFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIG51bGwuIFt0ZXN0
ZWQgRG9jdW1lbnQuc2VsZWN0ZWRTdHlsZXNoZWV0U2V0XQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUtanMtbnVsbC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnQtYXR0cmlidXRlLWpzLW51bGwuaHRtbAppbmRleCA2MGQ5ZDgz
Li4zNWZlNDc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRy
aWJ1dGUtanMtbnVsbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWF0
dHJpYnV0ZS1qcy1udWxsLmh0bWwKQEAgLTU2LDcgKzU2LDYgQEAKICAgICAgICAgICAgICAgICAg
ICAgZG9jVG9Vc2U6IHhtbERvYywKICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogWwog
ICAgICAgICAgICAgICAgICAgICAgICAge25hbWU6ICd4bWxWZXJzaW9uJywgZXhwZWN0ZWROdWxs
OiBudWxsfSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHtuYW1lOiAnZG9jdW1lbnRVUkknLCBl
eHBlY3RlZE51bGw6IG51bGx9LAogICAgICAgICAgICAgICAgICAgICAgICAge25hbWU6ICdjaGFy
c2V0JywgZXhwZWN0ZWROdWxsOiB1bmRlZmluZWR9LAogICAgICAgICAgICAgICAgICAgICAgICAg
e25hbWU6ICdzZWxlY3RlZFN0eWxlc2hlZXRTZXQnLCBleHBlY3RlZE51bGw6IG51bGx9CiAgICAg
ICAgICAgICAgICAgICAgIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50dXJpLXVuYWZmZWN0ZWQtYnktYmFzZS10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9jdW1lbnR1cmktdW5hZmZlY3RlZC1ieS1iYXNlLXRhZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTBkMDE4OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLXVuYWZmZWN0ZWQtYnktYmFz
ZS10YWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVGhlIGRvY3VtZW50LmRvY3VtZW50
VVJJIHByb3BlcnR5IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhlIDxiYXNlPiB0YWcuCitm
aWxlOi8vL1VzZXJzL2FiYXJ0aC9naXQvd2Via2l0L0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50dXJpLXVuYWZmZWN0ZWQtYnktYmFzZS10YWcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnR1cmktdW5hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktdW5hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlhZGQ0MzMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS11bmFmZmVjdGVkLWJ5LWJh
c2UtdGFnLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEvL0VOIiAKKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
c3RyaWN0LmR0ZCIgPgorPGh0bWw+CisJPGhlYWQ+CisJCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRl
bnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKwkJPHRpdGxlPmRv
Y3VtZW50VVJJPC90aXRsZT4KKwkJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPGJhc2UgaHJlZj0iaHR0cDov
L2ZhaWwuZXhhbXBsZS5jb20vIj4KKwk8L2hlYWQ+CisJPGJvZHk+CisgIDxkaXY+VGhlIGRvY3Vt
ZW50LmRvY3VtZW50VVJJIHByb3BlcnR5IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhlICZs
dDtiYXNlJmd0OyB0YWcuPC9kaXY+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
KyAgZG9jdW1lbnQud3JpdGUoZG9jdW1lbnQuZG9jdW1lbnRVUkkpOworICA8L3NjcmlwdD4KKwk8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggMmM2Mzc4MC4uM2MwZTNjMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOC0w
Ni0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2OTUwPgorICAgICAgICAgIFRoZSBiYXNlIHRhZyBvdmVyd3Jp
dGVzIGRvY3VtZW50LmRvY3VtZW50VVJJCisKKyAgICAgICAgVGhlIGRvY3VtZW50LmRvY3VtZW50
VVJJIHByb3BlcnR5IHNob3VsZCByZXR1cm4gdGhlIFVSSSBvZiB0aGUKKyAgICAgICAgZG9jdW1l
bnQsIG5vdCB0aGUgYmFzZVVSSS4gIFdlIGRvbid0IHByb3Blcmx5IHN1cHBvcnQgc2V0dGluZyB0
aGlzCisgICAgICAgIHByb3BlcnR5LCBidXQgbmVpdGhlciBkbyBvdGhlciBicm93c2Vycy4gIFRo
aXMgY2hhbmdlIGNhdXNlcyB1cyB0bworICAgICAgICB0aHJvdyBhIE5PVF9TVVBQT1JURURfRVJS
IG9uIHNldHRpbmcsIG1hdGNoaW5nIEZpcmVmb3guCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
ZG9jdW1lbnR1cmktdW5hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1sCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRvY3VtZW50VVJJKToK
KyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaWRsOgor
CiAyMDA4LTA2LTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAt
IGZpeCBidWlsZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE5YTFiZDIuLmJmYWQwNTEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTg2NCwxNCArODY0LDE0IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFhNTFN0YW5kYWxvbmUoYm9vbCBz
dGFuZGFsb25lLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBtX3htbFN0YW5kYWxvbmUgPSBzdGFu
ZGFsb25lOwogfQogCi1LVVJMIERvY3VtZW50Ojpkb2N1bWVudFVSSSgpIGNvbnN0Citjb25zdCBL
VVJMJiBEb2N1bWVudDo6ZG9jdW1lbnRVUkkoKSBjb25zdAogewotICAgIHJldHVybiBtX2Jhc2VV
Ukw7CisgICAgcmV0dXJuIG1fdXJsOwogfQogCi12b2lkIERvY3VtZW50OjpzZXREb2N1bWVudFVS
SShjb25zdCBTdHJpbmcmIHVyaSkKK3ZvaWQgRG9jdW1lbnQ6OnNldERvY3VtZW50VVJJKGNvbnN0
IFN0cmluZyYgdXJpLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBtX2Jhc2VVUkwgPSBLVVJM
KHVyaSk7CisgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKIH0KIAogS1VSTCBEb2N1bWVudDo6
YmFzZVVSSSgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBiZmE3OGJlLi4xOGQ0MGE5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIz
OCw4ICsyMzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRYTUxWZXJzaW9uKGNvbnN0IFN0cmlu
ZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFhNTFN0YW5kYWxvbmUoYm9vbCwgRXhj
ZXB0aW9uQ29kZSYpOwogCi0gICAgS1VSTCBkb2N1bWVudFVSSSgpIGNvbnN0OwotICAgIHZvaWQg
c2V0RG9jdW1lbnRVUkkoY29uc3QgU3RyaW5nJik7CisgICAgY29uc3QgS1VSTCYgZG9jdW1lbnRV
UkkoKSBjb25zdDsKKyAgICB2b2lkIHNldERvY3VtZW50VVJJKGNvbnN0IFN0cmluZyYsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHZpcnR1YWwgS1VSTCBiYXNlVVJJKCkgY29uc3Q7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmlkbCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAppbmRleCA1YjAxOWYxLi41NGFlMWY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5pZGwKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCkBAIC03OCw3ICs3OCw4IEBAIG1v
ZHVsZSBjb3JlIHsKICAgICAgICAgTm9kZSAgICAgICAgICAgICAgIGFkb3B0Tm9kZShpbiBOb2Rl
IHNvdXJjZSkKICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyBkb2N1bWVudFVSSTsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgZG9jdW1lbnRVUkkKKyAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NPTSkKICAgICAgICAg
Ly8gRE9NIExldmVsIDIgRXZlbnRzIChEb2N1bWVudEV2ZW50cyBpbnRlcmZhY2UpCg==
</data>
<flag name="review"
          id="9526"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21708</attachid>
            <date>2008-06-15 03:11:15 -0700</date>
            <delta_ts>2008-06-15 10:18:22 -0700</delta_ts>
            <desc>Step 1: Refactor Document::m_baseURL</desc>
            <filename>refactor-base-url.patch</filename>
            <type>text/plain</type>
            <size>9854</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmM2Mzc4MC4uYjI1MWZiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOC0wNi0xNSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlZmFjdG9yIG91ciBoYW5kbGluZyBvZiBEb2N1bWVudDo6bV9iYXNlVVJM
IGluIHByZXBhcmF0aW9uIGZvcgorICAgICAgICBjb3JyZWN0aW5nIG91ciBpbXBsZW1lbnRhdGlv
biBvZiBEb2N1bWVudC5kb2N1bWVudFVSSS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZG9jdW1lbnRVUkkpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6Om9wZW4pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFVS
TCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0QmFzZUVsZW1lbnRVUkwpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUJhc2VVUkwpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OmVsZW1lbnRTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
bWFwcGVkRWxlbWVudFNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb21wbGV0
ZVVSTCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6dXJsKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpiYXNlVVJMKToKKyAgICAg
ICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQmFz
ZUVsZW1lbnQ6OnJlbW92ZWRGcm9tRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJh
c2VFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmJlZ2luKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpzd2l0Y2hPdXRMb3dCYW5kd2lkdGhEaXNwbGF5SWZSZWFkeSk6CisgICAg
ICAgICogeG1sL1hTTFRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNMVFByb2Nl
c3Nvcjo6Y3JlYXRlRG9jdW1lbnRGcm9tU291cmNlKToKKwogMjAwOC0wNi0xNCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgLSBmaXggYnVpbGQKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCAxOWExYmQyLi43ODkyZDZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NjYsMTEgKzg2NiwxMyBAQCB2b2lk
IERvY3VtZW50OjpzZXRYTUxTdGFuZGFsb25lKGJvb2wgc3RhbmRhbG9uZSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiAKIEtVUkwgRG9jdW1lbnQ6OmRvY3VtZW50VVJJKCkgY29uc3QKIHsKKyAgICAvLyBG
SVhNRTogVGhpcyBpcyB3cm9uZy4KICAgICByZXR1cm4gbV9iYXNlVVJMOwogfQogCiB2b2lkIERv
Y3VtZW50OjpzZXREb2N1bWVudFVSSShjb25zdCBTdHJpbmcmIHVyaSkKIHsKKyAgICAvLyBGSVhN
RTogVGhpcyBpcyB3cm9uZy4KICAgICBtX2Jhc2VVUkwgPSBLVVJMKHVyaSk7CiB9CiAKQEAgLTEz
OTMsNyArMTM5NSw2IEBAIHZvaWQgRG9jdW1lbnQ6Om9wZW4oRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQpCiB7CiAgICAgaWYgKG93bmVyRG9jdW1lbnQpIHsKICAgICAgICAgc2V0VVJMKG93bmVyRG9j
dW1lbnQtPnVybCgpKTsKLSAgICAgICAgc2V0QmFzZVVSTChvd25lckRvY3VtZW50LT51cmwoKSk7
CiAgICAgICAgIG1fY29va2llVVJMID0gb3duZXJEb2N1bWVudC0+Y29va2llVVJMKCk7CiAgICAg
ICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBvd25lckRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwog
ICAgIH0KQEAgLTE2OTksMTIgKzE3MDAsMTQgQEAgdm9pZCBEb2N1bWVudDo6Y2xlYXIoKQogCiB2
b2lkIERvY3VtZW50OjpzZXRVUkwoY29uc3QgS1VSTCYgdXJsKQogewotICAgIGlmICh1cmwgPT0g
bV91cmwpCisgICAgY29uc3QgS1VSTCYgbmV3VVJMID0gdXJsLmlzRW1wdHkoKSA/IGJsYW5rVVJM
KCkgOiB1cmw7CisgICAgaWYgKG5ld1VSTCA9PSBtX3VybCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV91cmwgPSB1cmw7CisgICAgbV91cmwgPSBuZXdVUkw7CiAgICAgbV9pc0FsbG93ZWRUb0xv
YWRMb2NhbFJlc291cmNlcyA9IHNob3VsZEJlQWxsb3dlZFRvTG9hZExvY2FsUmVzb3VyY2VzKCk7
Ci0gfQorICAgIHVwZGF0ZUJhc2VVUkwoKTsKK30KICAKIGJvb2wgRG9jdW1lbnQ6OnNob3VsZEJl
QWxsb3dlZFRvTG9hZExvY2FsUmVzb3VyY2VzKCkgY29uc3QKIHsKQEAgLTE3MjUsMTEgKzE3Mjgs
MjAgQEAgYm9vbCBEb2N1bWVudDo6c2hvdWxkQmVBbGxvd2VkVG9Mb2FkTG9jYWxSZXNvdXJjZXMo
KSBjb25zdAogICAgIHJldHVybiBkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5pc1Zh
bGlkKCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldEJhc2VVUkwoY29uc3QgS1VSTCYgYmFzZVVS
TCkgCit2b2lkIERvY3VtZW50OjpzZXRCYXNlRWxlbWVudFVSTChjb25zdCBLVVJMJiBiYXNlRWxl
bWVudFVSTCkgCiB7IAotICAgIG1fYmFzZVVSTCA9IGJhc2VVUkw7CisgICAgbV9iYXNlRWxlbWVu
dFVSTCA9IGJhc2VFbGVtZW50VVJMOworICAgIHVwZGF0ZUJhc2VVUkwoKTsKK30KKwordm9pZCBE
b2N1bWVudDo6dXBkYXRlQmFzZVVSTCgpCit7CisgICAgbV9iYXNlVVJMID0gbV9iYXNlRWxlbWVu
dFVSTC5pc0VtcHR5KCkgPyB1cmwoKSA6IG1fYmFzZUVsZW1lbnRVUkw7CisKICAgICBpZiAobV9l
bGVtU2hlZXQpCi0gICAgICAgIG1fZWxlbVNoZWV0LT5zZXRIcmVmKGJhc2VVUkwuc3RyaW5nKCkp
OworICAgICAgICBtX2VsZW1TaGVldC0+c2V0SHJlZihtX2Jhc2VVUkwuc3RyaW5nKCkpOworICAg
IGlmIChtX21hcHBlZEVsZW1lbnRTaGVldCkKKyAgICAgICAgbV9tYXBwZWRFbGVtZW50U2hlZXQt
PnNldEhyZWYobV9iYXNlVVJMLnN0cmluZygpKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2V0Q1NT
U3R5bGVTaGVldChjb25zdCBTdHJpbmcgJnVybCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBjb25z
dCBDYWNoZWRDU1NTdHlsZVNoZWV0KiBzaGVldCkKQEAgLTE3NjUsMTQgKzE3NzcsMTQgQEAgU3Ry
aW5nIERvY3VtZW50Ojp1c2VyU3R5bGVTaGVldCgpIGNvbnN0CiBDU1NTdHlsZVNoZWV0KiBEb2N1
bWVudDo6ZWxlbWVudFNoZWV0KCkKIHsKICAgICBpZiAoIW1fZWxlbVNoZWV0KQotICAgICAgICBt
X2VsZW1TaGVldCA9IG5ldyBDU1NTdHlsZVNoZWV0KHRoaXMsIGJhc2VVUkwoKS5zdHJpbmcoKSk7
CisgICAgICAgIG1fZWxlbVNoZWV0ID0gbmV3IENTU1N0eWxlU2hlZXQodGhpcywgbV9iYXNlVVJM
LnN0cmluZygpKTsKICAgICByZXR1cm4gbV9lbGVtU2hlZXQuZ2V0KCk7CiB9CiAKIENTU1N0eWxl
U2hlZXQqIERvY3VtZW50OjptYXBwZWRFbGVtZW50U2hlZXQoKQogewogICAgIGlmICghbV9tYXBw
ZWRFbGVtZW50U2hlZXQpCi0gICAgICAgIG1fbWFwcGVkRWxlbWVudFNoZWV0ID0gbmV3IENTU1N0
eWxlU2hlZXQodGhpcywgYmFzZVVSTCgpLnN0cmluZygpKTsKKyAgICAgICAgbV9tYXBwZWRFbGVt
ZW50U2hlZXQgPSBuZXcgQ1NTU3R5bGVTaGVldCh0aGlzLCBtX2Jhc2VVUkwuc3RyaW5nKCkpOwog
ICAgIHJldHVybiBtX21hcHBlZEVsZW1lbnRTaGVldC5nZXQoKTsKIH0KIApAQCAtMzAwNSwxMiAr
MzAxNyw5IEBAIEtVUkwgRG9jdW1lbnQ6OmNvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYgdXJsKSBj
b25zdAogICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBLVVJMIGNvbnN0cnVjdG9y
IHRvIGhhdmUgdGhpcyBiZWhhdmlvcj8KICAgICBpZiAodXJsLmlzTnVsbCgpKQogICAgICAgICBy
ZXR1cm4gS1VSTCgpOwotICAgIGNvbnN0IEtVUkwqIGJhc2UgPSAmbV9iYXNlVVJMOwotICAgIGlm
IChiYXNlLT5pc0VtcHR5KCkpCi0gICAgICAgIGJhc2UgPSAmbV91cmw7CiAgICAgaWYgKCFtX2Rl
Y29kZXIpCi0gICAgICAgIHJldHVybiBLVVJMKCpiYXNlLCB1cmwpOwotICAgIHJldHVybiBLVVJM
KCpiYXNlLCB1cmwsIG1fZGVjb2Rlci0+ZW5jb2RpbmcoKSk7CisgICAgICAgIHJldHVybiBLVVJM
KG1fYmFzZVVSTCwgdXJsKTsKKyAgICByZXR1cm4gS1VSTChtX2Jhc2VVUkwsIHVybCwgbV9kZWNv
ZGVyLT5lbmNvZGluZygpKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6aW5QYWdlQ2FjaGUoKQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggYmZhNzhiZS4uYmQwNjJkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zOTEsMTQgKzM5MSwxNiBAQCBwdWJs
aWM6CiAKICAgICBib29sIHdlbGxGb3JtZWQoKSBjb25zdCB7IHJldHVybiBtX3dlbGxGb3JtZWQ7
IH0KIAotICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsLmlzRW1wdHko
KSA/IGJsYW5rVVJMKCkgOiBtX3VybDsgfQorICAgIGNvbnN0IEtVUkwmIHVybCgpIGNvbnN0IHsg
cmV0dXJuIG1fdXJsOyB9CiAgICAgdm9pZCBzZXRVUkwoY29uc3QgS1VSTCYpOwogCi0gICAgY29u
c3QgS1VSTCYgYmFzZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVVSTC5pc0VtcHR5KCkgPyB1
cmwoKSA6IG1fYmFzZVVSTDsgfQotICAgIHZvaWQgc2V0QmFzZVVSTChjb25zdCBLVVJMJik7Cisg
ICAgY29uc3QgS1VSTCYgYmFzZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVVSTDsgfQorICAg
IC8vIFNldHRpbmcgdGhlIEJhc2VFbGVtZW50VVJMIHdpbGwgY2hhbmdlIHRoZSBiYXNlVVJMLgor
ICAgIHZvaWQgc2V0QmFzZUVsZW1lbnRVUkwoY29uc3QgS1VSTCYpOwogCiAgICAgY29uc3QgU3Ry
aW5nJiBiYXNlVGFyZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVGFyZ2V0OyB9Ci0gICAgdm9p
ZCBzZXRCYXNlVGFyZ2V0KGNvbnN0IFN0cmluZyYgYmFzZVRhcmdldCkgeyBtX2Jhc2VUYXJnZXQg
PSBiYXNlVGFyZ2V0OyB9CisgICAgLy8gU2V0dGluZyB0aGUgQmFzZUVsZW1lbnRUYXJnZXQgd2ls
bCBjaGFuZ2UgdGhlIGJhc2VUYXJnZXQuCisgICAgdm9pZCBzZXRCYXNlRWxlbWVudFRhcmdldChj
b25zdCBTdHJpbmcmIGJhc2VUYXJnZXQpIHsgbV9iYXNlVGFyZ2V0ID0gYmFzZVRhcmdldDsgfQog
CiAgICAgS1VSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdDsKIApAQCAtNzQ3LDgg
Kzc0OSwxNCBAQCBwcml2YXRlOgogICAgIERvY0xvYWRlciogbV9kb2NMb2FkZXI7CiAgICAgVG9r
ZW5pemVyKiBtX3Rva2VuaXplcjsKICAgICBib29sIG1fd2VsbEZvcm1lZDsKLSAgICBLVVJMIG1f
dXJsOwotICAgIEtVUkwgbV9iYXNlVVJMOworCisgICAgLy8gRG9jdW1lbnQgVVJMcy4KKyAgICBL
VVJMIG1fdXJsOyAgLy8gRG9jdW1lbnQuVVJMOiBUaGUgVVJMIGZyb20gd2hpY2ggdGhpcyBkb2N1
bWVudCB3YXMgcmV0cmlldmVkLgorICAgIEtVUkwgbV9iYXNlVVJMOyAgLy8gTm9kZS5iYXNlVVJJ
OiBUaGUgVVJMIHRvIHVzZSB3aGVuIHJlc29sdmluZyByZWxhdGl2ZSBVUkxzLgorICAgIEtVUkwg
bV9iYXNlRWxlbWVudFVSTDsgIC8vIFRoZSBVUkwgc2V0IGJ5IHRoZSA8YmFzZT4gZWxlbWVudC4K
KyAgICBLVVJMIG1fY29va2llVVJMOyAgLy8gVGhlIFVSTCB0byB1c2UgZm9yIGNvb2tpZSBhY2Nl
c3MuCisgICAgS1VSTCBtX3BvbGljeUJhc2VVUkw7ICAvLyBUaGUgcG9saWN5IFVSTCBmb3IgdGhp
cmQtcGFydHkgY29va2llIGJsb2NraW5nLgorCiAgICAgU3RyaW5nIG1fYmFzZVRhcmdldDsKIAog
ICAgIFJlZlB0cjxEb2N1bWVudFR5cGU+IG1fZG9jVHlwZTsKQEAgLTg1OSw5ICs4NjcsNiBAQCBw
cml2YXRlOgogICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgSFRNTE1hcEVs
ZW1lbnQqPiBJbWFnZU1hcHNCeU5hbWU7CiAgICAgSW1hZ2VNYXBzQnlOYW1lIG1faW1hZ2VNYXBz
QnlOYW1lOwogCi0gICAgS1VSTCBtX2Nvb2tpZVVSTDsgLy8gVGhlIFVSTCB0byB1c2UgZm9yIGNv
b2tpZSBhY2Nlc3MuCi0gICAgS1VSTCBtX3BvbGljeUJhc2VVUkw7IC8vIFRoZSBwb2xpY3kgVVJM
IGZvciB0aGlyZC1wYXJ0eSBjb29raWUgYmxvY2tpbmcuCi0KICAgICBIYXNoU2V0PE5vZGUqPiBt
X2Rpc2Nvbm5lY3RlZE5vZGVzV2l0aEV2ZW50TGlzdGVuZXJzOwogCiAgICAgaW50IG1fZG9jSUQ7
IC8vIEEgdW5pcXVlIGRvY3VtZW50IGlkZW50aWZpZXIgdXNlZCBmb3IgdGhpbmdzIGxpa2UgZG9j
dW1lbnQtc3BlY2lmaWMgbWFwcGVkIGF0dHJpYnV0ZXMuCkBAIC05NDAsNiArOTQ1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlbW92ZUFsbERpc2Nvbm5lY3RlZE5vZGVFdmVudExpc3RlbmVycygp
OwogICAgIHZvaWQgaW1hZ2VMb2FkRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwog
ICAgIHZvaWQgdXBkYXRlRm9jdXNBcHBlYXJhbmNlVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4q
KTsKKyAgICB2b2lkIHVwZGF0ZUJhc2VVUkwoKTsKIAogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gbV9zZWN1cml0eU9yaWdpbjsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxCYXNl
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAppbmRleCAxYWU2
ODU4Li40ZGU2MmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcApAQCAtNjcsOCArNjcsOCBA
QCB2b2lkIEhUTUxCYXNlRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAKICAgICAvLyBT
aW5jZSB0aGUgZG9jdW1lbnQgZG9lc24ndCBoYXZlIGEgYmFzZSBlbGVtZW50Li4uCiAgICAgLy8g
KFRoaXMgd2lsbCBicmVhayBpbiB0aGUgY2FzZSBvZiBtdWx0aXBsZSBiYXNlIGVsZW1lbnRzLCBi
dXQgdGhhdCdzIG5vdCB2YWxpZCBhbnl3YXkgKD8pKQotICAgIGRvY3VtZW50KCktPnNldEJhc2VV
UkwoS1VSTCgpKTsKLSAgICBkb2N1bWVudCgpLT5zZXRCYXNlVGFyZ2V0KFN0cmluZygpKTsKKyAg
ICBkb2N1bWVudCgpLT5zZXRCYXNlRWxlbWVudFVSTChLVVJMKCkpOworICAgIGRvY3VtZW50KCkt
PnNldEJhc2VFbGVtZW50VGFyZ2V0KFN0cmluZygpKTsKIH0KIAogdm9pZCBIVE1MQmFzZUVsZW1l
bnQ6OnByb2Nlc3MoKQpAQCAtNzYsMTEgKzc2LDExIEBAIHZvaWQgSFRNTEJhc2VFbGVtZW50Ojpw
cm9jZXNzKCkKICAgICBpZiAoIWluRG9jdW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
aWYgKCFtX2hyZWYuaXNFbXB0eSgpICYmIGRvY3VtZW50KCktPmZyYW1lKCkpCi0gICAgICAgIGRv
Y3VtZW50KCktPnNldEJhc2VVUkwoS1VSTChkb2N1bWVudCgpLT5mcmFtZSgpLT5sb2FkZXIoKS0+
dXJsKCksIG1faHJlZikpOworICAgIGlmICghbV9ocmVmLmlzRW1wdHkoKSkKKyAgICAgICAgZG9j
dW1lbnQoKS0+c2V0QmFzZUVsZW1lbnRVUkwoS1VSTChkb2N1bWVudCgpLT51cmwoKSwgbV9ocmVm
KSk7CiAKICAgICBpZiAoIW1fdGFyZ2V0LmlzRW1wdHkoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+
c2V0QmFzZVRhcmdldChtX3RhcmdldCk7CisgICAgICAgIGRvY3VtZW50KCktPnNldEJhc2VFbGVt
ZW50VGFyZ2V0KG1fdGFyZ2V0KTsKIAogICAgIC8vICMjIyBzaG91bGQgY2hhbmdpbmcgYSBkb2N1
bWVudCdzIGJhc2UgVVJMIGR5bmFtaWNhbGx5IGF1dG9tYXRpY2FsbHkgdXBkYXRlIGFsbCBpbWFn
ZXMsIHN0eWxlc2hlZXRzIGV0Yz8KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBlZDZmNDFi
Li45ZDg0NjNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC05MjksMTcgKzkyOSwxMSBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpiZWdpbihjb25zdCBLVVJMJiB1cmwsIGJvb2wgZGlzcGF0Y2gsIFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4pCiAgICAgcmVmLnNldFJlZihTdHJpbmcoKSk7CiAgICAgbV9v
dXRnb2luZ1JlZmVycmVyID0gcmVmLnN0cmluZygpOwogICAgIG1fVVJMID0gdXJsOwotICAgIEtV
UkwgYmFzZVVSTDsKLSAgICBpZiAoIW1fVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgYmFzZVVSTCA9
IG1fVVJMOwogCiAgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IERPTUltcGxlbWVudGF0
aW9uOjppbnN0YW5jZSgpLT5jcmVhdGVEb2N1bWVudChtX3Jlc3BvbnNlTUlNRVR5cGUsIG1fZnJh
bWUsIG1fZnJhbWUtPmluVmlld1NvdXJjZU1vZGUoKSk7CiAgICAgbV9mcmFtZS0+c2V0RG9jdW1l
bnQoZG9jdW1lbnQpOwogCiAgICAgZG9jdW1lbnQtPnNldFVSTChtX1VSTCk7Ci0gICAgLy8gV2Ug
cHJlZmVyIG1fYmFzZVVSTCBvdmVyIG1fVVJMIGJlY2F1c2UgbV9VUkwgY2hhbmdlcyB3aGVuIHdl
IGFyZQotICAgIC8vIGFib3V0IHRvIGxvYWQgYSBuZXcgcGFnZS4KLSAgICBkb2N1bWVudC0+c2V0
QmFzZVVSTChiYXNlVVJMKTsKICAgICBpZiAobV9kZWNvZGVyKQogICAgICAgICBkb2N1bWVudC0+
c2V0RGVjb2RlcihtX2RlY29kZXIuZ2V0KCkpOwogICAgIGlmIChmb3JjZWRTZWN1cml0eU9yaWdp
bikKQEAgLTUwMDEsNyArNDk5NSw2IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN3aXRjaE91dExvd0Jh
bmR3aWR0aERpc3BsYXlJZlJlYWR5KCkKICAgICAgICAgICAgICAgICBjcmVhdGVEb2N1bWVudCht
X3Jlc3BvbnNlTUlNRVR5cGUsIG1fZnJhbWUsIG1fZnJhbWUtPmluVmlld1NvdXJjZU1vZGUoKSk7
CiAgICAgICAgICAgICBtX2ZyYW1lLT5zZXREb2N1bWVudChuZXdEb2MpOwogICAgICAgICAgICAg
bmV3RG9jLT5zZXRVUkwobV9VUkwpOwotICAgICAgICAgICAgbmV3RG9jLT5zZXRCYXNlVVJMKG1f
VVJMKTsKICAgICAgICAgICAgIGlmIChtX2RlY29kZXIpCiAgICAgICAgICAgICAgICAgbmV3RG9j
LT5zZXREZWNvZGVyKG1fZGVjb2Rlci5nZXQoKSk7CiAgICAgICAgICAgICByZXN0b3JlRG9jdW1l
bnRTdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3Nvci5jcHAgYi9X
ZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAppbmRleCA3ZWM4NjA4Li44MjM1ZTZkIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yLmNwcAorKysgYi9XZWJDb3JlL3htbC9Y
U0xUUHJvY2Vzc29yLmNwcApAQCAtMjYzLDEwICsyNjMsOCBAQCBSZWZQdHI8RG9jdW1lbnQ+IFhT
TFRQcm9jZXNzb3I6OmNyZWF0ZURvY3VtZW50RnJvbVNvdXJjZShjb25zdCBTdHJpbmcmIHNvdXJj
ZVN0cgogICAgICAgICBmcmFtZS0+c2V0RG9jdW1lbnQocmVzdWx0KTsKICAgICB9CiAgICAgCi0g
ICAgaWYgKHNvdXJjZUlzRG9jdW1lbnQpIHsKKyAgICBpZiAoc291cmNlSXNEb2N1bWVudCkKICAg
ICAgICAgcmVzdWx0LT5zZXRVUkwob3duZXJEb2N1bWVudC0+dXJsKCkpOwotICAgICAgICByZXN1
bHQtPnNldEJhc2VVUkwob3duZXJEb2N1bWVudC0+YmFzZVVSTCgpKTsKLSAgICB9CiAgICAgcmVz
dWx0LT5vcGVuKCk7CiAgICAgCiAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IGRlY29k
ZXIgPSBUZXh0UmVzb3VyY2VEZWNvZGVyOjpjcmVhdGUoc291cmNlTUlNRVR5cGUpOwo=
</data>
<flag name="review"
          id="9532"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21709</attachid>
            <date>2008-06-15 03:12:25 -0700</date>
            <delta_ts>2008-06-15 10:18:32 -0700</delta_ts>
            <desc>Step 2: Implement documentURI</desc>
            <filename>document-uri.patch</filename>
            <type>text/plain</type>
            <size>12127</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDMwYTY5Li43NWUzYzY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDgtMDYt
MTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IERvY3VtZW50LmRvY3VtZW50VVJJIChE
T00gQ29yZSBMZXZlbCAzKS4gIFRoZXJlIGRvbid0IGFwcGVhciB0byBiZQorICAgICAgICBvdGhl
ciBicm93c2VyIGltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGZlYXR1cmUgdG8gY29tcGFyZSBhZ2Fp
bnN0LCBidXQKKyAgICAgICAgdGhlc2UgdGVzdHMgdGVzdCBteSBpbnRlcnByZXRhdGlvbiBvZiB0
aGUgc3BlYy4KKworICAgICAgICAqIGZhc3QvZG9tL2RvY3VtZW50dXJpLWFmZmVjdHMtcmVsYXRp
dmUtcGF0aHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVu
dHVyaS1hZmZlY3RzLXJlbGF0aXZlLXBhdGhzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVkLWp1bmstaW1wbGllcy1iYXNldXJpLW51bGwtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS1hc3NpZ25lZC1q
dW5rLWltcGxpZXMtYmFzZXVyaS1udWxsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L2RvY3VtZW50dXJpLWFzc2lnbmVkLWp1bmstaW1wbGllcy1yZWxhdGl2ZS11cmxzLWRvLW5vdC1y
ZXNvbHZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vZG9jdW1lbnR1
cmktYXNzaWduZWQtanVuay1pbXBsaWVzLXJlbGF0aXZlLXVybHMtZG8tbm90LXJlc29sdmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRy
YXJ5LXN0cmluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2RvY3Vt
ZW50dXJpLWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmcuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vZG9jdW1lbnR1cmktbG9zZXMtdG8tYmFzZS10YWctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS1sb3Nlcy10by1iYXNlLXRhZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0ZWQtYnkt
YmFzZS10YWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVu
dHVyaS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10YWcuaHRtbDogQWRkZWQuCisKIDIwMDgtMDYtMTQg
IENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgT2xpdmVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1l
bnR1cmktYWZmZWN0cy1yZWxhdGl2ZS1wYXRocy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9kb2N1bWVudHVyaS1hZmZlY3RzLXJlbGF0aXZlLXBhdGhzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMGIzOTc3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYWZmZWN0cy1yZWxhdGl2ZS1w
YXRocy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitIeXBlcmxpbmsgdG8gZm9vLmh0bWwK
K2EuaHJlZiA9IGh0dHA6Ly9wYXNzLmV4YW1wbGUuY29tL2Zvby5odG1sCisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYWZmZWN0cy1yZWxhdGl2ZS1wYXRo
cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYWZmZWN0cy1yZWxhdGl2
ZS1wYXRocy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJiZTU4MjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1hZmZl
Y3RzLXJlbGF0aXZlLXBhdGhzLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZG9jdW1lbnQuZG9jdW1lbnRVUkkg
PSAnaHR0cDovL3Bhc3MuZXhhbXBsZS5jb20vJzsKKzwvc2NyaXB0PgorPGEgaHJlZj0iZm9vLmh0
bWwiPkh5cGVybGluayB0byBmb28uaHRtbDwvYT4KKzxwcmU+Cis8c2NyaXB0PgordmFyIGEgPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYScpWzBdOworZG9jdW1lbnQud3JpdGVsbign
YS5ocmVmID0gJyArIGEuaHJlZik7Cis8L3NjcmlwdD4KKzwvcHJlPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYXNzaWduZWQt
anVuay1pbXBsaWVzLWJhc2V1cmktbnVsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9kb2N1bWVudHVyaS1hc3NpZ25lZC1qdW5rLWltcGxpZXMtYmFzZXVyaS1udWxsLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDE5Mzk5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYXNzaWduZWQt
anVuay1pbXBsaWVzLWJhc2V1cmktbnVsbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitO
b3cgdGhhdCBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyBqdW5rLCBkb2N1bWVudC5iYXNlVVJJIHNo
b3VsZCBiZSBudWxsCitkb2N1bWVudC5iYXNlVVJJID0gbnVsbAorCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVkLWp1bmstaW1wbGllcy1iYXNl
dXJpLW51bGwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVk
LWp1bmstaW1wbGllcy1iYXNldXJpLW51bGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45M2M0ZWY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZG9jdW1lbnR1cmktYXNzaWduZWQtanVuay1pbXBsaWVzLWJhc2V1cmktbnVsbC5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzxodG1sPgorPGJvZHk+Cis8cHJlPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKworZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnanVuayc7Citkb2N1bWVudC53cml0ZWxu
KCdOb3cgdGhhdCBkb2N1bWVudC5kb2N1bWVudFVSSSBpcyBqdW5rLCBkb2N1bWVudC5iYXNlVVJJ
IHNob3VsZCBiZSBudWxsJyk7Citkb2N1bWVudC53cml0ZWxuKCdkb2N1bWVudC5iYXNlVVJJID0g
JyArIGRvY3VtZW50LmJhc2VVUkkpOworPC9zY3JpcHQ+Cis8L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVk
LWp1bmstaW1wbGllcy1yZWxhdGl2ZS11cmxzLWRvLW5vdC1yZXNvbHZlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVkLWp1bmstaW1wbGllcy1y
ZWxhdGl2ZS11cmxzLWRvLW5vdC1yZXNvbHZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42YmNjY2Y2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnR1cmktYXNzaWduZWQtanVuay1pbXBsaWVzLXJlbGF0aXZlLXVy
bHMtZG8tbm90LXJlc29sdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorSHlwZXJsaW5r
IHRvIGZvby5odG1sCithLmhyZWYgPSBmb28uaHRtbAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWFzc2lnbmVkLWp1bmstaW1wbGllcy1yZWxhdGl2ZS11
cmxzLWRvLW5vdC1yZXNvbHZlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVy
aS1hc3NpZ25lZC1qdW5rLWltcGxpZXMtcmVsYXRpdmUtdXJscy1kby1ub3QtcmVzb2x2ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlZjQ2OTEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1hc3NpZ25lZC1qdW5rLWlt
cGxpZXMtcmVsYXRpdmUtdXJscy1kby1ub3QtcmVzb2x2ZS5odG1sCkBAIC0wLDAgKzEsMTggQEAK
KzxodG1sPgorPGhlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2RvY3Vt
ZW50LmRvY3VtZW50VVJJID0gJ2p1bmsnOworPC9zY3JpcHQ+Cis8YSBocmVmPSJmb28uaHRtbCI+
SHlwZXJsaW5rIHRvIGZvby5odG1sPC9hPgorPHByZT4KKzxzY3JpcHQ+Cit2YXIgYSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhJylbMF07Citkb2N1bWVudC53cml0ZWxuKCdhLmhy
ZWYgPSAnICsgYS5ocmVmKTsKKzwvc2NyaXB0PgorPC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1jYW4taG9sZC1hcmJp
dHJhcnktc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50
dXJpLWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NmU2OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1jYW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2RvY3VtZW50LmRvY3VtZW50VVJJID0gZmlsZTovLy9V
c2Vycy9hYmFydGgvZ2l0L3dlYmtpdC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1j
YW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLmh0bWwKK0Fzc2lnbmluZyB0byBkb2N1bWVudFVSSQor
ZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSBQQVNTOiBkb2N1bWVudFVSSSBjYW4gaG9sZCBhbiBhcmJp
dHJhcnkgc3RyaW5nLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50dXJpLWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2RvY3VtZW50dXJpLWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmcuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjBlMGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy5o
dG1sCkBAIC0wLDAgKzEsMTUgQEAKKzxodG1sPgorPGJvZHk+Cis8cHJlPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKKworZG9jdW1lbnQud3JpdGVsbignZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAn
ICsgZG9jdW1lbnQuZG9jdW1lbnRVUkkpOworZG9jdW1lbnQud3JpdGVsbignQXNzaWduaW5nIHRv
IGRvY3VtZW50VVJJJyk7Citkb2N1bWVudC5kb2N1bWVudFVSSSA9ICdQQVNTOiBkb2N1bWVudFVS
SSBjYW4gaG9sZCBhbiBhcmJpdHJhcnkgc3RyaW5nLic7Citkb2N1bWVudC53cml0ZWxuKCdkb2N1
bWVudC5kb2N1bWVudFVSSSA9ICcgKyBkb2N1bWVudC5kb2N1bWVudFVSSSk7Cis8L3NjcmlwdD4K
KzwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZG9jdW1lbnR1cmktbG9zZXMtdG8tYmFzZS10YWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnR1cmktbG9zZXMtdG8tYmFzZS10YWctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwYjM5NzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1sb3Nlcy10by1iYXNlLXRhZy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitIeXBlcmxpbmsgdG8gZm9vLmh0bWwKK2EuaHJl
ZiA9IGh0dHA6Ly9wYXNzLmV4YW1wbGUuY29tL2Zvby5odG1sCisKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktbG9zZXMtdG8tYmFzZS10YWcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWxvc2VzLXRvLWJhc2UtdGFnLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmQ5NzEwZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLWxvc2VzLXRvLWJhc2UtdGFnLmh0
bWwKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKzxiYXNlIGhyZWY9Imh0dHA6Ly9w
YXNzLmV4YW1wbGUuY29tLyI+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Rv
Y3VtZW50LmRvY3VtZW50VVJJID0gJ2h0dHA6Ly9mYWlsLmV4YW1wbGUuY29tLyc7Cis8L3Njcmlw
dD4KKzxhIGhyZWY9ImZvby5odG1sIj5IeXBlcmxpbmsgdG8gZm9vLmh0bWw8L2E+Cis8cHJlPgor
PHNjcmlwdD4KK3ZhciBhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2EnKVswXTsK
K2RvY3VtZW50LndyaXRlbG4oJ2EuaHJlZiA9ICcgKyBhLmhyZWYpOworPC9zY3JpcHQ+Cis8L3By
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2Rv
Y3VtZW50dXJpLW5vdC1hZmZlY3RlZC1ieS1iYXNlLXRhZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10YWctZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3MDgxZWIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0
ZWQtYnktYmFzZS10YWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVGhlIGRvY3VtZW50
LmRvY3VtZW50VVJJIHByb3BlcnR5IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhlIDxiYXNl
PiB0YWcuCitmaWxlOi8vL1VzZXJzL2FiYXJ0aC9naXQvd2Via2l0L0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL2RvY3VtZW50dXJpLW5vdC1hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10
YWcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLW5vdC1hZmZlY3RlZC1i
eS1iYXNlLXRhZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5OGYx
MGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1u
b3QtYWZmZWN0ZWQtYnktYmFzZS10YWcuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPGJhc2UgaHJlZj0iaHR0
cDovL2ZhaWwuZXhhbXBsZS5jb20vIj4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj5UaGUgZG9jdW1l
bnQuZG9jdW1lbnRVUkkgcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSB0aGUgJmx0
O2Jhc2UmZ3Q7IHRhZy48L2Rpdj4KKzxzY3JpcHQ+ZG9jdW1lbnQud3JpdGUoZG9jdW1lbnQuZG9j
dW1lbnRVUkkpOzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMjUxZmIwLi4wNTk2NGQ4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
Miw2ICsyLDI3IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAg
ICAgICAgRml4IG91ciBpbXBsZW1lbnRhdGlvbiBvZiBEb2N1bWVudC5kb2N1bWVudFVSSSAoRE9N
IENvcmUgTGV2ZWwgMykuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2RvY3VtZW50dXJpLWFm
ZmVjdHMtcmVsYXRpdmUtcGF0aHMuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vZG9jdW1l
bnR1cmktYXNzaWduZWQtanVuay1pbXBsaWVzLWJhc2V1cmktbnVsbC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2RvbS9kb2N1bWVudHVyaS1hc3NpZ25lZC1qdW5rLWltcGxpZXMtcmVsYXRpdmUt
dXJscy1kby1ub3QtcmVzb2x2ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9kb2N1bWVu
dHVyaS1jYW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
ZG9tL2RvY3VtZW50dXJpLWxvc2VzLXRvLWJhc2UtdGFnLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL2RvY3VtZW50dXJpLW5vdC1hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1sCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERv
Y3VtZW50VVJJKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRVUkwpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUJhc2VVUkwpOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5oOgorICAgICAgICAqIHBhZ2UvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cmwpOgorCisyMDA4
LTA2LTE1ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgUmVmYWN0b3Igb3VyIGhhbmRsaW5nIG9m
IERvY3VtZW50OjptX2Jhc2VVUkwgaW4gcHJlcGFyYXRpb24gZm9yCiAgICAgICAgIGNvcnJlY3Rp
bmcgb3VyIGltcGxlbWVudGF0aW9uIG9mIERvY3VtZW50LmRvY3VtZW50VVJJLgogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggNzg5MmQ2Yi4uNDQ0OTI1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtODY0LDE2ICs4NjQsMTAgQEAg
dm9pZCBEb2N1bWVudDo6c2V0WE1MU3RhbmRhbG9uZShib29sIHN0YW5kYWxvbmUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogICAgIG1feG1sU3RhbmRhbG9uZSA9IHN0YW5kYWxvbmU7CiB9CiAKLUtVUkwg
RG9jdW1lbnQ6OmRvY3VtZW50VVJJKCkgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3
cm9uZy4KLSAgICByZXR1cm4gbV9iYXNlVVJMOwotfQotCiB2b2lkIERvY3VtZW50OjpzZXREb2N1
bWVudFVSSShjb25zdCBTdHJpbmcmIHVyaSkKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9u
Zy4KLSAgICBtX2Jhc2VVUkwgPSBLVVJMKHVyaSk7CisgICAgbV9kb2N1bWVudFVSSSA9IHVyaTsK
KyAgICB1cGRhdGVCYXNlVVJMKCk7CiB9CiAKIEtVUkwgRG9jdW1lbnQ6OmJhc2VVUkkoKSBjb25z
dApAQCAtMTcwNSw2ICsxNjk5LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0VVJMKGNvbnN0IEtVUkwm
IHVybCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV91cmwgPSBuZXdVUkw7CisgICAgbV9kb2N1
bWVudFVSSSA9IG1fdXJsLnN0cmluZygpOwogICAgIG1faXNBbGxvd2VkVG9Mb2FkTG9jYWxSZXNv
dXJjZXMgPSBzaG91bGRCZUFsbG93ZWRUb0xvYWRMb2NhbFJlc291cmNlcygpOwogICAgIHVwZGF0
ZUJhc2VVUkwoKTsKIH0KQEAgLTE3MzYsNyArMTczMSw5IEBAIHZvaWQgRG9jdW1lbnQ6OnNldEJh
c2VFbGVtZW50VVJMKGNvbnN0IEtVUkwmIGJhc2VFbGVtZW50VVJMKQogCiB2b2lkIERvY3VtZW50
Ojp1cGRhdGVCYXNlVVJMKCkKIHsKLSAgICBtX2Jhc2VVUkwgPSBtX2Jhc2VFbGVtZW50VVJMLmlz
RW1wdHkoKSA/IHVybCgpIDogbV9iYXNlRWxlbWVudFVSTDsKKyAgICBtX2Jhc2VVUkwgPSBtX2Jh
c2VFbGVtZW50VVJMLmlzRW1wdHkoKSA/IEtVUkwoZG9jdW1lbnRVUkkoKSkgOiBtX2Jhc2VFbGVt
ZW50VVJMOworICAgIGlmICghbV9iYXNlVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgbV9iYXNlVVJM
ID0gS1VSTCgpOwogCiAgICAgaWYgKG1fZWxlbVNoZWV0KQogICAgICAgICBtX2VsZW1TaGVldC0+
c2V0SHJlZihtX2Jhc2VVUkwuc3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYmQwNjJkZC4uMTJlZjBmOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0WE1MVmVyc2lv
bihjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRYTUxTdGFuZGFs
b25lKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIEtVUkwgZG9jdW1lbnRVUkkoKSBjb25z
dDsKKyAgICBTdHJpbmcgZG9jdW1lbnRVUkkoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VVJJ
OyB9CiAgICAgdm9pZCBzZXREb2N1bWVudFVSSShjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1
YWwgS1VSTCBiYXNlVVJJKCkgY29uc3Q7CkBAIC03NTcsNiArNzU3LDEzIEBAIHByaXZhdGU6CiAg
ICAgS1VSTCBtX2Nvb2tpZVVSTDsgIC8vIFRoZSBVUkwgdG8gdXNlIGZvciBjb29raWUgYWNjZXNz
LgogICAgIEtVUkwgbV9wb2xpY3lCYXNlVVJMOyAgLy8gVGhlIHBvbGljeSBVUkwgZm9yIHRoaXJk
LXBhcnR5IGNvb2tpZSBibG9ja2luZy4KIAorICAgIC8vIERvY3VtZW50LmRvY3VtZW50VVJJOgor
ICAgIC8vIEFsdGhvdWdoIFVSTC1saWtlLCBEb2N1bWVudC5kb2N1bWVudFVSSSBjYW4gYWN0dWFs
bHkgYmUgc2V0IHRvIGFueQorICAgIC8vIHN0cmluZyBieSBjb250ZW50LiAgRG9jdW1lbnQuZG9j
dW1lbnRVUkkgYWZmZWN0cyBtX2Jhc2VVUkwgdW5sZXNzIHRoZQorICAgIC8vIGRvY3VtZW50IGNv
bnRhaW5zIGEgPGJhc2U+IGVsZW1lbnQsIGluIHdoaWNoIGNhc2UgdGhlIDxiYXNlPiBlbGVtZW50
CisgICAgLy8gdGFrZXMgcHJlY2VkZW5jZS4KKyAgICBTdHJpbmcgbV9kb2N1bWVudFVSSTsKKwog
ICAgIFN0cmluZyBtX2Jhc2VUYXJnZXQ7CiAKICAgICBSZWZQdHI8RG9jdW1lbnRUeXBlPiBtX2Rv
Y1R5cGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAgYi9XZWJDb3JlL3BhZ2UvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXgg
NzY2MjRjZS4uYWQ1MGQ1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcApAQCAtMTI2Myw3ICsxMjYzLDcgQEAgS1VSTCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp1cmwoKSBjb25zdAogICAgIH0KICAgICAKICAgICBpZiAoaXNXZWJBcmVhKCkpCi0gICAg
ICAgIHJldHVybiBtX3JlbmRlcmVyLT5kb2N1bWVudCgpLT5kb2N1bWVudFVSSSgpOworICAgICAg
ICByZXR1cm4gbV9yZW5kZXJlci0+ZG9jdW1lbnQoKS0+dXJsKCk7CiAgICAgCiAgICAgaWYgKGlz
SW1hZ2UoKSAmJiBtX3JlbmRlcmVyLT5lbGVtZW50KCkgJiYgbV9yZW5kZXJlci0+ZWxlbWVudCgp
LT5oYXNUYWdOYW1lKGltZ1RhZykpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW1h
Z2VFbGVtZW50Kj4obV9yZW5kZXJlci0+ZWxlbWVudCgpKS0+c3JjKCk7Cg==
</data>
<flag name="review"
          id="9533"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21721</attachid>
            <date>2008-06-15 23:15:39 -0700</date>
            <delta_ts>2008-06-15 23:21:14 -0700</delta_ts>
            <desc>Step 2b: Fix tests</desc>
            <filename>fix-tests.patch</filename>
            <type>text/plain</type>
            <size>3665</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMmFkMmRhLi4xZDY5ZmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMDgtMDYt
MTUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZW1vdmUgbXkg
bmFtZSBmcm9tIHRoZSBleHBlY3RlZCB0ZXN0IHJlc3VsdHMuCisKKyAgICAgICAgKiBmYXN0L2Rv
bS9kb2N1bWVudHVyaS1jYW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS1jYW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLmh0
bWw6CisgICAgICAgICogZmFzdC9kb20vZG9jdW1lbnR1cmktbm90LWFmZmVjdGVkLWJ5LWJhc2Ut
dGFnLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZm
ZWN0ZWQtYnktYmFzZS10YWcuaHRtbDoKKworMjAwOC0wNi0xNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCiAKICAgICAg
ICAgVGVzdCBEb2N1bWVudC5kb2N1bWVudFVSSSAoRE9NIENvcmUgTGV2ZWwgMykuICBUaGVyZSBk
b24ndCBhcHBlYXIgdG8gYmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50dXJpLWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy1leHBlY3Rl
ZC50eHQKaW5kZXggZTc2ZTY5Zi4uMWJmODQ4YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5
LXN0cmluZy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1kb2N1bWVudC5kb2N1bWVudFVS
SSA9IGZpbGU6Ly8vVXNlcnMvYWJhcnRoL2dpdC93ZWJraXQvTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy5odG1sCitub3JtYWxpemVVUkwo
ZG9jdW1lbnQuZG9jdW1lbnRVUkkpID0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmkt
Y2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy5odG1sCiBBc3NpZ25pbmcgdG8gZG9jdW1lbnRVUkkK
IGRvY3VtZW50LmRvY3VtZW50VVJJID0gUEFTUzogZG9jdW1lbnRVUkkgY2FuIGhvbGQgYW4gYXJi
aXRyYXJ5IHN0cmluZy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1l
bnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZG9jdW1lbnR1cmktY2FuLWhvbGQtYXJiaXRyYXJ5LXN0cmluZy5odG1sCmluZGV4IDViMGUw
YzguLjg4NzJjMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJp
LWNhbi1ob2xkLWFyYml0cmFyeS1zdHJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9kb2N1bWVudHVyaS1jYW4taG9sZC1hcmJpdHJhcnktc3RyaW5nLmh0bWwKQEAgLTIsMTAgKzIs
MTQgQEAKIDxib2R5PgogPHByZT4KIDxzY3JpcHQ+CitmdW5jdGlvbiBub3JtYWxpemVVUkwodXJs
KSB7CisgIHJldHVybiB1cmwuc3Vic3RyaW5nKHVybC5sYXN0SW5kZXhPZignTGF5b3V0VGVzdHMn
KSk7Cit9CisKIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAotZG9jdW1lbnQud3JpdGVsbignZG9jdW1lbnQuZG9j
dW1lbnRVUkkgPSAnICsgZG9jdW1lbnQuZG9jdW1lbnRVUkkpOworZG9jdW1lbnQud3JpdGVsbign
bm9ybWFsaXplVVJMKGRvY3VtZW50LmRvY3VtZW50VVJJKSA9ICcgKyBub3JtYWxpemVVUkwoZG9j
dW1lbnQuZG9jdW1lbnRVUkkpKTsKIGRvY3VtZW50LndyaXRlbG4oJ0Fzc2lnbmluZyB0byBkb2N1
bWVudFVSSScpOwogZG9jdW1lbnQuZG9jdW1lbnRVUkkgPSAnUEFTUzogZG9jdW1lbnRVUkkgY2Fu
IGhvbGQgYW4gYXJiaXRyYXJ5IHN0cmluZy4nOwogZG9jdW1lbnQud3JpdGVsbignZG9jdW1lbnQu
ZG9jdW1lbnRVUkkgPSAnICsgZG9jdW1lbnQuZG9jdW1lbnRVUkkpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktbm90LWFmZmVjdGVkLWJ5LWJhc2UtdGFnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLW5vdC1hZmZlY3Rl
ZC1ieS1iYXNlLXRhZy1leHBlY3RlZC50eHQKaW5kZXggYjcwODFlYi4uYmE5Njc4NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktbm90LWFmZmVjdGVkLWJ5LWJh
c2UtdGFnLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVy
aS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10YWctZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMiBAQAog
VGhlIGRvY3VtZW50LmRvY3VtZW50VVJJIHByb3BlcnR5IHNob3VsZCBub3QgYmUgYWZmZWN0ZWQg
YnkgdGhlIDxiYXNlPiB0YWcuCi1maWxlOi8vL1VzZXJzL2FiYXJ0aC9naXQvd2Via2l0L0xheW91
dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50dXJpLW5vdC1hZmZlY3RlZC1ieS1iYXNlLXRhZy5odG1s
CitMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10
YWcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnR1cmktbm90
LWFmZmVjdGVkLWJ5LWJhc2UtdGFnLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVu
dHVyaS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10YWcuaHRtbAppbmRleCBlOThmMTBmLi45ZDIyNmQ0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVyaS1ub3QtYWZmZWN0
ZWQtYnktYmFzZS10YWcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudHVy
aS1ub3QtYWZmZWN0ZWQtYnktYmFzZS10YWcuaHRtbApAQCAtMywxMSArMywxNSBAQAogPHNjcmlw
dD4KIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbm9ybWFsaXplVVJMKHVybCkgeworICByZXR1
cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoJ0xheW91dFRlc3RzJykpOworfQogPC9z
Y3JpcHQ+CiA8YmFzZSBocmVmPSJodHRwOi8vZmFpbC5leGFtcGxlLmNvbS8iPgogPC9oZWFkPgog
PGJvZHk+CiA8ZGl2PlRoZSBkb2N1bWVudC5kb2N1bWVudFVSSSBwcm9wZXJ0eSBzaG91bGQgbm90
IGJlIGFmZmVjdGVkIGJ5IHRoZSAmbHQ7YmFzZSZndDsgdGFnLjwvZGl2PgotPHNjcmlwdD5kb2N1
bWVudC53cml0ZShkb2N1bWVudC5kb2N1bWVudFVSSSk7PC9zY3JpcHQ+Cis8c2NyaXB0PmRvY3Vt
ZW50LndyaXRlKG5vcm1hbGl6ZVVSTChkb2N1bWVudC5kb2N1bWVudFVSSSkpOzwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgo=
</data>
<flag name="review"
          id="9542"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>