<?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>38623</bug_id>
          
          <creation_ts>2010-05-05 19:08:24 -0700</creation_ts>
          <short_desc>JSCallbackData is deleted on the Main thread, not the Context thread.</short_desc>
          <delta_ts>2010-05-07 23:01:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          
          <blocked>34992</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric U.">ericu</reporter>
          <assigned_to name="Eric U.">ericu</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221435</commentid>
    <comment_count>0</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-05 19:08:24 -0700</bug_when>
    <thetext>JSCallbackData objects should always be deleted on the thread that created them, which is the context thread.  For the Document, they&apos;re the same thing, but when Workers get Database access, this causes problems.  Also, we need to make sure that their deletion happens before the WorkerThread&apos;s runloop exits.

This was the bug that caused the GTK bots to assert when the async-db-on-workers patch went in.  Once this fix is in, we can try submitting that patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221443</commentid>
    <comment_count>1</comment_count>
      <attachid>55196</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-05 19:35:03 -0700</bug_when>
    <thetext>Created attachment 55196
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221466</commentid>
    <comment_count>2</comment_count>
      <attachid>55196</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 21:42:30 -0700</bug_when>
    <thetext>Comment on attachment 55196
Patch

WebCore/bindings/js/JSCallbackData.h:69
 +      ThreadIdentifier m_thread;
Does this size increase have any negative effects we should be aware of?

WebCore/bindings/js/JSCallbackData.h:74
 +      static PassOwnPtr&lt;DeleteCallbackDataTask&gt; create(JSCallbackData *data)
Data* data, style error.

WebCore/bindings/js/JSCallbackData.h:79
 +      virtual void performTask(ScriptExecutionContext *)
Context*, style error.

WebCore/bindings/js/JSCallbackData.h:86
 +      DeleteCallbackDataTask(JSCallbackData *data) : m_data(data) {}
Data* data, style error.

WebCore/bindings/js/JSCallbackData.h:88
 +      JSCallbackData *m_data;
Data* m_data, style error.


WebCore/bindings/js/JSCustomVoidCallback.cpp: 
 +      callOnMainThread(JSCallbackData::deleteData, m_data);
I&apos;m confused.  Callbacks can end up executing on any thread?  But the data may not have been allocated on that same thread?

WebCore/bindings/js/JSCustomVoidCallback.h:53
 +      JSCustomVoidCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
Was it previously ignoring the JSDOMGlobalObject* and not storing it anywhere?

WebCore/bindings/js/JSCustomVoidCallback.h:56
 +      ScriptExecutionContext* m_scriptExecutionContext;
I&apos;m surprised we need this additional pointer and that we don&apos;t already store the execution context in some manner.

WebCore/bindings/scripts/CodeGeneratorJS.pm:1975
 +      push(@headerContent, &quot;    ScriptExecutionContext* m_scriptExecutionContext;\n&quot;);
How is the execution context separate from the isolated world?  I believe you it is.  I&apos;m just slightly surprised we can&apos;t derive one from the other, since the isolated world (last I knew) was tied to the global object.  And the ExecutionContext shoudl also be tied to the global object, or no?

WebCore/bindings/scripts/CodeGeneratorJS.pm:2006
 +      push(@implContent, &quot;    , m_isolatedWorld(globalObject-&gt;world())\n&quot;);
Yeah, I  guess I&apos;m confused why we don&apos;t just store a global object pointer.  In fact, I would expect we might already do so.  Most DOM bindings carry around a global object pointer...

I&apos;m just not convinced this change is 100% right yet, but that&apos;s more of a feeling than fact since my JSC knowledge is a bit dated these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221861</commentid>
    <comment_count>3</comment_count>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-06 11:49:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 55196 [details])
&gt; WebCore/bindings/js/JSCallbackData.h:69
&gt;  +      ThreadIdentifier m_thread;
&gt; Does this size increase have any negative effects we should be aware of?

I&apos;d be really surprised if it did, but just in case I&apos;ve wrapped it in NDEBUG.

I fixed all the style errors--sorry about that; was posting a patch as I ran out the door, always a bad idea.

&gt; WebCore/bindings/js/JSCustomVoidCallback.cpp: 
&gt;  +      callOnMainThread(JSCallbackData::deleteData, m_data);
&gt; I&apos;m confused.  Callbacks can end up executing on any thread?  But the data may
&gt; not have been allocated on that same thread?

No, they&apos;re always allocated and executed on the context thread.  But they may get deleted on the Database thread, so we have to post to the context thread at cleanup time.

&gt; WebCore/bindings/js/JSCustomVoidCallback.h:53
&gt;  +      JSCustomVoidCallback(JSC::JSObject* callback, JSDOMGlobalObject*);
&gt; Was it previously ignoring the JSDOMGlobalObject* and not storing it anywhere?

Right.  Well, sort of--it gets stashed inside the JSCallbackData, but we don&apos;t store it directly.

&gt; WebCore/bindings/js/JSCustomVoidCallback.h:56
&gt;  +      ScriptExecutionContext* m_scriptExecutionContext;
&gt; I&apos;m surprised we need this additional pointer and that we don&apos;t already store
&gt; the execution context in some manner.
&gt;
&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:1975
&gt;  +      push(@headerContent, &quot;    ScriptExecutionContext*
&gt; m_scriptExecutionContext;\n&quot;);
&gt; How is the execution context separate from the isolated world?  I believe you
&gt; it is.  I&apos;m just slightly surprised we can&apos;t derive one from the other, since
&gt; the isolated world (last I knew) was tied to the global object.  And the
&gt; ExecutionContext shoudl also be tied to the global object, or no?

