<?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>171711</bug_id>
          
          <creation_ts>2017-05-04 20:56:12 -0700</creation_ts>
          <short_desc>RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput()</short_desc>
          <delta_ts>2017-05-10 18:51:41 -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>WebKit 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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1304988</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:56:12 -0700</bug_when>
    <thetext>RELEASE_ASSERT at WebAudioSourceProviderAVFObjC::provideInput()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304991</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:59:32 -0700</bug_when>
    <thetext>rdar://problem/31995807</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304992</commentid>
    <comment_count>2</comment_count>
      <attachid>309140</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-04 20:59:52 -0700</bug_when>
    <thetext>Created attachment 309140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305028</commentid>
    <comment_count>3</comment_count>
      <attachid>309140</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-04 23:36:31 -0700</bug_when>
    <thetext>Comment on attachment 309140
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        format of WebAudioSourceProviderAVFObjC, notify the MediaStreamAudioSourceNode that the number of

The last sentence is mssing a verb.

&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:83
&gt; +    unsigned channelCount = std::min(list.bufferCount(), bus-&gt;numberOfChannels());

I do not clearly understand  why the outputDescription is different from the input in terms of number of channels.
Is it the case that they are different sometimes or could it stay like this for multiple calls?
If it is something that can stay stable, could we enforce them to be equal in some ways?
Maybe worth beefing up the change log if I am not missing something obvious.

&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:142
&gt; +        m_client-&gt;setFormat(numberOfChannels, sampleRate);

Why do we always need to call setFormat both synchronously and asynchronously?

