<?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>95792</bug_id>
          
          <creation_ts>2012-09-04 15:59:53 -0700</creation_ts>
          <short_desc>WebAudio: limit output level to 0db</short_desc>
          <delta_ts>2012-10-16 08:51:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>crogers</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>711529</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-09-04 15:59:53 -0700</bug_when>
    <thetext>WebAudio: limit output level to 0db</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711531</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-09-04 16:06:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/11966135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711544</commentid>
    <comment_count>2</comment_count>
      <attachid>162124</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-09-04 16:19:56 -0700</bug_when>
    <thetext>Created attachment 162124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711545</commentid>
    <comment_count>3</comment_count>
      <attachid>162125</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-09-04 16:21:13 -0700</bug_when>
    <thetext>Created attachment 162125
Patch

Set frequency of test to within the average human hearing range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712161</commentid>
    <comment_count>4</comment_count>
      <attachid>162125</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-09-05 09:54:31 -0700</bug_when>
    <thetext>Comment on attachment 162125
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        WebAudio: limit output level to 0db
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=95792

Could you please add Radar link here, too? It&apos;s always a good idea to have these readily accessible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712166</commentid>
    <comment_count>5</comment_count>
      <attachid>162273</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-09-05 10:01:59 -0700</bug_when>
    <thetext>Created attachment 162273
Patch

Sure thing.  Also added a couple of missing ASSERTS to AudioDestinationMac::configure()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733061</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-10-02 14:12:14 -0700</bug_when>
    <thetext>Hi Jer, I highly recommend against using AUPeakLimiter in this case.  It&apos;s more of a mastering effect and will &quot;touch&quot; the audio signal in ways that would be undesirable.  It also has a processing latency.

Instead, I recommend looking at AudioDestinationMac::render() after this call:

    m_callback.render(0, &amp;m_renderBus, numberOfFrames);

I would simply go through each AudioChannel of m_renderBus and &quot;clamp&quot; all the PCM data to be within the range -1 -&gt; +1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742372</commentid>
    <comment_count>7</comment_count>
      <attachid>168771</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-10-15 13:39:19 -0700</bug_when>
    <thetext>Created attachment 168771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742647</commentid>
    <comment_count>8</comment_count>
      <attachid>168771</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-10-15 17:40:14 -0700</bug_when>
    <thetext>Comment on attachment 168771
Patch

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

Looks fine to me with some small nits.

&gt; Source/WebCore/ChangeLog:12
&gt; +        &gt;0db buffers and effects.

I&apos;d update the ChangeLog comment here

&gt; Source/WebCore/platform/audio/VectorMath.cpp:115
&gt; +void vclip(const float * sourceP, int sourceStride, const float* lowThresholdP, const float* highThresholdP, float* destP, int destStride, size_t framesToProcess)

style nit: &quot;float *&quot; -&gt; &quot;float*&quot;

&gt; Source/WebCore/platform/audio/VectorMath.cpp:651
&gt; +void vclip(const float * sourceP, int sourceStride, const float* lowThresholdP, const float* highThresholdP, float* destP, int destStride, size_t framesToProcess)

style nit: &quot;float *&quot; -&gt; &quot;float*&quot;

&gt; Source/WebCore/platform/audio/VectorMath.h:53
&gt; +void vclip(const float * sourceP, int sourceStride, const float* lowThresholdP, const float* highThresholdP, float* destP, int destStride, size_t framesToProcess);

style nit: &quot;float *&quot; -&gt; &quot;float*&quot;

&gt; ManualTests/webaudio/limit-level-0db.html:36
&gt; +    &lt;/p&gt;

Maybe update comment - Strictly speaking, you&apos;ll hear the &quot;clipping&quot;, thus the sine wave will be clipped into the form of a square wave, but it shouldn&apos;t get radically louder than the full-scale sine wave</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743183</commentid>
    <comment_count>9</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2012-10-16 08:51:34 -0700</bug_when>
    <thetext>Committed r131459: &lt;http://trac.webkit.org/changeset/131459&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162124</attachid>
            <date>2012-09-04 16:19:56 -0700</date>
            <delta_ts>2012-09-04 16:21:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95792-20120904161939.patch</filename>
            <type>text/plain</type>
            <size>6919</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4M2U0YjY4ZDZlNDcw
