<?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>161017</bug_id>
          
          <creation_ts>2016-08-19 15:09:43 -0700</creation_ts>
          <short_desc>Implement preferLowPowerToHighPerformance for WebGL</short_desc>
          <delta_ts>2016-08-19 20:14:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=161026</see_also>
          <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="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1221501</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-08-19 15:09:43 -0700</bug_when>
    <thetext>Implement preferLowPowerToHighPerformance for WebGL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221503</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-08-19 15:10:37 -0700</bug_when>
    <thetext>&lt;rdar://problem/26819135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221508</commentid>
    <comment_count>2</comment_count>
      <attachid>286489</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-08-19 15:16:58 -0700</bug_when>
    <thetext>Created attachment 286489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221513</commentid>
    <comment_count>3</comment_count>
      <attachid>286489</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-19 15:32:27 -0700</bug_when>
    <thetext>Comment on attachment 286489
Patch

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

&gt; Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:64
&gt;      dictionary.tryGetProperty(&quot;preserveDrawingBuffer&quot;, graphicsAttrs.preserveDrawingBuffer);

I thought there was a way to do all this stuff inside the bindings. We should migrate to that.

&gt; Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:66
&gt; +    // FIXME: Get this property when we support the feature.

bug number?

I&apos;m not sure why it&apos;s valuable to put this line of code here. It isn&apos;t helpful when we&apos;re reading code, and it isn&apos;t helpful when we&apos;re writing code. I would argue a bug should be made instead of these comments.

&gt; Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm:97
&gt; +        attribs.append(kCGLPFAAllowOfflineRenderers);

I think we should add a quote and a link to https://developer.apple.com/library/mac/technotes/tn2229/_index.html about how &quot;integrated&quot; actually means &quot;offline&quot;

How about &quot;Any Macintosh system configuration that includes more GPUs than displays will have both online and offline GPUs. ... In these configurations you may wish to take advantage of the hardware that is not connected to a display... For CGL add kCGLPFAAllowOfflineRenderers.&quot;

&gt; ManualTests/webgl-preferLowPowerToHighPerformance.html:13
&gt; +    result.textContent = &quot;UNMASKED_VENDOR_WEBGL is &quot; + gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) + &quot;\n&quot;;

Please say something like &quot;Test Passed&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221517</commentid>
    <comment_count>4</comment_count>
      <attachid>286489</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-08-19 15:39:35 -0700</bug_when>
    <thetext>Comment on attachment 286489
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:64
&gt;&gt;      dictionary.tryGetProperty(&quot;preserveDrawingBuffer&quot;, graphicsAttrs.preserveDrawingBuffer);
&gt; 
&gt; I thought there was a way to do all this stuff inside the bindings. We should migrate to that.

I don&apos;t think so. WebGLContextAttributes is a class, not a dictionary.

But in general, it would be nice if there was bindings code that did this for us.

&gt;&gt; Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp:66
&gt;&gt; +    // FIXME: Get this property when we support the feature.
&gt; 
&gt; bug number?
&gt; 
&gt; I&apos;m not sure why it&apos;s valuable to put this line of code here. It isn&apos;t helpful when we&apos;re reading code, and it isn&apos;t helpful when we&apos;re writing code. I would argue a bug should be made instead of these comments.

I don&apos;t know if we&apos;ll ever implement this.

I&apos;ll just remove these lines.

&gt;&gt; Source/WebCore/platform/graphics/mac/GraphicsContext3DMac.mm:97
&gt;&gt; +        attribs.append(kCGLPFAAllowOfflineRenderers);
&gt; 
&gt; I think we should add a quote and a link to https://developer.apple.com/library/mac/technotes/tn2229/_index.html about how &quot;integrated&quot; actually means &quot;offline&quot;
&gt; 
&gt; How about &quot;Any Macintosh system configuration that includes more GPUs than displays will have both online and offline GPUs. ... In these configurations you may wish to take advantage of the hardware that is not connected to a display... For CGL add kCGLPFAAllowOfflineRenderers.&quot;

I don&apos;t know about this. We&apos;d just be replicating what already in our documentation, which people can find if they search for kCGLPFAAllowOfflineRenderers

