<?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>29634</bug_id>
          
          <creation_ts>2009-09-22 04:03:39 -0700</creation_ts>
          <short_desc>Introduce Pasteboard::writePlaintext(const String&amp;) for copying elements code to clipboard in WebInspector</short_desc>
          <delta_ts>2009-09-24 02:39:11 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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>
          
          <blocked>28357</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexander Pavlov (apavlov)">apavlov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>149001</commentid>
    <comment_count>0</comment_count>
      <attachid>39911</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-22 04:03:39 -0700</bug_when>
    <thetext>Created attachment 39911
Pasteboard::writePlaintext implementation for all platforms

writePlaintext() is necessary for WebInspector to be able to copy the selected element HTML to the system clipboard.

The suggested implementation never substitutes spaces for &amp;nbsp; since we want to get the associated HTML as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149007</commentid>
    <comment_count>1</comment_count>
      <attachid>39911</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-09-22 05:07:08 -0700</bug_when>
    <thetext>Comment on attachment 39911
Pasteboard::writePlaintext implementation for all platforms

&gt; +    void writePlaintext(const String&amp;);

writePlainText ?

&gt;      ChromiumBridge::clipboardWriteSelection(html, url, plainText, canSmartCopyOrDelete);

In this case pasting html flavor would lead to the original content being pasted, not the markup.

&gt; +    md-&gt;setText(qtext);
&gt; +    QApplication::clipboard()-&gt;setMimeData(md, m_selectionMode ?
&gt; +            QClipboard::Selection : QClipboard::Clipboard);

Indent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149038</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-22 06:51:58 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; (From update of attachment 39911 [details])
&gt; &gt; +    void writePlaintext(const String&amp;);
&gt; 
&gt; writePlainText ?
Fixed.

&gt; &gt;      ChromiumBridge::clipboardWriteSelection(html, url, plainText, canSmartCopyOrDelete);
&gt; 
&gt; In this case pasting html flavor would lead to the original content being
&gt; pasted, not the markup.
Correct. Added ChromiumBridge::clipboardWritePlainText().

&gt; &gt; +    md-&gt;setText(qtext);
&gt; &gt; +    QApplication::clipboard()-&gt;setMimeData(md, m_selectionMode ?
&gt; &gt; +            QClipboard::Selection : QClipboard::Clipboard);
&gt; 
&gt; Indent.
This same indent is found in writeURL and is likely to be caused by the ternary operator wrapping Qt coding style guide.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149039</commentid>
    <comment_count>3</comment_count>
      <attachid>39921</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-22 07:00:10 -0700</bug_when>
    <thetext>Created attachment 39921
