<?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>184343</bug_id>
          
          <creation_ts>2018-04-05 16:49:07 -0700</creation_ts>
          <short_desc>WebCore::screenColorSpace is retrieving CGColorSpace from NSScreen directly</short_desc>
          <delta_ts>2018-04-06 12:37:19 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>184322</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>pvollan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1412208</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-05 16:49:07 -0700</bug_when>
    <thetext>We should be brokering the screen&apos;s CGColorSpace from the UIProcess to the WebContent process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412209</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-05 16:49:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/39224881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412370</commentid>
    <comment_count>2</comment_count>
      <attachid>337366</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-06 08:56:10 -0700</bug_when>
    <thetext>Created attachment 337366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412376</commentid>
    <comment_count>3</comment_count>
      <attachid>337369</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-06 09:22:23 -0700</bug_when>
    <thetext>Created attachment 337369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412386</commentid>
    <comment_count>4</comment_count>
      <attachid>337369</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-04-06 09:37:38 -0700</bug_when>
    <thetext>Comment on attachment 337369
Patch

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

&gt; Source/WebCore/platform/ScreenProperties.h:51
&gt; +    enum EncodedDataType {
&gt; +        Null,
&gt; +        Name,
&gt; +        Data,
&gt; +    };

Perhaps we could indicate that this type is related to color space, for example:

enum EncodedColorSpaceDataType {
    Null,
    ColorSpaceName,
    ColorSpaceData,
};</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412391</commentid>
    <comment_count>5</comment_count>
      <attachid>337369</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2018-04-06 09:52:27 -0700</bug_when>
    <thetext>Comment on attachment 337369
Patch

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

Looks good!

&gt; Source/WebCore/platform/ScreenProperties.h:126
&gt; +        cgColorSpace = nullptr;

This line is probably not strictly needed, since cgColorSpace should already be null.

&gt; Source/WebCore/platform/ScreenProperties.h:132
&gt; +        if (!colorSpaceName)
&gt; +            return std::nullopt;

It seems we should always have a color space name here, perhaps add an ASSERT?

&gt; Source/WebCore/platform/ScreenProperties.h:141
&gt; +        if (!iccData)
&gt; +            return std::nullopt;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412437</commentid>
    <comment_count>6</comment_count>
      <attachid>337369</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-06 12:25:21 -0700</bug_when>
    <thetext>Comment on attachment 337369
Patch

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

&gt;&gt; Source/WebCore/platform/ScreenProperties.h:51
&gt;&gt; +    };
&gt; 
&gt; Perhaps we could indicate that this type is related to color space, for example:
&gt; 
&gt; enum EncodedColorSpaceDataType {
&gt;     Null,
&gt;     ColorSpaceName,
&gt;     ColorSpaceData,
&gt; };

Sure!

&gt;&gt; Source/WebCore/platform/ScreenProperties.h:126
&gt;&gt; +        cgColorSpace = nullptr;
&gt; 
&gt; This line is probably not strictly needed, since cgColorSpace should already be null.

OK.

&gt;&gt; Source/WebCore/platform/ScreenProperties.h:132
&gt;&gt; +            return std::nullopt;
&gt; 
&gt; It seems we should always have a color space name here, perhaps add an ASSERT?

OK.

&gt;&gt; Source/WebCore/platform/ScreenProperties.h:141
&gt;&gt; +            return std::nullopt;
&gt; 
&gt; Ditto.

Ditto! :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1412448</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-04-06 12:37:19 -0700</bug_when>
    <thetext>Committed r230351: &lt;https://trac.webkit.org/changeset/230351&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337366</attachid>
            <date>2018-04-06 08:56:10 -0700</date>
            <delta_ts>2018-04-06 09:22:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184343-20180406085610.patch</filename>
            <type>text/plain</type>
            <size>8154</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDMyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA0LTA2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkNvcmU6OnNjcmVlbkNv
