<?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>118330</bug_id>
          
          <creation_ts>2013-07-02 15:41:09 -0700</creation_ts>
          <short_desc>The callback for WKPageGetPlugInInformation needs info about whether or not there are any non-playing instances of the plug-in on the page</short_desc>
          <delta_ts>2013-07-02 17:07:28 -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>WebKit2</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="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>aestes</cc>
    
    <cc>andersca</cc>
    
    <cc>dino</cc>
    
    <cc>jberlin</cc>
    
    <cc>jonlee</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905606</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-07-02 15:41:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/14320278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905620</commentid>
    <comment_count>1</comment_count>
      <attachid>205954</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-07-02 15:58:11 -0700</bug_when>
    <thetext>Created attachment 205954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905623</commentid>
    <comment_count>2</comment_count>
      <attachid>205954</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-07-02 16:14:03 -0700</bug_when>
    <thetext>Comment on attachment 205954
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1000
&gt; +        HTMLPlugInImageElement* plugInImageElement = toHTMLPlugInImageElement(node);
&gt; +        mimeTypes.add(plugInImageElement-&gt;loadedMimeType());

Nit: merge into one line.

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1022
&gt; +        RefPtr&lt;NodeList&gt; plugIns = frame-&gt;document()-&gt;getElementsByTagName(WebCore::HTMLNames::embedTag.localName());

What about &lt;object&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905624</commentid>
    <comment_count>3</comment_count>
      <attachid>205954</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-07-02 16:14:26 -0700</bug_when>
    <thetext>Comment on attachment 205954
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1022
&gt;&gt; +        RefPtr&lt;NodeList&gt; plugIns = frame-&gt;document()-&gt;getElementsByTagName(WebCore::HTMLNames::embedTag.localName());
&gt; 
&gt; What about &lt;object&gt;?

Duh! right below :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905625</commentid>
    <comment_count>4</comment_count>
      <attachid>205954</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-07-02 16:15:28 -0700</bug_when>
    <thetext>Comment on attachment 205954
Patch

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

&gt; Source/WebKit2/Shared/Plugins/Netscape/PluginInformation.cpp:106
&gt; +    return ASCIILiteral(&quot;PluginInformationPageContainsNonPlayingInstanceOfPlugIn&quot;);

Plugin or PlugIn?

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1024
&gt; +        RefPtr&lt;NodeList&gt; plugIns = frame-&gt;document()-&gt;getElementsByTagName(WebCore::HTMLNames::embedTag.localName());
&gt; +        if (plugIns)
&gt; +            addPlugInMimeTypesFromNodeListForNonPlayingPlugIns(plugIns, nonPlayingPlugInMimeTypes);

Why keep a RefPtr here instead of just passing the PassRefPtr you got from getElementsByTagName() into addPlugInMimeTypesFromNodeListForNonPlayingPlugIns()? You seem to be adding some refcount churn that isn&apos;t necessary.

&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1028
&gt; +        plugIns = frame-&gt;document()-&gt;getElementsByTagName(WebCore::HTMLNames::objectTag.localName());
&gt; +        if (plugIns)
&gt; +            addPlugInMimeTypesFromNodeListForNonPlayingPlugIns(plugIns, nonPlayingPlugInMimeTypes);

Ditto.

Also, should you be looking for &lt;applet&gt; elements?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905626</commentid>
    <comment_count>5</comment_count>
      <attachid>205954</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-07-02 16:20:36 -0700</bug_when>
    <thetext>Comment on attachment 205954
Patch

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

&gt;&gt; Source/WebKit2/Shared/Plugins/Netscape/PluginInformation.cpp:106
&gt;&gt; +    return ASCIILiteral(&quot;PluginInformationPageContainsNonPlayingInstanceOfPlugIn&quot;);
&gt; 
&gt; Plugin or PlugIn?