The JSCallbackData&apos;s globalObject has a SEC pointer, but we can&apos;t trust it.  If the page is being torn down, it can get nulled out before we need it.  I&apos;m not sure exactly when, but I was able to crash some tests trying it out.

&gt; WebCore/bindings/scripts/CodeGeneratorJS.pm:2006
&gt;  +      push(@implContent, &quot;    , m_isolatedWorld(globalObject-&gt;world())\n&quot;);
&gt; Yeah, I  guess I&apos;m confused why we don&apos;t just store a global object pointer. 
&gt; In fact, I would expect we might already do so.  Most DOM bindings carry around
&gt; a global object pointer...
&gt; 
&gt; I&apos;m just not convinced this change is 100% right yet, but that&apos;s more of a
&gt; feeling than fact since my JSC knowledge is a bit dated these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221863</commentid>
    <comment_count>4</comment_count>
      <attachid>55282</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-06 11:52:03 -0700</bug_when>
    <thetext>Created attachment 55282
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221991</commentid>
    <comment_count>5</comment_count>
      <attachid>55282</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-05-06 15:04:02 -0700</bug_when>
    <thetext>Comment on attachment 55282
Patch

WebCore/workers/WorkerThread.cpp:168
 +          workerContext-&gt;clearScript();
This is very intentional move of a line.  I guess it needs to be here to let all the destructor tasks to run before destroying the heap... Could you put some descriptive comment to this effect if that&apos;s indeed why you move this line here? It makes it very important to keep it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222048</commentid>
    <comment_count>6</comment_count>
      <attachid>55317</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-06 16:36:30 -0700</bug_when>
    <thetext>Created attachment 55317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222050</commentid>
    <comment_count>7</comment_count>
      <attachid>55317</attachid>
    <who name="Eric U.">ericu</who>
    <bug_when>2010-05-06 16:37:01 -0700</bug_when>
    <thetext>Comment on attachment 55317
Patch

Added a comment as per Dmitry&apos;s request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222119</commentid>
    <comment_count>8</comment_count>
      <attachid>55317</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-05-06 19:09:54 -0700</bug_when>
    <thetext>Comment on attachment 55317
Patch

Looks reasonable. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222814</commentid>
    <comment_count>9</comment_count>
      <attachid>55317</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-07 23:01:19 -0700</bug_when>
    <thetext>Comment on attachment 55317
Patch

Clearing flags on attachment: 55317

Committed r58998: &lt;http://trac.webkit.org/changeset/58998&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222815</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-07 23:01:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55196</attachid>
            <date>2010-05-05 19:35:03 -0700</date>
            <delta_ts>2010-05-06 11:52:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38623-20100505193501.patch</filename>
            <type>text/plain</type>
            <size>7327</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDUtMDUgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBK
U0NhbGxiYWNrRGF0YSBpcyBkZWxldGVkIG9uIHRoZSBNYWluIHRocmVhZCwgbm90IHRoZSBDb250
ZXh0IHRocmVhZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjIzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyB5b3UnbGwgb25seSBzZWUgYSBwcm9i
bGVtIGFmdGVyIHRoZSB3b3JrZXItYWNjZXNzLXRvLURCCisgICAgICAgIGNvZGUgZ29lcyBpbi4g
IFdpdGhvdXQgdGhpcyBmaXgsIHRoZSBHVEsgYm90cyBhc3NlcnQsIGJ1dCBpdCdzCisgICAgICAg
IHRpbWluZy1zZW5zaXRpdmUgYW5kIG5vdCB0cnVseSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U0NhbGxiYWNrRGF0YTo6SlNDYWxsYmFja0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNDYWxs
YmFja0RhdGE6On5KU0NhbGxiYWNrRGF0YSk6CisgICAgICAgIFN0b3JlIHRoZSBhbGxvY2F0aW5n
IHRocmVhZCwgdGhlbiBhc3NlcnQgdGhhdCB3ZSdyZSBvbiBpdCBhdCBkZWxldGlvbi4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpEZWxldGVDYWxsYmFja0RhdGFUYXNrKToKKyAgICAgICAg
VGhpcyBpcyB0aGUgdGFzayB0aGF0IGNhbiBnZXQgcG9zdGVkIHRvIHRoZSBjb250ZXh0IHRocmVh
ZCBmb3IgY2xlYW51cC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxi
YWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5oOgor
ICAgICAgICBUaGlzIGNhbGxiYWNrIGlzbid0IGF1dG9nZW5lcmF0ZWQsIHNvIHdlIGhhdmUgdG8g
ZG8gdGhlIGNsZWFudXAgbWFudWFsbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgQWRkIHRoZSBwcm9wZXIgY2xlYW51cCB0byBhbGwg
YXV0b2dlbmVyYXRlZCBjYWxsYmFja3MuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6
OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFNodXRkb3duU3Rh
cnRUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIFdvcmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0
IGNhbid0IGJlIGNhbGxlZCB1bnRpbCB0aGUgcG9zdGVkIGRlbGV0aW9uIHRhc2tzIGhhdmUgY29t
cGxldGVkOyBtb3ZlIHRoZSBjYWxsIGZyb20gc2h1dGRvd24gc3RhcnQgdG8gc2h1dGRvd24gZmlu
aXNoLgorCiAyMDEwLTA1LTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBkZWNlbGVyYXRlZCBjb21wb3NpdGluZyBidWlsZC4KSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEs
MTUgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gV2UgaGF2
ZSB0byBjbGVhbiB1cCB0aGlzIGRhdGEgb24gdGhlIG1haW4gdGhyZWFkIGJlY2F1c2UgdW5wcm90
ZWN0aW5nIGEKLS8vIEpTT2JqZWN0IG9uIGEgbm9uLW1haW4gdGhyZWFkIHdpdGhvdXQgc3luY2hy
b25pemF0aW9uIHdvdWxkIGNvcnJ1cHQgdGhlIGhlYXAKKy8vIFdlIGhhdmUgdG8gY2xlYW4gdXAg
dGhpcyBkYXRhIG9uIHRoZSBjb250ZXh0IHRocmVhZCBiZWNhdXNlIHVucHJvdGVjdGluZyBhCisv
LyBKU09iamVjdCBvbiB0aGUgd3JvbmcgdGhyZWFkIHdpdGhvdXQgc3luY2hyb25pemF0aW9uIHdv
dWxkIGNvcnJ1cHQgdGhlIGhlYXAKIC8vIChhbmQgc3luY2hyb25pemF0aW9uIHdvdWxkIGJlIHNs
b3cpLgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YSB7CkBAIC00OCwxMiArNDksMTMgQEAgcHVibGlj
OgogICAgIEpTQ2FsbGJhY2tEYXRhKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCiAg
ICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQorICAgICAgICAsIG1fdGhyZWFk
KGN1cnJlbnRUaHJlYWQoKSkKICAgICB7CiAgICAgfQogICAgIAogICAgIH5KU0NhbGxiYWNrRGF0
YSgpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBBU1NF
UlQobV90aHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsKICAgICB9CiAKICAgICBKU0M6OkpTT2Jq
ZWN0KiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJhY2suZ2V0KCk7IH0KQEAgLTY0LDYgKzY2
LDI2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlNDOjpQcm90ZWN0ZWRQdHI8SlNDOjpKU09i
amVjdD4gbV9jYWxsYmFjazsKICAgICBKU0M6OlByb3RlY3RlZFB0cjxKU0RPTUdsb2JhbE9iamVj
dD4gbV9nbG9iYWxPYmplY3Q7CisgICAgVGhyZWFkSWRlbnRpZmllciBtX3RocmVhZDsKK307CisK
K2NsYXNzIERlbGV0ZUNhbGxiYWNrRGF0YVRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGVsZXRlQ2FsbGJh
Y2tEYXRhVGFzaz4gY3JlYXRlKEpTQ2FsbGJhY2tEYXRhICpkYXRhKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG5ldyBEZWxldGVDYWxsYmFja0RhdGFUYXNrKGRhdGEpOworICAgIH0KKworICAgIHZp
cnR1YWwgdm9pZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0ICopCisgICAgewor
ICAgICAgICBkZWxldGUgbV9kYXRhOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNDbGVhbnVw
VGFzaygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK3ByaXZhdGU6CisKKyAgICBEZWxldGVDYWxs
YmFja0RhdGFUYXNrKEpTQ2FsbGJhY2tEYXRhICpkYXRhKSA6IG1fZGF0YShkYXRhKSB7fQorCisg
ICAgSlNDYWxsYmFja0RhdGEgKm1fZGF0YTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3BwCShy
ZXZpc2lvbiA1ODgzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJh
Y2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxMiArNDIsMTMgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKICAgICAKIEpTQ3VzdG9tVm9pZENhbGxiYWNrOjpKU0N1c3RvbVZvaWRDYWxsYmFjayhK
U09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAg
OiBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhKGNhbGxiYWNrLCBnbG9iYWxPYmplY3QpKQorICAg
ICwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQogewogfQogCiBKU0N1c3RvbVZvaWRDYWxsYmFjazo6fkpTQ3VzdG9tVm9pZENh
bGxiYWNrKCkKIHsKLSAgICBjYWxsT25NYWluVGhyZWFkKEpTQ2FsbGJhY2tEYXRhOjpkZWxldGVE
YXRhLCBtX2RhdGEpOworICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soRGVs
ZXRlQ2FsbGJhY2tEYXRhVGFzazo6Y3JlYXRlKG1fZGF0YSkpOwogI2lmbmRlZiBOREVCVUcKICAg
ICBtX2RhdGEgPSAwOwogI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
Vm9pZENhbGxiYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bVZvaWRDYWxsYmFjay5oCShyZXZpc2lvbiA1ODgzMSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21Wb2lkQ2FsbGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsNyBAQCBw
cml2YXRlOgogICAgIEpTQ3VzdG9tVm9pZENhbGxiYWNrKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNr
LCBKU0RPTUdsb2JhbE9iamVjdCopOwogCiAgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTsKKyAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMTk3Miw2ICsx
OTcyLDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXIKICAgICAjIFByaXZhdGUgbWVtYmVy
cwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgSlNDYWxsYmFja0RhdGEqIG1fZGF0YTtc
biIpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgUmVmUHRyPERPTVdyYXBwZXJXb3Js
ZD4gbV9pc29sYXRlZFdvcmxkO1xuIik7CisgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7XG4iKTsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAifTtcblxuIik7CiAKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAifSAvLyBuYW1lc3BhY2UgV2ViQ29yZVxuXG4iKTsKQEAgLTIwMDMsMTMgKzIwMDQsMTQg
QEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGltcGxDb250
ZW50LCAiJHtjbGFzc05hbWV9Ojoke2NsYXNzTmFtZX0oSlNPYmplY3QqIGNhbGxiYWNrLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgOiBtX2RhdGEobmV3IEpTQ2FsbGJhY2tEYXRhKGNhbGxiYWNrLCBnbG9iYWxPYmplY3Qp
KVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBtX2lzb2xhdGVkV29ybGQoZ2xv
YmFsT2JqZWN0LT53b3JsZCgpKVxuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAifVxuXG4iKTsKIAogICAgICMgRGVzdHJ1Y3RvcgogICAgIHB1c2goQGltcGxD
b250ZW50LCAiJHtjbGFzc05hbWV9Ojp+JHtjbGFzc05hbWV9KClcbiIpOwogICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FsbE9uTWFp
blRocmVhZChKU0NhbGxiYWNrRGF0YTo6ZGVsZXRlRGF0YSwgbV9kYXRhKTtcbiIpOworICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2so
RGVsZXRlQ2FsbGJhY2tEYXRhVGFzazo6Y3JlYXRlKG1fZGF0YSkpO1xuIik7CiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIjaWZuZGVmIE5ERUJVR1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgbV9kYXRhID0gMDtcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4i
KTsKSW5kZXg6IFdlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCShyZXZpc2lvbiA1ODgzMSkKKysrIFdl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNiAr
MTY1LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHQtPmlzV29ya2Vy
Q29udGV4dCgpKTsKICAgICAgICAgV29ya2VyQ29udGV4dCogd29ya2VyQ29udGV4dCA9IHN0YXRp
Y19jYXN0PFdvcmtlckNvbnRleHQqPihjb250ZXh0KTsKKyAgICAgICAgd29ya2VyQ29udGV4dC0+
Y2xlYXJTY3JpcHQoKTsKICAgICAgICAgd29ya2VyQ29udGV4dC0+dGhyZWFkKCktPnJ1bkxvb3Ao
KS50ZXJtaW5hdGUoKTsKICAgICB9CiAKQEAgLTE5NSw3ICsxOTYsNiBAQCBwdWJsaWM6CiAgICAg
ICAgIC8vIEV2ZW50IGxpc3RlbmVycyB3b3VsZCBrZWVwIERPTVdyYXBwZXJXb3JsZCBvYmplY3Rz
IGFsaXZlIGZvciB0b28gbG9uZy4gQWxzbywgdGhleSBoYXZlIHJlZmVyZW5jZXMgdG8gSlMgb2Jq
ZWN0cywKICAgICAgICAgLy8gd2hpY2ggYmVjb21lIGRhbmdsaW5nIG9uY2UgSGVhcCBpcyBkZXN0
cm95ZWQuCiAgICAgICAgIHdvcmtlckNvbnRleHQtPnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCk7
Ci0gICAgICAgIHdvcmtlckNvbnRleHQtPmNsZWFyU2NyaXB0KCk7CiAKICNpZiBFTkFCTEUoREFU
QUJBU0UpCiAgICAgICAgIC8vIFdlIHdhaXQgZm9yIHRoZSBkYXRhYmFzZSB0aHJlYWQgdG8gY2xl
YW4gdXAgYWxsIGl0cyBzdHVmZiBzbyB0aGF0IHdlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55282</attachid>
            <date>2010-05-06 11:52:03 -0700</date>
            <delta_ts>2010-05-06 16:36:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38623-20100506115202.patch</filename>
            <type>text/plain</type>
            <size>7374</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDUtMDUgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBK
U0NhbGxiYWNrRGF0YSBpcyBkZWxldGVkIG9uIHRoZSBNYWluIHRocmVhZCwgbm90IHRoZSBDb250
ZXh0IHRocmVhZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjIzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyB5b3UnbGwgb25seSBzZWUgYSBwcm9i
bGVtIGFmdGVyIHRoZSB3b3JrZXItYWNjZXNzLXRvLURCCisgICAgICAgIGNvZGUgZ29lcyBpbi4g
IFdpdGhvdXQgdGhpcyBmaXgsIHRoZSBHVEsgYm90cyBhc3NlcnQsIGJ1dCBpdCdzCisgICAgICAg
IHRpbWluZy1zZW5zaXRpdmUgYW5kIG5vdCB0cnVseSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U0NhbGxiYWNrRGF0YTo6SlNDYWxsYmFja0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNDYWxs
YmFja0RhdGE6On5KU0NhbGxiYWNrRGF0YSk6CisgICAgICAgIFN0b3JlIHRoZSBhbGxvY2F0aW5n
IHRocmVhZCwgdGhlbiBhc3NlcnQgdGhhdCB3ZSdyZSBvbiBpdCBhdCBkZWxldGlvbi4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpEZWxldGVDYWxsYmFja0RhdGFUYXNrKToKKyAgICAgICAg
VGhpcyBpcyB0aGUgdGFzayB0aGF0IGNhbiBnZXQgcG9zdGVkIHRvIHRoZSBjb250ZXh0IHRocmVh
ZCBmb3IgY2xlYW51cC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxi
YWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5oOgor
ICAgICAgICBUaGlzIGNhbGxiYWNrIGlzbid0IGF1dG9nZW5lcmF0ZWQsIHNvIHdlIGhhdmUgdG8g
ZG8gdGhlIGNsZWFudXAgbWFudWFsbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgQWRkIHRoZSBwcm9wZXIgY2xlYW51cCB0byBhbGwg
YXV0b2dlbmVyYXRlZCBjYWxsYmFja3MuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6
OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFNodXRkb3duU3Rh
cnRUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIFdvcmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0
IGNhbid0IGJlIGNhbGxlZCB1bnRpbCB0aGUgcG9zdGVkIGRlbGV0aW9uIHRhc2tzIGhhdmUgY29t
cGxldGVkOyBtb3ZlIHRoZSBjYWxsIGZyb20gc2h1dGRvd24gc3RhcnQgdG8gc2h1dGRvd24gZmlu
aXNoLgorCiAyMDEwLTA1LTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBkZWNlbGVyYXRlZCBjb21wb3NpdGluZyBidWlsZC4KSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEs
MTUgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gV2UgaGF2
ZSB0byBjbGVhbiB1cCB0aGlzIGRhdGEgb24gdGhlIG1haW4gdGhyZWFkIGJlY2F1c2UgdW5wcm90
ZWN0aW5nIGEKLS8vIEpTT2JqZWN0IG9uIGEgbm9uLW1haW4gdGhyZWFkIHdpdGhvdXQgc3luY2hy
b25pemF0aW9uIHdvdWxkIGNvcnJ1cHQgdGhlIGhlYXAKKy8vIFdlIGhhdmUgdG8gY2xlYW4gdXAg
dGhpcyBkYXRhIG9uIHRoZSBjb250ZXh0IHRocmVhZCBiZWNhdXNlIHVucHJvdGVjdGluZyBhCisv
LyBKU09iamVjdCBvbiB0aGUgd3JvbmcgdGhyZWFkIHdpdGhvdXQgc3luY2hyb25pemF0aW9uIHdv
dWxkIGNvcnJ1cHQgdGhlIGhlYXAKIC8vIChhbmQgc3luY2hyb25pemF0aW9uIHdvdWxkIGJlIHNs
b3cpLgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YSB7CkBAIC00OCwxMiArNDksMTUgQEAgcHVibGlj
OgogICAgIEpTQ2FsbGJhY2tEYXRhKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCiAg
ICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQorI2lmbmRlZiBOREVCVUcKKyAg
ICAgICAgLCBtX3RocmVhZChjdXJyZW50VGhyZWFkKCkpCisjZW5kaWYKICAgICB7CiAgICAgfQog
ICAgIAogICAgIH5KU0NhbGxiYWNrRGF0YSgpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgICAgICBBU1NFUlQobV90aHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsK
ICAgICB9CiAKICAgICBKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJh
Y2suZ2V0KCk7IH0KQEAgLTY0LDYgKzY4LDI4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlND
OjpQcm90ZWN0ZWRQdHI8SlNDOjpKU09iamVjdD4gbV9jYWxsYmFjazsKICAgICBKU0M6OlByb3Rl
Y3RlZFB0cjxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CisjaWZuZGVmIE5ERUJV
RworICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWQ7CisjZW5kaWYKK307CisKK2NsYXNzIERl
bGV0ZUNhbGxiYWNrRGF0YVRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGVsZXRlQ2FsbGJhY2tEYXRhVGFz
az4gY3JlYXRlKEpTQ2FsbGJhY2tEYXRhKiBkYXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5l
dyBEZWxldGVDYWxsYmFja0RhdGFUYXNrKGRhdGEpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKKyAgICB7CisgICAgICAgIGRl
bGV0ZSBtX2RhdGE7CisgICAgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorcHJpdmF0ZToKKworICAgIERlbGV0ZUNhbGxiYWNrRGF0YVRh
c2soSlNDYWxsYmFja0RhdGEqIGRhdGEpIDogbV9kYXRhKGRhdGEpIHt9CisKKyAgICBKU0NhbGxi
YWNrRGF0YSogbV9kYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAJKHJldmlzaW9uIDU4
ODMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDEyICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogICAg
IAogSlNDdXN0b21Wb2lkQ2FsbGJhY2s6OkpTQ3VzdG9tVm9pZENhbGxiYWNrKEpTT2JqZWN0KiBj
YWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IG1fZGF0YShu
ZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCisgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CiB7CiB9CiAKIEpTQ3VzdG9tVm9pZENhbGxiYWNrOjp+SlNDdXN0b21Wb2lkQ2FsbGJhY2soKQog
ewotICAgIGNhbGxPbk1haW5UaHJlYWQoSlNDYWxsYmFja0RhdGE6OmRlbGV0ZURhdGEsIG1fZGF0
YSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhEZWxldGVDYWxsYmFj
a0RhdGFUYXNrOjpjcmVhdGUobV9kYXRhKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fZGF0YSA9
IDA7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJh
Y2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxi
YWNrLmgJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZv
aWRDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAg
ICAgSlNDdXN0b21Wb2lkQ2FsbGJhY2soSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xv
YmFsT2JqZWN0Kik7CiAKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQkocmV2aXNpb24gNTg4MzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcyLDYgKzE5NzIsNyBAQCBz
dWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgICMgUHJpdmF0ZSBtZW1iZXJzCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhO1xuIik7CiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xh
dGVkV29ybGQ7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDtcbiIpOwogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwpAQCAtMjAwMywxMyArMjAwNCwxNCBAQCBzdWIgR2Vu
ZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2Ns
YXNzTmFtZX06OiR7Y2xhc3NOYW1lfShKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6IG1f
ZGF0YShuZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpXG4iKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faXNvbGF0ZWRXb3JsZChnbG9iYWxPYmplY3Qt
PndvcmxkKCkpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSlcbiIp
OwogICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG5cbiIpOwogCiAgICAgIyBEZXN0cnVjdG9yCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIk
e2NsYXNzTmFtZX06On4ke2NsYXNzTmFtZX0oKVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYWxsT25NYWluVGhyZWFkKEpT
Q2FsbGJhY2tEYXRhOjpkZWxldGVEYXRhLCBtX2RhdGEpO1xuIik7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhEZWxldGVDYWxs
YmFja0RhdGFUYXNrOjpjcmVhdGUobV9kYXRhKSk7XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiNpZm5kZWYgTkRFQlVHXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX2Rh
dGEgPSAwO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpOwpJbmRleDog
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsxNjUsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkp
OwogICAgICAgICBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29y
a2VyQ29udGV4dCo+KGNvbnRleHQpOworICAgICAgICB3b3JrZXJDb250ZXh0LT5jbGVhclNjcmlw
dCgpOwogICAgICAgICB3b3JrZXJDb250ZXh0LT50aHJlYWQoKS0+cnVuTG9vcCgpLnRlcm1pbmF0
ZSgpOwogICAgIH0KIApAQCAtMTk1LDcgKzE5Niw2IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRXZl
bnQgbGlzdGVuZXJzIHdvdWxkIGtlZXAgRE9NV3JhcHBlcldvcmxkIG9iamVjdHMgYWxpdmUgZm9y
IHRvbyBsb25nLiBBbHNvLCB0aGV5IGhhdmUgcmVmZXJlbmNlcyB0byBKUyBvYmplY3RzLAogICAg
ICAgICAvLyB3aGljaCBiZWNvbWUgZGFuZ2xpbmcgb25jZSBIZWFwIGlzIGRlc3Ryb3llZC4KICAg
ICAgICAgd29ya2VyQ29udGV4dC0+cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKLSAgICAgICAg
d29ya2VyQ29udGV4dC0+Y2xlYXJTY3JpcHQoKTsKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAg
ICAgICAgLy8gV2Ugd2FpdCBmb3IgdGhlIGRhdGFiYXNlIHRocmVhZCB0byBjbGVhbiB1cCBhbGwg
aXRzIHN0dWZmIHNvIHRoYXQgd2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55317</attachid>
            <date>2010-05-06 16:36:30 -0700</date>
            <delta_ts>2010-05-07 23:01:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38623-20100506163628.patch</filename>
            <type>text/plain</type>
            <size>7527</size>
            <attacher name="Eric U.">ericu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODg1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDUtMDUgIEVyaWMgVWhyaGFuZSAgPGVyaWN1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBK
U0NhbGxiYWNrRGF0YSBpcyBkZWxldGVkIG9uIHRoZSBNYWluIHRocmVhZCwgbm90IHRoZSBDb250
ZXh0IHRocmVhZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjIzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyB5b3UnbGwgb25seSBzZWUgYSBwcm9i
bGVtIGFmdGVyIHRoZSB3b3JrZXItYWNjZXNzLXRvLURCCisgICAgICAgIGNvZGUgZ29lcyBpbi4g
IFdpdGhvdXQgdGhpcyBmaXgsIHRoZSBHVEsgYm90cyBhc3NlcnQsIGJ1dCBpdCdzCisgICAgICAg
IHRpbWluZy1zZW5zaXRpdmUgYW5kIG5vdCB0cnVseSBwbGF0Zm9ybS1zcGVjaWZpYy4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpK
U0NhbGxiYWNrRGF0YTo6SlNDYWxsYmFja0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SlNDYWxs
YmFja0RhdGE6On5KU0NhbGxiYWNrRGF0YSk6CisgICAgICAgIFN0b3JlIHRoZSBhbGxvY2F0aW5n
IHRocmVhZCwgdGhlbiBhc3NlcnQgdGhhdCB3ZSdyZSBvbiBpdCBhdCBkZWxldGlvbi4KKyAgICAg
ICAgCisgICAgICAgIChXZWJDb3JlOjpEZWxldGVDYWxsYmFja0RhdGFUYXNrKToKKyAgICAgICAg
VGhpcyBpcyB0aGUgdGFzayB0aGF0IGNhbiBnZXQgcG9zdGVkIHRvIHRoZSBjb250ZXh0IHRocmVh
ZCBmb3IgY2xlYW51cC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxi
YWNrLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5oOgor
ICAgICAgICBUaGlzIGNhbGxiYWNrIGlzbid0IGF1dG9nZW5lcmF0ZWQsIHNvIHdlIGhhdmUgdG8g
ZG8gdGhlIGNsZWFudXAgbWFudWFsbHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgQWRkIHRoZSBwcm9wZXIgY2xlYW51cCB0byBhbGwg
YXV0b2dlbmVyYXRlZCBjYWxsYmFja3MuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTaHV0ZG93bkZpbmlzaFRhc2s6
OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZFNodXRkb3duU3Rh
cnRUYXNrOjpwZXJmb3JtVGFzayk6CisgICAgICAgIFdvcmtlckNvbnRleHQ6OmNsZWFyU2NyaXB0
IGNhbid0IGJlIGNhbGxlZCB1bnRpbCB0aGUgcG9zdGVkIGRlbGV0aW9uIHRhc2tzIGhhdmUgY29t
cGxldGVkOyBtb3ZlIHRoZSBjYWxsIGZyb20gc2h1dGRvd24gc3RhcnQgdG8gc2h1dGRvd24gZmlu
aXNoLgorCiAyMDEwLTA1LTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBkZWNlbGVyYXRlZCBjb21wb3NpdGluZyBidWlsZC4KSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNDYWxsYmFja0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmgJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NhbGxiYWNrRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEs
MTUgQEAKIAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NR2xvYmFs
T2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL1Byb3RlY3QuaD4KICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gV2UgaGF2
ZSB0byBjbGVhbiB1cCB0aGlzIGRhdGEgb24gdGhlIG1haW4gdGhyZWFkIGJlY2F1c2UgdW5wcm90
ZWN0aW5nIGEKLS8vIEpTT2JqZWN0IG9uIGEgbm9uLW1haW4gdGhyZWFkIHdpdGhvdXQgc3luY2hy
b25pemF0aW9uIHdvdWxkIGNvcnJ1cHQgdGhlIGhlYXAKKy8vIFdlIGhhdmUgdG8gY2xlYW4gdXAg
dGhpcyBkYXRhIG9uIHRoZSBjb250ZXh0IHRocmVhZCBiZWNhdXNlIHVucHJvdGVjdGluZyBhCisv
LyBKU09iamVjdCBvbiB0aGUgd3JvbmcgdGhyZWFkIHdpdGhvdXQgc3luY2hyb25pemF0aW9uIHdv
dWxkIGNvcnJ1cHQgdGhlIGhlYXAKIC8vIChhbmQgc3luY2hyb25pemF0aW9uIHdvdWxkIGJlIHNs
b3cpLgogCiBjbGFzcyBKU0NhbGxiYWNrRGF0YSB7CkBAIC00OCwxMiArNDksMTUgQEAgcHVibGlj
OgogICAgIEpTQ2FsbGJhY2tEYXRhKEpTQzo6SlNPYmplY3QqIGNhbGxiYWNrLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICA6IG1fY2FsbGJhY2soY2FsbGJhY2spCiAg
ICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQorI2lmbmRlZiBOREVCVUcKKyAg
ICAgICAgLCBtX3RocmVhZChjdXJyZW50VGhyZWFkKCkpCisjZW5kaWYKICAgICB7CiAgICAgfQog
ICAgIAogICAgIH5KU0NhbGxiYWNrRGF0YSgpCiAgICAgewotICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOworICAgICAgICBBU1NFUlQobV90aHJlYWQgPT0gY3VycmVudFRocmVhZCgpKTsK
ICAgICB9CiAKICAgICBKU0M6OkpTT2JqZWN0KiBjYWxsYmFjaygpIHsgcmV0dXJuIG1fY2FsbGJh
Y2suZ2V0KCk7IH0KQEAgLTY0LDYgKzY4LDI4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSlND
OjpQcm90ZWN0ZWRQdHI8SlNDOjpKU09iamVjdD4gbV9jYWxsYmFjazsKICAgICBKU0M6OlByb3Rl
Y3RlZFB0cjxKU0RPTUdsb2JhbE9iamVjdD4gbV9nbG9iYWxPYmplY3Q7CisjaWZuZGVmIE5ERUJV
RworICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWQ7CisjZW5kaWYKK307CisKK2NsYXNzIERl
bGV0ZUNhbGxiYWNrRGF0YVRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGVsZXRlQ2FsbGJhY2tEYXRhVGFz
az4gY3JlYXRlKEpTQ2FsbGJhY2tEYXRhKiBkYXRhKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5l
dyBEZWxldGVDYWxsYmFja0RhdGFUYXNrKGRhdGEpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBwZXJmb3JtVGFzayhTY3JpcHRFeGVjdXRpb25Db250ZXh0KikKKyAgICB7CisgICAgICAgIGRl
bGV0ZSBtX2RhdGE7CisgICAgfQorICAgIHZpcnR1YWwgYm9vbCBpc0NsZWFudXBUYXNrKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorcHJpdmF0ZToKKworICAgIERlbGV0ZUNhbGxiYWNrRGF0YVRh
c2soSlNDYWxsYmFja0RhdGEqIGRhdGEpIDogbV9kYXRhKGRhdGEpIHt9CisKKyAgICBKU0NhbGxi
YWNrRGF0YSogbV9kYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAJKHJldmlzaW9uIDU4
ODMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZvaWRDYWxsYmFjay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDEyICs0MiwxMyBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogICAg
IAogSlNDdXN0b21Wb2lkQ2FsbGJhY2s6OkpTQ3VzdG9tVm9pZENhbGxiYWNrKEpTT2JqZWN0KiBj
YWxsYmFjaywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IG1fZGF0YShu
ZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpCisgICAgLCBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CiB7CiB9CiAKIEpTQ3VzdG9tVm9pZENhbGxiYWNrOjp+SlNDdXN0b21Wb2lkQ2FsbGJhY2soKQog
ewotICAgIGNhbGxPbk1haW5UaHJlYWQoSlNDYWxsYmFja0RhdGE6OmRlbGV0ZURhdGEsIG1fZGF0
YSk7CisgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhEZWxldGVDYWxsYmFj
a0RhdGFUYXNrOjpjcmVhdGUobV9kYXRhKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fZGF0YSA9
IDA7CiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21Wb2lkQ2FsbGJh
Y2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tVm9pZENhbGxi
YWNrLmgJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbVZv
aWRDYWxsYmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAg
ICAgSlNDdXN0b21Wb2lkQ2FsbGJhY2soSlNDOjpKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xv
YmFsT2JqZWN0Kik7CiAKICAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhOworICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQkocmV2aXNpb24gNTg4MzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
Q29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcyLDYgKzE5NzIsNyBAQCBz
dWIgR2VuZXJhdGVDYWxsYmFja0hlYWRlcgogICAgICMgUHJpdmF0ZSBtZW1iZXJzCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBKU0NhbGxiYWNrRGF0YSogbV9kYXRhO1xuIik7CiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiBtX2lzb2xh
dGVkV29ybGQ7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dDtcbiIpOwogICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICJ9O1xuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJ9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlXG5cbiIpOwpAQCAtMjAwMywxMyArMjAwNCwxNCBAQCBzdWIgR2Vu
ZXJhdGVDYWxsYmFja0ltcGxlbWVudGF0aW9uCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2Ns
YXNzTmFtZX06OiR7Y2xhc3NOYW1lfShKU09iamVjdCogY2FsbGJhY2ssIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6IG1f
ZGF0YShuZXcgSlNDYWxsYmFja0RhdGEoY2FsbGJhY2ssIGdsb2JhbE9iamVjdCkpXG4iKTsKICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faXNvbGF0ZWRXb3JsZChnbG9iYWxPYmplY3Qt
PndvcmxkKCkpXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSlcbiIp
OwogICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG5cbiIpOwogCiAgICAgIyBEZXN0cnVjdG9yCiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIk
e2NsYXNzTmFtZX06On4ke2NsYXNzTmFtZX0oKVxuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ7XG4iKTsKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBjYWxsT25NYWluVGhyZWFkKEpT
Q2FsbGJhY2tEYXRhOjpkZWxldGVEYXRhLCBtX2RhdGEpO1xuIik7CisgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb3N0VGFzayhEZWxldGVDYWxs
YmFja0RhdGFUYXNrOjpjcmVhdGUobV9kYXRhKSk7XG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiNpZm5kZWYgTkRFQlVHXG4iKTsKICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBtX2Rh
dGEgPSAwO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpOwpJbmRleDog
V2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
b3JrZXJzL1dvcmtlclRocmVhZC5jcHAJKHJldmlzaW9uIDU4ODMxKQorKysgV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw2ICsxNjUsOCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoY29udGV4dC0+aXNXb3JrZXJDb250ZXh0KCkp
OwogICAgICAgICBXb3JrZXJDb250ZXh0KiB3b3JrZXJDb250ZXh0ID0gc3RhdGljX2Nhc3Q8V29y
a2VyQ29udGV4dCo+KGNvbnRleHQpOworICAgICAgICAvLyBJdCdzIG5vdCBzYWZlIHRvIGNhbGwg
Y2xlYXJTY3JpcHQgdW50aWwgYWxsIHRoZSBjbGVhbnVwIHRhc2tzIHBvc3RlZCBieSBmdW5jdGlv
bnMgaW5pdGlhdGVkIGJ5IFdvcmtlclRocmVhZFNodXRkb3duU3RhcnRUYXNrIGhhdmUgY29tcGxl
dGVkLgorICAgICAgICB3b3JrZXJDb250ZXh0LT5jbGVhclNjcmlwdCgpOwogICAgICAgICB3b3Jr
ZXJDb250ZXh0LT50aHJlYWQoKS0+cnVuTG9vcCgpLnRlcm1pbmF0ZSgpOwogICAgIH0KIApAQCAt
MTk1LDcgKzE5Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRXZlbnQgbGlzdGVuZXJzIHdvdWxk
IGtlZXAgRE9NV3JhcHBlcldvcmxkIG9iamVjdHMgYWxpdmUgZm9yIHRvbyBsb25nLiBBbHNvLCB0
aGV5IGhhdmUgcmVmZXJlbmNlcyB0byBKUyBvYmplY3RzLAogICAgICAgICAvLyB3aGljaCBiZWNv
bWUgZGFuZ2xpbmcgb25jZSBIZWFwIGlzIGRlc3Ryb3llZC4KICAgICAgICAgd29ya2VyQ29udGV4
dC0+cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsKLSAgICAgICAgd29ya2VyQ29udGV4dC0+Y2xl
YXJTY3JpcHQoKTsKIAogI2lmIEVOQUJMRShEQVRBQkFTRSkKICAgICAgICAgLy8gV2Ugd2FpdCBm
b3IgdGhlIGRhdGFiYXNlIHRocmVhZCB0byBjbGVhbiB1cCBhbGwgaXRzIHN0dWZmIHNvIHRoYXQg
d2UK
</data>

          </attachment>
      

    </bug>

</bugzilla>