MmFiMjFlMzVkZjNmZjFhYWM4MjZlNWEyZC4uYTQzYWZiMjcyOTljOTVhNWQ3Nzc3ZThiNGYxZjk1
ZjU1NWY3ZjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBsaW1pdCBv
dXRwdXQgbGV2ZWwgdG8gMGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIHBlYWstbGltaXRpbmcgQXVkaW9Vbml0IGJlZm9yZSB0aGUgb3V0cHV0
IHVuaXQsIGFuZCBzZXQgdGhlCisgICAgICAgIGxpbWl0IHRvIDBkYi4gVGhpcyBlbnN1cmVzIHRo
YXQgbWFsaWNpb3VzIG9yIHBvb3JseS13cml0dGVuIHBhZ2VzCisgICAgICAgIHdpbGwgbm90IGJl
IGFibGUgdG8gYmxvdyB0aHJvdWdoIHRoZSBzeXN0ZW0gdm9sdW1lIGxpbWl0IGJ5IGNyZWF0aW5n
CisgICAgICAgID4wZGIgYnVmZmVycyBhbmQgZWZmZWN0cy4KKworICAgICAgICBObyBuZXcgdGVz
dHM7IGFkZGVkIE1hbnVhbFRlc3RzL3dlYmF1ZGlvL2xpbWl0LWxldmVsLTBkYi5odG1sLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6QXVkaW9EZXN0aW5hdGlvbk1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTWFjOjp+QXVkaW9EZXN0aW5hdGlv
bk1hYyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTWFjOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmg6CisK
IDIwMTItMDgtMzAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBN
YWtlIFJlbmRlckJveDo6Y29tcHV0ZUlubGluZURpcmVjdGlvbk1hcmdpbnMgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9u
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0
aW9uTWFjLmNwcAppbmRleCA5NWQyZWIzM2U0NDM5OTFmZTlmZTdkZTYxZjUxNjI3NWI3NzA3NmZj
Li5kNGQ1MzM1N2FhODFkZWExMWY4YjVjODUwNDIyNWU5NzMwNmRiMDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25N
YWMuY3BwCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGlu
dCBrQnVmZmVyU2l6ZSA9IDEyODsKK2NvbnN0IEZsb2F0MzIga1BlYWtEQkxpbWl0ID0gMDsKIAog
Ly8gRmFjdG9yeSBtZXRob2Q6IE1hYy1pbXBsZW1lbnRhdGlvbgogUGFzc093blB0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTk0LDYgKzk1LDE3IEBAIEF1ZGlvRGVzdGluYXRp
b25NYWM6OkF1ZGlvRGVzdGluYXRpb25NYWMoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxv
YXQgc2FtcGxlCiAgICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQp
OwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAorICAgIGRlc2MuY29tcG9uZW50VHlwZSA9IGtBdWRp
b1VuaXRUeXBlX0VmZmVjdDsKKyAgICBkZXNjLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0
U3ViVHlwZV9QZWFrTGltaXRlcjsKKyAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgw
LCAmZGVzYyk7CisgICAgQVNTRVJUKGNvbXApOworCisgICAgcmVzdWx0ID0gQXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldyhjb21wLCAmbV9wZWFrTGltaXRlcik7CisgICAgQVNTRVJUKCFyZXN1bHQp
OworCisgICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX3BlYWtMaW1pdGVyKTsKKyAg
ICBBU1NFUlQoIXJlc3VsdCk7CisKICAgICBjb25maWd1cmUoKTsKIH0KIApAQCAtMTAxLDYgKzEx
Myw5IEBAIEF1ZGlvRGVzdGluYXRpb25NYWM6On5BdWRpb0Rlc3RpbmF0aW9uTWFjKCkKIHsKICAg
ICBpZiAobV9vdXRwdXRVbml0KQogICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX291dHB1dFVuaXQpOworCisgICAgaWYgKG1fcGVha0xpbWl0ZXIpCisgICAgICAgIEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcGVha0xpbWl0ZXIpOwogfQogCiB2b2lkIEF1ZGlv
RGVzdGluYXRpb25NYWM6OmNvbmZpZ3VyZSgpCkBAIC0xMDksNyArMTI0LDcgQEAgdm9pZCBBdWRp
b0Rlc3RpbmF0aW9uTWFjOjpjb25maWd1cmUoKQogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3Qg
aW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0
UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAg
T1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9wZWFrTGltaXRlciwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFs
LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAg
IC8vIFNldCBzdHJlYW0gZm9ybWF0CkBAIC0xMzAsNiArMTQ1LDE2IEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbk1hYzo6Y29uZmlndXJlKCkKICAgICBVSW50MzIgYnVmZmVyU2l6ZSA9IGtCdWZmZXJT
aXplOwogICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNpemUsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQs
IDAsICh2b2lkKikmYnVmZmVyU2l6ZSwgc2l6ZW9mKGJ1ZmZlclNpemUpKTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CisKKyAgICAvLyBTZXQgdGhlIHZvbHVtZSBwZWFrIHRvIDBkYi4KKyAgICByZXN1
bHQgPSBBdWRpb1VuaXRTZXRQYXJhbWV0ZXIobV9wZWFrTGltaXRlciwga0xpbWl0ZXJQYXJhbV9Q
cmVHYWluLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCBrUGVha0RCTGltaXQsIDApOworCisg
ICAgLy8gQ29ubmVjdCB0aGUgcGVhayBsaW1pdGVyIHRvIHRoZSBvdXRwdXQgdW5pdAorICAgIEF1
ZGlvVW5pdENvbm5lY3Rpb24gbGltaXRlclRvT3V0cHV0OworICAgIGxpbWl0ZXJUb091dHB1dC5z
b3VyY2VBdWRpb1VuaXQgPSBtX3BlYWtMaW1pdGVyOworICAgIGxpbWl0ZXJUb091dHB1dC5zb3Vy
Y2VPdXRwdXROdW1iZXIgPSAwOworICAgIGxpbWl0ZXJUb091dHB1dC5kZXN0SW5wdXROdW1iZXIg
PSAwOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X01ha2VDb25uZWN0aW9uLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZsaW1pdGVyVG9PdXRwdXQsIHNpemVvZihsaW1pdGVyVG9PdXRwdXQpKTsKIH0KIAogdm9pZCBB
dWRpb0Rlc3RpbmF0aW9uTWFjOjpzdGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAppbmRleCAxZjAxMDhmNjM3
OTkxYTNiZjYyYjFlZjAyZmQ1YjBhZDVlZGY0NTk2Li5lY2JlNzdkNzAyYWE5YTQyNjQyNzFlYWEx
MGM1MTcyNDNhN2ZkMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0
ZToKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZl
ckxpc3QqIGlvRGF0YSk7CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OworICAgIEF1ZGlv
VW5pdCBtX3BlYWtMaW1pdGVyOwogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKICAg
ICBBdWRpb0J1cyBtX3JlbmRlckJ1czsKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDQwMTk5ZDVlYzk5MzFkZjA4NmJkNjg3ZGYwNjk2MTU2ZDQ3YjY0MTUuLmUzOWIw
NDcxYjc5MjE5ZGE2MmUzYTVhNGVjMWU3MDk2YThhZGJkMmQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0wNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbzogbGltaXQgb3V0cHV0
IGxldmVsIHRvIDBkYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTU3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBtYW51YWwgdGVzdCB0byBkZXRlcm1pbmUgdGhhdCBvdXRwdXQgdm9sdW1lIGhh
cyBiZWVuIGxpbWl0ZWQgdG8gMGRiLgorCisgICAgICAgICogTWFudWFsVGVzdHMvd2ViYXVkaW8v
bGltaXQtbGV2ZWwtMGRiLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTI5ICBUaGlhZ28gTWFjaWVp
cmEgIDx0aGlhZ28ubWFjaWVpcmFAaW50ZWwuY29tPgogCiAgICAgICAgIFRlbGwgZ2l0LWFyY2hp
dmUgdG8gbm90IGV4cG9ydCAuZ2l0YXR0cmlidXRlcyBhbmQgLmdpdGlnbm9yZQpkaWZmIC0tZ2l0
IGEvTWFudWFsVGVzdHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwgYi9NYW51YWxUZXN0
cy93ZWJhdWRpby9saW1pdC1sZXZlbC0wZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzdkYzI5N2JjODJl
ODUxMGY3N2RlODQ5MDdhZDI2ZjZlZTIxYWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVz
dHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWIgQXVkaW8gU2FtcGxlPC90
aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoKTsKKyAgICAgICAgdmFyIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluTm9k
ZSgpOworICAgICAgICBnYWluTm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAg
ICAgICBnYWluTm9kZS5nYWluLnZhbHVlID0gMjsKKworICAgICAgICB2YXIgZnJlcXVlbmN5ID0g
MjAwMDA7CisgICAgICAgIHZhciBkdXJhdGlvbiA9IDEwMDA7CisgICAgCisgICAgICAgIGZ1bmN0
aW9uIHBsYXlOb3JtYWwoKSB7CisgICAgICAgICAgICB2YXIgb3NjaWxsYXRvciA9IGNvbnRleHQu
Y3JlYXRlT3NjaWxsYXRvcigpOworICAgICAgICAgICAgb3NjaWxsYXRvci5mcmVxdWVuY3kudmFs
dWUgPSBmcmVxdWVuY3k7CisgICAgICAgICAgICBvc2NpbGxhdG9yLnR5cGUgPSAwOworICAgICAg
ICAgICAgb3NjaWxsYXRvci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAgICAgICAg
ICAgb3NjaWxsYXRvci5ub3RlT24oMCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u
KCl7IG9zY2lsbGF0b3IuZGlzY29ubmVjdCgpOyB9LCBkdXJhdGlvbik7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZ1bmN0aW9uIHBsYXlMb3VkKCkgeworICAgICAgICAgICAgdmFyIG9z
Y2lsbGF0b3IgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKTsKKyAgICAgICAgICAgIG9zY2ls
bGF0b3IuZnJlcXVlbmN5LnZhbHVlID0gZnJlcXVlbmN5OworICAgICAgICAgICAgb3NjaWxsYXRv
ci50eXBlID0gMDsKKyAgICAgICAgICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWluTm9kZSk7Cisg
ICAgICAgICAgICBvc2NpbGxhdG9yLm5vdGVPbigwKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQo
ZnVuY3Rpb24oKXsgb3NjaWxsYXRvci5kaXNjb25uZWN0KCk7IH0sIGR1cmF0aW9uKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+CisgICAgICAgIFRo
aXMgdGVzdHMgdGhhdCBvdXRwdXQgYXVkaW8gaXMgY2xhbXBlZCB0byAwZGIgbWF4aW11bS4gIFBy
ZXNzIGVhY2ggYnV0dG9uIGJlbG93IGluIHR1cm4uICBUaGUgYXBwYXJlbnQgdm9sdW1lIGZvciBi
b3RoIHNob3VsZCBiZSBlcXVhbCwgZXZlbiB0aG91Z2ggdGhlIHNlY29uZCBidXR0b24gcGxheXMg
d2l0aCAyeCBnYWluIG9mIHRoZSBmaXJzdC4KKyAgICA8L3A+CisgICAgPGJ1dHRvbiBvbmNsaWNr
PSJwbGF5Tm9ybWFsKCkiPm5vcm1hbCB2b2x1bWU8L2J1dHRvbj48YnV0dG9uIG9uY2xpY2s9InBs
YXlMb3VkKCkiPmRvdWJsZSB2b2x1bWU8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162125</attachid>
            <date>2012-09-04 16:21:13 -0700</date>
            <delta_ts>2012-09-05 10:01:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95792-20120904162056.patch</filename>
            <type>text/plain</type>
            <size>6918</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4M2U0YjY4ZDZlNDcw