&gt;&gt; ManualTests/webgl-preferLowPowerToHighPerformance.html:13
&gt;&gt; +    result.textContent = &quot;UNMASKED_VENDOR_WEBGL is &quot; + gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) + &quot;\n&quot;;
&gt; 
&gt; Please say something like &quot;Test Passed&quot;

Well, except you can&apos;t be sure it passed :)

You need to know what hardware is available, which is why it is a manual test. You might get different GPUs, but how could this test know which is the &quot;lower power&quot; one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221519</commentid>
    <comment_count>5</comment_count>
      <attachid>286489</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-19 15:44:22 -0700</bug_when>
    <thetext>Comment on attachment 286489
Patch

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

&gt;&gt;&gt; ManualTests/webgl-preferLowPowerToHighPerformance.html:13
&gt;&gt;&gt; +    result.textContent = &quot;UNMASKED_VENDOR_WEBGL is &quot; + gl.getParameter(ext.UNMASKED_VENDOR_WEBGL) + &quot;\n&quot;;
&gt;&gt; 
&gt;&gt; Please say something like &quot;Test Passed&quot;
&gt; 
&gt; Well, except you can&apos;t be sure it passed :)
&gt; 
&gt; You need to know what hardware is available, which is why it is a manual test. You might get different GPUs, but how could this test know which is the &quot;lower power&quot; one?

I think considering the test a success if they are different is sufficient. This, coupled with your note about how the test is only valid on particular hardware, should be fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221531</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-08-19 15:58:51 -0700</bug_when>
    <thetext>Committed r204664: &lt;http://trac.webkit.org/changeset/204664&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1221601</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-08-19 20:14:34 -0700</bug_when>
    <thetext>Note: now that it&apos;s possible to use WebGL without triggering the discrete GPU, other applications may cause us to switch to the discrete GPU, which causes the capabilities exposed to WebGL to change. This means that we should fix https://bugs.webkit.org/show_bug.cgi?id=161026</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286489</attachid>
            <date>2016-08-19 15:16:58 -0700</date>
            <delta_ts>2016-08-19 15:32:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161017-20160820081505.patch</filename>
            <type>text/plain</type>
            <size>10203</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWJlZDg4OTk1ZGY3NTcy
