<?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>93138</bug_id>
          
          <creation_ts>2012-08-03 10:24:04 -0700</creation_ts>
          <short_desc>Cleanup locations of various checks in requestPlugin and loadPlugin</short_desc>
          <delta_ts>2012-08-04 15:49:39 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>92649</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686908</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-03 10:24:04 -0700</bug_when>
    <thetext>For example, the sandbox check should be by the Content Security Policy check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687469</commentid>
    <comment_count>1</comment_count>
      <attachid>156535</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 11:54:33 -0700</bug_when>
    <thetext>Created attachment 156535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687470</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 11:56:24 -0700</bug_when>
    <thetext>What do you think about this, Adam and Jochen (since I think both you know things about SubframeLoader)?

I think it makes sense to extract these tests out into a separate method, but the structure as it stands isn&apos;t terribly clear to me. Is there a good reason to have both requestPlugin and loadPlugin? Perhaps we could simply merge them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687477</commentid>
    <comment_count>3</comment_count>
      <attachid>156535</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-04 12:18:37 -0700</bug_when>
    <thetext>Comment on attachment 156535
Patch

Makes sense.  Usually we phrase these sorts of functions in terms of what&apos;s allowed rather than what&apos;s blocked to avoid having too many confusing double negatives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687478</commentid>
    <comment_count>4</comment_count>
      <attachid>156535</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-04 12:24:52 -0700</bug_when>
    <thetext>Comment on attachment 156535
Patch

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

&gt; Source/WebCore/loader/SubframeLoader.cpp:116
&gt; +        if (document() &amp;&amp; document()-&gt;securityOrigin()-&gt;isLocal() &amp;&amp; !settings-&gt;isJavaEnabledForLocalFiles())

For a followup patch, I wonder if we should be getting the document from the pluginElement.  That way we&apos;ll always find it and we can remove these null checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687479</commentid>
    <comment_count>5</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 12:36:25 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 156535 [details])
&gt; Makes sense.  Usually we phrase these sorts of functions in terms of what&apos;s allowed rather than what&apos;s blocked to avoid having too many confusing double negatives.

There&apos;s already `allowPlugins`, which (I think) is more concerned with content settings. I&apos;m not sure it makes a lot of sense to have `allowPlugins?` directly followed by `isPluginAllowed?`. Conceptually, it&apos;s clear (&quot;Are plugins allowed, in general?&quot; is a different question to &quot;Is this specific plugin allowed?&quot;), but it doesn&apos;t read well.

I&apos;d originally planned to push the `isSandboxed` check into `allowPlugins` (since it falls into the former question), but stopped since it would have the side-effect of notifying `didNotAllowPlugins`, which I think Chromium does something interesting with.

Any thoughts on that split?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687480</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-04 12:38:21 -0700</bug_when>
    <thetext>&gt; There&apos;s already `allowPlugins`, which (I think) is more concerned with content settings. I&apos;m not sure it makes a lot of sense to have `allowPlugins?` directly followed by `isPluginAllowed?`. Conceptually, it&apos;s clear (&quot;Are plugins allowed, in general?&quot; is a different question to &quot;Is this specific plugin allowed?&quot;), but it doesn&apos;t read well.
&gt; 
&gt; I&apos;d originally planned to push the `isSandboxed` check into `allowPlugins` (since it falls into the former question), but stopped since it would have the side-effect of notifying `didNotAllowPlugins`, which I think Chromium does something interesting with.
&gt; 
&gt; Any thoughts on that split?

I think it&apos;s better to keep the sandbox check separate.  That&apos;s what we do in other cases.  Perhaps shouldLoadPlugin(...) is a good name for the function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687483</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 12:49:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; There&apos;s already `allowPlugins`, which (I think) is more concerned with content settings. I&apos;m not sure it makes a lot of sense to have `allowPlugins?` directly followed by `isPluginAllowed?`. Conceptually, it&apos;s clear (&quot;Are plugins allowed, in general?&quot; is a different question to &quot;Is this specific plugin allowed?&quot;), but it doesn&apos;t read well.
&gt; &gt; 
&gt; &gt; I&apos;d originally planned to push the `isSandboxed` check into `allowPlugins` (since it falls into the former question), but stopped since it would have the side-effect of notifying `didNotAllowPlugins`, which I think Chromium does something interesting with.
&gt; &gt; 
&gt; &gt; Any thoughts on that split?
&gt; 
&gt; I think it&apos;s better to keep the sandbox check separate.  That&apos;s what we do in other cases.  Perhaps shouldLoadPlugin(...) is a good name for the function?