bG9yU3BhY2UgaXMgcmV0cmlldmluZyBDR0NvbG9yU3BhY2UgZnJvbSBOU1NjcmVlbiBkaXJlY3Rs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzQz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTIyNDg4MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2UgU2NyZWVuUHJvcGVydGllcyB0byBz
ZXJpYWxpemUgdGhlIHNjcmVlbidzIGNvbG9yIHNwYWNlLCBhbmQgbGF0ZXIKKyAgICAgICAgcmV0
cmlldmUgdGhhdCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBUaGlzIGFsbG93cyB1cyB0byBj
bG9zZSBvZmYKKyAgICAgICAgdGhlIENHU1dpbmRvd1NlcnZlciBjb25uZWN0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuUHJvcGVydGllczo6ZW5jb2RlIGNvbnN0KTogQWRkIENHQ29sb3JTcGFjZVJlZiBzdXBwb3J0
LgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUHJvcGVydGllczo6ZGVjb2RlKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlzcGxheUlEKTogQWRkIGFzc2VydGlvbiB0byBwcmV2ZW50IHVzZSBpbiBXZWJDb250
ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpmaXJzdFNjcmVlbik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0U2NyZWVuUHJvcGVydGllcyk6IEFkZCBzdXBwb3J0IGZvciBDR0Nv
bG9yU3BhY2VSZWYuCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Db2xvclNwYWNlKTogUmV0cmll
dmUgY2FjaGVkIHZlcnNpb24gd2hlbiBpbiBXZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIEFz
c2VydCB0aGF0IE5TU2NyZWVuIGlzIG5vdCBhY2Nlc3NlZCBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisKIDIwMTgtMDQtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyMzAyMjMpOiBMYXlvdXRUZXN0IGh0dHAvdGVzdHMvY29udGVudGV4
dGVuc2lvbnMvY3NzLWRpc3BsYXktbm9uZS1vdmVyZmxvd3MtcnVsZS1kYXRhLTEuaHRtbCBpcyBj
cmFzaGluZwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmVlblByb3BlcnRpZXMu
aAkocmV2aXNpb24gMjMwMzI5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJv
cGVydGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNyArMjYsMjggQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit0eXBlZGVmIHN0cnVjdCBDR0NvbG9y
U3BhY2UgKkNHQ29sb3JTcGFjZVJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
U2NyZWVuUHJvcGVydGllcyB7CiAgICAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3Q7CiAg
ICAgRmxvYXRSZWN0IHNjcmVlblJlY3Q7CisgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4g
Y29sb3JTcGFjZTsKICAgICBpbnQgc2NyZWVuRGVwdGggeyAwIH07CiAgICAgaW50IHNjcmVlbkRl
cHRoUGVyQ29tcG9uZW50IHsgMCB9OwogICAgIGJvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lIHsgZmFsc2UgfTsKIAorICAg
IGVudW0gRW5jb2RlZERhdGFUeXBlIHsKKyAgICAgICAgTnVsbCwKKyAgICAgICAgTmFtZSwKKyAg
ICAgICAgRGF0YSwKKyAgICB9OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFNjcmVlblByb3BlcnRpZXM+IGRlY29kZShEZWNvZGVyJik7CiB9OwpA
QCAtNDUsNiArNTYsMjkgQEAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2NyZWVuUHJv
cGVydGllczo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7CiAgICAgZW5jb2RlciA8
PCBzY3JlZW5BdmFpbGFibGVSZWN0IDw8IHNjcmVlblJlY3QgPDwgc2NyZWVuRGVwdGggPDwgc2Ny
ZWVuRGVwdGhQZXJDb21wb25lbnQgPDwgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPDwgc2NyZWVu
SXNNb25vY2hyb21lOworCisgICAgaWYgKGNvbG9yU3BhY2UpIHsKKyAgICAgICAgLy8gVHJ5IHRv
IGVuY29kZSB0aGUgbmFtZS4KKyAgICAgICAgaWYgKGF1dG8gbmFtZSA9IGFkb3B0Q0YoQ0dDb2xv
clNwYWNlQ29weU5hbWUoY29sb3JTcGFjZS5nZXQoKSkpKSB7CisgICAgICAgICAgICBlbmNvZGVy
LmVuY29kZUVudW0oTmFtZSk7CisgICAgICAgICAgICBlbmNvZGVyIDw8IFN0cmluZyhuYW1lLmdl
dCgpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIEZhaWxp
bmcgdGhhdCwganVzdCBlbmNvZGUgdGhlIElDQyBkYXRhLgorICAgICAgICBpZiAoYXV0byBwcm9m
aWxlRGF0YSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ29weUlDQ0RhdGEoY29sb3JTcGFjZS5nZXQo
KSkpKSB7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUVudW0oRGF0YSk7CisKKyAgICAgICAg
ICAgIFZlY3Rvcjx1aW50OF90PiBpY2NEYXRhOworICAgICAgICAgICAgaWNjRGF0YS5hcHBlbmQo
Q0ZEYXRhR2V0Qnl0ZVB0cihwcm9maWxlRGF0YS5nZXQoKSksIENGRGF0YUdldExlbmd0aChwcm9m
aWxlRGF0YS5nZXQoKSkpOworCisgICAgICAgICAgICBlbmNvZGVyIDw8IGljY0RhdGE7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBUaGUgY29sb3Igc3Bh
Y2Ugd2FzIG51bGwgb3IgZmFpbGVkIHRvIGJlIGVuY29kZWQuCisgICAgZW5jb2RlciA8PCBOdWxs
OwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtODAsOCArMTE0LDQxIEBAIHN0ZDo6
b3B0aW9uYWw8U2NyZWVuUHJvcGVydGllcz4gU2NyZWVuUHIKICAgICBpZiAoIXNjcmVlbklzTW9u
b2Nocm9tZSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7IHsg
V1RGTW92ZSgqc2NyZWVuQXZhaWxhYmxlUmVjdCksIFdURk1vdmUoKnNjcmVlblJlY3QpLCBXVEZN
b3ZlKCpzY3JlZW5EZXB0aCksIFdURk1vdmUoKnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KSwgV1RG
TW92ZSgqc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMpLCBXVEZNb3ZlKCpzY3JlZW5Jc01vbm9jaHJv
bWUpIH0gfTsKKyAgICBFbmNvZGVkRGF0YVR5cGUgZGF0YVR5cGU7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0oZGF0YVR5cGUpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY2dDb2xvclNwYWNlOworICAgIHN3aXRjaCAo
ZGF0YVR5cGUpIHsKKyAgICBjYXNlIE51bGw6CisgICAgICAgIGNnQ29sb3JTcGFjZSA9IG51bGxw
dHI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTmFtZTogeworICAgICAgICBzdGQ6Om9wdGlv
bmFsPFN0cmluZz4gY29sb3JTcGFjZU5hbWU7CisgICAgICAgIGRlY29kZXIgPj4gY29sb3JTcGFj
ZU5hbWU7CisgICAgICAgIGlmICghY29sb3JTcGFjZU5hbWUpCisgICAgICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgICAgIGNnQ29sb3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNw
YWNlQ3JlYXRlV2l0aE5hbWUoY29sb3JTcGFjZU5hbWUtPmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRGF0YTogeworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gaWNjRGF0YTsKKyAgICAgICAgZGVjb2RlciA+PiBp
Y2NEYXRhOworICAgICAgICBpZiAoIWljY0RhdGEpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgICAgIGF1dG8gY29sb3JTcGFjZURhdGEgPSBhZG9wdENGKENGRGF0YUNy
ZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBpY2NEYXRhLT5kYXRhKCksIGljY0RhdGEtPnNpemUo
KSkpOworICAgICAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0MzU4PiBXZSBz
aG91bGQgc3dpdGNoIHRvIENHQ29sb3JTcGFjZUNyZWF0ZUlDQ0Jhc2VkLgorI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBjZ0NvbG9yU3BhY2UgPSBhZG9wdENGKENH
Q29sb3JTcGFjZUNyZWF0ZVdpdGhJQ0NQcm9maWxlKGNvbG9yU3BhY2VEYXRhLmdldCgpKSk7Cisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9
CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKnNjcmVlbkF2YWlsYWJsZVJlY3QpLCBXVEZNb3Zl
KCpzY3JlZW5SZWN0KSwgV1RGTW92ZShjZ0NvbG9yU3BhY2UpLCBXVEZNb3ZlKCpzY3JlZW5EZXB0
aCksIFdURk1vdmUoKnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KSwgV1RGTW92ZSgqc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMpLCBXVEZNb3ZlKCpzY3JlZW5Jc01vbm9jaHJvbWUpIH0gfTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1TY3JlZW5NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tCShyZXZpc2lvbiAyMzAzMjkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTQ4LDcgKzQ4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEKE5TU2NyZWVuICpzY3JlZW4pCiB7Ci0gICAgLy8gRklYTUU6
IDxodHRwOi8vd2Via2l0Lm9yZy9iLzE4NDM0Mz4gV2Ugc2hvdWxkIGFzc2VydCBoZXJlIGlmIGlu
IFdlYkNvbnRlbnQgcHJvY2Vzcy4KKyAgICBSRUxFQVNFX0FTU0VSVChoYXNQcm9jZXNzUHJpdmls
ZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwog
ICAgIHJldHVybiBbW1tzY3JlZW4gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTpAIk5T
U2NyZWVuTnVtYmVyIl0gaW50VmFsdWVdOwogfQogCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoV2lkZ2UKIC8vIFNjcmVlbiBjb250YWluaW5nIHRo
ZSBtZW51YmFyLgogc3RhdGljIE5TU2NyZWVuICpmaXJzdFNjcmVlbigpCiB7Ci0gICAgLy8gRklY
TUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzE4NDM0Mz4gV2Ugc2hvdWxkIGFzc2VydCBoZXJlIGlm
IGluIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKyAgICBSRUxFQVNFX0FTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikp
OwogICAgIE5TQXJyYXkgKnNjcmVlbnMgPSBbTlNTY3JlZW4gc2NyZWVuc107CiAgICAgaWYgKCFb
c2NyZWVucyBjb3VudF0pCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0xMDIsMTYgKzEwMiwyMCBA
QCBzdGF0aWMgSGFzaE1hcDxQbGF0Zm9ybURpc3BsYXlJRCwgU2NyZWVuCiAKIHZvaWQgZ2V0U2Ny
ZWVuUHJvcGVydGllcyhIYXNoTWFwPFBsYXRmb3JtRGlzcGxheUlELCBTY3JlZW5Qcm9wZXJ0aWVz
PiYgc2NyZWVuUHJvcGVydGllcykKIHsKKyAgICBSRUxFQVNFX0FTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11bmljYXRlV2l0aFdpbmRvd1NlcnZlcikp
OwogICAgIGZvciAoTlNTY3JlZW4gKnNjcmVlbiBpbiBbTlNTY3JlZW4gc2NyZWVuc10pIHsKLSAg
ICAgICAgRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QgPSBbc2NyZWVuIHZpc2libGVGcmFt
ZV07Ci0gICAgICAgIHNjcmVlbkF2YWlsYWJsZVJlY3Quc2V0WShOU01heFkoW3NjcmVlbiBmcmFt
ZV0pIC0gKHNjcmVlbkF2YWlsYWJsZVJlY3QueSgpICsgc2NyZWVuQXZhaWxhYmxlUmVjdC5oZWln
aHQoKSkpOyAvLyBmbGlwCi0gICAgICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0ID0gW3NjcmVlbiBm
cmFtZV07CisgICAgICAgIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0ID0gc2NyZWVuLnZp
c2libGVGcmFtZTsKKyAgICAgICAgc2NyZWVuQXZhaWxhYmxlUmVjdC5zZXRZKE5TTWF4WShzY3Jl
ZW4uZnJhbWUpIC0gKHNjcmVlbkF2YWlsYWJsZVJlY3QueSgpICsgc2NyZWVuQXZhaWxhYmxlUmVj
dC5oZWlnaHQoKSkpOyAvLyBmbGlwCisgICAgICAgIEZsb2F0UmVjdCBzY3JlZW5SZWN0ID0gc2Ny
ZWVuLmZyYW1lOworCisgICAgICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNvbG9yU3Bh
Y2UgPSBzY3JlZW4uY29sb3JTcGFjZS5DR0NvbG9yU3BhY2U7CisKICAgICAgICAgaW50IHNjcmVl
bkRlcHRoID0gTlNCaXRzUGVyUGl4ZWxGcm9tRGVwdGgoc2NyZWVuLmRlcHRoKTsKICAgICAgICAg
aW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50ID0gTlNCaXRzUGVyU2FtcGxlRnJvbURlcHRoKHNj
cmVlbi5kZXB0aCk7CiAgICAgICAgIGJvb2wgc2NyZWVuSGFzSW52ZXJ0ZWRDb2xvcnMgPSBDR0Rp
c3BsYXlVc2VzSW52ZXJ0ZWRQb2xhcml0eSgpOwogICAgICAgICBib29sIHNjcmVlbklzTW9ub2No
cm9tZSA9IENHRGlzcGxheVVzZXNGb3JjZVRvR3JheSgpOwogCi0gICAgICAgIHNjcmVlblByb3Bl
cnRpZXMuc2V0KFdlYkNvcmU6OmRpc3BsYXlJRChzY3JlZW4pLCBTY3JlZW5Qcm9wZXJ0aWVzIHsg
c2NyZWVuQXZhaWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgc2NyZWVuRGVwdGgsIHNjcmVlbkRlcHRo
UGVyQ29tcG9uZW50LCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuSXNNb25vY2hyb21l
IH0pOworICAgICAgICBzY3JlZW5Qcm9wZXJ0aWVzLnNldChXZWJDb3JlOjpkaXNwbGF5SUQoc2Ny
ZWVuKSwgU2NyZWVuUHJvcGVydGllcyB7IHNjcmVlbkF2YWlsYWJsZVJlY3QsIHNjcmVlblJlY3Qs
IGNvbG9yU3BhY2UsIHNjcmVlbkRlcHRoLCBzY3JlZW5EZXB0aFBlckNvbXBvbmVudCwgc2NyZWVu
SGFzSW52ZXJ0ZWRDb2xvcnMsIHNjcmVlbklzTW9ub2Nocm9tZSB9KTsKICAgICB9CiB9CiAKQEAg
LTIxMyw3ICsyMTcsMTAgQEAgTlNTY3JlZW4gKnNjcmVlbihQbGF0Zm9ybURpc3BsYXlJRCBkaXNw
bAogCiBDR0NvbG9yU3BhY2VSZWYgc2NyZWVuQ29sb3JTcGFjZShXaWRnZXQqIHdpZGdldCkKIHsK
LSAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0MzQzPiBXZSBzaG91bGQgYXNz
ZXJ0IGhlcmUgaWYgaW4gV2ViQ29udGVudCBwcm9jZXNzLgorICAgIGlmICghc2NyZWVuUHJvcGVy
dGllcygpLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGdldFNjcmVlblByb3BlcnRpZXMod2lk
Z2V0KS5jb2xvclNwYWNlLmdldCgpOworCisgICAgUkVMRUFTRV9BU1NFUlQoaGFzUHJvY2Vzc1By
aXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5Db21tdW5pY2F0ZVdpdGhXaW5kb3dTZXJ2ZXIp
KTsKICAgICByZXR1cm4gc2NyZWVuKHdpZGdldCkuY29sb3JTcGFjZS5DR0NvbG9yU3BhY2U7CiB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337369</attachid>
            <date>2018-04-06 09:22:23 -0700</date>
            <delta_ts>2018-04-06 09:52:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184343-20180406092222.patch</filename>
            <type>text/plain</type>
            <size>8120</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMDMzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE4LTA0LTA2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFdlYkNvcmU6OnNjcmVlbkNv
