<?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>44133</bug_id>
          
          <creation_ts>2010-08-17 14:51:14 -0700</creation_ts>
          <short_desc>Implement an XHR.responseBlob accessor</short_desc>
          <delta_ts>2010-08-27 12:43:05 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>44660</dependson>
          <blocked>44721</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Nordman">michaeln</reporter>
          <assigned_to name="Michael Nordman">michaeln</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ericu</cc>
    
    <cc>fishd</cc>
    
    <cc>jianli</cc>
    
    <cc>kinuko</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>265783</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-17 14:51:14 -0700</bug_when>
    <thetext>Implement an XHR.responseBlob accessor to get an opaque reference to the response data as a blob.

Two new additions for the XHR interface in support of this. This is not solidified yet, still pending some discussion on the public lists.

boolean attribute asBlob;
// Prepares the XHR to make the response available as a blob object.
// Defaults to false, must be set after calling open() and
// prior to calling send(). Gets reset upon subsequent calls to open().
// Throws INVALID_STATE_ERR if set at an invalid time. Maybe read at
// anytime without exception.

Blob attribute responseBlob;
// Returns a blob the contains the response body.
// Only valid to access when asBlob is true and when the request is in
// a terminal state. Throws INVALID_STATE_ERR if accessed at an
// invalid time.

When asBlob is true, the other response accessors (responseText, resonseXML, responseBody) throw INVALID_STATE_ERR if accessed.

We&apos;re making this &quot;modal&quot; for the benefit of the browser vendors, to make it easier for them to know how to handle the response data as it comes in. With a priori knowlege that the data need never be made available thru the responseText attribute, life is a little easier for them/us.

Also see http://code.google.com/p/chromium/issues/detail?id=52486</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267011</commentid>
    <comment_count>1</comment_count>
      <attachid>64905</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-19 15:52:04 -0700</bug_when>
    <thetext>Created attachment 64905
xhr.responseBlob bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>267079</commentid>
    <comment_count>2</comment_count>
      <attachid>64915</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-19 17:18:19 -0700</bug_when>
    <thetext>Created attachment 64915
xhr.responseBlob bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268061</commentid>
    <comment_count>3</comment_count>
      <attachid>65153</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-23 12:43:59 -0700</bug_when>
    <thetext>Created attachment 65153
xhr.responseBlob bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268161</commentid>
    <comment_count>4</comment_count>
      <attachid>65153</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-23 16:31:58 -0700</bug_when>
    <thetext>Comment on attachment 65153
xhr.responseBlob bindings

WebCore/xml/XMLHttpRequest.cpp:347
 +      if (!RuntimeEnabledFeatures::responseBlobEnabled()) {
This check isn&apos;t needed for V8 since the test occurs in the bindings layer. Is testing here an appropriate way of handling this for JSC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268331</commentid>
    <comment_count>5</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-23 23:30:40 -0700</bug_when>
    <thetext>I&apos;m not a reviewer but this change looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268830</commentid>
    <comment_count>6</comment_count>
      <attachid>65153</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-24 14:58:32 -0700</bug_when>
    <thetext>Comment on attachment 65153
xhr.responseBlob bindings

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 65820)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,36 @@
&gt; +2010-08-19  Michael Nordman  &lt;michaeln@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=44133
&gt; +        IDL bindings for XmlHttpRequest.responseBlob support, doesn&apos;t do anything yet.
&gt; +        Adds two new attributes, asBlob and responseBlob.
&gt; +        Runtime disabled by default, also behind the ENABLE_BLOB compile time guard.

I&apos;m a bit concerned by using the same define. It is only runtime disabled for v8 but now people who want to implement blob&apos;s have this new work to finish to turn on the define.



&gt; +        
&gt; +        No new tests, just adding some stubs.
&gt; +
&gt; +        * bindings/generic/RuntimeEnabledFeatures.cpp:
&gt; +        * bindings/generic/RuntimeEnabledFeatures.h:
&gt; +        (WebCore::RuntimeEnabledFeatures::setResponseBlobEnabled):
&gt; +        (WebCore::RuntimeEnabledFeatures::responseBlobEnabled):
&gt; +        (WebCore::RuntimeEnabledFeatures::asBlobEnabled):
&gt; +        * bindings/js/JSXMLHttpRequestCustom.cpp:
&gt; +        (WebCore::JSXMLHttpRequest::responseText): Changed to allow an exceptional return path

Please add &quot;.&quot;

&gt; +        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
&gt; +        (WebCore::V8XMLHttpRequest::responseTextAccessorGetter): Changed to allow an exceptional return path
&gt; +        * xml/XMLHttpRequest.cpp:
&gt; +        (WebCore::XMLHttpRequest::responseText): Changed to raise an exception when accessed with asBlob set to true
&gt; +        (WebCore::XMLHttpRequest::responseXML): Changed to raise an exception when accessed with asBlob set to true

&quot;Ditto.&quot; works instead of repeating the same text.

&gt; +        (WebCore::XMLHttpRequest::responseBlob): Added stub method, returns 0 for now
&gt; +        (WebCore::XMLHttpRequest::setAsBlob): Sets the asBlob attribute, raises exception if called at an inapropiate time
Typo: inapropiate



&gt; Index: WebCore/bindings/generic/RuntimeEnabledFeatures.h
&gt;      static bool speechInputEnabled() { return isSpeechInputEnabled; }
&gt;      static bool speechEnabled() { return isSpeechInputEnabled; }
&gt;  
&gt; +    static void setResponseBlobEnabled(bool isEnabled) { isResponseBlobEnabled = isEnabled; }
&gt; +    static bool responseBlobEnabled() { return isResponseBlobEnabled; }
&gt; +    static bool asBlobEnabled()  { return isResponseBlobEnabled; }

In this context, asBlob really doesn&apos;t stand on its own. Also why are these two separate bools?   Oh I see, I guess the tooling needs this name and the separate Enabled flags.

Why not name the set as setBlobInXMlHttpRequestEnabled because if I just looked at setResponseBlobEnabled alone, I&apos;m not sure that I would know what it does.


&gt; Index: WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
&gt; ===================================================================
&gt; +    ExceptionCode ec = 0;
&gt; +    const ScriptString&amp; text = impl()-&gt;responseText(ec);

const ScriptString&amp; feels iffy. It seems to rely on an implementation detail that the underlying script wasn&apos;t created just to return it.

Copying these string is very cheap, so just make it a ScriptString.



&gt; Index: WebCore/bindings/v8/custom/V8XMLHttpRequestCustom.cpp
&gt; +    ExceptionCode ec = 0;
&gt; +    const ScriptString&amp; text = xmlHttpRequest-&gt;responseText(ec);

Ditto.