Makes sense. However, there&apos;s already `shouldUsePlugin`, which determines whether the plugin rendering process should be kicked off for a particular resource.

I&apos;ve been sitting here about 5 minutes typing new suggestions for names, and then backspacing over them. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687485</commentid>
    <comment_count>8</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 12:51:24 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; &gt; There&apos;s already `allowPlugins`, which (I think) is more concerned with content settings. I&apos;m not sure it makes a lot of sense to have `allowPlugins?` directly followed by `isPluginAllowed?`. Conceptually, it&apos;s clear (&quot;Are plugins allowed, in general?&quot; is a different question to &quot;Is this specific plugin allowed?&quot;), but it doesn&apos;t read well.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;d originally planned to push the `isSandboxed` check into `allowPlugins` (since it falls into the former question), but stopped since it would have the side-effect of notifying `didNotAllowPlugins`, which I think Chromium does something interesting with.
&gt; &gt; &gt; 
&gt; &gt; &gt; Any thoughts on that split?
&gt; &gt; 
&gt; &gt; I think it&apos;s better to keep the sandbox check separate.  That&apos;s what we do in other cases.  Perhaps shouldLoadPlugin(...) is a good name for the function?
&gt; 
&gt; Makes sense. However, there&apos;s already `shouldUsePlugin`, which determines whether the plugin rendering process should be kicked off for a particular resource.
&gt; 
&gt; I&apos;ve been sitting here about 5 minutes typing new suggestions for names, and then backspacing over them. :)

pluginIsLoadable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687487</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-04 13:34:20 -0700</bug_when>
    <thetext>Lets not get too hung up on the name.  Pick you favorite.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687489</commentid>
    <comment_count>10</comment_count>
      <attachid>156539</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 14:08:18 -0700</bug_when>
    <thetext>Created attachment 156539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687490</commentid>
    <comment_count>11</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-08-04 14:09:13 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Lets not get too hung up on the name.  Pick you favorite.  :)

`pluginIsLoadable` is the least bad name I&apos;ve come up with. CQ? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687504</commentid>
    <comment_count>12</comment_count>
      <attachid>156539</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-04 15:49:35 -0700</bug_when>
    <thetext>Comment on attachment 156539
Patch

Clearing flags on attachment: 156539

Committed r124704: &lt;http://trac.webkit.org/changeset/124704&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687505</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-04 15:49:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156535</attachid>
            <date>2012-08-04 11:54:33 -0700</date>
            <delta_ts>2012-08-04 14:08:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93138-20120804205409.patch</filename>
            <type>text/plain</type>
            <size>7457</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDExZDc0OGQ3MTMyODlh
