<?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>91116</bug_id>
          
          <creation_ts>2012-07-12 10:33:25 -0700</creation_ts>
          <short_desc>WebContext::getWebCoreStatistics() causes crash if no m_process</short_desc>
          <delta_ts>2012-07-13 17:33:48 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Josh Hawn">jhawn</reporter>
          <assigned_to name="Josh Hawn">jhawn</assigned_to>
          <cc>jberlin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>667953</commentid>
    <comment_count>0</comment_count>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 10:33:25 -0700</bug_when>
    <thetext>1 com.apple.WebKit2              0x1090cc9e7 WebKit::WebProcessProxy::sendMessage(CoreIPC::MessageID, WTF::PassOwnPtr&lt;CoreIPC::ArgumentEncoder&gt;, unsigned int) + 0xb
&gt;  2 com.apple.WebKit2              0x10916dc5e bool WebKit::WebProcessProxy::send&lt;Messages::WebProcess::GetWebCoreStatistics&gt;(Messages::WebProcess::GetWebCoreStatistics const&amp;, unsigned long long, unsigned int) + 0x6a
    3 com.apple.WebKit2              0x10916d0b1 WebKit::WebContext::getWebCoreStatistics(WTF::PassRefPtr&lt;WebKit::GenericCallback&lt;OpaqueWKDictionary const*, WebKit::ImmutableDictionary*&gt; &gt;) + 0x6f
    4 com.apple.WebKit2              0x1091cf413 WKContextGetStatistics + 0x66

When trying to send this message, this function does not check or ensure that there is a valid m_process pointer.

&lt;rdar://problem/11834373&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667977</commentid>
    <comment_count>1</comment_count>
      <attachid>151999</attachid>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 10:54:33 -0700</bug_when>
    <thetext>Created attachment 151999
Proposed patch which checks for m_process before sending message.

Return value has also been changed from void to bool. Because send() returns a bool, it is probably a good idea to return this result up to the user of the function. This way the user will know if the action succeeded or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668048</commentid>
    <comment_count>2</comment_count>
      <attachid>152013</attachid>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 11:51:26 -0700</bug_when>
    <thetext>Created attachment 152013
Proposed patch which checks for m_process before sending message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668089</commentid>
    <comment_count>3</comment_count>
      <attachid>152013</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-07-12 12:33:48 -0700</bug_when>
    <thetext>Comment on attachment 152013
Proposed patch which checks for m_process before sending message.

You are missing a ChangeLog. I think you can also write an API test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668224</commentid>
    <comment_count>4</comment_count>
      <attachid>152063</attachid>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 14:33:11 -0700</bug_when>
    <thetext>Created attachment 152063
Proposed patch with test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668229</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 14:35:50 -0700</bug_when>
    <thetext>Attachment 152063 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;Source/WebKit2/UIProcess/Web...&quot; exit_code: 1
Tools/TestWebKitAPI/Tests/WebKit2/WebCoreStatisticsWithNoWebProcess.cpp:32:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668256</commentid>
    <comment_count>6</comment_count>
      <attachid>152070</attachid>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 14:47:57 -0700</bug_when>
    <thetext>Created attachment 152070
Proposed patch with test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668333</commentid>
    <comment_count>7</comment_count>
      <attachid>152070</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-12 15:44:28 -0700</bug_when>
    <thetext>Comment on attachment 152070
Proposed patch with test case.

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