&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:145
&gt;      callOnMainThread([protectedThis = WTFMove(protectedThis), numberOfChannels, sampleRate] {

If we are to touch this code, we could modernize it by using makeRef and removing protectedThis definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306996</commentid>
    <comment_count>4</comment_count>
      <attachid>309140</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 14:03:00 -0700</bug_when>
    <thetext>Comment on attachment 309140
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        format of WebAudioSourceProviderAVFObjC, notify the MediaStreamAudioSourceNode that the number of
&gt; 
&gt; The last sentence is mssing a verb.

Changed.

&gt;&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:83
&gt;&gt; +    unsigned channelCount = std::min(list.bufferCount(), bus-&gt;numberOfChannels());
&gt; 
&gt; I do not clearly understand  why the outputDescription is different from the input in terms of number of channels.
&gt; Is it the case that they are different sometimes or could it stay like this for multiple calls?
&gt; If it is something that can stay stable, could we enforce them to be equal in some ways?
&gt; Maybe worth beefing up the change log if I am not missing something obvious.

In practice, it may never be. But since we are writing data to a variable length structure, we should guarantee that we never iterate over the end of it, and this is a cheap way of doing so.

&gt;&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:142
&gt;&gt; +        m_client-&gt;setFormat(numberOfChannels, sampleRate);
&gt; 
&gt; Why do we always need to call setFormat both synchronously and asynchronously?

Calling synchronously means we&apos;re holding our own lock, so we don&apos;t need to worry about making changes out from underneath provideInput() in another thread. MediaElementAudioSourceNode has its own lock it uses to synchronize against the main thread, so calling setFormat() on a background thread should be safe here. I&apos;ll remove the async call below.

&gt;&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:145
&gt;&gt;      callOnMainThread([protectedThis = WTFMove(protectedThis), numberOfChannels, sampleRate] {
&gt; 
&gt; If we are to touch this code, we could modernize it by using makeRef and removing protectedThis definition.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306998</commentid>
    <comment_count>5</comment_count>
      <attachid>309630</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 14:03:45 -0700</bug_when>
    <thetext>Created attachment 309630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306999</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-05-10 14:08:54 -0700</bug_when>
    <thetext>&gt; &gt;&gt; Source/WebCore/platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:83
&gt; &gt;&gt; +    unsigned channelCount = std::min(list.bufferCount(), bus-&gt;numberOfChannels());
&gt; &gt; 
&gt; &gt; I do not clearly understand  why the outputDescription is different from the input in terms of number of channels.
&gt; &gt; Is it the case that they are different sometimes or could it stay like this for multiple calls?
&gt; &gt; If it is something that can stay stable, could we enforce them to be equal in some ways?
&gt; &gt; Maybe worth beefing up the change log if I am not missing something obvious.
&gt; 
&gt; In practice, it may never be. But since we are writing data to a variable
&gt; length structure, we should guarantee that we never iterate over the end of
&gt; it, and this is a cheap way of doing so.

OK, maybe add a debug assert then?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307006</commentid>
    <comment_count>7</comment_count>
      <attachid>309634</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 14:21:23 -0700</bug_when>
    <thetext>Created attachment 309634
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307035</commentid>
    <comment_count>8</comment_count>
      <attachid>309634</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 15:03:18 -0700</bug_when>
    <thetext>Comment on attachment 309634
Patch for landing

Clearing flags on attachment: 309634

Committed r216630: &lt;http://trac.webkit.org/changeset/216630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307037</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 15:03:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307089</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-10 17:29:12 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #8)
&gt; Comment on attachment 309634 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 309634
&gt; 
&gt; Committed r216630: &lt;http://trac.webkit.org/changeset/216630&gt;

This caused many webrtc LayoutTest assertion failures:

https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r216631%20(1036)/results.html

https://build.webkit.org/results/Apple%20iOS%2010%20Simulator%20Debug%20WK2%20(Tests)/r216632%20(1248)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307093</commentid>
    <comment_count>11</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-10 17:33:01 -0700</bug_when>
    <thetext>Reverted r216630 for reason:

This change caused assertion failures with webrtc LayoutTests.

Committed r216642: &lt;http://trac.webkit.org/changeset/216642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307107</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 17:56:31 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #11)
&gt; Reverted r216630 for reason:
&gt; 
&gt; This change caused assertion failures with webrtc LayoutTests.
&gt; 
&gt; Committed r216642: &lt;http://trac.webkit.org/changeset/216642&gt;

Looks like two ASSERTs are happening:

1) AudioContext doesn&apos;t like to be reconfigured off the main thread; their lock is explicitly main thread only.

2) The RealtimeAudioInputSource isn&apos;t calling prepare() on its audio provider, which leads to a mismatch in the channel count between the provider and the audio node.

I&apos;ll post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307109</commentid>
    <comment_count>13</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 18:03:04 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #12)
&gt; (In reply to Ryan Haddad from comment #11)
&gt; &gt; Reverted r216630 for reason:
&gt; &gt; 
&gt; &gt; This change caused assertion failures with webrtc LayoutTests.
&gt; &gt; 
&gt; &gt; Committed r216642: &lt;http://trac.webkit.org/changeset/216642&gt;
&gt; 
&gt; Looks like two ASSERTs are happening:
&gt; 
&gt; 1) AudioContext doesn&apos;t like to be reconfigured off the main thread; their
&gt; lock is explicitly main thread only.
&gt; 
&gt; 2) The RealtimeAudioInputSource isn&apos;t calling prepare() on its audio
&gt; provider, which leads to a mismatch in the channel count between the
&gt; provider and the audio node.

Correction, after the change to fix 1), 2) is not called before we start getting asked for samples.

&gt; I&apos;ll post a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307113</commentid>
    <comment_count>14</comment_count>
      <attachid>309668</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-05-10 18:11:10 -0700</bug_when>
    <thetext>Created attachment 309668
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307127</commentid>
    <comment_count>15</comment_count>
      <attachid>309668</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 18:51:40 -0700</bug_when>
    <thetext>Comment on attachment 309668
Patch for landing

Clearing flags on attachment: 309668

Committed r216645: &lt;http://trac.webkit.org/changeset/216645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307128</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-10 18:51:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309140</attachid>
            <date>2017-05-04 20:59:52 -0700</date>
            <delta_ts>2017-05-10 14:03:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171711-20170504205950.patch</filename>
            <type>text/plain</type>
            <size>2643</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYwYzJhZDk4ZDBkZGI4
