<?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>135816</bug_id>
          
          <creation_ts>2014-08-11 14:33:57 -0700</creation_ts>
          <short_desc>[iOS] &lt;video&gt; element requests are missing session cookies; sometimes persistent cookies.</short_desc>
          <delta_ts>2014-08-11 18:12:24 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>135825</blocked>
    
    <blocked>135826</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>ap</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1028322</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 14:33:57 -0700</bug_when>
    <thetext>[iOS] &lt;video&gt; element requests are missing session cookies; sometimes persistant cookies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028363</commentid>
    <comment_count>1</comment_count>
      <attachid>236415</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 17:01:06 -0700</bug_when>
    <thetext>Created attachment 236415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028364</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 17:01:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/17912361&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028366</commentid>
    <comment_count>3</comment_count>
      <attachid>236415</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-11 17:20:20 -0700</bug_when>
    <thetext>Comment on attachment 236415
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.h:575
&gt; +    virtual bool mediaPlayerGetRawCookies(const URL&amp;, Vector&lt;Cookie&gt;&amp;) const;

Please add &quot;override&quot; to this declaration.

Curious that &quot;Cookie&quot; worked without a forward declaration. Or will it break !ENABLE(VIDEO) builds?

&gt; Source/WebCore/platform/graphics/MediaPlayer.h:268
&gt; +    virtual bool mediaPlayerGetRawCookies(const URL&amp;, Vector&lt;Cookie&gt;&amp;) const { return false; }

It would be slightly more idiomatic to just return an empty vector as a value, and to have a notImplemented call in the base class version. Clients don&apos;t need to check at runtime whether their platform implements this.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:718
&gt; +static NSHTTPCookie* toNSHTTPCookie(const Cookie&amp; cookie)

I think that Cookie class in WebCore is a better place for this code.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:725
&gt; +        NSHTTPCookieExpires: [NSDate dateWithTimeIntervalSince1970:(cookie.expires / 1000)],

It may be a good idea to pass NSHTTPCookieDiscard, assuming that it doesn&apos;t break anything. But I don&apos;t know abut how it interacts with NSHTTPCookieExpires.

Maybe the best thing to do is to have a FIXME about (1) the need to clarify this, and (2) move this code to Cookie class once it is generic enough.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:726
&gt; +        }];

Four too many spaces here, I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028367</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 17:29:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 236415 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=236415&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.h:575
&gt; &gt; +    virtual bool mediaPlayerGetRawCookies(const URL&amp;, Vector&lt;Cookie&gt;&amp;) const;
&gt; 
&gt; Please add &quot;override&quot; to this declaration.

Added.

&gt; Curious that &quot;Cookie&quot; worked without a forward declaration. Or will it break !ENABLE(VIDEO) builds?

MediaPlayer.h forward declares it, and HTMLMediaElement.h includes MediaPlayer.h.

&gt; &gt; Source/WebCore/platform/graphics/MediaPlayer.h:268
&gt; &gt; +    virtual bool mediaPlayerGetRawCookies(const URL&amp;, Vector&lt;Cookie&gt;&amp;) const { return false; }
&gt; 
&gt; It would be slightly more idiomatic to just return an empty vector as a value, and to have a notImplemented call in the base class version. Clients don&apos;t need to check at runtime whether their platform implements this.

I tried that initially, but forward-declaring Cookie won&apos;t work in that case, as this pulls in the constructor and destructor of Vector&lt;Cookie&gt;.  I suspect that&apos;s why it was done with this kind of function signature for CookieJar.h as well.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:718
&gt; &gt; +static NSHTTPCookie* toNSHTTPCookie(const Cookie&amp; cookie)
&gt; 
&gt; I think that Cookie class in WebCore is a better place for this code.

I agree; I&apos;d like to move it into a platform-specific file in a follow up.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:725
&gt; &gt; +        NSHTTPCookieExpires: [NSDate dateWithTimeIntervalSince1970:(cookie.expires / 1000)],
&gt; 
&gt; It may be a good idea to pass NSHTTPCookieDiscard, assuming that it doesn&apos;t break anything. But I don&apos;t know abut how it interacts with NSHTTPCookieExpires.
&gt; 
&gt; Maybe the best thing to do is to have a FIXME about (1) the need to clarify this, and (2) move this code to Cookie class once it is generic enough.