patch (fixed casing and Chromium implementation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149043</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-09-22 07:12:21 -0700</bug_when>
    <thetext>ChangeLog files are missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149050</commentid>
    <comment_count>5</comment_count>
      <attachid>39924</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-22 07:58:48 -0700</bug_when>
    <thetext>Created attachment 39924
patch (added ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149198</commentid>
    <comment_count>6</comment_count>
      <attachid>39924</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-22 14:39:20 -0700</bug_when>
    <thetext>Comment on attachment 39924
patch (added ChangeLog)

I&apos;m impressed that you did all these implementations!

     if (wxTheClipboard-&gt;Open())
 65     {

{ should be on the same line as the if.

The ChangeLog is missing any explanation as to why we would add this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149317</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-09-22 22:35:21 -0700</bug_when>
    <thetext>&gt; The ChangeLog is missing any explanation as to why we would add this.

I can see the ChangeLog in the latest patch; there is a bug in the Blocks list that shows how new functionality is used. However adding more into the bug description / changelog entry surely makes sense.

Eric, do you feel comfortable reviewing it? Timothy thought it was Ok, but wanted someone else to take a look at it as well. I am trying to minimize the number of over-night-reviews and get an r+ for this. Will make sure description and style comments are fixed prior to landing. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149354</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-23 04:44:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 39924 [details])
&gt; I&apos;m impressed that you did all these implementations!
&gt; 
&gt;      if (wxTheClipboard-&gt;Open())
&gt;  65     {
&gt; 
&gt; { should be on the same line as the if.
Fixed along with similar cases in other methods.

&gt; The ChangeLog is missing any explanation as to why we would add this.
Added an explanation into ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149356</commentid>
    <comment_count>9</comment_count>
      <attachid>39989</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2009-09-23 04:46:59 -0700</bug_when>
    <thetext>Created attachment 39989
patch (explanation in ChangeLog, fixed style for wx)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149574</commentid>
    <comment_count>10</comment_count>
      <attachid>39989</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-23 17:35:47 -0700</bug_when>
    <thetext>Comment on attachment 39989
patch (explanation in ChangeLog, fixed style for wx)

OK.  Looks sane enough.  We don&apos;t generally commit commented-out code, but I can understand the difficulties here with the chromium stuff being split between two repositories.  If you wanted this auto-committed by the bot, you&apos;ll need to set commit-queue=?.  Otherwise you can find someone to commit this for you since I don&apos;t think you&apos;re a committer yet (at least I don&apos;t remember that being the case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149705</commentid>
    <comment_count>11</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-09-24 02:39:11 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/Pasteboard.h
	M	WebCore/platform/android/TemporaryLinkStubs.cpp
	M	WebCore/platform/chromium/ChromiumBridge.h
	M	WebCore/platform/chromium/PasteboardChromium.cpp
	M	WebCore/platform/gtk/PasteboardGtk.cpp
	M	WebCore/platform/haiku/PasteboardHaiku.cpp
	M	WebCore/platform/mac/PasteboardMac.mm
	M	WebCore/platform/qt/PasteboardQt.cpp
	M	WebCore/platform/win/PasteboardWin.cpp
	M	WebCore/platform/wince/PasteboardWince.cpp
	M	WebCore/platform/wx/PasteboardWx.cpp
Committed r48710</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39911</attachid>
            <date>2009-09-22 04:03:39 -0700</date>
            <delta_ts>2009-09-22 07:00:10 -0700</delta_ts>
            <desc>Pasteboard::writePlaintext implementation for all platforms</desc>
            <filename>copyhtmlbare.gitpatch</filename>
            <type>text/plain</type>
            <size>7778</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggY2Q2YTNiNS4uYjYzOTA1MyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBQYXN0ZWJv
YXJkKiBnZW5lcmFsUGFzdGVib2FyZCgpOwogICAgIHZvaWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2Uq
LCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSopOworICAgIHZvaWQgd3JpdGVQbGFp
bnRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29u
c3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7CiAgICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAppbmRleCBiNjhh
NzRjLi40NDczMGE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9yYXJ5
TGlua1N0dWJzLmNwcApAQCAtMTc1LDYgKzE3NSwxMSBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpbnRleHQoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVt
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcApp
bmRleCA0ZmQ2Y2YyLi45NjZmNzZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCkBAIC05Niw2ICs5NiwxNiBAQCB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29w
eU9yRGVsZXRlLAogICAgIENocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRXcml0ZVNlbGVjdGlvbiho
dG1sLCB1cmwsIHBsYWluVGV4dCwgY2FuU21hcnRDb3B5T3JEZWxldGUpOwogfQogCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGxhaW50ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBTdHJp
bmcgcGxhaW5UZXh0ID0gdGV4dDsKKworI2lmIFBMQVRGT1JNKFdJTl9PUykKKyAgICByZXBsYWNl
TmV3bGluZXNXaXRoV2luZG93c1N0eWxlTmV3bGluZXMocGxhaW5UZXh0KTsKKyNlbmRpZgorICAg
IENocm9taXVtQnJpZGdlOjpjbGlwYm9hcmRXcml0ZVNlbGVjdGlvbihwbGFpblRleHQsIEtVUkwo
KSwgcGxhaW5UZXh0LCBmYWxzZSk7Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29u
c3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiB7CiAg
ICAgQVNTRVJUKCF1cmwuaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1Bhc3RlYm9hcmRHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0
ay5jcHAKaW5kZXggNjk0OWIwYS4uYjA3MWIxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKQEAgLTEwOCw2ICsxMDgsMTIgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwK
ICAgICBndGtfdGFyZ2V0X3RhYmxlX2ZyZWUodGFyZ2V0cywgbl90YXJnZXRzKTsKIH0KIAordm9p
ZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWludGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAg
R3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBndGtfY2xpcGJvYXJkX2dldF9mb3JfZGlzcGxheShn
ZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCk7CisgICAg
Z3RrX2NsaXBib2FyZF9zZXRfdGV4dChjbGlwYm9hcmQsIHRleHQudXRmOCgpLmRhdGEoKSwgdGV4
dC51dGY4KCkubGVuZ3RoKCkpOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0
IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiwgRnJhbWUqIGZyYW1lKQogewogICAgIGlmICh1cmwu
aXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJk
SGFpa3UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCmlu
ZGV4IDY3YTdmNWIuLjM3ODViY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3Uv
UGFzdGVib2FyZEhhaWt1LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9h
cmRIYWlrdS5jcHAKQEAgLTY4LDYgKzY4LDIzIEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxl
Y3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAg
ICAgY2xpcGJvYXJkLlVubG9jaygpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW50
ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBCQ2xpcGJvYXJkIGNsaXBib2FyZCgiV2Vi
S2l0Iik7CisgICAgaWYgKCFjbGlwYm9hcmQuTG9jaygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBjbGlwYm9hcmQuQ2xlYXIoKTsKKyAgICBCTWVzc2FnZSogZGF0YSA9IGNsaXBib2FyZC5EYXRh
KCk7CisgICAgaWYgKCFkYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBkYXRhLT5BZGRTdHJp
bmcoInRleHQvcGxhaW4iLCBCU3RyaW5nKHRleHQpKTsKKyAgICBjbGlwYm9hcmQuQ29tbWl0KCk7
CisKKyAgICBjbGlwYm9hcmQuVW5sb2NrKCk7Cit9CisKIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21h
cnRSZXBsYWNlKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bh
c3RlYm9hcmRNYWMubW0KaW5kZXggZTIxZjU0OS4uZmExZDkwZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yMDMsNiArMjAzLDE4IEBAIHZvaWQgUGFzdGVib2FyZDo6
d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JE
ZWxldGUsCiAgICAgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24obV9wYXN0ZWJvYXJkLmdldCgp
LCBzZWxlY3RlZFJhbmdlLCBjYW5TbWFydENvcHlPckRlbGV0ZSwgZnJhbWUpOwogfQogCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlUGxhaW50ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBp
ZiAoV2ViQXJjaGl2ZVBib2FyZFR5cGUgPT0gbmlsKQorICAgICAgICBQYXN0ZWJvYXJkOjpnZW5l
cmFsUGFzdGVib2FyZCgpOyAvL0luaXRpYWxpc2VzIHBhc3RlYm9hcmQgdHlwZXMKKworICAgIE5T
QXJyYXkgKnR5cGVzID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TU3RyaW5nUGJvYXJkVHlw
ZV07CisgICAgTlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbV9wYXN0ZWJvYXJkLmdldCgpOwor
ICAgIFtwYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0eXBlcyBvd25lcjpuaWxdOworCisgICAgW3Bh
c3RlYm9hcmQgc2V0U3RyaW5nOnRleHQgZm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOworfQor
CiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKE5TUGFzdGVib2FyZCogcGFzdGVib2FyZCwgTlNB
cnJheSogdHlwZXMsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZVN0ciwgRnJh
bWUqIGZyYW1lKQogewogICAgIGlmIChXZWJBcmNoaXZlUGJvYXJkVHlwZSA9PSBuaWwpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAKaW5kZXggOTY5ZGU2Mi4uMzg3Nzg2YiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcApAQCAtMTE5LDYgKzExOSwxOSBAQCBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUq
IGZyYW1lLCBQYXNzUmVmUAogICAgIHJldHVybiAwOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlUGxhaW50ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKworI2lmbmRlZiBRVF9OT19DTElQ
Qk9BUkQKKyAgICBRTWltZURhdGEqIG1kID0gbmV3IFFNaW1lRGF0YTsKKyAgICBRU3RyaW5nIHF0
ZXh0ID0gdGV4dDsKKyAgICBxdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcign
ICcpKTsKKyAgICBtZC0+c2V0VGV4dChxdGV4dCk7CisgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9h
cmQoKS0+c2V0TWltZURhdGEobWQsIG1fc2VsZWN0aW9uTW9kZSA/CisgICAgICAgICAgICBRQ2xp
cGJvYXJkOjpTZWxlY3Rpb24gOiBRQ2xpcGJvYXJkOjpDbGlwYm9hcmQpOworI2VuZGlmCit9CisK
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgX3VybCwgY29uc3QgU3RyaW5n
JiwgRnJhbWUqKQogewogICAgIEFTU0VSVCghX3VybC5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCAxODg2MzBmLi4wZjc1YTE4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgUGFz
dGVib2FyZDo6Y2xlYXIoKQogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSog
c2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqIGZyYW1lKQog
ewogICAgIGNsZWFyKCk7Ci0gICAgCisKICAgICAvLyBQdXQgQ0ZfSFRNTCBmb3JtYXQgb24gdGhl
IHBhc3RlYm9hcmQgCiAgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewogICAgICAg
ICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTE0NSw2ICsxNDUsMjEgQEAgdm9pZCBQYXN0ZWJv
YXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENv
cHlPckRlbGV0ZSwKICAgICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpbnRleHQo
Y29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4g
c3RyaW5nIG9uIHRoZSBwYXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBh
cyB3ZWxsCisgICAgU3RyaW5nIHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdp
bmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVy
KSkgeworICAgICAgICBIR0xPQkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAg
ICAgICAgaWYgKCE6OlNldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisg
ICAgICAgICAgICA6Okdsb2JhbEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2Fy
ZCgpOworICAgIH0KK30KKwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQo
IXVybC5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0
ZWJvYXJkV2luY2UuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2Uu
Y3BwCmluZGV4IGNiYTg1YjguLmQ2MGE4MTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
d2luY2UvUGFzdGVib2FyZFdpbmNlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL1Bh
c3RlYm9hcmRXaW5jZS5jcHAKQEAgLTE0Miw2ICsxNDIsMjEgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVNlbGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRl
bGV0ZSwKICAgICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpbnRleHQoY29uc3Qg
U3RyaW5nJiB0ZXh0KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4gc3RyaW5n
IG9uIHRoZSBwYXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBhcyB3ZWxs
CisgICAgU3RyaW5nIHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NT
dHlsZU5ld2xpbmVzKHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewor
ICAgICAgICBIR0xPQkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAgICAgICAg
aWYgKCE6OlNldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisgICAgICAg
ICAgICA6Okdsb2JhbEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOwor
ICAgIH0KK30KKwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIXVybC5p
c0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3gu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwCmluZGV4IDY3Njk3ZGUu
LjcyYzc5ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVib2FyZFd4LmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAKQEAgLTU5LDYgKzU5
LDE1IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFu
Z2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAgICAgfQogfQogCit2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlUGxhaW50ZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAod3hUaGVD
bGlwYm9hcmQtPk9wZW4oKSkKKyAgICB7CisgICAgICAgIHd4VGhlQ2xpcGJvYXJkLT5TZXREYXRh
KCBuZXcgd3hUZXh0RGF0YU9iamVjdCh0ZXh0KSApOworICAgICAgICB3eFRoZUNsaXBib2FyZC0+
Q2xvc2UoKTsKKyAgICB9Cit9CisKIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39921</attachid>
            <date>2009-09-22 07:00:10 -0700</date>
            <delta_ts>2009-09-22 07:58:48 -0700</delta_ts>
            <desc>patch (fixed casing and Chromium implementation)</desc>
            <filename>copyhtmlbare.gitpatch</filename>
            <type>text/plain</type>
            <size>8450</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggY2Q2YTNiNS4uMTg4Yjk2MiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBQYXN0ZWJv
YXJkKiBnZW5lcmFsUGFzdGVib2FyZCgpOwogICAgIHZvaWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2Uq
LCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSopOworICAgIHZvaWQgd3JpdGVQbGFp
blRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29u
c3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7CiAgICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAppbmRleCBiNjhh
NzRjLi5jMGI1N2E2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvVGVtcG9yYXJ5
TGlua1N0dWJzLmNwcApAQCAtMTc1LDYgKzE3NSwxMSBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKFJhbmdlKiwgYm9vbCwgRnJhbWUqKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2UuaAppbmRleCBiMzQ5MjRi
Li4wNTA1ZDA3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
QnJpZGdlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5o
CkBAIC03Niw2ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gQ2hyb21p
dW0gY3VycmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVy
bmF0ZQogICAgICAgICAvLyBjbGlwYm9hcmQgYnVmZmVycy4KICAgICAgICAgc3RhdGljIHZvaWQg
Y2xpcGJvYXJkV3JpdGVTZWxlY3Rpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0
IFN0cmluZyYsIGJvb2wpOworICAgICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZVBsYWlu
VGV4dChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3JpdGVV
UkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBzdGF0aWMgdm9pZCBjbGlw
Ym9hcmRXcml0ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlU2tpYSosIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0
ZWJvYXJkQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJk
Q2hyb21pdW0uY3BwCmluZGV4IDRmZDZjZjIuLjk3NTEyYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTk2LDYgKzk2LDE2IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJv
b2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAgICAgQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdy
aXRlU2VsZWN0aW9uKGh0bWwsIHVybCwgcGxhaW5UZXh0LCBjYW5TbWFydENvcHlPckRlbGV0ZSk7
CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIFN0cmluZyBwbGFpblRleHQgPSB0ZXh0OworCisjaWYgUExBVEZPUk0oV0lOX09T
KQorICAgIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhwbGFpblRleHQp
OworI2VuZGlmCisgICAgQ2hyb21pdW1CcmlkZ2U6OmNsaXBib2FyZFdyaXRlUGxhaW5UZXh0KHBs
YWluVGV4dCk7Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgQVNTRVJUKCF1
cmwuaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9h
cmRHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXgg
Njk0OWIwYS4uZjFlYmU3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAK
QEAgLTEwOCw2ICsxMDgsMTIgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5n
ZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwKICAgICBndGtfdGFy
Z2V0X3RhYmxlX2ZyZWUodGFyZ2V0cywgbl90YXJnZXRzKTsKIH0KIAordm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgR3RrQ2xpcGJvYXJk
KiBjbGlwYm9hcmQgPSBndGtfY2xpcGJvYXJkX2dldF9mb3JfZGlzcGxheShnZGtfZGlzcGxheV9n
ZXRfZGVmYXVsdCgpLCBHREtfU0VMRUNUSU9OX0NMSVBCT0FSRCk7CisgICAgZ3RrX2NsaXBib2Fy
ZF9zZXRfdGV4dChjbGlwYm9hcmQsIHRleHQudXRmOCgpLmRhdGEoKSwgdGV4dC51dGY4KCkubGVu
Z3RoKCkpOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiwgRnJhbWUqIGZyYW1lKQogewogICAgIGlmICh1cmwuaXNFbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCmluZGV4IDY3YTdmNWIu
LjhhZDcyY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhh
aWt1LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAK
QEAgLTY4LDYgKzY4LDIzIEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2Uq
IHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAgICAgY2xpcGJvYXJk
LlVubG9jaygpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0
cmluZyYgdGV4dCkKK3sKKyAgICBCQ2xpcGJvYXJkIGNsaXBib2FyZCgiV2ViS2l0Iik7CisgICAg
aWYgKCFjbGlwYm9hcmQuTG9jaygpKQorICAgICAgICByZXR1cm47CisKKyAgICBjbGlwYm9hcmQu
Q2xlYXIoKTsKKyAgICBCTWVzc2FnZSogZGF0YSA9IGNsaXBib2FyZC5EYXRhKCk7CisgICAgaWYg
KCFkYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBkYXRhLT5BZGRTdHJpbmcoInRleHQvcGxh
aW4iLCBCU3RyaW5nKHRleHQpKTsKKyAgICBjbGlwYm9hcmQuQ29tbWl0KCk7CisKKyAgICBjbGlw
Ym9hcmQuVW5sb2NrKCk7Cit9CisKIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMu
bW0KaW5kZXggZTIxZjU0OS4uMzVjMGJlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJk
TWFjLm1tCkBAIC0yMDMsNiArMjAzLDE4IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rp
b24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAgICAg
UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24obV9wYXN0ZWJvYXJkLmdldCgpLCBzZWxlY3RlZFJh
bmdlLCBjYW5TbWFydENvcHlPckRlbGV0ZSwgZnJhbWUpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAoV2ViQXJjaGl2
ZVBib2FyZFR5cGUgPT0gbmlsKQorICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFzdGVib2Fy
ZCgpOyAvL0luaXRpYWxpc2VzIHBhc3RlYm9hcmQgdHlwZXMKKworICAgIE5TQXJyYXkgKnR5cGVz
ID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0Ok5TU3RyaW5nUGJvYXJkVHlwZV07CisgICAgTlNQ
YXN0ZWJvYXJkKiBwYXN0ZWJvYXJkID0gbV9wYXN0ZWJvYXJkLmdldCgpOworICAgIFtwYXN0ZWJv
YXJkIGRlY2xhcmVUeXBlczp0eXBlcyBvd25lcjpuaWxdOworCisgICAgW3Bhc3RlYm9hcmQgc2V0
U3RyaW5nOnRleHQgZm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOworfQorCiB2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlVVJMKE5TUGFzdGVib2FyZCogcGFzdGVib2FyZCwgTlNBcnJheSogdHlwZXMs
IGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZVN0ciwgRnJhbWUqIGZyYW1lKQog
ewogICAgIGlmIChXZWJBcmNoaXZlUGJvYXJkVHlwZSA9PSBuaWwpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bh
c3RlYm9hcmRRdC5jcHAKaW5kZXggOTY5ZGU2Mi4uOTI4NzlkZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vcXQv
UGFzdGVib2FyZFF0LmNwcApAQCAtMTE5LDYgKzExOSwxOSBAQCBQYXNzUmVmUHRyPERvY3VtZW50
RnJhZ21lbnQ+IFBhc3RlYm9hcmQ6OmRvY3VtZW50RnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNz
UmVmUAogICAgIHJldHVybiAwOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKworI2lmbmRlZiBRVF9OT19DTElQQk9BUkQKKyAgICBR
TWltZURhdGEqIG1kID0gbmV3IFFNaW1lRGF0YTsKKyAgICBRU3RyaW5nIHF0ZXh0ID0gdGV4dDsK
KyAgICBxdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcignICcpKTsKKyAgICBt
ZC0+c2V0VGV4dChxdGV4dCk7CisgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+c2V0TWlt
ZURhdGEobWQsIG1fc2VsZWN0aW9uTW9kZSA/CisgICAgICAgICAgICBRQ2xpcGJvYXJkOjpTZWxl
Y3Rpb24gOiBRQ2xpcGJvYXJkOjpDbGlwYm9hcmQpOworI2VuZGlmCit9CisKIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgX3VybCwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQog
ewogICAgIEFTU0VSVCghX3VybC5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAppbmRleCAxODg2MzBmLi5kMDk3NjlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Q
YXN0ZWJvYXJkV2luLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6Y2xl
YXIoKQogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5n
ZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqIGZyYW1lKQogewogICAgIGNsZWFy
KCk7Ci0gICAgCisKICAgICAvLyBQdXQgQ0ZfSFRNTCBmb3JtYXQgb24gdGhlIHBhc3RlYm9hcmQg
CiAgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgewogICAgICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKQEAgLTE0NSw2ICsxNDUsMjEgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwK
ICAgICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4gc3RyaW5nIG9uIHRo
ZSBwYXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBhcyB3ZWxsCisgICAg
U3RyaW5nIHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5l
d2xpbmVzKHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgeworICAgICAg
ICBIR0xPQkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAgICAgICAgaWYgKCE6
OlNldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisgICAgICAgICAgICA6
Okdsb2JhbEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgIH0K
K30KKwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIXVybC5pc0VtcHR5
KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2Uu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2UuY3BwCmluZGV4IGNi
YTg1YjguLjE2ZjQ5NjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvUGFzdGVi
b2FyZFdpbmNlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL1Bhc3RlYm9hcmRXaW5j
ZS5jcHAKQEAgLTE0Miw2ICsxNDIsMjEgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwKICAgICB9
CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0
KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4gc3RyaW5nIG9uIHRoZSBwYXN0
ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBhcyB3ZWxsCisgICAgU3RyaW5n
IHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVz
KHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgeworICAgICAgICBIR0xP
QkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAgICAgICAgaWYgKCE6OlNldENs
aXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisgICAgICAgICAgICA6Okdsb2Jh
bEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgIH0KK30KKwog
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIXVybC5pc0VtcHR5KCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwCmluZGV4IDY3Njk3ZGUuLmY5NWM1ODggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVib2FyZFd4LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAKQEAgLTU5LDYgKzU5LDE1IEBAIHZvaWQg
UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2Fu
U21hcnRDb3B5T3JEZWxldGUsCiAgICAgfQogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxh
aW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAod3hUaGVDbGlwYm9hcmQtPk9w
ZW4oKSkKKyAgICB7CisgICAgICAgIHd4VGhlQ2xpcGJvYXJkLT5TZXREYXRhKCBuZXcgd3hUZXh0
RGF0YU9iamVjdCh0ZXh0KSApOworICAgICAgICB3eFRoZUNsaXBib2FyZC0+Q2xvc2UoKTsKKyAg
ICB9Cit9CisKIGJvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNlKCkKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39924</attachid>
            <date>2009-09-22 07:58:48 -0700</date>
            <delta_ts>2009-09-23 04:46:59 -0700</delta_ts>
            <desc>patch (added ChangeLog)</desc>
            <filename>plaintext.patch</filename>
            <type>text/plain</type>
            <size>9745</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODYzNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMDktMDktMjIgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2UgUGFzdGVib2FyZDo6d3JpdGVQbGFpbnRleHQoY29uc3QgU3RyaW5nJikK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjM0CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vYW5k
cm9pZC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwOgorICAgICAgICAoUGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmg6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJv
YXJkOjp3cml0ZVBsYWluVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3UvUGFzdGVib2Fy
ZEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9QYXN0ZWJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW5jZS9QYXN0ZWJvYXJkV2luY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6CisKIDIwMDkt
MDktMjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAg
cHVibGljOgogICAgIAogICAgIHN0YXRpYyBQYXN0ZWJvYXJkKiBnZW5lcmFsUGFzdGVib2FyZCgp
OwogICAgIHZvaWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sIGNhblNtYXJ0Q29weU9yRGVs
ZXRlLCBGcmFtZSopOworICAgIHZvaWQgd3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7
CiAgICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0
aXRsZSk7CiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9hbmRyb2lkL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NSw2ICsxNzUsMTEgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5n
ZSosIAogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQ
bGFpblRleHQoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFt
ZSopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2hyb21pdW1CcmlkZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0Nocm9taXVtQnJpZGdlLmgJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3
Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gQ2hyb21pdW0gY3VycmVudGx5
IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVybmF0ZQogICAgICAg
ICAvLyBjbGlwYm9hcmQgYnVmZmVycy4KICAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3Jp
dGVTZWxlY3Rpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIGJv
b2wpOworICAgICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZVBsYWluVGV4dChjb25zdCBT
dHJpbmcmKTsKICAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3JpdGVVUkwoY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYpOwogICAgICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZUlt
YWdlKGNvbnN0IE5hdGl2ZUltYWdlU2tpYSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKTsK
IApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9t
aXVtLmNwcAkocmV2aXNpb24gNDg1ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bh
c3RlYm9hcmRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDE2IEBAIHZv
aWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAgICBDaHJvbWl1bUJyaWRn
ZTo6Y2xpcGJvYXJkV3JpdGVTZWxlY3Rpb24oaHRtbCwgdXJsLCBwbGFpblRleHQsIGNhblNtYXJ0
Q29weU9yRGVsZXRlKTsKIH0KIAordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgU3RyaW5nIHBsYWluVGV4dCA9IHRleHQ7CisKKyNpZiBQ
TEFURk9STShXSU5fT1MpCisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xp
bmVzKHBsYWluVGV4dCk7CisjZW5kaWYKKyAgICBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkV3Jp
dGVQbGFpblRleHQocGxhaW5UZXh0KTsKK30KKwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChj
b25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsK
ICAgICBBU1NFUlQoIXVybC5pc0VtcHR5KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGFzdGVib2FyZEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEd0ay5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGFzdGVib2FyZEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsxMDgsMTIgQEAgdm9p
ZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogcwogICAgIGd0a190YXJnZXRfdGFi
bGVfZnJlZSh0YXJnZXRzLCBuX3RhcmdldHMpOwogfQogCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHdGtDbGlwYm9hcmQqIGNsaXBi
b2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19kaXNwbGF5X2dldF9kZWZh
dWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKKyAgICBndGtfY2xpcGJvYXJkX3NldF90
ZXh0KGNsaXBib2FyZCwgdGV4dC51dGY4KCkuZGF0YSgpLCB0ZXh0LnV0ZjgoKS5sZW5ndGgoKSk7
Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKHVybC5pc0VtcHR5KCkpCkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCShyZXZpc2lvbiA0ODU4
NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjgsNiArNjgsMjMgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSogcwogICAgIGNsaXBib2FyZC5VbmxvY2soKTsKIH0KIAordm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgQkNsaXBib2FyZCBj
bGlwYm9hcmQoIldlYktpdCIpOworICAgIGlmICghY2xpcGJvYXJkLkxvY2soKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgY2xpcGJvYXJkLkNsZWFyKCk7CisgICAgQk1lc3NhZ2UqIGRhdGEgPSBj
bGlwYm9hcmQuRGF0YSgpOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
ZGF0YS0+QWRkU3RyaW5nKCJ0ZXh0L3BsYWluIiwgQlN0cmluZyh0ZXh0KSk7CisgICAgY2xpcGJv
YXJkLkNvbW1pdCgpOworCisgICAgY2xpcGJvYXJkLlVubG9jaygpOworfQorCiBib29sIFBhc3Rl
Ym9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQkocmV2aXNpb24gNDg1ODUpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDMsNiArMjAzLDE4IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMK
ICAgICBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihtX3Bhc3RlYm9hcmQuZ2V0KCksIHNlbGVj
dGVkUmFuZ2UsIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBmcmFtZSk7CiB9CiAKK3ZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGlmIChXZWJB
cmNoaXZlUGJvYXJkVHlwZSA9PSBuaWwpCisgICAgICAgIFBhc3RlYm9hcmQ6OmdlbmVyYWxQYXN0
ZWJvYXJkKCk7IC8vSW5pdGlhbGlzZXMgcGFzdGVib2FyZCB0eXBlcworCisgICAgTlNBcnJheSAq
dHlwZXMgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOk5TU3RyaW5nUGJvYXJkVHlwZSwgbmls
XTsKKyAgICBOU1Bhc3RlYm9hcmQqIHBhc3RlYm9hcmQgPSBtX3Bhc3RlYm9hcmQuZ2V0KCk7Cisg
ICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07CisKKyAgICBbcGFz
dGVib2FyZCBzZXRTdHJpbmc6dGV4dCBmb3JUeXBlOk5TU3RyaW5nUGJvYXJkVHlwZV07Cit9CisK
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoTlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBOU0Fy
cmF5KiB0eXBlcywgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFt
ZSogZnJhbWUpCiB7CiAgICAgaWYgKFdlYkFyY2hpdmVQYm9hcmRUeXBlID09IG5pbCkKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTks
NiArMTE5LDE5IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gUGFzdGVib2FyZDoKICAg
ICByZXR1cm4gMDsKIH0KIAordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBT
dHJpbmcmIHRleHQpCit7CisKKyNpZm5kZWYgUVRfTk9fQ0xJUEJPQVJECisgICAgUU1pbWVEYXRh
KiBtZCA9IG5ldyBRTWltZURhdGE7CisgICAgUVN0cmluZyBxdGV4dCA9IHRleHQ7CisgICAgcXRl
eHQucmVwbGFjZShRQ2hhcigweGEwKSwgUUxhdGluMUNoYXIoJyAnKSk7CisgICAgbWQtPnNldFRl
eHQocXRleHQpOworICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldE1pbWVEYXRhKG1k
LCBtX3NlbGVjdGlvbk1vZGUgPworICAgICAgICAgICAgUUNsaXBib2FyZDo6U2VsZWN0aW9uIDog
UUNsaXBib2FyZDo6Q2xpcGJvYXJkKTsKKyNlbmRpZgorfQorCiB2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlVVJMKGNvbnN0IEtVUkwmIF91cmwsIGNvbnN0IFN0cmluZyYsIEZyYW1lKikKIHsKICAgICBB
U1NFUlQoIV91cmwuaXNFbXB0eSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3Rl
Ym9hcmRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9h
cmRXaW4uY3BwCShyZXZpc2lvbiA0ODU4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3Rl
Ym9hcmRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcigpCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBz
ZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSogZnJhbWUpCiB7
CiAgICAgY2xlYXIoKTsKLSAgICAKKwogICAgIC8vIFB1dCBDRl9IVE1MIGZvcm1hdCBvbiB0aGUg
cGFzdGVib2FyZCAKICAgICBpZiAoOjpPcGVuQ2xpcGJvYXJkKG1fb3duZXIpKSB7CiAgICAgICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTQ1LDYgKzE0NSwyMSBAQCB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzCiAgICAgfQogfQogCit2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBjbGVhcigpOworCisg
ICAgLy8gUHV0IHBsYWluIHN0cmluZyBvbiB0aGUgcGFzdGVib2FyZC4gQ0ZfVU5JQ09ERVRFWFQg
Y292ZXJzIENGX1RFWFQgYXMgd2VsbAorICAgIFN0cmluZyBzdHIgPSB0ZXh0OworICAgIHJlcGxh
Y2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhzdHIpOworICAgIGlmICg6Ok9wZW5D
bGlwYm9hcmQobV9vd25lcikpIHsKKyAgICAgICAgSEdMT0JBTCBjYkRhdGEgPSBjcmVhdGVHbG9i
YWxEYXRhKHN0cik7CisgICAgICAgIGlmICghOjpTZXRDbGlwYm9hcmREYXRhKENGX1VOSUNPREVU
RVhULCBjYkRhdGEpKQorICAgICAgICAgICAgOjpHbG9iYWxGcmVlKGNiRGF0YSk7CisgICAgICAg
IDo6Q2xvc2VDbGlwYm9hcmQoKTsKKyAgICB9Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVV
UkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3RyLCBGcmFtZSogZnJhbWUp
CiB7CiAgICAgQVNTRVJUKCF1cmwuaXNFbXB0eSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
d2luY2UvUGFzdGVib2FyZFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3dpbmNlL1Bhc3RlYm9hcmRXaW5jZS5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIs
NiArMTQyLDIxIEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHMKICAg
ICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4gc3RyaW5nIG9uIHRoZSBw
YXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBhcyB3ZWxsCisgICAgU3Ry
aW5nIHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xp
bmVzKHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVyKSkgeworICAgICAgICBI
R0xPQkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAgICAgICAgaWYgKCE6OlNl
dENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisgICAgICAgICAgICA6Okds
b2JhbEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2FyZCgpOworICAgIH0KK30K
Kwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIXVybC5pc0VtcHR5KCkp
OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVib2FyZFd4LmNwcAkocmV2aXNpb24gNDg1ODUp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU5LDYgKzU5LDE1IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2Uq
IHMKICAgICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0KQoreworICAgIGlmICh3eFRoZUNsaXBib2FyZC0+T3BlbigpKQorICAgIHsKKyAg
ICAgICAgd3hUaGVDbGlwYm9hcmQtPlNldERhdGEoIG5ldyB3eFRleHREYXRhT2JqZWN0KHRleHQp
ICk7CisgICAgICAgIHd4VGhlQ2xpcGJvYXJkLT5DbG9zZSgpOworICAgIH0KK30KKwogYm9vbCBQ
YXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39989</attachid>
            <date>2009-09-23 04:46:59 -0700</date>
            <delta_ts>2009-09-23 17:35:46 -0700</delta_ts>
            <desc>patch (explanation in ChangeLog, fixed style for wx)</desc>
            <filename>plaintext.patch</filename>
            <type>text/plain</type>
            <size>10653</size>
            <attacher name="Alexander Pavlov (apavlov)">apavlov</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODY2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDktMDktMjMgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJbnRyb2R1Y2UgUGFzdGVib2FyZDo6d3JpdGVQbGFpbnRleHQoY29uc3QgU3RyaW5nJikg
c28gdGhhdCBjb3B5aW5nCisgICAgICAgIG9mIHRoZSBpbnNwZWN0ZWQgZWxlbWVudHMgSFRNTCB3
aWxsIGJlIHBvc3NpYmxlIGluIFdlYkluc3BlY3Rvci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5NjM0CisKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0
ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9UZW1wb3JhcnlMaW5rU3R1YnMu
Y3BwOgorICAgICAgICAoUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdlLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dCk6Cisg
ICAgICAgICogcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRl
UGxhaW5UZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQpOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3
cml0ZVBsYWluVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVVSTCk6
CisKIDIwMDktMDktMjIgIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29t
LmNuPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkLmgJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJk
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIAogICAgIHN0
YXRpYyBQYXN0ZWJvYXJkKiBnZW5lcmFsUGFzdGVib2FyZCgpOwogICAgIHZvaWQgd3JpdGVTZWxl
Y3Rpb24oUmFuZ2UqLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSopOworICAgIHZv
aWQgd3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB3cml0ZVVSTChjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7CiAgICAgdm9pZCB3cml0ZUltYWdl
KE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAjaWYgUExBVEZPUk0o
TUFDKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1RlbXBvcmFyeUxpbmtTdHVicy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1RlbXBvcmFyeUxpbmtT
dHVicy5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1Rl
bXBvcmFyeUxpbmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsMTEgQEAg
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSosIAogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5n
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VVJMKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1CcmlkZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtQnJpZGdl
LmgJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1
bUJyaWRnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw2ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgLy8gQ2hyb21pdW0gY3VycmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVj
aG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVybmF0ZQogICAgICAgICAvLyBjbGlwYm9hcmQgYnVmZmVy
cy4KICAgICAgICAgc3RhdGljIHZvaWQgY2xpcGJvYXJkV3JpdGVTZWxlY3Rpb24oY29uc3QgU3Ry
aW5nJiwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIGJvb2wpOworICAgICAgICBzdGF0aWMg
dm9pZCBjbGlwYm9hcmRXcml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgY2xpcGJvYXJkV3JpdGVVUkwoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBjbGlwYm9hcmRXcml0ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdl
U2tpYSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmKTsKIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAkocmV2aXNpb24gNDg1
ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDE3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb24oUmFuZ2UqIHMKICAgICBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkV3JpdGVTZWxl
Y3Rpb24oaHRtbCwgdXJsLCBwbGFpblRleHQsIGNhblNtYXJ0Q29weU9yRGVsZXRlKTsKIH0KIAor
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7Cisg
ICAgU3RyaW5nIHBsYWluVGV4dCA9IHRleHQ7CisKKyNpZiBQTEFURk9STShXSU5fT1MpCisgICAg
cmVwbGFjZU5ld2xpbmVzV2l0aFdpbmRvd3NTdHlsZU5ld2xpbmVzKHBsYWluVGV4dCk7CisjZW5k
aWYKKyAgICAvLyBGSVhNRTogdW5jb21tZW50IHdoZW4gQ2hyb21pdW0gQ0wgaHR0cDovL2NvZGVy
ZXZpZXcuY2hyb21pdW0ub3JnLzIxMTA1MiBpcyBjbG9zZWQuCisgICAgLy9DaHJvbWl1bUJyaWRn
ZTo6Y2xpcGJvYXJkV3JpdGVQbGFpblRleHQocGxhaW5UZXh0KTsKK30KKwogdm9pZCBQYXN0ZWJv
YXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZy
YW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIXVybC5pc0VtcHR5KCkpOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAJKHJldmlzaW9uIDQ4NTg1KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2
ICsxMDgsMTIgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogcwogICAg
IGd0a190YXJnZXRfdGFibGVfZnJlZSh0YXJnZXRzLCBuX3RhcmdldHMpOwogfQogCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBHdGtD
bGlwYm9hcmQqIGNsaXBib2FyZCA9IGd0a19jbGlwYm9hcmRfZ2V0X2Zvcl9kaXNwbGF5KGdka19k
aXNwbGF5X2dldF9kZWZhdWx0KCksIEdES19TRUxFQ1RJT05fQ0xJUEJPQVJEKTsKKyAgICBndGtf
Y2xpcGJvYXJkX3NldF90ZXh0KGNsaXBib2FyZCwgdGV4dC51dGY4KCkuZGF0YSgpLCB0ZXh0LnV0
ZjgoKS5sZW5ndGgoKSk7Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VS
TCYgdXJsLCBjb25zdCBTdHJpbmcmLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKHVybC5pc0Vt
cHR5KCkpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3Bw
CShyZXZpc2lvbiA0ODU4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhh
aWt1LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsMjMgQEAgdm9pZCBQYXN0ZWJvYXJk
Ojp3cml0ZVNlbGVjdGlvbihSYW5nZSogcwogICAgIGNsaXBib2FyZC5VbmxvY2soKTsKIH0KIAor
dm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7Cisg
ICAgQkNsaXBib2FyZCBjbGlwYm9hcmQoIldlYktpdCIpOworICAgIGlmICghY2xpcGJvYXJkLkxv
Y2soKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY2xpcGJvYXJkLkNsZWFyKCk7CisgICAgQk1l
c3NhZ2UqIGRhdGEgPSBjbGlwYm9hcmQuRGF0YSgpOworICAgIGlmICghZGF0YSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgZGF0YS0+QWRkU3RyaW5nKCJ0ZXh0L3BsYWluIiwgQlN0cmluZyh0ZXh0
KSk7CisgICAgY2xpcGJvYXJkLkNvbW1pdCgpOworCisgICAgY2xpcGJvYXJkLlVubG9jaygpOwor
fQorCiBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQkocmV2aXNp
b24gNDg1ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDMsNiArMjAzLDE4IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxl
Y3Rpb24oUmFuZ2UqIHMKICAgICBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihtX3Bhc3RlYm9h
cmQuZ2V0KCksIHNlbGVjdGVkUmFuZ2UsIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBmcmFtZSk7CiB9
CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIGlmIChXZWJBcmNoaXZlUGJvYXJkVHlwZSA9PSBuaWwpCisgICAgICAgIFBhc3RlYm9h
cmQ6OmdlbmVyYWxQYXN0ZWJvYXJkKCk7IC8vSW5pdGlhbGlzZXMgcGFzdGVib2FyZCB0eXBlcwor
CisgICAgTlNBcnJheSAqdHlwZXMgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3RzOk5TU3RyaW5n
UGJvYXJkVHlwZSwgbmlsXTsKKyAgICBOU1Bhc3RlYm9hcmQqIHBhc3RlYm9hcmQgPSBtX3Bhc3Rl
Ym9hcmQuZ2V0KCk7CisgICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5p
bF07CisKKyAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6dGV4dCBmb3JUeXBlOk5TU3RyaW5nUGJv
YXJkVHlwZV07Cit9CisKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVVUkwoTlNQYXN0ZWJvYXJkKiBw
YXN0ZWJvYXJkLCBOU0FycmF5KiB0eXBlcywgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHRpdGxlU3RyLCBGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKFdlYkFyY2hpdmVQYm9hcmRUeXBl
ID09IG5pbCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAJKHJldmlzaW9u
IDQ4NTg1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTksNiArMTE5LDE5IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
UGFzdGVib2FyZDoKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBs
YWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQpCit7CisKKyNpZm5kZWYgUVRfTk9fQ0xJUEJPQVJE
CisgICAgUU1pbWVEYXRhKiBtZCA9IG5ldyBRTWltZURhdGE7CisgICAgUVN0cmluZyBxdGV4dCA9
IHRleHQ7CisgICAgcXRleHQucmVwbGFjZShRQ2hhcigweGEwKSwgUUxhdGluMUNoYXIoJyAnKSk7
CisgICAgbWQtPnNldFRleHQocXRleHQpOworICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCkt
PnNldE1pbWVEYXRhKG1kLCBtX3NlbGVjdGlvbk1vZGUgPworICAgICAgICAgICAgUUNsaXBib2Fy
ZDo6U2VsZWN0aW9uIDogUUNsaXBib2FyZDo6Q2xpcGJvYXJkKTsKKyNlbmRpZgorfQorCiB2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwmIF91cmwsIGNvbnN0IFN0cmluZyYsIEZy
YW1lKikKIHsKICAgICBBU1NFUlQoIV91cmwuaXNFbXB0eSgpKTsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCShyZXZpc2lvbiA0ODU4NSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTEx
LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpjbGVhcigpCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2Vs
ZWN0aW9uKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBG
cmFtZSogZnJhbWUpCiB7CiAgICAgY2xlYXIoKTsKLSAgICAKKwogICAgIC8vIFB1dCBDRl9IVE1M
IGZvcm1hdCBvbiB0aGUgcGFzdGVib2FyZCAKICAgICBpZiAoOjpPcGVuQ2xpcGJvYXJkKG1fb3du
ZXIpKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtMTQ1LDYgKzE0NSwyMSBA
QCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzCiAgICAgfQogfQogCit2
b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAg
ICBjbGVhcigpOworCisgICAgLy8gUHV0IHBsYWluIHN0cmluZyBvbiB0aGUgcGFzdGVib2FyZC4g
Q0ZfVU5JQ09ERVRFWFQgY292ZXJzIENGX1RFWFQgYXMgd2VsbAorICAgIFN0cmluZyBzdHIgPSB0
ZXh0OworICAgIHJlcGxhY2VOZXdsaW5lc1dpdGhXaW5kb3dzU3R5bGVOZXdsaW5lcyhzdHIpOwor
ICAgIGlmICg6Ok9wZW5DbGlwYm9hcmQobV9vd25lcikpIHsKKyAgICAgICAgSEdMT0JBTCBjYkRh
dGEgPSBjcmVhdGVHbG9iYWxEYXRhKHN0cik7CisgICAgICAgIGlmICghOjpTZXRDbGlwYm9hcmRE
YXRhKENGX1VOSUNPREVURVhULCBjYkRhdGEpKQorICAgICAgICAgICAgOjpHbG9iYWxGcmVlKGNi
RGF0YSk7CisgICAgICAgIDo6Q2xvc2VDbGlwYm9hcmQoKTsKKyAgICB9Cit9CisKIHZvaWQgUGFz
dGVib2FyZDo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlU3Ry
LCBGcmFtZSogZnJhbWUpCiB7CiAgICAgQVNTRVJUKCF1cmwuaXNFbXB0eSgpKTsKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vd2luY2UvUGFzdGVib2FyZFdpbmNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3dpbmNlL1Bhc3RlYm9hcmRXaW5jZS5jcHAJKHJldmlzaW9uIDQ4NTg1
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9QYXN0ZWJvYXJkV2luY2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDIsNiArMTQyLDIxIEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rp
b24oUmFuZ2UqIHMKICAgICB9CiB9CiAKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHQo
Y29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIGNsZWFyKCk7CisKKyAgICAvLyBQdXQgcGxhaW4g
c3RyaW5nIG9uIHRoZSBwYXN0ZWJvYXJkLiBDRl9VTklDT0RFVEVYVCBjb3ZlcnMgQ0ZfVEVYVCBh
cyB3ZWxsCisgICAgU3RyaW5nIHN0ciA9IHRleHQ7CisgICAgcmVwbGFjZU5ld2xpbmVzV2l0aFdp
bmRvd3NTdHlsZU5ld2xpbmVzKHN0cik7CisgICAgaWYgKDo6T3BlbkNsaXBib2FyZChtX293bmVy
KSkgeworICAgICAgICBIR0xPQkFMIGNiRGF0YSA9IGNyZWF0ZUdsb2JhbERhdGEoc3RyKTsKKyAg
ICAgICAgaWYgKCE6OlNldENsaXBib2FyZERhdGEoQ0ZfVU5JQ09ERVRFWFQsIGNiRGF0YSkpCisg
ICAgICAgICAgICA6Okdsb2JhbEZyZWUoY2JEYXRhKTsKKyAgICAgICAgOjpDbG9zZUNsaXBib2Fy
ZCgpOworICAgIH0KK30KKwogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgdGl0bGVTdHIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQo
IXVybC5pc0VtcHR5KCkpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9QYXN0ZWJvYXJkV3gu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvUGFzdGVib2FyZFd4LmNwcAko
cmV2aXNpb24gNDg1ODUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDEzICs1MiwyMCBAQCBQYXN0ZWJvYXJkKiBQYXN0ZWJvYXJk
OjpnZW5lcmFsUGFzdGVib2FyCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFu
Z2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBmcmFt
ZSkKIHsKLSAgICBpZiAod3hUaGVDbGlwYm9hcmQtPk9wZW4oKSkKLSAgICB7CisgICAgaWYgKHd4
VGhlQ2xpcGJvYXJkLT5PcGVuKCkpIHsKICAgICAgICAgd3hUaGVDbGlwYm9hcmQtPlNldERhdGEo
IG5ldyB3eFRleHREYXRhT2JqZWN0KGZyYW1lLT5zZWxlY3RlZFRleHQoKSkgKTsKICAgICAgICAg
d3hUaGVDbGlwYm9hcmQtPkNsb3NlKCk7CiAgICAgfQogfQogCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBpZiAod3hUaGVDbGlwYm9h
cmQtPk9wZW4oKSkgeworICAgICAgICB3eFRoZUNsaXBib2FyZC0+U2V0RGF0YSggbmV3IHd4VGV4
dERhdGFPYmplY3QodGV4dCkgKTsKKyAgICAgICAgd3hUaGVDbGlwYm9hcmQtPkNsb3NlKCk7Cisg
ICAgfQorfQorCiBib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKQEAgLTkyLDggKzk5LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBQYXN0ZWJvYXJkOgogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlVVJMKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiwgRnJhbWUqKQogewotICAgIGlmICh3eFRoZUNsaXBib2FyZC0+
T3BlbigpKQotICAgIHsKKyAgICBpZiAod3hUaGVDbGlwYm9hcmQtPk9wZW4oKSkgewogICAgICAg
ICB3eFRoZUNsaXBib2FyZC0+U2V0RGF0YSggbmV3IHd4VGV4dERhdGFPYmplY3QoIHVybC5zdHJp
bmcoKSApICk7CiAgICAgICAgIHd4VGhlQ2xpcGJvYXJkLT5DbG9zZSgpOwogICAgIH0K
</data>
<flag name="review"
          id="21144"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>