YzFhZDk5ZTAwN2ZiNzBmZjg4NzNmZTQ1Ny4uZDUwZTI4Zjg3MTUzOWZkYmM3NGNlMzcwYWY2YzZh
NjZmZTAwNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA4LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgU3ViZnJhbWVM
b2FkZXI6OnJlcXVlc3RQbHVnaW4vbG9hZFBsdWdpbiBmb3IgY2xhcml0eS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3ViZnJhbWVMb2FkZXI6OnJlcXVl
c3RQbHVnaW4gYW5kIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luIGJvdGggZG8gYQorICAgICAg
ICB2YXJpZXR5IG9mIGNoZWNrcyB0byBkZXRlcm1pbmUgd2hldGhlciBvciBub3QgYSBzcGVjaWZp
YyByZXNvdXJjZSBvdWdodAorICAgICAgICB0byBpbnN0YW50aWF0ZSBhIHBsdWdpbiBpbiBhIHNw
ZWNpZmljIGNvbnRleHQuIHIxMjQ2MzZbMV0gbW92ZWQgb25lIG9mCisgICAgICAgIHRob3NlIGNo
ZWNrcywgYnV0IHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIGNsZWFyIHdheSB0byBkZXRlcm1p
bmUKKyAgICAgICAgd2hpY2ggY2hlY2tzIHNob3VsZCBiZSBwZXJmb3JtZWQgd2hlcmUuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCByZWZhY3RvcnMgdGhlIGNoZWNrcyBvdXQgb2YgdGhvc2UgdHdvIG1l
dGhvZHMgZm9yIGNsYXJpdHksCisgICAgICAgIG1vdmluZyB0aGVtIGFsbCBpbnRvIGEgbmV3IG1l
dGhvZDogU3ViZnJhbWVMb2FkZXI6OmlzUGx1Z2luQmxvY2tlZC4KKyAgICAgICAgVGhhdCBtZXRo
b2QgcmVxdWlyZXMgdGhlIHJlc291cmNlIFVSTCBhbmQgTUlNRSB0eXBlLCBhcyB3ZWxsIGFzIHRo
ZQorICAgICAgICBgb2JqZWN0YCBvciBgZW1iZWRgIGVsZW1lbnQgdGhhdCBvd25zIHRoaXMgYml0
IG9mIHJlbmRlcmluZy4gVGhlIFVSTAorICAgICAgICBhbmQgdHlwZSBhcmUgdXNlZCBkaXJlY3Rs
eSB0byBkZXRlcm1pbmUgYXZhaWxhYmlsaXR5LCB3aGlsZSB0aGUgZWxlbWVudAorICAgICAgICBp
cyBjdXJyZW50bHkgdXNlZCBvbmx5IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIG9uIHdoaWNoCisgICAg
ICAgIHNldFBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIGNhbiBiZSBjYWxsZWQgaWYgdGhlIHBs
dWdpbiBpcyBibG9ja2VkIGJ5CisgICAgICAgIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBubyBuZXcgdGVzdHMsIGFzIGl0IHNob3VsZG4n
dCBjaGFuZ2UgdGhlIGNvZGUncworICAgICAgICBiZWhhdmlvcjogaXQgc2hvdWxkIGJlIGEgc3Ry
YWlnaHRmb3J3YXJkIHJlZmFjdG9yaW5nIHdpdGhvdXQgd2ViLXZpc2libGUKKyAgICAgICAgc2lk
ZS1lZmZlY3RzLgorCisgICAgICAgIFsxXTogaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMTI0NjM2CisKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmlzUGx1Z2luQmxvY2tlZCk6CisgICAgICAgICAg
ICBBIG5ldyBtZXRob2QgdGhhdCBleHRyYWN0cyB0aGUgdmFyaW91cyAnU2hvdWxkIHdlIGFsbG93
IHRoaXMgcGx1Z2luCisgICAgICAgICAgICBpbiB0aGlzIGNvbnRleHQ/JyBjaGVja3MgZnJvbSBy
ZXF1ZXN0UGx1Z2luIGFuZCBsb2FkUGx1Z2luIGludG8gaW5lCisgICAgICAgICAgICBsb2NhdGlv
biwgcmF0aGVyIHRoYW4gc3ByZWFkaW5nIHRoZW0gYWNyb3NzIGJvdGguCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKToK
KyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKToKKyAgICAgICAg
KiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKFN1YmZyYW1lTG9hZGVyKToKKwog
MjAxMi0wOC0wMyAgUm9iZXJ0IEhvZ2FuICA8cm9iZXJ0QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q1NTIDIuMSBmYWlsdXJlOiBvdmVyZmxvdy1hcHBsaWVzLXRvLTAwMSBmYWlscwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5kZXggNjk5MTczNjJjMDBjNDEzMjY5ZGU1
NzJlMTQ1ZTRkNzBhMGYzMzRjYy4uMDU1NGM2ZTEyOGEyZGJlMzU3MWQxMjgxMjJiMWI4N2UyYTk2
NWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xMDQs
MTEgKzEwNCw0MyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXNvdXJjZVdpbGxVc2VQbHVnaW4o
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZQogICAgIHJldHVybiBzaG91bGRV
c2VQbHVnaW4oY29tcGxldGVkVVJMLCBtaW1lVHlwZSwgc2hvdWxkUHJlZmVyUGx1Z0luc0Zvcklt
YWdlcywgZmFsc2UsIHVzZUZhbGxiYWNrKTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVx
dWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBvd25lckVsZW1lbnQsIGNvbnN0IEtV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxs
YmFjaykKK2Jvb2wgU3ViZnJhbWVMb2FkZXI6OmlzUGx1Z2luQmxvY2tlZChIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50KiBwbHVnaW5FbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUpCiB7CiAgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gbV9mcmFtZS0+c2V0dGluZ3Mo
KTsKICAgICBpZiAoIXNldHRpbmdzKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgaWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzSmF2YUFwcGxldE1JTUVU
eXBlKG1pbWVUeXBlKSkgeworICAgICAgICBpZiAoIXNldHRpbmdzLT5pc0phdmFFbmFibGVkKCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRvY3VtZW50KCkgJiYgZG9j
dW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNMb2NhbCgpICYmICFzZXR0aW5ncy0+aXNKYXZh
RW5hYmxlZEZvckxvY2FsRmlsZXMoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGlmIChkb2N1bWVudCgpKSB7CisgICAgICAgIGlmIChkb2N1bWVudCgpLT5pc1NhbmRi
b3hlZChTYW5kYm94UGx1Z2lucykpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAg
ICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXkodXJsKSkgewor
ICAgICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChtX2ZyYW1lLCB1
cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoIWRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd09iamVj
dEZyb21Tb3VyY2UodXJsKSkgeworICAgICAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QqIHJl
bmRlcmVyID0gcGx1Z2luRWxlbWVudC0+cmVuZGVyRW1iZWRkZWRPYmplY3QoKTsKKyAgICAgICAg
ICAgIHJlbmRlcmVyLT5zZXRQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbihSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luQmxvY2tlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fZnJhbWUtPmxvYWRl
cigpICYmICFtX2ZyYW1lLT5sb2FkZXIoKS0+Y2hlY2tJZlJ1bkluc2VjdXJlQ29udGVudChkb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCB1cmwpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFN1YmZyYW1lTG9hZGVyOjpy
ZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
cGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZh
bGxiYWNrKQorewogCiAgICAgLy8gQXBwbGljYXRpb24gcGx1Zy1pbnMgYXJlIHBsdWctaW5zIGlt
cGxlbWVudGVkIGJ5IHRoZSB1c2VyIGFnZW50LCBmb3IgZXhhbXBsZSBRdCBwbHVnLWlucywKICAg
ICAvLyBhcyBvcHBvc2VkIHRvIHRoaXJkLXBhcnR5IGNvZGUgc3VjaCBhcyBGbGFzaC4gVGhlIHVz
ZXIgYWdlbnQgZGVjaWRlcyB3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZQpAQCAtMTE2LDE3ICsxNDgs
OCBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQqIG93bmVyRWxlbWVudCwgY29uc3QgSwogICAgIGlmICgoIWFsbG93UGx1Z2lucyhBYm91
dFRvSW5zdGFudGlhdGVQbHVnaW4pICYmICFNSU1FVHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0aW9u
UGx1Z2luTUlNRVR5cGUobWltZVR5cGUpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
aWYgKE1JTUVUeXBlUmVnaXN0cnk6OmlzSmF2YUFwcGxldE1JTUVUeXBlKG1pbWVUeXBlKSkgewot
ICAgICAgICBpZiAoIXNldHRpbmdzLT5pc0phdmFFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJhbWUtPmRv
Y3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzTG9jYWwoKSAmJiAhc2V0dGluZ3MtPmlzSmF2
YUVuYWJsZWRGb3JMb2NhbEZpbGVzKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotCi0gICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKG1fZnJhbWUt
PmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9CisgICAgaWYgKGlzUGx1Z2luQmxvY2tlZChvd25lckVsZW1lbnQs
IHVybCwgbWltZVR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBBU1NFUlQob3du
ZXJFbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgb3duZXJFbGVtZW50LT5oYXNUYWdO
YW1lKGVtYmVkVGFnKSk7CiAgICAgcmV0dXJuIGxvYWRQbHVnaW4ob3duZXJFbGVtZW50LCB1cmws
IG1pbWVUeXBlLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcywgdXNlRmFsbGJhY2spOwpAQCAtNDE0
LDIzICs0MzcsOSBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtVUgogICAgIGlmICghcmVuZGVyZXIg
fHwgdXNlRmFsbGJhY2spCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7Ci0gICAgICAgIEZyYW1l
TG9hZGVyOjpyZXBvcnRMb2NhbExvYWRGYWlsZWQobV9mcmFtZSwgdXJsLnN0cmluZygpKTsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmICghZG9jdW1lbnQoKS0+Y29udGVu
dFNlY3VyaXR5UG9saWN5KCktPmFsbG93T2JqZWN0RnJvbVNvdXJjZSh1cmwpKSB7Ci0gICAgICAg
IHJlbmRlcmVyLT5zZXRQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbihSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luQmxvY2tlZEJ5Q29udGVudFNlY3VyaXR5UG9saWN5KTsKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIH0KLQotICAgIEZyYW1lTG9hZGVyKiBmcmFtZUxvYWRlciA9IG1fZnJh
bWUtPmxvYWRlcigpOwotICAgIGlmICghZnJhbWVMb2FkZXItPmNoZWNrSWZSdW5JbnNlY3VyZUNv
bnRlbnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgdXJsKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCiAgICAgSW50U2l6ZSBjb250ZW50U2l6ZSA9IHJvdW5kZWRJbnRTaXplKExheW91
dFNpemUocmVuZGVyZXItPmNvbnRlbnRXaWR0aCgpLCByZW5kZXJlci0+Y29udGVudEhlaWdodCgp
KSk7CiAgICAgYm9vbCBsb2FkTWFudWFsbHkgPSBkb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50
KCkgJiYgIW1fY29udGFpbnNQbHVnaW5zICYmIHRvUGx1Z2luRG9jdW1lbnQoZG9jdW1lbnQoKSkt
PnNob3VsZExvYWRQbHVnaW5NYW51YWxseSgpOwotICAgIFJlZlB0cjxXaWRnZXQ+IHdpZGdldCA9
IGZyYW1lTG9hZGVyLT5jbGllbnQoKS0+Y3JlYXRlUGx1Z2luKGNvbnRlbnRTaXplLAorICAgIFJl
ZlB0cjxXaWRnZXQ+IHdpZGdldCA9IG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+Y3JlYXRl
UGx1Z2luKGNvbnRlbnRTaXplLAogICAgICAgICBwbHVnaW5FbGVtZW50LCB1cmwsIHBhcmFtTmFt
ZXMsIHBhcmFtVmFsdWVzLCBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsKIAogICAgIGlmICghd2lk
Z2V0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oCmluZGV4IGJjYzg5MDI1
ZDljMGQ3ODMxZGUyMGZiMzM2YmYwNGIxYzFkN2Y1MGUuLjFjOWE5MWFjNjM3NDJmNDQxMWMxZDM5
ODViMTNkYzZlN2I5ZjliZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJm
cmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5o
CkBAIC04OCw2ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNl
RmFsbGJhY2spOwogCiAgICAgYm9vbCBzaG91bGRVc2VQbHVnaW4oY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcywgYm9v
bCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOworICAgIGJvb2wgaXNQbHVnaW5CbG9j
a2VkKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSk7CiAKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156539</attachid>
            <date>2012-08-04 14:08:18 -0700</date>
            <delta_ts>2012-08-04 15:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93138-20120804230756.patch</filename>
            <type>text/plain</type>
            <size>7558</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDExZDc0OGQ3MTMyODlh
