<?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>42587</bug_id>
          
          <creation_ts>2010-07-19 12:57:58 -0700</creation_ts>
          <short_desc>Handle NP_ASFILE and NP_ASFILEONLY transfer modes</short_desc>
          <delta_ts>2010-07-19 18:20:47 -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>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253348</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-19 12:57:58 -0700</bug_when>
    <thetext>Handle NP_ASFILE and NP_ASFILEONLY transfer modes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253352</commentid>
    <comment_count>1</comment_count>
      <attachid>61984</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-19 13:04:40 -0700</bug_when>
    <thetext>Created attachment 61984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253355</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-19 13:06:58 -0700</bug_when>
    <thetext>Attachment 61984 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h:71:  NPP_StreamAsFile is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.cpp:193:  NetscapePlugin::NPP_StreamAsFile is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253366</commentid>
    <comment_count>3</comment_count>
      <attachid>61984</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 13:28:40 -0700</bug_when>
    <thetext>Comment on attachment 61984
Patch

&gt; +    return CString(temporaryFilePath.data());

Does the CString constructor really require a vector that already has the &apos;\0&apos; in it? Or does this code end up adding two of them?

&gt; +    void NPP_StreamAsFile(NPStream* stream, const char* filename);

Leave out the &quot;stream&quot; argument name?

&gt; +    RefPtr&lt;PluginView::Stream&gt; stream = m_streams.get(streamID).get();

Here inside the class we can just call it Stream instead of PluginView::Stream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253372</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-19 13:41:24 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 61984 [details])
&gt; &gt; +    return CString(temporaryFilePath.data());
&gt; 
&gt; Does the CString constructor really require a vector that already has the &apos;\0&apos; in it? Or does this code end up adding two of them?
&gt; 

The constructor that takes a const char* requires it to be null terminated. The constructor that takes a length still adds a null terminator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253389</commentid>
    <comment_count>5</comment_count>
      <attachid>61984</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-19 14:21:21 -0700</bug_when>
    <thetext>Comment on attachment 61984
Patch

&gt; +        // NPP_StreamAsFile could call NPN_DestroyStream and destroy the stream.
&gt; +        if (!m_isStarted)
&gt; +            return;
&gt; +            return;
&gt; +    }

Does this really do what you want?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253391</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-19 14:23:06 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 61984 [details])
&gt; &gt; +        // NPP_StreamAsFile could call NPN_DestroyStream and destroy the stream.
&gt; &gt; +        if (!m_isStarted)
&gt; &gt; +            return;
&gt; &gt; +            return;
&gt; &gt; +    }
&gt; 
&gt; Does this really do what you want?

Uh oh! I’m sure that at least one test will fail because of this!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253428</commentid>
    <comment_count>7</comment_count>
      <attachid>61984</attachid>
    <who name="">mitz</who>
    <bug_when>2010-07-19 15:30:38 -0700</bug_when>
    <thetext>Comment on attachment 61984
Patch

&gt; --- a/WebCore/WebCore.xcodeproj/project.pbxproj
&gt; +++ b/WebCore/WebCore.xcodeproj/project.pbxproj

Not mentioned in the change log.

&gt; +#import &lt;wtf/text/CString.h&gt;
&gt;  #import &quot;PlatformString.h&quot;

Not in ASCII order.

&gt; +        // We failed to open the file, stop the stream.
&gt; +        if (m_fileHandle == invalidPlatformFileHandle)
&gt; +            stop(NPRES_NETWORK_ERR);

Is it safer to return here?

&gt; +        if (!m_isStarted)
&gt; +            return;
&gt; +            return;

Too many of something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253435</commentid>
    <comment_count>8</comment_count>
      <attachid>61984</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-19 15:40:59 -0700</bug_when>
    <thetext>Comment on attachment 61984
Patch

What everyone else said. r=me too!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>253504</commentid>
    <comment_count>9</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-07-19 18:20:47 -0700</bug_when>
    <thetext>Committed r63704: &lt;http://trac.webkit.org/changeset/63704&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61984</attachid>
            <date>2010-07-19 13:04:40 -0700</date>
            <delta_ts>2010-07-19 15:40:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42587-20100719130439.patch</filename>
            <type>text/plain</type>
            <size>15866</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDk2MTY2ZjE0NmZmZjFmMjcwODI1MTBkMTljOWU1ZjA0ZGIwZDY5YS4uZGUwYzM2ODllOTRjMGQ3