I&apos;ve figured this out, and i&apos;ll address it in the final patch. Turns out, it&apos;s the /presence/ of that key in the properties dictionary, not it&apos;s value, that determines the final result.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:726
&gt; &gt; +        }];
&gt; 
&gt; Four too many spaces here, I think.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028369</commentid>
    <comment_count>5</comment_count>
      <attachid>236416</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 17:31:39 -0700</bug_when>
    <thetext>Created attachment 236416
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028372</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 17:37:14 -0700</bug_when>
    <thetext>Committed r172422: &lt;http://trac.webkit.org/changeset/172422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028373</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-11 17:39:41 -0700</bug_when>
    <thetext>&gt; MediaPlayer.h forward declares it, and HTMLMediaElement.h includes MediaPlayer.h.

I think that the include of MediaPlayer.h is conditional, which is why I said that it will break no-video builds.

&gt; I tried that initially, but forward-declaring Cookie won&apos;t work in that case, as this pulls in the constructor and destructor of Vector&lt;Cookie&gt;.  I suspect that&apos;s why it was done with this kind of function signature for CookieJar.h as well.

The right thing to do it simply to move the implementation to .cpp file. Inline virtual functions are frequently harmful (they increase binary code bloat, and can&apos;t be inlined anyway).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028382</commentid>
    <comment_count>8</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-08-11 18:01:37 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; MediaPlayer.h forward declares it, and HTMLMediaElement.h includes MediaPlayer.h.
&gt; 
&gt; I think that the include of MediaPlayer.h is conditional, which is why I said that it will break no-video builds.

Ah, I see.  But the conditional wraps the entire header, so !VIDEO builds will be fine.

&gt; &gt; I tried that initially, but forward-declaring Cookie won&apos;t work in that case, as this pulls in the constructor and destructor of Vector&lt;Cookie&gt;.  I suspect that&apos;s why it was done with this kind of function signature for CookieJar.h as well.
&gt; 
&gt; The right thing to do it simply to move the implementation to .cpp file. Inline virtual functions are frequently harmful (they increase binary code bloat, and can&apos;t be inlined anyway).

Ok. All the MediaPlayerClient are inline-virtual, so moving them all into the .cpp file (or making them pure virtual, since there&apos;s only one subclass) we can do in a follow up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1028388</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-08-11 18:12:24 -0700</bug_when>
    <thetext>&gt; But the conditional wraps the entire header, so !VIDEO builds will be fine.

Indeed, I misread it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236415</attachid>
            <date>2014-08-11 17:01:06 -0700</date>
            <delta_ts>2014-08-11 17:20:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-135816-20140811170055.patch</filename>
            <type>text/plain</type>
            <size>8344</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI5NTkxNWIwODM3ZDZl