bG9yU3BhY2UgaXMgcmV0cmlldmluZyBDR0NvbG9yU3BhY2UgZnJvbSBOU1NjcmVlbiBkaXJlY3Rs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MzQz
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTIyNDg4MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXZpc2UgU2NyZWVuUHJvcGVydGllcyB0byBz
ZXJpYWxpemUgdGhlIHNjcmVlbidzIGNvbG9yIHNwYWNlLCBhbmQgbGF0ZXIKKyAgICAgICAgcmV0
cmlldmUgdGhhdCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBUaGlzIGFsbG93cyB1cyB0byBj
bG9zZSBvZmYKKyAgICAgICAgdGhlIENHU1dpbmRvd1NlcnZlciBjb25uZWN0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
ZWVuUHJvcGVydGllczo6ZW5jb2RlIGNvbnN0KTogQWRkIENHQ29sb3JTcGFjZVJlZiBzdXBwb3J0
LgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuUHJvcGVydGllczo6ZGVjb2RlKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtU2NyZWVuTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlzcGxheUlEKTogQWRkIGFzc2VydGlvbiB0byBwcmV2ZW50IHVzZSBpbiBXZWJDb250
ZW50IHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpmaXJzdFNjcmVlbik6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Z2V0U2NyZWVuUHJvcGVydGllcyk6IEFkZCBzdXBwb3J0IGZvciBDR0Nv
bG9yU3BhY2VSZWYuCisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5Db2xvclNwYWNlKTogUmV0cmll
dmUgY2FjaGVkIHZlcnNpb24gd2hlbiBpbiBXZWJDb250ZW50IHByb2Nlc3MuCisgICAgICAgIEFz
c2VydCB0aGF0IE5TU2NyZWVuIGlzIG5vdCBhY2Nlc3NlZCBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisKIDIwMTgtMDQtMDYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCB0ZXN0IGZpeCBhZnRlciByMjMwMzIzCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2NyZWVuUHJvcGVydGllcy5oCShyZXZpc2lvbiAyMzAzMzIpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JlZW5Qcm9wZXJ0aWVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDE4ICsyNSwzMSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIFBMQVRGT1JNKE1BQykK
KwogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiBzdHJ1Y3QgQ0dDb2xvclNw
YWNlICpDR0NvbG9yU3BhY2VSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNj
cmVlblByb3BlcnRpZXMgewogICAgIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0OwogICAg
IEZsb2F0UmVjdCBzY3JlZW5SZWN0OworICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNv
bG9yU3BhY2U7CiAgICAgaW50IHNjcmVlbkRlcHRoIHsgMCB9OwogICAgIGludCBzY3JlZW5EZXB0
aFBlckNvbXBvbmVudCB7IDAgfTsKICAgICBib29sIHNjcmVlbkhhc0ludmVydGVkQ29sb3JzIHsg
ZmFsc2UgfTsKICAgICBib29sIHNjcmVlbklzTW9ub2Nocm9tZSB7IGZhbHNlIH07CiAKKyAgICBl
bnVtIEVuY29kZWREYXRhVHlwZSB7CisgICAgICAgIE51bGwsCisgICAgICAgIE5hbWUsCisgICAg
ICAgIERhdGEsCisgICAgfTsKKwogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxTY3JlZW5Qcm9wZXJ0aWVzPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKQEAg
LTQ1LDYgKzU4LDI5IEBAIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFNjcmVlblByb3Bl
cnRpZXM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwg
c2NyZWVuQXZhaWxhYmxlUmVjdCA8PCBzY3JlZW5SZWN0IDw8IHNjcmVlbkRlcHRoIDw8IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50IDw8IHNjcmVlbkhhc0ludmVydGVkQ29sb3JzIDw8IHNjcmVlbklz
TW9ub2Nocm9tZTsKKworICAgIGlmIChjb2xvclNwYWNlKSB7CisgICAgICAgIC8vIFRyeSB0byBl
bmNvZGUgdGhlIG5hbWUuCisgICAgICAgIGlmIChhdXRvIG5hbWUgPSBhZG9wdENGKENHQ29sb3JT
cGFjZUNvcHlOYW1lKGNvbG9yU3BhY2UuZ2V0KCkpKSkgeworICAgICAgICAgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKE5hbWUpOworICAgICAgICAgICAgZW5jb2RlciA8PCBTdHJpbmcobmFtZS5nZXQo
KSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAvLyBGYWlsaW5n
IHRoYXQsIGp1c3QgZW5jb2RlIHRoZSBJQ0MgZGF0YS4KKyAgICAgICAgaWYgKGF1dG8gcHJvZmls
ZURhdGEgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNvcHlJQ0NEYXRhKGNvbG9yU3BhY2UuZ2V0KCkp
KSkgeworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKERhdGEpOworCisgICAgICAgICAg
ICBWZWN0b3I8dWludDhfdD4gaWNjRGF0YTsKKyAgICAgICAgICAgIGljY0RhdGEuYXBwZW5kKENG
RGF0YUdldEJ5dGVQdHIocHJvZmlsZURhdGEuZ2V0KCkpLCBDRkRhdGFHZXRMZW5ndGgocHJvZmls
ZURhdGEuZ2V0KCkpKTsKKworICAgICAgICAgICAgZW5jb2RlciA8PCBpY2NEYXRhOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGhlIGNvbG9yIHNwYWNl
IHdhcyBudWxsIG9yIGZhaWxlZCB0byBiZSBlbmNvZGVkLgorICAgIGVuY29kZXIgPDwgTnVsbDsK
IH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTgwLDggKzExNiw0MyBAQCBzdGQ6Om9w
dGlvbmFsPFNjcmVlblByb3BlcnRpZXM+IFNjcmVlblByCiAgICAgaWYgKCFzY3JlZW5Jc01vbm9j
aHJvbWUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4geyB7IFdU
Rk1vdmUoKnNjcmVlbkF2YWlsYWJsZVJlY3QpLCBXVEZNb3ZlKCpzY3JlZW5SZWN0KSwgV1RGTW92
ZSgqc2NyZWVuRGVwdGgpLCBXVEZNb3ZlKCpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCksIFdURk1v
dmUoKnNjcmVlbkhhc0ludmVydGVkQ29sb3JzKSwgV1RGTW92ZSgqc2NyZWVuSXNNb25vY2hyb21l
KSB9IH07CisgICAgRW5jb2RlZERhdGFUeXBlIGRhdGFUeXBlOworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKGRhdGFUeXBlKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAg
IFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGNnQ29sb3JTcGFjZTsKKyAgICBzd2l0Y2ggKGRh
dGFUeXBlKSB7CisgICAgY2FzZSBOdWxsOgorICAgICAgICBjZ0NvbG9yU3BhY2UgPSBudWxscHRy
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5hbWU6IHsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IGNvbG9yU3BhY2VOYW1lOworICAgICAgICBkZWNvZGVyID4+IGNvbG9yU3BhY2VO
YW1lOworICAgICAgICBpZiAoIWNvbG9yU3BhY2VOYW1lKQorICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgICAgICBjZ0NvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29sb3JTcGFj
ZUNyZWF0ZVdpdGhOYW1lKGNvbG9yU3BhY2VOYW1lLT5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIERhdGE6IHsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGljY0RhdGE7CisgICAgICAgIGRlY29kZXIgPj4gaWNj
RGF0YTsKKyAgICAgICAgaWYgKCFpY2NEYXRhKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKworICAgICAgICBhdXRvIGNvbG9yU3BhY2VEYXRhID0gYWRvcHRDRihDRkRhdGFDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgaWNjRGF0YS0+ZGF0YSgpLCBpY2NEYXRhLT5zaXplKCkp
KTsKKyAgICAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9yZy9iLzE4NDM1OD4gV2Ugc2hv
dWxkIHN3aXRjaCB0byBDR0NvbG9yU3BhY2VDcmVhdGVJQ0NCYXNlZC4KKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXBy
ZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgY2dDb2xvclNwYWNlID0gYWRvcHRDRihDR0Nv
bG9yU3BhY2VDcmVhdGVXaXRoSUNDUHJvZmlsZShjb2xvclNwYWNlRGF0YS5nZXQoKSkpOworI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCpzY3JlZW5BdmFpbGFibGVSZWN0KSwgV1RGTW92ZSgq
c2NyZWVuUmVjdCksIFdURk1vdmUoY2dDb2xvclNwYWNlKSwgV1RGTW92ZSgqc2NyZWVuRGVwdGgp
LCBXVEZNb3ZlKCpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCksIFdURk1vdmUoKnNjcmVlbkhhc0lu
dmVydGVkQ29sb3JzKSwgV1RGTW92ZSgqc2NyZWVuSXNNb25vY2hyb21lKSB9IH07CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNjcmVlbk1hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1TY3JlZW5NYWMubW0JKHJl
dmlzaW9uIDIzMDMzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVNj
cmVlbk1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0YXRpYyBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoTlNTY3JlZW4gKnNj
cmVlbikKIHsKLSAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0MzQzPiBXZSBz
aG91bGQgYXNzZXJ0IGhlcmUgaWYgaW4gV2ViQ29udGVudCBwcm9jZXNzLgorICAgIFJFTEVBU0Vf
QVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVuaWNh
dGVXaXRoV2luZG93U2VydmVyKSk7CiAgICAgcmV0dXJuIFtbW3NjcmVlbiBkZXZpY2VEZXNjcmlw
dGlvbl0gb2JqZWN0Rm9yS2V5OkAiTlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1ZV07CiB9CiAKQEAg
LTcxLDcgKzcxLDcgQEAgc3RhdGljIFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRChXaWRnZQog
Ly8gU2NyZWVuIGNvbnRhaW5pbmcgdGhlIG1lbnViYXIuCiBzdGF0aWMgTlNTY3JlZW4gKmZpcnN0
U2NyZWVuKCkKIHsKLSAgICAvLyBGSVhNRTogPGh0dHA6Ly93ZWJraXQub3JnL2IvMTg0MzQzPiBX
ZSBzaG91bGQgYXNzZXJ0IGhlcmUgaWYgaW4gV2ViQ29udGVudCBwcm9jZXNzLgorICAgIFJFTEVB
U0VfQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVu
aWNhdGVXaXRoV2luZG93U2VydmVyKSk7CiAgICAgTlNBcnJheSAqc2NyZWVucyA9IFtOU1NjcmVl
biBzY3JlZW5zXTsKICAgICBpZiAoIVtzY3JlZW5zIGNvdW50XSkKICAgICAgICAgcmV0dXJuIG5p
bDsKQEAgLTEwMiwxNiArMTAyLDIwIEBAIHN0YXRpYyBIYXNoTWFwPFBsYXRmb3JtRGlzcGxheUlE
LCBTY3JlZW4KIAogdm9pZCBnZXRTY3JlZW5Qcm9wZXJ0aWVzKEhhc2hNYXA8UGxhdGZvcm1EaXNw
bGF5SUQsIFNjcmVlblByb3BlcnRpZXM+JiBzY3JlZW5Qcm9wZXJ0aWVzKQogeworICAgIFJFTEVB
U0VfQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQ29tbXVu
aWNhdGVXaXRoV2luZG93U2VydmVyKSk7CiAgICAgZm9yIChOU1NjcmVlbiAqc2NyZWVuIGluIFtO
U1NjcmVlbiBzY3JlZW5zXSkgewotICAgICAgICBGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVj
dCA9IFtzY3JlZW4gdmlzaWJsZUZyYW1lXTsKLSAgICAgICAgc2NyZWVuQXZhaWxhYmxlUmVjdC5z
ZXRZKE5TTWF4WShbc2NyZWVuIGZyYW1lXSkgLSAoc2NyZWVuQXZhaWxhYmxlUmVjdC55KCkgKyBz
Y3JlZW5BdmFpbGFibGVSZWN0LmhlaWdodCgpKSk7IC8vIGZsaXAKLSAgICAgICAgRmxvYXRSZWN0
IHNjcmVlblJlY3QgPSBbc2NyZWVuIGZyYW1lXTsKKyAgICAgICAgRmxvYXRSZWN0IHNjcmVlbkF2
YWlsYWJsZVJlY3QgPSBzY3JlZW4udmlzaWJsZUZyYW1lOworICAgICAgICBzY3JlZW5BdmFpbGFi
bGVSZWN0LnNldFkoTlNNYXhZKHNjcmVlbi5mcmFtZSkgLSAoc2NyZWVuQXZhaWxhYmxlUmVjdC55
KCkgKyBzY3JlZW5BdmFpbGFibGVSZWN0LmhlaWdodCgpKSk7IC8vIGZsaXAKKyAgICAgICAgRmxv
YXRSZWN0IHNjcmVlblJlY3QgPSBzY3JlZW4uZnJhbWU7CisKKyAgICAgICAgUmV0YWluUHRyPENH
Q29sb3JTcGFjZVJlZj4gY29sb3JTcGFjZSA9IHNjcmVlbi5jb2xvclNwYWNlLkNHQ29sb3JTcGFj
ZTsKKwogICAgICAgICBpbnQgc2NyZWVuRGVwdGggPSBOU0JpdHNQZXJQaXhlbEZyb21EZXB0aChz
Y3JlZW4uZGVwdGgpOwogICAgICAgICBpbnQgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQgPSBOU0Jp
dHNQZXJTYW1wbGVGcm9tRGVwdGgoc2NyZWVuLmRlcHRoKTsKICAgICAgICAgYm9vbCBzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycyA9IENHRGlzcGxheVVzZXNJbnZlcnRlZFBvbGFyaXR5KCk7CiAgICAg
ICAgIGJvb2wgc2NyZWVuSXNNb25vY2hyb21lID0gQ0dEaXNwbGF5VXNlc0ZvcmNlVG9HcmF5KCk7
CiAKLSAgICAgICAgc2NyZWVuUHJvcGVydGllcy5zZXQoV2ViQ29yZTo6ZGlzcGxheUlEKHNjcmVl
biksIFNjcmVlblByb3BlcnRpZXMgeyBzY3JlZW5BdmFpbGFibGVSZWN0LCBzY3JlZW5SZWN0LCBz
Y3JlZW5EZXB0aCwgc2NyZWVuRGVwdGhQZXJDb21wb25lbnQsIHNjcmVlbkhhc0ludmVydGVkQ29s
b3JzLCBzY3JlZW5Jc01vbm9jaHJvbWUgfSk7CisgICAgICAgIHNjcmVlblByb3BlcnRpZXMuc2V0
KFdlYkNvcmU6OmRpc3BsYXlJRChzY3JlZW4pLCBTY3JlZW5Qcm9wZXJ0aWVzIHsgc2NyZWVuQXZh
aWxhYmxlUmVjdCwgc2NyZWVuUmVjdCwgY29sb3JTcGFjZSwgc2NyZWVuRGVwdGgsIHNjcmVlbkRl
cHRoUGVyQ29tcG9uZW50LCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycywgc2NyZWVuSXNNb25vY2hy
b21lIH0pOwogICAgIH0KIH0KIApAQCAtMjEzLDcgKzIxNywxMCBAQCBOU1NjcmVlbiAqc2NyZWVu
KFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsCiAKIENHQ29sb3JTcGFjZVJlZiBzY3JlZW5Db2xvclNw
YWNlKFdpZGdldCogd2lkZ2V0KQogewotICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcv
Yi8xODQzNDM+IFdlIHNob3VsZCBhc3NlcnQgaGVyZSBpZiBpbiBXZWJDb250ZW50IHByb2Nlc3Mu
CisgICAgaWYgKCFzY3JlZW5Qcm9wZXJ0aWVzKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
Z2V0U2NyZWVuUHJvcGVydGllcyh3aWRnZXQpLmNvbG9yU3BhY2UuZ2V0KCk7CisKKyAgICBSRUxF
QVNFX0FTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkNvbW11
bmljYXRlV2l0aFdpbmRvd1NlcnZlcikpOwogICAgIHJldHVybiBzY3JlZW4od2lkZ2V0KS5jb2xv
clNwYWNlLkNHQ29sb3JTcGFjZTsKIH0KIAo=
</data>
<flag name="review"
          id="355782"
          type_id="1"
          status="+"
          setter="pvollan"
    />
          </attachment>
      

    </bug>

</bugzilla>