<?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>36565</bug_id>
          
          <creation_ts>2010-03-24 17:23:35 -0700</creation_ts>
          <short_desc>[v8] Error in getScriptExecutionContext() when worker context is terminating</short_desc>
          <delta_ts>2013-01-16 14:43:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107050</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>203695</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-24 17:23:35 -0700</bug_when>
    <thetext>[v8] Error in getScriptExecutionContext() when worker context is terminating</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203698</commentid>
    <comment_count>1</comment_count>
      <attachid>51567</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-24 17:29:27 -0700</bug_when>
    <thetext>Created attachment 51567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203702</commentid>
    <comment_count>2</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-24 17:38:24 -0700</bug_when>
    <thetext>Upstream version of http://code.google.com/p/chromium/issues/detail?id=38970

While running the SharedWorkerHttpAuth test under valgrind, I got the following failed assertion:

Command: 
/Volumes/source/chrome.git/src/xcodebuild/Debug/Chromium.app/Contents/Versions/5.0.360
.0/Chromium\ Helper.app/Contents/MacOS/Chromium\ Helper --type=worker --
channel=58049.0x2040a4d0.1081383255 --enable-logging
Invalid write of size 4
  WebCore::V8Proxy::retrieveWindow(v8::Handle&lt;v8::Context&gt;) 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
Proxy.cpp:537)
  WebCore::V8Proxy::retrieveFrame(v8::Handle&lt;v8::Context&gt;) 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
Proxy.cpp:543)
  WebCore::V8Proxy::retrieveFrameForCurrentContext() 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
Proxy.cpp:566)
  WebCore::getScriptExecutionContext(WebCore::ScriptState*) 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
Utilities.cpp:141)
  WebCore::reportException(WebCore::ScriptState*, v8::TryCatch&amp;) 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
Utilities.cpp:171)
  WebCore::V8AbstractEventListener::invokeEventHandler(WebCore::ScriptExecutionContext*, 
WebCore::Event*, v8::Handle&lt;v8::Value&gt;) 
(/Volumes/source/chrome.git/src/third_party/WebKit/WebCore/WebCore.gyp/../bindings/v8/V8
AbstractEventListener.cpp:150)
...

Basically, the problem seems to be that if you&apos;re running in a worker thread, but 
WorkerContextExecutionProxy::retrieve() returns null, then getScriptExecutionContext() assumes 
that we&apos;re running in document context and a failed assertion ensues.

We need to change the API to allow callers to differentiate between &quot;I&apos;m in a worker context but it&apos;s shutting down&quot; from &quot;I&apos;m in a document context&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203948</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-25 02:18:59 -0700</bug_when>
    <thetext>Drive-by: getControllerForContext and getScriptExecutionContext aren&apos;t in WebKit style.  You&apos;re not supposed to use the &quot;get&quot; prefix for getters.  Just controllerForContext and scriptExecutionContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204106</commentid>
    <comment_count>4</comment_count>
      <attachid>51651</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-25 09:53:21 -0700</bug_when>
    <thetext>Created attachment 51651
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204109</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-03-25 09:57:11 -0700</bug_when>
    <thetext>Attachment 51651 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1207043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204117</commentid>
    <comment_count>6</comment_count>
      <attachid>51653</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-25 10:16:15 -0700</bug_when>
    <thetext>Created attachment 51653
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204119</commentid>
    <comment_count>7</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-25 10:17:03 -0700</bug_when>
    <thetext>I took Adam&apos;s suggestion and renamed getControllerForContext() to
controllerForContext(). There are several uses of getScriptExecutionContext(),
so I&apos;ll leave renaming that function for another day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204134</commentid>
    <comment_count>8</comment_count>
      <attachid>51653</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-03-25 10:42:50 -0700</bug_when>
    <thetext>Comment on attachment 51653
Patch

Ok.

Is there any reason for us to leave a shortcut in place for getting the WorkerContextExecutionProxy* with a single call (for the cases where &quot;we&apos;re not in a worker context&quot; and &quot;we&apos;re shutting down&quot; are handled equivalently)?  My guess is that it would just create confusion, but I&apos;ll ask your opinion anyway. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204141</commentid>
    <comment_count>9</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-03-25 10:56:14 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 51653 [details])
&gt; Ok.
&gt; 
&gt; Is there any reason for us to leave a shortcut in place for getting the
&gt; WorkerContextExecutionProxy* with a single call (for the cases where &quot;we&apos;re not
&gt; in a worker context&quot; and &quot;we&apos;re shutting down&quot; are handled equivalently)?  My
&gt; guess is that it would just create confusion, but I&apos;ll ask your opinion anyway.
&gt; :)