MmFiMjFlMzVkZjNmZjFhYWM4MjZlNWEyZC4uYTQzYWZiMjcyOTljOTVhNWQ3Nzc3ZThiNGYxZjk1
ZjU1NWY3ZjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBsaW1pdCBv
dXRwdXQgbGV2ZWwgdG8gMGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIHBlYWstbGltaXRpbmcgQXVkaW9Vbml0IGJlZm9yZSB0aGUgb3V0cHV0
IHVuaXQsIGFuZCBzZXQgdGhlCisgICAgICAgIGxpbWl0IHRvIDBkYi4gVGhpcyBlbnN1cmVzIHRo
YXQgbWFsaWNpb3VzIG9yIHBvb3JseS13cml0dGVuIHBhZ2VzCisgICAgICAgIHdpbGwgbm90IGJl
IGFibGUgdG8gYmxvdyB0aHJvdWdoIHRoZSBzeXN0ZW0gdm9sdW1lIGxpbWl0IGJ5IGNyZWF0aW5n
CisgICAgICAgID4wZGIgYnVmZmVycyBhbmQgZWZmZWN0cy4KKworICAgICAgICBObyBuZXcgdGVz
dHM7IGFkZGVkIE1hbnVhbFRlc3RzL3dlYmF1ZGlvL2xpbWl0LWxldmVsLTBkYi5odG1sLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9EZXN0aW5hdGlvbk1hYzo6QXVkaW9EZXN0aW5hdGlvbk1hYyk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTWFjOjp+QXVkaW9EZXN0aW5hdGlv
bk1hYyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uTWFjOjpjb25maWd1cmUp
OgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmg6CisK
IDIwMTItMDgtMzAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBN
YWtlIFJlbmRlckJveDo6Y29tcHV0ZUlubGluZURpcmVjdGlvbk1hcmdpbnMgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9u
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0
aW9uTWFjLmNwcAppbmRleCA5NWQyZWIzM2U0NDM5OTFmZTlmZTdkZTYxZjUxNjI3NWI3NzA3NmZj
Li5kNGQ1MzM1N2FhODFkZWExMWY4YjVjODUwNDIyNWU5NzMwNmRiMDVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25N
YWMuY3BwCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGlu
dCBrQnVmZmVyU2l6ZSA9IDEyODsKK2NvbnN0IEZsb2F0MzIga1BlYWtEQkxpbWl0ID0gMDsKIAog
Ly8gRmFjdG9yeSBtZXRob2Q6IE1hYy1pbXBsZW1lbnRhdGlvbgogUGFzc093blB0cjxBdWRpb0Rl
c3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9uOjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxs
YmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAgLTk0LDYgKzk1LDE3IEBAIEF1ZGlvRGVzdGluYXRp
b25NYWM6OkF1ZGlvRGVzdGluYXRpb25NYWMoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxv
YXQgc2FtcGxlCiAgICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX291dHB1dFVuaXQp
OwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAorICAgIGRlc2MuY29tcG9uZW50VHlwZSA9IGtBdWRp
b1VuaXRUeXBlX0VmZmVjdDsKKyAgICBkZXNjLmNvbXBvbmVudFN1YlR5cGUgPSBrQXVkaW9Vbml0
U3ViVHlwZV9QZWFrTGltaXRlcjsKKyAgICBjb21wID0gQXVkaW9Db21wb25lbnRGaW5kTmV4dCgw
LCAmZGVzYyk7CisgICAgQVNTRVJUKGNvbXApOworCisgICAgcmVzdWx0ID0gQXVkaW9Db21wb25l
bnRJbnN0YW5jZU5ldyhjb21wLCAmbV9wZWFrTGltaXRlcik7CisgICAgQVNTRVJUKCFyZXN1bHQp
OworCisgICAgcmVzdWx0ID0gQXVkaW9Vbml0SW5pdGlhbGl6ZShtX3BlYWtMaW1pdGVyKTsKKyAg
ICBBU1NFUlQoIXJlc3VsdCk7CisKICAgICBjb25maWd1cmUoKTsKIH0KIApAQCAtMTAxLDYgKzEx
Myw5IEBAIEF1ZGlvRGVzdGluYXRpb25NYWM6On5BdWRpb0Rlc3RpbmF0aW9uTWFjKCkKIHsKICAg
ICBpZiAobV9vdXRwdXRVbml0KQogICAgICAgICBBdWRpb0NvbXBvbmVudEluc3RhbmNlRGlzcG9z
ZShtX291dHB1dFVuaXQpOworCisgICAgaWYgKG1fcGVha0xpbWl0ZXIpCisgICAgICAgIEF1ZGlv
Q29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fcGVha0xpbWl0ZXIpOwogfQogCiB2b2lkIEF1ZGlv
RGVzdGluYXRpb25NYWM6OmNvbmZpZ3VyZSgpCkBAIC0xMDksNyArMTI0LDcgQEAgdm9pZCBBdWRp
b0Rlc3RpbmF0aW9uTWFjOjpjb25maWd1cmUoKQogICAgIEFVUmVuZGVyQ2FsbGJhY2tTdHJ1Y3Qg
aW5wdXQ7CiAgICAgaW5wdXQuaW5wdXRQcm9jID0gaW5wdXRQcm9jOwogICAgIGlucHV0LmlucHV0
UHJvY1JlZkNvbiA9IHRoaXM7Ci0gICAgT1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJv
cGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVuZGVyQ2FsbGJhY2ss
IGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlucHV0KSk7CisgICAg
T1NTdGF0dXMgcmVzdWx0ID0gQXVkaW9Vbml0U2V0UHJvcGVydHkobV9wZWFrTGltaXRlciwga0F1
ZGlvVW5pdFByb3BlcnR5X1NldFJlbmRlckNhbGxiYWNrLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFs
LCAwLCAmaW5wdXQsIHNpemVvZihpbnB1dCkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKIAogICAg
IC8vIFNldCBzdHJlYW0gZm9ybWF0CkBAIC0xMzAsNiArMTQ1LDE2IEBAIHZvaWQgQXVkaW9EZXN0
aW5hdGlvbk1hYzo6Y29uZmlndXJlKCkKICAgICBVSW50MzIgYnVmZmVyU2l6ZSA9IGtCdWZmZXJT
aXplOwogICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvRGV2aWNlUHJvcGVydHlCdWZmZXJGcmFtZVNpemUsIGtBdWRpb1VuaXRTY29wZV9PdXRwdXQs
IDAsICh2b2lkKikmYnVmZmVyU2l6ZSwgc2l6ZW9mKGJ1ZmZlclNpemUpKTsKICAgICBBU1NFUlQo
IXJlc3VsdCk7CisKKyAgICAvLyBTZXQgdGhlIHZvbHVtZSBwZWFrIHRvIDBkYi4KKyAgICByZXN1
bHQgPSBBdWRpb1VuaXRTZXRQYXJhbWV0ZXIobV9wZWFrTGltaXRlciwga0xpbWl0ZXJQYXJhbV9Q
cmVHYWluLCBrQXVkaW9Vbml0U2NvcGVfR2xvYmFsLCAwLCBrUGVha0RCTGltaXQsIDApOworCisg
ICAgLy8gQ29ubmVjdCB0aGUgcGVhayBsaW1pdGVyIHRvIHRoZSBvdXRwdXQgdW5pdAorICAgIEF1
ZGlvVW5pdENvbm5lY3Rpb24gbGltaXRlclRvT3V0cHV0OworICAgIGxpbWl0ZXJUb091dHB1dC5z
b3VyY2VBdWRpb1VuaXQgPSBtX3BlYWtMaW1pdGVyOworICAgIGxpbWl0ZXJUb091dHB1dC5zb3Vy
Y2VPdXRwdXROdW1iZXIgPSAwOworICAgIGxpbWl0ZXJUb091dHB1dC5kZXN0SW5wdXROdW1iZXIg
PSAwOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X01ha2VDb25uZWN0aW9uLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZsaW1pdGVyVG9PdXRwdXQsIHNpemVvZihsaW1pdGVyVG9PdXRwdXQpKTsKIH0KIAogdm9pZCBB
dWRpb0Rlc3RpbmF0aW9uTWFjOjpzdGFydCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAppbmRleCAxZjAxMDhmNjM3
OTkxYTNiZjYyYjFlZjAyZmQ1YjBhZDVlZGY0NTk2Li5lY2JlNzdkNzAyYWE5YTQyNjQyNzFlYWEx
MGM1MTcyNDNhN2ZkMGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHJpdmF0
ZToKICAgICBPU1N0YXR1cyByZW5kZXIoVUludDMyIG51bWJlck9mRnJhbWVzLCBBdWRpb0J1ZmZl
ckxpc3QqIGlvRGF0YSk7CiAKICAgICBBdWRpb1VuaXQgbV9vdXRwdXRVbml0OworICAgIEF1ZGlv
VW5pdCBtX3BlYWtMaW1pdGVyOwogICAgIEF1ZGlvSU9DYWxsYmFjayYgbV9jYWxsYmFjazsKICAg
ICBBdWRpb0J1cyBtX3JlbmRlckJ1czsKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IDQwMTk5ZDVlYzk5MzFkZjA4NmJkNjg3ZGYwNjk2MTU2ZDQ3YjY0MTUuLmUzOWIw
NDcxYjc5MjE5ZGE2MmUzYTVhNGVjMWU3MDk2YThhZGJkMmQgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0wNCAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJBdWRpbzogbGltaXQgb3V0cHV0
IGxldmVsIHRvIDBkYgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTU3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBtYW51YWwgdGVzdCB0byBkZXRlcm1pbmUgdGhhdCBvdXRwdXQgdm9sdW1lIGhh
cyBiZWVuIGxpbWl0ZWQgdG8gMGRiLgorCisgICAgICAgICogTWFudWFsVGVzdHMvd2ViYXVkaW8v
bGltaXQtbGV2ZWwtMGRiLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTI5ICBUaGlhZ28gTWFjaWVp
cmEgIDx0aGlhZ28ubWFjaWVpcmFAaW50ZWwuY29tPgogCiAgICAgICAgIFRlbGwgZ2l0LWFyY2hp
dmUgdG8gbm90IGV4cG9ydCAuZ2l0YXR0cmlidXRlcyBhbmQgLmdpdGlnbm9yZQpkaWZmIC0tZ2l0
IGEvTWFudWFsVGVzdHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwgYi9NYW51YWxUZXN0
cy93ZWJhdWRpby9saW1pdC1sZXZlbC0wZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTNjNzBkYTg0N2Jk
ZGYwODIwMDJjNWU4MmM5N2UyYWQ5OWYyYjIyCi0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVz
dHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWIgQXVkaW8gU2FtcGxlPC90
aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoKTsKKyAgICAgICAgdmFyIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluTm9k
ZSgpOworICAgICAgICBnYWluTm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAg
ICAgICBnYWluTm9kZS5nYWluLnZhbHVlID0gMjsKKworICAgICAgICB2YXIgZnJlcXVlbmN5ID0g
MTAwMDsKKyAgICAgICAgdmFyIGR1cmF0aW9uID0gMTAwMDsKKyAgICAKKyAgICAgICAgZnVuY3Rp
b24gcGxheU5vcm1hbCgpIHsKKyAgICAgICAgICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4dC5j
cmVhdGVPc2NpbGxhdG9yKCk7CisgICAgICAgICAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS52YWx1
ZSA9IGZyZXF1ZW5jeTsKKyAgICAgICAgICAgIG9zY2lsbGF0b3IudHlwZSA9IDA7CisgICAgICAg
ICAgICBvc2NpbGxhdG9yLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgICAgICAg
ICBvc2NpbGxhdG9yLm5vdGVPbigwKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KXsgb3NjaWxsYXRvci5kaXNjb25uZWN0KCk7IH0sIGR1cmF0aW9uKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZnVuY3Rpb24gcGxheUxvdWQoKSB7CisgICAgICAgICAgICB2YXIgb3Nj
aWxsYXRvciA9IGNvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpOworICAgICAgICAgICAgb3NjaWxs
YXRvci5mcmVxdWVuY3kudmFsdWUgPSBmcmVxdWVuY3k7CisgICAgICAgICAgICBvc2NpbGxhdG9y
LnR5cGUgPSAwOworICAgICAgICAgICAgb3NjaWxsYXRvci5jb25uZWN0KGdhaW5Ob2RlKTsKKyAg
ICAgICAgICAgIG9zY2lsbGF0b3Iubm90ZU9uKDApOworICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpeyBvc2NpbGxhdG9yLmRpc2Nvbm5lY3QoKTsgfSwgZHVyYXRpb24pOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD4KKyAgICAgICAgVGhp
cyB0ZXN0cyB0aGF0IG91dHB1dCBhdWRpbyBpcyBjbGFtcGVkIHRvIDBkYiBtYXhpbXVtLiAgUHJl
c3MgZWFjaCBidXR0b24gYmVsb3cgaW4gdHVybi4gIFRoZSBhcHBhcmVudCB2b2x1bWUgZm9yIGJv
dGggc2hvdWxkIGJlIGVxdWFsLCBldmVuIHRob3VnaCB0aGUgc2Vjb25kIGJ1dHRvbiBwbGF5cyB3
aXRoIDJ4IGdhaW4gb2YgdGhlIGZpcnN0LgorICAgIDwvcD4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
InBsYXlOb3JtYWwoKSI+bm9ybWFsIHZvbHVtZTwvYnV0dG9uPjxidXR0b24gb25jbGljaz0icGxh
eUxvdWQoKSI+ZG91YmxlIHZvbHVtZTwvYnV0dG9uPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162273</attachid>
            <date>2012-09-05 10:01:59 -0700</date>
            <delta_ts>2012-10-15 13:39:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95792-20120905100141.patch</filename>
            <type>text/plain</type>
            <size>7032</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4M2U0YjY4ZDZlNDcw