ODMxODNmNjlmMTJhM2E5ZmEwMjcyOTZlYi4uZmY0YjNjMDk2MTQzN2EyNTA2YmJiNzUwNmYwYjBj
YjRiMjBiZjczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGl0ZXJhdGluZyBv
dmVyIHRoZSBjaGFubmVscyBpbiBlaXRoZXIgdGhlIFdlYkF1ZGlvQnVmZmVyTGlzdCBvciB0aGUg
QXVkaW9CdXMsIGVuc3VyZSB3ZSBkb24ndAorICAgICAgICB3YWxrIG92ZXIgdGhlIGVuZCBvZiBl
aXRoZXIgYnkgb25seSBpdGVyYXRpbmcgb3ZlciB0aGUgbWluaW11bSBsZW5ndGggb2YgZWl0aGVy
LiBBbHNvLCB3aGVuIHRoZSBpbnRlcm5hbAorICAgICAgICBmb3JtYXQgb2YgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMsIG5vdGlmeSB0aGUgTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUg
dGhhdCB0aGUgbnVtYmVyIG9mCisgICAgICAgIGNoYW5uZWxzIGFuZCBzYW1wbGUgcmF0ZSBoYXZl
IGNoYW5nZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKToKKworMjAxNy0wNS0wNCAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwogICAgICAgICBbTWFjXSBBdWRpbyBjYXB0dXJl
IGZhaWxzIHdoZW4gc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MgaXMgc2V0LgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzEwCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQppbmRleCBiYmE1NmFmZjQ0
MDVjZjliNmJjYzFlZDljZjEwMmU3ZTgzYjk4ODhiLi4xMjE1Zjc1ZTQyODY0NTFhZjNjNzNjNjA3
ODM0YWNlMTJlM2E2NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLm1tCkBAIC04MCw3ICs4MCw4IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9QCiAgICAg
fQogCiAgICAgV2ViQXVkaW9CdWZmZXJMaXN0IGxpc3QgeyAqbV9vdXRwdXREZXNjcmlwdGlvbiB9
OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsaXN0LmJ1ZmZlckNvdW50KCk7ICsraSkg
eworICAgIHVuc2lnbmVkIGNoYW5uZWxDb3VudCA9IHN0ZDo6bWluKGxpc3QuYnVmZmVyQ291bnQo
KSwgYnVzLT5udW1iZXJPZkNoYW5uZWxzKCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjaGFubmVsQ291bnQ7ICsraSkgewogICAgICAgICBBdWRpb0NoYW5uZWwmIGNoYW5uZWwgPSAq
YnVzLT5jaGFubmVsKGkpOwogICAgICAgICBhdXRvKiBidWZmZXIgPSBsaXN0LmJ1ZmZlcihpKTsK
ICAgICAgICAgYnVmZmVyLT5tTnVtYmVyQ2hhbm5lbHMgPSAxOwpAQCAtMTM3LDYgKzEzOCw5IEBA
IHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoY29uc3QgQXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBmCiAgICAgbV9kYXRhU291cmNlLT5zZXRJbnB1dEZvcm1h
dCgqbV9pbnB1dERlc2NyaXB0aW9uKTsKICAgICBtX2RhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1h
dCgqbV9vdXRwdXREZXNjcmlwdGlvbik7CiAKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1f
Y2xpZW50LT5zZXRGb3JtYXQobnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSk7CisKICAgICBS
ZWZQdHI8V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IHByb3RlY3RlZFRoaXMgPSB0aGlz
OwogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlXSB7CiAgICAgICAgIGlmIChwcm90
ZWN0ZWRUaGlzLT5tX2NsaWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309630</attachid>
            <date>2017-05-10 14:03:45 -0700</date>
            <delta_ts>2017-05-10 14:21:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171711-20170510140344.patch</filename>
            <type>text/plain</type>
            <size>2744</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyMjc4Y2EzYThkNmRj