&gt; Index: WebCore/xml/XMLHttpRequest.cpp
&gt; ===================================================================
&gt; +#if ENABLE(BLOB)
&gt; +void XMLHttpRequest::setAsBlob(bool value, ExceptionCode&amp; ec)
&gt; +{
&gt; +    if (!RuntimeEnabledFeatures::responseBlobEnabled()) {

How does it get here?

&gt; +        ec = NOT_SUPPORTED_ERR;
&gt; +        return;
&gt; +    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268848</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-24 15:22:42 -0700</bug_when>
    <thetext>Thnx for looking!

(In reply to comment #6)
&gt; &gt; +        Runtime disabled by default, also behind the ENABLE_BLOB compile time guard.
&gt; 
&gt; I&apos;m a bit concerned by using the same define. It is only runtime disabled for v8 but now
&gt; people who want to implement blob&apos;s have this new work to finish to turn on the define.

Ok... ENABLE(XML_HTTP_REQUEST_RESPONSE_BLOB) or ENABLE(XHR_RESPONSE_BLOB)... any preference?

I guess i should put my other changes (in the works) behind this flag too.

&gt; Please add &quot;.&quot;

Will do

&gt; Typo: inapropiate

Ditto

&gt; &gt; +    static void setResponseBlobEnabled(bool isEnabled) { isResponseBlobEnabled = isEnabled; }
&gt; &gt; +    static bool responseBlobEnabled() { return isResponseBlobEnabled; }
&gt; &gt; +    static bool asBlobEnabled()  { return isResponseBlobEnabled; }
&gt; 
&gt; In this context, asBlob really doesn&apos;t stand on its own. Also why are these two separate bools?
&gt; Oh I see, I guess the tooling needs this name and the separate Enabled flags.

Yes, because of how the generated bindings work.

&gt; Why not name the set as setBlobInXMlHttpRequestEnabled because if I just looked at setResponseBlobEnabled
&gt; alone, I&apos;m not sure that I would know what it does.

Sure... how about...
void setXmlHttpRequestResponseBlobEnabled(bool)
bool responseBlobEnabled();
bool asBlobEnabled();


&gt; const ScriptString&amp; feels iffy. It seems to rely on an implementation detail that the underlying script wasn&apos;t created just to return it.
&gt; 
&gt; Copying these string is very cheap, so just make it a ScriptString.

Not sure about this one. I had no idea that copying this type of string is cheap. Changing it to make that copy feels like it relies on that implementation detail that copies are cheap to make.

That method of XmlHttpReqeust is defined to return a const ref
const ScriptString&amp; responseText(ExceptionCode&amp;) const;
As coded, all i&apos;m relying on is that public interface.

I&apos;d prefer to leave this as is.


&gt; &gt; +    if (!RuntimeEnabledFeatures::responseBlobEnabled()) {
&gt; 
&gt; How does it get here?

See the previous comment in the review log. Looks like JSC bindings don&apos;t handle runtime disablement like v8 bindings do. That&apos;s why I was asking about how to handle this difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268884</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-24 16:09:43 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Thnx for looking!
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; &gt; +        Runtime disabled by default, also behind the ENABLE_BLOB compile time guard.
&gt; &gt; 
&gt; &gt; I&apos;m a bit concerned by using the same define. It is only runtime disabled for v8 but now
&gt; &gt; people who want to implement blob&apos;s have this new work to finish to turn on the define.
&gt; 
&gt; Ok... ENABLE(XML_HTTP_REQUEST_RESPONSE_BLOB) or ENABLE(XHR_RESPONSE_BLOB)... any preference?

ENABLE(XHR_RESPONSE_BLOB) 


&gt; Sure... how about...
&gt; void setXmlHttpRequestResponseBlobEnabled(bool)
&gt; bool responseBlobEnabled();
&gt; bool asBlobEnabled();

Ok.


&gt; &gt; const ScriptString&amp; feels iffy. It seems to rely on an implementation detail that the underlying script wasn&apos;t created just to return it.
&gt; I&apos;d prefer to leave this as is.

ok.

&gt; 
&gt; 
&gt; &gt; &gt; +    if (!RuntimeEnabledFeatures::responseBlobEnabled()) {
&gt; See the previous comment in the review log. Looks like JSC bindings don&apos;t handle runtime disablement like v8 bindings do. That&apos;s why I was asking about how to handle this difference.

As discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268940</commentid>
    <comment_count>9</comment_count>
      <attachid>65348</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-24 17:56:31 -0700</bug_when>
    <thetext>Created attachment 65348
xhr.responseBlob bindings

Switched to using ENABLE(XHR_RESPONSE_BLOB) instead of ENABLE(BLOB).
Defined that only for the chromium port in features.gypi
And other changes as we discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268943</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-24 17:58:28 -0700</bug_when>
    <thetext>I&apos;ll fix the changelog entry typo too (forgot to do that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268946</commentid>
    <comment_count>11</comment_count>
      <attachid>65351</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-24 18:01:03 -0700</bug_when>
    <thetext>Created attachment 65351
xhr.responseBlob bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>268950</commentid>
    <comment_count>12</comment_count>
      <attachid>65351</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-24 18:08:50 -0700</bug_when>
    <thetext>Comment on attachment 65351
xhr.responseBlob bindings

(In a future patch) Please consider hooking up your define for other platforms as well like this: http://trac.webkit.org/changeset/61545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269177</commentid>
    <comment_count>13</comment_count>
      <attachid>65351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 05:24:37 -0700</bug_when>
    <thetext>Comment on attachment 65351
xhr.responseBlob bindings

Rejecting patch 65351 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1
Last 500 characters of output:
 setenv YACC /Developer/usr/bin/yacc
    /bin/sh -c /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Script-5DF50887116F3077005202AB.sh
** BUILD FAILED **

The following build commands failed:
WebCore:
	Distributed-CompileC /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/i386/XMLHttpRequest.o /Users/eseidel/Projects/CommitQueue/WebCore/xml/XMLHttpRequest.cpp normal i386 c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/3735585</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269391</commentid>
    <comment_count>14</comment_count>
      <attachid>65449</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-25 11:30:48 -0700</bug_when>
    <thetext>Created attachment 65449
xhr.responseBlob bindings

Ooops... use UNUSED_PARAM(ec) in the responseText(ExceptionCode&amp; ec) and responseXML(ExceptionCode&amp; ec) methods when XHR_RESPONSE_BLOB is not enabled.

-const ScriptString&amp; XMLHttpRequest::responseText() const
+const ScriptString&amp; XMLHttpRequest::responseText(ExceptionCode&amp; ec) const
 {
+#if ENABLE(XHR_RESPONSE_BLOB)
+    if (m_asBlob)
+        ec = INVALID_STATE_ERR;
+#else
+    UNUSED_PARAM(ec);
+#endif
     return m_responseText;
 }
 
-Document* XMLHttpRequest::responseXML() const
+Document* XMLHttpRequest::responseXML(ExceptionCode&amp; ec) const
 {
+#if ENABLE(XHR_RESPONSE_BLOB)
+    if (m_asBlob) {
+        ec = INVALID_STATE_ERR;
+        return 0;
+    }
+#else
+    UNUSED_PARAM(ec);
+#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269398</commentid>
    <comment_count>15</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-25 11:37:37 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Created an attachment (id=65449) [details]
&gt; xhr.responseBlob bindings
&gt; 
&gt; Ooops... use UNUSED_PARAM(ec) in the responseText(ExceptionCode&amp; ec) and responseXML(ExceptionCode&amp; ec) methods when XHR_RESPONSE_BLOB is not enabled.

You should include &lt;wtf/unused.h&gt; (didn&apos;t r- since you didn&apos;t r?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269402</commentid>
    <comment_count>16</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-25 11:40:54 -0700</bug_when>
    <thetext>&gt; You should include &lt;wtf/unused.h&gt; (didn&apos;t r- since you didn&apos;t r?)

Yup, noticed that too, that&apos;s why i didn&apos;t r? it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269419</commentid>
    <comment_count>17</comment_count>
      <attachid>65458</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-25 11:57:09 -0700</bug_when>
    <thetext>Created attachment 65458
xhr.responseBlob bindings

#include &lt;wtf/UnusedParam.h&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269423</commentid>
    <comment_count>18</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-08-25 11:59:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; You should include &lt;wtf/unused.h&gt; (didn&apos;t r- since you didn&apos;t r?)
&gt; 
&gt; Yup, noticed that too, that&apos;s why i didn&apos;t r? it :)

fwiw, you can also obsolete a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269641</commentid>
    <comment_count>19</comment_count>
      <attachid>65351</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-25 17:54:30 -0700</bug_when>
    <thetext>Comment on attachment 65351
xhr.responseBlob bindings

Cleared David Levin&apos;s review+ from obsolete attachment 65351 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269690</commentid>
    <comment_count>20</comment_count>
      <attachid>65458</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 19:54:27 -0700</bug_when>
    <thetext>Comment on attachment 65458
xhr.responseBlob bindings

Clearing flags on attachment: 65458

Committed r66074: &lt;http://trac.webkit.org/changeset/66074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>269692</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-25 19:54:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270044</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-26 12:44:25 -0700</bug_when>
    <thetext>Hmmm... reverted?
https://bugs.webkit.org/show_bug.cgi?id=44660</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270047</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-26 12:47:41 -0700</bug_when>
    <thetext>From Yuzo...

I&apos;ve rolled out your change WebKit r66074 because it causes the following error at Chromium canaries:
Webkit (webkit.org)
Webkit Linux (webkit.org)

--- /b/slave/webkit-rel-linux-webkit-org/build/src/webkit/Release/../../../layout-test-results/http/tests/xmlhttprequest/zero-length-response-sync-expected.txt 
+++ /b/slave/webkit-rel-linux-webkit-org/build/src/webkit/Release/../../../layout-test-results/http/tests/xmlhttprequest/zero-length-response-sync-actual.txt 
@@ -1,7 +1,7 @@
 Test for bug 5924 - zero-length responses to XMLHTTPRequest mishandled.
 
 after creation: Uninitialized
-ResponseText: &quot;&quot;
+Exception getting responseText: INVALID_STATE_ERR: DOM Exception 11
 after setting onreadystatechange: Uninitialized
 after open(): Open
 after overrideMimeType(): Open

--- c:\b\slave\webkit-rel-webkit-org\build\src\webkit\Release\..\../../layout-test-results\http/tests/xmlhttprequest/zero-length-response-sync-expected.txt 
+++ c:\b\slave\webkit-rel-webkit-org\build\src\webkit\Release\..\../../layout-test-results\http/tests/xmlhttprequest/zero-length-response-sync-actual.txt 
@@ -1,7 +1,7 @@
 Test for bug 5924 - zero-length responses to XMLHTTPRequest mishandled.
 
 after creation: Uninitialized
-ResponseText: &quot;&quot;
+Exception getting responseText: INVALID_STATE_ERR: DOM Exception 11
 after setting onreadystatechange: Uninitialized
 after open(): Open
 after overrideMimeType(): Open</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270069</commentid>
    <comment_count>24</comment_count>
      <attachid>65607</attachid>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2010-08-26 13:16:24 -0700</bug_when>
    <thetext>Created attachment 65607
xhr.responseBlob bindings

Ok... let&apos;s try this again this time with the new m_asBlob data member in the initializer list and initted to false.

@@ -171,6 +172,9 @@ XMLHttpRequest::XMLHttpRequest(ScriptExe
     : ActiveDOMObject(context, this)
     , m_async(true)
     , m_includeCredentials(false)
+#if ENABLE(XHR_RESPONSE_BLOB)
+    , m_asBlob(false)
+#endif
     , m_state(UNSENT)
     , m_responseText(&quot;&quot;)
     , m_createdDocument(false)


And another small change to conditionally define the runtime enabled flag

+#if ENABLE(XHR_RESPONSE_BLOB)
+    static bool isXHRResponseBlobEnabled;
+#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270670</commentid>
    <comment_count>25</comment_count>
      <attachid>65607</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-27 12:42:58 -0700</bug_when>
    <thetext>Comment on attachment 65607
xhr.responseBlob bindings

Clearing flags on attachment: 65607

Committed r66243: &lt;http://trac.webkit.org/changeset/66243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270671</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-27 12:43:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64905</attachid>
            <date>2010-08-19 15:52:04 -0700</date>
            <delta_ts>2010-08-19 17:18:19 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.txt</filename>
            <type>text/plain</type>
            <size>13646</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBSdW50aW1lIGRpc2FibGVkIGJ5IGRlZmF1
bHQuIEFsc28gYmVoaW5kIHRoZSBFTkFCTEVfQkxPQiBjb21wbGlsZSB0aW1lIGd1YXJkLgorICAg
ICAgICAKKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgYWRkaW5nIHNvbWUgc3R1YnMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0UmVzcG9uc2VCbG9iRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXNwb25z
ZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmFzQmxvYkVuYWJsZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VU
ZXh0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHRB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpyZXNwb25zZUJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnNldEFzQmxvYik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Bl
bik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFzQmxvYik6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKwogMjAxMC0wOC0xOSAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJVSUxEIEZJWCAjMzogPGh0dHA6Ly93
ZWJraXQub3JnL2IvNDQyODU+IEZpeCBjb21waWxhdGlvbiB3aXRoIE5FVFNDQVBFX1BMVUdJTl9B
UEkgZGlzYWJsZWQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDY1NzExKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MCw2ICs1MCw3IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNUb3VjaEVuYWIK
IGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNEZXZpY2VNb3Rpb25FbmFibGVkID0gdHJ1
ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNEZXZpY2VPcmllbnRhdGlvbkVuYWJs
ZWQgPSB0cnVlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1NwZWVjaElucHV0RW5h
YmxlZCA9IHRydWU7Citib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzUmVzcG9uc2VCbG9i
RW5hYmxlZCA9IGZhbHNlOwogCiAjaWYgRU5BQkxFKFZJREVPKQogCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgJKHJldmlzaW9u
IDY1NzExKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGJvb2wgc3BlZWNoSW5wdXRFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVlY2hJbnB1dEVuYWJs
ZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVlY2hJ
bnB1dEVuYWJsZWQ7IH0KIAorICAgIHN0YXRpYyB2b2lkIHNldFJlc3BvbnNlQmxvYkVuYWJsZWQo
Ym9vbCBpc0VuYWJsZWQpIHsgaXNSZXNwb25zZUJsb2JFbmFibGVkID0gaXNFbmFibGVkOyB9Cisg
ICAgc3RhdGljIGJvb2wgcmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJuIGlzUmVzcG9uc2VC
bG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAgeyByZXR1cm4g
aXNSZXNwb25zZUJsb2JFbmFibGVkOyB9CisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFu
dGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpIHsgfQpAQCAtMTQ0LDYgKzE0OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNEZXZpY2VNb3Rpb25FbmFibGVkOwogICAg
IHN0YXRpYyBib29sIGlzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkOwogICAgIHN0YXRpYyBib29s
IGlzU3BlZWNoSW5wdXRFbmFibGVkOworICAgIHN0YXRpYyBib29sIGlzUmVzcG9uc2VCbG9iRW5h
YmxlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU3MTEpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjQsNyArMTI0LDEzIEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2Vu
ZChFeGVjU3RhdGUKIAogSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBqc093bmVkU3RyaW5nT3JOdWxsKGV4
ZWMsIGltcGwoKS0+cmVzcG9uc2VUZXh0KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGNvbnN0IFNjcmlwdFRleHQmIHRleHQgPSBpbXBsKCktPnJlc3BvbnNlVGV4dChlYyk7Cisg
ICAgaWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKyAgICByZXR1cm4ganNPd25lZFN0cmluZ09y
TnVsbChleGVjLCB0ZXh0KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1hN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTWE1MSHR0cFJlcXVlc3QoRXhlY1N0
YXRlKiBleGVjKQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVx
dWVzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDY1NzExKQorKysgV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ5LDcgKzQ5LDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1
ZXN0OjoKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5YTUxIdHRwUmVxdWVzdC5yZXNwb25zZXRleHQu
X2dldCIpOwogICAgIFhNTEh0dHBSZXF1ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IFY4WE1MSHR0cFJl
cXVlc3Q6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIHJldHVybiB4bWxIdHRwUmVxdWVz
dC0+cmVzcG9uc2VUZXh0KCkudjhTdHJpbmdPck51bGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKKyAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHRleHQgPSB4bWxIdHRwUmVxdWVzdC0+cmVz
cG9uc2VUZXh0KGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVj
KTsKKyAgICByZXR1cm4gdGV4dC52OFN0cmluZ09yTnVsbCgpOwogfQogCiB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA2NTcxMSkKKysr
IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBA
IC0yMjUsMTMgKzIyNiwyNCBAQCBYTUxIdHRwUmVxdWVzdDo6U3RhdGUgWE1MSHR0cFJlcXVlc3Q6
OnJlCiAgICAgcmV0dXJuIG1fc3RhdGU7CiB9CiAKLWNvbnN0IFNjcmlwdFN0cmluZyYgWE1MSHR0
cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCgpIGNvbnN0Citjb25zdCBTY3JpcHRTdHJpbmcmIFhNTEh0
dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisjaWYg
RU5BQkxFKEJMT0IpCisgICAgaWYgKG1fYXNCbG9iKQorICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworI2VuZGlmCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VUZXh0OwogfQogCi1Eb2N1bWVu
dCogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkgY29uc3QKK0RvY3VtZW50KiBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisjaWYgRU5B
QkxFKEJMT0IpCisgICAgaWYgKG1fYXNCbG9iKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFU
RV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fc3Rh
dGUgIT0gRE9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI1Niw2ICsyNjgsMTcgQEAgRG9j
dW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgcmV0dXJuIG1fcmVzcG9u
c2VYTUwuZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoQkxPQikKK0Jsb2IqIFhNTEh0dHBSZXF1ZXN0
OjpyZXNwb25zZUJsb2IoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCFtX2Fz
QmxvYikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgcmV0dXJuIG1fcmVzcG9uc2VCbG9iLmdldCgpOworfQorI2VuZGlmCisK
IFhNTEh0dHBSZXF1ZXN0VXBsb2FkKiBYTUxIdHRwUmVxdWVzdDo6dXBsb2FkKCkKIHsKICAgICBp
ZiAoIW1fdXBsb2FkKQpAQCAtMzE4LDYgKzM0MSwyMyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpz
ZXRXaXRoQ3JlZGVudGlhbHMoCiAgICAgbV9pbmNsdWRlQ3JlZGVudGlhbHMgPSB2YWx1ZTsKIH0K
IAorI2lmIEVOQUJMRShCTE9CKQordm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0QXNCbG9iKGJvb2wg
dmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6cmVzcG9uc2VCbG9iRW5hYmxlZCgpKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9zdGF0ZSAhPSBPUEVO
RUQgfHwgbV9sb2FkZXIpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIG1fYXNCbG9iID0gdmFsdWU7Cit9CisjZW5kaWYKKwog
dm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VS
TCYgdXJsLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBvcGVuKG1ldGhvZCwgdXJsLCB0cnVl
LCBlYyk7CkBAIC0zMjksNyArMzY5LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6b3Blbihjb25z
dCBTdHJpbmcmCiAgICAgU3RhdGUgcHJldmlvdXNTdGF0ZSA9IG1fc3RhdGU7CiAgICAgbV9zdGF0
ZSA9IFVOU0VOVDsKICAgICBtX2Vycm9yID0gZmFsc2U7Ci0KKyNpZiBFTkFCTEUoQkxPQikKKyAg
ICBtX2FzQmxvYiA9IGZhbHNlOworI2VuZGlmCiAgICAgbV91cGxvYWRDb21wbGV0ZSA9IGZhbHNl
OwogCiAgICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCkBAIC01
NDUsNiArNTg3LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdChFeGNlcAog
ICAgIG9wdGlvbnMuZm9yY2VQcmVmbGlnaHQgPSB1cGxvYWRFdmVudHM7CiAgICAgb3B0aW9ucy5h
bGxvd0NyZWRlbnRpYWxzID0gbV9zYW1lT3JpZ2luUmVxdWVzdCB8fCBtX2luY2x1ZGVDcmVkZW50
aWFsczsKICAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IFVzZUFjY2Vzc0Nv
bnRyb2w7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgb3B0aW9ucy5hc0Jsb2IgPSBtX2FzQmxvYjsK
KyNlbmRpZgogCiAgICAgbV9leGNlcHRpb25Db2RlID0gMDsKICAgICBtX2Vycm9yID0gZmFsc2U7
CkBAIC01OTQsNiArNjM5LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogICAgIG1f
cmVzcG9uc2VUZXh0ID0gIiI7CiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBt
X3Jlc3BvbnNlWE1MID0gMDsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9
IDA7CisjZW5kaWYKIAogICAgIC8vIENsZWFyIGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkgdGhlIHNw
ZWMKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CkBAIC02NDAsNiArNjg4LDkgQEAgdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXNwb25zZSgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAi
IjsKICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAw
OworI2lmIEVOQUJMRShCTE9CKQorICAgIG1fcmVzcG9uc2VCbG9iID0gMDsKKyNlbmRpZgogfQog
CiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlcXVlc3QoKQpAQCAtOTAyLDYgKzk1MywxMCBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKHVuCiAgICAgaWYgKG1fZGVj
b2RlcikKICAgICAgICAgbV9yZXNwb25zZVRleHQgKz0gbV9kZWNvZGVyLT5mbHVzaCgpOwogCisj
aWYgRU5BQkxFKEJMT0IpCisgICAgLy8gRklYTUU6IFNldCBtX3Jlc3BvbnNlQmxvYiBzZXQgdG8g
c29tZXRoaW5nIGhlcmUgaW4gdGhlIG1fYXNCbG9iIGNhc2UuCisjZW5kaWYKKwogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKQogICAgICAgICBp
bnNwZWN0b3ItPnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChpZGVudGlmaWVyLCBt
X3Jlc3BvbnNlVGV4dCwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVy
KTsKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gNjU3MTEpCisrKyBXZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxMCBAQCBwdWJs
aWM6CiAgICAgU3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwogICAgIGJvb2wgd2l0aENyZWRlbnRp
YWxzKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdWRlQ3JlZGVudGlhbHM7IH0KICAgICB2b2lkIHNl
dFdpdGhDcmVkZW50aWFscyhib29sLCBFeGNlcHRpb25Db2RlJik7CisjaWYgRU5BQkxFKEJMT0Ip
CisgICAgYm9vbCBhc0Jsb2IoKSBjb25zdCB7IHJldHVybiBtX2FzQmxvYjsgfQorICAgIHZvaWQg
c2V0QXNCbG9iKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgogICAgIHZvaWQgb3Blbihj
b25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25z
dCBLVVJMJiwgYm9vbCBhc3luYywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNlcHRpb25Db2RlJik7
CkBAIC04NCw4ICs4OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZU1pbWVUeXBlKGNv
bnN0IFN0cmluZyYgb3ZlcnJpZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMo
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBjb25zdCBT
Y3JpcHRTdHJpbmcmIHJlc3BvbnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3VtZW50KiByZXNwb25z
ZVhNTCgpIGNvbnN0OworICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKKyAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OworI2lmIEVOQUJMRShCTE9CKQorICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNl
cHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYKICAgICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJl
cih1bnNpZ25lZCBsaW5lTnVtYmVyKSB7IG1fbGFzdFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJl
cjsgfQogICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0
U2VuZFVSTCA9IHVybDsgfQogCkBAIC0xNTUsNiArMTYyLDEwIEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fbWltZVR5cGVPdmVycmlkZTsKICAgICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2lu
Y2x1ZGVDcmVkZW50aWFsczsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICBib29sIG1fYXNCbG9iOwor
ICAgIFJlZlB0cjxCbG9iPiBtX3Jlc3BvbnNlQmxvYjsKKyNlbmRpZgogCiAgICAgUmVmUHRyPFRo
cmVhZGFibGVMb2FkZXI+IG1fbG9hZGVyOwogICAgIFN0YXRlIG1fc3RhdGU7CkluZGV4OiBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuaWRsCShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTEgQEAgbW9kdWxlIHhtbCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOwog
CiAgICAgICAgIC8vIHJlcXVlc3QKKyNpZiBkZWZpbmVkKEVOQUJMRV9CTE9CKSAmJiBFTkFCTEVf
QkxPQgorICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gYXNCbG9i
CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKKwogICAg
ICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKICAgICAgICAgICAgIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgLy8gdm9pZCBvcGVuKGluIERPTVN0cmlu
ZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmwpOwpAQCAtODIsOCArODcsMTQgQEAgbW9kdWxlIHht
bCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW1JlcXVpcmVz
QWxsQXJndW1lbnRzPVJhaXNlLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBn
ZXRSZXNwb25zZUhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyKQogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVy
XSBET01TdHJpbmcgcmVzcG9uc2VUZXh0OyAvLyBUaGUgY3VzdG9tIGdldHRlciBpbXBsZW1lbnRz
IENvbnZlcnROdWxsU3RyaW5nVG89TnVsbAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9j
dW1lbnQgcmVzcG9uc2VYTUw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0
dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVu
dHMgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsCisgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCByZXNwb25z
ZVhNTAorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2lmIGRlZmlu
ZWQoRU5BQkxFX0JMT0IpICYmIEVOQUJMRV9CTE9CCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbRW5hYmxlZEF0UnVudGltZV0gQmxvYiByZXNwb25zZUJsb2IKKyAgICAgICAgICAgIGdldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgc2hvcnQgc3RhdHVzCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVzVGV4
dApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0xOSAgTWlj
aGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDQxMzMKKyAgICAgICAgV2ViS2l0QVBJIHRvIGFsbG93IHJ1bnRpbWUgZW5h
YmxlbWVudCBvZiBYbWxIdHRwUmVxdWVzdC5yZXNwb25zZUJsb2Igc3VwcG9ydC4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGlt
ZUZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVSZXNwb25zZUJsb2IpOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6Omlz
UmVzcG9uc2VCbG9iRW5hYmxlZCk6CisKIDIwMTAtMDgtMTkgIFZpbmNlbnQgU2NoZWliICA8c2No
ZWliQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAkocmV2aXNp
b24gNjU3MTEpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJ
IHN0YXRpYyB2b2lkIGVuYWJsZVNwZWVjaElucHV0KGJvb2wpOwogICAgIFdFQktJVF9BUEkgc3Rh
dGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQoKTsKIAorICAgIFdFQktJVF9BUEkgc3RhdGlj
IHZvaWQgZW5hYmxlUmVzcG9uc2VCbG9iKGJvb2wpOworICAgIFdFQktJVF9BUEkgc3RhdGljIGJv
b2wgaXNSZXNwb25zZUJsb2JFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUnVudGltZUZl
YXR1cmVzKCk7CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVy
ZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1
cmVzLmNwcAkocmV2aXNpb24gNjU3MTEpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRp
bWVGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw0ICsyNTYsMTQgQEAgYm9vbCBX
ZWJSdW50aW1lRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbgogICAgIHJldHVybiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzcGVlY2hJbnB1dEVuYWJsZWQoKTsKIH0KIAordm9pZCBXZWJSdW50aW1l
RmVhdHVyZXM6OmVuYWJsZVJlc3BvbnNlQmxvYihib29sIGVuYWJsZSkKK3sKKyAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXRSZXNwb25zZUJsb2JFbmFibGVkKGVuYWJsZSk7Cit9CisKK2Jv
b2wgV2ViUnVudGltZUZlYXR1cmVzOjppc1Jlc3BvbnNlQmxvYkVuYWJsZWQoKQoreworICAgIHJl
dHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXNwb25zZUJsb2JFbmFibGVkKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64915</attachid>
            <date>2010-08-19 17:18:19 -0700</date>
            <delta_ts>2010-08-23 12:43:59 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.2.txt</filename>
            <type>text/plain</type>
            <size>13648</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBSdW50aW1lIGRpc2FibGVkIGJ5IGRlZmF1
bHQuIEFsc28gYmVoaW5kIHRoZSBFTkFCTEVfQkxPQiBjb21wbGlsZSB0aW1lIGd1YXJkLgorICAg
ICAgICAKKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgYWRkaW5nIHNvbWUgc3R1YnMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAg
ICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0UmVzcG9uc2VCbG9iRW5h
YmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXNwb25z
ZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmFzQmxvYkVuYWJsZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VU
ZXh0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHRB
Y2Nlc3NvckdldHRlcik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKToKKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0OjpyZXNwb25zZUJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnNldEFzQmxvYik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Bl
bik6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFzQmxvYik6CisgICAg
ICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKwogMjAxMC0wOC0xOSAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJVSUxEIEZJWCAjMzogPGh0dHA6Ly93
ZWJraXQub3JnL2IvNDQyODU+IEZpeCBjb21waWxhdGlvbiB3aXRoIE5FVFNDQVBFX1BMVUdJTl9B
UEkgZGlzYWJsZWQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDY1NzExKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MCw2ICs1MCw3IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNUb3VjaEVuYWIK
IGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNEZXZpY2VNb3Rpb25FbmFibGVkID0gdHJ1
ZTsKIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNEZXZpY2VPcmllbnRhdGlvbkVuYWJs
ZWQgPSB0cnVlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1NwZWVjaElucHV0RW5h
YmxlZCA9IHRydWU7Citib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzUmVzcG9uc2VCbG9i
RW5hYmxlZCA9IGZhbHNlOwogCiAjaWYgRU5BQkxFKFZJREVPKQogCkluZGV4OiBXZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgJKHJldmlzaW9u
IDY1NzExKQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGJvb2wgc3BlZWNoSW5wdXRFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVlY2hJbnB1dEVuYWJs
ZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVlY2hJ
bnB1dEVuYWJsZWQ7IH0KIAorICAgIHN0YXRpYyB2b2lkIHNldFJlc3BvbnNlQmxvYkVuYWJsZWQo
Ym9vbCBpc0VuYWJsZWQpIHsgaXNSZXNwb25zZUJsb2JFbmFibGVkID0gaXNFbmFibGVkOyB9Cisg
ICAgc3RhdGljIGJvb2wgcmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJuIGlzUmVzcG9uc2VC
bG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAgeyByZXR1cm4g
aXNSZXNwb25zZUJsb2JFbmFibGVkOyB9CisKIHByaXZhdGU6CiAgICAgLy8gTmV2ZXIgaW5zdGFu
dGlhdGUuCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlcygpIHsgfQpAQCAtMTQ0LDYgKzE0OCw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNEZXZpY2VNb3Rpb25FbmFibGVkOwogICAg
IHN0YXRpYyBib29sIGlzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkOwogICAgIHN0YXRpYyBib29s
IGlzU3BlZWNoSW5wdXRFbmFibGVkOworICAgIHN0YXRpYyBib29sIGlzUmVzcG9uc2VCbG9iRW5h
YmxlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU3MTEpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjQsNyArMTI0LDEzIEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2Vu
ZChFeGVjU3RhdGUKIAogSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoRXhl
Y1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBqc093bmVkU3RyaW5nT3JOdWxsKGV4
ZWMsIGltcGwoKS0+cmVzcG9uc2VUZXh0KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgdGV4dCA9IGltcGwoKS0+cmVzcG9uc2VUZXh0KGVjKTsK
KyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKKyAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgfQorICAgIHJldHVybiBqc093bmVkU3RyaW5n
T3JOdWxsKGV4ZWMsIHRleHQpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNYTUxIdHRwUmVxdWVzdChFeGVj
U3RhdGUqIGV4ZWMpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBS
ZXF1ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gNjU3MTEpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDksNyArNDksMTEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJl
cXVlc3Q6OgogewogICAgIElOQ19TVEFUUygiRE9NLlhNTEh0dHBSZXF1ZXN0LnJlc3BvbnNldGV4
dC5fZ2V0Iik7CiAgICAgWE1MSHR0cFJlcXVlc3QqIHhtbEh0dHBSZXF1ZXN0ID0gVjhYTUxIdHRw
UmVxdWVzdDo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgcmV0dXJuIHhtbEh0dHBSZXF1
ZXN0LT5yZXNwb25zZVRleHQoKS52OFN0cmluZ09yTnVsbCgpOworICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOworICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgdGV4dCA9IHhtbEh0dHBSZXF1ZXN0LT5y
ZXNwb25zZVRleHQoZWMpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3Io
ZWMpOworICAgIHJldHVybiB0ZXh0LnY4U3RyaW5nT3JOdWxsKCk7CiB9CiAKIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpvcGVuQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50cyYgYXJncykKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDY1NzExKQor
KysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIK
QEAgLTIyNSwxMyArMjI2LDI0IEBAIFhNTEh0dHBSZXF1ZXN0OjpTdGF0ZSBYTUxIdHRwUmVxdWVz
dDo6cmUKICAgICByZXR1cm4gbV9zdGF0ZTsKIH0KIAotY29uc3QgU2NyaXB0U3RyaW5nJiBYTUxI
dHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KCkgY29uc3QKK2NvbnN0IFNjcmlwdFN0cmluZyYgWE1M
SHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyNp
ZiBFTkFCTEUoQkxPQikKKyAgICBpZiAobV9hc0Jsb2IpCisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisjZW5kaWYKICAgICByZXR1cm4gbV9yZXNwb25zZVRleHQ7CiB9CiAKLURvY3Vt
ZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKSBjb25zdAorRG9jdW1lbnQqIFhNTEh0
dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyNpZiBF
TkFCTEUoQkxPQikKKyAgICBpZiAobV9hc0Jsb2IpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NU
QVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmCisKICAgICBpZiAobV9z
dGF0ZSAhPSBET05FKQogICAgICAgICByZXR1cm4gMDsKIApAQCAtMjU2LDYgKzI2OCwxNyBAQCBE
b2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKCkKICAgICByZXR1cm4gbV9yZXNw
b25zZVhNTC5nZXQoKTsKIH0KIAorI2lmIEVOQUJMRShCTE9CKQorQmxvYiogWE1MSHR0cFJlcXVl
c3Q6OnJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIW1f
YXNCbG9iKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVy
biAwOworICAgIH0KKyAgICByZXR1cm4gbV9yZXNwb25zZUJsb2IuZ2V0KCk7Cit9CisjZW5kaWYK
KwogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewogICAg
IGlmICghbV91cGxvYWQpCkBAIC0zMTgsNiArMzQxLDIzIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6
OnNldFdpdGhDcmVkZW50aWFscygKICAgICBtX2luY2x1ZGVDcmVkZW50aWFscyA9IHZhbHVlOwog
fQogCisjaWYgRU5BQkxFKEJMT0IpCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZXRBc0Jsb2IoYm9v
bCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZl
YXR1cmVzOjpyZXNwb25zZUJsb2JFbmFibGVkKCkpIHsKKyAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3N0YXRlICE9IE9Q
RU5FRCB8fCBtX2xvYWRlcikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9hc0Jsb2IgPSB2YWx1ZTsKK30KKyNlbmRpZgor
CiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBL
VVJMJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG9wZW4obWV0aG9kLCB1cmwsIHRy
dWUsIGVjKTsKQEAgLTMyOSw3ICszNjksOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNv
bnN0IFN0cmluZyYKICAgICBTdGF0ZSBwcmV2aW91c1N0YXRlID0gbV9zdGF0ZTsKICAgICBtX3N0
YXRlID0gVU5TRU5UOwogICAgIG1fZXJyb3IgPSBmYWxzZTsKLQorI2lmIEVOQUJMRShCTE9CKQor
ICAgIG1fYXNCbG9iID0gZmFsc2U7CisjZW5kaWYKICAgICBtX3VwbG9hZENvbXBsZXRlID0gZmFs
c2U7CiAKICAgICAvLyBjbGVhciBzdHVmZiBmcm9tIHBvc3NpYmxlIHByZXZpb3VzIGxvYWQKQEAg
LTU0NSw2ICs1ODcsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2Vw
CiAgICAgb3B0aW9ucy5mb3JjZVByZWZsaWdodCA9IHVwbG9hZEV2ZW50czsKICAgICBvcHRpb25z
LmFsbG93Q3JlZGVudGlhbHMgPSBtX3NhbWVPcmlnaW5SZXF1ZXN0IHx8IG1faW5jbHVkZUNyZWRl
bnRpYWxzOwogICAgIG9wdGlvbnMuY3Jvc3NPcmlnaW5SZXF1ZXN0UG9saWN5ID0gVXNlQWNjZXNz
Q29udHJvbDsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICBvcHRpb25zLmFzQmxvYiA9IG1fYXNCbG9i
OworI2VuZGlmCiAKICAgICBtX2V4Y2VwdGlvbkNvZGUgPSAwOwogICAgIG1fZXJyb3IgPSBmYWxz
ZTsKQEAgLTU5NCw2ICs2MzksOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjphYm9ydCgpCiAgICAg
bV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAg
IG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVOQUJMRShCTE9CKQorICAgIG1fcmVzcG9uc2VCbG9i
ID0gMDsKKyNlbmRpZgogCiAgICAgLy8gQ2xlYXIgaGVhZGVycyBhcyByZXF1aXJlZCBieSB0aGUg
c3BlYwogICAgIG1fcmVxdWVzdEhlYWRlcnMuY2xlYXIoKTsKQEAgLTY0MCw2ICs2ODgsOSBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3BvbnNlKCkKICAgICBtX3Jlc3BvbnNlVGV4dCA9
ICIiOwogICAgIG1fY3JlYXRlZERvY3VtZW50ID0gZmFsc2U7CiAgICAgbV9yZXNwb25zZVhNTCA9
IDA7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgbV9yZXNwb25zZUJsb2IgPSAwOworI2VuZGlmCiB9
CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVxdWVzdCgpCkBAIC05MDIsNiArOTUzLDEw
IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW4KICAgICBpZiAobV9k
ZWNvZGVyKQogICAgICAgICBtX3Jlc3BvbnNlVGV4dCArPSBtX2RlY29kZXItPmZsdXNoKCk7CiAK
KyNpZiBFTkFCTEUoQkxPQikKKyAgICAvLyBGSVhNRTogU2V0IG1fcmVzcG9uc2VCbG9iIHNldCB0
byBzb21ldGhpbmcgaGVyZSBpbiB0aGUgbV9hc0Jsb2IgY2FzZS4KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkpCiAgICAgICAg
IGluc3BlY3Rvci0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGlkZW50aWZpZXIs
IG1fcmVzcG9uc2VUZXh0LCBtX3VybCwgbV9sYXN0U2VuZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1i
ZXIpOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDEwIEBAIHB1
YmxpYzoKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgYm9vbCB3aXRoQ3JlZGVu
dGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVDcmVkZW50aWFsczsgfQogICAgIHZvaWQg
c2V0V2l0aENyZWRlbnRpYWxzKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyNpZiBFTkFCTEUoQkxP
QikKKyAgICBib29sIGFzQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fYXNCbG9iOyB9CisgICAgdm9p
ZCBzZXRBc0Jsb2IoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCiAgICAgdm9pZCBvcGVu
KGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIGJvb2wgYXN5bmMs
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNv
bnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIEV4Y2VwdGlvbkNvZGUm
KTsKQEAgLTg0LDggKzg4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJyaWRlTWltZVR5cGUo
Y29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CiAgICAgU3RyaW5nIGdldEFsbFJlc3BvbnNlSGVhZGVy
cyhFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJlc3BvbnNlSGVhZGVyKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwotICAgIGNvbnN0
IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KCkgY29uc3Q7Ci0gICAgRG9jdW1lbnQqIHJlc3Bv
bnNlWE1MKCkgY29uc3Q7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiByZXNwb25zZVRleHQoRXhj
ZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIERvY3VtZW50KiByZXNwb25zZVhNTChFeGNlcHRpb25D
b2RlJikgY29uc3Q7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgQmxvYiogcmVzcG9uc2VCbG9iKEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyNlbmRpZgogICAgIHZvaWQgc2V0TGFzdFNlbmRMaW5lTnVt
YmVyKHVuc2lnbmVkIGxpbmVOdW1iZXIpIHsgbV9sYXN0U2VuZExpbmVOdW1iZXIgPSBsaW5lTnVt
YmVyOyB9CiAgICAgdm9pZCBzZXRMYXN0U2VuZFVSTChjb25zdCBTdHJpbmcmIHVybCkgeyBtX2xh
c3RTZW5kVVJMID0gdXJsOyB9CiAKQEAgLTE1NSw2ICsxNjIsMTAgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgbV9taW1lVHlwZU92ZXJyaWRlOwogICAgIGJvb2wgbV9hc3luYzsKICAgICBib29sIG1f
aW5jbHVkZUNyZWRlbnRpYWxzOworI2lmIEVOQUJMRShCTE9CKQorICAgIGJvb2wgbV9hc0Jsb2I7
CisgICAgUmVmUHRyPEJsb2I+IG1fcmVzcG9uc2VCbG9iOworI2VuZGlmCiAKICAgICBSZWZQdHI8
VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgU3RhdGUgbV9zdGF0ZTsKSW5kZXg6IFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDY1NzExKQorKysgV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxMSBAQCBtb2R1bGUgeG1s
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7
CiAKICAgICAgICAgLy8gcmVxdWVzdAorI2lmIGRlZmluZWQoRU5BQkxFX0JMT0IpICYmIEVOQUJM
RV9CTE9CCisgICAgICAgIGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gYm9vbGVhbiBhc0Js
b2IKKyAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgorCiAg
ICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIHdpdGhDcmVkZW50aWFscwogICAgICAgICAgICAgc2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICAvLyB2b2lkIG9wZW4oaW4gRE9NU3Ry
aW5nIG1ldGhvZCwgaW4gRE9NU3RyaW5nIHVybCk7CkBAIC04Miw4ICs4NywxNCBAQCBtb2R1bGUg
eG1sIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbUmVxdWly
ZXNBbGxBcmd1bWVudHM9UmFpc2UsIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5n
IGdldFJlc3BvbnNlSGVhZGVyKGluIERPTVN0cmluZyBoZWFkZXIpCiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0
ZXJdIERPTVN0cmluZyByZXNwb25zZVRleHQ7IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVu
dHMgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
b2N1bWVudCByZXNwb25zZVhNTDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21H
ZXR0ZXJdIERPTVN0cmluZyByZXNwb25zZVRleHQgLy8gVGhlIGN1c3RvbSBnZXR0ZXIgaW1wbGVt
ZW50cyBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwKKyAgICAgICAgICAgIGdldHRlciByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IHJlc3Bv
bnNlWE1MCisgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjaWYgZGVm
aW5lZChFTkFCTEVfQkxPQikgJiYgRU5BQkxFX0JMT0IKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIFtFbmFibGVkQXRSdW50aW1lXSBCbG9iIHJlc3BvbnNlQmxvYgorICAgICAgICAgICAgZ2V0
dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSB1bnNpZ25lZCBzaG9ydCBzdGF0dXMKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNU
ZXh0CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY1NzExKQorKysgV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA4LTE5ICBN
aWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NDEzMworICAgICAgICBXZWJLaXRBUEkgdG8gYWxsb3cgcnVudGltZSBl
bmFibGVtZW50IG9mIFhtbEh0dHBSZXF1ZXN0LnJlc3BvbnNlQmxvYiBzdXBwb3J0LgorCisgICAg
ICAgICogcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oOgorICAgICAgICAqIHNyYy9XZWJSdW50
aW1lRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmVu
YWJsZVJlc3BvbnNlQmxvYik6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6
aXNSZXNwb25zZUJsb2JFbmFibGVkKToKKwogMjAxMC0wOC0xOSAgVmluY2VudCBTY2hlaWIgIDxz
Y2hlaWJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCShyZXZp
c2lvbiA2NTcxMSkKKysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9B
UEkgc3RhdGljIHZvaWQgZW5hYmxlU3BlZWNoSW5wdXQoYm9vbCk7CiAgICAgV0VCS0lUX0FQSSBz
dGF0aWMgYm9vbCBpc1NwZWVjaElucHV0RW5hYmxlZCgpOwogCisgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCBlbmFibGVSZXNwb25zZUJsb2IoYm9vbCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMg
Ym9vbCBpc1Jlc3BvbnNlQmxvYkVuYWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJSdW50aW1l
RmVhdHVyZXMoKTsKIH07CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0
dXJlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVh
dHVyZXMuY3BwCShyZXZpc2lvbiA2NTcxMSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVu
dGltZUZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDQgKzI1NiwxNCBAQCBib29s
IFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNTcGVlY2hJbnB1dEVuCiAgICAgcmV0dXJuIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNwZWVjaElucHV0RW5hYmxlZCgpOwogfQogCit2b2lkIFdlYlJ1bnRp
bWVGZWF0dXJlczo6ZW5hYmxlUmVzcG9uc2VCbG9iKGJvb2wgZW5hYmxlKQoreworICAgIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNldFJlc3BvbnNlQmxvYkVuYWJsZWQoZW5hYmxlKTsKK30KKwor
Ym9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzUmVzcG9uc2VCbG9iRW5hYmxlZCgpCit7CisgICAg
cmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQoKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65153</attachid>
            <date>2010-08-23 12:43:59 -0700</date>
            <delta_ts>2010-08-24 17:56:31 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.3.txt</filename>
            <type>text/plain</type>
            <size>13690</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTgyMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgdGhlIEVOQUJMRV9CTE9CIGNvbXBpbGUgdGltZSBndWFyZC4KKyAg
ICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcgc29tZSBzdHVicy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRSZXNwb25zZUJsb2JFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnJlc3BvbnNl
QmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6
YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRl
eHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVybiBwYXRoCisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0QWNjZXNzb3JHZXR0ZXIp
OiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVybiBwYXRoCisgICAgICAgICog
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIHJhaXNlIGFuIGV4Y2VwdGlvbiB3aGVuIGFjY2Vz
c2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFuIGV4Y2VwdGlvbiB3aGVuIGFj
Y2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlCisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VCbG9iKTogQWRkZWQgc3R1YiBtZXRob2QsIHJldHVybnMgMCBmb3Ig
bm93CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2V0QXNCbG9iKTogU2V0cyB0
aGUgYXNCbG9iIGF0dHJpYnV0ZSwgcmFpc2VzIGV4Y2VwdGlvbiBpZiBjYWxsZWQgYXQgYW4gaW5h
cHJvcGlhdGUgdGltZQorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOiBS
ZXNldHMgYXNCbG9iIHRvIGZhbHNlLCB0aGUgZGVmYXVsdCB2YWx1ZS4KKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjphYm9ydCk6IENsZWFycyBtX3Jlc3BvbnNlQmxvYgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2UpOiBDbGVhcnMgbV9yZXNw
b25zZUJsb2IKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2Fk
aW5nKTogQWRkZWQgYSBGSVhNRSB0byBwb3B1bGF0ZSBtX3Jlc3BvbnNlQmxvYgorICAgICAgICAq
IHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6
OmFzQmxvYik6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmlkbDoKKwogMjAxMC0wOC0y
MyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAkocmV2aXNpb24gNjU4MjApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDYgKzUwLDcgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1RvdWNoRW5h
YgogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0RldmljZU1vdGlvbkVuYWJsZWQgPSB0
cnVlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0RldmljZU9yaWVudGF0aW9uRW5h
YmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRF
bmFibGVkID0gdHJ1ZTsKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNSZXNwb25zZUJs
b2JFbmFibGVkID0gZmFsc2U7CiAKICNpZiBFTkFCTEUoVklERU8pCiAKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAkocmV2aXNp
b24gNjU4MjApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDEwIEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgYm9vbCBzcGVlY2hJbnB1dEVuYWJsZWQoKSB7IHJldHVybiBpc1NwZWVjaElucHV0RW5h
YmxlZDsgfQogICAgIHN0YXRpYyBib29sIHNwZWVjaEVuYWJsZWQoKSB7IHJldHVybiBpc1NwZWVj
aElucHV0RW5hYmxlZDsgfQogCisgICAgc3RhdGljIHZvaWQgc2V0UmVzcG9uc2VCbG9iRW5hYmxl
ZChib29sIGlzRW5hYmxlZCkgeyBpc1Jlc3BvbnNlQmxvYkVuYWJsZWQgPSBpc0VuYWJsZWQ7IH0K
KyAgICBzdGF0aWMgYm9vbCByZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1cm4gaXNSZXNwb25z
ZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgYXNCbG9iRW5hYmxlZCgpICB7IHJldHVy
biBpc1Jlc3BvbnNlQmxvYkVuYWJsZWQ7IH0KKwogcHJpdmF0ZToKICAgICAvLyBOZXZlciBpbnN0
YW50aWF0ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzKCkgeyB9CkBAIC0xNDQsNiArMTQ4
LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0RldmljZU1vdGlvbkVuYWJsZWQ7CiAg
ICAgc3RhdGljIGJvb2wgaXNEZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQ7CiAgICAgc3RhdGljIGJv
b2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQ7CisgICAgc3RhdGljIGJvb2wgaXNSZXNwb25zZUJsb2JF
bmFibGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiA2NTgyMCkK
KysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNCw3ICsxMjQsMTMgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0Ojpz
ZW5kKEV4ZWNTdGF0ZQogCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dChF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGpzT3duZWRTdHJpbmdPck51bGwo
ZXhlYywgaW1wbCgpLT5yZXNwb25zZVRleHQoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiB0ZXh0ID0gaW1wbCgpLT5yZXNwb25zZVRleHQoZWMp
OworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOworICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisgICAgcmV0dXJuIGpzT3duZWRTdHJp
bmdPck51bGwoZXhlYywgdGV4dCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1hNTEh0dHBSZXF1ZXN0KEV4
ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiA2NTgyMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRw
UmVxdWVzdDo6CiB7CiAgICAgSU5DX1NUQVRTKCJET00uWE1MSHR0cFJlcXVlc3QucmVzcG9uc2V0
ZXh0Ll9nZXQiKTsKICAgICBYTUxIdHRwUmVxdWVzdCogeG1sSHR0cFJlcXVlc3QgPSBWOFhNTEh0
dHBSZXF1ZXN0Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4geG1sSHR0cFJl
cXVlc3QtPnJlc3BvbnNlVGV4dCgpLnY4U3RyaW5nT3JOdWxsKCk7CisgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiB0ZXh0ID0geG1sSHR0cFJlcXVlc3Qt
PnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cihlYyk7CisgICAgcmV0dXJuIHRleHQudjhTdHJpbmdPck51bGwoKTsKIH0KIAogdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6Om9wZW5DYWxsYmFjayhjb25zdCB2ODo6QXJn
dW1lbnRzJiBhcmdzKQpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNjU4MjAp
CisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5o
IgpAQCAtMjI1LDEzICsyMjYsMjQgQEAgWE1MSHR0cFJlcXVlc3Q6OlN0YXRlIFhNTEh0dHBSZXF1
ZXN0OjpyZQogICAgIHJldHVybiBtX3N0YXRlOwogfQogCi1jb25zdCBTY3JpcHRTdHJpbmcmIFhN
TEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoKSBjb25zdAorY29uc3QgU2NyaXB0U3RyaW5nJiBY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewor
I2lmIEVOQUJMRShCTE9CKQorICAgIGlmIChtX2FzQmxvYikKKyAgICAgICAgZWMgPSBJTlZBTElE
X1NUQVRFX0VSUjsKKyNlbmRpZgogICAgIHJldHVybiBtX3Jlc3BvbnNlVGV4dDsKIH0KIAotRG9j
dW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpIGNvbnN0CitEb2N1bWVudCogWE1M
SHR0cFJlcXVlc3Q6OnJlc3BvbnNlWE1MKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogeworI2lm
IEVOQUJMRShCTE9CKQorICAgIGlmIChtX2FzQmxvYikgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmICht
X3N0YXRlICE9IERPTkUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yNTYsNiArMjY4LDE3IEBA
IERvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgIHJldHVybiBtX3Jl
c3BvbnNlWE1MLmdldCgpOwogfQogCisjaWYgRU5BQkxFKEJMT0IpCitCbG9iKiBYTUxIdHRwUmVx
dWVzdDo6cmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICgh
bV9hc0Jsb2IpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorICAgIHJldHVybiBtX3Jlc3BvbnNlQmxvYi5nZXQoKTsKK30KKyNlbmRp
ZgorCiBYTUxIdHRwUmVxdWVzdFVwbG9hZCogWE1MSHR0cFJlcXVlc3Q6OnVwbG9hZCgpCiB7CiAg
ICAgaWYgKCFtX3VwbG9hZCkKQEAgLTMxOCw2ICszNDEsMjMgQEAgdm9pZCBYTUxIdHRwUmVxdWVz
dDo6c2V0V2l0aENyZWRlbnRpYWxzKAogICAgIG1faW5jbHVkZUNyZWRlbnRpYWxzID0gdmFsdWU7
CiB9CiAKKyNpZiBFTkFCTEUoQkxPQikKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldEFzQmxvYihi
b29sIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQoKSkgeworICAgICAgICBlYyA9IE5PVF9TVVBQ
T1JURURfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fc3RhdGUgIT0g
T1BFTkVEIHx8IG1fbG9hZGVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2FzQmxvYiA9IHZhbHVlOworfQorI2VuZGlm
CisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0
IEtVUkwmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgb3BlbihtZXRob2QsIHVybCwg
dHJ1ZSwgZWMpOwpAQCAtMzI5LDcgKzM2OSw5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4o
Y29uc3QgU3RyaW5nJgogICAgIFN0YXRlIHByZXZpb3VzU3RhdGUgPSBtX3N0YXRlOwogICAgIG1f
c3RhdGUgPSBVTlNFTlQ7CiAgICAgbV9lcnJvciA9IGZhbHNlOwotCisjaWYgRU5BQkxFKEJMT0Ip
CisgICAgbV9hc0Jsb2IgPSBmYWxzZTsKKyNlbmRpZgogICAgIG1fdXBsb2FkQ29tcGxldGUgPSBm
YWxzZTsKIAogICAgIC8vIGNsZWFyIHN0dWZmIGZyb20gcG9zc2libGUgcHJldmlvdXMgbG9hZApA
QCAtNTk0LDYgKzYzNiw5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0KCkKICAgICBtX3Jl
c3BvbnNlVGV4dCA9ICIiOwogICAgIG1fY3JlYXRlZERvY3VtZW50ID0gZmFsc2U7CiAgICAgbV9y
ZXNwb25zZVhNTCA9IDA7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgbV9yZXNwb25zZUJsb2IgPSAw
OworI2VuZGlmCiAKICAgICAvLyBDbGVhciBoZWFkZXJzIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVj
CiAgICAgbV9yZXF1ZXN0SGVhZGVycy5jbGVhcigpOwpAQCAtNjQwLDYgKzY4NSw5IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2UoKQogICAgIG1fcmVzcG9uc2VUZXh0ID0gIiI7
CiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlWE1MID0gMDsK
KyNpZiBFTkFCTEUoQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYKIH0KIAog
dm9pZCBYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXF1ZXN0KCkKQEAgLTkwMiw2ICs5NTAsMTAgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bgogICAgIGlmIChtX2RlY29k
ZXIpCiAgICAgICAgIG1fcmVzcG9uc2VUZXh0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsKIAorI2lm
IEVOQUJMRShCTE9CKQorICAgIC8vIEZJWE1FOiBTZXQgbV9yZXNwb25zZUJsb2IgdG8gc29tZXRo
aW5nIGhlcmUgaW4gdGhlIG1fYXNCbG9iIGNhc2UuCisjZW5kaWYKKwogI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCiAgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvciA9IHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpKQogICAgICAgICBpbnNwZWN0
b3ItPnJlc291cmNlUmV0cmlldmVkQnlYTUxIdHRwUmVxdWVzdChpZGVudGlmaWVyLCBtX3Jlc3Bv
bnNlVGV4dCwgbV91cmwsIG1fbGFzdFNlbmRVUkwsIG1fbGFzdFNlbmRMaW5lTnVtYmVyKTsKSW5k
ZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaAkocmV2aXNpb24gNjU4MjApCisrKyBXZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCwxMCBAQCBwdWJsaWM6CiAg
ICAgU3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwogICAgIGJvb2wgd2l0aENyZWRlbnRpYWxzKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmNsdWRlQ3JlZGVudGlhbHM7IH0KICAgICB2b2lkIHNldFdpdGhD
cmVkZW50aWFscyhib29sLCBFeGNlcHRpb25Db2RlJik7CisjaWYgRU5BQkxFKEJMT0IpCisgICAg
Ym9vbCBhc0Jsb2IoKSBjb25zdCB7IHJldHVybiBtX2FzQmxvYjsgfQorICAgIHZvaWQgc2V0QXNC
bG9iKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgogICAgIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9w
ZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJM
JiwgYm9vbCBhc3luYywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNlcHRpb25Db2RlJik7CkBAIC04
NCw4ICs4OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0
cmluZyYgb3ZlcnJpZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBjb25zdCBTY3JpcHRT
dHJpbmcmIHJlc3BvbnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3VtZW50KiByZXNwb25zZVhNTCgp
IGNvbnN0OworICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKKyAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OworI2lmIEVOQUJMRShCTE9CKQorICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNlcHRpb25D
b2RlJikgY29uc3Q7CisjZW5kaWYKICAgICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNp
Z25lZCBsaW5lTnVtYmVyKSB7IG1fbGFzdFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQog
ICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVS
TCA9IHVybDsgfQogCkBAIC0xNTUsNiArMTYyLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1f
bWltZVR5cGVPdmVycmlkZTsKICAgICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2luY2x1ZGVD
cmVkZW50aWFsczsKKyNpZiBFTkFCTEUoQkxPQikKKyAgICBib29sIG1fYXNCbG9iOworICAgIFJl
ZlB0cjxCbG9iPiBtX3Jlc3BvbnNlQmxvYjsKKyNlbmRpZgogCiAgICAgUmVmUHRyPFRocmVhZGFi
bGVMb2FkZXI+IG1fbG9hZGVyOwogICAgIFN0YXRlIG1fc3RhdGU7CkluZGV4OiBXZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaWRsCShyZXZpc2lvbiA2NTgyMCkKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsMTEgQEAgbW9kdWxlIHhtbCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCByZWFkeVN0YXRlOwogCiAgICAg
ICAgIC8vIHJlcXVlc3QKKyNpZiBkZWZpbmVkKEVOQUJMRV9CTE9CKSAmJiBFTkFCTEVfQkxPQgor
ICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJvb2xlYW4gYXNCbG9iCisgICAg
ICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5kaWYKKwogICAgICAgICBh
dHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKICAgICAgICAgICAgIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgLy8gdm9pZCBvcGVuKGluIERPTVN0cmluZyBtZXRo
b2QsIGluIERPTVN0cmluZyB1cmwpOwpAQCAtODIsOCArODcsMTQgQEAgbW9kdWxlIHhtbCB7CiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW1JlcXVpcmVzQWxsQXJn
dW1lbnRzPVJhaXNlLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRSZXNw
b25zZUhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01T
dHJpbmcgcmVzcG9uc2VUZXh0OyAvLyBUaGUgY3VzdG9tIGdldHRlciBpbXBsZW1lbnRzIENvbnZl
cnROdWxsU3RyaW5nVG89TnVsbAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQg
cmVzcG9uc2VYTUw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBE
T01TdHJpbmcgcmVzcG9uc2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0dGVyIGltcGxlbWVudHMgQ29u
dmVydE51bGxTdHJpbmdUbz1OdWxsCisgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVudCByZXNwb25zZVhNTAor
ICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2lmIGRlZmluZWQoRU5B
QkxFX0JMT0IpICYmIEVOQUJMRV9CTE9CCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5h
YmxlZEF0UnVudGltZV0gQmxvYiByZXNwb25zZUJsb2IKKyAgICAgICAgICAgIGdldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5z
aWduZWQgc2hvcnQgc3RhdHVzCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVzVGV4dApJbmRl
eDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTgyMCkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wOC0xOSAgTWljaGFlbCBO
b3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDQxMzMKKyAgICAgICAgV2ViS2l0QVBJIHRvIGFsbG93IHJ1bnRpbWUgZW5hYmxlbWVu
dCBvZiBYbWxIdHRwUmVxdWVzdC5yZXNwb25zZUJsb2IuCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
UnVudGltZUZlYXR1cmVzLmg6CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlUmVzcG9uc2VCbG9i
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjppc1Jlc3BvbnNlQmxvYkVu
YWJsZWQpOgorCiAyMDEwLTA4LTIzICBTYXRpc2ggU2FtcGF0aCAgPHNhdGlzaEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpJbmRleDogV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCShyZXZpc2lvbiA2NTgyMCkKKysr
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg2LDYgKzg2LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQg
ZW5hYmxlU3BlZWNoSW5wdXQoYm9vbCk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1Nw
ZWVjaElucHV0RW5hYmxlZCgpOwogCisgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVS
ZXNwb25zZUJsb2IoYm9vbCk7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgYm9vbCBpc1Jlc3BvbnNl
QmxvYkVuYWJsZWQoKTsKKwogcHJpdmF0ZToKICAgICBXZWJSdW50aW1lRmVhdHVyZXMoKTsKIH07
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCShyZXZp
c2lvbiA2NTgyMCkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDQgKzI1NiwxNCBAQCBib29sIFdlYlJ1bnRpbWVGZWF0
dXJlczo6aXNTcGVlY2hJbnB1dEVuCiAgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNwZWVjaElucHV0RW5hYmxlZCgpOwogfQogCit2b2lkIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5h
YmxlUmVzcG9uc2VCbG9iKGJvb2wgZW5hYmxlKQoreworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNldFJlc3BvbnNlQmxvYkVuYWJsZWQoZW5hYmxlKTsKK30KKworYm9vbCBXZWJSdW50aW1l
RmVhdHVyZXM6OmlzUmVzcG9uc2VCbG9iRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="53840"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65348</attachid>
            <date>2010-08-24 17:56:31 -0700</date>
            <delta_ts>2010-08-24 18:01:03 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.4.txt</filename>
            <type>text/plain</type>
            <size>14339</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgYSBuZXcgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIGNvbXBpbGUg
dGltZSBndWFyZC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcg
c29tZSBzdHVicy4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRS
ZXNwb25zZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVy
biBwYXRoLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dEFjY2Vzc29yR2V0dGVyKTogQ2hhbmdlZCB0byBhbGxvdyBhbiBleGNlcHRpb25hbCByZXR1cm4g
cGF0aC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCk6IENoYW5nZWQgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uIHdoZW4gYWNjZXNzZWQgd2l0aCBhc0Jsb2Igc2V0IHRvIHRydWUuCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlLgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6IEFkZGVkIHN0dWIgbWV0
aG9kLCByZXR1cm5zIDAgZm9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpzZXRBc0Jsb2IpOiBTZXRzIHRoZSBhc0Jsb2IgYXR0cmlidXRlLCByYWlzZXMgZXhjZXB0aW9u
IGlmIGNhbGxlZCBhdCBhbiBpbmFwcm9waWF0ZSB0aW1lLgorICAgICAgICAoV2ViQ29yZTo6WE1M
SHR0cFJlcXVlc3Q6Om9wZW4pOiBSZXNldHMgYXNCbG9iIHRvIGZhbHNlLCB0aGUgZGVmYXVsdCB2
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjphYm9ydCk6IENsZWFycyBt
X3Jlc3BvbnNlQmxvYi4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjbGVhclJl
c3BvbnNlKTogQ2xlYXJzIG1fcmVzcG9uc2VCbG9iLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOiBBZGRlZCBhIEZJWE1FIHRvIHBvcHVsYXRlIG1f
cmVzcG9uc2VCbG9iLgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFzQmxvYik6CisgICAgICAgICogeG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbDoKKwogMjAxMC0wOC0yMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciByNjU4NTIuCkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgYm9v
bCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0RldmljZU1vdAogYm9vbCBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjppc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbmFibGVkID0gdHJ1ZTsKIAorI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNY
SFJSZXNwb25zZUJsb2JFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURF
TykKIAogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjphdWRpb0VuYWJsZWQoKQpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsMTMgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIHNwZWVjaElucHV0RW5hYmxlZCgpIHsgcmV0dXJuIGlzU3BlZWNo
SW5wdXRFbmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgc3BlZWNoRW5hYmxlZCgpIHsgcmV0dXJu
IGlzU3BlZWNoSW5wdXRFbmFibGVkOyB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0Ip
CisgICAgc3RhdGljIGJvb2wgeGhyUmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJuIGlzWEhS
UmVzcG9uc2VCbG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyB2b2lkIHNldFhIUlJlc3BvbnNlQmxv
YkVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkID0gaXNF
bmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgcmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJu
IGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGFzQmxvYkVuYWJs
ZWQoKSAgeyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICAvLyBOZXZlciBpbnN0YW50aWF0ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzKCkgeyB9CkBAIC0xNDQsNiArMTUxLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBp
c0RldmljZU1vdGlvbkVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNEZXZpY2VPcmllbnRhdGlv
bkVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQ7CisgICAgc3Rh
dGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsMTMgQEAg
SlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZQogCiBKU1ZhbHVlIEpTWE1M
SHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGpzT3duZWRTdHJpbmdPck51bGwoZXhlYywgaW1wbCgpLT5yZXNwb25zZVRleHQoKSk7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiB0ZXh0
ID0gaW1wbCgpLT5yZXNwb25zZVRleHQoZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZWMpOworICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAg
ICB9CisgICAgcmV0dXJuIGpzT3duZWRTdHJpbmdPck51bGwoZXhlYywgdGV4dCk7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpj
b25zdHJ1Y3RKU1hNTEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSwxMSBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6CiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uWE1MSHR0cFJlcXVlc3QucmVzcG9uc2V0ZXh0Ll9nZXQiKTsKICAgICBYTUxIdHRwUmVxdWVz
dCogeG1sSHR0cFJlcXVlc3QgPSBWOFhNTEh0dHBSZXF1ZXN0Ojp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKLSAgICByZXR1cm4geG1sSHR0cFJlcXVlc3QtPnJlc3BvbnNlVGV4dCgpLnY4U3RyaW5n
T3JOdWxsKCk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgY29uc3QgU2NyaXB0U3Ry
aW5nJiB0ZXh0ID0geG1sSHR0cFJlcXVlc3QtPnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVj
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlYyk7CisgICAgcmV0dXJuIHRleHQudjhTdHJp
bmdPck51bGwoKTsKIH0KIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6
Om9wZW5DYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQpJbmRleDogV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNSwxMyArMjI1LDI0IEBAIFhNTEh0dHBSZXF1ZXN0
OjpTdGF0ZSBYTUxIdHRwUmVxdWVzdDo6cmUKICAgICByZXR1cm4gbV9zdGF0ZTsKIH0KIAotY29u
c3QgU2NyaXB0U3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KCkgY29uc3QKK2Nv
bnN0IFNjcmlwdFN0cmluZyYgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dChFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKIHsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgaWYg
KG1fYXNCbG9iKQorICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworI2VuZGlmCiAgICAg
cmV0dXJuIG1fcmVzcG9uc2VUZXh0OwogfQogCi1Eb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJl
c3BvbnNlWE1MKCkgY29uc3QKK0RvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwo
RXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9C
KQorICAgIGlmIChtX2FzQmxvYikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYKKwogICAgIGlmIChtX3N0YXRlICE9IERP
TkUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0yNTYsNiArMjY3LDE3IEBAIERvY3VtZW50KiBY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQogICAgIHJldHVybiBtX3Jlc3BvbnNlWE1MLmdl
dCgpOwogfQogCisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorQmxvYiogWE1MSHR0cFJl
cXVlc3Q6OnJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAo
IW1fYXNCbG9iKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKyAgICByZXR1cm4gbV9yZXNwb25zZUJsb2IuZ2V0KCk7Cit9CisjZW5k
aWYKKwogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhNTEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewog
ICAgIGlmICghbV91cGxvYWQpCkBAIC0zMTgsNiArMzQwLDE4IEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OnNldFdpdGhDcmVkZW50aWFscygKICAgICBtX2luY2x1ZGVDcmVkZW50aWFscyA9IHZhbHVl
OwogfQogCisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQordm9pZCBYTUxIdHRwUmVxdWVz
dDo6c2V0QXNCbG9iKGJvb2wgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICht
X3N0YXRlICE9IE9QRU5FRCB8fCBtX2xvYWRlcikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9hc0Jsb2IgPSB2YWx1ZTsK
K30KKyNlbmRpZgorCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0
aG9kLCBjb25zdCBLVVJMJiB1cmwsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIG9wZW4obWV0
aG9kLCB1cmwsIHRydWUsIGVjKTsKQEAgLTMyOSw3ICszNjMsOSBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYKICAgICBTdGF0ZSBwcmV2aW91c1N0YXRlID0gbV9zdGF0
ZTsKICAgICBtX3N0YXRlID0gVU5TRU5UOwogICAgIG1fZXJyb3IgPSBmYWxzZTsKLQorI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBtX2FzQmxvYiA9IGZhbHNlOworI2VuZGlmCiAg
ICAgbV91cGxvYWRDb21wbGV0ZSA9IGZhbHNlOwogCiAgICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBw
b3NzaWJsZSBwcmV2aW91cyBsb2FkCkBAIC01OTQsNiArNjMwLDkgQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6YWJvcnQoKQogICAgIG1fcmVzcG9uc2VUZXh0ID0gIiI7CiAgICAgbV9jcmVhdGVkRG9j
dW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlWE1MID0gMDsKKyNpZiBFTkFCTEUoWEhSX1JF
U1BPTlNFX0JMT0IpCisgICAgbV9yZXNwb25zZUJsb2IgPSAwOworI2VuZGlmCiAKICAgICAvLyBD
bGVhciBoZWFkZXJzIGFzIHJlcXVpcmVkIGJ5IHRoZSBzcGVjCiAgICAgbV9yZXF1ZXN0SGVhZGVy
cy5jbGVhcigpOwpAQCAtNjQwLDYgKzY3OSw5IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UoKQogICAgIG1fcmVzcG9uc2VUZXh0ID0gIiI7CiAgICAgbV9jcmVhdGVkRG9jdW1l
bnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlWE1MID0gMDsKKyNpZiBFTkFCTEUoWEhSX1JFU1BP
TlNFX0JMT0IpCisgICAgbV9yZXNwb25zZUJsb2IgPSAwOworI2VuZGlmCiB9CiAKIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmNsZWFyUmVxdWVzdCgpCkBAIC05MDIsNiArOTQ0LDEwIEBAIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcodW4KICAgICBpZiAobV9kZWNvZGVyKQogICAg
ICAgICBtX3Jlc3BvbnNlVGV4dCArPSBtX2RlY29kZXItPmZsdXNoKCk7CiAKKyNpZiBFTkFCTEUo
WEhSX1JFU1BPTlNFX0JMT0IpCisgICAgLy8gRklYTUU6IFNldCBtX3Jlc3BvbnNlQmxvYiB0byBz
b21ldGhpbmcgaGVyZSBpbiB0aGUgbV9hc0Jsb2IgY2FzZS4KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KElOU1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCkpCiAgICAgICAgIGlu
c3BlY3Rvci0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KGlkZW50aWZpZXIsIG1f
cmVzcG9uc2VUZXh0LCBtX3VybCwgbV9sYXN0U2VuZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1iZXIp
OwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDEwIEBAIHB1Ymxp
YzoKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAgICAgYm9vbCB3aXRoQ3JlZGVudGlh
bHMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVDcmVkZW50aWFsczsgfQogICAgIHZvaWQgc2V0
V2l0aENyZWRlbnRpYWxzKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyNpZiBFTkFCTEUoWEhSX1JF
U1BPTlNFX0JMT0IpCisgICAgYm9vbCBhc0Jsb2IoKSBjb25zdCB7IHJldHVybiBtX2FzQmxvYjsg
fQorICAgIHZvaWQgc2V0QXNCbG9iKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgogICAg
IHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBi
b29sIGFzeW5jLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYg
bWV0aG9kLCBjb25zdCBLVVJMJiwgYm9vbCBhc3luYywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNl
cHRpb25Db2RlJik7CkBAIC04NCw4ICs4OCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlk
ZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNw
b25zZUhlYWRlcnMoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25z
ZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
LSAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHJlc3BvbnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3Vt
ZW50KiByZXNwb25zZVhNTCgpIGNvbnN0OworICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9u
c2VUZXh0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwo
RXhjZXB0aW9uQ29kZSYpIGNvbnN0OworI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAg
ICBCbG9iKiByZXNwb25zZUJsb2IoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworI2VuZGlmCiAgICAg
dm9pZCBzZXRMYXN0U2VuZExpbmVOdW1iZXIodW5zaWduZWQgbGluZU51bWJlcikgeyBtX2xhc3RT
ZW5kTGluZU51bWJlciA9IGxpbmVOdW1iZXI7IH0KICAgICB2b2lkIHNldExhc3RTZW5kVVJMKGNv
bnN0IFN0cmluZyYgdXJsKSB7IG1fbGFzdFNlbmRVUkwgPSB1cmw7IH0KIApAQCAtMTU1LDYgKzE2
MiwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21pbWVUeXBlT3ZlcnJpZGU7CiAgICAgYm9v
bCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRlQ3JlZGVudGlhbHM7CisjaWYgRU5BQkxFKFhI
Ul9SRVNQT05TRV9CTE9CKQorICAgIGJvb2wgbV9hc0Jsb2I7CisgICAgUmVmUHRyPEJsb2I+IG1f
cmVzcG9uc2VCbG9iOworI2VuZGlmCiAKICAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9s
b2FkZXI7CiAgICAgU3RhdGUgbV9zdGF0ZTsKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJl
dmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC01Nyw2ICs1NywxMSBAQCBtb2R1bGUgeG1sIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5U3RhdGU7CiAKICAgICAgICAgLy8gcmVxdWVz
dAorI2lmIGRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKSAmJiBFTkFCTEVfWEhSX1JF
U1BPTlNFX0JMT0IKKyAgICAgICAgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBib29sZWFu
IGFzQmxvYgorICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworI2VuZGlm
CisKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gd2l0aENyZWRlbnRpYWxzCiAgICAgICAgICAg
ICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIC8vIHZvaWQgb3BlbihpbiBE
T01TdHJpbmcgbWV0aG9kLCBpbiBET01TdHJpbmcgdXJsKTsKQEAgLTgyLDggKzg3LDE0IEBAIG1v
ZHVsZSB4bWwgewogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtS
ZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZSwgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoaW4gRE9NU3RyaW5nIGhlYWRlcikKICAgICAgICAgICAg
IHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3Rv
bUdldHRlcl0gRE9NU3RyaW5nIHJlc3BvbnNlVGV4dDsgLy8gVGhlIGN1c3RvbSBnZXR0ZXIgaW1w
bGVtZW50cyBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERvY3VtZW50IHJlc3BvbnNlWE1MOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1
c3RvbUdldHRlcl0gRE9NU3RyaW5nIHJlc3BvbnNlVGV4dCAvLyBUaGUgY3VzdG9tIGdldHRlciBp
bXBsZW1lbnRzIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbAorICAgICAgICAgICAgZ2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQg
cmVzcG9uc2VYTUwKKyAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQikgJiYgRU5BQkxFX1hIUl9SRVNQT05T
RV9CTE9CCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gQmxv
YiByZXNwb25zZUJsb2IKKyAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgc3RhdHVz
CiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVzVGV4dApJbmRleDogV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZp
c2lvbiA2NTg1NikKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0xOSAgTWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5A
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDQxMzMKKyAgICAg
ICAgV2ViS2l0QVBJIHRvIGFsbG93IHJ1bnRpbWUgZW5hYmxlbWVudCBvZiBYbWxIdHRwUmVxdWVz
dC5yZXNwb25zZUJsb2IuCisKKyAgICAgICAgKiBmZWF0dXJlcy5neXBpOiBEZWZpbmUgRU5BQkxF
X1hIUl9SRVNQT05TRV9CTE9CLgorICAgICAgICAqIHB1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMu
aDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVYSFJSZXNwb25zZUJsb2IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCk6CisK
IDIwMTAtMDgtMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBmb3IgcjY1ODUyLgpJbmRleDogV2ViS2l0L2Nocm9taXVt
L2ZlYXR1cmVzLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdv
cmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAKICAgICAgICAgJ0VOQUJMRV9XRUJfU09DS0VU
Uz0xJywKICAgICAgICAgJ0VOQUJMRV9XRUJfVElNSU5HPTEnLAogICAgICAgICAnRU5BQkxFX1dP
UktFUlM9MScsCisgICAgICAgICdFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0I9MScsCiAgICAgICAg
ICdFTkFCTEVfWFBBVEg9MScsCiAgICAgICAgICdFTkFCTEVfWFNMVD0xJywKICAgICAgIF0sCklu
ZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgJKHJldmlz
aW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQ
SSBzdGF0aWMgdm9pZCBlbmFibGVTcGVlY2hJbnB1dChib29sKTsKICAgICBXRUJLSVRfQVBJIHN0
YXRpYyBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVkKCk7CiAKKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyB2b2lkIGVuYWJsZVhIUlJlc3BvbnNlQmxvYihib29sKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRp
YyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxlZCgpOworCiBwcml2YXRlOgogICAgIFdlYlJ1
bnRpbWVGZWF0dXJlcygpOwogfTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGlt
ZUZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRp
bWVGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJSdW50aW1lRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNCArMjU2LDIwIEBA
IGJvb2wgV2ViUnVudGltZUZlYXR1cmVzOjppc1NwZWVjaElucHV0RW4KICAgICByZXR1cm4gUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c3BlZWNoSW5wdXRFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV2Vi
UnVudGltZUZlYXR1cmVzOjplbmFibGVYSFJSZXNwb25zZUJsb2IoYm9vbCBlbmFibGUpCit7Cisj
aWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNldFhIUlJlc3BvbnNlQmxvYkVuYWJsZWQoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdl
YlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCkKK3sKKyNpZiBFTkFC
TEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnhoclJlc3BvbnNlQmxvYkVuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2Vu
ZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65351</attachid>
            <date>2010-08-24 18:01:03 -0700</date>
            <delta_ts>2010-08-25 17:54:30 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.5.txt</filename>
            <type>text/plain</type>
            <size>14341</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgYSBuZXcgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIGNvbXBpbGUg
dGltZSBndWFyZC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcg
c29tZSBzdHVicy4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRS
ZXNwb25zZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVy
biBwYXRoLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dEFjY2Vzc29yR2V0dGVyKTogQ2hhbmdlZCB0byBhbGxvdyBhbiBleGNlcHRpb25hbCByZXR1cm4g
cGF0aC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCk6IENoYW5nZWQgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uIHdoZW4gYWNjZXNzZWQgd2l0aCBhc0Jsb2Igc2V0IHRvIHRydWUuCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlLgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6IEFkZGVkIHN0dWIgbWV0
aG9kLCByZXR1cm5zIDAgZm9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpzZXRBc0Jsb2IpOiBTZXRzIHRoZSBhc0Jsb2IgYXR0cmlidXRlLCByYWlzZXMgZXhjZXB0aW9u
IGlmIGNhbGxlZCBhdCBhbiBpbmFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6b3Blbik6IFJlc2V0cyBhc0Jsb2IgdG8gZmFsc2UsIHRoZSBkZWZhdWx0
IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KTogQ2xlYXJz
IG1fcmVzcG9uc2VCbG9iLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UpOiBDbGVhcnMgbV9yZXNwb25zZUJsb2IuCisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6IEFkZGVkIGEgRklYTUUgdG8gcG9wdWxhdGUg
bV9yZXNwb25zZUJsb2IuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YXNCbG9iKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaWRsOgorCiAyMDEwLTA4LTIzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIHI2NTg1Mi4KSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBAQCBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRGV2aWNlTW90CiBib29sIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmlzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6aXNTcGVlY2hJbnB1dEVuYWJsZWQgPSB0cnVlOwogCisjaWYg
RU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
c1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgc3BlZWNoSW5wdXRFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVl
Y2hJbnB1dEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hFbmFibGVkKCkgeyByZXR1
cm4gaXNTcGVlY2hJbnB1dEVuYWJsZWQ7IH0KIAorI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxP
QikKKyAgICBzdGF0aWMgYm9vbCB4aHJSZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1cm4gaXNY
SFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIHZvaWQgc2V0WEhSUmVzcG9uc2VC
bG9iRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCByZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1
cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgYXNCbG9iRW5h
YmxlZCgpICB7IHJldHVybiBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKSB7IH0KQEAgLTE0NCw2ICsxNTEsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGlzRGV2aWNlTW90aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc0RldmljZU9yaWVudGF0
aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc1NwZWVjaElucHV0RW5hYmxlZDsKKyAgICBz
dGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCwxMyBA
QCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlCiAKIEpTVmFsdWUgSlNY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAg
ICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCBpbXBsKCktPnJlc3BvbnNlVGV4dCgp
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHRl
eHQgPSBpbXBsKCktPnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKyAgICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCB0ZXh0KTsKIH0KIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTWE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDExIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjoKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5YTUxIdHRwUmVxdWVzdC5yZXNwb25zZXRleHQuX2dldCIpOwogICAgIFhNTEh0dHBSZXF1
ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IFY4WE1MSHR0cFJlcXVlc3Q6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwotICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KCkudjhTdHJp
bmdPck51bGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRT
dHJpbmcmIHRleHQgPSB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KGVjKTsKKyAgICBpZiAo
ZWMpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICByZXR1cm4gdGV4dC52OFN0
cmluZ09yTnVsbCgpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVz
dDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDEzICsyMjUsMjQgQEAgWE1MSHR0cFJlcXVl
c3Q6OlN0YXRlIFhNTEh0dHBSZXF1ZXN0OjpyZQogICAgIHJldHVybiBtX3N0YXRlOwogfQogCi1j
b25zdCBTY3JpcHRTdHJpbmcmIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoKSBjb25zdAor
Y29uc3QgU2NyaXB0U3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAogeworI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBp
ZiAobV9hc0Jsb2IpCisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisjZW5kaWYKICAg
ICByZXR1cm4gbV9yZXNwb25zZVRleHQ7CiB9CiAKLURvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6
cmVzcG9uc2VYTUwoKSBjb25zdAorRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhN
TChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JM
T0IpCisgICAgaWYgKG1fYXNCbG9iKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyNlbmRpZgorCiAgICAgaWYgKG1fc3RhdGUgIT0g
RE9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI1Niw2ICsyNjcsMTcgQEAgRG9jdW1lbnQq
IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VYTUwu
Z2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCitCbG9iKiBYTUxIdHRw
UmVxdWVzdDo6cmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlm
ICghbV9hc0Jsb2IpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBtX3Jlc3BvbnNlQmxvYi5nZXQoKTsKK30KKyNl
bmRpZgorCiBYTUxIdHRwUmVxdWVzdFVwbG9hZCogWE1MSHR0cFJlcXVlc3Q6OnVwbG9hZCgpCiB7
CiAgICAgaWYgKCFtX3VwbG9hZCkKQEAgLTMxOCw2ICszNDAsMTggQEAgdm9pZCBYTUxIdHRwUmVx
dWVzdDo6c2V0V2l0aENyZWRlbnRpYWxzKAogICAgIG1faW5jbHVkZUNyZWRlbnRpYWxzID0gdmFs
dWU7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCit2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzZXRBc0Jsb2IoYm9vbCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KG1fc3RhdGUgIT0gT1BFTkVEIHx8IG1fbG9hZGVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2FzQmxvYiA9IHZhbHVl
OworfQorI2VuZGlmCisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJiBt
ZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgb3Blbiht
ZXRob2QsIHVybCwgdHJ1ZSwgZWMpOwpAQCAtMzI5LDcgKzM2Myw5IEBAIHZvaWQgWE1MSHR0cFJl
cXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJgogICAgIFN0YXRlIHByZXZpb3VzU3RhdGUgPSBtX3N0
YXRlOwogICAgIG1fc3RhdGUgPSBVTlNFTlQ7CiAgICAgbV9lcnJvciA9IGZhbHNlOwotCisjaWYg
RU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorICAgIG1fYXNCbG9iID0gZmFsc2U7CisjZW5kaWYK
ICAgICBtX3VwbG9hZENvbXBsZXRlID0gZmFsc2U7CiAKICAgICAvLyBjbGVhciBzdHVmZiBmcm9t
IHBvc3NpYmxlIHByZXZpb3VzIGxvYWQKQEAgLTU5NCw2ICs2MzAsOSBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBtX2NyZWF0ZWRE
b2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVOQUJMRShYSFJf
UkVTUE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYKIAogICAgIC8v
IENsZWFyIGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKICAgICBtX3JlcXVlc3RIZWFk
ZXJzLmNsZWFyKCk7CkBAIC02NDAsNiArNjc5LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y2xl
YXJSZXNwb25zZSgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBtX2NyZWF0ZWREb2N1
bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVOQUJMRShYSFJfUkVT
UE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYKIH0KIAogdm9pZCBY
TUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXF1ZXN0KCkKQEAgLTkwMiw2ICs5NDQsMTAgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bgogICAgIGlmIChtX2RlY29kZXIpCiAg
ICAgICAgIG1fcmVzcG9uc2VUZXh0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsKIAorI2lmIEVOQUJM
RShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICAvLyBGSVhNRTogU2V0IG1fcmVzcG9uc2VCbG9iIHRv
IHNvbWV0aGluZyBoZXJlIGluIHRoZSBtX2FzQmxvYiBjYXNlLgorI2VuZGlmCisKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3IgPSBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKICAgICAgICAg
aW5zcGVjdG9yLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRpZmllciwg
bV9yZXNwb25zZVRleHQsIG1fdXJsLCBtX2xhc3RTZW5kVVJMLCBtX2xhc3RTZW5kTGluZU51bWJl
cik7CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTAgQEAgcHVi
bGljOgogICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICBib29sIHdpdGhDcmVkZW50
aWFscygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZUNyZWRlbnRpYWxzOyB9CiAgICAgdm9pZCBz
ZXRXaXRoQ3JlZGVudGlhbHMoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2lmIEVOQUJMRShYSFJf
UkVTUE9OU0VfQkxPQikKKyAgICBib29sIGFzQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fYXNCbG9i
OyB9CisgICAgdm9pZCBzZXRBc0Jsb2IoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlmCiAg
ICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VSTCYs
IGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIsIEV4
Y2VwdGlvbkNvZGUmKTsKQEAgLTg0LDggKzg4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJy
aWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CiAgICAgU3RyaW5nIGdldEFsbFJl
c3BvbnNlSGVhZGVycyhFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJlc3Bv
bnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwotICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KCkgY29uc3Q7Ci0gICAgRG9j
dW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiByZXNw
b25zZVRleHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIERvY3VtZW50KiByZXNwb25zZVhN
TChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQor
ICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYKICAg
ICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyKSB7IG1fbGFz
dFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQogICAgIHZvaWQgc2V0TGFzdFNlbmRVUkwo
Y29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQogCkBAIC0xNTUsNiAr
MTYyLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbWltZVR5cGVPdmVycmlkZTsKICAgICBi
b29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2luY2x1ZGVDcmVkZW50aWFsczsKKyNpZiBFTkFCTEUo
WEhSX1JFU1BPTlNFX0JMT0IpCisgICAgYm9vbCBtX2FzQmxvYjsKKyAgICBSZWZQdHI8QmxvYj4g
bV9yZXNwb25zZUJsb2I7CisjZW5kaWYKIAogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBt
X2xvYWRlcjsKICAgICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAko
cmV2aXNpb24gNjU4NTYpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDYgKzU3LDExIEBAIG1vZHVsZSB4bWwgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKIAogICAgICAgICAvLyByZXF1
ZXN0CisjaWYgZGVmaW5lZChFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IpICYmIEVOQUJMRV9YSFJf
UkVTUE9OU0VfQkxPQgorICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJvb2xl
YW4gYXNCbG9iCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisjZW5k
aWYKKwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKICAgICAgICAg
ICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgLy8gdm9pZCBvcGVuKGlu
IERPTVN0cmluZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmwpOwpAQCAtODIsOCArODcsMTQgQEAg
bW9kdWxlIHhtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
W1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ3Vz
dG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0OyAvLyBUaGUgY3VzdG9tIGdldHRlciBp
bXBsZW1lbnRzIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbAotICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRG9jdW1lbnQgcmVzcG9uc2VYTUw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0dGVy
IGltcGxlbWVudHMgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsCisgICAgICAgICAgICBnZXR0ZXIg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1bWVu
dCByZXNwb25zZVhNTAorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwor
I2lmIGRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKSAmJiBFTkFCTEVfWEhSX1JFU1BP
TlNFX0JMT0IKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1lXSBC
bG9iIHJlc3BvbnNlQmxvYgorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OworI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBzdGF0
dXMKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNUZXh0CkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTE5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNoYWVs
bkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDEzMworICAg
ICAgICBXZWJLaXRBUEkgdG8gYWxsb3cgcnVudGltZSBlbmFibGVtZW50IG9mIFhtbEh0dHBSZXF1
ZXN0LnJlc3BvbnNlQmxvYi4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IERlZmluZSBFTkFC
TEVfWEhSX1JFU1BPTlNFX0JMT0IuCisgICAgICAgICogcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJl
cy5oOgorICAgICAgICAqIHNyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxvYik6CisgICAgICAg
IChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKToK
KwogMjAxMC0wOC0yMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciByNjU4NTIuCkluZGV4OiBXZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMu
Z3lwaQkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQko
d29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQAogICAgICAgICAnRU5BQkxFX1dFQl9TT0NL
RVRTPTEnLAogICAgICAgICAnRU5BQkxFX1dFQl9USU1JTkc9MScsCiAgICAgICAgICdFTkFCTEVf
V09SS0VSUz0xJywKKyAgICAgICAgJ0VOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQj0xJywKICAgICAg
ICAgJ0VOQUJMRV9YUEFUSD0xJywKICAgICAgICAgJ0VOQUJMRV9YU0xUPTEnLAogICAgICAgXSwK
SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAkocmV2
aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw5IEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIHN0YXRpYyB2b2lkIGVuYWJsZVNwZWVjaElucHV0KGJvb2wpOwogICAgIFdFQktJVF9BUEkg
c3RhdGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQoKTsKIAorICAgIFdFQktJVF9BUEkgc3Rh
dGljIHZvaWQgZW5hYmxlWEhSUmVzcG9uc2VCbG9iKGJvb2wpOworICAgIFdFQktJVF9BUEkgc3Rh
dGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAgV2Vi
UnVudGltZUZlYXR1cmVzKCk7CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50
aW1lRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUnVu
dGltZUZlYXR1cmVzLmNwcAkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw0ICsyNTYsMjAg
QEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbgogICAgIHJldHVybiBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzcGVlY2hJbnB1dEVuYWJsZWQoKTsKIH0KIAordm9pZCBX
ZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxvYihib29sIGVuYWJsZSkKK3sK
KyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2V0WEhSUmVzcG9uc2VCbG9iRW5hYmxlZChlbmFibGUpOworI2VuZGlmCit9CisKK2Jvb2wg
V2ViUnVudGltZUZlYXR1cmVzOjppc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQoKQoreworI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6eGhyUmVzcG9uc2VCbG9iRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65449</attachid>
            <date>2010-08-25 11:30:48 -0700</date>
            <delta_ts>2010-08-26 13:16:24 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.6.txt</filename>
            <type>text/plain</type>
            <size>14401</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgYSBuZXcgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIGNvbXBpbGUg
dGltZSBndWFyZC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcg
c29tZSBzdHVicy4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRS
ZXNwb25zZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVy
biBwYXRoLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dEFjY2Vzc29yR2V0dGVyKTogQ2hhbmdlZCB0byBhbGxvdyBhbiBleGNlcHRpb25hbCByZXR1cm4g
cGF0aC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCk6IENoYW5nZWQgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uIHdoZW4gYWNjZXNzZWQgd2l0aCBhc0Jsb2Igc2V0IHRvIHRydWUuCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlLgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6IEFkZGVkIHN0dWIgbWV0
aG9kLCByZXR1cm5zIDAgZm9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpzZXRBc0Jsb2IpOiBTZXRzIHRoZSBhc0Jsb2IgYXR0cmlidXRlLCByYWlzZXMgZXhjZXB0aW9u
IGlmIGNhbGxlZCBhdCBhbiBpbmFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6b3Blbik6IFJlc2V0cyBhc0Jsb2IgdG8gZmFsc2UsIHRoZSBkZWZhdWx0
IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KTogQ2xlYXJz
IG1fcmVzcG9uc2VCbG9iLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UpOiBDbGVhcnMgbV9yZXNwb25zZUJsb2IuCisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6IEFkZGVkIGEgRklYTUUgdG8gcG9wdWxhdGUg
bV9yZXNwb25zZUJsb2IuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YXNCbG9iKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaWRsOgorCiAyMDEwLTA4LTIzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIHI2NTg1Mi4KSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBAQCBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRGV2aWNlTW90CiBib29sIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmlzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6aXNTcGVlY2hJbnB1dEVuYWJsZWQgPSB0cnVlOwogCisjaWYg
RU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
c1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgc3BlZWNoSW5wdXRFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVl
Y2hJbnB1dEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hFbmFibGVkKCkgeyByZXR1
cm4gaXNTcGVlY2hJbnB1dEVuYWJsZWQ7IH0KIAorI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxP
QikKKyAgICBzdGF0aWMgYm9vbCB4aHJSZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1cm4gaXNY
SFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIHZvaWQgc2V0WEhSUmVzcG9uc2VC
bG9iRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCByZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1
cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgYXNCbG9iRW5h
YmxlZCgpICB7IHJldHVybiBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKSB7IH0KQEAgLTE0NCw2ICsxNTEsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGlzRGV2aWNlTW90aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc0RldmljZU9yaWVudGF0
aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc1NwZWVjaElucHV0RW5hYmxlZDsKKyAgICBz
dGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCwxMyBA
QCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlCiAKIEpTVmFsdWUgSlNY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAg
ICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCBpbXBsKCktPnJlc3BvbnNlVGV4dCgp
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHRl
eHQgPSBpbXBsKCktPnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKyAgICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCB0ZXh0KTsKIH0KIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTWE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDExIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjoKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5YTUxIdHRwUmVxdWVzdC5yZXNwb25zZXRleHQuX2dldCIpOwogICAgIFhNTEh0dHBSZXF1
ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IFY4WE1MSHR0cFJlcXVlc3Q6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwotICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KCkudjhTdHJp
bmdPck51bGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRT
dHJpbmcmIHRleHQgPSB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KGVjKTsKKyAgICBpZiAo
ZWMpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICByZXR1cm4gdGV4dC52OFN0
cmluZ09yTnVsbCgpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVz
dDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDEzICsyMjUsMjggQEAgWE1MSHR0cFJlcXVl
c3Q6OlN0YXRlIFhNTEh0dHBSZXF1ZXN0OjpyZQogICAgIHJldHVybiBtX3N0YXRlOwogfQogCi1j
b25zdCBTY3JpcHRTdHJpbmcmIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQoKSBjb25zdAor
Y29uc3QgU2NyaXB0U3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4Y2VwdGlv
bkNvZGUmIGVjKSBjb25zdAogeworI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBp
ZiAobV9hc0Jsb2IpCisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShlYyk7CisjZW5kaWYKICAgICByZXR1cm4gbV9yZXNwb25zZVRleHQ7CiB9
CiAKLURvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKSBjb25zdAorRG9jdW1l
bnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QK
IHsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgaWYgKG1fYXNCbG9iKSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fc3RhdGUg
IT0gRE9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI1Niw2ICsyNzEsMTcgQEAgRG9jdW1l
bnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgcmV0dXJuIG1fcmVzcG9uc2VY
TUwuZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCitCbG9iKiBYTUxI
dHRwUmVxdWVzdDo6cmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAoreworICAg
IGlmICghbV9hc0Jsb2IpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBtX3Jlc3BvbnNlQmxvYi5nZXQoKTsKK30K
KyNlbmRpZgorCiBYTUxIdHRwUmVxdWVzdFVwbG9hZCogWE1MSHR0cFJlcXVlc3Q6OnVwbG9hZCgp
CiB7CiAgICAgaWYgKCFtX3VwbG9hZCkKQEAgLTMxOCw2ICszNDQsMTggQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6c2V0V2l0aENyZWRlbnRpYWxzKAogICAgIG1faW5jbHVkZUNyZWRlbnRpYWxzID0g
dmFsdWU7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCit2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjpzZXRBc0Jsb2IoYm9vbCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAg
aWYgKG1fc3RhdGUgIT0gT1BFTkVEIHx8IG1fbG9hZGVyKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2FzQmxvYiA9IHZh
bHVlOworfQorI2VuZGlmCisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5n
JiBtZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgb3Bl
bihtZXRob2QsIHVybCwgdHJ1ZSwgZWMpOwpAQCAtMzI5LDcgKzM2Nyw5IEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJgogICAgIFN0YXRlIHByZXZpb3VzU3RhdGUgPSBt
X3N0YXRlOwogICAgIG1fc3RhdGUgPSBVTlNFTlQ7CiAgICAgbV9lcnJvciA9IGZhbHNlOwotCisj
aWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorICAgIG1fYXNCbG9iID0gZmFsc2U7CisjZW5k
aWYKICAgICBtX3VwbG9hZENvbXBsZXRlID0gZmFsc2U7CiAKICAgICAvLyBjbGVhciBzdHVmZiBm
cm9tIHBvc3NpYmxlIHByZXZpb3VzIGxvYWQKQEAgLTU5NCw2ICs2MzQsOSBAQCB2b2lkIFhNTEh0
dHBSZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBtX2NyZWF0
ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVOQUJMRShY
SFJfUkVTUE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYKIAogICAg
IC8vIENsZWFyIGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKICAgICBtX3JlcXVlc3RI
ZWFkZXJzLmNsZWFyKCk7CkBAIC02NDAsNiArNjgzLDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6
Y2xlYXJSZXNwb25zZSgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBtX2NyZWF0ZWRE
b2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVOQUJMRShYSFJf
UkVTUE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYKIH0KIAogdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXF1ZXN0KCkKQEAgLTkwMiw2ICs5NDgsMTAgQEAgdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bgogICAgIGlmIChtX2RlY29kZXIp
CiAgICAgICAgIG1fcmVzcG9uc2VUZXh0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsKIAorI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICAvLyBGSVhNRTogU2V0IG1fcmVzcG9uc2VCbG9i
IHRvIHNvbWV0aGluZyBoZXJlIGluIHRoZSBtX2FzQmxvYiBjYXNlLgorI2VuZGlmCisKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3Ig
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmluc3BlY3RvckNvbnRyb2xsZXIoKSkKICAgICAg
ICAgaW5zcGVjdG9yLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QoaWRlbnRpZmll
ciwgbV9yZXNwb25zZVRleHQsIG1fdXJsLCBtX2xhc3RTZW5kVVJMLCBtX2xhc3RTZW5kTGluZU51
bWJlcik7CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsMTAgQEAg
cHVibGljOgogICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICBib29sIHdpdGhDcmVk
ZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZUNyZWRlbnRpYWxzOyB9CiAgICAgdm9p
ZCBzZXRXaXRoQ3JlZGVudGlhbHMoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2lmIEVOQUJMRShY
SFJfUkVTUE9OU0VfQkxPQikKKyAgICBib29sIGFzQmxvYigpIGNvbnN0IHsgcmV0dXJuIG1fYXNC
bG9iOyB9CisgICAgdm9pZCBzZXRBc0Jsb2IoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2VuZGlm
CiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3QgS1VS
TCYsIGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3Ry
aW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJpbmcmIHVzZXIs
IEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTg0LDggKzg4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG92
ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CiAgICAgU3RyaW5nIGdldEFs
bFJlc3BvbnNlSGVhZGVycyhFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgU3RyaW5nIGdldFJl
c3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OwotICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KCkgY29uc3Q7Ci0gICAg
RG9jdW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiBy
ZXNwb25zZVRleHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIERvY3VtZW50KiByZXNwb25z
ZVhNTChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9C
KQorICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYK
ICAgICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNpZ25lZCBsaW5lTnVtYmVyKSB7IG1f
bGFzdFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQogICAgIHZvaWQgc2V0TGFzdFNlbmRV
UkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQogCkBAIC0xNTUs
NiArMTYyLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbWltZVR5cGVPdmVycmlkZTsKICAg
ICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2luY2x1ZGVDcmVkZW50aWFsczsKKyNpZiBFTkFC
TEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgYm9vbCBtX2FzQmxvYjsKKyAgICBSZWZQdHI8Qmxv
Yj4gbV9yZXNwb25zZUJsb2I7CisjZW5kaWYKIAogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVy
PiBtX2xvYWRlcjsKICAgICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0Lmlk
bAkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHdv
cmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDExIEBAIG1vZHVsZSB4bWwgewogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKIAogICAgICAgICAvLyBy
ZXF1ZXN0CisjaWYgZGVmaW5lZChFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IpICYmIEVOQUJMRV9Y
SFJfUkVTUE9OU0VfQkxPQgorICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1bnRpbWVdIGJv
b2xlYW4gYXNCbG9iCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7Cisj
ZW5kaWYKKwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlhbHMKICAgICAg
ICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgLy8gdm9pZCBvcGVu
KGluIERPTVN0cmluZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmwpOwpAQCAtODIsOCArODcsMTQg
QEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAg
ICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlLCBDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxd
IERPTVN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVyKQogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBb
Q3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0OyAvLyBUaGUgY3VzdG9tIGdldHRl
ciBpbXBsZW1lbnRzIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbAotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRG9jdW1lbnQgcmVzcG9uc2VYTUw7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0IC8vIFRoZSBjdXN0b20gZ2V0
dGVyIGltcGxlbWVudHMgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsCisgICAgICAgICAgICBnZXR0
ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEb2N1
bWVudCByZXNwb25zZVhNTAorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24p
OworI2lmIGRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKSAmJiBFTkFCTEVfWEhSX1JF
U1BPTlNFX0JMT0IKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVkQXRSdW50aW1l
XSBCbG9iIHJlc3BvbnNlQmxvYgorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRp
b24pOworI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBz
dGF0dXMKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNUZXh0CkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTE5ICBNaWNoYWVsIE5vcmRtYW4gIDxtaWNo
YWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDEzMwor
ICAgICAgICBXZWJLaXRBUEkgdG8gYWxsb3cgcnVudGltZSBlbmFibGVtZW50IG9mIFhtbEh0dHBS
ZXF1ZXN0LnJlc3BvbnNlQmxvYi4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IERlZmluZSBF
TkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IuCisgICAgICAgICogcHVibGljL1dlYlJ1bnRpbWVGZWF0
dXJlcy5oOgorICAgICAgICAqIHNyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxvYik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJsb2JFbmFibGVk
KToKKwogMjAxMC0wOC0yMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IGZvciByNjU4NTIuCkluZGV4OiBXZWJLaXQvY2hy
b21pdW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vZmVhdHVy
ZXMuZ3lwaQkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQAogICAgICAgICAnRU5BQkxFX1dFQl9T
T0NLRVRTPTEnLAogICAgICAgICAnRU5BQkxFX1dFQl9USU1JTkc9MScsCiAgICAgICAgICdFTkFC
TEVfV09SS0VSUz0xJywKKyAgICAgICAgJ0VOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQj0xJywKICAg
ICAgICAgJ0VOQUJMRV9YUEFUSD0xJywKICAgICAgICAgJ0VOQUJMRV9YU0xUPTEnLAogICAgICAg
XSwKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAko
cmV2aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0
dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw5IEBAIHB1YmxpYzoKICAgICBXRUJL
SVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZVNwZWVjaElucHV0KGJvb2wpOwogICAgIFdFQktJVF9B
UEkgc3RhdGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQoKTsKIAorICAgIFdFQktJVF9BUEkg
c3RhdGljIHZvaWQgZW5hYmxlWEhSUmVzcG9uc2VCbG9iKGJvb2wpOworICAgIFdFQktJVF9BUEkg
c3RhdGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAg
V2ViUnVudGltZUZlYXR1cmVzKCk7CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJS
dW50aW1lRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UnVudGltZUZlYXR1cmVzLmNwcAkocmV2aXNpb24gNjU4NTYpCisrKyBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw0ICsyNTYs
MjAgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbgogICAgIHJldHVy
biBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzcGVlY2hJbnB1dEVuYWJsZWQoKTsKIH0KIAordm9p
ZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxvYihib29sIGVuYWJsZSkK
K3sKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2V0WEhSUmVzcG9uc2VCbG9iRW5hYmxlZChlbmFibGUpOworI2VuZGlmCit9CisKK2Jv
b2wgV2ViUnVudGltZUZlYXR1cmVzOjppc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQoKQoreworI2lm
IEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6eGhyUmVzcG9uc2VCbG9iRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65458</attachid>
            <date>2010-08-25 11:57:09 -0700</date>
            <delta_ts>2010-08-26 13:16:24 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.7.txt</filename>
            <type>text/plain</type>
            <size>14594</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgYSBuZXcgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIGNvbXBpbGUg
dGltZSBndWFyZC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcg
c29tZSBzdHVicy4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRS
ZXNwb25zZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVy
biBwYXRoLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dEFjY2Vzc29yR2V0dGVyKTogQ2hhbmdlZCB0byBhbGxvdyBhbiBleGNlcHRpb25hbCByZXR1cm4g
cGF0aC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCk6IENoYW5nZWQgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uIHdoZW4gYWNjZXNzZWQgd2l0aCBhc0Jsb2Igc2V0IHRvIHRydWUuCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlLgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6IEFkZGVkIHN0dWIgbWV0
aG9kLCByZXR1cm5zIDAgZm9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpzZXRBc0Jsb2IpOiBTZXRzIHRoZSBhc0Jsb2IgYXR0cmlidXRlLCByYWlzZXMgZXhjZXB0aW9u
IGlmIGNhbGxlZCBhdCBhbiBpbmFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6b3Blbik6IFJlc2V0cyBhc0Jsb2IgdG8gZmFsc2UsIHRoZSBkZWZhdWx0
IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KTogQ2xlYXJz
IG1fcmVzcG9uc2VCbG9iLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UpOiBDbGVhcnMgbV9yZXNwb25zZUJsb2IuCisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6IEFkZGVkIGEgRklYTUUgdG8gcG9wdWxhdGUg
bV9yZXNwb25zZUJsb2IuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YXNCbG9iKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaWRsOgorCiAyMDEwLTA4LTIzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCBidWlsZCBmaXggZm9yIHI2NTg1Mi4KSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBAQCBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzRGV2aWNlTW90CiBib29sIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmlzRGV2aWNlT3JpZW50YXRpb25FbmFibGVkID0gdHJ1ZTsKIGJvb2wgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6aXNTcGVlY2hJbnB1dEVuYWJsZWQgPSB0cnVlOwogCisjaWYg
RU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpp
c1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJ
REVPKQogCiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmF1ZGlvRW5hYmxlZCgpCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCwxMyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgc3BlZWNoSW5wdXRFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVl
Y2hJbnB1dEVuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hFbmFibGVkKCkgeyByZXR1
cm4gaXNTcGVlY2hJbnB1dEVuYWJsZWQ7IH0KIAorI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxP
QikKKyAgICBzdGF0aWMgYm9vbCB4aHJSZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1cm4gaXNY
SFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIHZvaWQgc2V0WEhSUmVzcG9uc2VC
bG9iRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQgPSBp
c0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCByZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1
cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgYXNCbG9iRW5h
YmxlZCgpICB7IHJldHVybiBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIC8vIE5ldmVyIGluc3RhbnRpYXRlLgogICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXMoKSB7IH0KQEAgLTE0NCw2ICsxNTEsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29s
IGlzRGV2aWNlTW90aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc0RldmljZU9yaWVudGF0
aW9uRW5hYmxlZDsKICAgICBzdGF0aWMgYm9vbCBpc1NwZWVjaElucHV0RW5hYmxlZDsKKyAgICBz
dGF0aWMgYm9vbCBpc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCwxMyBA
QCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlCiAKIEpTVmFsdWUgSlNY
TUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAg
ICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCBpbXBsKCktPnJlc3BvbnNlVGV4dCgp
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHRl
eHQgPSBpbXBsKCktPnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwor
ICAgIH0KKyAgICByZXR1cm4ganNPd25lZFN0cmluZ09yTnVsbChleGVjLCB0ZXh0KTsKIH0KIAog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTWE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5j
cHAJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDExIEBAIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjoKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS5YTUxIdHRwUmVxdWVzdC5yZXNwb25zZXRleHQuX2dldCIpOwogICAgIFhNTEh0dHBSZXF1
ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IFY4WE1MSHR0cFJlcXVlc3Q6OnRvTmF0aXZlKGluZm8uSG9s
ZGVyKCkpOwotICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KCkudjhTdHJp
bmdPck51bGwoKTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBjb25zdCBTY3JpcHRT
dHJpbmcmIHRleHQgPSB4bWxIdHRwUmVxdWVzdC0+cmVzcG9uc2VUZXh0KGVjKTsKKyAgICBpZiAo
ZWMpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVjKTsKKyAgICByZXR1cm4gdGV4dC52OFN0
cmluZ09yTnVsbCgpOwogfQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVz
dDo6b3BlbkNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgorI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgogCiAjaWYgVVNFKEpTQykKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKQEAgLTIyNSwxMyAr
MjI2LDI4IEBAIFhNTEh0dHBSZXF1ZXN0OjpTdGF0ZSBYTUxIdHRwUmVxdWVzdDo6cmUKICAgICBy
ZXR1cm4gbV9zdGF0ZTsKIH0KIAotY29uc3QgU2NyaXB0U3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6
cmVzcG9uc2VUZXh0KCkgY29uc3QKK2NvbnN0IFNjcmlwdFN0cmluZyYgWE1MSHR0cFJlcXVlc3Q6
OnJlc3BvbnNlVGV4dChFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyNpZiBFTkFCTEUoWEhS
X1JFU1BPTlNFX0JMT0IpCisgICAgaWYgKG1fYXNCbG9iKQorICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZWMpOworI2VuZGlmCiAgICAgcmV0
dXJuIG1fcmVzcG9uc2VUZXh0OwogfQogCi1Eb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OnJlc3Bv
bnNlWE1MKCkgY29uc3QKK0RvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQor
ICAgIGlmIChtX2FzQmxvYikgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlYyk7CisjZW5k
aWYKKwogICAgIGlmIChtX3N0YXRlICE9IERPTkUpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0y
NTYsNiArMjcyLDE3IEBAIERvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKQog
ICAgIHJldHVybiBtX3Jlc3BvbnNlWE1MLmdldCgpOwogfQogCisjaWYgRU5BQkxFKFhIUl9SRVNQ
T05TRV9CTE9CKQorQmxvYiogWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYihFeGNlcHRpb25D
b2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIW1fYXNCbG9iKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gbV9y
ZXNwb25zZUJsb2IuZ2V0KCk7Cit9CisjZW5kaWYKKwogWE1MSHR0cFJlcXVlc3RVcGxvYWQqIFhN
TEh0dHBSZXF1ZXN0Ojp1cGxvYWQoKQogewogICAgIGlmICghbV91cGxvYWQpCkBAIC0zMTgsNiAr
MzQ1LDE4IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNldFdpdGhDcmVkZW50aWFscygKICAgICBt
X2luY2x1ZGVDcmVkZW50aWFscyA9IHZhbHVlOwogfQogCisjaWYgRU5BQkxFKFhIUl9SRVNQT05T
RV9CTE9CKQordm9pZCBYTUxIdHRwUmVxdWVzdDo6c2V0QXNCbG9iKGJvb2wgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX3N0YXRlICE9IE9QRU5FRCB8fCBtX2xvYWRlcikg
eworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9hc0Jsb2IgPSB2YWx1ZTsKK30KKyNlbmRpZgorCiB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiB1cmwsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogewogICAgIG9wZW4obWV0aG9kLCB1cmwsIHRydWUsIGVjKTsKQEAgLTMyOSw3
ICszNjgsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYKICAgICBT
dGF0ZSBwcmV2aW91c1N0YXRlID0gbV9zdGF0ZTsKICAgICBtX3N0YXRlID0gVU5TRU5UOwogICAg
IG1fZXJyb3IgPSBmYWxzZTsKLQorI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBt
X2FzQmxvYiA9IGZhbHNlOworI2VuZGlmCiAgICAgbV91cGxvYWRDb21wbGV0ZSA9IGZhbHNlOwog
CiAgICAgLy8gY2xlYXIgc3R1ZmYgZnJvbSBwb3NzaWJsZSBwcmV2aW91cyBsb2FkCkBAIC01OTQs
NiArNjM1LDkgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogICAgIG1fcmVzcG9uc2VU
ZXh0ID0gIiI7CiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNl
WE1MID0gMDsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgbV9yZXNwb25zZUJs
b2IgPSAwOworI2VuZGlmCiAKICAgICAvLyBDbGVhciBoZWFkZXJzIGFzIHJlcXVpcmVkIGJ5IHRo
ZSBzcGVjCiAgICAgbV9yZXF1ZXN0SGVhZGVycy5jbGVhcigpOwpAQCAtNjQwLDYgKzY4NCw5IEBA
IHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9uc2UoKQogICAgIG1fcmVzcG9uc2VUZXh0
ID0gIiI7CiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBtX3Jlc3BvbnNlWE1M
ID0gMDsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgbV9yZXNwb25zZUJsb2Ig
PSAwOworI2VuZGlmCiB9CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVxdWVzdCgpCkBA
IC05MDIsNiArOTQ5LDEwIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmco
dW4KICAgICBpZiAobV9kZWNvZGVyKQogICAgICAgICBtX3Jlc3BvbnNlVGV4dCArPSBtX2RlY29k
ZXItPmZsdXNoKCk7CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgLy8gRklY
TUU6IFNldCBtX3Jlc3BvbnNlQmxvYiB0byBzb21ldGhpbmcgaGVyZSBpbiB0aGUgbV9hc0Jsb2Ig
Y2FzZS4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoSW5zcGVjdG9y
Q29udHJvbGxlciogaW5zcGVjdG9yID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pbnNwZWN0
b3JDb250cm9sbGVyKCkpCiAgICAgICAgIGluc3BlY3Rvci0+cmVzb3VyY2VSZXRyaWV2ZWRCeVhN
TEh0dHBSZXF1ZXN0KGlkZW50aWZpZXIsIG1fcmVzcG9uc2VUZXh0LCBtX3VybCwgbV9sYXN0U2Vu
ZFVSTCwgbV9sYXN0U2VuZExpbmVOdW1iZXIpOwpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCShyZXZp
c2lvbiA2NTg1NikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcwLDYgKzcwLDEwIEBAIHB1YmxpYzoKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29u
c3Q7CiAgICAgYm9vbCB3aXRoQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1ZGVD
cmVkZW50aWFsczsgfQogICAgIHZvaWQgc2V0V2l0aENyZWRlbnRpYWxzKGJvb2wsIEV4Y2VwdGlv
bkNvZGUmKTsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgYm9vbCBhc0Jsb2Io
KSBjb25zdCB7IHJldHVybiBtX2FzQmxvYjsgfQorICAgIHZvaWQgc2V0QXNCbG9iKGJvb2wsIEV4
Y2VwdGlvbkNvZGUmKTsKKyNlbmRpZgogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhv
ZCwgY29uc3QgS1VSTCYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4oY29uc3QgU3Ry
aW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJMJiwgYm9vbCBhc3lu
YywgY29uc3QgU3RyaW5nJiB1c2VyLCBFeGNlcHRpb25Db2RlJik7CkBAIC04NCw4ICs4OCwxMSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJp
ZGUpOwogICAgIFN0cmluZyBnZXRBbGxSZXNwb25zZUhlYWRlcnMoRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OwogICAgIFN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBjb25zdCBTY3JpcHRTdHJpbmcmIHJlc3Bv
bnNlVGV4dCgpIGNvbnN0OwotICAgIERvY3VtZW50KiByZXNwb25zZVhNTCgpIGNvbnN0OworICAg
IGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsK
KyAgICBEb2N1bWVudCogcmVzcG9uc2VYTUwoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBCbG9iKiByZXNwb25zZUJsb2IoRXhjZXB0aW9u
Q29kZSYpIGNvbnN0OworI2VuZGlmCiAgICAgdm9pZCBzZXRMYXN0U2VuZExpbmVOdW1iZXIodW5z
aWduZWQgbGluZU51bWJlcikgeyBtX2xhc3RTZW5kTGluZU51bWJlciA9IGxpbmVOdW1iZXI7IH0K
ICAgICB2b2lkIHNldExhc3RTZW5kVVJMKGNvbnN0IFN0cmluZyYgdXJsKSB7IG1fbGFzdFNlbmRV
UkwgPSB1cmw7IH0KIApAQCAtMTU1LDYgKzE2MiwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X21pbWVUeXBlT3ZlcnJpZGU7CiAgICAgYm9vbCBtX2FzeW5jOwogICAgIGJvb2wgbV9pbmNsdWRl
Q3JlZGVudGlhbHM7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorICAgIGJvb2wgbV9h
c0Jsb2I7CisgICAgUmVmUHRyPEJsb2I+IG1fcmVzcG9uc2VCbG9iOworI2VuZGlmCiAKICAgICBS
ZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgU3RhdGUgbV9zdGF0ZTsKSW5k
ZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5pZGwJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1NywxMSBAQCBtb2R1
bGUgeG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IHJlYWR5
U3RhdGU7CiAKICAgICAgICAgLy8gcmVxdWVzdAorI2lmIGRlZmluZWQoRU5BQkxFX1hIUl9SRVNQ
T05TRV9CTE9CKSAmJiBFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IKKyAgICAgICAgYXR0cmlidXRl
IFtFbmFibGVkQXRSdW50aW1lXSBib29sZWFuIGFzQmxvYgorICAgICAgICAgICAgc2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOworI2VuZGlmCisKICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4g
d2l0aENyZWRlbnRpYWxzCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIC8vIHZvaWQgb3BlbihpbiBET01TdHJpbmcgbWV0aG9kLCBpbiBET01TdHJpbmcg
dXJsKTsKQEAgLTgyLDggKzg3LDE0IEBAIG1vZHVsZSB4bWwgewogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZSwgQ29u
dmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIoaW4gRE9N
U3RyaW5nIGhlYWRlcikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gRE9NU3RyaW5nIHJlc3BvbnNlVGV4
dDsgLy8gVGhlIGN1c3RvbSBnZXR0ZXIgaW1wbGVtZW50cyBDb252ZXJ0TnVsbFN0cmluZ1RvPU51
bGwKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERvY3VtZW50IHJlc3BvbnNlWE1MOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0N1c3RvbUdldHRlcl0gRE9NU3RyaW5nIHJlc3BvbnNl
VGV4dCAvLyBUaGUgY3VzdG9tIGdldHRlciBpbXBsZW1lbnRzIENvbnZlcnROdWxsU3RyaW5nVG89
TnVsbAorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgcmVzcG9uc2VYTUwKKyAgICAgICAgICAgIGdldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNpZiBkZWZpbmVkKEVOQUJMRV9YSFJfUkVTUE9OU0Vf
QkxPQikgJiYgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbRW5hYmxlZEF0UnVudGltZV0gQmxvYiByZXNwb25zZUJsb2IKKyAgICAgICAgICAgIGdl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgc2hvcnQgc3RhdHVzCiAgICAgICAgICAgICBnZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgc3RhdHVz
VGV4dApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTg1NikKKysrIFdlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0xOSAg
TWljaGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDQxMzMKKyAgICAgICAgV2ViS2l0QVBJIHRvIGFsbG93IHJ1bnRpbWUg
ZW5hYmxlbWVudCBvZiBYbWxIdHRwUmVxdWVzdC5yZXNwb25zZUJsb2IuCisKKyAgICAgICAgKiBm
ZWF0dXJlcy5neXBpOiBEZWZpbmUgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CLgorICAgICAgICAq
IHB1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaDoKKyAgICAgICAgKiBzcmMvV2ViUnVudGltZUZl
YXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVY
SFJSZXNwb25zZUJsb2IpOgorICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6Omlz
WEhSUmVzcG9uc2VCbG9iRW5hYmxlZCk6CisKIDIwMTAtMDgtMjMgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBmb3IgcjY1
ODUyLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViS2l0
L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAK
ICAgICAgICAgJ0VOQUJMRV9XRUJfU09DS0VUUz0xJywKICAgICAgICAgJ0VOQUJMRV9XRUJfVElN
SU5HPTEnLAogICAgICAgICAnRU5BQkxFX1dPUktFUlM9MScsCisgICAgICAgICdFTkFCTEVfWEhS
X1JFU1BPTlNFX0JMT0I9MScsCiAgICAgICAgICdFTkFCTEVfWFBBVEg9MScsCiAgICAgICAgICdF
TkFCTEVfWFNMVD0xJywKICAgICAgIF0sCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlJ1bnRpbWVGZWF0dXJlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViUnVudGltZUZlYXR1cmVzLmgJKHJldmlzaW9uIDY1ODU2KQorKysgV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJSdW50aW1lRmVhdHVyZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODYsNiArODYs
OSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgdm9pZCBlbmFibGVTcGVlY2hJbnB1
dChib29sKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzU3BlZWNoSW5wdXRFbmFibGVk
KCk7CiAKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZVhIUlJlc3BvbnNlQmxvYihi
b29sKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxl
ZCgpOworCiBwcml2YXRlOgogICAgIFdlYlJ1bnRpbWVGZWF0dXJlcygpOwogfTsKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAJKHJldmlzaW9uIDY1ODU2
KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTYsNCArMjU2LDIwIEBAIGJvb2wgV2ViUnVudGltZUZlYXR1cmVzOjppc1Nw
ZWVjaElucHV0RW4KICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c3BlZWNoSW5w
dXRFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVYSFJSZXNw
b25zZUJsb2IoYm9vbCBlbmFibGUpCit7CisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQor
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFhIUlJlc3BvbnNlQmxvYkVuYWJsZWQoZW5h
YmxlKTsKKyNlbmRpZgorfQorCitib29sIFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25z
ZUJsb2JFbmFibGVkKCkKK3sKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgcmV0
dXJuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnhoclJlc3BvbnNlQmxvYkVuYWJsZWQoKTsKKyNl
bHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65607</attachid>
            <date>2010-08-26 13:16:24 -0700</date>
            <delta_ts>2010-08-27 12:42:58 -0700</delta_ts>
            <desc>xhr.responseBlob bindings</desc>
            <filename>responseBlob.8.txt</filename>
            <type>text/plain</type>
            <size>14923</size>
            <attacher name="Michael Nordman">michaeln</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjEyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMDgtMTkgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MTMzCisgICAgICAg
IElETCBiaW5kaW5ncyBmb3IgWG1sSHR0cFJlcXVlc3QucmVzcG9uc2VCbG9iIHN1cHBvcnQsIGRv
ZXNuJ3QgZG8gYW55dGhpbmcgeWV0LgorICAgICAgICBBZGRzIHR3byBuZXcgYXR0cmlidXRlcywg
YXNCbG9iIGFuZCByZXNwb25zZUJsb2IuCisgICAgICAgIFJ1bnRpbWUgZGlzYWJsZWQgYnkgZGVm
YXVsdCwgYWxzbyBiZWhpbmQgYSBuZXcgRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CIGNvbXBpbGUg
dGltZSBndWFyZC4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBhZGRpbmcg
c29tZSBzdHVicy4KKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHA6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRS
ZXNwb25zZUJsb2JFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc3BvbnNlQmxvYkVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6UnVudGltZUVu
YWJsZWRGZWF0dXJlczo6YXNCbG9iRW5hYmxlZCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1
ZXN0OjpyZXNwb25zZVRleHQpOiBDaGFuZ2VkIHRvIGFsbG93IGFuIGV4Y2VwdGlvbmFsIHJldHVy
biBwYXRoLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dEFjY2Vzc29yR2V0dGVyKTogQ2hhbmdlZCB0byBhbGxvdyBhbiBleGNlcHRpb25hbCByZXR1cm4g
cGF0aC4KKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4dCk6IENoYW5nZWQgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uIHdoZW4gYWNjZXNzZWQgd2l0aCBhc0Jsb2Igc2V0IHRvIHRydWUuCisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwpOiBDaGFuZ2VkIHRvIHJhaXNlIGFu
IGV4Y2VwdGlvbiB3aGVuIGFjY2Vzc2VkIHdpdGggYXNCbG9iIHNldCB0byB0cnVlLgorICAgICAg
ICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlQmxvYik6IEFkZGVkIHN0dWIgbWV0
aG9kLCByZXR1cm5zIDAgZm9yIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0
OjpzZXRBc0Jsb2IpOiBTZXRzIHRoZSBhc0Jsb2IgYXR0cmlidXRlLCByYWlzZXMgZXhjZXB0aW9u
IGlmIGNhbGxlZCBhdCBhbiBpbmFwcHJvcHJpYXRlIHRpbWUuCisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6b3Blbik6IFJlc2V0cyBhc0Jsb2IgdG8gZmFsc2UsIHRoZSBkZWZhdWx0
IHZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KTogQ2xlYXJz
IG1fcmVzcG9uc2VCbG9iLgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmNsZWFy
UmVzcG9uc2UpOiBDbGVhcnMgbV9yZXNwb25zZUJsb2IuCisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyk6IEFkZGVkIGEgRklYTUUgdG8gcG9wdWxhdGUg
bV9yZXNwb25zZUJsb2IuCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YXNCbG9iKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaWRsOgorCiAyMDEwLTA4LTI2ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCShy
ZXZpc2lvbiA2NjEyMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAgYm9vbCBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjppc0RldmljZU1vdAogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjppc0RldmljZU9yaWVudGF0aW9uRW5hYmxlZCA9IHRydWU7CiBib29sIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbmFibGVkID0gdHJ1ZTsKIAorI2lmIEVOQUJMRShY
SFJfUkVTUE9OU0VfQkxPQikKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNYSFJSZXNw
b25zZUJsb2JFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKKwogI2lmIEVOQUJMRShWSURFTykKIAog
Ym9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjphdWRpb0VuYWJsZWQoKQpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCShyZXZp
c2lvbiA2NjEyMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyOCw2ICsxMjgsMTMgQEAgcHVibGljOgogICAg
IHN0YXRpYyBib29sIHNwZWVjaElucHV0RW5hYmxlZCgpIHsgcmV0dXJuIGlzU3BlZWNoSW5wdXRF
bmFibGVkOyB9CiAgICAgc3RhdGljIGJvb2wgc3BlZWNoRW5hYmxlZCgpIHsgcmV0dXJuIGlzU3Bl
ZWNoSW5wdXRFbmFibGVkOyB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAg
c3RhdGljIGJvb2wgeGhyUmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJuIGlzWEhSUmVzcG9u
c2VCbG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyB2b2lkIHNldFhIUlJlc3BvbnNlQmxvYkVuYWJs
ZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkID0gaXNFbmFibGVk
OyB9CisgICAgc3RhdGljIGJvb2wgcmVzcG9uc2VCbG9iRW5hYmxlZCgpIHsgcmV0dXJuIGlzWEhS
UmVzcG9uc2VCbG9iRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIGFzQmxvYkVuYWJsZWQoKSAg
eyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkOyB9CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICAvLyBOZXZlciBpbnN0YW50aWF0ZS4KICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzKCkg
eyB9CkBAIC0xNDQsNiArMTUxLDkgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0Rldmlj
ZU1vdGlvbkVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNEZXZpY2VPcmllbnRhdGlvbkVuYWJs
ZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQ7CisjaWYgRU5BQkxFKFhI
Ul9SRVNQT05TRV9CTE9CKQorICAgIHN0YXRpYyBib29sIGlzWEhSUmVzcG9uc2VCbG9iRW5hYmxl
ZDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiA2NjEy
MSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyNCw3ICsxMjQsMTMgQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0
OjpzZW5kKEV4ZWNTdGF0ZQogCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlVGV4
dChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGpzT3duZWRTdHJpbmdPck51
bGwoZXhlYywgaW1wbCgpLT5yZXNwb25zZVRleHQoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiB0ZXh0ID0gaW1wbCgpLT5yZXNwb25zZVRleHQo
ZWMpOworICAgIGlmIChlYykgeworICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwor
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKKyAgICB9CisgICAgcmV0dXJuIGpzT3duZWRT
dHJpbmdPck51bGwoZXhlYywgdGV4dCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1hNTEh0dHBSZXF1ZXN0
KEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCShyZXZpc2lvbiA2NjEyMSkKKysrIFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSw3ICs0OSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxI
dHRwUmVxdWVzdDo6CiB7CiAgICAgSU5DX1NUQVRTKCJET00uWE1MSHR0cFJlcXVlc3QucmVzcG9u
c2V0ZXh0Ll9nZXQiKTsKICAgICBYTUxIdHRwUmVxdWVzdCogeG1sSHR0cFJlcXVlc3QgPSBWOFhN
TEh0dHBSZXF1ZXN0Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICByZXR1cm4geG1sSHR0
cFJlcXVlc3QtPnJlc3BvbnNlVGV4dCgpLnY4U3RyaW5nT3JOdWxsKCk7CisgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgY29uc3QgU2NyaXB0U3RyaW5nJiB0ZXh0ID0geG1sSHR0cFJlcXVl
c3QtPnJlc3BvbnNlVGV4dChlYyk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcihlYyk7CisgICAgcmV0dXJuIHRleHQudjhTdHJpbmdPck51bGwoKTsKIH0KIAogdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4WE1MSHR0cFJlcXVlc3Q6Om9wZW5DYWxsYmFjayhjb25zdCB2ODo6
QXJndW1lbnRzJiBhcmdzKQpJbmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNjYx
MjEpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIu
aD4KKyNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogI2lmIFVTRShKU0MpCiAjaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCkBAIC0xNzEsNiArMTcyLDkgQEAgWE1MSHR0cFJlcXVlc3Q6OlhN
TEh0dHBSZXF1ZXN0KFNjcmlwdEV4ZQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQsIHRo
aXMpCiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2luY2x1ZGVDcmVkZW50aWFscyhmYWxz
ZSkKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgLCBtX2FzQmxvYihmYWxzZSkK
KyNlbmRpZgogICAgICwgbV9zdGF0ZShVTlNFTlQpCiAgICAgLCBtX3Jlc3BvbnNlVGV4dCgiIikK
ICAgICAsIG1fY3JlYXRlZERvY3VtZW50KGZhbHNlKQpAQCAtMjI1LDEzICsyMjksMjggQEAgWE1M
SHR0cFJlcXVlc3Q6OlN0YXRlIFhNTEh0dHBSZXF1ZXN0OjpyZQogICAgIHJldHVybiBtX3N0YXRl
OwogfQogCi1jb25zdCBTY3JpcHRTdHJpbmcmIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVRleHQo
KSBjb25zdAorY29uc3QgU2NyaXB0U3RyaW5nJiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VUZXh0
KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogeworI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxP
QikKKyAgICBpZiAobV9hc0Jsb2IpCisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShlYyk7CisjZW5kaWYKICAgICByZXR1cm4gbV9yZXNwb25z
ZVRleHQ7CiB9CiAKLURvY3VtZW50KiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VYTUwoKSBjb25z
dAorRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJiBl
YykgY29uc3QKIHsKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgaWYgKG1fYXNC
bG9iKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVjKTsKKyNlbmRpZgorCiAgICAgaWYg
KG1fc3RhdGUgIT0gRE9ORSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTI1Niw2ICsyNzUsMTcg
QEAgRG9jdW1lbnQqIFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZVhNTCgpCiAgICAgcmV0dXJuIG1f
cmVzcG9uc2VYTUwuZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCitC
bG9iKiBYTUxIdHRwUmVxdWVzdDo6cmVzcG9uc2VCbG9iKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25z
dAoreworICAgIGlmICghbV9hc0Jsb2IpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiBtX3Jlc3BvbnNlQmxvYi5n
ZXQoKTsKK30KKyNlbmRpZgorCiBYTUxIdHRwUmVxdWVzdFVwbG9hZCogWE1MSHR0cFJlcXVlc3Q6
OnVwbG9hZCgpCiB7CiAgICAgaWYgKCFtX3VwbG9hZCkKQEAgLTMxOCw2ICszNDgsMTggQEAgdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6c2V0V2l0aENyZWRlbnRpYWxzKAogICAgIG1faW5jbHVkZUNyZWRl
bnRpYWxzID0gdmFsdWU7CiB9CiAKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCit2b2lk
IFhNTEh0dHBSZXF1ZXN0OjpzZXRBc0Jsb2IoYm9vbCB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgaWYgKG1fc3RhdGUgIT0gT1BFTkVEIHx8IG1fbG9hZGVyKSB7CisgICAgICAgIGVj
ID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2Fz
QmxvYiA9IHZhbHVlOworfQorI2VuZGlmCisKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29u
c3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmIHVybCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgb3BlbihtZXRob2QsIHVybCwgdHJ1ZSwgZWMpOwpAQCAtMzI5LDcgKzM3MSw5IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5nJgogICAgIFN0YXRlIHByZXZpb3Vz
U3RhdGUgPSBtX3N0YXRlOwogICAgIG1fc3RhdGUgPSBVTlNFTlQ7CiAgICAgbV9lcnJvciA9IGZh
bHNlOwotCisjaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQorICAgIG1fYXNCbG9iID0gZmFs
c2U7CisjZW5kaWYKICAgICBtX3VwbG9hZENvbXBsZXRlID0gZmFsc2U7CiAKICAgICAvLyBjbGVh
ciBzdHVmZiBmcm9tIHBvc3NpYmxlIHByZXZpb3VzIGxvYWQKQEAgLTU5NCw2ICs2MzgsOSBAQCB2
b2lkIFhNTEh0dHBSZXF1ZXN0OjphYm9ydCgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAg
ICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lm
IEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5k
aWYKIAogICAgIC8vIENsZWFyIGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKICAgICBt
X3JlcXVlc3RIZWFkZXJzLmNsZWFyKCk7CkBAIC02NDAsNiArNjg3LDkgQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6Y2xlYXJSZXNwb25zZSgpCiAgICAgbV9yZXNwb25zZVRleHQgPSAiIjsKICAgICBt
X2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwogICAgIG1fcmVzcG9uc2VYTUwgPSAwOworI2lmIEVO
QUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7CisjZW5kaWYK
IH0KIAogdm9pZCBYTUxIdHRwUmVxdWVzdDo6Y2xlYXJSZXF1ZXN0KCkKQEAgLTkwMiw2ICs5NTIs
MTAgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZyh1bgogICAgIGlmICht
X2RlY29kZXIpCiAgICAgICAgIG1fcmVzcG9uc2VUZXh0ICs9IG1fZGVjb2Rlci0+Zmx1c2goKTsK
IAorI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICAvLyBGSVhNRTogU2V0IG1fcmVz
cG9uc2VCbG9iIHRvIHNvbWV0aGluZyBoZXJlIGluIHRoZSBtX2FzQmxvYiBjYXNlLgorI2VuZGlm
CisKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBp
bnNwZWN0b3IgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmluc3BlY3RvckNvbnRyb2xsZXIo
KSkKICAgICAgICAgaW5zcGVjdG9yLT5yZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3Qo
aWRlbnRpZmllciwgbV9yZXNwb25zZVRleHQsIG1fdXJsLCBtX2xhc3RTZW5kVVJMLCBtX2xhc3RT
ZW5kTGluZU51bWJlcik7CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDY2MTIxKQor
KysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiAr
NzAsMTAgQEAgcHVibGljOgogICAgIFN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKICAgICBib29s
IHdpdGhDcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVkZUNyZWRlbnRpYWxzOyB9
CiAgICAgdm9pZCBzZXRXaXRoQ3JlZGVudGlhbHMoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworI2lm
IEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICBib29sIGFzQmxvYigpIGNvbnN0IHsgcmV0
dXJuIG1fYXNCbG9iOyB9CisgICAgdm9pZCBzZXRBc0Jsb2IoYm9vbCwgRXhjZXB0aW9uQ29kZSYp
OworI2VuZGlmCiAgICAgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbWV0aG9kLCBjb25zdCBLVVJM
JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG1ldGhvZCwg
Y29uc3QgS1VSTCYsIGJvb2wgYXN5bmMsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBtZXRob2QsIGNvbnN0IEtVUkwmLCBib29sIGFzeW5jLCBjb25zdCBTdHJp
bmcmIHVzZXIsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTg0LDggKzg4LDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIG92ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CiAgICAgU3Ry
aW5nIGdldEFsbFJlc3BvbnNlSGVhZGVycyhFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgU3Ry
aW5nIGdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRXhjZXB0aW9u
Q29kZSYpIGNvbnN0OwotICAgIGNvbnN0IFNjcmlwdFN0cmluZyYgcmVzcG9uc2VUZXh0KCkgY29u
c3Q7Ci0gICAgRG9jdW1lbnQqIHJlc3BvbnNlWE1MKCkgY29uc3Q7CisgICAgY29uc3QgU2NyaXB0
U3RyaW5nJiByZXNwb25zZVRleHQoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworICAgIERvY3VtZW50
KiByZXNwb25zZVhNTChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjaWYgRU5BQkxFKFhIUl9SRVNQ
T05TRV9CTE9CKQorICAgIEJsb2IqIHJlc3BvbnNlQmxvYihFeGNlcHRpb25Db2RlJikgY29uc3Q7
CisjZW5kaWYKICAgICB2b2lkIHNldExhc3RTZW5kTGluZU51bWJlcih1bnNpZ25lZCBsaW5lTnVt
YmVyKSB7IG1fbGFzdFNlbmRMaW5lTnVtYmVyID0gbGluZU51bWJlcjsgfQogICAgIHZvaWQgc2V0
TGFzdFNlbmRVUkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgbV9sYXN0U2VuZFVSTCA9IHVybDsgfQog
CkBAIC0xNTUsNiArMTYyLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fbWltZVR5cGVPdmVy
cmlkZTsKICAgICBib29sIG1fYXN5bmM7CiAgICAgYm9vbCBtX2luY2x1ZGVDcmVkZW50aWFsczsK
KyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgYm9vbCBtX2FzQmxvYjsKKyAgICBS
ZWZQdHI8QmxvYj4gbV9yZXNwb25zZUJsb2I7CisjZW5kaWYKIAogICAgIFJlZlB0cjxUaHJlYWRh
YmxlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBTdGF0ZSBtX3N0YXRlOwpJbmRleDogV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmlkbAkocmV2aXNpb24gNjYxMjEpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDExIEBAIG1vZHVsZSB4bWwgewogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKIAogICAg
ICAgICAvLyByZXF1ZXN0CisjaWYgZGVmaW5lZChFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IpICYm
IEVOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQgorICAgICAgICBhdHRyaWJ1dGUgW0VuYWJsZWRBdFJ1
bnRpbWVdIGJvb2xlYW4gYXNCbG9iCisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisjZW5kaWYKKwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiB3aXRoQ3JlZGVudGlh
bHMKICAgICAgICAgICAgIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgLy8g
dm9pZCBvcGVuKGluIERPTVN0cmluZyBtZXRob2QsIGluIERPTVN0cmluZyB1cmwpOwpAQCAtODIs
OCArODcsMTQgQEAgbW9kdWxlIHhtbCB7CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlLCBDb252ZXJ0TnVsbFN0cmlu
Z1RvPU51bGxdIERPTVN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihpbiBET01TdHJpbmcgaGVhZGVy
KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0OyAvLyBUaGUgY3Vz
dG9tIGdldHRlciBpbXBsZW1lbnRzIENvbnZlcnROdWxsU3RyaW5nVG89TnVsbAotICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRG9jdW1lbnQgcmVzcG9uc2VYTUw7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbQ3VzdG9tR2V0dGVyXSBET01TdHJpbmcgcmVzcG9uc2VUZXh0IC8vIFRoZSBj
dXN0b20gZ2V0dGVyIGltcGxlbWVudHMgQ29udmVydE51bGxTdHJpbmdUbz1OdWxsCisgICAgICAg
ICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBEb2N1bWVudCByZXNwb25zZVhNTAorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOworI2lmIGRlZmluZWQoRU5BQkxFX1hIUl9SRVNQT05TRV9CTE9CKSAmJiBFTkFC
TEVfWEhSX1JFU1BPTlNFX0JMT0IKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFbmFibGVk
QXRSdW50aW1lXSBCbG9iIHJlc3BvbnNlQmxvYgorICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOworI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBzaG9ydCBzdGF0dXMKICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzdGF0dXNUZXh0CkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY2MTIxKQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA4LTE5ICBNaWNoYWVsIE5vcmRt
YW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NDEzMworICAgICAgICBXZWJLaXRBUEkgdG8gYWxsb3cgcnVudGltZSBlbmFibGVtZW50IG9m
IFhtbEh0dHBSZXF1ZXN0LnJlc3BvbnNlQmxvYi4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6
IERlZmluZSBFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IuCisgICAgICAgICogcHVibGljL1dlYlJ1
bnRpbWVGZWF0dXJlcy5oOgorICAgICAgICAqIHNyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxv
Yik6CisgICAgICAgIChXZWJLaXQ6OldlYlJ1bnRpbWVGZWF0dXJlczo6aXNYSFJSZXNwb25zZUJs
b2JFbmFibGVkKToKKwogMjAxMC0wOC0yNiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBX
ZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQkocmV2aXNpb24gNjYxMjEpCisrKyBXZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtODEsNiArODEsNyBAQAogICAgICAgICAnRU5B
QkxFX1dFQl9TT0NLRVRTPTEnLAogICAgICAgICAnRU5BQkxFX1dFQl9USU1JTkc9MScsCiAgICAg
ICAgICdFTkFCTEVfV09SS0VSUz0xJywKKyAgICAgICAgJ0VOQUJMRV9YSFJfUkVTUE9OU0VfQkxP
Qj0xJywKICAgICAgICAgJ0VOQUJMRV9YUEFUSD0xJywKICAgICAgICAgJ0VOQUJMRV9YU0xUPTEn
LAogICAgICAgXSwKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZlYXR1
cmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSdW50aW1lRmVh
dHVyZXMuaAkocmV2aXNpb24gNjYxMjEpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJ1
bnRpbWVGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw5IEBAIHB1YmxpYzoK
ICAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIGVuYWJsZVNwZWVjaElucHV0KGJvb2wpOwogICAg
IFdFQktJVF9BUEkgc3RhdGljIGJvb2wgaXNTcGVlY2hJbnB1dEVuYWJsZWQoKTsKIAorICAgIFdF
QktJVF9BUEkgc3RhdGljIHZvaWQgZW5hYmxlWEhSUmVzcG9uc2VCbG9iKGJvb2wpOworICAgIFdF
QktJVF9BUEkgc3RhdGljIGJvb2wgaXNYSFJSZXNwb25zZUJsb2JFbmFibGVkKCk7CisKIHByaXZh
dGU6CiAgICAgV2ViUnVudGltZUZlYXR1cmVzKCk7CiB9OwpJbmRleDogV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcAkocmV2aXNpb24gNjYxMjEpCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
Niw0ICsyNTYsMjAgQEAgYm9vbCBXZWJSdW50aW1lRmVhdHVyZXM6OmlzU3BlZWNoSW5wdXRFbgog
ICAgIHJldHVybiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzcGVlY2hJbnB1dEVuYWJsZWQoKTsK
IH0KIAordm9pZCBXZWJSdW50aW1lRmVhdHVyZXM6OmVuYWJsZVhIUlJlc3BvbnNlQmxvYihib29s
IGVuYWJsZSkKK3sKKyNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCisgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2V0WEhSUmVzcG9uc2VCbG9iRW5hYmxlZChlbmFibGUpOworI2VuZGlm
Cit9CisKK2Jvb2wgV2ViUnVudGltZUZlYXR1cmVzOjppc1hIUlJlc3BvbnNlQmxvYkVuYWJsZWQo
KQoreworI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKKyAgICByZXR1cm4gUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6eGhyUmVzcG9uc2VCbG9iRW5hYmxlZCgpOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>