PlugIn!

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:503
&gt; +    for (const String&amp; plugInMimeType : nonPlayingPlugInInstanceMimeTypes) {

No space before the colon.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1028
&gt;&gt; +            addPlugInMimeTypesFromNodeListForNonPlayingPlugIns(plugIns, nonPlayingPlugInMimeTypes);
&gt; 
&gt; Ditto.
&gt; 
&gt; Also, should you be looking for &lt;applet&gt; elements?

Yes, should look for &lt;applet&gt;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905627</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-07-02 16:33:33 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 205954 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205954&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/Shared/Plugins/Netscape/PluginInformation.cpp:106
&gt; &gt;&gt; +    return ASCIILiteral(&quot;PluginInformationPageContainsNonPlayingInstanceOfPlugIn&quot;);
&gt; &gt; 
&gt; &gt; Plugin or PlugIn?
&gt; 
&gt; PlugIn!

Fixed!

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:503
&gt; &gt; +    for (const String&amp; plugInMimeType : nonPlayingPlugInInstanceMimeTypes) {
&gt; 
&gt; No space before the colon.

Fixed.

&gt; 
&gt; &gt;&gt; Source/WebKit2/WebProcess/WebPage/mac/WebPageMac.mm:1028
&gt; &gt;&gt; +            addPlugInMimeTypesFromNodeListForNonPlayingPlugIns(plugIns, nonPlayingPlugInMimeTypes);
&gt; &gt; 
&gt; &gt; Ditto.

I was mimicking HTMLPlugInImageElement::restartSimilarPlugIns a little too closely.

Fixed, and added an early return in addPlugInMimeTypesFromNodeListForNonPlayingPlugIns if !plugIns. 

&gt; &gt; 
&gt; &gt; Also, should you be looking for &lt;applet&gt; elements?
&gt; 
&gt; Yes, should look for &lt;applet&gt;s.

No, we do not snapshot Java.

Added an assertion in addPlugInMimeTypesFromNodeListForNonPlayingPlugIns:

ASSERT(!plugInElement-&gt;hasTagName(WebCore::HTMLNames::appletTag));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905633</commentid>
    <comment_count>7</comment_count>
      <attachid>205954</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-07-02 17:07:22 -0700</bug_when>
    <thetext>Comment on attachment 205954
Patch

Committed in http://trac.webkit.org/changeset/152328</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205954</attachid>
            <date>2013-07-02 15:58:11 -0700</date>
            <delta_ts>2013-07-02 17:07:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>118330.patch</filename>
            <type>text/plain</type>
            <size>14440</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MDNlMDVmLi42ZmNmMmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDctMDIgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KKworICAg
ICAgICBUaGUgY2FsbGJhY2sgZm9yIFdLUGFnZUdldFBsdWdJbkluZm9ybWF0aW9uIG5lZWRzIGlu
Zm8gYWJvdXQgd2hldGhlciBvciBub3QgdGhlcmUgYXJlIGFueQorICAgICAgICBub24tcGxheWlu
ZyBpbnN0YW5jZXMgb2YgdGhlIHBsdWctaW4gb24gdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODMzMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
IEV4cG9zZSBhIHN5bWJvbCBzbyBpdCBjYW4gYmUgdXNlZCBpbiBXZWJLaXQyLgorCiAyMDEzLTA3
LTAxICBwZWF2b0BvdXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtX
aW5dIENyYXNoIHdoZW4gc2Nyb2xsaW5nIHBhZ2Ugd2l0aCBpbWFnZXMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCmluZGV4IGE3YmUwNGMuLmU3NjU2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC04NDYs
NiArODQ2LDcgQEAgX19aTjdXZWJDb3JlNE5vZGUxNHNldFRleHRDb250ZW50RVJLTjNXVEY2U3Ry
aW5nRVJpCiBfX1pON1dlYkNvcmU0Tm9kZTE3c3RvcElnbm9yaW5nTGVha3NFdgogX19aTjdXZWJD
b3JlNE5vZGUxOHN0YXJ0SWdub3JpbmdMZWFrc0V2CiBfX1pON1dlYkNvcmU0Tm9kZTE5c2V0TmVl
ZHNTdHlsZVJlY2FsY0VOU18xNVN0eWxlQ2hhbmdlVHlwZUUKK19fWk43V2ViQ29yZTROb2RlMjBn
ZXRFbGVtZW50c0J5VGFnTmFtZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU0
UGFnZTEwZmluZFN0cmluZ0VSS04zV1RGNlN0cmluZ0VqCiBfX1pON1dlYkNvcmU0UGFnZTExUGFn
ZUNsaWVudHNDMUV2CiBfX1pON1dlYkNvcmU0UGFnZTExUGFnZUNsaWVudHNEMUV2CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggN2IxMjQ2YS4uM2VjNWMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEz
LTA3LTAyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVGhl
IGNhbGxiYWNrIGZvciBXS1BhZ2VHZXRQbHVnSW5JbmZvcm1hdGlvbiBuZWVkcyBpbmZvIGFib3V0
IHdoZXRoZXIgb3Igbm90IHRoZXJlIGFyZSBhbnkKKyAgICAgICAgbm9uLXBsYXlpbmcgaW5zdGFu
Y2VzIG9mIHRoZSBwbHVnLWluIG9uIHRoZSBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTgzMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW5vdGhlciBrZXkgdmFsdWUgcGFpciB0byB0aGUg
ZGljdGlvbmFyeSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrLgorCisgICAgICAgICogU2hhcmVkL0FQ
SS9jL1dLUGx1Z2luSW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoV0tQbHVnSW5JbmZvcm1hdGlv
blBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luS2V5KToKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tQbHVnaW5JbmZvcm1hdGlvbi5oOgorCisgICAgICAgICogU2hhcmVkL1Bs
dWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0Ojpw
bHVnSW5JbmZvcm1hdGlvblBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luS2V5
KToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlUGx1Z0luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KToK
KyAgICAgICAgQWRkIHRoZSBpbmZvcm1hdGlvbiBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGUgcGFn
ZSBjb250YWlucyBhIG5vbi1wbGF5aW5nIGluc3RhbmNlIG9mIHRoYXQKKyAgICAgICAgcGx1Zy1p
biB0byB0aGUgcGx1Zy1pbiBpbmZvcm1hdGlvbiBkaWN0aW9uYXJ5LgorICAgICAgICAqIFNoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmg6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb250YWluc1BsdWdJbkNhbGxiYWNrKToK
KyAgICAgICAgQ2hlY2sgaWYgYW55IG9mIHRoZSBNSU1FIHR5cGVzIG9mIHRoZSBwbHVnLWluIGlu
c3RhbmNlcyB0aGF0IGFyZSBwcmVzZW50IG9uIHRoZSBwYWdlIGJ1dCBhcmUKKyAgICAgICAgbm90
IHBsYXlpbmcgbWF0Y2ggdGhlIGluc3RhbmNlIG9mIHBsdWctaW4gYmVpbmcgc2VhcmNoZWQgZm9y
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6YWRkUGx1Z0luTWltZVR5cGVzRnJvbU5vZGVMaXN0Rm9yTm9uUGxheWluZ1Bs
dWdJbnMpOgorICAgICAgICBCYXNlZCByb3VnaGx5IG9mZiBvZiBhZGRQbHVnSW5zRnJvbU5vZGVM
aXN0TWF0Y2hpbmdQbHVnSW5PcmlnaW4gaW4KKyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVu
dC5jcHAuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbnRhaW5zUGx1Z2luVmlld3NXaXRo
UGx1Z2luUHJvY2Vzc1Rva2VuKToKKyAgICAgICAgQmFzZWQgcm91Z2hseSBvZmYgb2YgSFRNTFBs
dWdJbkltYWdlRWxlbWVudDo6cmVzdGFydFNpbWlsYXJQbHVnSW5zLgorCiAyMDEzLTA3LTAxICBL
YW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZG9wdCB0b0hU
TUxUZXh0QXJlYUVsZW1lbnQgZm9yIGNvZGUgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLUGx1Z2luSW5mb3JtYXRpb24uY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLUGx1Z2luSW5mb3JtYXRpb24uY3BwCmluZGV4IDVjNDkwYmUuLjQ4
Yjg0NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1BsdWdpbklu
Zm9ybWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tQbHVnaW5J
bmZvcm1hdGlvbi5jcHAKQEAgLTEwOSwzICsxMDksOSBAQCBXS1N0cmluZ1JlZiBXS1BsdWdpbklu
Zm9ybWF0aW9uUGx1Z2luVVJMS2V5KCkKICAgICBzdGF0aWMgV2ViU3RyaW5nKiBrZXkgPSBXZWJT
dHJpbmc6OmNyZWF0ZShwbHVnaW5JbmZvcm1hdGlvblBsdWdpblVSTEtleSgpKS5sZWFrUmVmKCk7
CiAgICAgcmV0dXJuIHRvQVBJKGtleSk7CiB9CisKK1dLU3RyaW5nUmVmIFdLUGx1Z0luSW5mb3Jt
YXRpb25QYWdlQ29udGFpbnNOb25QbGF5aW5nSW5zdGFuY2VPZlBsdWdJbktleSgpCit7CisgICAg
c3RhdGljIFdlYlN0cmluZyoga2V5ID0gV2ViU3RyaW5nOjpjcmVhdGUocGx1Z0luSW5mb3JtYXRp
b25QYWdlQ29udGFpbnNOb25QbGF5aW5nSW5zdGFuY2VPZlBsdWdJbktleSgpKS5sZWFrUmVmKCk7
CisgICAgcmV0dXJuIHRvQVBJKGtleSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tQbHVnaW5JbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLUGx1Z2luSW5mb3JtYXRpb24uaAppbmRleCBjZmJmZjUyLi4yYjNmODc5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tQbHVnaW5JbmZvcm1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1BsdWdpbkluZm9ybWF0aW9uLmgK
QEAgLTc2LDYgKzc2LDkgQEAgV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUGx1Z2luSW5mb3JtYXRp
b25QbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTEtleSgpOwogLyogVmFsdWUgdHlwZTogV0tVUkxSZWYg
Ki8KIFdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1BsdWdpbkluZm9ybWF0aW9uUGx1Z2luVVJMS2V5
KCk7CiAKKy8qIFZhbHVlIHR5cGU6IFdLQm9vbGVhblJlZiAqLworV0tfRVhQT1JUIFdLU3RyaW5n
UmVmIFdLUGx1Z0luSW5mb3JtYXRpb25QYWdlQ29udGFpbnNOb25QbGF5aW5nSW5zdGFuY2VPZlBs
dWdJbktleSgpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3Jt
YXRpb24uY3BwCmluZGV4IGZjODE1ZGUuLjRlNmM0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9ybWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5JbmZvcm1hdGlvbi5j
cHAKQEAgLTEwMSw2ICsxMDEsMTEgQEAgU3RyaW5nIHBsdWdpbkluZm9ybWF0aW9uUGx1Z2luVVJM
S2V5KCkKICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJQbHVnaW5JbmZvcm1hdGlvblBsdWdpblVS
TCIpOwogfQogCitTdHJpbmcgcGx1Z0luSW5mb3JtYXRpb25QYWdlQ29udGFpbnNOb25QbGF5aW5n
SW5zdGFuY2VPZlBsdWdJbktleSgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiUGx1Z2lu
SW5mb3JtYXRpb25QYWdlQ29udGFpbnNOb25QbGF5aW5nSW5zdGFuY2VPZlBsdWdJbiIpOworfQor
CiB2b2lkIGdldFBsdWdpbk1vZHVsZUluZm9ybWF0aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8m
IHBsdWdpbiwgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSYgbWFwKQogewogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQpAQCAtMTIwLDYgKzEyNSwxNiBAQCBQYXNzUmVmUHRyPElt
bXV0YWJsZURpY3Rpb25hcnk+IGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShjb25z
dCBQbHVnaW5NbwogICAgIHJldHVybiBJbW11dGFibGVEaWN0aW9uYXJ5OjphZG9wdChtYXApOwog
fQogCitQYXNzUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IGNyZWF0ZVBsdWdJbkluZm9ybWF0
aW9uRGljdGlvbmFyeShjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnSW5Nb2R1bGVJbmZvLCBi
b29sIHBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luKQoreworICAgIEltbXV0
YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOworICAgIGdldFBsdWdpbk1vZHVsZUluZm9ybWF0
aW9uKHBsdWdJbk1vZHVsZUluZm8sIG1hcCk7CisKKyAgICBtYXAuc2V0KHBsdWdJbkluZm9ybWF0
aW9uUGFnZUNvbnRhaW5zTm9uUGxheWluZ0luc3RhbmNlT2ZQbHVnSW5LZXkoKSwgV2ViQm9vbGVh
bjo6Y3JlYXRlKHBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luKSk7CisKKyAg
ICByZXR1cm4gSW1tdXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWFwKTsKK30KKwogUGFzc1JlZlB0
cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBjcmVhdGVQbHVnaW5JbmZvcm1hdGlvbkRpY3Rpb25hcnko
Y29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcs
IGNvbnN0IFN0cmluZyYgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGx1Z2luVVJMU3RyaW5nKQogewogICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUg
bWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
UGx1Z2luSW5mb3JtYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNj
YXBlL1BsdWdpbkluZm9ybWF0aW9uLmgKaW5kZXggNmI4YjZjMy4uMGMxMjlkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5mb3JtYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9QbHVnaW5J
bmZvcm1hdGlvbi5oCkBAIC00OSwxMSArNDksMTIgQEAgU3RyaW5nIHBsdWdpbkluZm9ybWF0aW9u
TUlNRVR5cGVLZXkoKTsKIFN0cmluZyBwbHVnaW5JbmZvcm1hdGlvblBhZ2VVUkxLZXkoKTsKIFN0
cmluZyBwbHVnaW5JbmZvcm1hdGlvblBsdWdpbnNwYWdlQXR0cmlidXRlVVJMS2V5KCk7CiBTdHJp
bmcgcGx1Z2luSW5mb3JtYXRpb25QbHVnaW5VUkxLZXkoKTsKK1N0cmluZyBwbHVnSW5JbmZvcm1h
dGlvblBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luS2V5KCk7CiAKIFBhc3NS
ZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9u
YXJ5KGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsKIFBhc3NSZWZQdHI8SW1tdXRhYmxlRGljdGlv
bmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFBsdWdpbk1vZHVs
ZUluZm8mLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGx1Z2luVVJMU3RyaW5nKTsKIFBh
c3NSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gY3JlYXRlUGx1Z2luSW5mb3JtYXRpb25EaWN0
aW9uYXJ5KGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZyk7Ci0KK1Bhc3NSZWZQdHI8SW1tdXRhYmxl
RGljdGlvbmFyeT4gY3JlYXRlUGx1Z0luSW5mb3JtYXRpb25EaWN0aW9uYXJ5KGNvbnN0IFBsdWdp
bk1vZHVsZUluZm8mLCBib29sIHBhZ2VDb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0lu
KTsKIAogdm9pZCBnZXRQbHVnaW5Nb2R1bGVJbmZvcm1hdGlvbihjb25zdCBQbHVnaW5Nb2R1bGVJ
bmZvJiwgSW1tdXRhYmxlRGljdGlvbmFyeTo6TWFwVHlwZSYpOwogdm9pZCBnZXRQbGF0Zm9ybVBs
dWdpbk1vZHVsZUluZm9ybWF0aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBJbW11dGFibGVE
aWN0aW9uYXJ5OjpNYXBUeXBlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggYTY2NmFmYi4uYTZmZTIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtNTM5LDcgKzUzOSw3IEBAIHB1YmxpYzoKICAgICBDb2xvclNwYWNlRGF0
YSBjb2xvclNwYWNlKCk7CiAKICAgICB2b2lkIGdldFBsdWdJbkluZm9ybWF0aW9uKHBpZF90IHBs
dWdJblByb2Nlc3NJRCwgUGFzc1JlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+KTsKLSAgICB2b2lk
IGNvbnRhaW5zUGx1Z0luQ2FsbGJhY2soYm9vbCBjb250YWluc1BsdWdJbiwgdWludDY0X3QgcGx1
Z0luVG9rZW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgY29udGFpbnNQbHVnSW5D
YWxsYmFjayhib29sIGNvbnRhaW5zUGx1Z0luLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbm9uUGxh
eWluZ1BsdWdJbkluc3RhbmNlTWltZVR5cGVzLCB1aW50NjRfdCBwbHVnSW5Ub2tlbiwgdWludDY0
X3QgY2FsbGJhY2tJRCk7CiAjZW5kaWYKIAogICAgIHZvaWQgcGFnZVNjYWxlRmFjdG9yRGlkQ2hh
bmdlKGRvdWJsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCA4YzFkZTkwLi5jZjg3NDg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2NCw3ICsyNjQs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgUGx1Zy1pbiBjb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwogICAgIFBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0No
YW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1
Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKICAgICBTZXRQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHVpbnQ2
NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKLSAgICBDb250YWluc1BsdWdJbkNhbGxiYWNrKGJv
b2wgY29udGFpbnNQbHVnSW4sIHVpbnQ2NF90IHBsdWdJblByb2Nlc3NUb2tlbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKKyAgICBDb250YWluc1BsdWdJbkNhbGxiYWNrKGJvb2wgY29udGFpbnNQbHVn
SW4sIFZlY3RvcjxTdHJpbmc+IG5vblBsYXlpbmdQbHVnSW5JbnN0YW5jZU1pbWVUeXBlcywgdWlu
dDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuLCB1aW50NjRfdCBjYWxsYmFja0lEKQogCiAgICAgIyBT
cGVlY2ggbWVzc2FnZXMKICAgICBHZXRJc1NwZWFraW5nKCkgLT4gKGJvb2wgaXNTcGVha2luZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFj
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5k
ZXggYTJmMDczMi4uNjE1MmQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIlBsdWdpblBy
b2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0
Q2hlY2tlci5oIgorI2ltcG9ydCAiV2ViQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgPFdlYkNvcmUvRGlj
dGF0aW9uQWx0ZXJuYXRpdmUuaD4KQEAgLTQ4MCw3ICs0ODEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6Z2V0UGx1Z0luSW5mb3JtYXRpb24ocGlkX3QgcGx1Z0luUHJvY2Vzc0lELCBQYXNzUmVmUHRy
PERpY3RpbwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q29udGFpbnNQ
bHVnaW5WaWV3c1dpdGhQbHVnaW5Qcm9jZXNzVG9rZW4ocGx1Z0luUHJvY2Vzc1Byb3h5LT5wbHVn
aW5Qcm9jZXNzVG9rZW4oKSwgY2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmNvbnRhaW5zUGx1Z0luQ2FsbGJhY2soYm9vbCBjb250YWluc1BsdWdJbiwgdWlu
dDY0X3QgcGx1Z0luVG9rZW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit2b2lkIFdlYlBhZ2VQcm94
eTo6Y29udGFpbnNQbHVnSW5DYWxsYmFjayhib29sIGNvbnRhaW5zUGx1Z0luLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYgbm9uUGxheWluZ1BsdWdJbkluc3RhbmNlTWltZVR5cGVzLCB1aW50NjRfdCBw
bHVnSW5Ub2tlbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBSZWZQdHI8RGljdGlvbmFy
eUNhbGxiYWNrPiBjYWxsYmFjayA9IG1fcGx1Z0luSW5mb3JtYXRpb25DYWxsYmFja3MudGFrZShj
YWxsYmFja0lEKTsKICAgICBpZiAoIWNhbGxiYWNrKSB7CkBAIC00OTYsOSArNDk3LDE5IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpjb250YWluc1BsdWdJbkNhbGxiYWNrKGJvb2wgY29udGFpbnNQbHVn
SW4sIHVpbnQ2NF90IHBsdWdJblRvCiAgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVnSW5Qcm9j
ZXNzUHJveHkgPSBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkuZmluZFBsdWdJblByb2Nl
c3NCeVRva2VuKHBsdWdJblRva2VuKTsKICAgICBBU1NFUlQocGx1Z0luUHJvY2Vzc1Byb3h5KTsK
IAotICAgIEltbXV0YWJsZURpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwotICAgIGdldFBsdWdpbk1v
ZHVsZUluZm9ybWF0aW9uKHBsdWdJblByb2Nlc3NQcm94eS0+cGx1Z2luUHJvY2Vzc0F0dHJpYnV0
ZXMoKS5tb2R1bGVJbmZvLCBtYXApOwotICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBw
bHVnSW5JbmZvcm1hdGlvbiA9IEltbXV0YWJsZURpY3Rpb25hcnk6OmFkb3B0KG1hcCk7CisgICAg
U3RyaW5nIHBsdWdJbkJ1bmRsZUlkZW50aWZpZXIgPSBwbHVnSW5Qcm9jZXNzUHJveHktPnBsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzKCkubW9kdWxlSW5mby5idW5kbGVJZGVudGlmaWVyOworICAgIGJv
b2wgY29udGFpbnNOb25QbGF5aW5nSW5zdGFuY2VPZlBsdWdJbiA9IGZhbHNlOworCisgICAgZm9y
IChjb25zdCBTdHJpbmcmIHBsdWdJbk1pbWVUeXBlIDogbm9uUGxheWluZ1BsdWdJbkluc3RhbmNl
TWltZVR5cGVzKSB7CisgICAgICAgIFN0cmluZyBtaW1lVHlwZSA9IHBsdWdJbk1pbWVUeXBlOwor
ICAgICAgICBQbHVnaW5Nb2R1bGVJbmZvIHBsdWdJbkluZm8gPSBtX3Byb2Nlc3MtPmNvbnRleHQo
KS0+cGx1Z2luSW5mb1N0b3JlKCkuZmluZFBsdWdpbihtaW1lVHlwZSwgS1VSTCgpKTsKKyAgICAg
ICAgaWYgKHBsdWdJbkluZm8uYnVuZGxlSWRlbnRpZmllciA9PSBwbHVnSW5CdW5kbGVJZGVudGlm
aWVyKSB7CisgICAgICAgICAgICBjb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luID0g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgUmVmUHRy
PEltbXV0YWJsZURpY3Rpb25hcnk+IHBsdWdJbkluZm9ybWF0aW9uID0gY3JlYXRlUGx1Z0luSW5m
b3JtYXRpb25EaWN0aW9uYXJ5KHBsdWdJblByb2Nlc3NQcm94eS0+cGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMoKS5tb2R1bGVJbmZvLCBjb250YWluc05vblBsYXlpbmdJbnN0YW5jZU9mUGx1Z0luKTsK
IAogICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUocGx1Z0luSW5m
b3JtYXRpb24uZ2V0KCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDBhZTVmNDUuLmU0NGIyYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0K
QEAgLTUyLDkgKzUyLDExIEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MQ29udmVydGVy
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTm9kZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0d29ya2luZ0NvbnRleHQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaD4KQEAgLTk4MCw2ICs5ODIsMjUgQEAgdm9pZCBXZWJQYWdlOjpkcmF3UGFnZXNUb1BE
RkZyb21QREZEb2N1bWVudChDR0NvbnRleHRSZWYgY29udGV4dCwgUERGRG9jdW1lbnQgKnAKICAg
ICB9CiB9CiAKK3N0YXRpYyB2b2lkIGFkZFBsdWdJbk1pbWVUeXBlc0Zyb21Ob2RlTGlzdEZvck5v
blBsYXlpbmdQbHVnSW5zKFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IHBsdWdJbnMsIEhhc2hTZXQ8U3Ry
aW5nPiYgbWltZVR5cGVzKQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGxlbmd0aCA9IHBs
dWdJbnMtPmxlbmd0aCgpOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgTm9kZSogbm9kZSA9
IHBsdWdJbnMtPml0ZW0oaSk7CisgICAgICAgIGlmICghbm9kZS0+aXNQbHVnaW5FbGVtZW50KCkp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBIVE1MUGx1Z0luRWxlbWVudCogcGx1
Z0luRWxlbWVudCA9IHRvSFRNTFBsdWdJbkVsZW1lbnQobm9kZSk7CisgICAgICAgIGlmIChwbHVn
SW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6RGlzcGxheVN0
YXRlOjpQbGF5aW5nKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCFwbHVn
SW5FbGVtZW50LT5pc1BsdWdJbkltYWdlRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z0luSW1hZ2VFbGVtZW50ID0g
dG9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50KG5vZGUpOworICAgICAgICBtaW1lVHlwZXMuYWRkKHBs
dWdJbkltYWdlRWxlbWVudC0+bG9hZGVkTWltZVR5cGUoKSk7CisgICAgfQorfQorCiB2b2lkIFdl
YlBhZ2U6OmNvbnRhaW5zUGx1Z2luVmlld3NXaXRoUGx1Z2luUHJvY2Vzc1Rva2VuKHVpbnQ2NF90
IHBsdWdJblByb2Nlc3NUb2tlbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBib29sIGNv
bnRhaW5zUGx1Z0luID0gZmFsc2U7CkBAIC05OTAsNyArMTAxMSwyNyBAQCB2b2lkIFdlYlBhZ2U6
OmNvbnRhaW5zUGx1Z2luVmlld3NXaXRoUGx1Z2luUHJvY2Vzc1Rva2VuKHVpbnQ2NF90IHBsdWdJ
blByb2Nlc3NUbwogICAgICAgICB9CiAgICAgfQogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpDb250YWluc1BsdWdJbkNhbGxiYWNrKGNvbnRhaW5zUGx1Z0luLCBwbHVnSW5Qcm9j
ZXNzVG9rZW4sIGNhbGxiYWNrSUQpKTsKKyAgICBIYXNoU2V0PFN0cmluZz4gbm9uUGxheWluZ1Bs
dWdJbk1pbWVUeXBlczsKKyAgICBmb3IgKEZyYW1lKiBmcmFtZSA9IGNvcmVQYWdlKCktPm1haW5G
cmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkgewor
ICAgICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS0+c3ViZnJhbWVMb2FkZXIoKS0+Y29udGFpbnNQ
bHVnaW5zKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIWZyYW1lLT5k
b2N1bWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgUmVmUHRyPE5vZGVM
aXN0PiBwbHVnSW5zID0gZnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRzQnlUYWdOYW1lKFdl
YkNvcmU6OkhUTUxOYW1lczo6ZW1iZWRUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBpZiAocGx1
Z0lucykKKyAgICAgICAgICAgIGFkZFBsdWdJbk1pbWVUeXBlc0Zyb21Ob2RlTGlzdEZvck5vblBs
YXlpbmdQbHVnSW5zKHBsdWdJbnMsIG5vblBsYXlpbmdQbHVnSW5NaW1lVHlwZXMpOworCisgICAg
ICAgIHBsdWdJbnMgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudHNCeVRhZ05hbWUoV2Vi
Q29yZTo6SFRNTE5hbWVzOjpvYmplY3RUYWcubG9jYWxOYW1lKCkpOworICAgICAgICBpZiAocGx1
Z0lucykKKyAgICAgICAgICAgIGFkZFBsdWdJbk1pbWVUeXBlc0Zyb21Ob2RlTGlzdEZvck5vblBs
YXlpbmdQbHVnSW5zKHBsdWdJbnMsIG5vblBsYXlpbmdQbHVnSW5NaW1lVHlwZXMpOworICAgIH0K
KworICAgIFZlY3RvcjxTdHJpbmc+IG5vblBsYXlpbmdQbHVnSW5NaW1lVHlwZXNWZWN0b3I7Cisg
ICAgY29weVRvVmVjdG9yKG5vblBsYXlpbmdQbHVnSW5NaW1lVHlwZXMsIG5vblBsYXlpbmdQbHVn
SW5NaW1lVHlwZXNWZWN0b3IpOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpD
b250YWluc1BsdWdJbkNhbGxiYWNrKGNvbnRhaW5zUGx1Z0luLCBub25QbGF5aW5nUGx1Z0luTWlt
ZVR5cGVzVmVjdG9yLCBwbHVnSW5Qcm9jZXNzVG9rZW4sIGNhbGxiYWNrSUQpKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>