ZDdlNTliYjlhOTE3NWMxMjEzMGVjOWUyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0xOSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSBOUF9BU0ZJTEUgYW5kIE5QX0FTRklM
RU9OTFkgdHJhbnNmZXIgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNTg3CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgRXhwb3J0IGZ1bmN0aW9ucyBmcm9tIEZp
bGVTeXN0ZW0uaAorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5UZW1wb3JhcnlGaWxlKToKKyAgICAgICAgVHJ5
IHRvIGNyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIHVzaW5nIG1rc3RlbXAuCisKIDIwMTAtMDctMTgg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQnVp
bGQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgppbmRleCA0NWFkODNjMmU2ZDkyNzY3OTNmYjQyNmUzMzJlZTE4ODQ5YWYxOGUyLi5j
NzE1NWFiNzA4OWRlOTdkMGJhOTNiZDdmODJmNWM5NjBlMmJkY2FjIDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEzOSw2
ICsxMzksNyBAQCBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcyMHNldENhbkhhdmVTY3JvbGxiYXJz
RWIKIF9fWk43V2ViQ29yZTEwU3RyaW5nSW1wbDE0Y3JlYXRlQ0ZTdHJpbmdFdgogX19aTjdXZWJD
b3JlMTBTdHJpbmdJbXBsY3ZQOE5TU3RyaW5nRXYKIF9fWk43V2ViQ29yZTIwU3BhY2VTcGxpdFN0
cmluZ0RhdGExMmNyZWF0ZVZlY3RvckV2CitfX1pON1dlYkNvcmUxMGRlbGV0ZUZpbGVFUktOU182
U3RyaW5nRQogX19aTjdXZWJDb3JlMTBoYW5kQ3Vyc29yRXYKIF9fWk43V2ViQ29yZTEwc2V0Q29v
a2llc0VQTlNfOERvY3VtZW50RVJLTlNfNEtVUkxFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3Jl
MTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFnZVBOU18xM0ltYWdlT2JzZXJ2ZXJFCkBAIC0yMDIsOSAr
MjAzLDkgQEAgX19aTjdXZWJDb3JlMTFIaXN0b3J5SXRlbUQxRXYKIF9fWk43V2ViQ29yZTExSWNv
bkZldGNoZXI2Y2FuY2VsRXYKIF9fWk43V2ViQ29yZTExSWNvbkZldGNoZXI2Y3JlYXRlRVBOU181
RnJhbWVFUE5TXzE3SWNvbkZldGNoZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxMVJlbmRlckxheWVy
MTlzY3JvbGxSZWN0VG9WaXNpYmxlRVJLTlNfN0ludFJlY3RFYlJLTlNfMTVTY3JvbGxBbGlnbm1l
bnRFUzZfCi1fX1pOSzdXZWJDb3JlMTFSZW5kZXJMYXllcjE5YWJzb2x1dGVCb3VuZGluZ0JveEV2
CiBfX1pON1dlYkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dpbmRvdwogX19aTjdX
ZWJDb3JlMTF0b1VzZXJTcGFjZUVSSzdfTlNSZWN0UDhOU1dpbmRvdworX19aTjdXZWJDb3JlMTF3
cml0ZVRvRmlsZUVpUEtjaQogX19aTjdXZWJDb3JlMTJDaHJvbWVDbGllbnQyMHBhaW50Q3VzdG9t
U2Nyb2xsYmFyRVBOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFTlNfMjBTY3Jv
bGxiYXJDb250cm9sU2l6ZUVqTlNfMTNTY3JvbGxiYXJQYXJ0RWJmZmoKIF9fWk43V2ViQ29yZTEy
Q2hyb21lQ2xpZW50MjNwYWludEN1c3RvbVNjcm9sbENvcm5lckVQTlNfMTVHcmFwaGljc0NvbnRl
eHRFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIxMG1vdXNlTW92
ZWRFUDdOU0V2ZW50CkBAIC00MDAsNiArNDAxLDcgQEAgX19aTjdXZWJDb3JlMTdHbHlwaFBhZ2VU
cmVlTm9kZTE4dHJlZUdseXBoUGFnZUNvdW50RXYKIF9fWk43V2ViQ29yZTE3SFRNTFBsdWdJbkVs
ZW1lbnQxMWdldE5QT2JqZWN0RXYKIF9fWk43V2ViQ29yZTE3SGlzdG9yeUNvbnRyb2xsZXIyNnNh
dmVEb2N1bWVudEFuZFNjcm9sbFN0YXRlRXYKIF9fWk43V2ViQ29yZTE3bmFtZUZvckN1cnNvclR5
cGVFTlNfNkN1cnNvcjRUeXBlRQorX19aTjdXZWJDb3JlMTdvcGVuVGVtcG9yYXJ5RmlsZUVQS2NS
aQogX19aTjdXZWJDb3JlMThkZXByZWNhdGVkUGFyc2VVUkxFUktOU182U3RyaW5nRQogX19aTjdX
ZWJDb3JlMThpc1N0YXJ0T2ZQYXJhZ3JhcGhFUktOU18xNVZpc2libGVQb3NpdGlvbkUKIF9fWk43
V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0VQTlNfOERvY3Vt
ZW50RQpAQCAtNzgxLDEwICs3ODMsMTEgQEAgX19aTjdXZWJDb3JlOVRpbWVyQmFzZTRzdG9wRXYK
IF9fWk43V2ViQ29yZTlUaW1lckJhc2U1c3RhcnRFZGQKIF9fWk43V2ViQ29yZTlUaW1lckJhc2VD
MkV2CiBfX1pON1dlYkNvcmU5VGltZXJCYXNlRDJFdgotX19aTjdXZWJDb3JlOXRvRWxlbWVudEVO
M0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlOWNsb3NlRmlsZUVSaQogX19aTjdXZWJDb3JlOWZv
bnRDYWNoZUV2CiBfX1pON1dlYkNvcmU5bWFrZVJhbmdlRVJLTlNfMTVWaXNpYmxlUG9zaXRpb25F
UzJfCiBfX1pON1dlYkNvcmU5cGFnZUNhY2hlRXYKK19fWk43V2ViQ29yZTl0b0VsZW1lbnRFTjNK
U0M3SlNWYWx1ZUUKIF9fWk43V2ViQ29yZWVxRVJLTlNfMTlSZXNvdXJjZVJlcXVlc3RCYXNlRVMy
XwogX19aTkszSlNDOEJpbmRpbmdzMTBSb290T2JqZWN0MTJnbG9iYWxPYmplY3RFdgogX19aTks3
V2ViQ29yZTEwRmxvYXRQb2ludGN2OF9OU1BvaW50RXYKQEAgLTgyMSw2ICs4MjQsNyBAQCBfX1pO
SzdXZWJDb3JlMTFIaXN0b3J5SXRlbThjaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5
SXRlbThyZWZlcnJlckV2CiBfX1pOSzdXZWJDb3JlMTFIaXN0b3J5SXRlbTl1cmxTdHJpbmdFdgog
X19aTks3V2ViQ29yZTExSGlzdG9yeUl0ZW05dmlld1N0YXRlRXYKK19fWk5LN1dlYkNvcmUxMVJl
bmRlckxheWVyMTlhYnNvbHV0ZUJvdW5kaW5nQm94RXYKIF9fWk5LN1dlYkNvcmUxMVJlbmRlclN0
eWxlMjF2aXNpdGVkRGVwZW5kZW50Q29sb3JFaQogX19aTks3V2ViQ29yZTExU2NyaXB0VmFsdWU5
Z2V0U3RyaW5nRVBOM0pTQzlFeGVjU3RhdGVFUk5TXzZTdHJpbmdFCiBfX1pOSzdXZWJDb3JlMTJF
dmVudEhhbmRsZXIyMGN1cnJlbnRLZXlib2FyZEV2ZW50RXYKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjg1ZTUwNDg3ODZhZWUxNGU3NmY4NzNjZThjZWJh
MjBkOGU0NmQwNS4uNmE2Mjg2OWFkM2E1N2RlOTFiN2FkYzdhZDY3MmRlODBiMGZiOGUyYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNzAsNyArMTA3
MCw3IEBACiAJCTUxM0YxNDU0MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYzNEM0
MDAwOTREREYgLyogSWNvbkxvYWRlci5oICovOyB9OwogCQk1MTQxODVFRTBDRDY1RjA0MDA3NjND
OTkgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDE4NUVDMENENjVGMDQwMDc2M0M5OSAvKiBDaGFuZ2VWZXJz
aW9uV3JhcHBlci5oICovOyB9OwogCQk1MTQxODVFRjBDRDY1RjA0MDA3NjNDOTkgLyogQ2hhbmdl
VmVyc2lvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0MTg1RUQwQ0Q2NUYwNDAwNzYzQzk5IC8qIENoYW5nZVZlcnNpb25XcmFwcGVy
LmNwcCAqLzsgfTsKLQkJNTE0QjNGNzMwQzcyMjA0NzAwMDUzMERGIC8qIEZpbGVTeXN0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEIzRjcyMEM3
MjIwNDcwMDA1MzBERiAvKiBGaWxlU3lzdGVtLmggKi87IH07CisJCTUxNEIzRjczMEM3MjIwNDcw
MDA1MzBERiAvKiBGaWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxNEIzRjc2
MEM3MjIwNTUwMDA1MzBERiAvKiBGaWxlU3lzdGVtTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0QjNGNzUwQzcyMjA1NTAwMDUzMERGIC8qIEZp
bGVTeXN0ZW1NYWMubW0gKi87IH07CiAJCTUxNEM3NjM3MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NR
TEVycm9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxNEM3NjM1MENFOTIyNUUwMDdFRjNDRCAvKiBKU1NRTEVycm9yLmNwcCAqLzsgfTsKIAkJNTE0
Qzc2MzgwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0Qzc2MzYwQ0U5MjI1RTAwN0VG
M0NEIC8qIEpTU1FMVHJhbnNhY3Rpb24uY3BwICovOyB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0ZpbGVT
eXN0ZW1NYWMubW0KaW5kZXggOThmODViYjI5ZjljNzI5YzNlYjZlMzI1NGNiNjgyMTczZTYyMjNl
Zi4uZjlmYWRmZTcyZjUxMGUyZWVlY2E3ZjNkNDZhN2RlNTdmOWY5MDQyYyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRmlsZVN5c3RlbU1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL21hYy9GaWxlU3lzdGVtTWFjLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJjb25m
aWcuaCIKICNpbXBvcnQgIkZpbGVTeXN0ZW0uaCIKIAorI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogI2ltcG9ydCAiUGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzcsNCArMzgsMjggQEAgU3RyaW5nIGhvbWVEaXJlY3RvcnlQYXRoKCkKICAgICByZXR1cm4g
TlNIb21lRGlyZWN0b3J5KCk7CiB9CiAKK0NTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3Qg
Y2hhciogcHJlZml4LCBQbGF0Zm9ybUZpbGVIYW5kbGUmIHBsYXRmb3JtRmlsZUhhbmRsZSkKK3sK
KyAgICBwbGF0Zm9ybUZpbGVIYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOworICAg
IAorICAgIFZlY3RvcjxjaGFyPiB0ZW1wb3JhcnlGaWxlUGF0aChQQVRIX01BWCk7CisgICAgaWYg
KCFjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgdGVtcG9yYXJ5RmlsZVBhdGguZGF0
YSgpLCB0ZW1wb3JhcnlGaWxlUGF0aC5zaXplKCkpKQorICAgICAgICByZXR1cm4gQ1N0cmluZygp
OworCisgICAgLy8gU2hyaW5rIHRoZSB2ZWN0b3IuICAgCisgICAgdGVtcG9yYXJ5RmlsZVBhdGgu
c2hyaW5rKHN0cmxlbih0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpKTsKKyAgICBBU1NFUlQodGVt
cG9yYXJ5RmlsZVBhdGgubGFzdCgpID09ICcvJyk7CisKKyAgICAvLyBBcHBlbmQgdGhlIGZpbGUg
bmFtZS4gICAgCisgICAgdGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKHByZWZpeCwgc3RybGVuKHBy
ZWZpeCkpOworICAgIHRlbXBvcmFyeUZpbGVQYXRoLmFwcGVuZCgiWFhYWFhYIiwgNik7CisgICAg
dGVtcG9yYXJ5RmlsZVBhdGguYXBwZW5kKCdcMCcpOworCisgICAgcGxhdGZvcm1GaWxlSGFuZGxl
ID0gbWtzdGVtcCh0ZW1wb3JhcnlGaWxlUGF0aC5kYXRhKCkpOworICAgIGlmIChwbGF0Zm9ybUZp
bGVIYW5kbGUgPT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgcmV0dXJuIENT
dHJpbmcoKTsKKworICAgIHJldHVybiBDU3RyaW5nKHRlbXBvcmFyeUZpbGVQYXRoLmRhdGEoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdl
TG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTRmYjM1YzMzMzc2ZWM0ZjQ4NDZhZjllNDA1
MzgxMDY5YzEwZjAxNy4uNGMzMmQwM2IwMDk4OTgzN2E1ZGViNWViZmQ0NmQ3MjZjMzA3OGMzZSAx
MDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAxMC0wNy0xOSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEhhbmRsZSBOUF9BU0ZJTEUgYW5kIE5QX0FTRklMRU9OTFkgdHJhbnNmZXIgbW9kZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNTg3CisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6TlBQX1N0cmVhbUFzRmlsZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6CisgICAgICAg
IEFkZCBOUFBfIHdyYXBwZXIuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpblN0cmVhbTo6TmV0c2NhcGVQbHVnaW5TdHJlYW0pOgorICAgICAgICBJbml0aWFsaXplIG1f
ZmlsZUhhbmRsZS4KKworICAgICAgICAoV2ViS2l0Ojppc1N1cHBvcnRlZFRyYW5zZmVyTW9kZSk6
CisgICAgICAgIE5QX0FTRklMRSBhbmQgTlBfQVNGSUxFT05MWSBpcyBub3cgc3VwcG9ydGVkLgor
CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luU3RyZWFtOjpkZWxpdmVyRGF0YSk6Cisg
ICAgICAgIENhbGwgZGVsaXZlckRhdGFUb0ZpbGUgaWYgbmVjZXNzYXJ5LgorCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luU3RyZWFtOjpkZWxpdmVyRGF0YVRvRmlsZSk6CisgICAgICAg
IENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIGFuZCB3cml0ZSB0aGUgZGF0YSBpbnRvIGl0LgorCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luU3RyZWFtOjpzdG9wKToKKyAgICAgICAgSWYg
dGhlIHRyYW5zZmVyIG1vZGUgaXMgZWl0aGVyIE5QX0FTRklMRSBvciBOUF9BU0ZJTEVPTkxZLCBt
YWtlIHN1cmUgdG8KKyAgICAgICAgY2FsbCBOUFBfU3RyZWFtQXNGaWxlIGFuZCBjbG9zZSB0aGUg
ZmlsZSBhbmQgZGVsZXRlIGl0LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpjYW5jZWxTdHJlYW1Mb2Fk
KToKKyAgICAgICAgS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgU3RyZWFtIHNpbmNlIGNhbmNlbGxp
bmcgaXQgd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgbWFwLgorCiAyMDEwLTA3LTE4ICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBhdHRlbXB0
IGF0IGZpeGluZyB0aGUgV2luZG93cyBidWlsZC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcCBiL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcAppbmRleCA2ZDY3ZjhjN2E1
MWMxZTk4Mzg1MzU4MmMxNjMyZDNmMWEwZWVjNGIxLi4zM2QyZTRmOWFhYmI5YTBlMjkwOWVkM2Vk
YTk0ZDI1YjA1ZDliZDg3IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwCkBAIC0xOTAsNiArMTkwLDExIEBAIE5QRXJy
b3IgTmV0c2NhcGVQbHVnaW46Ok5QUF9EZXN0cm95U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0sIE5Q
UmVhc29uIHJlYXNvbikKICAgICByZXR1cm4gbV9wbHVnaW5Nb2R1bGUtPnBsdWdpbkZ1bmNzKCku
ZGVzdHJveXN0cmVhbSgmbV9ucHAsIHN0cmVhbSwgcmVhc29uKTsKIH0KIAordm9pZCBOZXRzY2Fw
ZVBsdWdpbjo6TlBQX1N0cmVhbUFzRmlsZShOUFN0cmVhbSogc3RyZWFtLCBjb25zdCBjaGFyKiBm
aWxlbmFtZSkKK3sKKyAgICByZXR1cm4gbV9wbHVnaW5Nb2R1bGUtPnBsdWdpbkZ1bmNzKCkuYXNm
aWxlKCZtX25wcCwgc3RyZWFtLCBmaWxlbmFtZSk7Cit9CisKIGludDMyX3QgTmV0c2NhcGVQbHVn
aW46Ok5QUF9Xcml0ZVJlYWR5KE5QU3RyZWFtKiBzdHJlYW0pCiB7CiAgICAgcmV0dXJuIG1fcGx1
Z2luTW9kdWxlLT5wbHVnaW5GdW5jcygpLndyaXRlcmVhZHkoJm1fbnBwLCBzdHJlYW0pOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVn
aW4uaCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
LmgKaW5kZXggODhiNDdiZGQ2Mzk1Yjc0NmMxNGI5M2MzMTZhNWIyZTI0NTk2MDcxNS4uZmU3Zjgx
NzRmMDAzZDI1OWM2MmI2ZTc1MzMyMzA2OGRkMGQwYzVmZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAorKysgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC02OCw2ICs2
OCw4IEBAIHB1YmxpYzoKICAgICBOUEVycm9yIE5QUF9TZXRXaW5kb3coTlBXaW5kb3cqKTsKICAg
ICBOUEVycm9yIE5QUF9OZXdTdHJlYW0oTlBNSU1FVHlwZSwgTlBTdHJlYW0qLCBOUEJvb2wgc2Vl
a2FibGUsIHVpbnQxNl90KiBzdHlwZSk7CiAgICAgTlBFcnJvciBOUFBfRGVzdHJveVN0cmVhbShO
UFN0cmVhbSosIE5QUmVhc29uKTsKKyAgICB2b2lkIE5QUF9TdHJlYW1Bc0ZpbGUoTlBTdHJlYW0q
IHN0cmVhbSwgY29uc3QgY2hhciogZmlsZW5hbWUpOworCiAgICAgaW50MzJfdCBOUFBfV3JpdGVS
ZWFkeShOUFN0cmVhbSopOwogICAgIGludDMyX3QgTlBQX1dyaXRlKE5QU3RyZWFtKiwgaW50MzJf
dCBvZmZzZXQsIGludDMyX3QgbGVuLCB2b2lkKiBidWZmZXIpOwogICAgIHZvaWQgTlBQX1VSTE5v
dGlmeShjb25zdCBjaGFyKiB1cmwsIE5QUmVhc29uLCB2b2lkKiBub3RpZnlEYXRhKTsKZGlmZiAt
LWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luU3RyZWFtLmNwcAppbmRleCA2NWNhZjE5NzM4MDhjNTkxMTJiZGUxMDA4YTgyZGUwMGIx
OTZhNDI4Li44NDA5YzEyNjA5ZDA1Y2Y3MWI3MTU1ZjVlNjJkZGM0YjM2Y2U4ZWNhIDEwMDY0NAot
LS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0
cmVhbS5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uY3BwCkBAIC00MSw2ICs0MSw3IEBAIE5ldHNjYXBlUGx1Z2luU3RyZWFt
OjpOZXRzY2FwZVBsdWdpblN0cmVhbShQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z2luPiBwbHVnaW4s
IHVpCiAgICAgLCBtX25wU3RyZWFtKCkKICAgICAsIG1fdHJhbnNmZXJNb2RlKE5QX05PUk1BTCkK
ICAgICAsIG1fb2Zmc2V0KDApCisgICAgLCBtX2ZpbGVIYW5kbGUoaW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSkKICAgICAsIG1faXNTdGFydGVkKGZhbHNlKQogI2lmICFBU1NFUlRfRElTQUJMRUQK
ICAgICAsIG1fdXJsTm90aWZ5SGFzQmVlbkNhbGxlZChmYWxzZSkKQEAgLTU0LDYgKzU1LDcgQEAg
TmV0c2NhcGVQbHVnaW5TdHJlYW06On5OZXRzY2FwZVBsdWdpblN0cmVhbSgpCiB7CiAgICAgQVNT
RVJUKCFtX2lzU3RhcnRlZCk7CiAgICAgQVNTRVJUKCFtX3NlbmROb3RpZmljYXRpb24gfHwgbV91
cmxOb3RpZnlIYXNCZWVuQ2FsbGVkKTsKKyAgICBBU1NFUlQobV9maWxlSGFuZGxlID09IGludmFs
aWRQbGF0Zm9ybUZpbGVIYW5kbGUpOwogfQogCiB2b2lkIE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgS1VSTCYgcmVzcG9uc2VVUkwsIHVpbnQzMl90IHN0cmVh
bUxlbmd0aCwgdWludDMyX3QgbGFzdE1vZGlmaWVkVGltZSwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgY29uc3QgU3RyaW5nJiBoZWFkZXJzKQpAQCAtMTI3LDEyICsxMjksMTAgQEAgTlBFcnJvciBO
ZXRzY2FwZVBsdWdpblN0cmVhbTo6ZGVzdHJveShOUFJlYXNvbiByZWFzb24pCiBzdGF0aWMgYm9v
bCBpc1N1cHBvcnRlZFRyYW5zZmVyTW9kZSh1aW50MTZfdCB0cmFuc2Zlck1vZGUpCiB7CiAgICAg
c3dpdGNoICh0cmFuc2Zlck1vZGUpIHsKLSAgICBjYXNlIE5QX05PUk1BTDoKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IHN1cHBvcnQgc3RyZWFtaW5nIHRvIGZp
bGVzLgogICAgIGNhc2UgTlBfQVNGSUxFT05MWToKICAgICBjYXNlIE5QX0FTRklMRToKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgTlBfTk9STUFMOgorICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBzZWVrYWJsZSBzdHJlYW1zLgogICAg
IGNhc2UgTlBfU0VFSzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTkwLDcgKzE5MCw4IEBA
IHZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRlbGl2ZXJEYXRhKGNvbnN0IGNoYXIqIGJ5dGVz
LCBpbnQgbGVuZ3RoKQogICAgICAgICBkZWxpdmVyRGF0YVRvUGx1Z2luKCk7CiAgICAgfQogCi0g
ICAgLy8gRklYTUU6IERlbGl2ZXIgdGhlIGRhdGEgdG8gYSBmaWxlIGFzIHdlbGwgaWYgbmVlZGVk
LgorICAgIGlmIChtX3RyYW5zZmVyTW9kZSA9PSBOUF9BU0ZJTEUgfHwgbV90cmFuc2Zlck1vZGUg
PT0gTlBfQVNGSUxFT05MWSkKKyAgICAgICAgZGVsaXZlckRhdGFUb0ZpbGUoYnl0ZXMsIGxlbmd0
aCk7CiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRlbGl2ZXJEYXRhVG9QbHVnaW4o
KQpAQCAtMjQ3LDYgKzI0OCwyOSBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luU3RyZWFtOjpkZWxpdmVy
RGF0YVRvUGx1Z2luKCkKICAgICB9CiB9CiAKK3ZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OmRl
bGl2ZXJEYXRhVG9GaWxlKGNvbnN0IGNoYXIqIGJ5dGVzLCBpbnQgbGVuZ3RoKQoreworICAgIGlm
IChtX2ZpbGVIYW5kbGUgPT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSAmJiBtX2ZpbGVQYXRo
LmlzTnVsbCgpKSB7CisgICAgICAgIC8vIENyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlLgorICAgICAg
ICBtX2ZpbGVQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoIldlYktpdFBsdWdpblN0cmVhbSIsIG1f
ZmlsZUhhbmRsZSk7CisKKyAgICAgICAgLy8gV2UgZmFpbGVkIHRvIG9wZW4gdGhlIGZpbGUsIHN0
b3AgdGhlIHN0cmVhbS4KKyAgICAgICAgaWYgKG1fZmlsZUhhbmRsZSA9PSBpbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlKQorICAgICAgICAgICAgc3RvcChOUFJFU19ORVRXT1JLX0VSUik7CisgICAg
fQorCisgICAgaWYgKCFsZW5ndGgpCisgICAgICAgIHJldHVybjsKKworICAgIGludCBieXRlQ291
bnQgPSB3cml0ZVRvRmlsZShtX2ZpbGVIYW5kbGUsIGJ5dGVzLCBsZW5ndGgpOworICAgIGlmIChi
eXRlQ291bnQgIT0gbGVuZ3RoKSB7CisgICAgICAgIC8vIFRoaXMgaGFwcGVucyBvbmx5IHJhcmVs
eSwgd2hlbiB3ZSBhcmUgb3V0IG9mIGRpc2sgc3BhY2Ugb3IgaGF2ZSBhIGRpc2sgSS9PIGVycm9y
LgorICAgICAgICBjbG9zZUZpbGUobV9maWxlSGFuZGxlKTsKKworICAgICAgICBzdG9wKE5QUkVT
X05FVFdPUktfRVJSKTsKKyAgICB9Cit9CisKIHZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OnN0
b3AoTlBSZWFzb24gcmVhc29uKQogewogICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CkBAIC0yNjUs
NiArMjg5LDM1IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW5TdHJlYW06OnN0b3AoTlBSZWFzb24gcmVh
c29uKQogICAgIG1fZGVsaXZlcnlEYXRhID0gMDsKICAgICBtX2RlbGl2ZXJ5RGF0YVRpbWVyLnN0
b3AoKTsKIAorICAgIGlmIChtX3RyYW5zZmVyTW9kZSA9PSBOUF9BU0ZJTEUgfHwgbV90cmFuc2Zl
ck1vZGUgPT0gTlBfQVNGSUxFT05MWSkgeworICAgICAgICBpZiAocmVhc29uID09IE5QUkVTX0RP
TkUpIHsKKyAgICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSBmaWxlIGlzIGNyZWF0ZWQuCisg
ICAgICAgICAgICBkZWxpdmVyRGF0YVRvRmlsZSgwLCAwKTsKKyAgICAgICAgICAgIGlmIChtX2Zp
bGVIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgICAgICAgICBj
bG9zZUZpbGUobV9maWxlSGFuZGxlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgQVNTRVJU
KCFtX2ZpbGVQYXRoLmlzTnVsbCgpKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbV9wbHVn
aW4tPk5QUF9TdHJlYW1Bc0ZpbGUoJm1fbnBTdHJlYW0sIG1fZmlsZVBhdGguZGF0YSgpKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8vIEp1c3QgY2xvc2UgdGhlIGZpbGUuCisgICAg
ICAgICAgICBpZiAobV9maWxlSGFuZGxlICE9IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpCisg
ICAgICAgICAgICAgICAgY2xvc2VGaWxlKG1fZmlsZUhhbmRsZSk7CisgICAgICAgIH0KKworICAg
ICAgICAvLyBEZWxldGUgdGhlIGZpbGUgYWZ0ZXIgY2FsbGluZyBOUFBfU3RyZWFtQXNGaWxlKCks
IGluc3RlYWQgb2YgaW4gdGhlIGRlc3RydWN0b3IuICBJdCBzaG91bGQgYmUgT0sKKyAgICAgICAg
Ly8gdG8gZGVsZXRlIHRoZSBmaWxlIGhlcmUgLS0gTlBQX1N0cmVhbUFzRmlsZSgpIGlzIGFsd2F5
cyBjYWxsZWQgaW1tZWRpYXRlbHkgYmVmb3JlIE5QUF9EZXN0cm95U3RyZWFtKCkKKyAgICAgICAg
Ly8gKHRoZSBzdHJlYW0gZGVzdHJ1Y3Rpb24gZnVuY3Rpb24pLCBzbyB0aGVyZSBjYW4gYmUgbm8g
ZXhwZWN0YXRpb24gdGhhdCBhIHBsdWdpbiB3aWxsIHJlYWQgdGhlIHN0cmVhbQorICAgICAgICAv
LyBmaWxlIGFzeW5jaHJvbm91c2x5IGFmdGVyIE5QUF9TdHJlYW1Bc0ZpbGUoKSBpcyBjYWxsZWQu
CisgICAgICAgIGRlbGV0ZUZpbGUoU3RyaW5nOjpmcm9tVVRGOChtX2ZpbGVQYXRoLmRhdGEoKSkp
OworICAgICAgICBtX2ZpbGVQYXRoID0gQ1N0cmluZygpOworCisgICAgICAgIC8vIE5QUF9TdHJl
YW1Bc0ZpbGUgY291bGQgY2FsbCBOUE5fRGVzdHJveVN0cmVhbSBhbmQgZGVzdHJveSB0aGUgc3Ry
ZWFtLgorICAgICAgICBpZiAoIW1faXNTdGFydGVkKQorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFNldCBtX2lzU3RhcnRlZCB0byBmYWxz
ZSBiZWZvcmUgY2FsbGluZyBOUFBfRGVzdHJveVN0cmVhbSBpbiBjYXNlIE5QUF9EZXN0cm95U3Ry
ZWFtIGNhbGxzIE5QTl9EZXN0cm95U3RyZWFtLgogICAgIG1faXNTdGFydGVkID0gZmFsc2U7CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luU3RyZWFtLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRz
Y2FwZVBsdWdpblN0cmVhbS5oCmluZGV4IGY5MGM1ZDM4ZDE1NTUzZDI3NmU3MjMxMzU2ZWI2NTRj
NWZlYWM5YjUuLjk4MzMyNGVjMzZlYzA1MGZlOTMxMGVmOTJkNTFmYzllYTMwNmQxNzQgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2lu
U3RyZWFtLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2Nh
cGVQbHVnaW5TdHJlYW0uaApAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBOZXRzY2FwZVBsdWdp
blN0cmVhbV9oCiAKICNpbmNsdWRlICJSdW5Mb29wLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ucGFwaS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTc1LDYgKzc2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgZGVsaXZlckRhdGEoY29uc3QgY2hhciogYnl0ZXMsIGludCBs
ZW5ndGgpOwogICAgIHZvaWQgZGVsaXZlckRhdGFUb1BsdWdpbigpOworICAgIHZvaWQgZGVsaXZl
ckRhdGFUb0ZpbGUoY29uc3QgY2hhciogYnl0ZXMsIGludCBsZW5ndGgpOwogCiAgICAgUmVmUHRy
PE5ldHNjYXBlUGx1Z2luPiBtX3BsdWdpbjsKICAgICB1aW50NjRfdCBtX3N0cmVhbUlEOwpAQCAt
ODYsNiArODgsOSBAQCBwcml2YXRlOgogICAgIHVpbnQxNl90IG1fdHJhbnNmZXJNb2RlOwogICAg
IGludDMyX3QgbV9vZmZzZXQ7CiAKKyAgICBDU3RyaW5nIG1fZmlsZVBhdGg7CisgICAgV2ViQ29y
ZTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZmlsZUhhbmRsZTsKKyAgICAKICAgICAvLyBXaGV0aGVy
IE5QUF9OZXdTdHJlYW0gaGFzIHN1Y2Nlc3NmdWxseSBiZWVuIGNhbGxlZC4KICAgICBib29sIG1f
aXNTdGFydGVkOwogCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmlu
ZGV4IDYxMmI0NmY1ZjdkZWZjODcwNGMwZmRlMTg2YTYwN2Q4ZDA3NzBmZGEuLmFmYWZiYTU1NTM4
NWZlZjczYmQ1MDFhZWQ0MmU3ODc4ZDYzNDg5MWYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCkBAIC01MzMsMTIgKzUzMywxNSBAQCB2b2lkIFBsdWdpblZpZXc6
OmxvYWRVUkwodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29u
c3QgU3RyaQogCiB2b2lkIFBsdWdpblZpZXc6OmNhbmNlbFN0cmVhbUxvYWQodWludDY0X3Qgc3Ry
ZWFtSUQpCiB7Ci0gICAgUGx1Z2luVmlldzo6U3RyZWFtKiBzdHJlYW0gPSBtX3N0cmVhbXMuZ2V0
KHN0cmVhbUlEKS5nZXQoKTsKKyAgICAvLyBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdHJlYW0u
IFN0cmVhbTo6Y2FuY2VsIG1pZ2h0IHJlbW92ZSB0aGUgc3RyZWFtIGZyb20gdGhlIG1hcCwgYW5k
IHRodXMKKyAgICAvLyByZWxlYXNpbmcgaXRzIGxhc3QgcmVmZXJlbmNlLgorICAgIFJlZlB0cjxQ
bHVnaW5WaWV3OjpTdHJlYW0+IHN0cmVhbSA9IG1fc3RyZWFtcy5nZXQoc3RyZWFtSUQpLmdldCgp
OwogICAgIGlmICghc3RyZWFtKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBDYW5jZWxsaW5n
IHRoZSBzdHJlYW0gaGVyZSB3aWxsIHJlbW92ZSBpdCBmcm9tIHRoZSBtYXAuCiAgICAgc3RyZWFt
LT5jYW5jZWwoKTsKLSAgICByZW1vdmVTdHJlYW0oc3RyZWFtKTsKKyAgICBBU1NFUlQoIW1fc3Ry
ZWFtcy5jb250YWlucyhzdHJlYW1JRCkpOwogfQogCiBOUE9iamVjdCogUGx1Z2luVmlldzo6d2lu
ZG93U2NyaXB0TlBPYmplY3QoKQo=
</data>
<flag name="review"
          id="50090"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>