MmFiMjFlMzVkZjNmZjFhYWM4MjZlNWEyZC4uMDc4OTllY2JkYmJmN2E1MWQ4YmI1ZDFmYTJhZjEw
MTM1YTAzOGJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA5LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBsaW1pdCBv
dXRwdXQgbGV2ZWwgdG8gMGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTE5NjYxMzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcGVhay1s
aW1pdGluZyBBdWRpb1VuaXQgYmVmb3JlIHRoZSBvdXRwdXQgdW5pdCwgYW5kIHNldCB0aGUKKyAg
ICAgICAgbGltaXQgdG8gMGRiLiBUaGlzIGVuc3VyZXMgdGhhdCBtYWxpY2lvdXMgb3IgcG9vcmx5
LXdyaXR0ZW4gcGFnZXMKKyAgICAgICAgd2lsbCBub3QgYmUgYWJsZSB0byBibG93IHRocm91Z2gg
dGhlIHN5c3RlbSB2b2x1bWUgbGltaXQgYnkgY3JlYXRpbmcKKyAgICAgICAgPjBkYiBidWZmZXJz
IGFuZCBlZmZlY3RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgYWRkZWQgTWFudWFsVGVzdHMv
d2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRp
by9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rl
c3RpbmF0aW9uTWFjOjpBdWRpb0Rlc3RpbmF0aW9uTWFjKToKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvRGVzdGluYXRpb25NYWM6On5BdWRpb0Rlc3RpbmF0aW9uTWFjKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvRGVzdGluYXRpb25NYWM6OmNvbmZpZ3VyZSk6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaDoKKwogMjAxMi0wOC0zMCAgVG9ueSBDaGFu
ZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgUmVuZGVyQm94Ojpjb21wdXRl
SW5saW5lRGlyZWN0aW9uTWFyZ2lucyBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3BwCmluZGV4IDk1ZDJl
YjMzZTQ0Mzk5MWZlOWZlN2RlNjFmNTE2Mjc1Yjc3MDc2ZmMuLjU3YTljNjE0ZDJjOTFiYjBjYzc0
MzViNGI4NGEwYTM3NGI0ZjU1M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IGtCdWZmZXJTaXplID0gMTI4Owor
Y29uc3QgRmxvYXQzMiBrUGVha0RCTGltaXQgPSAwOwogCiAvLyBGYWN0b3J5IG1ldGhvZDogTWFj
LWltcGxlbWVudGF0aW9uCiBQYXNzT3duUHRyPEF1ZGlvRGVzdGluYXRpb24+IEF1ZGlvRGVzdGlu
YXRpb246OmNyZWF0ZShBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGVSYXRl
KQpAQCAtOTQsNiArOTUsMTcgQEAgQXVkaW9EZXN0aW5hdGlvbk1hYzo6QXVkaW9EZXN0aW5hdGlv
bk1hYyhBdWRpb0lPQ2FsbGJhY2smIGNhbGxiYWNrLCBmbG9hdCBzYW1wbGUKICAgICByZXN1bHQg
PSBBdWRpb1VuaXRJbml0aWFsaXplKG1fb3V0cHV0VW5pdCk7CiAgICAgQVNTRVJUKCFyZXN1bHQp
OwogCisgICAgZGVzYy5jb21wb25lbnRUeXBlID0ga0F1ZGlvVW5pdFR5cGVfRWZmZWN0OworICAg
IGRlc2MuY29tcG9uZW50U3ViVHlwZSA9IGtBdWRpb1VuaXRTdWJUeXBlX1BlYWtMaW1pdGVyOwor
ICAgIGNvbXAgPSBBdWRpb0NvbXBvbmVudEZpbmROZXh0KDAsICZkZXNjKTsKKyAgICBBU1NFUlQo
Y29tcCk7CisKKyAgICByZXN1bHQgPSBBdWRpb0NvbXBvbmVudEluc3RhbmNlTmV3KGNvbXAsICZt
X3BlYWtMaW1pdGVyKTsKKyAgICBBU1NFUlQoIXJlc3VsdCk7CisKKyAgICByZXN1bHQgPSBBdWRp
b1VuaXRJbml0aWFsaXplKG1fcGVha0xpbWl0ZXIpOworICAgIEFTU0VSVCghcmVzdWx0KTsKKwog
ICAgIGNvbmZpZ3VyZSgpOwogfQogCkBAIC0xMDEsNiArMTEzLDkgQEAgQXVkaW9EZXN0aW5hdGlv
bk1hYzo6fkF1ZGlvRGVzdGluYXRpb25NYWMoKQogewogICAgIGlmIChtX291dHB1dFVuaXQpCiAg
ICAgICAgIEF1ZGlvQ29tcG9uZW50SW5zdGFuY2VEaXNwb3NlKG1fb3V0cHV0VW5pdCk7CisKKyAg
ICBpZiAobV9wZWFrTGltaXRlcikKKyAgICAgICAgQXVkaW9Db21wb25lbnRJbnN0YW5jZURpc3Bv
c2UobV9wZWFrTGltaXRlcik7CiB9CiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk1hYzo6Y29uZmln
dXJlKCkKQEAgLTEwOSw3ICsxMjQsNyBAQCB2b2lkIEF1ZGlvRGVzdGluYXRpb25NYWM6OmNvbmZp
Z3VyZSgpCiAgICAgQVVSZW5kZXJDYWxsYmFja1N0cnVjdCBpbnB1dDsKICAgICBpbnB1dC5pbnB1
dFByb2MgPSBpbnB1dFByb2M7CiAgICAgaW5wdXQuaW5wdXRQcm9jUmVmQ29uID0gdGhpczsKLSAg
ICBPU1N0YXR1cyByZXN1bHQgPSBBdWRpb1VuaXRTZXRQcm9wZXJ0eShtX291dHB1dFVuaXQsIGtB
dWRpb1VuaXRQcm9wZXJ0eV9TZXRSZW5kZXJDYWxsYmFjaywga0F1ZGlvVW5pdFNjb3BlX0dsb2Jh
bCwgMCwgJmlucHV0LCBzaXplb2YoaW5wdXQpKTsKKyAgICBPU1N0YXR1cyByZXN1bHQgPSBBdWRp
b1VuaXRTZXRQcm9wZXJ0eShtX3BlYWtMaW1pdGVyLCBrQXVkaW9Vbml0UHJvcGVydHlfU2V0UmVu
ZGVyQ2FsbGJhY2ssIGtBdWRpb1VuaXRTY29wZV9HbG9iYWwsIDAsICZpbnB1dCwgc2l6ZW9mKGlu
cHV0KSk7CiAgICAgQVNTRVJUKCFyZXN1bHQpOwogCiAgICAgLy8gU2V0IHN0cmVhbSBmb3JtYXQK
QEAgLTEzMCw2ICsxNDUsMTggQEAgdm9pZCBBdWRpb0Rlc3RpbmF0aW9uTWFjOjpjb25maWd1cmUo
KQogICAgIFVJbnQzMiBidWZmZXJTaXplID0ga0J1ZmZlclNpemU7CiAgICAgcmVzdWx0ID0gQXVk
aW9Vbml0U2V0UHJvcGVydHkobV9vdXRwdXRVbml0LCBrQXVkaW9EZXZpY2VQcm9wZXJ0eUJ1ZmZl
ckZyYW1lU2l6ZSwga0F1ZGlvVW5pdFNjb3BlX091dHB1dCwgMCwgKHZvaWQqKSZidWZmZXJTaXpl
LCBzaXplb2YoYnVmZmVyU2l6ZSkpOwogICAgIEFTU0VSVCghcmVzdWx0KTsKKworICAgIC8vIFNl
dCB0aGUgdm9sdW1lIHBlYWsgdG8gMGRiLgorICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFBhcmFt
ZXRlcihtX3BlYWtMaW1pdGVyLCBrTGltaXRlclBhcmFtX1ByZUdhaW4sIGtBdWRpb1VuaXRTY29w
ZV9HbG9iYWwsIDAsIGtQZWFrREJMaW1pdCwgMCk7CisgICAgQVNTRVJUKCFyZXN1bHQpOworCisg
ICAgLy8gQ29ubmVjdCB0aGUgcGVhayBsaW1pdGVyIHRvIHRoZSBvdXRwdXQgdW5pdAorICAgIEF1
ZGlvVW5pdENvbm5lY3Rpb24gbGltaXRlclRvT3V0cHV0OworICAgIGxpbWl0ZXJUb091dHB1dC5z
b3VyY2VBdWRpb1VuaXQgPSBtX3BlYWtMaW1pdGVyOworICAgIGxpbWl0ZXJUb091dHB1dC5zb3Vy
Y2VPdXRwdXROdW1iZXIgPSAwOworICAgIGxpbWl0ZXJUb091dHB1dC5kZXN0SW5wdXROdW1iZXIg
PSAwOworICAgIHJlc3VsdCA9IEF1ZGlvVW5pdFNldFByb3BlcnR5KG1fb3V0cHV0VW5pdCwga0F1
ZGlvVW5pdFByb3BlcnR5X01ha2VDb25uZWN0aW9uLCBrQXVkaW9Vbml0U2NvcGVfSW5wdXQsIDAs
ICZsaW1pdGVyVG9PdXRwdXQsIHNpemVvZihsaW1pdGVyVG9PdXRwdXQpKTsKKyAgICBBU1NFUlQo
IXJlc3VsdCk7CiB9CiAKIHZvaWQgQXVkaW9EZXN0aW5hdGlvbk1hYzo6c3RhcnQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25N
YWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9u
TWFjLmgKaW5kZXggMWYwMTA4ZjYzNzk5MWEzYmY2MmIxZWYwMmZkNWIwYWQ1ZWRmNDU5Ni4uZWNi
ZTc3ZDcwMmFhOWE0MjY0MjcxZWFhMTBjNTE3MjQzYTdmZDBmMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5oCkBA
IC01Nyw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgT1NTdGF0dXMgcmVuZGVyKFVJbnQzMiBudW1i
ZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0RhdGEpOwogCiAgICAgQXVkaW9Vbml0IG1f
b3V0cHV0VW5pdDsKKyAgICBBdWRpb1VuaXQgbV9wZWFrTGltaXRlcjsKICAgICBBdWRpb0lPQ2Fs
bGJhY2smIG1fY2FsbGJhY2s7CiAgICAgQXVkaW9CdXMgbV9yZW5kZXJCdXM7CiAKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0MDE5OWQ1ZWM5OTMxZGYwODZiZDY4N2Rm
MDY5NjE1NmQ0N2I2NDE1Li42Y2U5ZDc2M2Q5Y2FhMTRhN2QwOTgxYjVkNTJiODVlNmUwMDhjZjIw
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDktMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViQXVkaW86IGxpbWl0IG91dHB1dCBsZXZlbCB0byAwZGIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NzkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMTk2NjEzNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYSBtYW51YWwgdGVzdCB0byBkZXRlcm1pbmUgdGhhdCBvdXRwdXQgdm9sdW1lIGhh
cyBiZWVuIGxpbWl0ZWQgdG8gMGRiLgorCisgICAgICAgICogTWFudWFsVGVzdHMvd2ViYXVkaW8v
bGltaXQtbGV2ZWwtMGRiLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTI5ICBUaGlhZ28gTWFjaWVp
cmEgIDx0aGlhZ28ubWFjaWVpcmFAaW50ZWwuY29tPgogCiAgICAgICAgIFRlbGwgZ2l0LWFyY2hp
dmUgdG8gbm90IGV4cG9ydCAuZ2l0YXR0cmlidXRlcyBhbmQgLmdpdGlnbm9yZQpkaWZmIC0tZ2l0
IGEvTWFudWFsVGVzdHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwgYi9NYW51YWxUZXN0
cy93ZWJhdWRpby9saW1pdC1sZXZlbC0wZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTNjNzBkYTg0N2Jk
ZGYwODIwMDJjNWU4MmM5N2UyYWQ5OWYyYjIyCi0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVz
dHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5XZWIgQXVkaW8gU2FtcGxlPC90
aXRsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoKTsKKyAgICAgICAgdmFyIGdhaW5Ob2RlID0gY29udGV4dC5jcmVhdGVHYWluTm9k
ZSgpOworICAgICAgICBnYWluTm9kZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAg
ICAgICBnYWluTm9kZS5nYWluLnZhbHVlID0gMjsKKworICAgICAgICB2YXIgZnJlcXVlbmN5ID0g
MTAwMDsKKyAgICAgICAgdmFyIGR1cmF0aW9uID0gMTAwMDsKKyAgICAKKyAgICAgICAgZnVuY3Rp
b24gcGxheU5vcm1hbCgpIHsKKyAgICAgICAgICAgIHZhciBvc2NpbGxhdG9yID0gY29udGV4dC5j
cmVhdGVPc2NpbGxhdG9yKCk7CisgICAgICAgICAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS52YWx1
ZSA9IGZyZXF1ZW5jeTsKKyAgICAgICAgICAgIG9zY2lsbGF0b3IudHlwZSA9IDA7CisgICAgICAg
ICAgICBvc2NpbGxhdG9yLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgICAgICAg
ICBvc2NpbGxhdG9yLm5vdGVPbigwKTsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KXsgb3NjaWxsYXRvci5kaXNjb25uZWN0KCk7IH0sIGR1cmF0aW9uKTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZnVuY3Rpb24gcGxheUxvdWQoKSB7CisgICAgICAgICAgICB2YXIgb3Nj
aWxsYXRvciA9IGNvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpOworICAgICAgICAgICAgb3NjaWxs
YXRvci5mcmVxdWVuY3kudmFsdWUgPSBmcmVxdWVuY3k7CisgICAgICAgICAgICBvc2NpbGxhdG9y
LnR5cGUgPSAwOworICAgICAgICAgICAgb3NjaWxsYXRvci5jb25uZWN0KGdhaW5Ob2RlKTsKKyAg
ICAgICAgICAgIG9zY2lsbGF0b3Iubm90ZU9uKDApOworICAgICAgICAgICAgc2V0VGltZW91dChm
dW5jdGlvbigpeyBvc2NpbGxhdG9yLmRpc2Nvbm5lY3QoKTsgfSwgZHVyYXRpb24pOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD4KKyAgICAgICAgVGhp
cyB0ZXN0cyB0aGF0IG91dHB1dCBhdWRpbyBpcyBjbGFtcGVkIHRvIDBkYiBtYXhpbXVtLiAgUHJl
c3MgZWFjaCBidXR0b24gYmVsb3cgaW4gdHVybi4gIFRoZSBhcHBhcmVudCB2b2x1bWUgZm9yIGJv
dGggc2hvdWxkIGJlIGVxdWFsLCBldmVuIHRob3VnaCB0aGUgc2Vjb25kIGJ1dHRvbiBwbGF5cyB3
aXRoIDJ4IGdhaW4gb2YgdGhlIGZpcnN0LgorICAgIDwvcD4KKyAgICA8YnV0dG9uIG9uY2xpY2s9
InBsYXlOb3JtYWwoKSI+bm9ybWFsIHZvbHVtZTwvYnV0dG9uPjxidXR0b24gb25jbGljaz0icGxh
eUxvdWQoKSI+ZG91YmxlIHZvbHVtZTwvYnV0dG9uPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168771</attachid>
            <date>2012-10-15 13:39:19 -0700</date>
            <delta_ts>2012-10-15 17:40:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95792-20121015133809.patch</filename>
            <type>text/plain</type>
            <size>7612</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlhM2I4MmM4MDE2ZTc4
