<?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>156766</bug_id>
          
          <creation_ts>2016-04-19 15:43:32 -0700</creation_ts>
          <short_desc>REGRESSION(198782): ImageSource::subsamplingLevelForScale() does not cache the MaximumSubsamplingLevel for this ImageSource</short_desc>
          <delta_ts>2016-04-22 13:09:43 -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>Images</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155322</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1185199</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-19 15:43:32 -0700</bug_when>
    <thetext>Calling ImageSource::calculateMaximumSubsamplingLevel() every time ImageSource::subsamplingLevelForScale() is called is expensive because it requires fetching the first frame for up to three subsampling level. Prior to r198782, ImageSource::calculateMaximumSubsamplingLevel() (which was named BitmapImage::determineMinimumSubsamplingLevel()) was called only once from BitmapImage::updateSize(). The fix should be to cache the maximumSubsamplingLevel when the image size is available.+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185203</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-19 15:51:17 -0700</bug_when>
    <thetext>The image subsampling is on by default only for iOS. So this bug currently affects the iOS port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185204</commentid>
    <comment_count>2</comment_count>
      <attachid>276768</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-19 15:58:51 -0700</bug_when>
    <thetext>Created attachment 276768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185211</commentid>
    <comment_count>3</comment_count>
      <attachid>276768</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-19 16:11:14 -0700</bug_when>
    <thetext>Comment on attachment 276768
Patch

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

&gt; Source/WebCore/platform/graphics/ImageSource.cpp:132
&gt; +    if (cacheMetadata(), !m_maximumSubsamplingLevel)
&gt;          return 0;

This use of the comma expression is not idiomatic for WebKit. The way we would write this in WebKit coding style is:

    cacheMetadata();
    if (!m_maximumSubsamplingLevel)

&gt; Source/WebCore/platform/graphics/ImageSource.h:122
&gt; +    size_t frameCount() { return cacheMetadata(), m_frameCount; }