ZmJiOWVjZmY4MzYyNmFmODJiY2Q0MTMyMi4uNGJhOTdhN2MwOTJjNGYwODdmOTZkN2Q5OTEyZDE5
NzkwOWVjMjJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA4LTExICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIDx2aWRlbz4gZWxl
bWVudCByZXF1ZXN0cyBhcmUgbWlzc2luZyBzZXNzaW9uIGNvb2tpZXM7IHNvbWV0aW1lcyBwZXJz
aXN0YW50IGNvb2tpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzU4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBPbiBpT1MsIHRoZSBBVkZvdW5kYXRpb24gZnJhbWV3b3JrIHdpbGwgY29weSBhcHBy
b3ByaWF0ZSBjb29raWVzIGZvciB0aGUgcmVxdWVzdGVkIFVSTCBhY3Jvc3MgdG8gdGhlCisgICAg
ICAgIG1lZGlhc2VydmVyZCBwcm9jZXNzLiBGb3IgV2ViS2l0MiwgdGhlIFdlYlByb2Nlc3MgZG9l
cyBub3QgaGF2ZSBhY2Nlc3MgdG8gc2Vzc2lvbiBjb29raWVzIGZvciB0aGUgCisgICAgICAgIGN1
cnJlbnQgYnJvd3Npbmcgc2Vzc2lvbi4gV2hlbiBjcmVhdGluZyBhbiBBVlVSTEFzc2V0LCBmZXRj
aCB0aGUgYXBwcm9wcmlhdGUgY29va2llcyBmb3IgdGhlIHJlcXVlc3RlZAorICAgICAgICBVUkws
IGFuZCBwYXNzIHRoZW0gaW50byBBVlVSTEFzc2V0IGluIHRoZSBvcHRpb25zIGRpY3Rpb25hcnku
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKTogQ2FsbCBDb29r
aWVKYXIncyBlcXVpdmFsZW50IG1ldGhvZC4KKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6Z2V0UmF3Q29va2llcyk6IFBhc3MgdG8gSFRNTE1l
ZGlhRWxlbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyR2V0UmF3Q29v
a2llcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnRv
TlNIVFRQQ29va2llKTogQ29udmVydCBhIFdlYkNvcmUgQ29va2llIC0+IE5TSFRUUENvb2tpZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNy
ZWF0ZUFWQXNzZXRGb3JVUkwpOiBGZXRjaCBjb29raWVzIGZvciB0aGUgcmVxdWVzdGVkCisgICAg
ICAgICAgICBVUkwsIGFuZCBpZiBzdWNjZXNzZnVsLCBhZGQgdGhlbSB0byB0aGUgQVZVUkxBc3Nl
dCBvcHRpb25zIGRpY3Rpb25hcnkuCisKIDIwMTQtMDgtMDcgIEplciBOb2JsZSAgPGplci5ub2Js
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV1bTWFjXSBFcnJvciBjb2RlcyByZXR1cm5lZCBi
eSBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciBhcmUgbmVnYXRpdmU7IGNsaXAgd2hlbiBwYXNz
ZWQgdG8gSmF2YVNjcmlwdCBhcyBkb3VibGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKaW5kZXggZWFlNWZjOGYwNWE3ZTFhOTRkNjlmNjQ1YzgyM2FiMjBmYTgyYWEw
MC4uMmQ1ODA3NDFlNzQ1MzE4YWEyMzdiMWRkM2JkNmZmMDM1Yjk1MGYzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiQ2xpZW50UmVjdExpc3QuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
ICNpbmNsdWRlICJDb250ZW50VHlwZS5oIgorI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2luY2x1
ZGUgIkRpYWdub3N0aWNMb2dnaW5nS2V5cy5oIgogI2luY2x1ZGUgIkRpc3BsYXlTbGVlcERpc2Fi
bGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKQEAgLTU3NDQsNiArNTc0NSwxMSBA
QCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFt
ZSgpIGNvbnN0CiAKICAgICByZXR1cm4gc2V0dGluZ3MtPm5ldHdvcmtJbnRlcmZhY2VOYW1lKCk7
CiB9CisKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNv
bnN0IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykgY29uc3QKK3sKKyAgICByZXR1
cm4gZ2V0UmF3Q29va2llcygmZG9jdW1lbnQoKSwgdXJsLCBjb29raWVzKTsKK30KICNlbmRpZgog
ICAgIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvcnNSZXN0cmljdGlvbnNB
ZnRlckZpcnN0VXNlckdlc3R1cmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCAwOGExOGU2MmYyYzQ2M2QwMjUxYWI2YWRkZTA2N2Q3NzVmN2ZjYTdiLi40ODE5ZDc1
ZDQ2NjBhYTFkYWNhODNlZjg0MDk0YjAzYjUxZTU5YmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaApAQCAtNTcyLDYgKzU3Miw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNl
TmFtZSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdDsKICNlbmRpZgogCiAgICAgdm9pZCBs
b2FkVGltZXJGaXJlZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGMyN2I1OTEzMDQx
OTYyYWIyM2IzNjUzZDQ2MmNjZWJmMjkyMzE4MTEuLjc5NmE2NWYzMzFlYzBlMzFkOGU3ODFmZTlh
OTA5NTM3NDJhMGQ3ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKQEAgLTE0MjgsNiArMTQyOCwxNCBAQCBTdHJpbmcgTWVkaWFQbGF5
ZXI6Om1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBjb25zdAogCiAgICAgcmV0dXJu
IG1fbWVkaWFQbGF5ZXJDbGllbnQtPm1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKTsK
IH0KKworYm9vbCBNZWRpYVBsYXllcjo6Z2V0UmF3Q29va2llcyhjb25zdCBVUkwmIHVybCwgVmVj
dG9yPENvb2tpZT4mIGNvb2tpZXMpIGNvbnN0Cit7CisgICAgaWYgKCFtX21lZGlhUGxheWVyQ2xp
ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9tZWRpYVBsYXllckNs
aWVudC0+bWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKHVybCwgY29va2llcyk7Cit9CiAjZW5kaWYK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgK
aW5kZXggZjIxNzc4ZTczMjMzYzNjY2JhZmI4NWE0ZGI2MjRkZTA4MDBlMWVmNS4uMWJiODVkN2Rh
ODg1MzlmMzhiMTQxNDc2MjkxMTBmYmVkMWYyNWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC03Niw2ICs3Niw3IEBAIGNsYXNzIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudDsKICNlbmRpZgogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
SW50ZXJmYWNlOwogY2xhc3MgVGV4dFRyYWNrUmVwcmVzZW50YXRpb247CitzdHJ1Y3QgQ29va2ll
OwogCiAvLyBTdHJ1Y3R1cmUgdGhhdCB3aWxsIGhvbGQgZXZlcnkgbmF0aXZlCiAvLyB0eXBlcyBz
dXBwb3J0ZWQgYnkgdGhlIGN1cnJlbnQgbWVkaWEgcGxheWVyLgpAQCAtMjY0LDYgKzI2NSw3IEBA
IHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBs
YXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3Rv
cjxDb29raWU+JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogICAgIAogICAgIHZp
cnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZFdhaXRGb3JSZXNwb25zZVRvQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKSB7IHJldHVybiBmYWxz
ZTsgfQpAQCAtNTYwLDYgKzU2Miw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAg
ICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0OworICAgIGJv
b2wgZ2V0UmF3Q29va2llcyhjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0OwogI2Vu
ZGlmCiAKICAgICBzdGF0aWMgdm9pZCByZXNldE1lZGlhRW5naW5lcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KaW5kZXggYjU4OWEzZjVkNDY1MzU3Yzc3MjI2OGY2ZmFiOWYxZGVjZDUxMDRiZi4u
ZTdiNTRiNzFkNjU3NDMwMjRkNmI5MTkzNDc4NzZkMTk3ZWUxZGE4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZS5oIgogI2ltcG9ydCAiQmxvY2tFeGNlcHRpb25zLmgiCiAjaW1wb3J0ICJDRE1TZXNzaW9u
QVZGb3VuZGF0aW9uT2JqQy5oIgorI2ltcG9ydCAiQ29va2llLmgiCiAjaW1wb3J0ICJFeGNlcHRp
b25Db2RlUGxhY2Vob2xkZXIuaCIKICNpbXBvcnQgIkZsb2F0Q29udmVyc2lvbi5oIgogI2ltcG9y
dCAiRmxvYXRDb252ZXJzaW9uLmgiCkBAIC0yMjgsNiArMjI5LDcgQEAgU09GVF9MSU5LX1BPSU5U
RVIoQVZGb3VuZGF0aW9uLCBBVlBsYXllckl0ZW1MZWdpYmxlT3V0cHV0VGV4dFN0eWxpbmdSZXNv
bHV0aW9uU28KICNlbmRpZgogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKK1NPRlRfTElOS19Q
T0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5LCBOU1N0cmluZyop
CiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRl
cm5hdGVUcmFja3NLZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlv
biwgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0Rpc3BsYXlOYW1lS2V5LCBOU1N0cmluZyopCiBT
T0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tF
eHRlbmRlZExhbmd1YWdlVGFnS2V5LCBOU1N0cmluZyopCkBAIC0yMzgsNiArMjQwLDcgQEAgU09G
VF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrU291
cmNlS2V5LCBOU1N0cmluZyopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVk
aWFDaGFyYWN0ZXJpc3RpY0Rlc2NyaWJlc011c2ljQW5kU291bmRGb3JBY2Nlc3NpYmlsaXR5LCBO
U1N0cmluZyopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFDaGFyYWN0
ZXJpc3RpY1RyYW5zY3JpYmVzU3Bva2VuRGlhbG9nRm9yQWNjZXNzaWJpbGl0eSwgTlNTdHJpbmcq
KQogCisjZGVmaW5lIEFWVVJMQXNzZXRIVFRQQ29va2llc0tleSBnZXRBVlVSTEFzc2V0SFRUUENv
b2tpZXNLZXkoKQogI2RlZmluZSBBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tzS2V5
IGdldEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRlcm5hdGVUcmFja3NLZXkoKQogI2RlZmluZSBBVk91
dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXkgZ2V0QVZPdXRPZkJhbmRBbHRlcm5h
dGVUcmFja0Rpc3BsYXlOYW1lS2V5KCkKICNkZWZpbmUgQVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFj
a0V4dGVuZGVkTGFuZ3VhZ2VUYWdLZXkgZ2V0QVZPdXRPZkJhbmRBbHRlcm5hdGVUcmFja0V4dGVu
ZGVkTGFuZ3VhZ2VUYWdLZXkoKQpAQCAtNzEyLDYgKzcxNSwxNyBAQCBzdGF0aWMgTlNVUkwgKmNh
bm9uaWNhbFVSTChjb25zdCBTdHJpbmcmIHVybCkKICAgICByZXR1cm4gW2Nhbm9uaWNhbFJlcXVl
c3QgVVJMXTsKIH0KIAorc3RhdGljIE5TSFRUUENvb2tpZSogdG9OU0hUVFBDb29raWUoY29uc3Qg
Q29va2llJiBjb29raWUpCit7CisgICAgcmV0dXJuIFtOU0hUVFBDb29raWUgY29va2llV2l0aFBy
b3BlcnRpZXM6QHsKKyAgICAgICAgTlNIVFRQQ29va2llTmFtZTogY29va2llLm5hbWUsCisgICAg
ICAgIE5TSFRUUENvb2tpZVZhbHVlOiBjb29raWUudmFsdWUsCisgICAgICAgIE5TSFRUUENvb2tp
ZURvbWFpbjogY29va2llLmRvbWFpbiwKKyAgICAgICAgTlNIVFRQQ29va2llUGF0aDogY29va2ll
LnBhdGgsCisgICAgICAgIE5TSFRUUENvb2tpZUV4cGlyZXM6IFtOU0RhdGUgZGF0ZVdpdGhUaW1l
SW50ZXJ2YWxTaW5jZTE5NzA6KGNvb2tpZS5leHBpcmVzIC8gMTAwMCldLAorICAgICAgICB9XTsK
K30KKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVBVkFz
c2V0Rm9yVVJMKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmIChtX2F2QXNzZXQpCkBAIC03
NzQsNiArNzg4LDE3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlQVZBc3NldEZvclVSTChjb25zdCBTdHJpbmcmIHVybCkKICAgICAgICAgW29wdGlvbnMg
c2V0T2JqZWN0Om5ldHdvcmtJbnRlcmZhY2VOYW1lIGZvcktleTpBVlVSTEFzc2V0Qm91bmROZXR3
b3JrSW50ZXJmYWNlTmFtZV07CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBWZWN0
b3I8Q29va2llPiBjb29raWVzOworICAgIGlmIChwbGF5ZXIoKS0+Z2V0UmF3Q29va2llcyhVUkwo
UGFyc2VkVVJMU3RyaW5nLCB1cmwpLCBjb29raWVzKSkgeworICAgICAgICBSZXRhaW5QdHI8TlNN
dXRhYmxlQXJyYXk+IG5zQ29va2llcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdFdpdGhDYXBhY2l0eTpjb29raWVzLnNpemUoKV0pOworICAgICAgICBmb3IgKGF1dG8mIGNv
b2tpZSA6IGNvb2tpZXMpCisgICAgICAgICAgICBbbnNDb29raWVzIGFkZE9iamVjdDp0b05TSFRU
UENvb2tpZShjb29raWUpXTsKKworICAgICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6bnNDb29raWVz
LmdldCgpIGZvcktleTpBVlVSTEFzc2V0SFRUUENvb2tpZXNLZXldOworICAgIH0KKyNlbmRpZgor
CiAgICAgTlNVUkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7CiAgICAgbV9hdkFzc2V0
ID0gYWRvcHROUyhbW0FWVVJMQXNzZXQgYWxsb2NdIGluaXRXaXRoVVJMOmNvY29hVVJMIG9wdGlv
bnM6b3B0aW9ucy5nZXQoKV0pOwogCg==
</data>
<flag name="review"
          id="261030"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236416</attachid>
            <date>2014-08-11 17:31:39 -0700</date>
            <delta_ts>2014-08-11 17:31:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-135816-20140811173128.patch</filename>
            <type>text/plain</type>
            <size>8678</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyMzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI5NTkxNWIwODM3ZDZl
