<?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>132077</bug_id>
          
          <creation_ts>2014-04-23 14:23:56 -0700</creation_ts>
          <short_desc>[Mac, iOS] Stop buffering media when on an inactive tab</short_desc>
          <delta_ts>2014-04-23 18:24:26 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003381</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 14:23:56 -0700</bug_when>
    <thetext>We shouldn&apos;t waste bandwidth and energy downloading and decoding media if the user isn&apos;t playing the media, and has switched to a different tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003383</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 14:24:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/15349921&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003386</commentid>
    <comment_count>2</comment_count>
      <attachid>230011</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 14:33:12 -0700</bug_when>
    <thetext>Created attachment 230011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003398</commentid>
    <comment_count>3</comment_count>
      <attachid>230011</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-23 15:03:50 -0700</bug_when>
    <thetext>Comment on attachment 230011
Patch

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

&gt; Source/WebCore/platform/audio/MediaSession.h:105
&gt; +    bool m_elementIsHidden;

This is never initialized, but I don&apos;t know how it can be. Maybe it makes more sense to not cache this state but to always ask the client?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003422</commentid>
    <comment_count>4</comment_count>
      <attachid>230018</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 16:19:45 -0700</bug_when>
    <thetext>Created attachment 230018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003431</commentid>
    <comment_count>5</comment_count>
      <attachid>230018</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-23 16:30:27 -0700</bug_when>
    <thetext>Comment on attachment 230018
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6147
&gt; +void HTMLMediaElement::shouldBufferData(bool shouldBuffer)

I should have noticed this before, but &quot;shouldBufferData&quot; sounds like it is a getter. Maybe &quot;setShouldBufferData&quot;?

&gt; Source/WebCore/html/HTMLMediaElement.cpp:6150
&gt; +        return m_player-&gt;shouldBufferData(shouldBuffer);

Ditto.

&gt; Source/WebCore/platform/audio/MediaSession.cpp:64
&gt; +    , m_elementIsHidden(false)

This isn&apos;t used.

&gt; Source/WebCore/platform/audio/MediaSession.cpp:111
&gt; +    clientShouldBufferDataIfNotHiddenOrPlaying();

Nit: this name is a mouthful!

&gt; Source/WebCore/platform/audio/MediaSession.cpp:175
&gt; +void MediaSession::clientShouldBufferDataIfNotHiddenOrPlaying()
&gt; +{
&gt; +    if (m_client.elementIsHidden() &amp;&amp; m_state != Playing)
&gt; +        m_client.shouldBufferData(false);
&gt; +    else
&gt; +        m_client.shouldBufferData(true);
&gt; +}

I think part of the reason the name is so long is because it is used by the client and internally by the session. I would prefer something like &quot;visibilityChanged()&quot; for the client and &quot;updateClientDataBuffering&quot; for use within the session.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003438</commentid>
    <comment_count>6</comment_count>
      <attachid>230024</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 17:10:13 -0700</bug_when>
    <thetext>Created attachment 230024
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003441</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 17:17:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 230018 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230018&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:6147
&gt; &gt; +void HTMLMediaElement::shouldBufferData(bool shouldBuffer)
&gt; 
&gt; I should have noticed this before, but &quot;shouldBufferData&quot; sounds like it is a getter. Maybe &quot;setShouldBufferData&quot;?
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:6150
&gt; &gt; +        return m_player-&gt;shouldBufferData(shouldBuffer);
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/MediaSession.cpp:64
&gt; &gt; +    , m_elementIsHidden(false)
&gt; 
&gt; This isn&apos;t used.
&gt; 
&gt; &gt; Source/WebCore/platform/audio/MediaSession.cpp:111
&gt; &gt; +    clientShouldBufferDataIfNotHiddenOrPlaying();
&gt; 
&gt; Nit: this name is a mouthful!
&gt; 
&gt; &gt; Source/WebCore/platform/audio/MediaSession.cpp:175
&gt; &gt; +void MediaSession::clientShouldBufferDataIfNotHiddenOrPlaying()
&gt; &gt; +{
&gt; &gt; +    if (m_client.elementIsHidden() &amp;&amp; m_state != Playing)
&gt; &gt; +        m_client.shouldBufferData(false);
&gt; &gt; +    else
&gt; &gt; +        m_client.shouldBufferData(true);
&gt; &gt; +}
&gt; 
&gt; I think part of the reason the name is so long is because it is used by the client and internally by the session. I would prefer something like &quot;visibilityChanged()&quot; for the client and &quot;updateClientDataBuffering&quot; for use within the session.

Agreed. I&apos;ve changed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003453</commentid>
    <comment_count>8</comment_count>
      <attachid>230024</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-23 18:08:56 -0700</bug_when>
    <thetext>Comment on attachment 230024
Patch

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

Thanks!

&gt; Source/WebCore/platform/audio/MediaSession.h:130
&gt; +#if ENABLE(PAGE_VISIBILITY_API)
&gt; +    virtual bool elementIsHidden() const { return false; }
&gt; +#endif

I don&apos;t think this is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003454</commentid>
    <comment_count>9</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-04-23 18:24:26 -0700</bug_when>
    <thetext>Committed r167734: &lt;http://trac.webkit.org/changeset/167734&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230011</attachid>
            <date>2014-04-23 14:33:12 -0700</date>
            <delta_ts>2014-04-23 16:19:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132077-20140423143251.patch</filename>
            <type>text/plain</type>
            <size>10666</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTIzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWMsIGlPU10gU3RvcCBi