Ditto. Please don&apos;t format it like this. Instead I suggest writing it after the class definition like this:

    inline size_t ImageSource::frameCount()
    {
        cacheMetadata();
        return m_frameCount;
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185263</commentid>
    <comment_count>4</comment_count>
      <attachid>276785</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-19 17:57:26 -0700</bug_when>
    <thetext>Created attachment 276785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185268</commentid>
    <comment_count>5</comment_count>
      <attachid>276768</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-19 18:25:38 -0700</bug_when>
    <thetext>Comment on attachment 276768
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/ImageSource.cpp:132
&gt;&gt;          return 0;
&gt; 
&gt; This use of the comma expression is not idiomatic for WebKit. The way we would write this in WebKit coding style is:
&gt; 
&gt;     cacheMetadata();
&gt;     if (!m_maximumSubsamplingLevel)

Done. The comma expression was split into two statements.

&gt;&gt; Source/WebCore/platform/graphics/ImageSource.h:122
&gt;&gt; +    size_t frameCount() { return cacheMetadata(), m_frameCount; }
&gt; 
&gt; Ditto. Please don&apos;t format it like this. Instead I suggest writing it after the class definition like this:
&gt; 
&gt;     inline size_t ImageSource::frameCount()
&gt;     {
&gt;         cacheMetadata();
&gt;         return m_frameCount;
&gt;     }

Done. The comma expression was split into two statements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185443</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-20 09:57:20 -0700</bug_when>
    <thetext>Did you mean to land this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185469</commentid>
    <comment_count>7</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2016-04-20 11:18:09 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Did you mean to land this?

Running tests to ensure the patch really fixes an iOS regression performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185832</commentid>
    <comment_count>8</comment_count>
      <attachid>276785</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 10:02:38 -0700</bug_when>
    <thetext>Comment on attachment 276785
Patch

Clearing flags on attachment: 276785

Committed r199821: &lt;http://trac.webkit.org/changeset/199821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185833</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-21 10:02:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276768</attachid>
            <date>2016-04-19 15:58:51 -0700</date>
            <delta_ts>2016-04-19 17:57:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156766-20160419155910.patch</filename>
            <type>text/plain</type>
            <size>4560</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTc0NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE2LTA0LTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TigxOTg3ODIpOiBJbWFnZVNvdXJjZTo6c3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlKCkgZG9lcyBu
b3QgY2FjaGUgdGhlIE1heGltdW1TdWJzYW1wbGluZ0xldmVsIGZvciB0aGlzIEltYWdlU291cmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3NjYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1cmUg
dGhlIE1heGltdW1TdWJzYW1wbGluZ0xldmVsIGZvciB0aGUgSW1hZ2VTb3VyY2UgaXMgY2FsY3Vs
YXRlZAorICAgICAgICBvbmx5IG9uY2UgYW5kIGlzIGNhY2hlZCBmb3Igc3Vic2VxdWVudCB1c2Vz
LiAKKyAgICAgICAgCisgICAgICAgIFRoZSBpbWFnZSBzdWJzYW1wbGluZyBpcyBvbiBieSBkZWZh
dWx0IG9ubHkgZm9yIGlPUy4gU28gdGhlIGFuZCB0aGlzCisgICAgICAgIHBhdGNoIGN1cnJlbnRs
eSBhZmZlY3RzIHRoZSBpT1MgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpjYWNoZU1ldGFk
YXRhKTogQ2FjaGUgbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC4KKyAgICAgICAgVXNlIG1fZnJh
bWVDb3VudCBhcyBhIGZsYWcgZm9yIGhhdmluZ190aGVfY2FjaGVfZG9uZS4KKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUpOiAgTWFrZSBzdXJl
IHRoZSBjYWNoZQorICAgICAgICBpcyBkb25lIFVzZSBtX21heGltdW1TdWJzYW1wbGluZ0xldmVs
IGluc3RlYWQgb2YgY2FsbGluZworICAgICAgICBjYWxjdWxhdGVNYXhpbXVtU3Vic2FtcGxpbmdM
ZXZlbCgpLgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVDb3VudCk6IE1vdmUgaXQgZnJvbSB0aGUgc291
cmNlIHRvIHRoZSBoZWFkZXIuCisKIDIwMTYtMDQtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjE5OTczOApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmNwcAkocmV2aXNpb24gMTk5NjkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsMTggKzExNCwyNiBAQCBT
dWJzYW1wbGluZ0xldmVsIEltYWdlU291cmNlOjpjYWxjdWxhdGVNCiAgICAgcmV0dXJuIG1heFN1
YnNhbXBsaW5nTGV2ZWw7CiB9CiAKLVN1YnNhbXBsaW5nTGV2ZWwgSW1hZ2VTb3VyY2U6OnN1YnNh
bXBsaW5nTGV2ZWxGb3JTY2FsZShmbG9hdCBzY2FsZSkgY29uc3QKK3ZvaWQgSW1hZ2VTb3VyY2U6
OmNhY2hlTWV0YWRhdGEoKQoreworICAgIGlmIChtX2ZyYW1lQ291bnQgfHwgIWlzU2l6ZUF2YWls
YWJsZSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9mcmFtZUNvdW50ID0gbV9kZWNv
ZGVyLT5mcmFtZUNvdW50KCk7CisgICAgbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCA9IGNhbGN1
bGF0ZU1heGltdW1TdWJzYW1wbGluZ0xldmVsKCk7Cit9CisgICAgCitTdWJzYW1wbGluZ0xldmVs
IEltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoZmxvYXQgc2NhbGUpCiB7CiAg
ICAgaWYgKCEoc2NhbGUgPiAwICYmIHNjYWxlIDw9IDEpKQogICAgICAgICByZXR1cm4gMDsKICAg
ICAKLSAgICBTdWJzYW1wbGluZ0xldmVsIG1heGltdW1TdWJzYW1wbGluZ0xldmVsID0gY2FsY3Vs
YXRlTWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKTsKLSAgICBpZiAoIW1heGltdW1TdWJzYW1wbGlu
Z0xldmVsKQorICAgIGlmIChjYWNoZU1ldGFkYXRhKCksICFtX21heGltdW1TdWJzYW1wbGluZ0xl
dmVsKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIFRoZXJlIGFyZSBmb3VyIHN1YnNhbXBs
aW5nIGxldmVsczogMCA9IDF4LCAxID0gMC41eCwgMiA9IDAuMjV4LCAzID0gMC4xMjV4LgogICAg
IFN1YnNhbXBsaW5nTGV2ZWwgcmVzdWx0ID0gc3RkOjpjZWlsKHN0ZDo6bG9nMigxIC8gc2NhbGUp
KTsKLSAgICByZXR1cm4gc3RkOjptaW4ocmVzdWx0LCBtYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCk7
CisgICAgcmV0dXJuIHN0ZDo6bWluKHJlc3VsdCwgbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCk7
CiB9CiAKIHNpemVfdCBJbWFnZVNvdXJjZTo6Ynl0ZXNEZWNvZGVkVG9EZXRlcm1pbmVQcm9wZXJ0
aWVzKCkKQEAgLTE0OCwxMSArMTU2LDYgQEAgSW50U2l6ZSBJbWFnZVNvdXJjZTo6c2l6ZVJlc3Bl
Y3RpbmdPcmllbgogICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4KDAsIDAsIFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKTsKIH0KIAotc2l6ZV90IEltYWdlU291cmNlOjpmcmFtZUNvdW50KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gaW5pdGlhbGl6ZWQoKSA/IG1fZGVjb2Rlci0+ZnJhbWVDb3VudCgp
IDogMDsKLX0KLQogaW50IEltYWdlU291cmNlOjpyZXBldGl0aW9uQ291bnQoKQogewogICAgIHJl
dHVybiBpbml0aWFsaXplZCgpID8gbV9kZWNvZGVyLT5yZXBldGl0aW9uQ291bnQoKSA6IGNBbmlt
YXRpb25Ob25lOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5oCShyZXZpc2lvbiAxOTk2OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpOwogCi0gICAgU3Vic2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVs
Rm9yU2NhbGUoZmxvYXQpIGNvbnN0OworICAgIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdM
ZXZlbEZvclNjYWxlKGZsb2F0KTsKICAgICB2b2lkIHNldEFsbG93U3Vic2FtcGxpbmcoYm9vbCBh
bGxvd1N1YnNhbXBsaW5nKSB7IG1fYWxsb3dTdWJzYW1wbGluZyA9IGFsbG93U3Vic2FtcGxpbmc7
IH0KICAgICBzdGF0aWMgc2l6ZV90IGJ5dGVzRGVjb2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygp
OwogICAgIApAQCAtMTE5LDcgKzExOSw3IEBAIHB1YmxpYzoKICAgICBJbnRTaXplIHNpemUoKSBj
b25zdDsKICAgICBJbnRTaXplIHNpemVSZXNwZWN0aW5nT3JpZW50YXRpb24oKSBjb25zdDsKIAot
ICAgIHNpemVfdCBmcmFtZUNvdW50KCkgY29uc3Q7CisgICAgc2l6ZV90IGZyYW1lQ291bnQoKSB7
IHJldHVybiBjYWNoZU1ldGFkYXRhKCksIG1fZnJhbWVDb3VudDsgfQogICAgIGludCByZXBldGl0
aW9uQ291bnQoKTsKICAgICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsKICAgICBP
cHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpIGNvbnN0OwpAQCAtMTQ2LDkgKzE0NiwxMyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCk7CiAgICAgdm9p
ZCBlbnN1cmVEZWNvZGVySXNDcmVhdGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIFN1YnNh
bXBsaW5nTGV2ZWwgY2FsY3VsYXRlTWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdDsKKyAg
ICB2b2lkIGNhY2hlTWV0YWRhdGEoKTsKICAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYpIGNvbnN0
OwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZURlY29kZXI+IG1fZGVjb2RlcjsKKyAg
ICAKKyAgICBzaXplX3QgbV9mcmFtZUNvdW50IHsgMCB9OworICAgIFN1YnNhbXBsaW5nTGV2ZWwg
bV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCB7IDAgfTsKIAogICAgIC8vIFRoZSBkZWZhdWx0IHZh
bHVlIG9mIG1fYWxsb3dTdWJzYW1wbGluZyBzaG91bGQgYmUgdGhlIHNhbWUgYXMgZGVmYXVsdElt
YWdlU3Vic2FtcGxpbmdFbmFibGVkIGluIFNldHRpbmdzLmNwcAogI2lmIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276785</attachid>
            <date>2016-04-19 17:57:26 -0700</date>
            <delta_ts>2016-04-21 10:02:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156766-20160419175746.patch</filename>
            <type>text/plain</type>
            <size>4431</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTc0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTA0LTE5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TigxOTg3ODIpOiBJbWFnZVNvdXJjZTo6c3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlKCkgZG9lcyBu
b3QgY2FjaGUgdGhlIE1heGltdW1TdWJzYW1wbGluZ0xldmVsIGZvciB0aGlzIEltYWdlU291cmNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTY3NjYK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBFbnN1cmUgdGhl
IE1heGltdW1TdWJzYW1wbGluZ0xldmVsIGZvciB0aGUgSW1hZ2VTb3VyY2UgaXMgY2FsY3VsYXRl
ZAorICAgICAgICBvbmx5IG9uY2UgYW5kIGlzIGNhY2hlZCBmb3Igc3Vic2VxdWVudCB1c2VzLiAK
KyAgICAgICAgCisgICAgICAgIFRoZSBpbWFnZSBzdWJzYW1wbGluZyBpcyBvbiBieSBkZWZhdWx0
IG9ubHkgZm9yIGlPUy4gU28gdGhlIGFuZCB0aGlzCisgICAgICAgIHBhdGNoIGN1cnJlbnRseSBh
ZmZlY3RzIHRoZSBpT1MgcG9ydC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpjYWNoZU1ldGFkYXRh
KTogQ2FjaGUgbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC4KKyAgICAgICAgVXNlIG1fZnJhbWVD
b3VudCBhcyBhIGZsYWcgZm9yIGhhdmluZ190aGVfY2FjaGVfZG9uZS4KKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlU291cmNlOjpzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUpOiBDYWxsIGNhY2hlTWV0
YWRhdGEoKQorICAgICAgICBiZWZvcmUgdXNpbmcgbV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbC4K
KyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpmcmFtZUNvdW50KTogQ2FsbCBjYWNoZU1l
dGFkYXRhKCkgYmVmb3JlIHJldHVybmluZworICAgICAgICBtX2ZyYW1lQ291bnQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKwogMjAxNi0wNC0xOSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJ1aWxkIGZp
eCBhZnRlciByMTk5NzM4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwCShyZXZpc2lvbiAxOTk2OTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
NCwxOCArMTE0LDI3IEBAIFN1YnNhbXBsaW5nTGV2ZWwgSW1hZ2VTb3VyY2U6OmNhbGN1bGF0ZU0K
ICAgICByZXR1cm4gbWF4U3Vic2FtcGxpbmdMZXZlbDsKIH0KIAotU3Vic2FtcGxpbmdMZXZlbCBJ
bWFnZVNvdXJjZTo6c3Vic2FtcGxpbmdMZXZlbEZvclNjYWxlKGZsb2F0IHNjYWxlKSBjb25zdAor
dm9pZCBJbWFnZVNvdXJjZTo6Y2FjaGVNZXRhZGF0YSgpCit7CisgICAgaWYgKG1fZnJhbWVDb3Vu
dCB8fCAhaXNTaXplQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2Zy
YW1lQ291bnQgPSBtX2RlY29kZXItPmZyYW1lQ291bnQoKTsKKyAgICBtX21heGltdW1TdWJzYW1w
bGluZ0xldmVsID0gY2FsY3VsYXRlTWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKTsKK30KKyAgICAK
K1N1YnNhbXBsaW5nTGV2ZWwgSW1hZ2VTb3VyY2U6OnN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZShm
bG9hdCBzY2FsZSkKIHsKICAgICBpZiAoIShzY2FsZSA+IDAgJiYgc2NhbGUgPD0gMSkpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIAotICAgIFN1YnNhbXBsaW5nTGV2ZWwgbWF4aW11bVN1YnNhbXBs
aW5nTGV2ZWwgPSBjYWxjdWxhdGVNYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCgpOwotICAgIGlmICgh
bWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwpCisgICAgY2FjaGVNZXRhZGF0YSgpOworICAgIGlmICgh
bV9tYXhpbXVtU3Vic2FtcGxpbmdMZXZlbCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBU
aGVyZSBhcmUgZm91ciBzdWJzYW1wbGluZyBsZXZlbHM6IDAgPSAxeCwgMSA9IDAuNXgsIDIgPSAw
LjI1eCwgMyA9IDAuMTI1eC4KICAgICBTdWJzYW1wbGluZ0xldmVsIHJlc3VsdCA9IHN0ZDo6Y2Vp
bChzdGQ6OmxvZzIoMSAvIHNjYWxlKSk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHJlc3VsdCwgbWF4
aW11bVN1YnNhbXBsaW5nTGV2ZWwpOworICAgIHJldHVybiBzdGQ6Om1pbihyZXN1bHQsIG1fbWF4
aW11bVN1YnNhbXBsaW5nTGV2ZWwpOwogfQogCiBzaXplX3QgSW1hZ2VTb3VyY2U6OmJ5dGVzRGVj
b2RlZFRvRGV0ZXJtaW5lUHJvcGVydGllcygpCkBAIC0xNDgsOSArMTU3LDEwIEBAIEludFNpemUg
SW1hZ2VTb3VyY2U6OnNpemVSZXNwZWN0aW5nT3JpZW4KICAgICByZXR1cm4gZnJhbWVTaXplQXRJ
bmRleCgwLCAwLCBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbik7CiB9CiAKLXNpemVfdCBJbWFnZVNv
dXJjZTo6ZnJhbWVDb3VudCgpIGNvbnN0CitzaXplX3QgSW1hZ2VTb3VyY2U6OmZyYW1lQ291bnQo
KQogewotICAgIHJldHVybiBpbml0aWFsaXplZCgpID8gbV9kZWNvZGVyLT5mcmFtZUNvdW50KCkg
OiAwOworICAgIGNhY2hlTWV0YWRhdGEoKTsKKyAgICByZXR1cm4gbV9mcmFtZUNvdW50OwogfQog
CiBpbnQgSW1hZ2VTb3VyY2U6OnJlcGV0aXRpb25Db3VudCgpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJldmlzaW9uIDE5OTY5MykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldERhdGEo
U2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CiAKLSAgICBTdWJzYW1w
bGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWxGb3JTY2FsZShmbG9hdCkgY29uc3Q7CisgICAgU3Vi
c2FtcGxpbmdMZXZlbCBzdWJzYW1wbGluZ0xldmVsRm9yU2NhbGUoZmxvYXQpOwogICAgIHZvaWQg
c2V0QWxsb3dTdWJzYW1wbGluZyhib29sIGFsbG93U3Vic2FtcGxpbmcpIHsgbV9hbGxvd1N1YnNh
bXBsaW5nID0gYWxsb3dTdWJzYW1wbGluZzsgfQogICAgIHN0YXRpYyBzaXplX3QgYnl0ZXNEZWNv
ZGVkVG9EZXRlcm1pbmVQcm9wZXJ0aWVzKCk7CiAgICAgCkBAIC0xMTksNyArMTE5LDcgQEAgcHVi
bGljOgogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0OwogICAgIEludFNpemUgc2l6ZVJlc3BlY3Rp
bmdPcmllbnRhdGlvbigpIGNvbnN0OwogCi0gICAgc2l6ZV90IGZyYW1lQ291bnQoKSBjb25zdDsK
KyAgICBzaXplX3QgZnJhbWVDb3VudCgpOwogICAgIGludCByZXBldGl0aW9uQ291bnQoKTsKICAg
ICBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBjb25zdDsKICAgICBPcHRpb25hbDxJbnRQb2lu
dD4gaG90U3BvdCgpIGNvbnN0OwpAQCAtMTQ2LDkgKzE0NiwxMyBAQCBwcml2YXRlOgogICAgIHZv
aWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCk7CiAgICAgdm9pZCBlbnN1cmVEZWNvZGVy
SXNDcmVhdGVkKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOwogICAgIFN1YnNhbXBsaW5nTGV2ZWwgY2Fs
Y3VsYXRlTWF4aW11bVN1YnNhbXBsaW5nTGV2ZWwoKSBjb25zdDsKKyAgICB2b2lkIGNhY2hlTWV0
YWRhdGEoKTsKICAgICB2b2lkIGR1bXAoVGV4dFN0cmVhbSYpIGNvbnN0OwogICAgIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZURlY29kZXI+IG1fZGVjb2RlcjsKKyAgICAKKyAgICBzaXplX3Qg
bV9mcmFtZUNvdW50IHsgMCB9OworICAgIFN1YnNhbXBsaW5nTGV2ZWwgbV9tYXhpbXVtU3Vic2Ft
cGxpbmdMZXZlbCB7IDAgfTsKIAogICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIG9mIG1fYWxsb3dT
dWJzYW1wbGluZyBzaG91bGQgYmUgdGhlIHNhbWUgYXMgZGVmYXVsdEltYWdlU3Vic2FtcGxpbmdF
bmFibGVkIGluIFNldHRpbmdzLmNwcAogI2lmIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>