MDg2ZTZiZjUyOTJkMGM2OTZjNWFiNGRlYi4uMDgzMzRjYjI3MDc3NDY5NWM3N2MzZTJhYTMyOWZi
ODFjMDVjOWExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGl0ZXJhdGluZyBv
dmVyIHRoZSBjaGFubmVscyBpbiBlaXRoZXIgdGhlIFdlYkF1ZGlvQnVmZmVyTGlzdCBvciB0aGUg
QXVkaW9CdXMsIGVuc3VyZQorICAgICAgICB3ZSBkb24ndCB3YWxrIG92ZXIgdGhlIGVuZCBvZiBl
aXRoZXIgYnkgb25seSBpdGVyYXRpbmcgb3ZlciB0aGUgbWluaW11bSBsZW5ndGggb2YgZWl0aGVy
LgorICAgICAgICBBbHNvLCB3aGVuIHRoZSBpbnRlcm5hbCBmb3JtYXQgb2YgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMgY2hhbmdlcywgbm90aWZ5IHRoZQorICAgICAgICBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZSB0aGF0IHRoZSBudW1iZXIgb2YgY2hhbm5lbHMgYW5kIHNhbXBsZSBy
YXRlIGhhdmUgY2hhbmdlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUpOgorCiAyMDE3LTA1LTEw
ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UgcmVwb3J0cyAzIG9yIDUgY2hhbm5lbCBhdWRpbyBvdXRwdXQ7IGFjdHVhbGx5
IG9ubHkgbW9ubwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CmluZGV4IGJiYTU2YWZmNDQwNWNmOWI2YmNjMWVkOWNmMTAyZTdlODNiOTg4OGIuLmNhYzU3YWNm
NWE2YTVkODI1MDAwNjNmODMxY2E5YmQzNjEyNzdhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTgwLDcgKzgwLDggQEAgdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVf
dCBmcmFtZXNUb1AKICAgICB9CiAKICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgbGlzdCB7ICptX291
dHB1dERlc2NyaXB0aW9uIH07Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpc3QuYnVm
ZmVyQ291bnQoKTsgKytpKSB7CisgICAgdW5zaWduZWQgY2hhbm5lbENvdW50ID0gc3RkOjptaW4o
bGlzdC5idWZmZXJDb3VudCgpLCBidXMtPm51bWJlck9mQ2hhbm5lbHMoKSk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNoYW5uZWxDb3VudDsgKytpKSB7CiAgICAgICAgIEF1ZGlvQ2hh
bm5lbCYgY2hhbm5lbCA9ICpidXMtPmNoYW5uZWwoaSk7CiAgICAgICAgIGF1dG8qIGJ1ZmZlciA9
IGxpc3QuYnVmZmVyKGkpOwogICAgICAgICBidWZmZXItPm1OdW1iZXJDaGFubmVscyA9IDE7CkBA
IC0xMzcsMTEgKzEzOCw4IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
ZXBhcmUoY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKiBmCiAgICAgbV9kYXRhU291
cmNlLT5zZXRJbnB1dEZvcm1hdCgqbV9pbnB1dERlc2NyaXB0aW9uKTsKICAgICBtX2RhdGFTb3Vy
Y2UtPnNldE91dHB1dEZvcm1hdCgqbV9vdXRwdXREZXNjcmlwdGlvbik7CiAKLSAgICBSZWZQdHI8
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM+IHByb3RlY3RlZFRoaXMgPSB0aGlzOwotICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCBudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX2NsaWVudCkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY2xpZW50LT5zZXRG
b3JtYXQobnVtYmVyT2ZDaGFubmVscywgc2FtcGxlUmF0ZSk7Ci0gICAgfSk7CisgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICBtX2NsaWVudC0+c2V0Rm9ybWF0KG51bWJlck9mQ2hhbm5lbHMsIHNh
bXBsZVJhdGUpOwogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnBy
ZXBhcmUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309634</attachid>
            <date>2017-05-10 14:21:23 -0700</date>
            <delta_ts>2017-05-10 18:11:03 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171711-20170510142122.patch</filename>
            <type>text/plain</type>
            <size>2803</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyMjc4Y2EzYThkNmRj