NWUyMmIxZWMyYjUzOTBkZmQzZjYyNmJiOS4uZmVkOTZjYjU5ZTc0ZTU3ZGRjMjk5YTgyNGRmODg2
MDc3MjYxZmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEwLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBsaW1pdCBv
dXRwdXQgbGV2ZWwgdG8gMGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTE5NjYxMzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcGVhay1s
aW1pdGluZyBBdWRpb1VuaXQgYmVmb3JlIHRoZSBvdXRwdXQgdW5pdCwgYW5kIHNldCB0aGUKKyAg
ICAgICAgbGltaXQgdG8gMGRiLiBUaGlzIGVuc3VyZXMgdGhhdCBtYWxpY2lvdXMgb3IgcG9vcmx5
LXdyaXR0ZW4gcGFnZXMKKyAgICAgICAgd2lsbCBub3QgYmUgYWJsZSB0byBibG93IHRocm91Z2gg
dGhlIHN5c3RlbSB2b2x1bWUgbGltaXQgYnkgY3JlYXRpbmcKKyAgICAgICAgPjBkYiBidWZmZXJz
IGFuZCBlZmZlY3RzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgYWRkZWQgTWFudWFsVGVzdHMv
d2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwuCisKKyAgICAgICAgQ2xhbXAgdGhlIG91dHB1
dCB2ZWN0b3IgdG8gdmFsdWVzIG9mIFstMSwxXToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9t
YWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3Rp
bmF0aW9uTWFjOjpyZW5kZXIpOgorCisgICAgICAgIEFkZCBhIFZlY3Rvck1hdGggd3JhcHBlciBm
b3IgdkRTUF9jbGlwIHRvIHByb3ZpZGUgYWNjZWxlcmF0ZWQgdmVjdG9yIHRocmVzaG9sZCBvcGVy
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcDoKKyAgICAgICAgKFZlY3Rvck1hdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6VmVjdG9yTWF0aDo6dmNsaXApOgorCiAyMDEyLTEwLTAxICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBMU0tEIHN1cHBvcnQg
dG8gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vVmVjdG9yTWF0aC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcAppbmRleCAzNDU3OTk1ZmFkMmNmMTQzOGY4NjgzY2U1
MzUyNjA5NDNiNWU4YWNjLi44MzQ5YTYxY2VjNDcwY2UyMTJmMzM5YjY4NGJlN2M2YjgzNzdkMmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmNwcApAQCAt
MTExLDYgKzExMSwxMSBAQCB2b2lkIHZzdmVzcShjb25zdCBmbG9hdCogc291cmNlUCwgaW50IHNv
dXJjZVN0cmlkZSwgZmxvYXQqIHN1bVAsIHNpemVfdCBmcmFtZXNUbwogewogICAgIHZEU1Bfc3Zl
c3EoY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVApLCBzb3VyY2VTdHJpZGUsIHN1bVAsIGZyYW1l
c1RvUHJvY2Vzcyk7CiB9CisKK3ZvaWQgdmNsaXAoY29uc3QgZmxvYXQgKiBzb3VyY2VQLCBpbnQg
c291cmNlU3RyaWRlLCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgY29uc3QgZmxvYXQqIGhp
Z2hUaHJlc2hvbGRQLCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQoreworICAgIHZEU1BfdmNsaXAoY29uc3RfY2FzdDxmbG9hdCo+KHNvdXJjZVAp
LCBzb3VyY2VTdHJpZGUsIGNvbnN0X2Nhc3Q8ZmxvYXQqPihsb3dUaHJlc2hvbGRQKSwgY29uc3Rf
Y2FzdDxmbG9hdCo+KGhpZ2hUaHJlc2hvbGRQKSwgZGVzdFAsIGRlc3RTdHJpZGUsIGZyYW1lc1Rv
UHJvY2Vzcyk7Cit9CiAjZWxzZQogCiB2b2lkIHZzbWEoY29uc3QgZmxvYXQqIHNvdXJjZVAsIGlu
dCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBzY2FsZSwgZmxvYXQqIGRlc3RQLCBpbnQgZGVz
dFN0cmlkZSwgc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKQEAgLTY0Miw2ICs2NDcsMjIgQEAgdm9p
ZCB2bWF4bWd2KGNvbnN0IGZsb2F0KiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRlLCBmbG9hdCog
bWF4UCwgc2l6ZV90IGZyYW1lc1QKICAgICBBU1NFUlQobWF4UCk7CiAgICAgKm1heFAgPSBtYXg7
CiB9CisKK3ZvaWQgdmNsaXAoY29uc3QgZmxvYXQgKiBzb3VyY2VQLCBpbnQgc291cmNlU3RyaWRl
LCBjb25zdCBmbG9hdCogbG93VGhyZXNob2xkUCwgY29uc3QgZmxvYXQqIGhpZ2hUaHJlc2hvbGRQ
LCBmbG9hdCogZGVzdFAsIGludCBkZXN0U3RyaWRlLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQor
eworICAgIGludCBuID0gZnJhbWVzVG9Qcm9jZXNzOworICAgIGZsb2F0IGxvd1RocmVzaG9sZCA9
ICpsb3dUaHJlc2hvbGRQOworICAgIGZsb2F0IGhpZ2hUaHJlc2hvbGQgPSAqaGlnaFRocmVzaG9s
ZFA7CisKKyAgICAvLyBGSVhNRTogT3B0aW1pemUgZm9yIFNTRTIuCisgICAgLy8gRklYTUU6IE9w
dGltaXplIGZvciBORU9OLgorICAgIHdoaWxlIChuLS0pIHsKKyAgICAgICAgKmRlc3RQID0gc3Rk
OjptYXgoc3RkOjptaW4oKnNvdXJjZVAsIGhpZ2hUaHJlc2hvbGQpLCBsb3dUaHJlc2hvbGQpOwor
ICAgICAgICBzb3VyY2VQICs9IHNvdXJjZVN0cmlkZTsKKyAgICAgICAgZGVzdFAgKz0gZGVzdFN0
cmlkZTsKKyAgICB9Cit9CisKICNlbmRpZiAvLyBPUyhEQVJXSU4pCiAKIH0gLy8gbmFtZXNwYWNl
IFZlY3Rvck1hdGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1Zl
Y3Rvck1hdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1ZlY3Rvck1hdGguaApp
bmRleCA3MDIyNTE5MjA0MTA2NzA2ZGQ5M2MzYmY4NWM4YmQyMDk2MDg3YTAyLi4zNmQ4NjZjODlm
ZWE4NmNiMjRhYTJiNTAzZjBmODAyNzE3NGEyNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9WZWN0b3JNYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vVmVjdG9yTWF0aC5oCkBAIC00OSw2ICs0OSw5IEBAIHZvaWQgdm11bChjb25zdCBm
bG9hdCogc291cmNlMVAsIGludCBzb3VyY2VTdHJpZGUxLCBjb25zdCBmbG9hdCogc291cmNlMlAs
IGludCBzCiAvLyBNdWx0aXBsaWVzIHR3byBjb21wbGV4IHZlY3RvcnMuCiB2b2lkIHp2bXVsKGNv
bnN0IGZsb2F0KiByZWFsMVAsIGNvbnN0IGZsb2F0KiBpbWFnMVAsIGNvbnN0IGZsb2F0KiByZWFs
MlAsIGNvbnN0IGZsb2F0KiBpbWFnMlAsIGZsb2F0KiByZWFsRGVzdFAsIGZsb2F0KiBpbWFnRGVz
dFAsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOwogCisvLyBDb3BpZXMgZWxlbWVudHMgd2hpbGUg
Y2xpcHBpbmcgdmFsdWVzIHRvIHRoZSB0aHJlc2hvbGQgaW5wdXRzLgordm9pZCB2Y2xpcChjb25z
dCBmbG9hdCAqIHNvdXJjZVAsIGludCBzb3VyY2VTdHJpZGUsIGNvbnN0IGZsb2F0KiBsb3dUaHJl
c2hvbGRQLCBjb25zdCBmbG9hdCogaGlnaFRocmVzaG9sZFAsIGZsb2F0KiBkZXN0UCwgaW50IGRl
c3RTdHJpZGUsIHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpOworCiB9IC8vIG5hbWVzcGFjZSBWZWN0
b3JNYXRoCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL21hYy9BdWRpb0Rlc3RpbmF0aW9uTWFjLmNwcAppbmRleCA5
NWQyZWIzM2U0NDM5OTFmZTlmZTdkZTYxZjUxNjI3NWI3NzA3NmZjLi44OGJjY2Y5ZjI3NWEzMDZi
ZjM4ZDcyNzExZjNkNDhhNzBmMWZhMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9tYWMvQXVkaW9EZXN0aW5hdGlvbk1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vbWFjL0F1ZGlvRGVzdGluYXRpb25NYWMuY3BwCkBAIC0zNCwxMSAr
MzQsMTQgQEAKIAogI2luY2x1ZGUgIkF1ZGlvSU9DYWxsYmFjay5oIgogI2luY2x1ZGUgIkZsb2F0
Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgIlZlY3Rvck1hdGguaCIKICNpbmNsdWRlIDxDb3JlQXVk
aW8vQXVkaW9IYXJkd2FyZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNvbnN0IGludCBr
QnVmZmVyU2l6ZSA9IDEyODsKK2NvbnN0IGZsb2F0IGtMb3dUaHJlc2hvbGQgPSAtMTsKK2NvbnN0
IGZsb2F0IGtIaWdoVGhyZXNob2xkID0gMTsKIAogLy8gRmFjdG9yeSBtZXRob2Q6IE1hYy1pbXBs
ZW1lbnRhdGlvbgogUGFzc093blB0cjxBdWRpb0Rlc3RpbmF0aW9uPiBBdWRpb0Rlc3RpbmF0aW9u
OjpjcmVhdGUoQXVkaW9JT0NhbGxiYWNrJiBjYWxsYmFjaywgZmxvYXQgc2FtcGxlUmF0ZSkKQEAg
LTE1OCw2ICsxNjEsMTIgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbk1hYzo6cmVuZGVyKFVJ
bnQzMiBudW1iZXJPZkZyYW1lcywgQXVkaW9CdWZmZXJMaXN0KiBpb0QKICAgICAvLyBGSVhNRTog
QWRkIHN1cHBvcnQgZm9yIGxvY2FsL2xpdmUgYXVkaW8gaW5wdXQuCiAgICAgbV9jYWxsYmFjay5y
ZW5kZXIoMCwgJm1fcmVuZGVyQnVzLCBudW1iZXJPZkZyYW1lcyk7CiAKKyAgICAvLyBDbGFtcCB2
YWx1ZXMgYXQgMGRiIChpLmUuLCBbLTEuMCwgMS4wXSkKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9yZW5kZXJCdXMubnVtYmVyT2ZDaGFubmVscygpOyArK2kpIHsKKyAgICAgICAgQXVk
aW9DaGFubmVsKiBjaGFubmVsID0gbV9yZW5kZXJCdXMuY2hhbm5lbChpKTsKKyAgICAgICAgVmVj
dG9yTWF0aDo6dmNsaXAoY2hhbm5lbC0+ZGF0YSgpLCAxLCAma0xvd1RocmVzaG9sZCwgJmtIaWdo
VGhyZXNob2xkLCBjaGFubmVsLT5tdXRhYmxlRGF0YSgpLCAxLCBudW1iZXJPZkZyYW1lcyk7Cisg
ICAgfQorCiAgICAgcmV0dXJuIG5vRXJyOwogfQogCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggZmUwNTliZWYwZjVjMTc4MjA1ZjA3NjgwZGQ5NmFkZjY4MzY4YTJlNC4u
ZTdmYjhkMzEzZThkMWI1MTY4MGUxNmRlMGNiNWZhOWU2OGZhZDg3MSAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEwLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkF1ZGlvOiBsaW1pdCBv
dXRwdXQgbGV2ZWwgdG8gMGRiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTc5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTE5NjYxMzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbWFudWFs
IHRlc3QgdG8gZGV0ZXJtaW5lIHRoYXQgb3V0cHV0IHZvbHVtZSBoYXMgYmVlbiBsaW1pdGVkIHRv
IDBkYi4KKworICAgICAgICAqIE1hbnVhbFRlc3RzL3dlYmF1ZGlvL2xpbWl0LWxldmVsLTBkYi5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMC0xMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMTE4OS4K
ZGlmZiAtLWdpdCBhL01hbnVhbFRlc3RzL3dlYmF1ZGlvL2xpbWl0LWxldmVsLTBkYi5odG1sIGIv
TWFudWFsVGVzdHMvd2ViYXVkaW8vbGltaXQtbGV2ZWwtMGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEz
YzcwZGE4NDdiZGRmMDgyMDAyYzVlODJjOTdlMmFkOTlmMmIyMgotLS0gL2Rldi9udWxsCisrKyBi
L01hbnVhbFRlc3RzL3dlYmF1ZGlvL2xpbWl0LWxldmVsLTBkYi5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+V2ViIEF1ZGlv
IFNhbXBsZTwvdGl0bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KCk7CisgICAgICAgIHZhciBnYWluTm9kZSA9IGNvbnRleHQuY3Jl
YXRlR2Fpbk5vZGUoKTsKKyAgICAgICAgZ2Fpbk5vZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0
aW9uKTsKKyAgICAgICAgZ2Fpbk5vZGUuZ2Fpbi52YWx1ZSA9IDI7CisKKyAgICAgICAgdmFyIGZy
ZXF1ZW5jeSA9IDEwMDA7CisgICAgICAgIHZhciBkdXJhdGlvbiA9IDEwMDA7CisgICAgCisgICAg
ICAgIGZ1bmN0aW9uIHBsYXlOb3JtYWwoKSB7CisgICAgICAgICAgICB2YXIgb3NjaWxsYXRvciA9
IGNvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpOworICAgICAgICAgICAgb3NjaWxsYXRvci5mcmVx
dWVuY3kudmFsdWUgPSBmcmVxdWVuY3k7CisgICAgICAgICAgICBvc2NpbGxhdG9yLnR5cGUgPSAw
OworICAgICAgICAgICAgb3NjaWxsYXRvci5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOwor
ICAgICAgICAgICAgb3NjaWxsYXRvci5ub3RlT24oMCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCl7IG9zY2lsbGF0b3IuZGlzY29ubmVjdCgpOyB9LCBkdXJhdGlvbik7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIHBsYXlMb3VkKCkgeworICAgICAgICAg
ICAgdmFyIG9zY2lsbGF0b3IgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKTsKKyAgICAgICAg
ICAgIG9zY2lsbGF0b3IuZnJlcXVlbmN5LnZhbHVlID0gZnJlcXVlbmN5OworICAgICAgICAgICAg
b3NjaWxsYXRvci50eXBlID0gMDsKKyAgICAgICAgICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWlu
Tm9kZSk7CisgICAgICAgICAgICBvc2NpbGxhdG9yLm5vdGVPbigwKTsKKyAgICAgICAgICAgIHNl
dFRpbWVvdXQoZnVuY3Rpb24oKXsgb3NjaWxsYXRvci5kaXNjb25uZWN0KCk7IH0sIGR1cmF0aW9u
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+Cisg
ICAgICAgIFRoaXMgdGVzdHMgdGhhdCBvdXRwdXQgYXVkaW8gaXMgY2xhbXBlZCB0byAwZGIgbWF4
aW11bS4gIFByZXNzIGVhY2ggYnV0dG9uIGJlbG93IGluIHR1cm4uICBUaGUgYXBwYXJlbnQgdm9s
dW1lIGZvciBib3RoIHNob3VsZCBiZSBlcXVhbCwgZXZlbiB0aG91Z2ggdGhlIHNlY29uZCBidXR0
b24gcGxheXMgd2l0aCAyeCBnYWluIG9mIHRoZSBmaXJzdC4KKyAgICA8L3A+CisgICAgPGJ1dHRv
biBvbmNsaWNrPSJwbGF5Tm9ybWFsKCkiPm5vcm1hbCB2b2x1bWU8L2J1dHRvbj48YnV0dG9uIG9u
Y2xpY2s9InBsYXlMb3VkKCkiPmRvdWJsZSB2b2x1bWU8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRt
bD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="181844"
          type_id="1"
          status="+"
          setter="crogers"
    />
          </attachment>
      

    </bug>

</bugzilla>