ZGMxNTA3MDRkZWM4YTEyZTEzZTYxNWI4MC4uMDY4ZjI1OThjM2MzYmY0MDg5OGRmMDJiYjg3OThh
NTk3NzU3MzZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE2LTA4LTE5ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgcHJlZmVyTG93
UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSBmb3IgV2ViR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTAxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjY4MTkxMzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IHByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2Ugb24gbWFjT1MgYnkK
KyAgICAgICAgcGFzc2luZyB0aGUgY29ycmVjdCBDR0wgYXR0cmlidXRlIHdoZW4gY3JlYXRpbmcg
dGhlCisgICAgICAgIHBpeGVsIGZvcm1hdC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRN
TENhbnZhc0VsZW1lbnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0M0RDb250ZXh0
QXR0cmlidXRlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29u
dGV4dDNETWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c2V0UGl4ZWxGb3JtYXQpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKToKKwogMjAx
Ni0wOC0xOCAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9y
dCBwYXNzaW5nIHByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UgYW5kIGZhaWxJZk1ham9y
UGVyZm9ybWFuY2VDYXZlYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTENhbnZhc0VsZW1lbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggNzdlZWU1YzAyMTQ0MWVjODJi
MjZjMDk2ZjhjMDQ0ZjlhZmZhZTVhNi4uZjFkMTI2NDRiN2EwYWU1NDE3OTM0M2NmOWI4ZjcwYTU2
NmMyMGRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ2Fu
dmFzRWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MQ2FudmFzRWxlbWVudEN1c3RvbS5jcHAKQEAgLTYyLDcgKzYyLDEwIEBAIHN0YXRpYyB2b2lk
IGdldDNEQ29udGV4dEF0dHJpYnV0ZXMoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmUHRyPENhbnZhc0Nv
bnRleHRBdHRyaWJ1CiAgICAgZGljdGlvbmFyeS50cnlHZXRQcm9wZXJ0eSgiYW50aWFsaWFzIiwg
Z3JhcGhpY3NBdHRycy5hbnRpYWxpYXMpOwogICAgIGRpY3Rpb25hcnkudHJ5R2V0UHJvcGVydHko
InByZW11bHRpcGxpZWRBbHBoYSIsIGdyYXBoaWNzQXR0cnMucHJlbXVsdGlwbGllZEFscGhhKTsK
ICAgICBkaWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5KCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCBn
cmFwaGljc0F0dHJzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcik7Ci0gICAgCisgICAgZGljdGlvbmFy
eS50cnlHZXRQcm9wZXJ0eSgicHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSIsIGdyYXBo
aWNzQXR0cnMucHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSk7CisgICAgLy8gRklYTUU6
IEdldCB0aGlzIHByb3BlcnR5IHdoZW4gd2Ugc3VwcG9ydCB0aGUgZmVhdHVyZS4KKyAgICAvLyBk
aWN0aW9uYXJ5LnRyeUdldFByb3BlcnR5KCJmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0Iiwg
Z3JhcGhpY3NBdHRycy5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0KTsKKwogICAgIGF0dHJz
ID0gV2ViR0xDb250ZXh0QXR0cmlidXRlczo6Y3JlYXRlKGdyYXBoaWNzQXR0cnMpOwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3Jh
cGhpY3NDb250ZXh0M0RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvR3JhcGhpY3NDb250ZXh0M0RNYWMubW0KaW5kZXggMzdkNDlkMWFmNGU3YWE0YjM1MzJjOWRl
YWFhYzdhYWIyNWY0NzgyMC4uZDQ3ZmY2MzlkOWNiNThkZTc1ZDhjNDllMDQ4OTM5ODU3ZjBhM2Rj
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBo
aWNzQ29udGV4dDNETWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9HcmFwaGljc0NvbnRleHQzRE1hYy5tbQpAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiB9
OwogCiAjaWYgIVBMQVRGT1JNKElPUykKLXN0YXRpYyB2b2lkIHNldFBpeGVsRm9ybWF0KFZlY3Rv
cjxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0ZT4mIGF0dHJpYnMsIGludCBjb2xvckJpdHMsIGludCBk
ZXB0aEJpdHMsIGJvb2wgYWNjZWxlcmF0ZWQsIGJvb2wgc3VwZXJzYW1wbGUsIGJvb2wgY2xvc2Vz
dCwgYm9vbCBhbnRpYWxpYXMpCitzdGF0aWMgdm9pZCBzZXRQaXhlbEZvcm1hdChWZWN0b3I8Q0dM
UGl4ZWxGb3JtYXRBdHRyaWJ1dGU+JiBhdHRyaWJzLCBpbnQgY29sb3JCaXRzLCBpbnQgZGVwdGhC
aXRzLCBib29sIGFjY2VsZXJhdGVkLCBib29sIHN1cGVyc2FtcGxlLCBib29sIGNsb3Nlc3QsIGJv
b2wgYW50aWFsaWFzLCBib29sIGFsbG93T2ZmbGluZSkKIHsKICAgICBhdHRyaWJzLmNsZWFyKCk7
CiAgICAgCkBAIC05Miw3ICs5MiwxMCBAQCBzdGF0aWMgdm9pZCBzZXRQaXhlbEZvcm1hdChWZWN0
b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+JiBhdHRyaWJzLCBpbnQgY29sb3JCaQogICAgIGF0
dHJpYnMuYXBwZW5kKHN0YXRpY19jYXN0PENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPihjb2xvckJp
dHMpKTsKICAgICBhdHRyaWJzLmFwcGVuZChrQ0dMUEZBRGVwdGhTaXplKTsKICAgICBhdHRyaWJz
LmFwcGVuZChzdGF0aWNfY2FzdDxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0ZT4oZGVwdGhCaXRzKSk7
Ci0gICAgCisKKyAgICBpZiAoYWxsb3dPZmZsaW5lKQorICAgICAgICBhdHRyaWJzLmFwcGVuZChr
Q0dMUEZBQWxsb3dPZmZsaW5lUmVuZGVyZXJzKTsKKwogICAgIGlmIChhY2NlbGVyYXRlZCkKICAg
ICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQUFjY2VsZXJhdGVkKTsKICAgICBlbHNlIHsKQEAg
LTE5MSwyMiArMTk0LDIyIEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzRDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpCiAgICAgLy8gSWYgbm9u
ZSBvZiB0aGF0IHdvcmtzLCB3ZSBzaW1wbHkgZmFpbCBhbmQgc2V0IG1fY29udGV4dE9iaiB0byAw
LgogCiAgICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0gbV9hdHRycy5hbnRpYWxpYXM7Ci0gICAg
Ci0gICAgc2V0UGl4ZWxGb3JtYXQoYXR0cmlicywgMzIsIDMyLCAhYXR0cnMuZm9yY2VTb2Z0d2Fy
ZVJlbmRlcmVyLCB0cnVlLCBmYWxzZSwgdXNlTXVsdGlzYW1wbGluZyk7CisKKyAgICBzZXRQaXhl
bEZvcm1hdChhdHRyaWJzLCAzMiwgMzIsICFhdHRycy5mb3JjZVNvZnR3YXJlUmVuZGVyZXIsIHRy
dWUsIGZhbHNlLCB1c2VNdWx0aXNhbXBsaW5nLCBhdHRycy5wcmVmZXJMb3dQb3dlclRvSGlnaFBl
cmZvcm1hbmNlKTsKICAgICBDR0xDaG9vc2VQaXhlbEZvcm1hdChhdHRyaWJzLmRhdGEoKSwgJnBp
eGVsRm9ybWF0T2JqLCAmbnVtUGl4ZWxGb3JtYXRzKTsKIAotICAgIGlmIChudW1QaXhlbEZvcm1h
dHMgPT0gMCkgewotICAgICAgICBzZXRQaXhlbEZvcm1hdChhdHRyaWJzLCAzMiwgMzIsICFhdHRy
cy5mb3JjZVNvZnR3YXJlUmVuZGVyZXIsIGZhbHNlLCBmYWxzZSwgdXNlTXVsdGlzYW1wbGluZyk7
CisgICAgaWYgKCFudW1QaXhlbEZvcm1hdHMpIHsKKyAgICAgICAgc2V0UGl4ZWxGb3JtYXQoYXR0
cmlicywgMzIsIDMyLCAhYXR0cnMuZm9yY2VTb2Z0d2FyZVJlbmRlcmVyLCBmYWxzZSwgZmFsc2Us
IHVzZU11bHRpc2FtcGxpbmcsIGF0dHJzLnByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2Up
OwogICAgICAgICBDR0xDaG9vc2VQaXhlbEZvcm1hdChhdHRyaWJzLmRhdGEoKSwgJnBpeGVsRm9y
bWF0T2JqLCAmbnVtUGl4ZWxGb3JtYXRzKTsKIAotICAgICAgICBpZiAobnVtUGl4ZWxGb3JtYXRz
ID09IDApIHsKLSAgICAgICAgICAgIHNldFBpeGVsRm9ybWF0KGF0dHJpYnMsIDMyLCAxNiwgIWF0
dHJzLmZvcmNlU29mdHdhcmVSZW5kZXJlciwgZmFsc2UsIGZhbHNlLCB1c2VNdWx0aXNhbXBsaW5n
KTsKKyAgICAgICAgaWYgKCFudW1QaXhlbEZvcm1hdHMpIHsKKyAgICAgICAgICAgIHNldFBpeGVs
Rm9ybWF0KGF0dHJpYnMsIDMyLCAxNiwgIWF0dHJzLmZvcmNlU29mdHdhcmVSZW5kZXJlciwgZmFs
c2UsIGZhbHNlLCB1c2VNdWx0aXNhbXBsaW5nLCBhdHRycy5wcmVmZXJMb3dQb3dlclRvSGlnaFBl
cmZvcm1hbmNlKTsKICAgICAgICAgICAgIENHTENob29zZVBpeGVsRm9ybWF0KGF0dHJpYnMuZGF0
YSgpLCAmcGl4ZWxGb3JtYXRPYmosICZudW1QaXhlbEZvcm1hdHMpOwogCi0gICAgICAgICAgICAg
aWYgKCFhdHRycy5mb3JjZVNvZnR3YXJlUmVuZGVyZXIgJiYgbnVtUGl4ZWxGb3JtYXRzID09IDAp
IHsKLSAgICAgICAgICAgICAgICAgc2V0UGl4ZWxGb3JtYXQoYXR0cmlicywgMzIsIDE2LCBmYWxz
ZSwgZmFsc2UsIHRydWUsIGZhbHNlKTsKLSAgICAgICAgICAgICAgICAgQ0dMQ2hvb3NlUGl4ZWxG
b3JtYXQoYXR0cmlicy5kYXRhKCksICZwaXhlbEZvcm1hdE9iaiwgJm51bVBpeGVsRm9ybWF0cyk7
Ci0gICAgICAgICAgICAgICAgIHVzZU11bHRpc2FtcGxpbmcgPSBmYWxzZTsKKyAgICAgICAgICAg
IGlmICghYXR0cnMuZm9yY2VTb2Z0d2FyZVJlbmRlcmVyICYmICFudW1QaXhlbEZvcm1hdHMpIHsK
KyAgICAgICAgICAgICAgICBzZXRQaXhlbEZvcm1hdChhdHRyaWJzLCAzMiwgMTYsIGZhbHNlLCBm
YWxzZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBDR0xDaG9vc2VQaXhl
bEZvcm1hdChhdHRyaWJzLmRhdGEoKSwgJnBpeGVsRm9ybWF0T2JqLCAmbnVtUGl4ZWxGb3JtYXRz
KTsKKyAgICAgICAgICAgICAgICB1c2VNdWx0aXNhbXBsaW5nID0gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODExYTEzYWE2NWE2NmNjNWMwNDk4NWJkNWU2
YjJjMTljMTNjODUwOS4uMGFjOWFjMDVhNDQ3MTM0ZWU2MGFmMzFmN2JhZjYyMjljY2QwOGY2YiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTA4LTE5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3Jt
YW5jZSBmb3IgV2ViR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MTAxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjY4MTkxMzU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm93IHRoYXQgd2UgaW1w
bGVtZW50IHByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2Ugd2UgY2FuCisgICAgICAgIHJl
dGFpbiBpdHMgdmFsdWUgaW4gdGhlIGNvbnRleHQgY3JlYXRpb24gYXR0cmlidXRlcyBvYmplY3Qu
CisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWNyZWF0aW9uLWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0OgorCiAyMDE2LTA4LTE4ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdXBwb3J0IHBhc3NpbmcgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJm
b3JtYW5jZSBhbmQgZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1jcmVhdGlvbi1hdHRyaWJ1dGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtY3JlYXRp
b24tYXR0cmlidXRlcy1leHBlY3RlZC50eHQKaW5kZXggZDAyYjJiMjc0NDA4MTVlZmMzYzJmMGJh
ZDE3NGM3ODNhNTc1ZjkzMi4uN2VkNGMyY2M4YmMxMmMyZmI4Y2ViYWNmY2RhNmQyNGI4Y2VlNjRh
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1jcmVh
dGlvbi1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9jb250ZXh0LWNyZWF0aW9uLWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0yLDUg
KzIsNSBAQCBOb3RlIHRoYXQgc29tZSBvZiB0aGUgdmFsdWVzIHRlc3RlZCBoZXJlIG1pZ2h0IG5v
dCBiZSBzdXBwb3J0ZWQsIGFuZCB0aHVzIHNob3VsZAogCiB7ImFscGhhIjp0cnVlLCJkZXB0aCI6
dHJ1ZSwic3RlbmNpbCI6ZmFsc2UsImFudGlhbGlhcyI6dHJ1ZSwicHJlbXVsdGlwbGllZEFscGhh
Ijp0cnVlLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiOmZhbHNlLCJwcmVmZXJMb3dQb3dlclRvSGln
aFBlcmZvcm1hbmNlIjpmYWxzZSwiZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdCI6ZmFsc2V9
CiB7ImFscGhhIjp0cnVlLCJkZXB0aCI6dHJ1ZSwic3RlbmNpbCI6dHJ1ZSwiYW50aWFsaWFzIjp0
cnVlLCJwcmVtdWx0aXBsaWVkQWxwaGEiOnRydWUsInByZXNlcnZlRHJhd2luZ0J1ZmZlciI6ZmFs
c2UsInByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UiOmZhbHNlLCJmYWlsSWZNYWpvclBl
cmZvcm1hbmNlQ2F2ZWF0IjpmYWxzZX0KLXsiYWxwaGEiOnRydWUsImRlcHRoIjp0cnVlLCJzdGVu
Y2lsIjpmYWxzZSwiYW50aWFsaWFzIjp0cnVlLCJwcmVtdWx0aXBsaWVkQWxwaGEiOnRydWUsInBy
ZXNlcnZlRHJhd2luZ0J1ZmZlciI6ZmFsc2UsInByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFu
Y2UiOmZhbHNlLCJmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0IjpmYWxzZX0KK3siYWxwaGEi
OnRydWUsImRlcHRoIjp0cnVlLCJzdGVuY2lsIjpmYWxzZSwiYW50aWFsaWFzIjp0cnVlLCJwcmVt
dWx0aXBsaWVkQWxwaGEiOnRydWUsInByZXNlcnZlRHJhd2luZ0J1ZmZlciI6ZmFsc2UsInByZWZl
ckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UiOnRydWUsImZhaWxJZk1ham9yUGVyZm9ybWFuY2VD
YXZlYXQiOmZhbHNlfQogeyJhbHBoYSI6dHJ1ZSwiZGVwdGgiOnRydWUsInN0ZW5jaWwiOmZhbHNl
LCJhbnRpYWxpYXMiOnRydWUsInByZW11bHRpcGxpZWRBbHBoYSI6dHJ1ZSwicHJlc2VydmVEcmF3
aW5nQnVmZmVyIjpmYWxzZSwicHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZSI6ZmFsc2Us
ImZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQiOmZhbHNlfQpkaWZmIC0tZ2l0IGEvQ2hhbmdl
TG9nIGIvQ2hhbmdlTG9nCmluZGV4IDNlZmJmMGViM2U1ZmUzMmYzOTNmMzgzOTljOWQ4ZjFmNzhi
Mzk1NWEuLjI1MjMwYTEzNmM4YjRmYzJkZmJlY2RmNjEzN2FmZGRiNDZkYzYwNjMgMTAwNjQ0Ci0t
LSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wOC0x
OSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHBy
ZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UgZm9yIFdlYkdMCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjEwMTcKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzI2ODE5MTM1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEEgbWFudWFsIHRlc3QgdGhhdCBjcmVhdGVzIGNvbnRleHRzIHdpdGggYW5kIHdp
dGhvdXQgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJmb3JtYW5jZQorICAgICAgICB0byBzZWUgd2hh
dCBpcyB1c2VkLiBUaGlzIGhhcyB0byBiZSBtYW51YWwgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIHRo
ZSBoYXJkd2FyZQorICAgICAgICBjb25maWd1cmF0aW9uLCBhbmQgd2UgZG9uJ3QgaGF2ZSBhIHdh
eSB0byBkZXRlY3QgaXQgdXAtZnJvbnQuIEFsc28sIGlmIHRoZQorICAgICAgICBjb2RlIHdhcyBm
YWlsaW5nLCBpdCB3b3VsZCBiZSB0aGUgc2FtZSByZXN1bHQgYXMgb24gYSBzaW5nbGUgR1BVIHN5
c3RlbS4KKworICAgICAgICAqIE1hbnVhbFRlc3RzL3dlYmdsLXByZWZlckxvd1Bvd2VyVG9IaWdo
UGVyZm9ybWFuY2UuaHRtbDogQWRkZWQuCisKIDIwMTYtMDgtMTcgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBhbS5zb255LmNvbT4KIAogICAgICAgICBVc2UgZmluZF9saWJyYXJ5IHdpdGhp
biBXaW5kb3dzIGJ1aWxkCmRpZmYgLS1naXQgYS9NYW51YWxUZXN0cy93ZWJnbC1wcmVmZXJMb3dQ
b3dlclRvSGlnaFBlcmZvcm1hbmNlLmh0bWwgYi9NYW51YWxUZXN0cy93ZWJnbC1wcmVmZXJMb3dQ
b3dlclRvSGlnaFBlcmZvcm1hbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVhNTg4ZTM2ODcxM2ViMmEx
MmFlOWNhYjhiZDU2ZGE2NDgzMzRhZQotLS0gL2Rldi9udWxsCisrKyBiL01hbnVhbFRlc3RzL3dl
YmdsLXByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8c2NyaXB0PgorZnVuY3Rpb24gY3JlYXRlQW5kRGVzY3JpYmVDb250ZXh0KG1zZywgcGFyYW1l
dGVycykKK3sKKyAgICB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFz
Iik7CisgICAgdmFyIGdsID0gY2FudmFzLmdldENvbnRleHQoIndlYmdsIiwgcGFyYW1ldGVycyk7
CisgICAgdmFyIGV4dCA9IGdsLmdldEV4dGVuc2lvbigiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5m
byIpOworCisgICAgdmFyIGhlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTsKKyAg
ICBoZWFkZXIudGV4dENvbnRlbnQgPSBtc2c7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGls
ZChoZWFkZXIpOworCisgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInBy
ZSIpOworICAgIHJlc3VsdC50ZXh0Q29udGVudCA9ICJVTk1BU0tFRF9WRU5ET1JfV0VCR0wgaXMg
IiArIGdsLmdldFBhcmFtZXRlcihleHQuVU5NQVNLRURfVkVORE9SX1dFQkdMKSArICJcbiI7Cisg
ICAgcmVzdWx0LnRleHRDb250ZW50ICs9ICJVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCBpcyAiICsg
Z2wuZ2V0UGFyYW1ldGVyKGV4dC5VTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCk7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChyZXN1bHQpOworfQorCitmdW5jdGlvbiBydW4oKQoreworICAg
IGNyZWF0ZUFuZERlc2NyaWJlQ29udGV4dCgiV2l0aCBwcmVmZXJMb3dQb3dlclRvSGlnaFBlcmZv
cm1hbmNlIiwge3ByZWZlckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2U6IHRydWV9KTsKKyAgICBj
cmVhdGVBbmREZXNjcmliZUNvbnRleHQoIldpdGhvdXQgcHJlZmVyTG93UG93ZXJUb0hpZ2hQZXJm
b3JtYW5jZSIsIHt9KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBydW4s
IGZhbHNlKTsKKzwvc2NyaXB0PgorPHA+CisgICAgVGhpcyBpcyBhIG1hbnVhbCB0ZXN0LCBzaW5j
ZSBpdCByZWxpZXMgb24gaGFyZHdhcmUgY29uZmlndXJhdGlvbnMuIEl0IGNyZWF0ZXMgdHdvCisg
ICAgV2ViR0wgY29udGV4dHMuIEl0IGZpcnN0IGFza3MgZm9yIGEgY29udGV4dCB3aXRoIHByZWZl
ckxvd1Bvd2VyVG9IaWdoUGVyZm9ybWFuY2UKKyAgICBzZXQgdG8gdHJ1ZSwgYW5kIHRoZW4gZm9y
IGEgY29udGV4dCB3aXRoIHRoZSBkZWZhdWx0IHZhbHVlIChmYWxzZSkuIE9uIGEgc3lzdGVtCisg
ICAgd2l0aCBib3RoIGFuIGludGVncmF0ZWQgYW5kIGRpc2NyZXRlIEdQVSwgdGhlIHJlbmRlcmVy
cyBzaG91bGQgYmUgZGlmZmVyZW50LgorPC9wPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="310029"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>