dWZmZXJpbmcgbWVkaWEgd2hlbiBvbiBhbiBpbmFjdGl2ZSB0YWIuIAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOiBSZW5hbWUgJ21faXNEaXNwbGF5U2xlZXBEaXNhYmxpbmdTdXNwZW5kZWQnCisgICAgICAg
IHRvICdtX2VsZW1lbnRJc0hpZGRlbicuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnZpc2liaWxpdHlTdGF0dXNDaGFuZ2VkKTogTm90aWZ5IHRoZQorICAgICAgICBtZWRpYSBz
ZXNzaW9uIHRoYXQgdGhlIGVsZW1lbnQgaXMgKG9yIGlzIG5vdCkgaGlkZGVuLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkQnVmZmVyRGF0YSk6IEFkZGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNsaWVu
dFdpbGxCZWdpblBsYXliYWNrKTogVGVsbCBtZWRpYSB0bworICAgICAgICBidWZmZXIgaWYgbm90
IGhpZGRlbiBvciBwbGF5aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpjbGll
bnRXaWxsUGF1c2VQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpzZXRFbGVtZW50SXNIaWRkZW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6YnVmZmVyRGF0YUlmTm90SGlkZGVuT3JQbGF5aW5nKTogVGVsbCBjbGllbnQKKyAg
ICAgICAgaXQgc2hvdWxkIG9ubHkgYnVmZmVyIGRhdGEgaWYgaXQncyBjdXJyZW50bHkgcGxheWlu
Zywgb3Igbm90IGhpZGRlbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNsaWVudDo6c2hvdWxkQnVmZmVyRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNob3VsZEJ1ZmZlckRhdGEpOiBBZGRlZDogSnVzdCBy
ZWxheXMgdG8KKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlIG9iamVjdC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlOjpzaG91bGRCdWZmZXJEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2hvdWxkQnVmZmVyRGF0YSk6IEFkZGVkLgorICAgICAgICBEZXRhY2ggdGhl
IHBsYXllciBpdGVtIGZyb20gdGhlIHBsYXllciBpZiB3ZSBkb24ndCB3YW50IHRvIGNvbnRpbnVl
CisgICAgICAgIGJ1ZmZlcmluZyBvciBvdGhlciBiYWNrZ3JvdW5kIHRhc2tzLgorCiAyMDE0LTA0
LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3NzIwLgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjUsNyArMzI1
LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdAogICAgICwgbV9o
YXZlUHJlcGFyZWRUb1BsYXkoZmFsc2UpCiAgICAgLCBtX3BhcnNpbmdJblByb2dyZXNzKGNyZWF0
ZWRCeVBhcnNlcikKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKLSAgICAsIG1faXNE
aXNwbGF5U2xlZXBEaXNhYmxpbmdTdXNwZW5kZWQoZG9jdW1lbnQuaGlkZGVuKCkpCisgICAgLCBt
X2VsZW1lbnRJc0hpZGRlbihkb2N1bWVudC5oaWRkZW4oKSkKICNlbmRpZgogI2lmIFBMQVRGT1JN
KElPUykKICAgICAsIG1fcmVxdWVzdGluZ1BsYXkoZmFsc2UpCkBAIC00NzE2LDggKzQ3MTYsOSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhVm9sdW1lRGlkQ2hhCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQiKTsKLSAgICBtX2lzRGlzcGxh
eVNsZWVwRGlzYWJsaW5nU3VzcGVuZGVkID0gZG9jdW1lbnQoKS5oaWRkZW4oKTsKKyAgICBtX2Vs
ZW1lbnRJc0hpZGRlbiA9IGRvY3VtZW50KCkuaGlkZGVuKCk7CiAgICAgdXBkYXRlU2xlZXBEaXNh
YmxpbmcoKTsKKyAgICBtX21lZGlhU2Vzc2lvbi0+c2V0RWxlbWVudElzSGlkZGVuKG1fZWxlbWVu
dElzSGlkZGVuKTsKIH0KICNlbmRpZgogCkBAIC01NjgyLDcgKzU2ODMsNyBAQCBib29sIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNob3VsZERpc2FibGVTbGVlCiAjZW5kaWYKIAogI2lmIEVOQUJMRShQQUdF
X1ZJU0lCSUxJVFlfQVBJKQotICAgIGlmIChtX2lzRGlzcGxheVNsZWVwRGlzYWJsaW5nU3VzcGVu
ZGVkKQorICAgIGlmIChtX2VsZW1lbnRJc0hpZGRlbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
I2VuZGlmCiAKQEAgLTYxNDIsNiArNjE0MywxMiBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmRv
ZXNIYXZlQXR0cmlidXRlCiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CisKK3ZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6c2hvdWxkQnVmZmVyRGF0YShib29sIHNob3VsZEJ1ZmZlcikKK3sKKyAgICBp
ZiAobV9wbGF5ZXIpCisgICAgICAgIHJldHVybiBtX3BsYXllci0+c2hvdWxkQnVmZmVyRGF0YShz
aG91bGRCdWZmZXIpOworfQogICAgIAogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OSw2ICsxOTksNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRMb29wKGJvb2wgYik7CiAgICAgdmlydHVhbCB2b2lkIHBsYXkoKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2hvdWxkQnVmZmVyRGF0YShib29sKSBvdmVycmlkZTsKICAgICB2b2lkIGZhc3RTZWVr
KGRvdWJsZSk7CiAKIC8vIGNhcHRpb25zCkBAIC04MzAsNyArODMxLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1faGF2ZVByZXBhcmVkVG9QbGF5IDogMTsKICAgICBib29sIG1fcGFyc2luZ0luUHJv
Z3Jlc3MgOiAxOwogI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQotICAgIGJvb2wgbV9p
c0Rpc3BsYXlTbGVlcERpc2FibGluZ1N1c3BlbmRlZCA6IDE7CisgICAgYm9vbCBtX2VsZW1lbnRJ
c0hpZGRlbiA6IDE7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAkocmV2aXNpb24gMTY3
NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3IEBAIGJvb2wgTWVkaWFTZXNzaW9uOjpjbGll
bnRXaWxsQmVnaW5QbGF5YmEKIHsKICAgICBzZXRTdGF0ZShQbGF5aW5nKTsKICAgICBNZWRpYVNl
c3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKCp0
aGlzKTsKKyAgICBidWZmZXJEYXRhSWZOb3RIaWRkZW5PclBsYXlpbmcoKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApAQCAtMTIxLDYgKzEyMiw3IEBAIGJvb2wgTWVkaWFTZXNzaW9uOjpjbGllbnRX
aWxsUGF1c2VQbGF5YmEKICAgICAKICAgICBzZXRTdGF0ZShQYXVzZWQpOwogICAgIE1lZGlhU2Vz
c2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uV2lsbEVuZFBsYXliYWNrKCp0aGlz
KTsKKyAgICBidWZmZXJEYXRhSWZOb3RIaWRkZW5PclBsYXlpbmcoKTsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApAQCAtMTU5LDcgKzE2MSwyMiBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2
ZVJlbW90ZUNvbnRyCiB7CiAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21t
YW5kKGNvbW1hbmQpOwogfQotICAgIAorCit2b2lkIE1lZGlhU2Vzc2lvbjo6c2V0RWxlbWVudElz
SGlkZGVuKGJvb2wgaGlkZGVuKQoreworICAgIG1fZWxlbWVudElzSGlkZGVuID0gaGlkZGVuOwor
ICAgIGJ1ZmZlckRhdGFJZk5vdEhpZGRlbk9yUGxheWluZygpOworfQorCit2b2lkIE1lZGlhU2Vz
c2lvbjo6YnVmZmVyRGF0YUlmTm90SGlkZGVuT3JQbGF5aW5nKCkKK3sKKyAgICBpZiAobV9lbGVt
ZW50SXNIaWRkZW4gJiYgbV9zdGF0ZSAhPSBQbGF5aW5nKQorICAgICAgICBtX2NsaWVudC5zaG91
bGRCdWZmZXJEYXRhKGZhbHNlKTsKKyAgICBlbHNlCisgICAgICAgIG1fY2xpZW50LnNob3VsZEJ1
ZmZlckRhdGEodHJ1ZSk7Cit9CisKKwogU3RyaW5nIE1lZGlhU2Vzc2lvbkNsaWVudDo6bWVkaWFT
ZXNzaW9uVGl0bGUoKSBjb25zdAogewogICAgIHJldHVybiBTdHJpbmcoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL01lZGlhU2Vzc2lvbi5oCShyZXZpc2lvbiAxNjc3
MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAkod29y
a2luZyBjb3B5KQpAQCAtNzIsNiArNzIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhdXNlU2Vz
c2lvbigpOwogICAgIAorICAgIHZvaWQgc2V0RWxlbWVudElzSGlkZGVuKGJvb2wpOworCiAgICAg
U3RyaW5nIHRpdGxlKCkgY29uc3Q7CiAgICAgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Q7CiAgICAg
ZG91YmxlIGN1cnJlbnRUaW1lKCkgY29uc3Q7CkBAIC05NCwxMCArOTYsMTMgQEAgcHJvdGVjdGVk
OgogICAgIE1lZGlhU2Vzc2lvbkNsaWVudCYgY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAogcHJpdmF0ZToKKyAgICB2b2lkIGJ1ZmZlckRhdGFJZk5vdEhpZGRlbk9yUGxheWlu
ZygpOworCiAgICAgTWVkaWFTZXNzaW9uQ2xpZW50JiBtX2NsaWVudDsKICAgICBTdGF0ZSBtX3N0
YXRlOwogICAgIFN0YXRlIG1fc3RhdGVUb1Jlc3RvcmU7CiAgICAgYm9vbCBtX25vdGlmeWluZ0Ns
aWVudDsKKyAgICBib29sIG1fZWxlbWVudElzSGlkZGVuOwogfTsKIAogY2xhc3MgTWVkaWFTZXNz
aW9uQ2xpZW50IHsKQEAgLTExNiw2ICsxMjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29s
IGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJlbW90
ZUNvbnRyb2xDb21tYW5kVHlwZSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEJ1ZmZl
ckRhdGEoYm9vbCkgeyB9CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25D
bGllbnQoKSB7IH0KIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUx
Myw2ICs1MTMsMTEgQEAgdm9pZCBNZWRpYVBsYXllcjo6cGF1c2UoKQogICAgIG1fcHJpdmF0ZS0+
cGF1c2UoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllcjo6c2hvdWxkQnVmZmVyRGF0YShib29sIHNo
b3VsZEJ1ZmZlcikKK3sKKyAgICBtX3ByaXZhdGUtPnNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVm
ZmVyKTsKK30KKwogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiBNZWRpYVBsYXllcjo6TWVk
aWFLZXlFeGNlcHRpb24gTWVkaWFQbGF5ZXI6OmdlbmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgY29uc3QgdW5zaWduZWQgY2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGlu
aXREYXRhTGVuZ3RoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzgsNiAr
MzM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwogICAgIHZvaWQgcGxh
eSgpOwogICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHNob3VsZEJ1ZmZlckRhdGEoYm9vbCk7
CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKSB8fCBFTkFCTEUoRU5DUllQVEVEX01FRElB
X1YyKQogICAgIC8vIFJlcHJlc2VudHMgc3luY2hyb25vdXMgZXhjZXB0aW9ucyB0aGF0IGNhbiBi
ZSB0aHJvd24gZnJvbSB0aGUgRW5jcnlwdGVkIE1lZGlhIG1ldGhvZHMuCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUu
aAkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBsYXkoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBh
dXNlKCkgPSAwOyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdWxkQnVmZmVyRGF0YShib29sKSB7
IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1NhdmUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAkocmV2aXNpb24gMTY3NzE0KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEs
NiArMTExLDggQEAgcHVibGljOgogICAgIHZvaWQgcmF0ZURpZENoYW5nZShkb3VibGUpOwogICAg
IHZvaWQgbWV0YWRhdGFEaWRBcnJpdmUoUmV0YWluUHRyPE5TQXJyYXk+LCBkb3VibGUpOwogCisg
ICAgdmlydHVhbCB2b2lkIHNob3VsZEJ1ZmZlckRhdGEoYm9vbCk7CisKICNpZiBIQVZFKEFWRk9V
TkRBVElPTl9WSURFT19PVVRQVVQpCiAgICAgdm9pZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdl
KEFWUGxheWVySXRlbVZpZGVvT3V0cHV0Kik7CiAjZW5kaWYKQEAgLTMyNiw2ICszMjgsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9jYWNoZWRCdWZmZXJFbXB0eTsKICAgICBib29sIG1fY2FjaGVk
QnVmZmVyRnVsbDsKICAgICBib29sIG1fY2FjaGVkSGFzRW5hYmxlZEF1ZGlvOworICAgIGJvb2wg
bV9zaG91bGRCdWZmZXJEYXRhOwogI2lmIEVOQUJMRShJT1NfQUlSUExBWSkKICAgICBtdXRhYmxl
IGJvb2wgbV9hbGxvd3NXaXJlbGVzc1ZpZGVvUGxheWJhY2s7CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzcxLDYgKzM3MSw3IEBAIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGkKICAgICAsIG1fY2FjaGVkQnVmZmVyRW1w
dHkoZmFsc2UpCiAgICAgLCBtX2NhY2hlZEJ1ZmZlckZ1bGwoZmFsc2UpCiAgICAgLCBtX2NhY2hl
ZEhhc0VuYWJsZWRBdWRpbyhmYWxzZSkKKyAgICAsIG1fc2hvdWxkQnVmZmVyRGF0YSh0cnVlKQog
I2lmIEVOQUJMRShJT1NfQUlSUExBWSkKICAgICAsIG1fYWxsb3dzV2lyZWxlc3NWaWRlb1BsYXli
YWNrKHRydWUpCiAjZW5kaWYKQEAgLTIyNzQsNiArMjI3NSwyMyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAgdXBkYXRlU3RhdGVzKCk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2hvdWxkQnVmZmVyRGF0YShib29s
IHNob3VsZEJ1ZmZlcikKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpzaG91bGRCdWZmZXJEYXRhKCVwKSAtICVzIiwgdGhpcywgYm9vbFN0cmlu
ZyhzaG91bGRCdWZmZXIpKTsKKyAgICBpZiAobV9zaG91bGRCdWZmZXJEYXRhID09IHNob3VsZEJ1
ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGRCdWZmZXJEYXRhID0gc2hvdWxk
QnVmZmVyOworICAgIAorICAgIGlmICghbV9hdlBsYXllcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKG1fc2hvdWxkQnVmZmVyRGF0YSkKKyAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgcmVw
bGFjZUN1cnJlbnRJdGVtV2l0aFBsYXllckl0ZW06bV9hdlBsYXllckl0ZW0uZ2V0KCldOworICAg
IGVsc2UKKyAgICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgcmVwbGFjZUN1cnJlbnRJdGVtV2l0aFBs
YXllckl0ZW06bmlsXTsKK30KKwogI2lmIEVOQUJMRShEQVRBQ1VFX1ZBTFVFKQogc3RhdGljIGNv
bnN0IEF0b21pY1N0cmluZyYgbWV0YWRhdGFUeXBlKE5TU3RyaW5nICphdk1ldGFkYXRhS2V5U3Bh
Y2UpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230018</attachid>
            <date>2014-04-23 16:19:45 -0700</date>
            <delta_ts>2014-04-23 17:10:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132077-20140423161923.patch</filename>
            <type>text/plain</type>
            <size>11377</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTIzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWMsIGlPU10gU3RvcCBi