YzFhZDk5ZTAwN2ZiNzBmZjg4NzNmZTQ1Ny4uNjE3MTkwZGRkZjAwYjA4YzU5OTFkOTQ4MTFjNGY4
ZjNhOTgyMmYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTA4LTA0ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVmYWN0b3IgU3ViZnJhbWVM
b2FkZXI6OnJlcXVlc3RQbHVnaW4vbG9hZFBsdWdpbiBmb3IgY2xhcml0eS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTM4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBs
dWdpbiBhbmQgU3ViZnJhbWVMb2FkZXI6OmxvYWRQbHVnaW4gYm90aCBkbyBhCisgICAgICAgIHZh
cmlldHkgb2YgY2hlY2tzIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBhIHNwZWNpZmljIHJl
c291cmNlIG91Z2h0CisgICAgICAgIHRvIGluc3RhbnRpYXRlIGEgcGx1Z2luIGluIGEgc3BlY2lm
aWMgY29udGV4dC4gcjEyNDYzNlsxXSBtb3ZlZCBvbmUgb2YKKyAgICAgICAgdGhvc2UgY2hlY2tz
LCBidXQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgY2xlYXIgd2F5IHRvIGRldGVybWluZQor
ICAgICAgICB3aGljaCBjaGVja3Mgc2hvdWxkIGJlIHBlcmZvcm1lZCB3aGVyZS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlZmFjdG9ycyB0aGUgY2hlY2tzIG91dCBvZiB0aG9zZSB0d28gbWV0aG9k
cyBmb3IgY2xhcml0eSwKKyAgICAgICAgbW92aW5nIHRoZW0gYWxsIGludG8gYSBuZXcgbWV0aG9k
OiBTdWJmcmFtZUxvYWRlcjo6cGx1Z2luSXNMb2FkYWJsZS4KKyAgICAgICAgVGhhdCBtZXRob2Qg
cmVxdWlyZXMgdGhlIHJlc291cmNlIFVSTCBhbmQgTUlNRSB0eXBlLCBhcyB3ZWxsIGFzIHRoZQor
ICAgICAgICBgb2JqZWN0YCBvciBgZW1iZWRgIGVsZW1lbnQgdGhhdCBvd25zIHRoaXMgYml0IG9m
IHJlbmRlcmluZy4gVGhlIFVSTAorICAgICAgICBhbmQgdHlwZSBhcmUgdXNlZCBkaXJlY3RseSB0
byBkZXRlcm1pbmUgYXZhaWxhYmlsaXR5LCB3aGlsZSB0aGUgZWxlbWVudAorICAgICAgICBpcyBj
dXJyZW50bHkgdXNlZCBvbmx5IHRvIGNyZWF0ZSBhIHJlbmRlcmVyIG9uIHdoaWNoCisgICAgICAg
IHNldFBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIGNhbiBiZSBjYWxsZWQgaWYgdGhlIHBsdWdp
biBpcyBibG9ja2VkIGJ5CisgICAgICAgIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5LgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBubyBuZXcgdGVzdHMsIGFzIGl0IHNob3VsZG4ndCBj
aGFuZ2UgdGhlIGNvZGUncworICAgICAgICBiZWhhdmlvcjogaXQgc2hvdWxkIGJlIGEgc3RyYWln
aHRmb3J3YXJkIHJlZmFjdG9yaW5nIHdpdGhvdXQgd2ViLXZpc2libGUKKyAgICAgICAgc2lkZS1l
ZmZlY3RzLgorCisgICAgICAgIFsxXTogaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQv
MTI0NjM2CisKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnBsdWdpbklzTG9hZGFibGUpOgorICAgICAgICAgICAg
QSBuZXcgbWV0aG9kIHRoYXQgZXh0cmFjdHMgdGhlIHZhcmlvdXMgJ1Nob3VsZCB3ZSBhbGxvdyB0
aGlzIHBsdWdpbgorICAgICAgICAgICAgaW4gdGhpcyBjb250ZXh0PycgY2hlY2tzIGZyb20gcmVx
dWVzdFBsdWdpbiBhbmQgbG9hZFBsdWdpbiBpbnRvIGluZQorICAgICAgICAgICAgbG9jYXRpb24s
IHJhdGhlciB0aGFuIHNwcmVhZGluZyB0aGVtIGFjcm9zcyBib3RoLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbik6CisgICAgICAgICog
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmg6CisgICAgICAgIChTdWJmcmFtZUxvYWRlcik6CisKIDIw
MTItMDgtMDMgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIENT
UyAyLjEgZmFpbHVyZTogb3ZlcmZsb3ctYXBwbGllcy10by0wMDEgZmFpbHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDY5OTE3MzYyYzAwYzQxMzI2OWRlNTcy
ZTE0NWU0ZDcwYTBmMzM0Y2MuLjQxMGJmZTM2OGIzMjdlYTg3NzVkM2VkNWNkYzcyYmJlMzlhMzA5
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMTA0LDMw
ICsxMDQsNTMgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWUKICAgICByZXR1cm4gc2hvdWxkVXNl
UGx1Z2luKGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFn
ZXMsIGZhbHNlLCB1c2VGYWxsYmFjayk7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVl
c3RQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBLVVJM
JiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJh
bU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJh
Y2spCitib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKEhUTUxQbHVnSW5JbWFn
ZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSkKIHsKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBtX2ZyYW1lLT5zZXR0aW5ncygp
OwogICAgIGlmICghc2V0dGluZ3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIEFw
cGxpY2F0aW9uIHBsdWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNlciBh
Z2VudCwgZm9yIGV4YW1wbGUgUXQgcGx1Zy1pbnMsCi0gICAgLy8gYXMgb3Bwb3NlZCB0byB0aGly
ZC1wYXJ0eSBjb2RlIHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hldGhl
ciBvciBub3QgdGhleSBhcmUKLSAgICAvLyBwZXJtaXR0ZWQsIHJhdGhlciB0aGFuIFdlYktpdC4K
LSAgICBpZiAoKCFhbGxvd1BsdWdpbnMoQWJvdXRUb0luc3RhbnRpYXRlUGx1Z2luKSAmJiAhTUlN
RVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1JTUVUeXBlKG1pbWVUeXBlKSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIGlmIChNSU1FVHlwZVJlZ2lzdHJ5Ojppc0phdmFB
cHBsZXRNSU1FVHlwZShtaW1lVHlwZSkpIHsKICAgICAgICAgaWYgKCFzZXR0aW5ncy0+aXNKYXZh
RW5hYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAobV9mcmFt
ZS0+ZG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5p
c0xvY2FsKCkgJiYgIXNldHRpbmdzLT5pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpKQorICAg
ICAgICBpZiAoZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc0xv
Y2FsKCkgJiYgIXNldHRpbmdzLT5pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcygpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgp
KSB7Ci0gICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94
UGx1Z2lucykpCisgICAgaWYgKGRvY3VtZW50KCkpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50KCkt
PmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXko
dXJsKSkgeworICAgICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZCht
X2ZyYW1lLCB1cmwuc3RyaW5nKCkpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFkb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
YWxsb3dPYmplY3RGcm9tU291cmNlKHVybCkpIHsKKyAgICAgICAgICAgIFJlbmRlckVtYmVkZGVk
T2JqZWN0KiByZW5kZXJlciA9IHBsdWdpbkVsZW1lbnQtPnJlbmRlckVtYmVkZGVkT2JqZWN0KCk7
CisgICAgICAgICAgICByZW5kZXJlci0+c2V0UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24oUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkJsb2NrZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeSk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAobV9m
cmFtZS0+bG9hZGVyKCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5jaGVja0lmUnVuSW5zZWN1cmVD
b250ZW50KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU3ViZnJh
bWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4oSFRNTFBsdWdJbkltYWdlRWxlbWVudCogb3duZXJFbGVt
ZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMs
IGJvb2wgdXNlRmFsbGJhY2spCit7CisKKyAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlucyBhcmUg
cGx1Zy1pbnMgaW1wbGVtZW50ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxlIFF0IHBs
dWctaW5zLAorICAgIC8vIGFzIG9wcG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNoIGFzIEZs
YXNoLiBUaGUgdXNlciBhZ2VudCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlCisgICAg
Ly8gcGVybWl0dGVkLCByYXRoZXIgdGhhbiBXZWJLaXQuCisgICAgaWYgKCghYWxsb3dQbHVnaW5z
KEFib3V0VG9JbnN0YW50aWF0ZVBsdWdpbikgJiYgIU1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGlj
YXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIXBsdWdpbklzTG9hZGFibGUob3duZXJFbGVtZW50LCB1cmwsIG1pbWVUeXBlKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgQVNTRVJUKG93bmVyRWxlbWVudC0+aGFzVGFn
TmFtZShvYmplY3RUYWcpIHx8IG93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykpOwog
ICAgIHJldHVybiBsb2FkUGx1Z2luKG93bmVyRWxlbWVudCwgdXJsLCBtaW1lVHlwZSwgcGFyYW1O
YW1lcywgcGFyYW1WYWx1ZXMsIHVzZUZhbGxiYWNrKTsKIH0KQEAgLTQxNCwyMyArNDM3LDkgQEAg
Ym9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBw
bHVnaW5FbGVtZW50LCBjb25zdCBLVVIKICAgICBpZiAoIXJlbmRlcmVyIHx8IHVzZUZhbGxiYWNr
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPmNhbkRpc3BsYXkodXJsKSkgewotICAgICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0
TG9jYWxMb2FkRmFpbGVkKG1fZnJhbWUsIHVybC5zdHJpbmcoKSk7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT5hbGxvd09iamVjdEZyb21Tb3VyY2UodXJsKSkgewotICAgICAgICByZW5kZXJlci0+c2V0
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbkJs
b2NrZWRCeUNvbnRlbnRTZWN1cml0eVBvbGljeSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0KLSAgICBGcmFtZUxvYWRlciogZnJhbWVMb2FkZXIgPSBtX2ZyYW1lLT5sb2FkZXIoKTsK
LSAgICBpZiAoIWZyYW1lTG9hZGVyLT5jaGVja0lmUnVuSW5zZWN1cmVDb250ZW50KGRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAg
IEludFNpemUgY29udGVudFNpemUgPSByb3VuZGVkSW50U2l6ZShMYXlvdXRTaXplKHJlbmRlcmVy
LT5jb250ZW50V2lkdGgoKSwgcmVuZGVyZXItPmNvbnRlbnRIZWlnaHQoKSkpOwogICAgIGJvb2wg
bG9hZE1hbnVhbGx5ID0gZG9jdW1lbnQoKS0+aXNQbHVnaW5Eb2N1bWVudCgpICYmICFtX2NvbnRh
aW5zUGx1Z2lucyAmJiB0b1BsdWdpbkRvY3VtZW50KGRvY3VtZW50KCkpLT5zaG91bGRMb2FkUGx1
Z2luTWFudWFsbHkoKTsKLSAgICBSZWZQdHI8V2lkZ2V0PiB3aWRnZXQgPSBmcmFtZUxvYWRlci0+
Y2xpZW50KCktPmNyZWF0ZVBsdWdpbihjb250ZW50U2l6ZSwKKyAgICBSZWZQdHI8V2lkZ2V0PiB3
aWRnZXQgPSBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmNyZWF0ZVBsdWdpbihjb250ZW50
U2l6ZSwKICAgICAgICAgcGx1Z2luRWxlbWVudCwgdXJsLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVl
cywgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7CiAKICAgICBpZiAoIXdpZGdldCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAppbmRleCBiY2M4OTAyNWQ5YzBkNzgzMWRlMjBm
YjMzNmJmMDRiMWMxZDdmNTBlLi43NGExNjY4NzI1MzViNzBkYWQyNzZmMWVkNzU2MmE5ZGZhYTYx
M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApAQCAtODgsNiArODgs
NyBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKTsKIAog
ICAgIGJvb2wgc2hvdWxkVXNlUGx1Z2luKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMsIGJvb2wgaGFzRmFsbGJhY2ss
IGJvb2wmIHVzZUZhbGxiYWNrKTsKKyAgICBib29sIHBsdWdpbklzTG9hZGFibGUoSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAog
ICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>