MDg2ZTZiZjUyOTJkMGM2OTZjNWFiNGRlYi4uOGJmMjkwNDdjODRkNzRkYTFmNjc1NmYzNjg4ZmRl
NjY3MjVkZmMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBCZWZvcmUgaXRlcmF0aW5nIG92
ZXIgdGhlIGNoYW5uZWxzIGluIGVpdGhlciB0aGUgV2ViQXVkaW9CdWZmZXJMaXN0IG9yIHRoZSBB
dWRpb0J1cywgZW5zdXJlCisgICAgICAgIHdlIGRvbid0IHdhbGsgb3ZlciB0aGUgZW5kIG9mIGVp
dGhlciBieSBvbmx5IGl0ZXJhdGluZyBvdmVyIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBlaXRoZXIu
CisgICAgICAgIEFsc28sIHdoZW4gdGhlIGludGVybmFsIGZvcm1hdCBvZiBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyBjaGFuZ2VzLCBub3RpZnkgdGhlCisgICAgICAgIE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlIHRoYXQgdGhlIG51bWJlciBvZiBjaGFubmVscyBhbmQgc2FtcGxlIHJh
dGUgaGF2ZSBjaGFuZ2VkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisKIDIwMTctMDUtMTAg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZSByZXBvcnRzIDMgb3IgNSBjaGFubmVsIGF1ZGlvIG91dHB1dDsgYWN0dWFsbHkg
b25seSBtb25vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
aW5kZXggYmJhNTZhZmY0NDA1Y2Y5YjZiY2MxZWQ5Y2YxMDJlN2U4M2I5ODg4Yi4uMjY2YmU5ZWE1
YjRhOWJkZTc3MzU2ZTg0NDljZDIyMzI4OWY2MzQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtODAsNyArODAsOSBAQCB2b2lkIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoQXVkaW9CdXMqIGJ1cywgc2l6ZV90
IGZyYW1lc1RvUAogICAgIH0KIAogICAgIFdlYkF1ZGlvQnVmZmVyTGlzdCBsaXN0IHsgKm1fb3V0
cHV0RGVzY3JpcHRpb24gfTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGlzdC5idWZm
ZXJDb3VudCgpOyArK2kpIHsKKyAgICBBU1NFUlQobGlzdC5idWZmZXJDb3VudCgpID09IGJ1cy0+
bnVtYmVyT2ZDaGFubmVscygpKTsKKyAgICB1bnNpZ25lZCBjaGFubmVsQ291bnQgPSBzdGQ6Om1p
bihsaXN0LmJ1ZmZlckNvdW50KCksIGJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hhbm5lbENvdW50OyArK2kpIHsKICAgICAgICAgQXVkaW9D
aGFubmVsJiBjaGFubmVsID0gKmJ1cy0+Y2hhbm5lbChpKTsKICAgICAgICAgYXV0byogYnVmZmVy
ID0gbGlzdC5idWZmZXIoaSk7CiAgICAgICAgIGJ1ZmZlci0+bU51bWJlckNoYW5uZWxzID0gMTsK
QEAgLTEzNywxMSArMTM5LDggQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIGYKICAgICBtX2RhdGFT
b3VyY2UtPnNldElucHV0Rm9ybWF0KCptX2lucHV0RGVzY3JpcHRpb24pOwogICAgIG1fZGF0YVNv
dXJjZS0+c2V0T3V0cHV0Rm9ybWF0KCptX291dHB1dERlc2NyaXB0aW9uKTsKIAotICAgIFJlZlB0
cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gcHJvdGVjdGVkVGhpcyA9IHRoaXM7Ci0g
ICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhp
cyksIG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGVdIHsKLSAgICAgICAgaWYgKHByb3RlY3Rl
ZFRoaXMtPm1fY2xpZW50KQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jbGllbnQtPnNl
dEZvcm1hdChudW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlKTsKLSAgICB9KTsKKyAgICBpZiAo
bV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5zZXRGb3JtYXQobnVtYmVyT2ZDaGFubmVscywg
c2FtcGxlUmF0ZSk7CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVu
cHJlcGFyZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309668</attachid>
            <date>2017-05-10 18:11:10 -0700</date>
            <delta_ts>2017-05-10 18:51:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171711-20170510181109.patch</filename>
            <type>text/plain</type>
            <size>2775</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUyMjc4Y2EzYThkNmRj