ZmJiOWVjZmY4MzYyNmFmODJiY2Q0MTMyMi4uM2ZlODQyMDA1YjQ5MDI5YjllODllNjFjYmI4ZTdl
ZGIyNjhkNDU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA4LTExICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIDx2aWRlbz4gZWxl
bWVudCByZXF1ZXN0cyBhcmUgbWlzc2luZyBzZXNzaW9uIGNvb2tpZXM7IHNvbWV0aW1lcyBwZXJz
aXN0YW50IGNvb2tpZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzU4MTYKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292
LgorCisgICAgICAgIE9uIGlPUywgdGhlIEFWRm91bmRhdGlvbiBmcmFtZXdvcmsgd2lsbCBjb3B5
IGFwcHJvcHJpYXRlIGNvb2tpZXMgZm9yIHRoZSByZXF1ZXN0ZWQgVVJMIGFjcm9zcyB0byB0aGUK
KyAgICAgICAgbWVkaWFzZXJ2ZXJkIHByb2Nlc3MuIEZvciBXZWJLaXQyLCB0aGUgV2ViUHJvY2Vz
cyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBzZXNzaW9uIGNvb2tpZXMgZm9yIHRoZSAKKyAgICAg
ICAgY3VycmVudCBicm93c2luZyBzZXNzaW9uLiBXaGVuIGNyZWF0aW5nIGFuIEFWVVJMQXNzZXQs
IGZldGNoIHRoZSBhcHByb3ByaWF0ZSBjb29raWVzIGZvciB0aGUgcmVxdWVzdGVkCisgICAgICAg
IFVSTCwgYW5kIHBhc3MgdGhlbSBpbnRvIEFWVVJMQXNzZXQgaW4gdGhlIG9wdGlvbnMgZGljdGlv
bmFyeS4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckdldFJhd0Nvb2tpZXMpOiBDYWxs
IENvb2tpZUphcidzIGVxdWl2YWxlbnQgbWV0aG9kLgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpnZXRSYXdDb29raWVzKTogUGFzcyB0byBI
VE1MTWVkaWFFbGVtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJHZXRS
YXdDb29raWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dG9OU0hUVFBDb29raWUpOiBDb252ZXJ0IGEgV2ViQ29yZSBDb29raWUgLT4gTlNIVFRQQ29v
a2llLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6Y3JlYXRlQVZBc3NldEZvclVSTCk6IEZldGNoIGNvb2tpZXMgZm9yIHRoZSByZXF1ZXN0ZWQK
KyAgICAgICAgICAgIFVSTCwgYW5kIGlmIHN1Y2Nlc3NmdWwsIGFkZCB0aGVtIHRvIHRoZSBBVlVS
TEFzc2V0IG9wdGlvbnMgZGljdGlvbmFyeS4KKwogMjAxNC0wOC0wNyAgSmVyIE5vYmxlICA8amVy
Lm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbRU1FXVtNYWNdIEVycm9yIGNvZGVzIHJldHVy
bmVkIGJ5IEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyIGFyZSBuZWdhdGl2ZTsgY2xpcCB3aGVu
IHBhc3NlZCB0byBKYXZhU2NyaXB0IGFzIGRvdWJsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCBlYWU1ZmM4ZjA1YTdlMWE5NGQ2OWY2NDVjODIzYWIyMGZh
ODJhYTAwLi4yZDU4MDc0MWU3NDUzMThhYTIzN2IxZGQzYmQ2ZmYwMzViOTUwZjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGlj
eS5oIgogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCisjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAj
aW5jbHVkZSAiRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmgiCiAjaW5jbHVkZSAiRGlzcGxheVNsZWVw
RGlzYWJsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtNTc0NCw2ICs1NzQ1
LDExIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck5ldHdvcmtJbnRlcmZh
Y2VOYW1lKCkgY29uc3QKIAogICAgIHJldHVybiBzZXR0aW5ncy0+bmV0d29ya0ludGVyZmFjZU5h
bWUoKTsKIH0KKworYm9vbCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiB1cmwsIFZlY3RvcjxDb29raWU+JiBjb29raWVzKSBjb25zdAoreworICAg
IHJldHVybiBnZXRSYXdDb29raWVzKCZkb2N1bWVudCgpLCB1cmwsIGNvb2tpZXMpOworfQogI2Vu
ZGlmCiAgICAgCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0
aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCmluZGV4IDA4YTE4ZTYyZjJjNDYzZDAyNTFhYjZhZGRlMDY3ZDc3NWY3ZmNhN2IuLjNk
MWVmOGJkYjFmYTY4ODFjYmJkZDZmYzkyYTc4ODBjY2NkNmEwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01NzIsNiArNTcyLDcgQEAgcHJpdmF0ZToKIAogI2lm
IFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFN0cmluZyBtZWRpYVBsYXllck5ldHdvcmtJbnRl
cmZhY2VOYW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyR2V0UmF3Q29v
a2llcyhjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlm
CiAKICAgICB2b2lkIGxvYWRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5k
ZXggYzI3YjU5MTMwNDE5NjJhYjIzYjM2NTNkNDYyY2NlYmYyOTIzMTgxMS4uNzk2YTY1ZjMzMWVj
MGUzMWQ4ZTc4MWZlOWE5MDk1Mzc0MmEwZDdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMTQyOCw2ICsxNDI4LDE0IEBAIFN0
cmluZyBNZWRpYVBsYXllcjo6bWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0
CiAKICAgICByZXR1cm4gbV9tZWRpYVBsYXllckNsaWVudC0+bWVkaWFQbGF5ZXJOZXR3b3JrSW50
ZXJmYWNlTmFtZSgpOwogfQorCitib29sIE1lZGlhUGxheWVyOjpnZXRSYXdDb29raWVzKGNvbnN0
IFVSTCYgdXJsLCBWZWN0b3I8Q29va2llPiYgY29va2llcykgY29uc3QKK3sKKyAgICBpZiAoIW1f
bWVkaWFQbGF5ZXJDbGllbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBt
X21lZGlhUGxheWVyQ2xpZW50LT5tZWRpYVBsYXllckdldFJhd0Nvb2tpZXModXJsLCBjb29raWVz
KTsKK30KICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAppbmRleCBmMjE3NzhlNzMyMzNjM2NjYmFmYjg1YTRkYjYyNGRlMDgwMGUx
ZWY1Li4xYmI4NWQ3ZGE4ODUzOWYzOGIxNDE0NzYyOTExMGZiZWQxZjI1ZjlmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKQEAgLTc2LDYgKzc2
LDcgQEAgY2xhc3MgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50OwogI2VuZGlmCiBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVJbnRlcmZhY2U7CiBjbGFzcyBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbjsK
K3N0cnVjdCBDb29raWU7CiAKIC8vIFN0cnVjdHVyZSB0aGF0IHdpbGwgaG9sZCBldmVyeSBuYXRp
dmUKIC8vIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBtZWRpYSBwbGF5ZXIuCkBAIC0y
NjQsNiArMjY1LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwg
U3RyaW5nIG1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBjb25zdCB7IHJldHVybiBT
dHJpbmcoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tpZXMoY29u
c3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlm
CiAgICAgCiAgICAgdmlydHVhbCBib29sIG1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNl
VG9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYp
IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC01NjAsNiArNTYyLDcgQEAgcHVibGljOgogCiAjaWYgUExB
VEZPUk0oSU9TKQogICAgIFN0cmluZyBtZWRpYVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkg
Y29uc3Q7CisgICAgYm9vbCBnZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+
JikgY29uc3Q7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHJlc2V0TWVkaWFFbmdpbmVzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBiNTg5YTNmNWQ0NjUzNTdjNzcyMjY4ZjZmYWI5
ZjFkZWNkNTEwNGJmLi4wYTc4ODVlNDA4ZGEzMzE0MTU5MTExMTIyYmY3NzNjZGQzMjIxN2E3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlLmgiCiAjaW1wb3J0ICJCbG9ja0V4Y2VwdGlvbnMuaCIKICNpbXBv
cnQgIkNETVNlc3Npb25BVkZvdW5kYXRpb25PYmpDLmgiCisjaW1wb3J0ICJDb29raWUuaCIKICNp
bXBvcnQgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgogI2ltcG9ydCAiRmxvYXRDb252ZXJz
aW9uLmgiCiAjaW1wb3J0ICJGbG9hdENvbnZlcnNpb24uaCIKQEAgLTIyOCw2ICsyMjksNyBAQCBT
T0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWUGxheWVySXRlbUxlZ2libGVPdXRwdXRU
ZXh0U3R5bGluZ1Jlc29sdXRpb25TbwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05T
KQorU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0SFRUUENvb2tpZXNL
ZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZVUkxBc3Nl
dE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSwgTlNTdHJpbmcqKQogU09GVF9MSU5LX1BPSU5U
RVIoQVZGb3VuZGF0aW9uLCBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXks
IE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZPdXRPZkJhbmRB
bHRlcm5hdGVUcmFja0V4dGVuZGVkTGFuZ3VhZ2VUYWdLZXksIE5TU3RyaW5nKikKQEAgLTIzOCw2
ICsyNDAsNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWT3V0T2ZCYW5kQWx0
ZXJuYXRlVHJhY2tTb3VyY2VLZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91
bmRhdGlvbiwgQVZNZWRpYUNoYXJhY3RlcmlzdGljRGVzY3JpYmVzTXVzaWNBbmRTb3VuZEZvckFj
Y2Vzc2liaWxpdHksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwg
QVZNZWRpYUNoYXJhY3RlcmlzdGljVHJhbnNjcmliZXNTcG9rZW5EaWFsb2dGb3JBY2Nlc3NpYmls
aXR5LCBOU1N0cmluZyopCiAKKyNkZWZpbmUgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5IGdldEFW
VVJMQXNzZXRIVFRQQ29va2llc0tleSgpCiAjZGVmaW5lIEFWVVJMQXNzZXRPdXRPZkJhbmRBbHRl
cm5hdGVUcmFja3NLZXkgZ2V0QVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSgp
CiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tEaXNwbGF5TmFtZUtleSBnZXRBVk91
dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVLZXkoKQogI2RlZmluZSBBVk91dE9mQmFu
ZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSBnZXRBVk91dE9mQmFuZEFsdGVy
bmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSgpCkBAIC03MTIsNiArNzE1LDI0IEBAIHN0
YXRpYyBOU1VSTCAqY2Fub25pY2FsVVJMKGNvbnN0IFN0cmluZyYgdXJsKQogICAgIHJldHVybiBb
Y2Fub25pY2FsUmVxdWVzdCBVUkxdOwogfQogCitzdGF0aWMgTlNIVFRQQ29va2llKiB0b05TSFRU
UENvb2tpZShjb25zdCBDb29raWUmIGNvb2tpZSkKK3sKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxl
RGljdGlvbmFyeT4gcHJvcGVydGllcyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0XSk7CisgICAgW3Byb3BlcnRpZXMgc2V0RGljdGlvbmFyeTpAeworICAgICAgICBO
U0hUVFBDb29raWVOYW1lOiBjb29raWUubmFtZSwKKyAgICAgICAgTlNIVFRQQ29va2llVmFsdWU6
IGNvb2tpZS52YWx1ZSwKKyAgICAgICAgTlNIVFRQQ29va2llRG9tYWluOiBjb29raWUuZG9tYWlu
LAorICAgICAgICBOU0hUVFBDb29raWVQYXRoOiBjb29raWUucGF0aCwKKyAgICAgICAgTlNIVFRQ
Q29va2llRXhwaXJlczogW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooY29v
a2llLmV4cGlyZXMgLyAxMDAwKV0sCisgICAgfV07CisgICAgaWYgKGNvb2tpZS5zZWN1cmUpCisg
ICAgICAgIFtwcm9wZXJ0aWVzIHNldE9iamVjdDpAWUVTIGZvcktleTpOU0hUVFBDb29raWVTZWN1
cmVdOworICAgIGlmIChjb29raWUuc2Vzc2lvbikKKyAgICAgICAgW3Byb3BlcnRpZXMgc2V0T2Jq
ZWN0OkBZRVMgZm9yS2V5Ok5TSFRUUENvb2tpZURpc2NhcmRdOworCisgICAgcmV0dXJuIFtOU0hU
VFBDb29raWUgY29va2llV2l0aFByb3BlcnRpZXM6cHJvcGVydGllcy5nZXQoKV07Cit9CisKIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y3JlYXRlQVZBc3NldEZvclVS
TChjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBpZiAobV9hdkFzc2V0KQpAQCAtNzc0LDYgKzc5
NSwxNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFW
QXNzZXRGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgICAgIFtvcHRpb25zIHNldE9iamVj
dDpuZXR3b3JrSW50ZXJmYWNlTmFtZSBmb3JLZXk6QVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVy
ZmFjZU5hbWVdOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgVmVjdG9yPENvb2tp
ZT4gY29va2llczsKKyAgICBpZiAocGxheWVyKCktPmdldFJhd0Nvb2tpZXMoVVJMKFBhcnNlZFVS
TFN0cmluZywgdXJsKSwgY29va2llcykpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFy
cmF5PiBuc0Nvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
Q2FwYWNpdHk6Y29va2llcy5zaXplKCldKTsKKyAgICAgICAgZm9yIChhdXRvJiBjb29raWUgOiBj
b29raWVzKQorICAgICAgICAgICAgW25zQ29va2llcyBhZGRPYmplY3Q6dG9OU0hUVFBDb29raWUo
Y29va2llKV07CisKKyAgICAgICAgW29wdGlvbnMgc2V0T2JqZWN0Om5zQ29va2llcy5nZXQoKSBm
b3JLZXk6QVZVUkxBc3NldEhUVFBDb29raWVzS2V5XTsKKyAgICB9CisjZW5kaWYKKwogICAgIE5T
VVJMICpjb2NvYVVSTCA9IGNhbm9uaWNhbFVSTCh1cmwpOwogICAgIG1fYXZBc3NldCA9IGFkb3B0
TlMoW1tBVlVSTEFzc2V0IGFsbG9jXSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25zOm9wdGlv
bnMuZ2V0KCldKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>