dWZmZXJpbmcgbWVkaWEgd2hlbiBvbiBhbiBpbmFjdGl2ZSB0YWIuIAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOiBSZW5hbWUgJ21faXNEaXNwbGF5U2xlZXBEaXNhYmxpbmdTdXNwZW5kZWQnCisgICAgICAg
IHRvICdtX2VsZW1lbnRJc0hpZGRlbicuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnZpc2liaWxpdHlTdGF0dXNDaGFuZ2VkKTogTm90aWZ5IHRoZQorICAgICAgICBtZWRpYSBz
ZXNzaW9uIHRoYXQgdGhlIGVsZW1lbnQgaXMgKG9yIGlzIG5vdCkgaGlkZGVuLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2hvdWxkQnVmZmVyRGF0YSk6IEFkZGVkLgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNsaWVu
dFdpbGxCZWdpblBsYXliYWNrKTogVGVsbCBtZWRpYSB0bworICAgICAgICBidWZmZXIgaWYgbm90
IGhpZGRlbiBvciBwbGF5aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpjbGll
bnRXaWxsUGF1c2VQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNz
aW9uOjpzZXRFbGVtZW50SXNIaWRkZW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
U2Vzc2lvbjo6YnVmZmVyRGF0YUlmTm90SGlkZGVuT3JQbGF5aW5nKTogVGVsbCBjbGllbnQKKyAg
ICAgICAgaXQgc2hvdWxkIG9ubHkgYnVmZmVyIGRhdGEgaWYgaXQncyBjdXJyZW50bHkgcGxheWlu
Zywgb3Igbm90IGhpZGRlbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24u
aDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbkNsaWVudDo6c2hvdWxkQnVmZmVyRGF0
YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNob3VsZEJ1ZmZlckRhdGEpOiBBZGRlZDogSnVzdCBy
ZWxheXMgdG8KKyAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlIG9iamVjdC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlOjpzaG91bGRCdWZmZXJEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2hvdWxkQnVmZmVyRGF0YSk6IEFkZGVkLgorICAgICAgICBEZXRhY2ggdGhl
IHBsYXllciBpdGVtIGZyb20gdGhlIHBsYXllciBpZiB3ZSBkb24ndCB3YW50IHRvIGNvbnRpbnVl
CisgICAgICAgIGJ1ZmZlcmluZyBvciBvdGhlciBiYWNrZ3JvdW5kIHRhc2tzLgorCiAyMDE0LTA0
LTIzICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3NzIwLgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjUsNyArMzI1
LDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdAogICAgICwgbV9o
YXZlUHJlcGFyZWRUb1BsYXkoZmFsc2UpCiAgICAgLCBtX3BhcnNpbmdJblByb2dyZXNzKGNyZWF0
ZWRCeVBhcnNlcikKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKLSAgICAsIG1faXNE
aXNwbGF5U2xlZXBEaXNhYmxpbmdTdXNwZW5kZWQoZG9jdW1lbnQuaGlkZGVuKCkpCisgICAgLCBt
X2VsZW1lbnRJc0hpZGRlbihkb2N1bWVudC5oaWRkZW4oKSkKICNlbmRpZgogI2lmIFBMQVRGT1JN
KElPUykKICAgICAsIG1fcmVxdWVzdGluZ1BsYXkoZmFsc2UpCkBAIC00NzE2LDggKzQ3MTYsOSBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhVm9sdW1lRGlkQ2hhCiB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKQogewogICAgIExPRyhNZWRpYSwgIkhU
TUxNZWRpYUVsZW1lbnQ6OnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQiKTsKLSAgICBtX2lzRGlzcGxh
eVNsZWVwRGlzYWJsaW5nU3VzcGVuZGVkID0gZG9jdW1lbnQoKS5oaWRkZW4oKTsKKyAgICBtX2Vs
ZW1lbnRJc0hpZGRlbiA9IGRvY3VtZW50KCkuaGlkZGVuKCk7CiAgICAgdXBkYXRlU2xlZXBEaXNh
YmxpbmcoKTsKKyAgICBtX21lZGlhU2Vzc2lvbi0+Y2xpZW50U2hvdWxkQnVmZmVyRGF0YUlmTm90
SGlkZGVuT3JQbGF5aW5nKCk7CiB9CiAjZW5kaWYKIApAQCAtNTY4Miw3ICs1NjgzLDcgQEAgYm9v
bCBIVE1MTWVkaWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKLSAgICBpZiAobV9pc0Rpc3BsYXlTbGVlcERpc2FibGlu
Z1N1c3BlbmRlZCkKKyAgICBpZiAobV9lbGVtZW50SXNIaWRkZW4pCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICNlbmRpZgogCkBAIC02MTQyLDYgKzYxNDMsMTIgQEAgYm9vbCBIVE1MTWVkaWFFbGVt
ZW50Ojpkb2VzSGF2ZUF0dHJpYnV0ZQogICAgIAogICAgIHJldHVybiB0cnVlOwogfQorCit2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OnNob3VsZEJ1ZmZlckRhdGEoYm9vbCBzaG91bGRCdWZmZXIpCit7
CisgICAgaWYgKG1fcGxheWVyKQorICAgICAgICByZXR1cm4gbV9wbGF5ZXItPnNob3VsZEJ1ZmZl
ckRhdGEoc2hvdWxkQnVmZmVyKTsKK30KICAgICAKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE2NzcxNCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNiArMTk5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TG9vcChib29sIGIpOwogICAgIHZpcnR1YWwgdm9pZCBw
bGF5KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNob3VsZEJ1ZmZlckRhdGEoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBm
YXN0U2Vlayhkb3VibGUpOwogCiAvLyBjYXB0aW9ucwpAQCAtMjA2LDYgKzIwNywxMCBAQCBwdWJs
aWM6CiAgICAgYm9vbCB3ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoKSBjb25zdDsKICAgICB2
b2lkIHNldFdlYmtpdENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKTsKIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIHZpcnR1YWwgYm9vbCBlbGVtZW50SXNIaWRkZW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VsZW1lbnRJc0hpZGRlbjsgfQorI2VuZGlmCisKICNp
ZiBFTkFCTEUoTUVESUFfU1RBVElTVElDUykKIC8vIFN0YXRpc3RpY3MKICAgICB1bnNpZ25lZCB3
ZWJraXRBdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKQEAgLTgzMCw3ICs4MzUsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXZlUHJlcGFyZWRUb1BsYXkgOiAxOwogICAgIGJvb2wgbV9w
YXJzaW5nSW5Qcm9ncmVzcyA6IDE7CiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCi0g
ICAgYm9vbCBtX2lzRGlzcGxheVNsZWVwRGlzYWJsaW5nU3VzcGVuZGVkIDogMTsKKyAgICBib29s
IG1fZWxlbWVudElzSGlkZGVuIDogMTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCShy
ZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNl
c3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw5IEBAIE1lZGlhU2Vzc2lvbjo6
TWVkaWFTZXNzaW9uKE1lZGlhU2Vzc2lvbkMKICAgICAsIG1fc3RhdGUoSWRsZSkKICAgICAsIG1f
c3RhdGVUb1Jlc3RvcmUoSWRsZSkKICAgICAsIG1fbm90aWZ5aW5nQ2xpZW50KGZhbHNlKQorI2lm
IEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgICwgbV9lbGVtZW50SXNIaWRkZW4oZmFs
c2UpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9jbGllbnQubWVkaWFUeXBlKCkgPj0gTm9uZSAm
JiBtX2NsaWVudC5tZWRpYVR5cGUoKSA8PSBXZWJBdWRpbyk7CiAgICAgTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZFNlc3Npb24oKnRoaXMpOwpAQCAtMTA1LDYgKzEwOCw3
IEBAIGJvb2wgTWVkaWFTZXNzaW9uOjpjbGllbnRXaWxsQmVnaW5QbGF5YmEKIHsKICAgICBzZXRT
dGF0ZShQbGF5aW5nKTsKICAgICBNZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCku
c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKCp0aGlzKTsKKyAgICBjbGllbnRTaG91bGRCdWZmZXJE
YXRhSWZOb3RIaWRkZW5PclBsYXlpbmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTIx
LDYgKzEyNSw3IEBAIGJvb2wgTWVkaWFTZXNzaW9uOjpjbGllbnRXaWxsUGF1c2VQbGF5YmEKICAg
ICAKICAgICBzZXRTdGF0ZShQYXVzZWQpOwogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5zZXNzaW9uV2lsbEVuZFBsYXliYWNrKCp0aGlzKTsKKyAgICBjbGllbnRTaG91
bGRCdWZmZXJEYXRhSWZOb3RIaWRkZW5PclBsYXlpbmcoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApAQCAtMTU5LDcgKzE2NCwxNyBAQCB2b2lkIE1lZGlhU2Vzc2lvbjo6ZGlkUmVjZWl2ZVJlbW90
ZUNvbnRyCiB7CiAgICAgbV9jbGllbnQuZGlkUmVjZWl2ZVJlbW90ZUNvbnRyb2xDb21tYW5kKGNv
bW1hbmQpOwogfQotICAgIAorCisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCit2b2lk
IE1lZGlhU2Vzc2lvbjo6Y2xpZW50U2hvdWxkQnVmZmVyRGF0YUlmTm90SGlkZGVuT3JQbGF5aW5n
KCkKK3sKKyAgICBpZiAobV9jbGllbnQuZWxlbWVudElzSGlkZGVuKCkgJiYgbV9zdGF0ZSAhPSBQ
bGF5aW5nKQorICAgICAgICBtX2NsaWVudC5zaG91bGRCdWZmZXJEYXRhKGZhbHNlKTsKKyAgICBl
bHNlCisgICAgICAgIG1fY2xpZW50LnNob3VsZEJ1ZmZlckRhdGEodHJ1ZSk7Cit9CisjZW5kaWYK
KwogU3RyaW5nIE1lZGlhU2Vzc2lvbkNsaWVudDo6bWVkaWFTZXNzaW9uVGl0bGUoKSBjb25zdAog
ewogICAgIHJldHVybiBTdHJpbmcoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL01lZGlhU2Vzc2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL01lZGlhU2Vzc2lvbi5oCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uaAkod29ya2luZyBjb3B5KQpAQCAtNzIsNiAr
NzIsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBwYXVzZVNlc3Npb24oKTsKICAgICAKKyNpZiBF
TkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKKyAgICB2b2lkIGNsaWVudFNob3VsZEJ1ZmZlckRh
dGFJZk5vdEhpZGRlbk9yUGxheWluZygpOworI2VuZGlmCisKICAgICBTdHJpbmcgdGl0bGUoKSBj
b25zdDsKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKICAgICBkb3VibGUgY3VycmVudFRp
bWUoKSBjb25zdDsKQEAgLTk4LDYgKzEwMiw5IEBAIHByaXZhdGU6CiAgICAgU3RhdGUgbV9zdGF0
ZTsKICAgICBTdGF0ZSBtX3N0YXRlVG9SZXN0b3JlOwogICAgIGJvb2wgbV9ub3RpZnlpbmdDbGll
bnQ7CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAgYm9vbCBtX2VsZW1lbnRJ
c0hpZGRlbjsKKyNlbmRpZgogfTsKIAogY2xhc3MgTWVkaWFTZXNzaW9uQ2xpZW50IHsKQEAgLTEx
Niw2ICsxMjMsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5SZWNlaXZlUmVtb3Rl
Q29udHJvbENvbW1hbmRzKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVtb3RlQ29udHJvbENvbW1hbmQoTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzaG91bGRCdWZmZXJEYXRhKGJvb2wpIHsgfQor
I2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIHZpcnR1YWwgYm9vbCBlbGVtZW50
SXNIaWRkZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIH5NZWRpYVNlc3Npb25DbGllbnQoKSB7IH0KIH07CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lv
biAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxMyw2ICs1MTMsMTEgQEAgdm9pZCBNZWRpYVBsYXll
cjo6cGF1c2UoKQogICAgIG1fcHJpdmF0ZS0+cGF1c2UoKTsKIH0KIAordm9pZCBNZWRpYVBsYXll
cjo6c2hvdWxkQnVmZmVyRGF0YShib29sIHNob3VsZEJ1ZmZlcikKK3sKKyAgICBtX3ByaXZhdGUt
PnNob3VsZEJ1ZmZlckRhdGEoc2hvdWxkQnVmZmVyKTsKK30KKwogI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCiBNZWRpYVBsYXllcjo6TWVkaWFLZXlFeGNlcHRpb24gTWVkaWFQbGF5ZXI6Omdl
bmVyYXRlS2V5UmVxdWVzdChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgdW5zaWduZWQg
Y2hhciogaW5pdERhdGEsIHVuc2lnbmVkIGluaXREYXRhTGVuZ3RoKQogewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCShyZXZpc2lvbiAx
Njc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzgsNiArMzM4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJl
cGFyZVRvUGxheSgpOwogICAgIHZvaWQgcGxheSgpOwogICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2
b2lkIHNob3VsZEJ1ZmZlckRhdGEoYm9vbCk7CiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KSB8fCBFTkFCTEUoRU5DUllQVEVEX01FRElBX1YyKQogICAgIC8vIFJlcHJlc2VudHMgc3luY2hy
b25vdXMgZXhjZXB0aW9ucyB0aGF0IGNhbiBiZSB0aHJvd24gZnJvbSB0aGUgRW5jcnlwdGVkIE1l
ZGlhIG1ldGhvZHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllclByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHBsYXko
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCkgPSAwOyAgICAKKyAgICB2aXJ0dWFsIHZv
aWQgc2hvdWxkQnVmZmVyRGF0YShib29sKSB7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0Z1bGxzY3JlZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1NhdmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMuaAkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNiArMTExLDggQEAgcHVibGljOgogICAgIHZvaWQg
cmF0ZURpZENoYW5nZShkb3VibGUpOwogICAgIHZvaWQgbWV0YWRhdGFEaWRBcnJpdmUoUmV0YWlu
UHRyPE5TQXJyYXk+LCBkb3VibGUpOwogCisgICAgdmlydHVhbCB2b2lkIHNob3VsZEJ1ZmZlckRh
dGEoYm9vbCk7CisKICNpZiBIQVZFKEFWRk9VTkRBVElPTl9WSURFT19PVVRQVVQpCiAgICAgdm9p
ZCBvdXRwdXRNZWRpYURhdGFXaWxsQ2hhbmdlKEFWUGxheWVySXRlbVZpZGVvT3V0cHV0Kik7CiAj
ZW5kaWYKQEAgLTMyNiw2ICszMjgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYWNoZWRCdWZm
ZXJFbXB0eTsKICAgICBib29sIG1fY2FjaGVkQnVmZmVyRnVsbDsKICAgICBib29sIG1fY2FjaGVk
SGFzRW5hYmxlZEF1ZGlvOworICAgIGJvb2wgbV9zaG91bGRCdWZmZXJEYXRhOwogI2lmIEVOQUJM
RShJT1NfQUlSUExBWSkKICAgICBtdXRhYmxlIGJvb2wgbV9hbGxvd3NXaXJlbGVzc1ZpZGVvUGxh
eWJhY2s7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkocmV2aXNpb24gMTY3
NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzcxLDYgKzM3MSw3IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6Ok1l
ZGkKICAgICAsIG1fY2FjaGVkQnVmZmVyRW1wdHkoZmFsc2UpCiAgICAgLCBtX2NhY2hlZEJ1ZmZl
ckZ1bGwoZmFsc2UpCiAgICAgLCBtX2NhY2hlZEhhc0VuYWJsZWRBdWRpbyhmYWxzZSkKKyAgICAs
IG1fc2hvdWxkQnVmZmVyRGF0YSh0cnVlKQogI2lmIEVOQUJMRShJT1NfQUlSUExBWSkKICAgICAs
IG1fYWxsb3dzV2lyZWxlc3NWaWRlb1BsYXliYWNrKHRydWUpCiAjZW5kaWYKQEAgLTIyNzQsNiAr
MjI3NSwyMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6CiAgICAg
dXBkYXRlU3RhdGVzKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2hvdWxkQnVmZmVyRGF0YShib29sIHNob3VsZEJ1ZmZlcikKK3sKKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzaG91bGRCdWZmZXJEYXRh
KCVwKSAtICVzIiwgdGhpcywgYm9vbFN0cmluZyhzaG91bGRCdWZmZXIpKTsKKyAgICBpZiAobV9z
aG91bGRCdWZmZXJEYXRhID09IHNob3VsZEJ1ZmZlcikKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9zaG91bGRCdWZmZXJEYXRhID0gc2hvdWxkQnVmZmVyOworICAgIAorICAgIGlmICghbV9hdlBs
YXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fc2hvdWxkQnVmZmVyRGF0YSkKKyAg
ICAgICAgW21fYXZQbGF5ZXIuZ2V0KCkgcmVwbGFjZUN1cnJlbnRJdGVtV2l0aFBsYXllckl0ZW06
bV9hdlBsYXllckl0ZW0uZ2V0KCldOworICAgIGVsc2UKKyAgICAgICAgW21fYXZQbGF5ZXIuZ2V0
KCkgcmVwbGFjZUN1cnJlbnRJdGVtV2l0aFBsYXllckl0ZW06bmlsXTsKK30KKwogI2lmIEVOQUJM
RShEQVRBQ1VFX1ZBTFVFKQogc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWV0YWRhdGFUeXBl
KE5TU3RyaW5nICphdk1ldGFkYXRhS2V5U3BhY2UpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230024</attachid>
            <date>2014-04-23 17:10:13 -0700</date>
            <delta_ts>2014-04-23 18:08:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132077-20140423170951.patch</filename>
            <type>text/plain</type>
            <size>11076</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzcyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTIzICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFtNYWMsIGlPU10gU3RvcCBi