There&apos;s only one place in the code currently where we want to treat those cases the same (WebWorkerClientImpl.cpp, where we already know we are in a worker context), so I don&apos;t think we need a convenience function (and the problem with a convenience function is people can use it incorrectly so I&apos;d rather make it explicit:

        WorkerScriptController* controller = WorkerScriptController::controllerForContext();
        WorkerContextExecutionProxy* currentContext = controller ? controller-&gt;proxy() : 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204314</commentid>
    <comment_count>10</comment_count>
      <attachid>51653</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-25 17:06:38 -0700</bug_when>
    <thetext>Comment on attachment 51653
Patch

Clearing flags on attachment: 51653

Committed r56580: &lt;http://trac.webkit.org/changeset/56580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>204315</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-25 17:06:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51567</attachid>
            <date>2010-03-24 17:29:27 -0700</date>
            <delta_ts>2010-03-25 09:53:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36565-20100324172926.patch</filename>
            <type>text/plain</type>
            <size>9218</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGUyZDBiZC4uYjgzZmVlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wMy0yNCAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW3Y4XSBFcnJvciBpbiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgd2hlbiB3b3JrZXIgY29udGV4dCBpcyB0ZXJtaW5hdGluZy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY1CisKKyAgICAgICAgUmVtb3ZlZCBX
b3JrZXJTY3JpcHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKSBhbmQgYWRkZWQgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6Z2V0Q29udHJvbGxlckZvckNvbnRleHQoKS4gVGhpcyBhbGxvd3MKKyAg
ICAgICAgY2FsbGVycyB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gInRoZSBjdXJyZW50IGNvbnRl
eHQgaXMgc2h1dHRpbmcgZG93biIgdnMgInRoZSBjdXJyZW50IGNvbnRleHQgaXMgbm90IGEgd29y
a2VyIGNvbnRleHQiLgorCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZm
aWNlLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IpOgorICAgICAgICBDaGFuZ2Vk
IHRvIHVzZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9sbGVyRm9yQ29udGV4dCgp
IGluc3RlYWQgb2YgV29ya2VyU2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCkuCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIENoYW5nZWQgdG8gdXNlIFdvcmtlclNj
cmlwdENvbnRyb2xsZXI6OmdldENvbnRyb2xsZXJGb3JDb250ZXh0KCkgaW5zdGVhZCBvZiBXb3Jr
ZXJTY3JpcHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKS4KKyAgICAgICAgKiBiaW5kaW5ncy92
OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICBSZW1vdmVkIFdvcmtl
clNjcmlwdEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICBSZW1vdmVkIFdvcmtlclNj
cmlwdEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6Z2V0Q29udHJvbGxlckZvckNvbnRleHQpOgorICAgICAgICBBZGRlZCBoZWxw
ZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3Vy
cmVudCBjb250ZXh0LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgQWRkZWQgZGVjbGFyYXRpb24gZm9yIGdldENvbnRyb2xsZXJGb3JDb250
ZXh0KCkuCisKIDIwMTAtMDMtMjMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCmluZGV4IDIzMWQwNzAuLjQ3YTYwMWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5jcHAKQEAgLTE2Miw3ICsxNjIsOCBAQCB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBW
OERPTVdyYXBwZXI6OmdldENvbnN0cnVjdG9yKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgRE9NVwog
I2lmIEVOQUJMRShXT1JLRVJTKQogdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhET01XcmFwcGVy
OjpnZXRDb25zdHJ1Y3RvcihXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFdvcmtlckNvbnRleHQqKQog
ewotICAgIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogcHJveHkgPSBXb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciog
Y29udHJvbGxlciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmdldENvbnRyb2xsZXJGb3JDb250
ZXh0KCk7CisgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGNvbnRyb2xs
ZXIgPyBjb250cm9sbGVyLT5wcm94eSgpIDogMDsKICAgICBpZiAoIXByb3h5KQogICAgICAgICBy
ZXR1cm4gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4oKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmNwcAppbmRleCAwMzViOTgzLi5iN2U2ZDVkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmNwcApAQCAtMTI4LDkgKzEyOCwxMSBAQCB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1l
KiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvYwogU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiB7CiAjaWYg
RU5BQkxFKFdPUktFUlMpCi0gICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9
IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKTsKLSAgICBpZiAocHJveHkp
Ci0gICAgICAgIHJldHVybiBwcm94eS0+d29ya2VyQ29udGV4dCgpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlciA9IFdvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmdldENvbnRyb2xsZXJGb3JDb250ZXh0KCk7CisgICAgaWYgKGNv
bnRyb2xsZXIpIHsKKyAgICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9
IGNvbnRyb2xsZXItPnByb3h5KCk7CisgICAgICAgIHJldHVybiBwcm94eSA/IHByb3h5LT53b3Jr
ZXJDb250ZXh0KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IDA7CisgICAgfQogI2VuZGlm
CiAKICAgICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ3VycmVudENv
bnRleHQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcAppbmRleCBkOGVhMzM0Li44YzhhY2FhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC00NSw3ICs0
NSw2IEBACiAjaW5jbHVkZSAiVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAi
VjhQcm94eS5oIgogI2luY2x1ZGUgIlY4U2hhcmVkV29ya2VyQ29udGV4dC5oIgotI2luY2x1ZGUg
IlY4V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtl
ckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDgs
MjEgKzEwNyw2IEBAIHZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpkaXNwb3NlKCkK
ICAgICB9CiB9CiAKLVdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogV29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpCi17Ci0gICAgLy8gSGFwcGVucyBvbiBmcmFtZSBkZXN0
cnVjdGlvbiwgY2hlY2sgb3RoZXJ3aXNlIEdldEN1cnJlbnQoKSB3aWxsIGNyYXNoLgotICAgIGlm
ICghdjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICB2ODo6
SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsK
LSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkdsb2JhbCgpOwot
ICAgIGdsb2JhbCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOFdvcmtlckNvbnRl
eHQ6OkdldFRlbXBsYXRlKCksIGdsb2JhbCk7Ci0gICAgLy8gUmV0dXJuIDAgaWYgdGhlIGN1cnJl
bnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KLSAgICBpZiAo
Z2xvYmFsLklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgV29ya2VyQ29udGV4dCog
d29ya2VyQ29udGV4dCA9IFY4V29ya2VyQ29udGV4dDo6dG9OYXRpdmUoZ2xvYmFsKTsKLSAgICBy
ZXR1cm4gd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPnByb3h5KCk7Ci19Ci0KIHZvaWQgV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0VjhJZk5lZWRlZCgpCiB7CiAgICAgc3RhdGljIGJv
b2wgdjhJbml0aWFsaXplZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKaW5kZXggMTk3ZDMxOC4uOGY0MGQ3MCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCkBA
IC03NCw5ICs3NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyBX
b3JrZXJDb250ZXh0IG9iamVjdC4KICAgICAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4
dCgpIHsgcmV0dXJuIG1fd29ya2VyQ29udGV4dDsgfQogCi0gICAgICAgIC8vIFJldHVybnMgV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5IG9iamVjdCBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGlu
ZyBjb250ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNv
bnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KLSAgICAgICAgc3RhdGljIFdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eSogcmV0cmlldmUoKTsKLQogICAgIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgaW5pdFY4SWZOZWVkZWQoKTsKICAgICAgICAgYm9vbCBpbml0Q29udGV4dElmTmVlZGVk
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApp
bmRleCAzODA2M2MwLi4zYjhiZjExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJET01UaW1l
ci5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1
ZGUgIlY4V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNs
dWRlICJXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJPYmpl
Y3RQcm94eS5oIgpAQCAtOTgsNiArOTksMjEgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVy
OjpzZXRFeGNlcHRpb24oU2NyaXB0VmFsdWUgZXhjZXB0aW9uKQogICAgIHRocm93RXJyb3IoKmV4
Y2VwdGlvbi52OFZhbHVlKCkpOwogfQogCitXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9sbGVyRm9yQ29udGV4dCgpCit7CisgICAgLy8gSGFw
cGVucyBvbiBmcmFtZSBkZXN0cnVjdGlvbiwgY2hlY2sgb3RoZXJ3aXNlIEdldEN1cnJlbnQoKSB3
aWxsIGNyYXNoLgorICAgIGlmICghdjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRl
eHQ6OkdldEN1cnJlbnQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNv
bnRleHQtPkdsb2JhbCgpOworICAgIGdsb2JhbCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3Jh
cHBlcihWOFdvcmtlckNvbnRleHQ6OkdldFRlbXBsYXRlKCksIGdsb2JhbCk7CisgICAgLy8gUmV0
dXJuIDAgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIg
Y29udGV4dC4KKyAgICBpZiAoZ2xvYmFsLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IFY4V29ya2VyQ29udGV4dDo6dG9OYXRp
dmUoZ2xvYmFsKTsKKyAgICByZXR1cm4gd29ya2VyQ29udGV4dC0+c2NyaXB0KCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBkMzc0ZWQ4Li43
YTkzM2RiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
aApAQCAtNTYsNiArNTYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0
RXhjZXB0aW9uKFNjcmlwdFZhbHVlKTsKIAogICAgICAgICB2b2lkIGZvcmJpZEV4ZWN1dGlvbigp
OworICAgICAgICAvLyBSZXR1cm5zIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgZm9yIHRoZSBjdXJy
ZW50bHkgZXhlY3V0aW5nIGNvbnRleHQuIDAgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgY3VycmVu
dCBleGVjdXRpbmcgY29udGV4dCBpcyBub3QgdGhlIHdvcmtlciBjb250ZXh0LgorICAgICAgICBz
dGF0aWMgV29ya2VyU2NyaXB0Q29udHJvbGxlciogZ2V0Q29udHJvbGxlckZvckNvbnRleHQoKTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDQ3NDQ0MGUuLjAxYTM5ZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEwLTAzLTI0ICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIEVy
cm9yIGluIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB3aGVuIHdvcmtlciBjb250ZXh0IGlz
IHRlcm1pbmF0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNjU2NQorCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZmaWNl
LgorCisgICAgICAgICogc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpjcmVhdGVXb3JrZXJDb250ZXh0UHJveHkpOgorICAg
ICAgICBDaGFuZ2VkIHRvIHVzZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9sbGVy
Rm9yQ29udGV4dCgpIGluc3RlYWQgb2YgV29ya2VyU2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJp
ZXZlKCkuCisKIDIwMTAtMDMtMjMgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
V29ya2VyQ2xpZW50SW1wbC5jcHAKaW5kZXggNTk4YTA3OC4uYWEwOGM5MCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAj
aW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUg
IldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdENv
bnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUg
PHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtOTQsOCArOTUsOCBAQCBXb3JrZXJDb250ZXh0UHJveHkq
IFdlYldvcmtlckNsaWVudEltcGw6OmNyZWF0ZVdvcmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdv
cmtlcgogICAgICAgICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9t
RnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwogICAgICAgICB3ZWJXb3JrZXIgPSB3ZWJGcmFtZS0+
Y2xpZW50KCktPmNyZWF0ZVdvcmtlcih3ZWJGcmFtZSwgcHJveHkpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogY3VycmVudENvbnRleHQgPQotICAg
ICAgICBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCk7CisgICAgICAgIFdv
cmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBXb3JrZXJTY3JpcHRDb250cm9sbGVy
OjpnZXRDb250cm9sbGVyRm9yQ29udGV4dCgpOworICAgICAgICBXb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkqIGN1cnJlbnRDb250ZXh0ID0gY29udHJvbGxlciA/IGNvbnRyb2xsZXItPnByb3h5
KCkgOiAwOwogICAgICAgICBpZiAoIWN1cnJlbnRDb250ZXh0KSB7CiAgICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51651</attachid>
            <date>2010-03-25 09:53:21 -0700</date>
            <delta_ts>2010-03-25 10:16:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36565-20100325095320.patch</filename>
            <type>text/plain</type>
            <size>9206</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGUyZDBiZC4uYjgzZmVlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wMy0yNCAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW3Y4XSBFcnJvciBpbiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgd2hlbiB3b3JrZXIgY29udGV4dCBpcyB0ZXJtaW5hdGluZy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY1CisKKyAgICAgICAgUmVtb3ZlZCBX
b3JrZXJTY3JpcHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKSBhbmQgYWRkZWQgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6Z2V0Q29udHJvbGxlckZvckNvbnRleHQoKS4gVGhpcyBhbGxvd3MKKyAg
ICAgICAgY2FsbGVycyB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gInRoZSBjdXJyZW50IGNvbnRl
eHQgaXMgc2h1dHRpbmcgZG93biIgdnMgInRoZSBjdXJyZW50IGNvbnRleHQgaXMgbm90IGEgd29y
a2VyIGNvbnRleHQiLgorCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZm
aWNlLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IpOgorICAgICAgICBDaGFuZ2Vk
IHRvIHVzZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9sbGVyRm9yQ29udGV4dCgp
IGluc3RlYWQgb2YgV29ya2VyU2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCkuCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIENoYW5nZWQgdG8gdXNlIFdvcmtlclNj
cmlwdENvbnRyb2xsZXI6OmdldENvbnRyb2xsZXJGb3JDb250ZXh0KCkgaW5zdGVhZCBvZiBXb3Jr
ZXJTY3JpcHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKS4KKyAgICAgICAgKiBiaW5kaW5ncy92
OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICBSZW1vdmVkIFdvcmtl
clNjcmlwdEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICBSZW1vdmVkIFdvcmtlclNj
cmlwdEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
Q29udHJvbGxlcjo6Z2V0Q29udHJvbGxlckZvckNvbnRleHQpOgorICAgICAgICBBZGRlZCBoZWxw
ZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3Vy
cmVudCBjb250ZXh0LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgQWRkZWQgZGVjbGFyYXRpb24gZm9yIGdldENvbnRyb2xsZXJGb3JDb250
ZXh0KCkuCisKIDIwMTAtMDMtMjMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCmluZGV4IDIzMWQwNzAuLjJlYTkwNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5jcHAKQEAgLTE2Miw3ICsxNjIsOCBAQCB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBW
OERPTVdyYXBwZXI6OmdldENvbnN0cnVjdG9yKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgRE9NVwog
I2lmIEVOQUJMRShXT1JLRVJTKQogdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhET01XcmFwcGVy
OjpnZXRDb25zdHJ1Y3RvcihXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFdvcmtlckNvbnRleHQqKQog
ewotICAgIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogcHJveHkgPSBXb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciog
Y29udHJvbGxlciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmNvbnRyb2xsZXJGb3JDb250ZXh0
KCk7CisgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGNvbnRyb2xsZXIg
PyBjb250cm9sbGVyLT5wcm94eSgpIDogMDsKICAgICBpZiAoIXByb3h5KQogICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4oKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFV0aWxpdGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcAppbmRleCAwMzViOTgzLi5mODk1YTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4VXRpbGl0aWVzLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcApAQCAtMTI4LDkgKzEyOCwxMSBAQCB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBm
cmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvYwogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiB7CiAjaWYgRU5B
QkxFKFdPUktFUlMpCi0gICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IFdv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKTsKLSAgICBpZiAocHJveHkpCi0g
ICAgICAgIHJldHVybiBwcm94eS0+d29ya2VyQ29udGV4dCgpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlciA9IFdvcmtlclNj
cmlwdENvbnRyb2xsZXI6OmNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CisgICAgaWYgKGNvbnRyb2xs
ZXIpIHsKKyAgICAgICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGNvbnRy
b2xsZXItPnByb3h5KCk7CisgICAgICAgIHJldHVybiBwcm94eSA/IHByb3h5LT53b3JrZXJDb250
ZXh0KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IDA7CisgICAgfQogI2VuZGlmCiAKICAg
ICBGcmFtZSogZnJhbWUgPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ3VycmVudENvbnRleHQo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmNwcAppbmRleCBkOGVhMzM0Li44YzhhY2FhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC00NSw3ICs0NSw2IEBA
CiAjaW5jbHVkZSAiVjhEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhQcm94
eS5oIgogI2luY2x1ZGUgIlY4U2hhcmVkV29ya2VyQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4V29y
a2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDgsMjEgKzEw
Nyw2IEBAIHZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpkaXNwb3NlKCkKICAgICB9
CiB9CiAKLVdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogV29ya2VyQ29udGV4dEV4ZWN1dGlv
blByb3h5OjpyZXRyaWV2ZSgpCi17Ci0gICAgLy8gSGFwcGVucyBvbiBmcmFtZSBkZXN0cnVjdGlv
biwgY2hlY2sgb3RoZXJ3aXNlIEdldEN1cnJlbnQoKSB3aWxsIGNyYXNoLgotICAgIGlmICghdjg6
OkNvbnRleHQ6OkluQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKLSAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkdsb2JhbCgpOwotICAgIGds
b2JhbCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOFdvcmtlckNvbnRleHQ6Okdl
dFRlbXBsYXRlKCksIGdsb2JhbCk7Ci0gICAgLy8gUmV0dXJuIDAgaWYgdGhlIGN1cnJlbnQgZXhl
Y3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KLSAgICBpZiAoZ2xvYmFs
LklzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgV29ya2VyQ29udGV4dCogd29ya2Vy
Q29udGV4dCA9IFY4V29ya2VyQ29udGV4dDo6dG9OYXRpdmUoZ2xvYmFsKTsKLSAgICByZXR1cm4g
d29ya2VyQ29udGV4dC0+c2NyaXB0KCktPnByb3h5KCk7Ci19Ci0KIHZvaWQgV29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5Ojppbml0VjhJZk5lZWRlZCgpCiB7CiAgICAgc3RhdGljIGJvb2wgdjhJ
bml0aWFsaXplZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3Jr
ZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29u
dGV4dEV4ZWN1dGlvblByb3h5LmgKaW5kZXggMTk3ZDMxOC4uOGY0MGQ3MCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCkBAIC03NCw5
ICs3NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJD
b250ZXh0IG9iamVjdC4KICAgICAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCgpIHsg
cmV0dXJuIG1fd29ya2VyQ29udGV4dDsgfQogCi0gICAgICAgIC8vIFJldHVybnMgV29ya2VyQ29u
dGV4dEV4ZWN1dGlvblByb3h5IG9iamVjdCBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250
ZXh0LiAwIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQg
aXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KLSAgICAgICAgc3RhdGljIFdvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eSogcmV0cmlldmUoKTsKLQogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQg
aW5pdFY4SWZOZWVkZWQoKTsKICAgICAgICAgYm9vbCBpbml0Q29udGV4dElmTmVlZGVkKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAz
ODA2M2MwLi41NTk5MjZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJET01UaW1lci5oIgog
I2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIlY4
V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJX
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJPYmplY3RQcm94
eS5oIgpAQCAtOTgsNiArOTksMjEgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzZXRF
eGNlcHRpb24oU2NyaXB0VmFsdWUgZXhjZXB0aW9uKQogICAgIHRocm93RXJyb3IoKmV4Y2VwdGlv
bi52OFZhbHVlKCkpOwogfQogCitXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBXb3JrZXJTY3JpcHRD
b250cm9sbGVyOjpjb250cm9sbGVyRm9yQ29udGV4dCgpCit7CisgICAgLy8gSGFwcGVucyBvbiBm
cmFtZSBkZXN0cnVjdGlvbiwgY2hlY2sgb3RoZXJ3aXNlIEdldEN1cnJlbnQoKSB3aWxsIGNyYXNo
LgorICAgIGlmICghdjg6OkNvbnRleHQ6OkluQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gMDsK
KyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1
cnJlbnQoKTsKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkds
b2JhbCgpOworICAgIGdsb2JhbCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOFdv
cmtlckNvbnRleHQ6OkdldFRlbXBsYXRlKCksIGdsb2JhbCk7CisgICAgLy8gUmV0dXJuIDAgaWYg
dGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4K
KyAgICBpZiAoZ2xvYmFsLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgV29ya2Vy
Q29udGV4dCogd29ya2VyQ29udGV4dCA9IFY4V29ya2VyQ29udGV4dDo6dG9OYXRpdmUoZ2xvYmFs
KTsKKyAgICByZXR1cm4gd29ya2VyQ29udGV4dC0+c2NyaXB0KCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBkMzc0ZWQ4Li5iNzNkZTVmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtNTYs
NiArNTYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0RXhjZXB0aW9u
KFNjcmlwdFZhbHVlKTsKIAogICAgICAgICB2b2lkIGZvcmJpZEV4ZWN1dGlvbigpOworICAgICAg
ICAvLyBSZXR1cm5zIFdvcmtlclNjcmlwdENvbnRyb2xsZXIgZm9yIHRoZSBjdXJyZW50bHkgZXhl
Y3V0aW5nIGNvbnRleHQuIDAgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgY3VycmVudCBleGVjdXRp
bmcgY29udGV4dCBpcyBub3QgdGhlIHdvcmtlciBjb250ZXh0LgorICAgICAgICBzdGF0aWMgV29y
a2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlckZvckNvbnRleHQoKTsKIAogICAgIHByaXZh
dGU6CiAgICAgICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDQ3NDQ0MGUuLjAxYTM5ZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTAzLTI0ICBEcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIEVycm9yIGluIGdldFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSB3aGVuIHdvcmtlciBjb250ZXh0IGlzIHRlcm1pbmF0aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjU2NQor
CisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZmaWNlLgorCisgICAgICAg
ICogc3JjL1dlYldvcmtlckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3Jr
ZXJDbGllbnRJbXBsOjpjcmVhdGVXb3JrZXJDb250ZXh0UHJveHkpOgorICAgICAgICBDaGFuZ2Vk
IHRvIHVzZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9sbGVyRm9yQ29udGV4dCgp
IGluc3RlYWQgb2YgV29ya2VyU2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCkuCisKIDIw
MTAtMDMtMjMgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJX
b3JrZXJDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50
SW1wbC5jcHAKaW5kZXggNTk4YTA3OC4uYWEwOGM5MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYldvcmtlckNsaWVudEltcGwuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV29y
a2VyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuaCIK
ICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRp
bmcuaD4KIApAQCAtOTQsOCArOTUsOCBAQCBXb3JrZXJDb250ZXh0UHJveHkqIFdlYldvcmtlckNs
aWVudEltcGw6OmNyZWF0ZVdvcmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdvcmtlcgogICAgICAg
ICBXZWJGcmFtZUltcGwqIHdlYkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1l
bnQtPmZyYW1lKCkpOwogICAgICAgICB3ZWJXb3JrZXIgPSB3ZWJGcmFtZS0+Y2xpZW50KCktPmNy
ZWF0ZVdvcmtlcih3ZWJGcmFtZSwgcHJveHkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFdvcmtl
ckNvbnRleHRFeGVjdXRpb25Qcm94eSogY3VycmVudENvbnRleHQgPQotICAgICAgICBXb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCk7CisgICAgICAgIFdvcmtlclNjcmlwdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpnZXRDb250cm9s
bGVyRm9yQ29udGV4dCgpOworICAgICAgICBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkqIGN1
cnJlbnRDb250ZXh0ID0gY29udHJvbGxlciA/IGNvbnRyb2xsZXItPnByb3h5KCkgOiAwOwogICAg
ICAgICBpZiAoIWN1cnJlbnRDb250ZXh0KSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgICAgIHJldHVybiAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>51653</attachid>
            <date>2010-03-25 10:16:15 -0700</date>
            <delta_ts>2010-03-25 17:06:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-36565-20100325101614.patch</filename>
            <type>text/plain</type>
            <size>9185</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZGUyZDBiZC4uM2M4ODU2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMC0wMy0yNCAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW3Y4XSBFcnJvciBpbiBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgd2hlbiB3b3JrZXIgY29udGV4dCBpcyB0ZXJtaW5hdGluZy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM2NTY1CisKKyAgICAgICAgUmVtb3ZlZCBX
b3JrZXJTY3JpcHRFeGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKSBhbmQgYWRkZWQgV29ya2VyU2Ny
aXB0Q29udHJvbGxlcjo6Y29udHJvbGxlckZvckNvbnRleHQoKS4gVGhpcyBhbGxvd3MKKyAgICAg
ICAgY2FsbGVycyB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gInRoZSBjdXJyZW50IGNvbnRleHQg
aXMgc2h1dHRpbmcgZG93biIgdnMgInRoZSBjdXJyZW50IGNvbnRleHQgaXMgbm90IGEgd29ya2Vy
IGNvbnRleHQiLgorCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZmaWNl
LgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0Q29uc3RydWN0b3IpOgorICAgICAgICBDaGFuZ2VkIHRv
IHVzZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpjb250cm9sbGVyRm9yQ29udGV4dCgpIGluc3Rl
YWQgb2YgV29ya2VyU2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCkuCisgICAgICAgICog
YmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIENoYW5nZWQgdG8gdXNlIFdvcmtlclNjcmlwdENv
bnRyb2xsZXI6OmNvbnRyb2xsZXJGb3JDb250ZXh0KCkgaW5zdGVhZCBvZiBXb3JrZXJTY3JpcHRF
eGVjdXRpb25Qcm94eTo6cmV0cmlldmUoKS4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICBSZW1vdmVkIFdvcmtlclNjcmlwdEV4
ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICBSZW1vdmVkIFdvcmtlclNjcmlwdEV4ZWN1
dGlvblByb3h5OjpyZXRyaWV2ZSgpLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6Y29udHJvbGxlckZvckNvbnRleHQpOgorICAgICAgICBBZGRlZCBoZWxwZXIgZnVuY3Rpb24g
dG8gZ2V0IHRoZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyIGZvciB0aGUgY3VycmVudCBjb250ZXh0
LgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgQWRkZWQgZGVjbGFyYXRpb24gZm9yIGNvbnRyb2xsZXJGb3JDb250ZXh0KCkuCisKIDIwMTAt
MDMtMjMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE5hdGUgQ2hhcGluLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4
IDIzMWQwNzAuLjJlYTkwNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAg
LTE2Miw3ICsxNjIsOCBAQCB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiBWOERPTVdyYXBwZXI6Omdl
dENvbnN0cnVjdG9yKFdyYXBwZXJUeXBlSW5mbyogdHlwZSwgRE9NVwogI2lmIEVOQUJMRShXT1JL
RVJTKQogdjg6OkxvY2FsPHY4OjpGdW5jdGlvbj4gVjhET01XcmFwcGVyOjpnZXRDb25zdHJ1Y3Rv
cihXcmFwcGVyVHlwZUluZm8qIHR5cGUsIFdvcmtlckNvbnRleHQqKQogewotICAgIFdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eSogcHJveHkgPSBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6
OnJldHJpZXZlKCk7CisgICAgV29ya2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlciA9IFdv
cmtlclNjcmlwdENvbnRyb2xsZXI6OmNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CisgICAgV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGNvbnRyb2xsZXIgPyBjb250cm9sbGVyLT5w
cm94eSgpIDogMDsKICAgICBpZiAoIXByb3h5KQogICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4
OjpGdW5jdGlvbj4oKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcAppbmRleCAwMzVi
OTgzLi5mODk1YTc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVz
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmNwcApAQCAtMTI4LDkg
KzEyOCwxMSBAQCB2b2lkIG5hdmlnYXRlSWZBbGxvd2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgS1VS
TCYgdXJsLCBib29sIGxvY2tIaXN0b3J5LCBib29sIGxvYwogU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiB7CiAjaWYgRU5BQkxFKFdPUktFUlMpCi0g
ICAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IFdvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eTo6cmV0cmlldmUoKTsKLSAgICBpZiAocHJveHkpCi0gICAgICAgIHJldHVybiBw
cm94eS0+d29ya2VyQ29udGV4dCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgV29y
a2VyU2NyaXB0Q29udHJvbGxlciogY29udHJvbGxlciA9IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmNvbnRyb2xsZXJGb3JDb250ZXh0KCk7CisgICAgaWYgKGNvbnRyb2xsZXIpIHsKKyAgICAgICAg
V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KiBwcm94eSA9IGNvbnRyb2xsZXItPnByb3h5KCk7
CisgICAgICAgIHJldHVybiBwcm94eSA/IHByb3h5LT53b3JrZXJDb250ZXh0KCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSA6IDA7CisgICAgfQogI2VuZGlmCiAKICAgICBGcmFtZSogZnJhbWUg
PSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lRm9yQ3VycmVudENvbnRleHQoKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCBk
OGVhMzM0Li44YzhhY2FhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiVjhE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUg
IlY4U2hhcmVkV29ya2VyQ29udGV4dC5oIgotI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlci5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRl
ICJXb3JrZXJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xMDgsMjEgKzEwNyw2IEBAIHZvaWQgV29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpkaXNwb3NlKCkKICAgICB9CiB9CiAKLVdvcmtlckNv
bnRleHRFeGVjdXRpb25Qcm94eSogV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2
ZSgpCi17Ci0gICAgLy8gSGFwcGVucyBvbiBmcmFtZSBkZXN0cnVjdGlvbiwgY2hlY2sgb3RoZXJ3
aXNlIEdldEN1cnJlbnQoKSB3aWxsIGNyYXNoLgotICAgIGlmICghdjg6OkNvbnRleHQ6OkluQ29u
dGV4dCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBj
b250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkdsb2JhbCgpOwotICAgIGdsb2JhbCA9IFY4RE9NV3Jh
cHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOFdvcmtlckNvbnRleHQ6OkdldFRlbXBsYXRlKCksIGds
b2JhbCk7Ci0gICAgLy8gUmV0dXJuIDAgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQg
aXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KLSAgICBpZiAoZ2xvYmFsLklzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IFY4V29y
a2VyQ29udGV4dDo6dG9OYXRpdmUoZ2xvYmFsKTsKLSAgICByZXR1cm4gd29ya2VyQ29udGV4dC0+
c2NyaXB0KCktPnByb3h5KCk7Ci19Ci0KIHZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
Ojppbml0VjhJZk5lZWRlZCgpCiB7CiAgICAgc3RhdGljIGJvb2wgdjhJbml0aWFsaXplZCA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmgKaW5kZXggMTk3ZDMxOC4uOGY0MGQ3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCkBAIC03NCw5ICs3NCw2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyBXb3JrZXJDb250ZXh0IG9iamVjdC4K
ICAgICAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCgpIHsgcmV0dXJuIG1fd29ya2Vy
Q29udGV4dDsgfQogCi0gICAgICAgIC8vIFJldHVybnMgV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5IG9iamVjdCBvZiB0aGUgY3VycmVudGx5IGV4ZWN1dGluZyBjb250ZXh0LiAwIHdpbGwgYmUg
cmV0dXJuZWQgaWYgdGhlIGN1cnJlbnQgZXhlY3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3Jr
ZXIgY29udGV4dC4KLSAgICAgICAgc3RhdGljIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSog
cmV0cmlldmUoKTsKLQogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdFY4SWZOZWVkZWQo
KTsKICAgICAgICAgYm9vbCBpbml0Q29udGV4dElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAzODA2M2MwLi41NTk5MjZm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlY4RE9N
TWFwLmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgorI2luY2x1ZGUgIlY4V29ya2VyQ29udGV4dC5o
IgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJDb250ZXh0RXhl
Y3V0aW9uUHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJPYmplY3RQcm94eS5oIgpAQCAtOTgsNiAr
OTksMjEgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzZXRFeGNlcHRpb24oU2NyaXB0
VmFsdWUgZXhjZXB0aW9uKQogICAgIHRocm93RXJyb3IoKmV4Y2VwdGlvbi52OFZhbHVlKCkpOwog
fQogCitXb3JrZXJTY3JpcHRDb250cm9sbGVyKiBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpjb250
cm9sbGVyRm9yQ29udGV4dCgpCit7CisgICAgLy8gSGFwcGVucyBvbiBmcmFtZSBkZXN0cnVjdGlv
biwgY2hlY2sgb3RoZXJ3aXNlIEdldEN1cnJlbnQoKSB3aWxsIGNyYXNoLgorICAgIGlmICghdjg6
OkNvbnRleHQ6OkluQ29udGV4dCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKTsKKyAgICB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRleHQtPkdsb2JhbCgpOworICAgIGds
b2JhbCA9IFY4RE9NV3JhcHBlcjo6bG9va3VwRE9NV3JhcHBlcihWOFdvcmtlckNvbnRleHQ6Okdl
dFRlbXBsYXRlKCksIGdsb2JhbCk7CisgICAgLy8gUmV0dXJuIDAgaWYgdGhlIGN1cnJlbnQgZXhl
Y3V0aW5nIGNvbnRleHQgaXMgbm90IHRoZSB3b3JrZXIgY29udGV4dC4KKyAgICBpZiAoZ2xvYmFs
LklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgV29ya2VyQ29udGV4dCogd29ya2Vy
Q29udGV4dCA9IFY4V29ya2VyQ29udGV4dDo6dG9OYXRpdmUoZ2xvYmFsKTsKKyAgICByZXR1cm4g
d29ya2VyQ29udGV4dC0+c2NyaXB0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92
OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaAppbmRleCBkMzc0ZWQ4Li5iNzNkZTVmIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaApAQCAtNTYsNiArNTYsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0RXhjZXB0aW9uKFNjcmlwdFZhbHVlKTsK
IAogICAgICAgICB2b2lkIGZvcmJpZEV4ZWN1dGlvbigpOworICAgICAgICAvLyBSZXR1cm5zIFdv
cmtlclNjcmlwdENvbnRyb2xsZXIgZm9yIHRoZSBjdXJyZW50bHkgZXhlY3V0aW5nIGNvbnRleHQu
IDAgd2lsbCBiZSByZXR1cm5lZCBpZiB0aGUgY3VycmVudCBleGVjdXRpbmcgY29udGV4dCBpcyBu
b3QgdGhlIHdvcmtlciBjb250ZXh0LgorICAgICAgICBzdGF0aWMgV29ya2VyU2NyaXB0Q29udHJv
bGxlciogY29udHJvbGxlckZvckNvbnRleHQoKTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIFdv
cmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDQ3NDQ0MGUuLmE2
ZWE2NjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEwLTAzLTI0ICBEcmV3IFdp
bHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbdjhdIEVycm9yIGluIGdldFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSB3aGVuIHdvcmtlciBjb250ZXh0IGlzIHRlcm1pbmF0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjU2NQorCisgICAgICAgIFRlc3Q6
IEV4aXN0aW5nIHdvcmtlciB0ZXN0cyBzdWZmaWNlLgorCisgICAgICAgICogc3JjL1dlYldvcmtl
ckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJXb3JrZXJDbGllbnRJbXBsOjpj
cmVhdGVXb3JrZXJDb250ZXh0UHJveHkpOgorICAgICAgICBDaGFuZ2VkIHRvIHVzZSBXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjpjb250cm9sbGVyRm9yQ29udGV4dCgpIGluc3RlYWQgb2YgV29ya2Vy
U2NyaXB0RXhlY3V0aW9uUHJveHk6OnJldHJpZXZlKCkuCisKIDIwMTAtMDMtMjMgIEtlbm5ldGgg
UnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJDbGllbnRJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViV29ya2VyQ2xpZW50SW1wbC5jcHAKaW5kZXggNTk4
YTA3OC4uNzZkMjlmZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJXb3JrZXJD
bGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYldvcmtlckNsaWVudElt
cGwuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAi
V29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5o
IgorI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJXb3JrZXJN
ZXNzYWdpbmdQcm94eS5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApAQCAtOTQsOCAr
OTUsOCBAQCBXb3JrZXJDb250ZXh0UHJveHkqIFdlYldvcmtlckNsaWVudEltcGw6OmNyZWF0ZVdv
cmtlckNvbnRleHRQcm94eShXb3JrZXIqIHdvcmtlcgogICAgICAgICBXZWJGcmFtZUltcGwqIHdl
YkZyYW1lID0gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUoZG9jdW1lbnQtPmZyYW1lKCkpOwogICAg
ICAgICB3ZWJXb3JrZXIgPSB3ZWJGcmFtZS0+Y2xpZW50KCktPmNyZWF0ZVdvcmtlcih3ZWJGcmFt
ZSwgcHJveHkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFdvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eSogY3VycmVudENvbnRleHQgPQotICAgICAgICBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHk6OnJldHJpZXZlKCk7CisgICAgICAgIFdvcmtlclNjcmlwdENvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpjb250cm9sbGVyRm9yQ29udGV4dCgpOworICAg
ICAgICBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkqIGN1cnJlbnRDb250ZXh0ID0gY29udHJv
bGxlciA/IGNvbnRyb2xsZXItPnByb3h5KCkgOiAwOwogICAgICAgICBpZiAoIWN1cnJlbnRDb250
ZXh0KSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>