MDg2ZTZiZjUyOTJkMGM2OTZjNWFiNGRlYi4uOGJmMjkwNDdjODRkNzRkYTFmNjc1NmYzNjg4ZmRl
NjY3MjVkZmMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTA0ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFTEVBU0VfQVNTRVJUIGF0
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzExCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBCZWZvcmUgaXRlcmF0aW5nIG92
ZXIgdGhlIGNoYW5uZWxzIGluIGVpdGhlciB0aGUgV2ViQXVkaW9CdWZmZXJMaXN0IG9yIHRoZSBB
dWRpb0J1cywgZW5zdXJlCisgICAgICAgIHdlIGRvbid0IHdhbGsgb3ZlciB0aGUgZW5kIG9mIGVp
dGhlciBieSBvbmx5IGl0ZXJhdGluZyBvdmVyIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiBlaXRoZXIu
CisgICAgICAgIEFsc28sIHdoZW4gdGhlIGludGVybmFsIGZvcm1hdCBvZiBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQyBjaGFuZ2VzLCBub3RpZnkgdGhlCisgICAgICAgIE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlIHRoYXQgdGhlIG51bWJlciBvZiBjaGFubmVscyBhbmQgc2FtcGxlIHJh
dGUgaGF2ZSBjaGFuZ2VkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisKIDIwMTctMDUtMTAg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZSByZXBvcnRzIDMgb3IgNSBjaGFubmVsIGF1ZGlvIG91dHB1dDsgYWN0dWFsbHkg
b25seSBtb25vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0K
aW5kZXggYmJhNTZhZmY0NDA1Y2Y5YjZiY2MxZWQ5Y2YxMDJlN2U4M2I5ODg4Yi4uOTRlYzI1ZTVi
ODliYTRiNDU4OWI4ZTliNWI3NzgxYmQ1OGIyOTY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtODAsOCArODAsMTIgQEAgdm9pZCBXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVf
dCBmcmFtZXNUb1AKICAgICB9CiAKICAgICBXZWJBdWRpb0J1ZmZlckxpc3QgbGlzdCB7ICptX291
dHB1dERlc2NyaXB0aW9uIH07Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxpc3QuYnVm
ZmVyQ291bnQoKTsgKytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGJ1cy0+bnVt
YmVyT2ZDaGFubmVscygpOyArK2kpIHsKICAgICAgICAgQXVkaW9DaGFubmVsJiBjaGFubmVsID0g
KmJ1cy0+Y2hhbm5lbChpKTsKKyAgICAgICAgaWYgKGkgPj0gbGlzdC5idWZmZXJDb3VudCgpKSB7
CisgICAgICAgICAgICBjaGFubmVsLnplcm8oKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CiAgICAgICAgIGF1dG8qIGJ1ZmZlciA9IGxpc3QuYnVmZmVyKGkpOwogICAgICAgICBi
dWZmZXItPm1OdW1iZXJDaGFubmVscyA9IDE7CiAgICAgICAgIGJ1ZmZlci0+bURhdGEgPSBjaGFu
bmVsLm11dGFibGVEYXRhKCk7CkBAIC0xMzcsOCArMTQxLDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZShjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRp
b24qIGYKICAgICBtX2RhdGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KCptX2lucHV0RGVzY3JpcHRp
b24pOwogICAgIG1fZGF0YVNvdXJjZS0+c2V0T3V0cHV0Rm9ybWF0KCptX291dHB1dERlc2NyaXB0
aW9uKTsKIAotICAgIFJlZlB0cjxXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQz4gcHJvdGVj
dGVkVGhpcyA9IHRoaXM7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIG51bWJlck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGVdIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIG51bWJl
ck9mQ2hhbm5lbHMsIHNhbXBsZVJhdGVdIHsKICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1f
Y2xpZW50KQogICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9jbGllbnQtPnNldEZvcm1hdChu
dW1iZXJPZkNoYW5uZWxzLCBzYW1wbGVSYXRlKTsKICAgICB9KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>