dWZmZXJpbmcgbWVkaWEgd2hlbiBvbiBhbiBpbmFjdGl2ZSB0YWIuIAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMDc3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwOiBSZW5hbWUgJ21faXNEaXNwbGF5U2xlZXBEaXNhYmxpbmdTdXNwZW5kZWQnCisgICAgICAg
IHRvICdtX2VsZW1lbnRJc0hpZGRlbicuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpIVE1MTWVkaWFFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnZpc2liaWxpdHlTdGF0dXNDaGFuZ2VkKTogTm90aWZ5IHRoZQorICAgICAgICBtZWRpYSBz
ZXNzaW9uIHRoYXQgdGhlIGVsZW1lbnQgaXMgKG9yIGlzIG5vdCkgaGlkZGVuLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6IEFkZGVkLgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL01lZGlhU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb246OmNs
aWVudFdpbGxCZWdpblBsYXliYWNrKTogVGVsbCBtZWRpYSB0bworICAgICAgICBidWZmZXIgaWYg
bm90IGhpZGRlbiBvciBwbGF5aW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uOjpj
bGllbnRXaWxsUGF1c2VQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
ZXNzaW9uOjp2aXNpYmlsaXR5Q2hhbmdlZCk6IEFkZGVkLiBDbGllbnQgQVBJLCBqdXN0IHJlbGF5
cyBjYWxsCisgICAgICAgIHRvIHVwZGF0ZUNsaWVudERhdGFCdWZmZXJpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVNlc3Npb246OnVwZGF0ZUNsaWVudERhdGFCdWZmZXJpbmcpOiBUZWxsIGNs
aWVudCBpdCBzaG91bGQgb25seQorICAgICAgICBidWZmZXIgZGF0YSBpZiBpdCdzIGN1cnJlbnRs
eSBwbGF5aW5nLCBvciBub3QgaGlkZGVuLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL01lZGlh
U2Vzc2lvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKTogQWRk
ZWQ6IEp1c3QgcmVsYXlzIHRvCisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZSBvYmplY3QuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6c2V0U2hvdWxkQnVmZmVyRGF0YSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFNob3VsZEJ1ZmZlckRhdGEpOiBBZGRlZC4KKyAg
ICAgICAgRGV0YWNoIHRoZSBwbGF5ZXIgaXRlbSBmcm9tIHRoZSBwbGF5ZXIgaWYgd2UgZG9uJ3Qg
d2FudCB0byBjb250aW51ZQorICAgICAgICBidWZmZXJpbmcgb3Igb3RoZXIgYmFja2dyb3VuZCB0
YXNrcy4KKwogMjAxNC0wNC0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE2NzcyMC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMTY3NzE0KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzI1LDcgKzMyNSw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQo
Y29uc3QKICAgICAsIG1faGF2ZVByZXBhcmVkVG9QbGF5KGZhbHNlKQogICAgICwgbV9wYXJzaW5n
SW5Qcm9ncmVzcyhjcmVhdGVkQnlQYXJzZXIpCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9B
UEkpCi0gICAgLCBtX2lzRGlzcGxheVNsZWVwRGlzYWJsaW5nU3VzcGVuZGVkKGRvY3VtZW50Lmhp
ZGRlbigpKQorICAgICwgbV9lbGVtZW50SXNIaWRkZW4oZG9jdW1lbnQuaGlkZGVuKCkpCiAjZW5k
aWYKICNpZiBQTEFURk9STShJT1MpCiAgICAgLCBtX3JlcXVlc3RpbmdQbGF5KGZhbHNlKQpAQCAt
NDcxNiw4ICs0NzE2LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVZvbHVtZURpZENo
YQogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkKCkKIHsKICAg
ICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50Ojp2aXNpYmlsaXR5U3RhdGVDaGFuZ2VkIik7
Ci0gICAgbV9pc0Rpc3BsYXlTbGVlcERpc2FibGluZ1N1c3BlbmRlZCA9IGRvY3VtZW50KCkuaGlk
ZGVuKCk7CisgICAgbV9lbGVtZW50SXNIaWRkZW4gPSBkb2N1bWVudCgpLmhpZGRlbigpOwogICAg
IHVwZGF0ZVNsZWVwRGlzYWJsaW5nKCk7CisgICAgbV9tZWRpYVNlc3Npb24tPnZpc2liaWxpdHlD
aGFuZ2VkKCk7CiB9CiAjZW5kaWYKIApAQCAtNTY4Miw3ICs1NjgzLDcgQEAgYm9vbCBIVE1MTWVk
aWFFbGVtZW50OjpzaG91bGREaXNhYmxlU2xlZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoUEFHRV9W
SVNJQklMSVRZX0FQSSkKLSAgICBpZiAobV9pc0Rpc3BsYXlTbGVlcERpc2FibGluZ1N1c3BlbmRl
ZCkKKyAgICBpZiAobV9lbGVtZW50SXNIaWRkZW4pCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNl
bmRpZgogCkBAIC02MTQyLDYgKzYxNDMsMTIgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpkb2Vz
SGF2ZUF0dHJpYnV0ZQogICAgIAogICAgIHJldHVybiB0cnVlOwogfQorCit2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6OnNldFNob3VsZEJ1ZmZlckRhdGEoYm9vbCBzaG91bGRCdWZmZXIpCit7CisgICAg
aWYgKG1fcGxheWVyKQorICAgICAgICByZXR1cm4gbV9wbGF5ZXItPnNldFNob3VsZEJ1ZmZlckRh
dGEoc2hvdWxkQnVmZmVyKTsKK30KICAgICAKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDE2NzcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNiArMTk5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0TG9vcChib29sIGIpOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5
KCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFNob3VsZEJ1ZmZlckRhdGEoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBm
YXN0U2Vlayhkb3VibGUpOwogCiAvLyBjYXB0aW9ucwpAQCAtMjA2LDYgKzIwNywxMCBAQCBwdWJs
aWM6CiAgICAgYm9vbCB3ZWJraXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoKSBjb25zdDsKICAgICB2
b2lkIHNldFdlYmtpdENsb3NlZENhcHRpb25zVmlzaWJsZShib29sKTsKIAorI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKQorICAgIHZpcnR1YWwgYm9vbCBlbGVtZW50SXNIaWRkZW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2VsZW1lbnRJc0hpZGRlbjsgfQorI2VuZGlmCisKICNp
ZiBFTkFCTEUoTUVESUFfU1RBVElTVElDUykKIC8vIFN0YXRpc3RpY3MKICAgICB1bnNpZ25lZCB3
ZWJraXRBdWRpb0RlY29kZWRCeXRlQ291bnQoKSBjb25zdDsKQEAgLTgzMCw3ICs4MzUsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9oYXZlUHJlcGFyZWRUb1BsYXkgOiAxOwogICAgIGJvb2wgbV9w
YXJzaW5nSW5Qcm9ncmVzcyA6IDE7CiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCi0g
ICAgYm9vbCBtX2lzRGlzcGxheVNsZWVwRGlzYWJsaW5nU3VzcGVuZGVkIDogMTsKKyAgICBib29s
IG1fZWxlbWVudElzSGlkZGVuIDogMTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vTWVkaWFTZXNzaW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Npb24uY3BwCShy
ZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNl
c3Npb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgYm9vbCBNZWRpYVNl
c3Npb246OmNsaWVudFdpbGxCZWdpblBsYXliYQogewogICAgIHNldFN0YXRlKFBsYXlpbmcpOwog
ICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uV2lsbEJlZ2lu
UGxheWJhY2soKnRoaXMpOworICAgIHVwZGF0ZUNsaWVudERhdGFCdWZmZXJpbmcoKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTIxLDYgKzEyMiw3IEBAIGJvb2wgTWVkaWFTZXNzaW9uOjpj
bGllbnRXaWxsUGF1c2VQbGF5YmEKICAgICAKICAgICBzZXRTdGF0ZShQYXVzZWQpOwogICAgIE1l
ZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXNzaW9uV2lsbEVuZFBsYXliYWNr
KCp0aGlzKTsKKyAgICB1cGRhdGVDbGllbnREYXRhQnVmZmVyaW5nKCk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTE1OSw3ICsxNjEsMjAgQEAgdm9pZCBNZWRpYVNlc3Npb246OmRpZFJlY2Vp
dmVSZW1vdGVDb250cgogewogICAgIG1fY2xpZW50LmRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29t
bWFuZChjb21tYW5kKTsKIH0KLSAgICAKKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJ
KQordm9pZCBNZWRpYVNlc3Npb246OnZpc2liaWxpdHlDaGFuZ2VkKCkKK3sKKyAgICB1cGRhdGVD
bGllbnREYXRhQnVmZmVyaW5nKCk7Cit9CisKK3ZvaWQgTWVkaWFTZXNzaW9uOjp1cGRhdGVDbGll
bnREYXRhQnVmZmVyaW5nKCkKK3sKKyAgICBib29sIHNob3VsZEJ1ZmZlciA9IG1fc3RhdGUgPT0g
UGxheWluZyB8fCAhbV9jbGllbnQuZWxlbWVudElzSGlkZGVuKCk7CisgICAgbV9jbGllbnQuc2V0
U2hvdWxkQnVmZmVyRGF0YShzaG91bGRCdWZmZXIpOworfQorI2VuZGlmCisKIFN0cmluZyBNZWRp
YVNlc3Npb25DbGllbnQ6Om1lZGlhU2Vzc2lvblRpdGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4g
U3RyaW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNlc3Np
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9NZWRpYVNl
c3Npb24uaAkocmV2aXNpb24gMTY3NzE0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vTWVkaWFTZXNzaW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDEwIEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgcGF1c2VTZXNzaW9uKCk7CiAgICAgCisjaWYgRU5BQkxFKFBBR0VfVklT
SUJJTElUWV9BUEkpCisgICAgdm9pZCB2aXNpYmlsaXR5Q2hhbmdlZCgpOworI2VuZGlmCisKICAg
ICBTdHJpbmcgdGl0bGUoKSBjb25zdDsKICAgICBkb3VibGUgZHVyYXRpb24oKSBjb25zdDsKICAg
ICBkb3VibGUgY3VycmVudFRpbWUoKSBjb25zdDsKQEAgLTk0LDYgKzk4LDEwIEBAIHByb3RlY3Rl
ZDoKICAgICBNZWRpYVNlc3Npb25DbGllbnQmIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50OyB9CiAKIHByaXZhdGU6CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisgICAg
dm9pZCB1cGRhdGVDbGllbnREYXRhQnVmZmVyaW5nKCk7CisjZW5kaWYKKwogICAgIE1lZGlhU2Vz
c2lvbkNsaWVudCYgbV9jbGllbnQ7CiAgICAgU3RhdGUgbV9zdGF0ZTsKICAgICBTdGF0ZSBtX3N0
YXRlVG9SZXN0b3JlOwpAQCAtMTE2LDYgKzEyNCwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGNhblJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZHMoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVSZW1vdGVDb250cm9sQ29tbWFuZChNZWRpYVNlc3Npb246OlJl
bW90ZUNvbnRyb2xDb21tYW5kVHlwZSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHNldFNob3Vs
ZEJ1ZmZlckRhdGEoYm9vbCkgeyB9CisjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCisg
ICAgdmlydHVhbCBib29sIGVsZW1lbnRJc0hpZGRlbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfk1lZGlhU2Vzc2lvbkNsaWVudCgp
IHsgfQogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDE2NzcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEzLDYgKzUx
MywxMSBAQCB2b2lkIE1lZGlhUGxheWVyOjpwYXVzZSgpCiAgICAgbV9wcml2YXRlLT5wYXVzZSgp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyOjpzZXRTaG91bGRCdWZmZXJEYXRhKGJvb2wgc2hvdWxk
QnVmZmVyKQoreworICAgIG1fcHJpdmF0ZS0+c2V0U2hvdWxkQnVmZmVyRGF0YShzaG91bGRCdWZm
ZXIpOworfQorCiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKIE1lZGlhUGxheWVyOjpNZWRp
YUtleUV4Y2VwdGlvbiBNZWRpYVBsYXllcjo6Z2VuZXJhdGVLZXlSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbml0RGF0YSwgdW5zaWduZWQgaW5p
dERhdGFMZW5ndGgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmgJKHJldmlzaW9uIDE2NzcxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzOCw2ICsz
MzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlVG9QbGF5KCk7CiAgICAgdm9pZCBwbGF5
KCk7CiAgICAgdm9pZCBwYXVzZSgpOworICAgIHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShib29s
KTsKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpIHx8IEVOQUJMRShFTkNSWVBURURfTUVE
SUFfVjIpCiAgICAgLy8gUmVwcmVzZW50cyBzeW5jaHJvbm91cyBleGNlcHRpb25zIHRoYXQgY2Fu
IGJlIHRocm93biBmcm9tIHRoZSBFbmNyeXB0ZWQgTWVkaWEgbWV0aG9kcy4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0
ZS5oCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cGF1c2UoKSA9IDA7ICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRCdWZmZXJEYXRhKGJv
b2wpIHsgfQogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2F2ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCShyZXZpc2lvbiAxNjc3
MTQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExMSw2ICsxMTEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByYXRlRGlkQ2hhbmdlKGRvdWJsZSk7
CiAgICAgdm9pZCBtZXRhZGF0YURpZEFycml2ZShSZXRhaW5QdHI8TlNBcnJheT4sIGRvdWJsZSk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkQnVmZmVyRGF0YShib29sKTsKKwogI2lmIEhB
VkUoQVZGT1VOREFUSU9OX1ZJREVPX09VVFBVVCkKICAgICB2b2lkIG91dHB1dE1lZGlhRGF0YVdp
bGxDaGFuZ2UoQVZQbGF5ZXJJdGVtVmlkZW9PdXRwdXQqKTsKICNlbmRpZgpAQCAtMzI2LDYgKzMy
OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NhY2hlZEJ1ZmZlckVtcHR5OwogICAgIGJvb2wg
bV9jYWNoZWRCdWZmZXJGdWxsOwogICAgIGJvb2wgbV9jYWNoZWRIYXNFbmFibGVkQXVkaW87Cisg
ICAgYm9vbCBtX3Nob3VsZEJ1ZmZlckRhdGE7CiAjaWYgRU5BQkxFKElPU19BSVJQTEFZKQogICAg
IG11dGFibGUgYm9vbCBtX2FsbG93c1dpcmVsZXNzVmlkZW9QbGF5YmFjazsKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCShyZXZpc2lvbiAxNjc3MTQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNzEsNiArMzcxLDcgQEAg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6TWVkaQogICAgICwgbV9jYWNoZWRC
dWZmZXJFbXB0eShmYWxzZSkKICAgICAsIG1fY2FjaGVkQnVmZmVyRnVsbChmYWxzZSkKICAgICAs
IG1fY2FjaGVkSGFzRW5hYmxlZEF1ZGlvKGZhbHNlKQorICAgICwgbV9zaG91bGRCdWZmZXJEYXRh
KHRydWUpCiAjaWYgRU5BQkxFKElPU19BSVJQTEFZKQogICAgICwgbV9hbGxvd3NXaXJlbGVzc1Zp
ZGVvUGxheWJhY2sodHJ1ZSkKICNlbmRpZgpAQCAtMjI3NCw2ICsyMjc1LDIzIEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzoKICAgICB1cGRhdGVTdGF0ZXMoKTsKIH0K
IAordm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRTaG91bGRCdWZm
ZXJEYXRhKGJvb2wgc2hvdWxkQnVmZmVyKQoreworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNob3VsZEJ1ZmZlckRhdGEoJXApIC0gJXMiLCB0aGlz
LCBib29sU3RyaW5nKHNob3VsZEJ1ZmZlcikpOworICAgIGlmIChtX3Nob3VsZEJ1ZmZlckRhdGEg
PT0gc2hvdWxkQnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Nob3VsZEJ1ZmZlckRh
dGEgPSBzaG91bGRCdWZmZXI7CisgICAgCisgICAgaWYgKCFtX2F2UGxheWVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAobV9zaG91bGRCdWZmZXJEYXRhKQorICAgICAgICBbbV9hdlBsYXll
ci5nZXQoKSByZXBsYWNlQ3VycmVudEl0ZW1XaXRoUGxheWVySXRlbTptX2F2UGxheWVySXRlbS5n
ZXQoKV07CisgICAgZWxzZQorICAgICAgICBbbV9hdlBsYXllci5nZXQoKSByZXBsYWNlQ3VycmVu
dEl0ZW1XaXRoUGxheWVySXRlbTpuaWxdOworfQorCiAjaWYgRU5BQkxFKERBVEFDVUVfVkFMVUUp
CiBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZXRhZGF0YVR5cGUoTlNTdHJpbmcgKmF2TWV0
YWRhdGFLZXlTcGFjZSkKIHsK
</data>
<flag name="review"
          id="254393"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>