&gt; Source/WebKit2/UIProcess/WebContext.cpp:-923
&gt;  void WebContext::getWebCoreStatistics(PassRefPtr&lt;DictionaryCallback&gt; prpCallback)
&gt;  {
&gt; -    RefPtr&lt;DictionaryCallback&gt; callback = prpCallback;

Ugh, we don&apos;t do hungarian notation.

This method is really confusing. It&apos;s called getWebCoreStatistics() but doesn&apos;t return anything.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:930
&gt; +    RefPtr&lt;DictionaryCallback&gt; callback = prpCallback;
&gt;      uint64_t callbackID = callback-&gt;callbackID();
&gt;      m_dictionaryCallbacks.set(callbackID, callback.get());

I think this RefPtr is doing an extra retain. Won&apos;t m_dictionaryCallbacks have the owning reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668355</commentid>
    <comment_count>8</comment_count>
      <attachid>152070</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-07-12 16:12:49 -0700</bug_when>
    <thetext>Comment on attachment 152070
Proposed patch with test case.

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

&gt;&gt; Source/WebKit2/UIProcess/WebContext.cpp:930
&gt;&gt;      m_dictionaryCallbacks.set(callbackID, callback.get());
&gt; 
&gt; I think this RefPtr is doing an extra retain. Won&apos;t m_dictionaryCallbacks have the owning reference?

I would guess you want:

m_dictionaryCallbacks.set(callbackID, prpCallback.release());

but beware that prpCallback will be nulled out after this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668540</commentid>
    <comment_count>9</comment_count>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-12 19:57:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt;&gt; I think this RefPtr is doing an extra retain. Won&apos;t m_dictionaryCallbacks have the owning reference?
&gt;
&gt;I would guess you want:
&gt;
&gt;m_dictionaryCallbacks.set(callbackID, prpCallback.release());
&gt;
&gt;but beware that prpCallback will be nulled out after this.
&gt;

The RefPtr assignment doesn&apos;t do an extra retain when it&apos;s assigned from a PassRefPtr.
The release() method is only defined on RefPtr, not PassRefPtr, and returns a PassRefPtr (after nulling its internal pointer without changing the reference count), not the raw pointer that HashMap.set(key, value) requires.

how about this instead:

void WebContext::getWebCoreStatistics(PassRefPtr&lt;DictionaryCallback&gt; callback)
{
    if (!m_process) {
        callback-&gt;invalidate();
        return;
    }
    
    uint64_t callbackID = callback-&gt;callbackID();
    m_dictionaryCallbacks.set(callbackID, callback.get());
    process()-&gt;send(Messages::WebProcess::GetWebCoreStatistics(callbackID), 0);
}


I&apos;ve used this guideline for using PassRefPtr is function arguments:
    &quot;If a function does take ownership of an object, the argument should be a PassRefPtr. This includes most setter functions. Unless the use of the argument is very simple, the argument should be transferred to a RefPtr at the start of the function; the argument can be named with a “prp” prefix in such cases.&quot;

Since the use of this argument is fairly simple, we can do without transferring it to a RefPtr, and no longer need the &apos;prp&apos; prefix. I believe this is still using it correctly since callback isn&apos;t being assigned to any other local variable or being passed as an argument to any other function. And, as you mentioned earlier, m_dictionaryCallbacks will have the owning reference. Let me know if I&apos;m still understanding this wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669117</commentid>
    <comment_count>10</comment_count>
      <attachid>152275</attachid>
    <who name="Josh Hawn">jhawn</who>
    <bug_when>2012-07-13 09:18:33 -0700</bug_when>
    <thetext>Created attachment 152275
Proposed patch with test case. (Minor change after review)

The above comment explains the change from the last patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669624</commentid>
    <comment_count>11</comment_count>
      <attachid>152275</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 17:33:42 -0700</bug_when>
    <thetext>Comment on attachment 152275
Proposed patch with test case. (Minor change after review)

Clearing flags on attachment: 152275

Committed r122648: &lt;http://trac.webkit.org/changeset/122648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669625</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-13 17:33:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151999</attachid>
            <date>2012-07-12 10:54:33 -0700</date>
            <delta_ts>2012-07-12 11:51:26 -0700</delta_ts>
            <desc>Proposed patch which checks for m_process before sending message.</desc>
            <filename>file.patch</filename>
            <type>text/plain</type>
            <size>3519</size>
            <attacher name="Josh Hawn">jhawn</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKaW5kZXggOWY2
ZGJiYy4uNzVhZmE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKQEAgLTI1NSw5ICsyNTUsOSBAQCB2b2lkIFdLQ29udGV4dFdhcm1Jbml0aWFsUHJv
Y2VzcyhXS0NvbnRleHRSZWYgY29udGV4dFJlZikKICAgICB0b0ltcGwoY29udGV4dFJlZiktPndh
cm1Jbml0aWFsUHJvY2VzcygpOwogfQogCi12b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3MoV0tD
b250ZXh0UmVmIGNvbnRleHRSZWYsIHZvaWQqIGNvbnRleHQsIFdLQ29udGV4dEdldFN0YXRpc3Rp
Y3NGdW5jdGlvbiBjYWxsYmFjaykKK2Jvb2wgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgdm9pZCogY29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1
bmN0aW9uIGNhbGxiYWNrKQogewotICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Z2V0V2ViQ29yZVN0
YXRpc3RpY3MoRGljdGlvbmFyeUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsg
ICAgCisgICAgcmV0dXJuIHRvSW1wbChjb250ZXh0UmVmKS0+Z2V0V2ViQ29yZVN0YXRpc3RpY3Mo
RGljdGlvbmFyeUNhbGxiYWNrOjpjcmVhdGUoY29udGV4dCwgY2FsbGJhY2spKTsKIH0KIAogdm9p
ZCBXS0NvbnRleHRHYXJiYWdlQ29sbGVjdEphdmFTY3JpcHRPYmplY3RzKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5oCmlu
ZGV4IDk1NzU3NmMuLmExOGJmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgKQEAgLTE1OSw3ICsxNTksNyBAQCBXS19FWFBPUlQgV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UGx1Z2luU2l0ZURhdGFNYW5hZ2VyKFdLQ29udGV4dAog
V0tfRVhQT1JUIFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0UmVzb3VyY2VD
YWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogICAgIAogdHlwZWRlZiB2b2lkICgq
V0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uKShXS0RpY3Rpb25hcnlSZWYgc3RhdGlzdGlj
cywgV0tFcnJvclJlZiBlcnJvciwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKLVdLX0VYUE9SVCB2
b2lkIFdLQ29udGV4dEdldFN0YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNvbnRleHQsIHZvaWQqIGZ1
bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9uIGZ1bmN0aW9uKTsK
K1dLX0VYUE9SVCBib29sIFdLQ29udGV4dEdldFN0YXRpc3RpY3MoV0tDb250ZXh0UmVmIGNvbnRl
eHQsIHZvaWQqIGZ1bmN0aW9uQ29udGV4dCwgV0tDb250ZXh0R2V0U3RhdGlzdGljc0Z1bmN0aW9u
IGZ1bmN0aW9uKTsKICAgICAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dEdhcmJhZ2VDb2xsZWN0
SmF2YVNjcmlwdE9iamVjdHMoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0U2V0SmF2YVNjcmlwdEdhcmJhZ2VDb2xsZWN0b3JUaW1lckVuYWJsZWQoV0tDb250
ZXh0UmVmIGNvbnRleHQsIGJvb2wgZW5hYmxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmNwcAppbmRleCA1YTcxNGU4Li5hNjZjMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwCkBAIC05MTgsMTMgKzkxOCwxOCBAQCBib29sIFdlYkNvbnRleHQ6
Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDb250
ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4g
cHJwQ2FsbGJhY2spCitib29sIFdlYkNvbnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzKFBhc3NS
ZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPiBwcnBDYWxsYmFjaykKIHsKLSAgICBSZWZQdHI8RGlj
dGlvbmFyeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOwogICAgIAorICAgIGlmICgh
bV9wcm9jZXNzKSB7CisgICAgICAgIHBycENhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgCisgICAgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFj
az4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gY2Fs
bGJhY2stPmNhbGxiYWNrSUQoKTsKICAgICBtX2RpY3Rpb25hcnlDYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKLSAgICBwcm9jZXNzKCktPnNlbmQoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkdldFdlYkNvcmVTdGF0aXN0aWNzKGNhbGxiYWNrSUQpLCAwKTsKKyAgICByZXR1
cm4gcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXZWJDb3JlU3RhdGlz
dGljcyhjYWxsYmFja0lEKSwgMCk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVEaWN0
aW9uYXJ5PiBjcmVhdGVEaWN0aW9uYXJ5RnJvbUhhc2hNYXAoY29uc3QgSGFzaE1hcDxTdHJpbmcs
IHVpbnQ2NF90PiYgbWFwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKaW5kZXgg
NDE2ZTQ3ZC4uYzMwYTBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCkBA
IC0xOTEsNyArMTkxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SFRUUFBpcGVsaW5pbmdFbmFi
bGVkKGJvb2wpOwogICAgIGJvb2wgaHR0cFBpcGVsaW5pbmdFbmFibGVkKCkgY29uc3Q7CiAgICAg
Ci0gICAgdm9pZCBnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRyPERpY3Rpb25hcnlDYWxs
YmFjaz4pOworICAgIGJvb2wgZ2V0V2ViQ29yZVN0YXRpc3RpY3MoUGFzc1JlZlB0cjxEaWN0aW9u
YXJ5Q2FsbGJhY2s+KTsKICAgICB2b2lkIGdhcmJhZ2VDb2xsZWN0SmF2YVNjcmlwdE9iamVjdHMo
KTsKICAgICB2b2lkIHNldEphdmFTY3JpcHRHYXJiYWdlQ29sbGVjdG9yVGltZXJFbmFibGVkKGJv
b2wgZmxhZyk7CiAKLS0gCjEuNy45LjYgKEFwcGxlIEdpdC0zMS4xKQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152013</attachid>
            <date>2012-07-12 11:51:26 -0700</date>
            <delta_ts>2012-07-12 14:33:11 -0700</delta_ts>
            <desc>Proposed patch which checks for m_process before sending message.</desc>
            <filename>file.patch</filename>
            <type>text/plain</type>
            <size>796</size>
            <attacher name="Josh Hawn">jhawn</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCA1YTcxNGU4Li5iODli
OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC05MjAsOCAr
OTIwLDEyIEBAIGJvb2wgV2ViQ29udGV4dDo6aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkgY29uc3QK
IAogdm9pZCBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRyPERpY3Rp
b25hcnlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAgUmVmUHRyPERpY3Rpb25hcnlDYWxs
YmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIW1fcHJvY2VzcykgeworICAg
ICAgICBwcnBDYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQog
ICAgIAorICAgIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJh
Y2s7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAg
ICAgbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7
CiAgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXZWJDb3JlU3Rh
dGlzdGljcyhjYWxsYmFja0lEKSwgMCk7Ci0tIAoxLjcuOS42IChBcHBsZSBHaXQtMzEuMSkKCg==
</data>
<flag name="review"
          id="160605"
          type_id="1"
          status="-"
          setter="jberlin"
    />
    <flag name="commit-queue"
          id="160622"
          type_id="3"
          status="-"
          setter="jberlin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152063</attachid>
            <date>2012-07-12 14:33:11 -0700</date>
            <delta_ts>2012-07-12 14:47:57 -0700</delta_ts>
            <desc>Proposed patch with test case.</desc>
            <filename>file.patch</filename>
            <type>text/plain</type>
            <size>8177</size>
            <attacher name="Josh Hawn">jhawn</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzNDJhNDFhLi5iMzU2N2M3
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDctMTIgSm9zaCBIYXduIDxqaGF3bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZv
ciBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcygpIGNhdXNlcyBjcmFzaCBpZiBubyBt
X3Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkxMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgICAgV2Vi
Q29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKToKKyAgICAgICAgICAgICAgICBOb3cgaW52
YWxpZGF0ZXMgY2FsbGJhY2sgaWYgbm8gbV9wcm9jZXNzLgorCiAyMDEyLTA3LTA2ICBUaGlhZ28g
TWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtF
RkxdW0NNYWtlXSBNb3ZlIGd0ZXN0IHNvdXJjZXMgdG8gYW4gdXBwZXIgbGV2ZWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAppbmRleCA1YTcxNGU4Li5iODliOWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCkBAIC05MjAsOCArOTIwLDEyIEBA
IGJvb2wgV2ViQ29udGV4dDo6aHR0cFBpcGVsaW5pbmdFbmFibGVkKCkgY29uc3QKIAogdm9pZCBX
ZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRyPERpY3Rpb25hcnlDYWxs
YmFjaz4gcHJwQ2FsbGJhY2spCiB7Ci0gICAgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIW1fcHJvY2VzcykgeworICAgICAgICBwcnBD
YWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIAorICAg
IFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CiAgICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9kaWN0
aW9uYXJ5Q2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7CiAgICAgcHJv
Y2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXZWJDb3JlU3RhdGlzdGljcyhj
YWxsYmFja0lEKSwgMCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMjRjYzk3Mi4uY2YzODBkOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA3LTEyICBKb3No
IEhhd24gIDxqaGF3bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZvciBXZWJDb250ZXh0Ojpn
ZXRXZWJDb3JlU3RhdGlzdGljcygpIGNhdXNlcyBjcmFzaCBpZiBubyBtX3Byb2Nlc3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMTE2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICAgIEFk
ZGVkIG5ldyB0ZXN0IGZpbGUuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
L1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHA6IEFkZGVkLgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6d2tDb250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNrKToKKyAgICAgICAg
ICAgIFRlc3RzIHRoYXQgY2FsbGJhY2sgZnVuY3Rpb24gcmVjZWl2ZXMgYW4gZXJyb3IuCisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgICAgIENyZWF0ZXMgYSBkdW1teSB3
ZWIgY29udGV4dCBvYmplY3QgKG5vIHdlYiBwcm9jZXNzKS4KKyAgICAgICAgICAgIENhbGxzIFdL
Q29udGV4dEdldFN0YXRpc3RpY3Mgd2l0aCB0aGUgd2ViIGNvbnRleHQgYW5kIHRlc3QgY2FsbGJh
Y2suCisgICAgICAgICAgICBUaGUgdGVzdCBjYWxsYmFjayBzaG91bGQgZ2V0IGFuIGV4cGVjdGVk
IGVycm9yLgorCiAyMDEyLTA3LTA2ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5j
b20+CiAKICAgICAgICAgW0d0a10gQWRkIGEgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIGRpc2Fi
bGluZyB1bnN0YWJsZSBmZWF0dXJlcyBpbiByZWxlYXNlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmNWZmODA0Li44ODUyZmY5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOSw2ICs5
LDcgQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTBCQ0Q4MzM1MTQ4NTdD
RTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBCQ0Q4MzM0MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAq
LzsgfTsKIAkJMEJDRDg1NkExNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkNEODU2OTE0
ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNwcCAqLzsgfTsKKwkJMEYxN0JCRDYx
NUFGNkM0RDAwN0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE3QkJENDE1
QUY2QzREMDA3QUI3NTMgLyogV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcCAq
LzsgfTsKIAkJMEZDNkM0Q0MxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2QzRDQjE0MTAy
N0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCAqLzsgfTsKIAkJMEZDNkM0Q0YxNDEwMzRB
RDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxv
Y2F0b3IuY3BwICovOyB9OwogCQkxQTAyQzg0RjEyNUQ0QTg0MDBFM0Y0QkQgLyogRmluZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTAyQzg0RTEy
NUQ0QTg0MDBFM0Y0QkQgLyogRmluZC5jcHAgKi87IH07CkBAIC0yMjksNiArMjMwLDcgQEAKIC8q
IEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwQkNEODMzNDE0ODU3Q0U0MDBF
QTIwMDMgLyogSGFzaE1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBIYXNoTWFwLmNwcDsgcGF0aCA9IFdURi9IYXNoTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEJDRDg1NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUZW1wb3JhcnlDaGFuZ2Uu
Y3BwOyBwYXRoID0gV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGMTdCQkQ0MTVBRjZDNEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dp
dGhOb1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDNkM0Q0IxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZWRCbGFja1RyZWUuY3BwOyBw
YXRoID0gV1RGL1JlZEJsYWNrVHJlZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1ldGFBbGxvY2F0b3IuY3BwOyBwYXRoID0gV1RG
L01ldGFBbGxvY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTAyQzg0
QjEyNUQ0QTVFMDBFM0Y0QkQgLyogZmluZC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRo
ID0gZmluZC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTk2LDYgKzU5OCw3
IEBACiAJCQkJQkM3QjYxOUExMjk5RkU5RTAwRDE3NEE0IC8qIFdLUHJlZmVyZW5jZXMuY3BwICov
LAogCQkJCUJDOTA5OTVEMTI1NjdCQzEwMDA4Mzc1NiAvKiBXS1N0cmluZy5jcHAgKi8sCiAJCQkJ
QkM5MDk5OTMxMjU2QUNGMTAwMDgzNzU2IC8qIFdLU3RyaW5nSlNTdHJpbmcuY3BwICovLAorCQkJ
CTBGMTdCQkQ0MTVBRjZDNEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlBy
b2Nlc3MuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBXZWJLaXQyOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTkyOSw2ICs5MzIsNyBAQAogCQkJCTI2REY1QTVFMTVBMjlCQUEwMDM2
ODlDMiAvKiBDYW5jZWxMb2FkRnJvbVJlc291cmNlTG9hZERlbGVnYXRlLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjY2MEFBMEQxNUE1RjA2MTAwM0ExMjQzIC8qIEdldEluamVjdGVkQnVuZGxlSW5p
dGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2NjBB
QTEzMTVBNjE5QzkwMDNBMTI0MyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxN0JCRDYxNUFGNkM0RDAw
N0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJD
b3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyL1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzZlNjY1YgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9XZWJDb3JlU3RhdGlzdGljc1dpdGhO
b1dlYlByb2Nlc3MuY3BwCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJ0ZXN0
LmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKyAgICAKKyAgICBzdGF0aWMgYm9vbCBk
b25lOworICAgIAorICAgIC8vIENhbGxiYWNrIGZvciBXSzo6Q29udGV4dDo6Z2V0V2ViQ29yZVN0
YXRpc3RpY3MuCisgICAgc3RhdGljIHZvaWQgd2tDb250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNr
KFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5j
dGlvbkNvbnRleHQpCisgICAgeworICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZXJyb3IpOworICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgVEVTVChXZWJLaXQyLCBXZWJDb3Jl
U3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MpCisgICAgeworICAgICAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICAg
ICAgCisgICAgICAgIFdLQ29udGV4dEdldFN0YXRpc3RpY3MoY29udGV4dC5nZXQoKSwgMCwgd2tD
b250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNrKTsKKyAgICAgICAgCisgICAgICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgfQorICAgIAorfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotLSAK
MS43LjkuNiAoQXBwbGUgR2l0LTMxLjEpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152070</attachid>
            <date>2012-07-12 14:47:57 -0700</date>
            <delta_ts>2012-07-13 09:18:33 -0700</delta_ts>
            <desc>Proposed patch with test case.</desc>
            <filename>file.patch</filename>
            <type>text/plain</type>
            <size>9066</size>
            <attacher name="Josh Hawn">jhawn</attacher>
            
              <data encoding="base64">RnJvbSAwOWUzNDY2NTdjM2U3MTI3ZGEwMGViZDc5OTNkZTc0M2I4NWFhZWNhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb3NoIEhhd24gPGpoYXduQGFwcGxlLmNvbT4KRGF0ZTogV2Vk
LCAxMSBKdWwgMjAxMiAxODozNDo1MyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEZpeCBmb3IgV2Vi
Q29udGV4dDo6Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKSBjYXVzZXMgY3Jhc2ggaWYKIG5vIG1fcHJv
Y2VzcyAgICAgICAgCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEx
MTYKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgogICAgICAgICAgV2ViQ29udGV4dDo6
Z2V0V2ViQ29yZVN0YXRpc3RpY3MoKToKICAgICAgICAgICAgICAgIE5vdyBpbnZhbGlkYXRlcyBj
YWxsYmFjayBpZiBubyBtX3Byb2Nlc3MuCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDExICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViQ29udGV4dC5jcHAgICAgICAgICAgICB8ICAgIDYgKystCiBUb29scy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKysrKwogLi4u
L1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgICAgICAgfCAgICA0ICsr
CiAuLi4vV2ViS2l0Mi9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwICB8ICAg
NTAgKysrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0aW9ucygr
KSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Mi9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwCgpkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDM0MmE0MWEuLmIzNTY3YzcgMTAw
NjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wNy0xMiBKb3NoIEhhd24gPGpoYXduQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIFdl
YkNvbnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzKCkgY2F1c2VzIGNyYXNoIGlmIG5vIG1fcHJv
Y2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEx
MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAgICAgICAgICBXZWJDb250
ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcygpOgorICAgICAgICAgICAgICAgIE5vdyBpbnZhbGlk
YXRlcyBjYWxsYmFjayBpZiBubyBtX3Byb2Nlc3MuCisKIDIwMTItMDctMDYgIFRoaWFnbyBNYXJj
b3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF1b
Q01ha2VdIE1vdmUgZ3Rlc3Qgc291cmNlcyB0byBhbiB1cHBlciBsZXZlbApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IDVhNzE0ZTguLmI4OWI5ZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTkyMCw4ICs5MjAsMTIgQEAgYm9v
bCBXZWJDb250ZXh0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKSBjb25zdAogCiB2b2lkIFdlYkNv
bnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzKFBhc3NSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNr
PiBwcnBDYWxsYmFjaykKIHsKLSAgICBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPiBjYWxsYmFj
ayA9IHBycENhbGxiYWNrOworICAgIGlmICghbV9wcm9jZXNzKSB7CisgICAgICAgIHBycENhbGxi
YWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgCisgICAgUmVm
UHRyPERpY3Rpb25hcnlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKICAgICB1aW50
NjRfdCBjYWxsYmFja0lEID0gY2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKICAgICBtX2RpY3Rpb25h
cnlDYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKICAgICBwcm9jZXNz
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdlYkNvcmVTdGF0aXN0aWNzKGNhbGxi
YWNrSUQpLCAwKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAyNGNjOTcyLi5jZjM4MGQ5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDctMTIgIEpvc2ggSGF3
biAgPGpoYXduQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggZm9yIFdlYkNvbnRleHQ6OmdldFdl
YkNvcmVTdGF0aXN0aWNzKCkgY2F1c2VzIGNyYXNoIGlmIG5vIG1fcHJvY2VzcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExMTYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgICAgQWRkZWQg
bmV3IHRlc3QgZmlsZS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2Vi
Q29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjp3a0NvbnRleHRHZXRTdGF0aXN0aWNzQ2FsbGJhY2spOgorICAgICAgICAgICAg
VGVzdHMgdGhhdCBjYWxsYmFjayBmdW5jdGlvbiByZWNlaXZlcyBhbiBlcnJvci4KKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAgICAgQ3JlYXRlcyBhIGR1bW15IHdlYiBj
b250ZXh0IG9iamVjdCAobm8gd2ViIHByb2Nlc3MpLgorICAgICAgICAgICAgQ2FsbHMgV0tDb250
ZXh0R2V0U3RhdGlzdGljcyB3aXRoIHRoZSB3ZWIgY29udGV4dCBhbmQgdGVzdCBjYWxsYmFjay4K
KyAgICAgICAgICAgIFRoZSB0ZXN0IGNhbGxiYWNrIHNob3VsZCBnZXQgYW4gZXhwZWN0ZWQgZXJy
b3IuCisKIDIwMTItMDctMDYgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWlsLmNvbT4K
IAogICAgICAgICBbR3RrXSBBZGQgYSBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgZGlzYWJsaW5n
IHVuc3RhYmxlIGZlYXR1cmVzIGluIHJlbGVhc2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGY1ZmY4MDQuLjg4NTJmZjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05LDYgKzksNyBA
QAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAkJMEJDRDgzMzUxNDg1N0NFNDAw
RUEyMDAzIC8qIEhhc2hNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEJDRDgzMzQxNDg1N0NFNDAwRUEyMDAzIC8qIEhhc2hNYXAuY3BwICovOyB9
OwogCQkwQkNEODU2QTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCQ0Q4NTY5MTQ4NUM5
OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFuZ2UuY3BwICovOyB9OworCQkwRjE3QkJENjE1QUY2
QzREMDA3QUI3NTMgLyogV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTdCQkQ0MTVBRjZD
NEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwICovOyB9
OwogCQkwRkM2QzRDQzE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzZDNENCMTQxMDI3RTAw
MDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwICovOyB9OwogCQkwRkM2QzRDRjE0MTAzNEFEMDA1
QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkM2QzRDRTE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFsbG9jYXRv
ci5jcHAgKi87IH07CiAJCTFBMDJDODRGMTI1RDRBODQwMEUzRjRCRCAvKiBGaW5kLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDJDODRFMTI1RDRB
ODQwMEUzRjRCRCAvKiBGaW5kLmNwcCAqLzsgfTsKQEAgLTIyOSw2ICsyMzAsNyBAQAogLyogQmVn
aW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBCQ0Q4MzM0MTQ4NTdDRTQwMEVBMjAw
MyAvKiBIYXNoTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhh
c2hNYXAuY3BwOyBwYXRoID0gV1RGL0hhc2hNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9yYXJ5Q2hhbmdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRlbXBvcmFyeUNoYW5nZS5jcHA7
IHBhdGggPSBXVEYvVGVtcG9yYXJ5Q2hhbmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxN0JCRDQxNUFGNkM0RDAwN0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5v
V2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlZEJsYWNrVHJlZS5jcHA7IHBhdGgg
PSBXVEYvUmVkQmxhY2tUcmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZD
NkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTWV0YUFsbG9jYXRvci5jcHA7IHBhdGggPSBXVEYvTWV0
YUFsbG9jYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMDJDODRCMTI1
RDRBNUUwMEUzRjRCRCAvKiBmaW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBm
aW5kLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTYsNiArNTk4LDcgQEAK
IAkJCQlCQzdCNjE5QTEyOTlGRTlFMDBEMTc0QTQgLyogV0tQcmVmZXJlbmNlcy5jcHAgKi8sCiAJ
CQkJQkM5MDk5NUQxMjU2N0JDMTAwMDgzNzU2IC8qIFdLU3RyaW5nLmNwcCAqLywKIAkJCQlCQzkw
OTk5MzEyNTZBQ0YxMDAwODM3NTYgLyogV0tTdHJpbmdKU1N0cmluZy5jcHAgKi8sCisJCQkJMEYx
N0JCRDQxNUFGNkM0RDAwN0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vz
cy5jcHAgKi8sCiAJCQkpOwogCQkJcGF0aCA9IFdlYktpdDI7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtOTI5LDYgKzkzMiw3IEBACiAJCQkJMjZERjVBNUUxNUEyOUJBQTAwMzY4OUMy
IC8qIENhbmNlbExvYWRGcm9tUmVzb3VyY2VMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywK
IAkJCQlGNjYwQUEwRDE1QTVGMDYxMDAzQTEyNDMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjY2MEFBMTMx
NUE2MTlDOTAwM0ExMjQzIC8qIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNh
bGxiYWNrV2lucy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjE3QkJENjE1QUY2QzREMDA3QUI3
NTMgLyogV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYkNvcmVT
dGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDIvV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWY0Y2U4Ci0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1dlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2Vi
UHJvY2Vzcy5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2luY2x1ZGUgInRlc3QuaCIK
KworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgYm9vbCBkb25lOworCisvLyBD
YWxsYmFjayBmb3IgV0s6OkNvbnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzLgorc3RhdGljIHZv
aWQgd2tDb250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNrKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0
aWNzLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpCit7CisgICAgRVhQ
RUNUX05PVF9OVUxMKGVycm9yKTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQy
LCBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MpCit7CisgICAgV0tSZXRhaW5QdHI8
V0tDb250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSk7CisgICAg
CisgICAgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhjb250ZXh0LmdldCgpLCAwLCB3a0NvbnRleHRH
ZXRTdGF0aXN0aWNzQ2FsbGJhY2spOworICAgIAorICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLS0gCjEuNy45LjYgKEFwcGxlIEdpdC0zMS4x
KQoK
</data>
<flag name="review"
          id="160668"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152275</attachid>
            <date>2012-07-13 09:18:33 -0700</date>
            <delta_ts>2012-07-13 17:33:42 -0700</delta_ts>
            <desc>Proposed patch with test case. (Minor change after review)</desc>
            <filename>file.patch</filename>
            <type>text/plain</type>
            <size>8037</size>
            <attacher name="Josh Hawn">jhawn</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzNDJhNDFhLi5hMzQ4YmVj
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDctMTIgSm9zaCBIYXduIDxqaGF3bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZv
ciBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcygpIGNhdXNlcyBjcmFzaCBpZiBubyBt
X3Byb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkxMTE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAgIFdlYkNv
bnRleHQ6OmdldFdlYkNvcmVTdGF0aXN0aWNzKCk6CisgICAgICAgICAgICAgICAgTm93IGludmFs
aWRhdGVzIGNhbGxiYWNrIGlmIG5vIG1fcHJvY2Vzcy4KKwogMjAxMi0wNy0wNiAgVGhpYWdvIE1h
cmNvcyBQLiBTYW50b3MgIDx0aGlhZ28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XVtDTWFrZV0gTW92ZSBndGVzdCBzb3VyY2VzIHRvIGFuIHVwcGVyIGxldmVsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggNWE3MTRlOC4uNTYzNWUyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAtOTE4LDkgKzkxOCwxMiBAQCBi
b29sIFdlYkNvbnRleHQ6Omh0dHBQaXBlbGluaW5nRW5hYmxlZCgpIGNvbnN0CiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJDb250ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcyhQYXNzUmVmUHRyPERpY3Rp
b25hcnlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit2b2lkIFdlYkNvbnRleHQ6OmdldFdlYkNvcmVT
dGF0aXN0aWNzKFBhc3NSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPiBjYWxsYmFjaykKIHsKLSAg
ICBSZWZQdHI8RGljdGlvbmFyeUNhbGxiYWNrPiBjYWxsYmFjayA9IHBycENhbGxiYWNrOworICAg
IGlmICghbV9wcm9jZXNzKSB7CisgICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CiAgICAgCiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IGNhbGxi
YWNrLT5jYWxsYmFja0lEKCk7CiAgICAgbV9kaWN0aW9uYXJ5Q2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBjYWxsYmFjay5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMjRjYzk3Mi4uZWU3M2ZlNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA3LTEy
ICBKb3NoIEhhd24gIDxqaGF3bkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IGZvciBXZWJDb250
ZXh0OjpnZXRXZWJDb3JlU3RhdGlzdGljcygpIGNhdXNlcyBjcmFzaCBpZiBubyBtX3Byb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAg
ICBBZGRlZCBuZXcgdGVzdCBmaWxlLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mi9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OndrQ29udGV4dEdldFN0YXRpc3RpY3NDYWxsYmFjayk6CisgICAg
ICAgICAgICBUZXN0cyB0aGF0IGNhbGxiYWNrIGZ1bmN0aW9uIHJlY2VpdmVzIGFuIGVycm9yLgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICAgICBDcmVhdGVzIGEgZHVt
bXkgd2ViIGNvbnRleHQgb2JqZWN0IChubyB3ZWIgcHJvY2VzcykuCisgICAgICAgICAgICBDYWxs
cyBXS0NvbnRleHRHZXRTdGF0aXN0aWNzIHdpdGggdGhlIHdlYiBjb250ZXh0IGFuZCB0ZXN0IGNh
bGxiYWNrLgorICAgICAgICAgICAgVGhlIHRlc3QgY2FsbGJhY2sgc2hvdWxkIGdldCBhbiBleHBl
Y3RlZCBlcnJvci4KKwogMjAxMi0wNy0wNiAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21h
aWwuY29tPgogCiAgICAgICAgIFtHdGtdIEFkZCBhIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBk
aXNhYmxpbmcgdW5zdGFibGUgZmVhdHVyZXMgaW4gcmVsZWFzZXMKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZjVmZjgwNC4uODg1MmZmOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTks
NiArOSw3IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCQkwQkNEODMzNTE0
ODU3Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwQkNEODMzNDE0ODU3Q0U0MDBFQTIwMDMgLyogSGFzaE1hcC5j
cHAgKi87IH07CiAJCTBCQ0Q4NTZBMTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFuZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJDRDg1
NjkxNDg1Qzk4QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgKi87IH07CisJCTBGMTdC
QkQ2MTVBRjZDNEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxN0JC
RDQxNUFGNkM0RDAwN0FCNzUzIC8qIFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5j
cHAgKi87IH07CiAJCTBGQzZDNENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNkM0Q0Ix
NDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgKi87IH07CiAJCTBGQzZDNENGMTQx
MDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRh
QWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJMUEwMkM4NEYxMjVENEE4NDAwRTNGNEJEIC8qIEZpbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwMkM4
NEUxMjVENEE4NDAwRTNGNEJEIC8qIEZpbmQuY3BwICovOyB9OwpAQCAtMjI5LDYgKzIzMCw3IEBA
CiAvKiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAkJMEJDRDgzMzQxNDg1N0NF
NDAwRUEyMDAzIC8qIEhhc2hNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gSGFzaE1hcC5jcHA7IHBhdGggPSBXVEYvSGFzaE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGVtcG9yYXJ5Q2hh
bmdlLmNwcDsgcGF0aCA9IFdURi9UZW1wb3JhcnlDaGFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjE3QkJENDE1QUY2QzREMDA3QUI3NTMgLyogV2ViQ29yZVN0YXRpc3Rp
Y3NXaXRoTm9XZWJQcm9jZXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkNvcmVTdGF0aXN0aWNzV2l0aE5vV2ViUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVkQmxhY2tUcmVlLmNw
cDsgcGF0aCA9IFdURi9SZWRCbGFja1RyZWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRkM2QzRDRTE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBNZXRhQWxsb2NhdG9yLmNwcDsgcGF0aCA9
IFdURi9NZXRhQWxsb2NhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEw
MkM4NEIxMjVENEE1RTAwRTNGNEJEIC8qIGZpbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IGZpbmQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5Niw2ICs1
OTgsNyBAQAogCQkJCUJDN0I2MTlBMTI5OUZFOUUwMEQxNzRBNCAvKiBXS1ByZWZlcmVuY2VzLmNw
cCAqLywKIAkJCQlCQzkwOTk1RDEyNTY3QkMxMDAwODM3NTYgLyogV0tTdHJpbmcuY3BwICovLAog
CQkJCUJDOTA5OTkzMTI1NkFDRjEwMDA4Mzc1NiAvKiBXS1N0cmluZ0pTU3RyaW5nLmNwcCAqLywK
KwkJCQkwRjE3QkJENDE1QUY2QzREMDA3QUI3NTMgLyogV2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9X
ZWJQcm9jZXNzLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gV2ViS2l0MjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC05MjksNiArOTMyLDcgQEAKIAkJCQkyNkRGNUE1RTE1QTI5QkFB
MDAzNjg5QzIgLyogQ2FuY2VsTG9hZEZyb21SZXNvdXJjZUxvYWREZWxlZ2F0ZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUY2NjBBQTBEMTVBNUYwNjEwMDNBMTI0MyAvKiBHZXRJbmplY3RlZEJ1bmRs
ZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NjYwQUExMzE1QTYxOUM5MDAzQTEyNDMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVz
ZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMTdCQkQ2MTVBRjZD
NEQwMDdBQjc1MyAvKiBXZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIv
V2ViQ29yZVN0YXRpc3RpY3NXaXRoTm9XZWJQcm9jZXNzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Mi9XZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3MWYxODYKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvV2ViQ29yZVN0YXRpc3RpY3NX
aXRoTm9XZWJQcm9jZXNzLmNwcApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAi
dGVzdC5oIgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBib29sIGRvbmU7
CisKKy8vIENhbGxiYWNrIGZvciBXS0NvbnRleHRHZXRTdGF0aXN0aWNzLgorc3RhdGljIHZvaWQg
d2tDb250ZXh0R2V0U3RhdGlzdGljc0NhbGxiYWNrKFdLRGljdGlvbmFyeVJlZiBzdGF0aXN0aWNz
LCBXS0Vycm9yUmVmIGVycm9yLCB2b2lkKiBmdW5jdGlvbkNvbnRleHQpCit7CisgICAgRVhQRUNU
X05PVF9OVUxMKGVycm9yKTsKKyAgICBkb25lID0gdHJ1ZTsKK30KKworVEVTVChXZWJLaXQyLCBX
ZWJDb3JlU3RhdGlzdGljc1dpdGhOb1dlYlByb2Nlc3MpCit7CisgICAgV0tSZXRhaW5QdHI8V0tD
b250ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSk7CisgICAgCisg
ICAgV0tDb250ZXh0R2V0U3RhdGlzdGljcyhjb250ZXh0LmdldCgpLCAwLCB3a0NvbnRleHRHZXRT
dGF0aXN0aWNzQ2FsbGJhY2spOworICAgIAorICAgIFV0aWw6OnJ1bigmZG9uZSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKLS0gCjEuNy45LjYgKEFwcGxlIEdpdC0zMS4xKQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>