<?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>25882</bug_id>
          
          <creation_ts>2009-05-19 20:28:14 -0700</creation_ts>
          <short_desc>[chromium] User paths exposed on file drop</short_desc>
          <delta_ts>2010-05-10 17:27:09 -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>Mac</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dcheng</cc>
    
    <cc>ian</cc>
    
    <cc>jianli</cc>
    
    <cc>mjs</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>sam</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>122021</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 20:28:14 -0700</bug_when>
    <thetext>User paths exposed on file drop

Sam seemed concerned on #webkit that this was a user privacy violation.  I&apos;m not sure that it is (what do paths really matter?), but we certainly seem to take care not to expose them in other places (like the File object or on input.value).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122022</commentid>
    <comment_count>1</comment_count>
      <attachid>30491</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 20:28:45 -0700</bug_when>
    <thetext>Created attachment 30491
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122045</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-05-19 21:24:23 -0700</bug_when>
    <thetext>It&apos;s a minor privacy issue.  We should fix it.  We should fix input.value also (as speced in HTML 5).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122247</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-20 21:18:50 -0700</bug_when>
    <thetext>Maciej suggests we fix this by changing the clipboard to only expose filenames for local files.  This means that drag and drop onto a text area inserts just the name.  Also that getData(&quot;URL&quot;) would return just the name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>124036</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-06-02 13:11:08 -0700</bug_when>
    <thetext>This is also tracked by http://b/1862075 in Google&apos;s tracker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>203320</commentid>
    <comment_count>5</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2010-03-23 21:19:15 -0700</bug_when>
    <thetext>There are 2 sides to this:

The current implementation of ChromiumDataObject creates file:// URLS from file names contained in the clipboard data. As discussed between Noel Gordon and Adam Barth, this should be removed (which is trivial).

However, this is not the code path that sets the clipboard URL/uri-list. Rather, (on Chromium Windows) the file-name is converted by ClipboardUtil::GetUrl() in chrome/src/app/clipboard/clipboard_util_win.cc (lines 216ff).

So I&apos;d guess we&apos;d also need to remove those code parts in a 2nd Chromium-side patch, but I first wanted to confirm whether that&apos;s really what we want to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216257</commentid>
    <comment_count>6</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2010-04-22 20:49:00 -0700</bug_when>
    <thetext>*** Bug 38019 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216281</commentid>
    <comment_count>7</comment_count>
      <attachid>54131</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-22 22:16:22 -0700</bug_when>
    <thetext>Created attachment 54131
Don&apos;t add file paths to text/uri-list when dragging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216297</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-04-22 23:57:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=54131) [details]
&gt; Don&apos;t add file paths to text/uri-list when dragging.

Is it possible to add a layout test for this?  There&apos;s eventSender.beginDragWithFiles which you might be able to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216303</commentid>
    <comment_count>9</comment_count>
      <attachid>54131</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-23 00:08:29 -0700</bug_when>
    <thetext>Comment on attachment 54131
Don&apos;t add file paths to text/uri-list when dragging.

Good point, I&apos;ll update the patch with a layout test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216325</commentid>
    <comment_count>10</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2010-04-23 00:58:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/7898443&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216328</commentid>
    <comment_count>11</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2010-04-23 01:08:23 -0700</bug_when>
    <thetext>(In reply to comment #9)

Minor style nit:

@@ -327,7 +314,6 @@ HashSet&lt;String&gt; ClipboardChromium::types() const
         return results;
 
     if (!m_dataObject-&gt;filenames.isEmpty()) {
-        results.add(&quot;text/uri-list&quot;);
         results.add(&quot;Files&quot;);
     }

You can also remove the brackets here since there&apos;s only 1 line left in the &apos;if&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216475</commentid>
    <comment_count>12</comment_count>
      <attachid>54175</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-23 10:54:28 -0700</bug_when>
    <thetext>Created attachment 54175
Patch with layout tests

I&apos;m ashamed of the way I &quot;fixed&quot; ClipboardMac. If anyone has suggestions on a better way to do it, I&apos;m all ears.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216542</commentid>
    <comment_count>13</comment_count>
      <attachid>54175</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-04-23 13:37:10 -0700</bug_when>
    <thetext>Comment on attachment 54175
Patch with layout tests

WebCore/platform/mac/ClipboardMac.h:89
 +      bool m_filenamesSetBySelf;
Might be better to name it as m_isFilenamesSetBySelf.

WebCore/platform/mac/ClipboardMac.mm:108
 +  static void addHTMLClipboardTypesForCocoaType(HashSet&lt;String&gt;&amp; resultTypes, const NSString *cocoaType, bool filenamesSetBySelf, NSPasteboard *pasteboard)
Since now we add only one type to resultTypes, how about changing the function to return a type string, instead of passing resultTypes? The caller could then add the type to the set.

WebCore/platform/mac/ClipboardMac.mm:152
 +      if (cocoaType == NSFilenamesPboardType)
You should say:
   if ( [cocoaType isEqualToString:NSFilenamesPboardType])</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216669</commentid>
    <comment_count>14</comment_count>
      <attachid>54209</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-23 19:01:06 -0700</bug_when>
    <thetext>Created attachment 54209
Addressing review comments.

I think this should address your review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216675</commentid>
    <comment_count>15</comment_count>
      <attachid>54209</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-23 20:09:47 -0700</bug_when>
    <thetext>Comment on attachment 54209
Addressing review comments.

WebCore/platform/mac/ClipboardMac.mm:123
 +              // Lame hack. Dragging files into the UA shouldn&apos;t expose file URIs, so we only add it
Why is this needed by Mac but not by chromium?

Who should we get to review this change?  I don&apos;t know enough here to be very useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>216702</commentid>
    <comment_count>16</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-23 23:14:15 -0700</bug_when>
    <thetext>&gt; Why is this needed by Mac but not by chromium?

The logic is handled at a different layer in the Chromium port. See http://src.chromium.org/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=chrome/browser/cocoa/web_drag_source.mm;h=70c144c452750df2715671a0280c89918df2af9d;hb=HEAD

I think Jian and/or Roland will be reviewing this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217315</commentid>
    <comment_count>17</comment_count>
      <attachid>54340</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-26 15:17:51 -0700</bug_when>
    <thetext>Created attachment 54340
Chromium patch

Per jianli&apos;s suggestion, splitting up the changes and moving the WebCore/platform/mac and layout test changes to a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217317</commentid>
    <comment_count>18</comment_count>
      <attachid>54340</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-04-26 15:21:31 -0700</bug_when>
    <thetext>Comment on attachment 54340
Chromium patch

WebCore/ChangeLog:5
 +          Don&apos;t make file paths available in text/uri-list when dragging files.
Could you please add &quot;[chromium]&quot; to the bug title and update the description here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217319</commentid>
    <comment_count>19</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-04-26 15:23:54 -0700</bug_when>
    <thetext>A new bug will be filed by dcheng to cover the similar issue on Mac platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217320</commentid>
    <comment_count>20</comment_count>
      <attachid>54341</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-26 15:25:19 -0700</bug_when>
    <thetext>Created attachment 54341
ChromiumClipboard patch

Added Chromium to ChangeLog entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217321</commentid>
    <comment_count>21</comment_count>
      <attachid>54341</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-04-26 15:27:25 -0700</bug_when>
    <thetext>Comment on attachment 54341
ChromiumClipboard patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217425</commentid>
    <comment_count>22</comment_count>
      <attachid>54341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-26 18:32:55 -0700</bug_when>
    <thetext>Comment on attachment 54341
ChromiumClipboard patch

Clearing flags on attachment: 54341

Committed r58276: &lt;http://trac.webkit.org/changeset/58276&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217426</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-26 18:33:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218015</commentid>
    <comment_count>24</comment_count>
      <attachid>54465</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-04-27 16:03:11 -0700</bug_when>
    <thetext>Created attachment 54465
Filter file:// URLs from event.dataTransfer.getData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223617</commentid>
    <comment_count>25</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2010-05-10 17:27:09 -0700</bug_when>
    <thetext>Discussion for fixing other ports (and addressing shortcomings in this patch) (might?) continue in https://bugs.webkit.org/show_bug.cgi?id=38876.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>30491</attachid>
            <date>2009-05-19 20:28:45 -0700</date>
            <delta_ts>2009-05-19 20:28:45 -0700</delta_ts>
            <desc>test case</desc>
            <filename>paths.html</filename>
            <type>text/html</type>
            <size>1386</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">PGRpdiBpZD0iZHJhZ190YXJnZXQiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7
IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZTsiPkRyb3AgYSBmaWxlIGhlcmU8L2Rpdj4KPHRh
YmxlIGlkPSJldmVudExvZyIgc3R5bGU9ImZvbnQ6IG1vbm9zcGFjZSAxMHB4Ij48L3RhYmxlPgoK
PHNjcmlwdD4KdmFyIGRyYWdUYXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhZ190
YXJnZXQiKTsKCnZhciBsYXN0RXZlbnRSb3c7CmZ1bmN0aW9uIGxvZyhzKSB7CiAgICAvLyBJbXBs
ZW1lbnQgcmVwZWF0aW5nIGV2ZW50IGNvdW50cyB0byBtYWtlIHRoZSBsb2cgbW9yZSByZWFkYWJs
ZS4KICAgIGlmIChsYXN0RXZlbnRSb3cgJiYgbGFzdEV2ZW50Um93LmZpcnN0Q2hpbGQuaW5uZXJI
VE1MID09IHMpIHsKICAgICAgICB2YXIgbGFzdEV2ZW50Q291bnQgPSBwYXJzZUludChsYXN0RXZl
bnRSb3cubGFzdENoaWxkLmlubmVySFRNTCwgMTApOwogICAgICAgIGxhc3RFdmVudFJvdy5sYXN0
Q2hpbGQuaW5uZXJIVE1MID0gKGxhc3RFdmVudENvdW50ID8gbGFzdEV2ZW50Q291bnQgKyAxIDog
MSkgKyAiIHRpbWVzIjsKICAgICAgICByZXR1cm47CiAgICB9CiAgICB2YXIgZXZlbnRSb3cgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgZXZlbnRSb3cuaW5uZXJIVE1MID0gIjx0
ZD48L3RkPjx0ZD48L3RkPiI7CiAgICBldmVudFJvdy5maXJzdENoaWxkLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKTsKICAgIGV2ZW50TG9nLmFwcGVuZENoaWxkKGV2ZW50
Um93KTsKICAgIGxhc3RFdmVudFJvdyA9IGV2ZW50Um93Owp9CgpkcmFnVGFyZ2V0Lm9uZHJhZ2Vu
dGVyID0gZnVuY3Rpb24oKSB7CiAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9ICJj
b3B5IjsKfQpkcmFnVGFyZ2V0Lm9uZHJhZ292ZXIgPSBmdW5jdGlvbigpIHsKICAgIGxvZygiZHJh
Z292ZXI6IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCdVUkwnKSA9ICIgKyBldmVudC5kYXRh
VHJhbnNmZXIuZ2V0RGF0YSgiVVJMIikpOwogICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8g
TmVlZGVkIHRvIG1ha2UgZHJhZyB3b3JrIQp9CmRyYWdUYXJnZXQub25kcm9wID0gZnVuY3Rpb24o
KSB7CiAgICBsb2coImRyb3A6IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCd0ZXh0L3VyaS1s
aXN0JykgPSAiICsgZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQvdXJpLWxpc3QiKSk7
CiAgICBsb2coImRyb3A6IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCdVUkwnKSA9ICIgKyBl
dmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgiVVJMIikpOwogICAgZXZlbnQucHJldmVudERlZmF1
bHQoKTsKfQo8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54131</attachid>
            <date>2010-04-22 22:16:22 -0700</date>
            <delta_ts>2010-04-23 10:54:28 -0700</delta_ts>
            <desc>Don&apos;t add file paths to text/uri-list when dragging.</desc>
            <filename>chromiumClipboard.patch</filename>
            <type>text/plain</type>
            <size>2344</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjcwMTY1Ny4uNjZmNzRiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMC0wNC0yMiAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEb24ndCBhZGQgcGF0aHMgdG8gdGV4dC91cmktbGlzdCB3aGVuIGRy
YWdnaW5nIGZpbGVzIGluIGV2ZW50LkRhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODgyCisKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmRDaHJvbWl1bTo6Z2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1
bTo6dHlwZXMpOgorCiAyMDEwLTA0LTIyICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCAyMWQ3ZWRmLi44NTQy
OWVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcApAQCAtMTczLDE0ICsxNzMsNiBAQCBTdHJpbmcgQ2xpcGJvYXJkQ2hyb21pdW06OmdldERh
dGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKSBjb25zdAogICAgICAgICAgICAg
ICAgIC8vIFVSSXMgaGF2ZSBhbHJlYWR5IGJlZW4gY2Fub25pY2FsaXplZCwgc28gY29weSBldmVy
eXRoaW5nIHZlcmJhdGltLgogICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKHVyaSk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAvLyBBbHNvIGNyZWF0ZSBmaWxlOi8vIFVSTHMgb3V0IG9m
IHRoZSBlbnRyaWVzIGluIHRoZSBmaWxlIGxpc3QuCi0gICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IG1fZGF0YU9iamVjdC0+ZmlsZW5hbWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
ICAgICAgICAgU3RyaW5nIGZpbGVVUkwgPSBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTCht
X2RhdGFPYmplY3QtPmZpbGVuYW1lc1tpXSk7Ci0gICAgICAgICAgICAgICAgQVNTRVJUKCFmaWxl
VVJMLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgICAgICAgICAgdGV4dC5hcHBlbmQodGV4dE1JTUVUeXBlTGluZVNlcGFyYXRvcik7
Ci0gICAgICAgICAgICAgICAgdGV4dC5hcHBlbmQoZmlsZVVSTCk7Ci0gICAgICAgICAgICB9CiAg
ICAgICAgICAgICBzdWNjZXNzID0gIXRleHQuaXNFbXB0eSgpOwogICAgICAgICAgICAgcmV0dXJu
IHRleHQ7CiAgICAgICAgIH0KQEAgLTE5MiwxMSArMTg0LDYgQEAgU3RyaW5nIENsaXBib2FyZENo
cm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykgY29uc3QK
ICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIG1fZGF0YU9i
amVjdC0+dXJsLnN0cmluZygpOwogICAgICAgICB9Ci0gICAgICAgIC8vIE90aGVyd2lzZSBjaGVj
ayBpZiB3ZSBoYXZlIGEgZmlsZSB0aGF0IHdlIGNvdWxkIGNvbnZlcnQgdG8gYSBmaWxlOi8vIFVS
TC4KLSAgICAgICAgaWYgKCFtX2RhdGFPYmplY3QtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIENocm9taXVtQnJp
ZGdlOjpmaWxlUGF0aFRvVVJMKG1fZGF0YU9iamVjdC0+ZmlsZW5hbWVzWzBdKTsKLSAgICAgICAg
fQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBjYXNlIENsaXBib2FyZERhdGFUeXBl
RG93bmxvYWRVUkw6CkBAIC0zMjcsNyArMzE0LDYgQEAgSGFzaFNldDxTdHJpbmc+IENsaXBib2Fy
ZENocm9taXVtOjp0eXBlcygpIGNvbnN0CiAgICAgICAgIHJldHVybiByZXN1bHRzOwogCiAgICAg
aWYgKCFtX2RhdGFPYmplY3QtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVzdWx0
cy5hZGQoInRleHQvdXJpLWxpc3QiKTsKICAgICAgICAgcmVzdWx0cy5hZGQoIkZpbGVzIik7CiAg
ICAgfQogCg==
</data>
<flag name="review"
          id="38027"
          type_id="1"
          status="-"
          setter="dcheng"
    />
    <flag name="commit-queue"
          id="38028"
          type_id="3"
          status="-"
          setter="dcheng"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54175</attachid>
            <date>2010-04-23 10:54:28 -0700</date>
            <delta_ts>2010-04-23 19:01:06 -0700</delta_ts>
            <desc>Patch with layout tests</desc>
            <filename>file-drag.patch</filename>
            <type>text/plain</type>
            <size>19124</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGU5MDM4Li43MzgyMWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MjMgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgbWFrZSBmaWxlIHBhdGhzIGF2
YWlsYWJsZSBpbiB0ZXh0L3VyaS1saXN0IHdoZW4gZHJhZ2dpbmcgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4MgorCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA0LTIyICBKYW1lcyBSb2Jp
bnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0
YXRpb25zIG9ubHkgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFj
Y2Vzcy1leHBlY3RlZC50eHQKaW5kZXggM2RhODgzYi4uNjU3YzkwYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNj
ZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ns
aXBib2FyZC9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC02LDI1ICs2LDMy
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBEcmFnZ2luZyBubyBmaWxlcyBzaG91bGQgcmV0
dXJuIGFuIGVtcHR5IGZpbGUgbGlzdCAoYXJiaXRyYXJ5IGltcGxlbWVudGF0aW9uIGRldGFpbCk6
CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBj
b250YWluIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29u
dGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3Ro
IGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBu
b3QgY29udGFpbiBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90
IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxl
bmd0aCBpcyAwCiBPbiBkcm9wOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBu
b3QgY29udGFpbiBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90
IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxl
bmd0aCBpcyAwCiBEcmFnIGRyb3AgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSBvbnRvIGFu
IGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBj
b250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNv
bnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0
aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlz
IDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMg
RmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRl
eHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAog
T24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgor
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1s
aXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDEKIFBBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVOYW1lIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVTaXplIGlzIDAKQEAgLTMyLDM3ICszOSw0
NyBAQCBGSVhNRTogRmlsZS5maWxlU2l6ZSBhbHdheXMgcmV0dXJucyAwIGZvciBmaWxlcyBkcm9w
cGVkIGJ5IGV2ZW50U2VuZGVyLmJlZ2luRHJhZwogRHJhZyBmaWxlcyBvdmVyIGFuIGVsZW1lbnQs
IGxlYXZlIHRoYXQgZWxlbWVudCBhbmQgcmVsZWFzZSB0aGUgbW91c2U6CiBPbiBkcmFnZW50ZXI6
CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5k
YXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBl
dmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdsZWF2ZToKIFBBU1Mg
ZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIERyYWcgZHJvcCBhIHJlYWwgZmlsZSBv
bnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMg
bm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVz
Lmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3Qg
Y29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVu
Z3RoIGlzIDAKIE9uIGRyb3A6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlu
cyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4g
dGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAx
CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXS5maWxlTmFtZSBpcyAiYXBwbGUuZ2lm
IgogRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF0uZmlsZVNpemUgc2hvdWxkIGJlIDE0
NzYuIFdhcyAwLgogRHJhZyBkcm9wIHR3byBmaWxlcyBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFn
ZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlz
dC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3Zl
cjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBl
dmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0Lgog
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgog
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50
LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNT
IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJh
bnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5k
YXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDIKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZp
bGVzWzBdLmZpbGVOYW1lIGlzICJhcHBsZS5naWYiCiBGQUlMIGV2ZW50LmRhdGFUcmFuc2Zlci5m
aWxlc1swXS5maWxlU2l6ZSBzaG91bGQgYmUgMTQ3Ni4gV2FzIDAuCkBAIC03MSwxNSArODgsMTkg
QEAgRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMV0uZmlsZVNpemUgc2hvdWxkIGJlIDI1
OTMuIFdhcyAwLgogRHJhZyBkcm9wIHR3byBmaWxlcyBpbiByZXZlcnNlIGFscGhhYmV0aWNhbCBv
cmRlciBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9l
cyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5v
dCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5s
ZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlz
IDIKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVOYW1lIGlzICJtb3ppbGxh
LmdpZiIKIEZBSUwgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVTaXplIHNob3VsZCBi
ZSAyNTkzLiBXYXMgMC4KQEAgLTg5LDQxICsxMTAsNTMgQEAgRklYTUU6IFdlIHNob3VsZCBub3Qg
YWxsb3cgZWxlbWVudCB0byBhY2NlcHQgZHJvcHMgaW5jbHVkaW5nIGRpcmVjdG9yaWVzIHVubGVz
cwogRHJhZyBkcm9wIGEgZGlyZWN0b3J5IG9udG8gYW4gZWxlbWVudDoKIE9uIGRyYWdlbnRlcjoK
IFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFT
UyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFT
UyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2
ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJhZ292ZXI6CiBQQVNTIGV2
ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQu
ZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcm9wOgogUEFTUyBldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBGQUlMIGV2ZW50LmRhdGFUcmFu
c2Zlci5maWxlcy5sZW5ndGggc2hvdWxkIGJlIDAuIFdhcyAxLgogRHJhZyBkcm9wIGEgZmlsZSBh
bmQgYSBkaXJlY3Rvcnkgb250byBhbiBlbGVtZW50OgogT24gZHJhZ2VudGVyOgogUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJhZ292ZXI6CiBQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNm
ZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyb3A6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMg
bm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIEZBSUwgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVz
Lmxlbmd0aCBzaG91bGQgYmUgMC4gV2FzIDIuCiBEcmFnIGRyb3AgYSBkaXJlY3RvcnkgYW5kIGEg
ZmlsZSBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9l
cyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5v
dCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5s
ZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIHNo
b3VsZCBiZSAwLiBXYXMgMi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0
LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMK
aW5kZXggNjE5N2I0NC4uMmFmM2ExYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBAIC0xNCw2ICsxNCw4IEBAIGRyYWdUYXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZnVuY3Rpb24oKSB7CiAgICAgZXZlbnQu
ZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7CiAgICAgdmFyIHNob3VsZENvbnRhaW5U
eXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNrRm9yRXZlbnRUcmFuc2Zl
clR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsKKyAgICAvLyB0ZXh0L3Vy
aS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxlLW9ubHkgZHJhZworICAg
IGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3VyaS1saXN0IiwgZmFsc2Up
OwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyIsIFtdKTsK
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwpAQCAtMjMsNiArMjUsOCBA
QCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24oKSB7CiAg
ICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7CiAgICAgdmFyIHNob3Vs
ZENvbnRhaW5UeXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNrRm9yRXZl
bnRUcmFuc2ZlclR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsKKyAgICAv
LyB0ZXh0L3VyaS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxlLW9ubHkg
ZHJhZworICAgIGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3VyaS1saXN0
IiwgZmFsc2UpOwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zlci5maWxl
cyIsIFtdKTsKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwpAQCAtMzEs
NiArMzUsOCBAQCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIGZ1bmN0
aW9uKCkgewogICAgIGRlYnVnKCJPbiBkcmFnbGVhdmU6IikKICAgICB2YXIgc2hvdWxkQ29udGFp
blR5cGUgPSAoZmlsZXNUb0RyYWcubGVuZ3RoID4gMCk7CiAgICAgY2hlY2tGb3JFdmVudFRyYW5z
ZmVyVHlwZShldmVudCwgIkZpbGVzIiwgc2hvdWxkQ29udGFpblR5cGUpOworICAgIC8vIHRleHQv
dXJpLWxpc3Qgc2hvdWxkIG5ldmVyIGJlIHBvcHVsYXRlZCBpbiBhIGZpbGUtb25seSBkcmFnCisg
ICAgY2hlY2tGb3JFdmVudFRyYW5zZmVyVHlwZShldmVudCwgInRleHQvdXJpLWxpc3QiLCBmYWxz
ZSk7CiAgICAgZmlsZUxpc3RTaG91bGRCZSgiZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIiwgW10p
OwogfSwgZmFsc2UpOwogCkBAIC0zOSw2ICs0NSw4IEBAIGRyYWdUYXJnZXQuYWRkRXZlbnRMaXN0
ZW5lcigiZHJvcCIsIGZ1bmN0aW9uKCkgewogICAgIGRlYnVnKCJPbiBkcm9wOiIpCiAgICAgdmFy
IHNob3VsZENvbnRhaW5UeXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNr
Rm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsK
KyAgICAvLyB0ZXh0L3VyaS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxl
LW9ubHkgZHJhZworICAgIGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3Vy
aS1saXN0IiwgZmFsc2UpOwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zl
ci5maWxlcyIsIGV4cGVjdGVkRmlsZXNPbkRyb3ApOwogICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CiB9LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGI3MDE2NTcuLjY1ZTYwMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDQt
MjMgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgbWFrZSBmaWxlIHBhdGhzIGF2
YWlsYWJsZSBpbiB0ZXh0L3VyaS1saXN0IHdoZW4gZHJhZ2dpbmcgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4MgorCisgICAgICAgIFRl
c3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6dHlwZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9DbGlwYm9hcmRNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkTWFjOjpDbGlwYm9hcmRNYWMpOgorICAg
ICAgICAoV2ViQ29yZTo6YWRkSFRNTENsaXBib2FyZFR5cGVzRm9yQ29jb2FUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZE1hYzo6Y2xlYXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OkNsaXBib2FyZE1hYzo6Y2xlYXJBbGxEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmFic29sdXRl
VVJMc0Zyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZE1hYzo6Z2V0
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRNYWM6OnNldERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2xpcGJvYXJkTWFjOjp0eXBlcyk6CisKIDIwMTAtMDQtMjIgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0u
Y3BwCmluZGV4IDIxZDdlZGYuLjc0YTkxZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0xNzMsMTQgKzE3Myw2IEBAIFN0cmluZyBD
bGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nl
c3MpIGNvbnN0CiAgICAgICAgICAgICAgICAgLy8gVVJJcyBoYXZlIGFscmVhZHkgYmVlbiBjYW5v
bmljYWxpemVkLCBzbyBjb3B5IGV2ZXJ5dGhpbmcgdmVyYmF0aW0uCiAgICAgICAgICAgICAgICAg
dGV4dC5hcHBlbmQodXJpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIEFsc28gY3Jl
YXRlIGZpbGU6Ly8gVVJMcyBvdXQgb2YgdGhlIGVudHJpZXMgaW4gdGhlIGZpbGUgbGlzdC4KLSAg
ICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBTdHJpbmcgZmlsZVVSTCA9IENocm9taXVt
QnJpZGdlOjpmaWxlUGF0aFRvVVJMKG1fZGF0YU9iamVjdC0+ZmlsZW5hbWVzW2ldKTsKLSAgICAg
ICAgICAgICAgICBBU1NFUlQoIWZpbGVVUkwuaXNFbXB0eSgpKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXRleHQuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICB0ZXh0LmFwcGVuZCh0ZXh0
TUlNRVR5cGVMaW5lU2VwYXJhdG9yKTsKLSAgICAgICAgICAgICAgICB0ZXh0LmFwcGVuZChmaWxl
VVJMKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN1Y2Nlc3MgPSAhdGV4dC5pc0VtcHR5
KCk7CiAgICAgICAgICAgICByZXR1cm4gdGV4dDsKICAgICAgICAgfQpAQCAtMTkyLDExICsxODQs
NiBAQCBTdHJpbmcgQ2xpcGJvYXJkQ2hyb21pdW06OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sJiBzdWNjZXNzKSBjb25zdAogICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7CiAgICAg
ICAgICAgICByZXR1cm4gbV9kYXRhT2JqZWN0LT51cmwuc3RyaW5nKCk7CiAgICAgICAgIH0KLSAg
ICAgICAgLy8gT3RoZXJ3aXNlIGNoZWNrIGlmIHdlIGhhdmUgYSBmaWxlIHRoYXQgd2UgY291bGQg
Y29udmVydCB0byBhIGZpbGU6Ly8gVVJMLgotICAgICAgICBpZiAoIW1fZGF0YU9iamVjdC0+Zmls
ZW5hbWVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgc3VjY2VzcyA9IHRydWU7Ci0gICAgICAg
ICAgICByZXR1cm4gQ2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwobV9kYXRhT2JqZWN0LT5m
aWxlbmFtZXNbMF0pOwotICAgICAgICB9CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAogICAg
IGNhc2UgQ2xpcGJvYXJkRGF0YVR5cGVEb3dubG9hZFVSTDoKQEAgLTMyNiwxMCArMzEzLDggQEAg
SGFzaFNldDxTdHJpbmc+IENsaXBib2FyZENocm9taXVtOjp0eXBlcygpIGNvbnN0CiAgICAgaWYg
KCFtX2RhdGFPYmplY3QpCiAgICAgICAgIHJldHVybiByZXN1bHRzOwogCi0gICAgaWYgKCFtX2Rh
dGFPYmplY3QtPmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVzdWx0cy5hZGQoInRl
eHQvdXJpLWxpc3QiKTsKKyAgICBpZiAoIW1fZGF0YU9iamVjdC0+ZmlsZW5hbWVzLmlzRW1wdHko
KSkKICAgICAgICAgcmVzdWx0cy5hZGQoIkZpbGVzIik7Ci0gICAgfQogCiAgICAgaWYgKG1fZGF0
YU9iamVjdC0+dXJsLmlzVmFsaWQoKSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YU9iamVjdC0+
dXJpTGlzdC5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xp
cGJvYXJkTWFjLmggYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMuaAppbmRleCBh
ZGRlMDljLi4wOTE1NDg0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9h
cmRNYWMuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRNYWMuaApAQCAtODYs
NiArODYsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU1Bhc3RlYm9hcmQ+IG1fcGFzdGVi
b2FyZDsKICAgICBpbnQgbV9jaGFuZ2VDb3VudDsKICAgICBGcmFtZSogbV9mcmFtZTsgLy8gdXNl
ZCBvbiB0aGUgc291cmNlIHNpZGUgdG8gZ2VuZXJhdGUgZHJhZ2dpbmcgaW1hZ2VzCisgICAgYm9v
bCBtX2ZpbGVuYW1lc1NldEJ5U2VsZjsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2Fy
ZE1hYy5tbQppbmRleCBkZGZhMGQ1Li5jNDJlZWQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9DbGlwYm9hcmRNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ2xpcGJv
YXJkTWFjLm1tCkBAIC01MCw2ICs1MCw3IEBAIENsaXBib2FyZE1hYzo6Q2xpcGJvYXJkTWFjKGJv
b2wgZm9yRHJhZ2dpbmcsIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgQ2xpcGJvYXJkCiAgICAg
OiBDbGlwYm9hcmQocG9saWN5LCBmb3JEcmFnZ2luZykKICAgICAsIG1fcGFzdGVib2FyZChwYXN0
ZWJvYXJkKQogICAgICwgbV9mcmFtZShmcmFtZSkKKyAgICAsIG1fZmlsZW5hbWVzU2V0QnlTZWxm
KGZhbHNlKQogewogICAgIG1fY2hhbmdlQ291bnQgPSBbbV9wYXN0ZWJvYXJkLmdldCgpIGNoYW5n
ZUNvdW50XTsKIH0KQEAgLTEwNCw3ICsxMDUsNyBAQCBzdGF0aWMgU3RyaW5nIHV0aVR5cGVGcm9t
Q29jb2FUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotc3Rh
dGljIHZvaWQgYWRkSFRNTENsaXBib2FyZFR5cGVzRm9yQ29jb2FUeXBlKEhhc2hTZXQ8U3RyaW5n
PiYgcmVzdWx0VHlwZXMsIE5TU3RyaW5nICpjb2NvYVR5cGUsIE5TUGFzdGVib2FyZCAqcGFzdGVi
b2FyZCkKK3N0YXRpYyB2b2lkIGFkZEhUTUxDbGlwYm9hcmRUeXBlc0ZvckNvY29hVHlwZShIYXNo
U2V0PFN0cmluZz4mIHJlc3VsdFR5cGVzLCBjb25zdCBOU1N0cmluZyAqY29jb2FUeXBlLCBib29s
IGZpbGVuYW1lc1NldEJ5U2VsZiwgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkKQogewogICAgIC8v
IFVUSSBtYXkgbm90IGRvIHRoZXNlIHJpZ2h0LCBzbyBtYWtlIHN1cmUgd2UgZ2V0IHRoZSByaWdo
dCwgcHJlZGljdGFibGUgcmVzdWx0CiAgICAgaWYgKFtjb2NvYVR5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TU3RyaW5nUGJvYXJkVHlwZV0pIHsKQEAgLTEyMCwxMiArMTIxLDEzIEBAIHN0YXRpYyB2b2lk
IGFkZEhUTUxDbGlwYm9hcmRUeXBlc0ZvckNvY29hVHlwZShIYXNoU2V0PFN0cmluZz4mIHJlc3Vs
dFR5cGVzLCBOU1N0CiAgICAgICAgIC8vIE5vdGUgdGhhdCB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0
IHRoZSBmaWxlIGxpc3QgY291bnQgY291bGQgaGF2ZSBjaGFuZ2VkIHNpbmNlIHdlIGdyYWJiZWQg
dGhlIHR5cGVzIGFycmF5LgogICAgICAgICAvLyBIb3dldmVyLCB0aGlzIGlzIG5vdCByZWFsbHkg
YW4gaXNzdWUgZm9yIHVzIGRvaW5nIGEgc2FuaXR5IGNoZWNrIGhlcmUuCiAgICAgICAgIE5TQXJy
YXkgKmZpbGVMaXN0ID0gW3Bhc3RlYm9hcmQgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1l
c1Bib2FyZFR5cGVdOwotICAgICAgICBpZiAoW2ZpbGVMaXN0IGNvdW50XSkgewotICAgICAgICAg
ICAgLy8gSXQgaXMgdW5rbm93biBpZiBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUgYWx3YXlzIGltcGxp
ZXMgTlNVUkxQYm9hcmRUeXBlIGluIENvY29hLAotICAgICAgICAgICAgLy8gYnV0IE5TRmlsZW5h
bWVzUGJvYXJkVHlwZSBzaG91bGQgaW1wbHkgYm90aCAndGV4dC91cmktbGlzdCcgYW5kICdGaWxl
cycKLSAgICAgICAgICAgIHJlc3VsdFR5cGVzLmFkZCgidGV4dC91cmktbGlzdCIpOwotICAgICAg
ICAgICAgcmVzdWx0VHlwZXMuYWRkKCJGaWxlcyIpOwotICAgICAgICB9CisgICAgICAgIGlmIChb
ZmlsZUxpc3QgY291bnRdKQorICAgICAgICAgICAgLy8gTGFtZSBoYWNrLiBEcmFnZ2luZyBmaWxl
cyBpbnRvIHRoZSBVQSBzaG91bGRuJ3QgZXhwb3NlIGZpbGUgVVJJcywgc28gd2Ugb25seSBhZGQg
aXQKKyAgICAgICAgICAgIC8vIHRvIHRoZSB0eXBlcyBpZiB0aGUgcGFnZSBhZGRlZCBpdCBpdHNl
bGYuCisgICAgICAgICAgICBpZiAoZmlsZW5hbWVzU2V0QnlTZWxmKQorICAgICAgICAgICAgICAg
IHJlc3VsdFR5cGVzLmFkZCgidGV4dC91cmktbGlzdCIpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHJlc3VsdFR5cGVzLmFkZCgiRmlsZXMiKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBTdHJpbmcgdXRpVHlwZSA9IHV0aVR5cGVGcm9tQ29jb2FUeXBlKGNvY29hVHlw
ZSk7CkBAIC0xNDcsNiArMTQ5LDggQEAgdm9pZCBDbGlwYm9hcmRNYWM6OmNsZWFyRGF0YShjb25z
dCBTdHJpbmcmIHR5cGUpCiAgICAgTlNTdHJpbmcgKmNvY29hVHlwZSA9IGNvY29hVHlwZUZyb21I
VE1MQ2xpcGJvYXJkVHlwZSh0eXBlKTsKICAgICBpZiAoY29jb2FUeXBlKQogICAgICAgICBbbV9w
YXN0ZWJvYXJkLmdldCgpIHNldFN0cmluZzpAIiIgZm9yVHlwZTpjb2NvYVR5cGVdOworICAgIGlm
IChjb2NvYVR5cGUgPT0gTlNGaWxlbmFtZXNQYm9hcmRUeXBlKQorICAgICAgICBtX2ZpbGVuYW1l
c1NldEJ5U2VsZiA9IGZhbHNlOwogfQogCiB2b2lkIENsaXBib2FyZE1hYzo6Y2xlYXJBbGxEYXRh
KCkKQEAgLTE1Nyw2ICsxNjEsNyBAQCB2b2lkIENsaXBib2FyZE1hYzo6Y2xlYXJBbGxEYXRhKCkK
ICAgICAvLyBub3RlIE5TUGFzdGVib2FyZCBlbmZvcmNlcyBjaGFuZ2VDb3VudCBpdHNlbGYgb24g
d3JpdGluZyAtIGNhbid0IHdyaXRlIGlmIG5vdCB0aGUgb3duZXIKIAogICAgIFttX3Bhc3RlYm9h
cmQuZ2V0KCkgZGVjbGFyZVR5cGVzOltOU0FycmF5IGFycmF5XSBvd25lcjpuaWxdOworICAgIG1f
ZmlsZW5hbWVzU2V0QnlTZWxmID0gZmFsc2U7CiB9CiAKIHN0YXRpYyBOU0FycmF5ICphYnNvbHV0
ZVVSTHNGcm9tUGFzdGVib2FyZEZpbGVuYW1lcyhOU1Bhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJv
b2wgb25seUZpcnN0VVJMID0gZmFsc2UpCkBAIC0xODMsMTQgKzE4OCwxNCBAQCBzdGF0aWMgTlNB
cnJheSAqYWJzb2x1dGVVUkxzRnJvbVBhc3RlYm9hcmRGaWxlbmFtZXMoTlNQYXN0ZWJvYXJkKiBw
YXN0ZWJvYXJkLCBibwogICAgIHJldHVybiB1cmxzOwogfQogCi1zdGF0aWMgTlNBcnJheSAqYWJz
b2x1dGVVUkxzRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIG9u
bHlGaXJzdFVSTCA9IGZhbHNlKQorc3RhdGljIE5TQXJyYXkgKmFic29sdXRlVVJMc0Zyb21QYXN0
ZWJvYXJkKE5TUGFzdGVib2FyZCogcGFzdGVib2FyZCwgYm9vbCBmaWxlbmFtZXNTZXRCeVNlbGYs
IGJvb2wgb25seUZpcnN0VVJMID0gZmFsc2UpCiB7CiAgICAgLy8gTk9URTogV2UgbXVzdCBhbHdh
eXMgY2hlY2sgW2F2YWlsYWJsZVR5cGVzIGNvbnRhaW5zT2JqZWN0Ol0gYmVmb3JlIGFjY2Vzc2lu
ZyBwYXN0ZWJvYXJkIGRhdGEKICAgICAvLyBvciBDb3JlRm91bmRhdGlvbiB3aWxsIHByaW50ZiB3
aGVuIHRoZXJlIGlzIG5vdCBkYXRhIG9mIHRoZSBjb3JyZXNwb25kaW5nIHR5cGUuCiAgICAgTlNB
cnJheSAqYXZhaWxhYmxlVHlwZXMgPSBbcGFzdGVib2FyZCB0eXBlc107CiAKLSAgICAvLyBUcnkg
TlNGaWxlbmFtZXNQYm9hcmRUeXBlIGJlY2F1c2UgaXQgY29udGFpbnMgYSBsaXN0Ci0gICAgaWYg
KFthdmFpbGFibGVUeXBlcyBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKSB7
CisgICAgLy8gVHJ5IE5TRmlsZW5hbWVzUGJvYXJkVHlwZSBpZiB3ZSBzZXQgaXQgYmVjYXVzZSBp
dCBjb250YWlucyBhIGxpc3QKKyAgICBpZiAoZmlsZW5hbWVzU2V0QnlTZWxmICYmIFthdmFpbGFi
bGVUeXBlcyBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKSB7CiAgICAgICAg
IGlmIChOU0FycmF5KiBhYnNvbHV0ZVVSTHMgPSBhYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZEZp
bGVuYW1lcyhwYXN0ZWJvYXJkLCBvbmx5Rmlyc3RVUkwpKQogICAgICAgICAgICAgcmV0dXJuIGFi
c29sdXRlVVJMczsKICAgICB9CkBAIC0yMTgsNyArMjIzLDcgQEAgU3RyaW5nIENsaXBib2FyZE1h
Yzo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpIGNvbnN0CiAgICAg
aWYgKFtjb2NvYVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJMUGJvYXJkVHlwZV0pIHsKICAgICAg
ICAgLy8gIlVSTCIgYW5kICJ0ZXh0L3VybC1saXN0IiBib3RoIG1hcCB0byBOU1VSTFBib2FyZFR5
cGUgaW4gY29jb2FUeXBlRnJvbUhUTUxDbGlwYm9hcmRUeXBlKCksICJVUkwiIG9ubHkgd2FudHMg
dGhlIGZpcnN0IFVSTAogICAgICAgICBib29sIG9ubHlGaXJzdFVSTCA9ICh0eXBlID09ICJVUkwi
KTsKLSAgICAgICAgTlNBcnJheSAqYWJzb2x1dGVVUkxzID0gYWJzb2x1dGVVUkxzRnJvbVBhc3Rl
Ym9hcmQobV9wYXN0ZWJvYXJkLmdldCgpLCBvbmx5Rmlyc3RVUkwpOworICAgICAgICBOU0FycmF5
ICphYnNvbHV0ZVVSTHMgPSBhYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZChtX3Bhc3RlYm9hcmQu
Z2V0KCksIG1fZmlsZW5hbWVzU2V0QnlTZWxmLCBvbmx5Rmlyc3RVUkwpOwogICAgICAgICBjb2Nv
YVZhbHVlID0gW2Fic29sdXRlVVJMcyBjb21wb25lbnRzSm9pbmVkQnlTdHJpbmc6QCJcbiJdOwog
ICAgIH0gZWxzZSBpZiAoW2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNTdHJpbmdQYm9hcmRU
eXBlXSkgewogICAgICAgICBjb2NvYVZhbHVlID0gW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgc3RyaW5n
Rm9yVHlwZTpjb2NvYVR5cGVdIHByZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmdd
OwpAQCAtMjUzLDYgKzI1OCw3IEBAIGJvb2wgQ2xpcGJvYXJkTWFjOjpzZXREYXRhKGNvbnN0IFN0
cmluZyAmdHlwZSwgY29uc3QgU3RyaW5nICZkYXRhKQogICAgICAgICAgICAgW21fcGFzdGVib2Fy
ZC5nZXQoKSBhZGRUeXBlczpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6TlNGaWxlbmFtZXNQYm9h
cmRUeXBlXSBvd25lcjpuaWxdOwogICAgICAgICAgICAgTlNBcnJheSAqZmlsZUxpc3QgPSBbTlNB
cnJheSBhcnJheVdpdGhPYmplY3Q6W3VybCBwYXRoXV07CiAgICAgICAgICAgICBbbV9wYXN0ZWJv
YXJkLmdldCgpIHNldFByb3BlcnR5TGlzdDpmaWxlTGlzdCBmb3JUeXBlOk5TRmlsZW5hbWVzUGJv
YXJkVHlwZV07CisgICAgICAgICAgICBtX2ZpbGVuYW1lc1NldEJ5U2VsZiA9IHRydWU7CiAgICAg
ICAgIH0KIAogICAgICAgICBbdXJsIHJlbGVhc2VdOwpAQCAtMjg5LDcgKzI5NSw3IEBAIEhhc2hT
ZXQ8U3RyaW5nPiBDbGlwYm9hcmRNYWM6OnR5cGVzKCkgY29uc3QKICAgICAgICAgaWYgKFtwYlR5
cGUgaXNFcXVhbFRvU3RyaW5nOkAiTmVYVCBwbGFpbiBhc2NpaSBwYXN0ZWJvYXJkIHR5cGUiXSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8vIHNraXAgdGhpcyBhbmNpZW50IHR5cGUgdGhhdCBn
ZXRzIGF1dG8tc3VwcGxpZWQgYnkgc29tZSBzeXN0ZW0gY29udmVyc2lvbgogCi0gICAgICAgIGFk
ZEhUTUxDbGlwYm9hcmRUeXBlc0ZvckNvY29hVHlwZShyZXN1bHQsIHBiVHlwZSwgbV9wYXN0ZWJv
YXJkLmdldCgpKTsKKyAgICAgICAgYWRkSFRNTENsaXBib2FyZFR5cGVzRm9yQ29jb2FUeXBlKHJl
c3VsdCwgcGJUeXBlLCBtX2ZpbGVuYW1lc1NldEJ5U2VsZiwgbV9wYXN0ZWJvYXJkLmdldCgpKTsK
ICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0Owo=
</data>
<flag name="review"
          id="38077"
          type_id="1"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54209</attachid>
            <date>2010-04-23 19:01:06 -0700</date>
            <delta_ts>2010-04-26 15:17:51 -0700</delta_ts>
            <desc>Addressing review comments.</desc>
            <filename>file-drag2.patch</filename>
            <type>text/plain</type>
            <size>19766</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGU5MDM4Li43MzgyMWFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDQt
MjMgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgbWFrZSBmaWxlIHBhdGhzIGF2
YWlsYWJsZSBpbiB0ZXh0L3VyaS1saXN0IHdoZW4gZHJhZ2dpbmcgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4MgorCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzOgorCiAyMDEwLTA0LTIyICBKYW1lcyBSb2Jp
bnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZXhwZWN0
YXRpb25zIG9ubHkgY2hhbmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFj
Y2Vzcy1leHBlY3RlZC50eHQKaW5kZXggM2RhODgzYi4uNjU3YzkwYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvY2xpcGJvYXJkLWZpbGUtYWNj
ZXNzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ns
aXBib2FyZC9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC02LDI1ICs2LDMy
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiBEcmFnZ2luZyBubyBmaWxlcyBzaG91bGQgcmV0
dXJuIGFuIGVtcHR5IGZpbGUgbGlzdCAoYXJiaXRyYXJ5IGltcGxlbWVudGF0aW9uIGRldGFpbCk6
CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBj
b250YWluIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29u
dGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3Ro
IGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBu
b3QgY29udGFpbiBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90
IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxl
bmd0aCBpcyAwCiBPbiBkcm9wOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBu
b3QgY29udGFpbiBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90
IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxl
bmd0aCBpcyAwCiBEcmFnIGRyb3AgYSBzaW5nbGUgKG5vbi1leGlzdGFudCkgZmlsZSBvbnRvIGFu
IGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBj
b250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNv
bnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0
aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlz
IDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMg
RmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRl
eHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAog
T24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgor
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1s
aXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDEKIFBBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVOYW1lIGlzICJEUlRGYWtlRmlsZSIKIFBBU1Mg
ZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVTaXplIGlzIDAKQEAgLTMyLDM3ICszOSw0
NyBAQCBGSVhNRTogRmlsZS5maWxlU2l6ZSBhbHdheXMgcmV0dXJucyAwIGZvciBmaWxlcyBkcm9w
cGVkIGJ5IGV2ZW50U2VuZGVyLmJlZ2luRHJhZwogRHJhZyBmaWxlcyBvdmVyIGFuIGVsZW1lbnQs
IGxlYXZlIHRoYXQgZWxlbWVudCBhbmQgcmVsZWFzZSB0aGUgbW91c2U6CiBPbiBkcmFnZW50ZXI6
CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5k
YXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBl
dmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdsZWF2ZToKIFBBU1Mg
ZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIERyYWcgZHJvcCBhIHJlYWwgZmlsZSBv
bnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMg
bm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVz
Lmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3Qg
Y29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVu
Z3RoIGlzIDAKIE9uIGRyb3A6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlu
cyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4g
dGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAx
CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlc1swXS5maWxlTmFtZSBpcyAiYXBwbGUuZ2lm
IgogRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMF0uZmlsZVNpemUgc2hvdWxkIGJlIDE0
NzYuIFdhcyAwLgogRHJhZyBkcm9wIHR3byBmaWxlcyBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFn
ZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BB
U1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlz
dC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3Zl
cjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBl
dmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0Lgog
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgog
UEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50
LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNT
IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZl
bnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJh
bnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5k
YXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDIKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZp
bGVzWzBdLmZpbGVOYW1lIGlzICJhcHBsZS5naWYiCiBGQUlMIGV2ZW50LmRhdGFUcmFuc2Zlci5m
aWxlc1swXS5maWxlU2l6ZSBzaG91bGQgYmUgMTQ3Ni4gV2FzIDAuCkBAIC03MSwxNSArODgsMTkg
QEAgRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNbMV0uZmlsZVNpemUgc2hvdWxkIGJlIDI1
OTMuIFdhcyAwLgogRHJhZyBkcm9wIHR3byBmaWxlcyBpbiByZXZlcnNlIGFscGhhYmV0aWNhbCBv
cmRlciBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9l
cyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5v
dCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5s
ZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlz
IDIKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVOYW1lIGlzICJtb3ppbGxh
LmdpZiIKIEZBSUwgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzWzBdLmZpbGVTaXplIHNob3VsZCBi
ZSAyNTkzLiBXYXMgMC4KQEAgLTg5LDQxICsxMTAsNTMgQEAgRklYTUU6IFdlIHNob3VsZCBub3Qg
YWxsb3cgZWxlbWVudCB0byBhY2NlcHQgZHJvcHMgaW5jbHVkaW5nIGRpcmVjdG9yaWVzIHVubGVz
cwogRHJhZyBkcm9wIGEgZGlyZWN0b3J5IG9udG8gYW4gZWxlbWVudDoKIE9uIGRyYWdlbnRlcjoK
IFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFT
UyBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFT
UyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2
ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJhZ292ZXI6CiBQQVNTIGV2
ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQu
ZGF0YVRyYW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcm9wOgogUEFTUyBldmVudC5kYXRh
VHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBGQUlMIGV2ZW50LmRhdGFUcmFu
c2Zlci5maWxlcy5sZW5ndGggc2hvdWxkIGJlIDAuIFdhcyAxLgogRHJhZyBkcm9wIGEgZmlsZSBh
bmQgYSBkaXJlY3Rvcnkgb250byBhbiBlbGVtZW50OgogT24gZHJhZ2VudGVyOgogUEFTUyBldmVu
dC5kYXRhVHJhbnNmZXIudHlwZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBkb2VzIG5vdCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci5maWxlcy5sZW5ndGggaXMgMAogT24gZHJhZ292ZXI6CiBQQVNTIGV2ZW50LmRh
dGFUcmFuc2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRy
YW5zZmVyLnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgZG9lcyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNm
ZXIuZmlsZXMubGVuZ3RoIGlzIDAKIE9uIGRyb3A6CiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50
eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGRvZXMg
bm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIEZBSUwgZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVz
Lmxlbmd0aCBzaG91bGQgYmUgMC4gV2FzIDIuCiBEcmFnIGRyb3AgYSBkaXJlY3RvcnkgYW5kIGEg
ZmlsZSBvbnRvIGFuIGVsZW1lbnQ6CiBPbiBkcmFnZW50ZXI6CiBQQVNTIGV2ZW50LmRhdGFUcmFu
c2Zlci50eXBlcyBjb250YWlucyBGaWxlcy4KK1BBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVz
IGRvZXMgbm90IGNvbnRhaW4gdGV4dC91cmktbGlzdC4KIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LmZpbGVzLmxlbmd0aCBpcyAwCiBPbiBkcmFnb3ZlcjoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVy
LnR5cGVzIGNvbnRhaW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9l
cyBub3QgY29udGFpbiB0ZXh0L3VyaS1saXN0LgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIuZmls
ZXMubGVuZ3RoIGlzIDAKIE9uIGRyYWdvdmVyOgogUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlw
ZXMgY29udGFpbnMgRmlsZXMuCitQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcyBkb2VzIG5v
dCBjb250YWluIHRleHQvdXJpLWxpc3QuCiBQQVNTIGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcy5s
ZW5ndGggaXMgMAogT24gZHJvcDoKIFBBU1MgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzIGNvbnRh
aW5zIEZpbGVzLgorUEFTUyBldmVudC5kYXRhVHJhbnNmZXIudHlwZXMgZG9lcyBub3QgY29udGFp
biB0ZXh0L3VyaS1saXN0LgogRkFJTCBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXMubGVuZ3RoIHNo
b3VsZCBiZSAwLiBXYXMgMi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0
LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY2xpcGJvYXJkL3NjcmlwdC10ZXN0cy9jbGlwYm9hcmQtZmlsZS1hY2Nlc3MuanMK
aW5kZXggNjE5N2I0NC4uMmFmM2ExYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jbGlwYm9hcmQvc2NyaXB0LXRlc3RzL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NsaXBib2FyZC9zY3JpcHQt
dGVzdHMvY2xpcGJvYXJkLWZpbGUtYWNjZXNzLmpzCkBAIC0xNCw2ICsxNCw4IEBAIGRyYWdUYXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2VudGVyIiwgZnVuY3Rpb24oKSB7CiAgICAgZXZlbnQu
ZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7CiAgICAgdmFyIHNob3VsZENvbnRhaW5U
eXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNrRm9yRXZlbnRUcmFuc2Zl
clR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsKKyAgICAvLyB0ZXh0L3Vy
aS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxlLW9ubHkgZHJhZworICAg
IGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3VyaS1saXN0IiwgZmFsc2Up
OwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyIsIFtdKTsK
ICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwpAQCAtMjMsNiArMjUsOCBA
QCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIiwgZnVuY3Rpb24oKSB7CiAg
ICAgZXZlbnQuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAiY29weSI7CiAgICAgdmFyIHNob3Vs
ZENvbnRhaW5UeXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNrRm9yRXZl
bnRUcmFuc2ZlclR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsKKyAgICAv
LyB0ZXh0L3VyaS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxlLW9ubHkg
ZHJhZworICAgIGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3VyaS1saXN0
IiwgZmFsc2UpOwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zlci5maWxl
cyIsIFtdKTsKICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogfSwgZmFsc2UpOwpAQCAtMzEs
NiArMzUsOCBAQCBkcmFnVGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsIGZ1bmN0
aW9uKCkgewogICAgIGRlYnVnKCJPbiBkcmFnbGVhdmU6IikKICAgICB2YXIgc2hvdWxkQ29udGFp
blR5cGUgPSAoZmlsZXNUb0RyYWcubGVuZ3RoID4gMCk7CiAgICAgY2hlY2tGb3JFdmVudFRyYW5z
ZmVyVHlwZShldmVudCwgIkZpbGVzIiwgc2hvdWxkQ29udGFpblR5cGUpOworICAgIC8vIHRleHQv
dXJpLWxpc3Qgc2hvdWxkIG5ldmVyIGJlIHBvcHVsYXRlZCBpbiBhIGZpbGUtb25seSBkcmFnCisg
ICAgY2hlY2tGb3JFdmVudFRyYW5zZmVyVHlwZShldmVudCwgInRleHQvdXJpLWxpc3QiLCBmYWxz
ZSk7CiAgICAgZmlsZUxpc3RTaG91bGRCZSgiZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIiwgW10p
OwogfSwgZmFsc2UpOwogCkBAIC0zOSw2ICs0NSw4IEBAIGRyYWdUYXJnZXQuYWRkRXZlbnRMaXN0
ZW5lcigiZHJvcCIsIGZ1bmN0aW9uKCkgewogICAgIGRlYnVnKCJPbiBkcm9wOiIpCiAgICAgdmFy
IHNob3VsZENvbnRhaW5UeXBlID0gKGZpbGVzVG9EcmFnLmxlbmd0aCA+IDApOwogICAgIGNoZWNr
Rm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJGaWxlcyIsIHNob3VsZENvbnRhaW5UeXBlKTsK
KyAgICAvLyB0ZXh0L3VyaS1saXN0IHNob3VsZCBuZXZlciBiZSBwb3B1bGF0ZWQgaW4gYSBmaWxl
LW9ubHkgZHJhZworICAgIGNoZWNrRm9yRXZlbnRUcmFuc2ZlclR5cGUoZXZlbnQsICJ0ZXh0L3Vy
aS1saXN0IiwgZmFsc2UpOwogICAgIGZpbGVMaXN0U2hvdWxkQmUoImV2ZW50LmRhdGFUcmFuc2Zl
ci5maWxlcyIsIGV4cGVjdGVkRmlsZXNPbkRyb3ApOwogICAgIGV2ZW50LnByZXZlbnREZWZhdWx0
KCk7CiB9LCBmYWxzZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGI3MDE2NTcuLjQxYTZjZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDQt
MjMgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRG9uJ3QgbWFrZSBmaWxlIHBhdGhzIGF2
YWlsYWJsZSBpbiB0ZXh0L3VyaS1saXN0IHdoZW4gZHJhZ2dpbmcgZmlsZXMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTg4MgorCisgICAgICAgIFRl
c3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vzcy5o
dG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YSk6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6dHlwZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9DbGlwYm9hcmRNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ2xpcGJvYXJkTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkTWFjOjpDbGlwYm9hcmRNYWMpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTENsaXBib2FyZFR5cGVGb3JDb2NvYVR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkTWFjOjpjbGVhckRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q2xp
cGJvYXJkTWFjOjpjbGVhckFsbERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6YWJzb2x1dGVVUkxz
RnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkTWFjOjpnZXREYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZE1hYzo6c2V0RGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGlwYm9hcmRNYWM6OnR5cGVzKToKKwogMjAxMC0wNC0yMiAgQWxleGV5IFByb3Nr
dXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21p
dW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAK
aW5kZXggMjFkN2VkZi4uNzRhOTFmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTE3MywxNCArMTczLDYgQEAgU3RyaW5nIENsaXBi
b2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2Vzcykg
Y29uc3QKICAgICAgICAgICAgICAgICAvLyBVUklzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbm9uaWNh
bGl6ZWQsIHNvIGNvcHkgZXZlcnl0aGluZyB2ZXJiYXRpbS4KICAgICAgICAgICAgICAgICB0ZXh0
LmFwcGVuZCh1cmkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gQWxzbyBjcmVhdGUg
ZmlsZTovLyBVUkxzIG91dCBvZiB0aGUgZW50cmllcyBpbiB0aGUgZmlsZSBsaXN0LgotICAgICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RhdGFPYmplY3QtPmZpbGVuYW1lcy5zaXpl
KCk7ICsraSkgewotICAgICAgICAgICAgICAgIFN0cmluZyBmaWxlVVJMID0gQ2hyb21pdW1Ccmlk
Z2U6OmZpbGVQYXRoVG9VUkwobV9kYXRhT2JqZWN0LT5maWxlbmFtZXNbaV0pOwotICAgICAgICAg
ICAgICAgIEFTU0VSVCghZmlsZVVSTC5pc0VtcHR5KCkpOwotICAgICAgICAgICAgICAgIGlmICgh
dGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKHRleHRNSU1F
VHlwZUxpbmVTZXBhcmF0b3IpOwotICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKGZpbGVVUkwp
OwotICAgICAgICAgICAgfQogICAgICAgICAgICAgc3VjY2VzcyA9ICF0ZXh0LmlzRW1wdHkoKTsK
ICAgICAgICAgICAgIHJldHVybiB0ZXh0OwogICAgICAgICB9CkBAIC0xOTIsMTEgKzE4NCw2IEBA
IFN0cmluZyBDbGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJv
b2wmIHN1Y2Nlc3MpIGNvbnN0CiAgICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAg
ICAgIHJldHVybiBtX2RhdGFPYmplY3QtPnVybC5zdHJpbmcoKTsKICAgICAgICAgfQotICAgICAg
ICAvLyBPdGhlcndpc2UgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgdGhhdCB3ZSBjb3VsZCBjb252
ZXJ0IHRvIGEgZmlsZTovLyBVUkwuCi0gICAgICAgIGlmICghbV9kYXRhT2JqZWN0LT5maWxlbmFt
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgICAg
IHJldHVybiBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChtX2RhdGFPYmplY3QtPmZpbGVu
YW1lc1swXSk7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgY2Fz
ZSBDbGlwYm9hcmREYXRhVHlwZURvd25sb2FkVVJMOgpAQCAtMzI2LDEwICszMTMsOCBAQCBIYXNo
U2V0PFN0cmluZz4gQ2xpcGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKICAgICBpZiAoIW1f
ZGF0YU9iamVjdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAKLSAgICBpZiAoIW1fZGF0YU9i
amVjdC0+ZmlsZW5hbWVzLmlzRW1wdHkoKSkgewotICAgICAgICByZXN1bHRzLmFkZCgidGV4dC91
cmktbGlzdCIpOworICAgIGlmICghbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMuaXNFbXB0eSgpKQog
ICAgICAgICByZXN1bHRzLmFkZCgiRmlsZXMiKTsKLSAgICB9CiAKICAgICBpZiAobV9kYXRhT2Jq
ZWN0LT51cmwuaXNWYWxpZCgpKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhT2JqZWN0LT51cmlM
aXN0LmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9h
cmRNYWMuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCmluZGV4IGFkZGUw
OWMuLmJkMGE2OGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1h
Yy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5oCkBAIC04Niw2ICs4
Niw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TUGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJk
OwogICAgIGludCBtX2NoYW5nZUNvdW50OwogICAgIEZyYW1lKiBtX2ZyYW1lOyAvLyB1c2VkIG9u
IHRoZSBzb3VyY2Ugc2lkZSB0byBnZW5lcmF0ZSBkcmFnZ2luZyBpbWFnZXMKKyAgICBib29sIG1f
aXNGaWxlbmFtZXNTZXRCeVNlbGY7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9DbGlwYm9hcmRNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRN
YWMubW0KaW5kZXggZGRmYTBkNS4uYWQ0ZjE2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2Fy
ZE1hYy5tbQpAQCAtNTAsNiArNTAsNyBAQCBDbGlwYm9hcmRNYWM6OkNsaXBib2FyZE1hYyhib29s
IGZvckRyYWdnaW5nLCBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIENsaXBib2FyZAogICAgIDog
Q2xpcGJvYXJkKHBvbGljeSwgZm9yRHJhZ2dpbmcpCiAgICAgLCBtX3Bhc3RlYm9hcmQocGFzdGVi
b2FyZCkKICAgICAsIG1fZnJhbWUoZnJhbWUpCisgICAgLCBtX2lzRmlsZW5hbWVzU2V0QnlTZWxm
KGZhbHNlKQogewogICAgIG1fY2hhbmdlQ291bnQgPSBbbV9wYXN0ZWJvYXJkLmdldCgpIGNoYW5n
ZUNvdW50XTsKIH0KQEAgLTEwNCwzNyArMTA1LDM1IEBAIHN0YXRpYyBTdHJpbmcgdXRpVHlwZUZy
b21Db2NvYVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1z
dGF0aWMgdm9pZCBhZGRIVE1MQ2xpcGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUoSGFzaFNldDxTdHJp
bmc+JiByZXN1bHRUeXBlcywgTlNTdHJpbmcgKmNvY29hVHlwZSwgTlNQYXN0ZWJvYXJkICpwYXN0
ZWJvYXJkKQorc3RhdGljIFN0cmluZyBIVE1MQ2xpcGJvYXJkVHlwZUZvckNvY29hVHlwZShjb25z
dCBOU1N0cmluZyAqY29jb2FUeXBlLCBib29sIGlzRmlsZW5hbWVzU2V0QnlTZWxmLCBOU1Bhc3Rl
Ym9hcmQgKnBhc3RlYm9hcmQpCiB7CiAgICAgLy8gVVRJIG1heSBub3QgZG8gdGhlc2UgcmlnaHQs
IHNvIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIHJpZ2h0LCBwcmVkaWN0YWJsZSByZXN1bHQKICAgICBp
ZiAoW2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNTdHJpbmdQYm9hcmRUeXBlXSkgewotICAg
ICAgICByZXN1bHRUeXBlcy5hZGQoInRleHQvcGxhaW4iKTsKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gInRleHQvcGxhaW4iOwogICAgIH0KICAgICBpZiAoW2NvY29hVHlwZSBpc0Vx
dWFsVG9TdHJpbmc6TlNVUkxQYm9hcmRUeXBlXSkgewotICAgICAgICByZXN1bHRUeXBlcy5hZGQo
InRleHQvdXJpLWxpc3QiKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gInRleHQv
dXJpLWxpc3QiOwogICAgIH0KICAgICBpZiAoW2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNG
aWxlbmFtZXNQYm9hcmRUeXBlXSkgewogICAgICAgICAvLyBJZiBmaWxlIGxpc3QgaXMgZW1wdHks
IGFkZCBub3RoaW5nLgogICAgICAgICAvLyBOb3RlIHRoYXQgdGhlcmUgaXMgYSBjaGFuY2UgdGhh
dCB0aGUgZmlsZSBsaXN0IGNvdW50IGNvdWxkIGhhdmUgY2hhbmdlZCBzaW5jZSB3ZSBncmFiYmVk
IHRoZSB0eXBlcyBhcnJheS4KICAgICAgICAgLy8gSG93ZXZlciwgdGhpcyBpcyBub3QgcmVhbGx5
IGFuIGlzc3VlIGZvciB1cyBkb2luZyBhIHNhbml0eSBjaGVjayBoZXJlLgogICAgICAgICBOU0Fy
cmF5ICpmaWxlTGlzdCA9IFtwYXN0ZWJvYXJkIHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFt
ZXNQYm9hcmRUeXBlXTsKLSAgICAgICAgaWYgKFtmaWxlTGlzdCBjb3VudF0pIHsKLSAgICAgICAg
ICAgIC8vIEl0IGlzIHVua25vd24gaWYgTlNGaWxlbmFtZXNQYm9hcmRUeXBlIGFsd2F5cyBpbXBs
aWVzIE5TVVJMUGJvYXJkVHlwZSBpbiBDb2NvYSwKLSAgICAgICAgICAgIC8vIGJ1dCBOU0ZpbGVu
YW1lc1Bib2FyZFR5cGUgc2hvdWxkIGltcGx5IGJvdGggJ3RleHQvdXJpLWxpc3QnIGFuZCAnRmls
ZXMnCi0gICAgICAgICAgICByZXN1bHRUeXBlcy5hZGQoInRleHQvdXJpLWxpc3QiKTsKLSAgICAg
ICAgICAgIHJlc3VsdFR5cGVzLmFkZCgiRmlsZXMiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1
cm47CisgICAgICAgIGlmIChbZmlsZUxpc3QgY291bnRdKQorICAgICAgICAgICAgLy8gTGFtZSBo
YWNrLiBEcmFnZ2luZyBmaWxlcyBpbnRvIHRoZSBVQSBzaG91bGRuJ3QgZXhwb3NlIGZpbGUgVVJJ
cywgc28gd2Ugb25seSBhZGQgaXQKKyAgICAgICAgICAgIC8vIHRvIHRoZSB0eXBlcyBpZiB0aGUg
cGFnZSBhZGRlZCBpdCBpdHNlbGYuCisgICAgICAgICAgICBpZiAoaXNGaWxlbmFtZXNTZXRCeVNl
bGYpCisgICAgICAgICAgICAgICAgcmV0dXJuICJ0ZXh0L3VyaS1saXN0IjsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZpbGVzIjsKKyAgICAgICAgcmV0dXJuICIi
OwogICAgIH0KICAgICBTdHJpbmcgdXRpVHlwZSA9IHV0aVR5cGVGcm9tQ29jb2FUeXBlKGNvY29h
VHlwZSk7CiAgICAgaWYgKCF1dGlUeXBlLmlzRW1wdHkoKSkgewotICAgICAgICByZXN1bHRUeXBl
cy5hZGQodXRpVHlwZSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHV0aVR5cGU7
CiAgICAgfQogICAgIC8vIE5vIG1hcHBpbmcsIGp1c3QgcGFzcyB0aGUgd2hvbGUgc3RyaW5nIHRo
b3VnaAotICAgIHJlc3VsdFR5cGVzLmFkZChjb2NvYVR5cGUpOworICAgIHJldHVybiBjb2NvYVR5
cGU7CiB9CiAKIHZvaWQgQ2xpcGJvYXJkTWFjOjpjbGVhckRhdGEoY29uc3QgU3RyaW5nJiB0eXBl
KQpAQCAtMTQ3LDYgKzE0Niw4IEBAIHZvaWQgQ2xpcGJvYXJkTWFjOjpjbGVhckRhdGEoY29uc3Qg
U3RyaW5nJiB0eXBlKQogICAgIE5TU3RyaW5nICpjb2NvYVR5cGUgPSBjb2NvYVR5cGVGcm9tSFRN
TENsaXBib2FyZFR5cGUodHlwZSk7CiAgICAgaWYgKGNvY29hVHlwZSkKICAgICAgICAgW21fcGFz
dGVib2FyZC5nZXQoKSBzZXRTdHJpbmc6QCIiIGZvclR5cGU6Y29jb2FUeXBlXTsKKyAgICBpZiAo
W2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSkKKyAgICAg
ICAgbV9pc0ZpbGVuYW1lc1NldEJ5U2VsZiA9IGZhbHNlOwogfQogCiB2b2lkIENsaXBib2FyZE1h
Yzo6Y2xlYXJBbGxEYXRhKCkKQEAgLTE1Nyw2ICsxNTgsNyBAQCB2b2lkIENsaXBib2FyZE1hYzo6
Y2xlYXJBbGxEYXRhKCkKICAgICAvLyBub3RlIE5TUGFzdGVib2FyZCBlbmZvcmNlcyBjaGFuZ2VD
b3VudCBpdHNlbGYgb24gd3JpdGluZyAtIGNhbid0IHdyaXRlIGlmIG5vdCB0aGUgb3duZXIKIAog
ICAgIFttX3Bhc3RlYm9hcmQuZ2V0KCkgZGVjbGFyZVR5cGVzOltOU0FycmF5IGFycmF5XSBvd25l
cjpuaWxdOworICAgIG1faXNGaWxlbmFtZXNTZXRCeVNlbGYgPSBmYWxzZTsKIH0KIAogc3RhdGlj
IE5TQXJyYXkgKmFic29sdXRlVVJMc0Zyb21QYXN0ZWJvYXJkRmlsZW5hbWVzKE5TUGFzdGVib2Fy
ZCogcGFzdGVib2FyZCwgYm9vbCBvbmx5Rmlyc3RVUkwgPSBmYWxzZSkKQEAgLTE4MywxNCArMTg1
LDE0IEBAIHN0YXRpYyBOU0FycmF5ICphYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZEZpbGVuYW1l
cyhOU1Bhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvCiAgICAgcmV0dXJuIHVybHM7CiB9CiAKLXN0
YXRpYyBOU0FycmF5ICphYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQqIHBh
c3RlYm9hcmQsIGJvb2wgb25seUZpcnN0VVJMID0gZmFsc2UpCitzdGF0aWMgTlNBcnJheSAqYWJz
b2x1dGVVUkxzRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGlz
RmlsZW5hbWVzU2V0QnlTZWxmLCBib29sIG9ubHlGaXJzdFVSTCA9IGZhbHNlKQogewogICAgIC8v
IE5PVEU6IFdlIG11c3QgYWx3YXlzIGNoZWNrIFthdmFpbGFibGVUeXBlcyBjb250YWluc09iamVj
dDpdIGJlZm9yZSBhY2Nlc3NpbmcgcGFzdGVib2FyZCBkYXRhCiAgICAgLy8gb3IgQ29yZUZvdW5k
YXRpb24gd2lsbCBwcmludGYgd2hlbiB0aGVyZSBpcyBub3QgZGF0YSBvZiB0aGUgY29ycmVzcG9u
ZGluZyB0eXBlLgogICAgIE5TQXJyYXkgKmF2YWlsYWJsZVR5cGVzID0gW3Bhc3RlYm9hcmQgdHlw
ZXNdOwogCi0gICAgLy8gVHJ5IE5TRmlsZW5hbWVzUGJvYXJkVHlwZSBiZWNhdXNlIGl0IGNvbnRh
aW5zIGEgbGlzdAotICAgIGlmIChbYXZhaWxhYmxlVHlwZXMgY29udGFpbnNPYmplY3Q6TlNGaWxl
bmFtZXNQYm9hcmRUeXBlXSkgeworICAgIC8vIFRyeSBOU0ZpbGVuYW1lc1Bib2FyZFR5cGUgaWYg
d2Ugc2V0IGl0IGJlY2F1c2UgaXQgY29udGFpbnMgYSBsaXN0CisgICAgaWYgKGlzRmlsZW5hbWVz
U2V0QnlTZWxmICYmIFthdmFpbGFibGVUeXBlcyBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bi
b2FyZFR5cGVdKSB7CiAgICAgICAgIGlmIChOU0FycmF5KiBhYnNvbHV0ZVVSTHMgPSBhYnNvbHV0
ZVVSTHNGcm9tUGFzdGVib2FyZEZpbGVuYW1lcyhwYXN0ZWJvYXJkLCBvbmx5Rmlyc3RVUkwpKQog
ICAgICAgICAgICAgcmV0dXJuIGFic29sdXRlVVJMczsKICAgICB9CkBAIC0yMTgsNyArMjIwLDcg
QEAgU3RyaW5nIENsaXBib2FyZE1hYzo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wm
IHN1Y2Nlc3MpIGNvbnN0CiAgICAgaWYgKFtjb2NvYVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJM
UGJvYXJkVHlwZV0pIHsKICAgICAgICAgLy8gIlVSTCIgYW5kICJ0ZXh0L3VybC1saXN0IiBib3Ro
IG1hcCB0byBOU1VSTFBib2FyZFR5cGUgaW4gY29jb2FUeXBlRnJvbUhUTUxDbGlwYm9hcmRUeXBl
KCksICJVUkwiIG9ubHkgd2FudHMgdGhlIGZpcnN0IFVSTAogICAgICAgICBib29sIG9ubHlGaXJz
dFVSTCA9ICh0eXBlID09ICJVUkwiKTsKLSAgICAgICAgTlNBcnJheSAqYWJzb2x1dGVVUkxzID0g
YWJzb2x1dGVVUkxzRnJvbVBhc3RlYm9hcmQobV9wYXN0ZWJvYXJkLmdldCgpLCBvbmx5Rmlyc3RV
UkwpOworICAgICAgICBOU0FycmF5ICphYnNvbHV0ZVVSTHMgPSBhYnNvbHV0ZVVSTHNGcm9tUGFz
dGVib2FyZChtX3Bhc3RlYm9hcmQuZ2V0KCksIG1faXNGaWxlbmFtZXNTZXRCeVNlbGYsIG9ubHlG
aXJzdFVSTCk7CiAgICAgICAgIGNvY29hVmFsdWUgPSBbYWJzb2x1dGVVUkxzIGNvbXBvbmVudHNK
b2luZWRCeVN0cmluZzpAIlxuIl07CiAgICAgfSBlbHNlIGlmIChbY29jb2FUeXBlIGlzRXF1YWxU
b1N0cmluZzpOU1N0cmluZ1Bib2FyZFR5cGVdKSB7CiAgICAgICAgIGNvY29hVmFsdWUgPSBbW21f
cGFzdGVib2FyZC5nZXQoKSBzdHJpbmdGb3JUeXBlOmNvY29hVHlwZV0gcHJlY29tcG9zZWRTdHJp
bmdXaXRoQ2Fub25pY2FsTWFwcGluZ107CkBAIC0yNTMsNiArMjU1LDcgQEAgYm9vbCBDbGlwYm9h
cmRNYWM6OnNldERhdGEoY29uc3QgU3RyaW5nICZ0eXBlLCBjb25zdCBTdHJpbmcgJmRhdGEpCiAg
ICAgICAgICAgICBbbV9wYXN0ZWJvYXJkLmdldCgpIGFkZFR5cGVzOltOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdIG93bmVyOm5pbF07CiAgICAgICAgICAgICBO
U0FycmF5ICpmaWxlTGlzdCA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdDpbdXJsIHBhdGhdXTsK
ICAgICAgICAgICAgIFttX3Bhc3RlYm9hcmQuZ2V0KCkgc2V0UHJvcGVydHlMaXN0OmZpbGVMaXN0
IGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKKyAgICAgICAgICAgIG1faXNGaWxlbmFt
ZXNTZXRCeVNlbGYgPSB0cnVlOwogICAgICAgICB9CiAKICAgICAgICAgW3VybCByZWxlYXNlXTsK
QEAgLTI4OSw3ICsyOTIsOSBAQCBIYXNoU2V0PFN0cmluZz4gQ2xpcGJvYXJkTWFjOjp0eXBlcygp
IGNvbnN0CiAgICAgICAgIGlmIChbcGJUeXBlIGlzRXF1YWxUb1N0cmluZzpAIk5lWFQgcGxhaW4g
YXNjaWkgcGFzdGVib2FyZCB0eXBlIl0pCiAgICAgICAgICAgICBjb250aW51ZTsgICAvLyBza2lw
IHRoaXMgYW5jaWVudCB0eXBlIHRoYXQgZ2V0cyBhdXRvLXN1cHBsaWVkIGJ5IHNvbWUgc3lzdGVt
IGNvbnZlcnNpb24KIAotICAgICAgICBhZGRIVE1MQ2xpcGJvYXJkVHlwZXNGb3JDb2NvYVR5cGUo
cmVzdWx0LCBwYlR5cGUsIG1fcGFzdGVib2FyZC5nZXQoKSk7CisgICAgICAgIFN0cmluZyBIVE1M
Q2xpcGJvYXJkVHlwZSA9IEhUTUxDbGlwYm9hcmRUeXBlRm9yQ29jb2FUeXBlKHBiVHlwZSwgbV9p
c0ZpbGVuYW1lc1NldEJ5U2VsZiwgbV9wYXN0ZWJvYXJkLmdldCgpKTsKKyAgICAgICAgaWYgKCFI
VE1MQ2xpcGJvYXJkVHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXN1bHQuYWRkKEhUTUxD
bGlwYm9hcmRUeXBlKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54340</attachid>
            <date>2010-04-26 15:17:51 -0700</date>
            <delta_ts>2010-04-26 15:25:19 -0700</delta_ts>
            <desc>Chromium patch</desc>
            <filename>chromium.patch</filename>
            <type>text/plain</type>
            <size>2578</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTJkNzBiNy4uNmQ5MWYyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNC0yNiAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEb24ndCBtYWtlIGZpbGUgcGF0aHMgYXZhaWxhYmxlIGluIHRleHQv
dXJpLWxpc3Qgd2hlbiBkcmFnZ2luZyBmaWxlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODgyCisKKyAgICAgICAgVGVzdCB3aWxsIGJlIGNoZWNr
ZWQgaW4gd2l0aCBXZWJDb3JlL3BsYXRmb3JtL21hYyBmaXguCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
Ym9hcmRDaHJvbWl1bTo6Z2V0RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJv
bWl1bTo6dHlwZXMpOgorCiAyMDEwLTA0LTI2ICBZb25nanVuIFpoYW5nICA8eW9uZ2p1bl96aGFu
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0u
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5k
ZXggMjFkN2VkZi4uNzRhOTFmOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTE3MywxNCArMTczLDYgQEAgU3RyaW5nIENsaXBib2Fy
ZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykgY29u
c3QKICAgICAgICAgICAgICAgICAvLyBVUklzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbm9uaWNhbGl6
ZWQsIHNvIGNvcHkgZXZlcnl0aGluZyB2ZXJiYXRpbS4KICAgICAgICAgICAgICAgICB0ZXh0LmFw
cGVuZCh1cmkpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgLy8gQWxzbyBjcmVhdGUgZmls
ZTovLyBVUkxzIG91dCBvZiB0aGUgZW50cmllcyBpbiB0aGUgZmlsZSBsaXN0LgotICAgICAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2RhdGFPYmplY3QtPmZpbGVuYW1lcy5zaXplKCk7
ICsraSkgewotICAgICAgICAgICAgICAgIFN0cmluZyBmaWxlVVJMID0gQ2hyb21pdW1CcmlkZ2U6
OmZpbGVQYXRoVG9VUkwobV9kYXRhT2JqZWN0LT5maWxlbmFtZXNbaV0pOwotICAgICAgICAgICAg
ICAgIEFTU0VSVCghZmlsZVVSTC5pc0VtcHR5KCkpOwotICAgICAgICAgICAgICAgIGlmICghdGV4
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKHRleHRNSU1FVHlw
ZUxpbmVTZXBhcmF0b3IpOwotICAgICAgICAgICAgICAgIHRleHQuYXBwZW5kKGZpbGVVUkwpOwot
ICAgICAgICAgICAgfQogICAgICAgICAgICAgc3VjY2VzcyA9ICF0ZXh0LmlzRW1wdHkoKTsKICAg
ICAgICAgICAgIHJldHVybiB0ZXh0OwogICAgICAgICB9CkBAIC0xOTIsMTEgKzE4NCw2IEBAIFN0
cmluZyBDbGlwYm9hcmRDaHJvbWl1bTo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wm
IHN1Y2Nlc3MpIGNvbnN0CiAgICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKICAgICAgICAgICAg
IHJldHVybiBtX2RhdGFPYmplY3QtPnVybC5zdHJpbmcoKTsKICAgICAgICAgfQotICAgICAgICAv
LyBPdGhlcndpc2UgY2hlY2sgaWYgd2UgaGF2ZSBhIGZpbGUgdGhhdCB3ZSBjb3VsZCBjb252ZXJ0
IHRvIGEgZmlsZTovLyBVUkwuCi0gICAgICAgIGlmICghbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChtX2RhdGFPYmplY3QtPmZpbGVuYW1l
c1swXSk7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCiAgICAgY2FzZSBD
bGlwYm9hcmREYXRhVHlwZURvd25sb2FkVVJMOgpAQCAtMzI2LDEwICszMTMsOCBAQCBIYXNoU2V0
PFN0cmluZz4gQ2xpcGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKICAgICBpZiAoIW1fZGF0
YU9iamVjdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdHM7CiAKLSAgICBpZiAoIW1fZGF0YU9iamVj
dC0+ZmlsZW5hbWVzLmlzRW1wdHkoKSkgewotICAgICAgICByZXN1bHRzLmFkZCgidGV4dC91cmkt
bGlzdCIpOworICAgIGlmICghbV9kYXRhT2JqZWN0LT5maWxlbmFtZXMuaXNFbXB0eSgpKQogICAg
ICAgICByZXN1bHRzLmFkZCgiRmlsZXMiKTsKLSAgICB9CiAKICAgICBpZiAobV9kYXRhT2JqZWN0
LT51cmwuaXNWYWxpZCgpKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYXRhT2JqZWN0LT51cmlMaXN0
LmlzRW1wdHkoKSk7Cg==
</data>
<flag name="review"
          id="38279"
          type_id="1"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54341</attachid>
            <date>2010-04-26 15:25:19 -0700</date>
            <delta_ts>2010-04-26 18:32:54 -0700</delta_ts>
            <desc>ChromiumClipboard patch</desc>
            <filename>chromium2.patch</filename>
            <type>text/plain</type>
            <size>2589</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YTJkNzBiNy4uMmFkOGY4MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNC0yNiAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIERvbid0IG1ha2UgZmlsZSBwYXRocyBhdmFpbGFi
bGUgaW4gdGV4dC91cmktbGlzdCB3aGVuIGRyYWdnaW5nIGZpbGVzLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4ODIKKworICAgICAgICBUZXN0IHdp
bGwgYmUgY2hlY2tlZCBpbiB3aXRoIFdlYkNvcmUvcGxhdGZvcm0vbWFjIGZpeC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNsaXBib2FyZENocm9taXVtOjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBib2FyZENocm9taXVtOjp0eXBlcyk6CisKIDIwMTAtMDQtMjYgIFlvbmdqdW4gWmhhbmcgIDx5
b25nanVuX3poYW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJv
c2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcAppbmRleCAyMWQ3ZWRmLi43NGE5MWY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtMTczLDE0ICsxNzMsNiBAQCBTdHJp
bmcgQ2xpcGJvYXJkQ2hyb21pdW06OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBz
dWNjZXNzKSBjb25zdAogICAgICAgICAgICAgICAgIC8vIFVSSXMgaGF2ZSBhbHJlYWR5IGJlZW4g
Y2Fub25pY2FsaXplZCwgc28gY29weSBldmVyeXRoaW5nIHZlcmJhdGltLgogICAgICAgICAgICAg
ICAgIHRleHQuYXBwZW5kKHVyaSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAvLyBBbHNv
IGNyZWF0ZSBmaWxlOi8vIFVSTHMgb3V0IG9mIHRoZSBlbnRyaWVzIGluIHRoZSBmaWxlIGxpc3Qu
Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZGF0YU9iamVjdC0+ZmlsZW5h
bWVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIGZpbGVVUkwgPSBDaHJv
bWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChtX2RhdGFPYmplY3QtPmZpbGVuYW1lc1tpXSk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKCFmaWxlVVJMLmlzRW1wdHkoKSk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgdGV4dC5hcHBlbmQo
dGV4dE1JTUVUeXBlTGluZVNlcGFyYXRvcik7Ci0gICAgICAgICAgICAgICAgdGV4dC5hcHBlbmQo
ZmlsZVVSTCk7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICBzdWNjZXNzID0gIXRleHQuaXNF
bXB0eSgpOwogICAgICAgICAgICAgcmV0dXJuIHRleHQ7CiAgICAgICAgIH0KQEAgLTE5MiwxMSAr
MTg0LDYgQEAgU3RyaW5nIENsaXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCYgc3VjY2VzcykgY29uc3QKICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwog
ICAgICAgICAgICAgcmV0dXJuIG1fZGF0YU9iamVjdC0+dXJsLnN0cmluZygpOwogICAgICAgICB9
Ci0gICAgICAgIC8vIE90aGVyd2lzZSBjaGVjayBpZiB3ZSBoYXZlIGEgZmlsZSB0aGF0IHdlIGNv
dWxkIGNvbnZlcnQgdG8gYSBmaWxlOi8vIFVSTC4KLSAgICAgICAgaWYgKCFtX2RhdGFPYmplY3Qt
PmZpbGVuYW1lcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwotICAg
ICAgICAgICAgcmV0dXJuIENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKG1fZGF0YU9iamVj
dC0+ZmlsZW5hbWVzWzBdKTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAK
ICAgICBjYXNlIENsaXBib2FyZERhdGFUeXBlRG93bmxvYWRVUkw6CkBAIC0zMjYsMTAgKzMxMyw4
IEBAIEhhc2hTZXQ8U3RyaW5nPiBDbGlwYm9hcmRDaHJvbWl1bTo6dHlwZXMoKSBjb25zdAogICAg
IGlmICghbV9kYXRhT2JqZWN0KQogICAgICAgICByZXR1cm4gcmVzdWx0czsKIAotICAgIGlmICgh
bV9kYXRhT2JqZWN0LT5maWxlbmFtZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlc3VsdHMuYWRk
KCJ0ZXh0L3VyaS1saXN0Iik7CisgICAgaWYgKCFtX2RhdGFPYmplY3QtPmZpbGVuYW1lcy5pc0Vt
cHR5KCkpCiAgICAgICAgIHJlc3VsdHMuYWRkKCJGaWxlcyIpOwotICAgIH0KIAogICAgIGlmICht
X2RhdGFPYmplY3QtPnVybC5pc1ZhbGlkKCkpIHsKICAgICAgICAgQVNTRVJUKCFtX2RhdGFPYmpl
Y3QtPnVyaUxpc3QuaXNFbXB0eSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54465</attachid>
            <date>2010-04-27 16:03:11 -0700</date>
            <delta_ts>2010-04-27 16:05:29 -0700</delta_ts>
            <desc>Filter file:// URLs from event.dataTransfer.getData</desc>
            <filename>file-filter.patch</filename>
            <type>text/plain</type>
            <size>3396</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWFjNDUxNC4uMWE4MmZmMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNC0yNyAgRGFuaWVsIENoZW5n
ICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIEZpbHRlciBvdXQgVVJMcyB3aXRoIGZpbGU6Ly8g
c2NoZW1lIGZyb20gdGV4dC91cmktbGlzdCB3aGVuIGRyYWdnaW5nLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU4ODIKKworICAgICAgICBVbmZvcnR1
bmF0ZWx5LCB0aGUgc2ltcGxlIGZpeCBvZiBub3QgcG9wdWxhdGluZyB0aGUgZHJhZyBkYXRhIHdp
dGggZmlsZSBVUkxzIGRvZXNuJ3Qgd29yaworICAgICAgICBzaW5jZSB0aGUgZGVmYXVsdCBkcm9w
IGhhbmRsaW5nIHVzZXMgdGhlIGRyYWcgZGF0YSBVUkwgdG8gbmF2aWdhdGUgdG8gZHJvcHBlZCBm
aWxlcy9VUkxzLgorICAgICAgICBGb3Igbm93LCB3ZSBoYWNrIGFyb3VuZCB0aGUgcHJvYmxlbSBp
biB0aGUgQ2hyb21pdW0gcGxhdGZvcm0sIGJ1dCB0aGUgcHJvcGVyIGxvbmcgdGVybQorICAgICAg
ICBzb2x1dGlvbiBpcyB0byBjaGFuZ2UgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnIHRvIGNo
ZWNrIGRyYWdEYXRhOjphc0ZpbGVuYW1lcygpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsaXBib2FyZENocm9taXVtOjp0eXBlcyk6CisKIDIwMTAtMDQtMjYgIERhbmllbCBDaGVu
ZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0u
Y3BwCmluZGV4IDc0YTkxZjkuLmJlZWNkOTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0xNjcsNiArMTY3LDggQEAgU3RyaW5nIENs
aXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2Vz
cykgY29uc3QKICAgICAgICAgICAgIFN0cmluZyB0ZXh0OwogICAgICAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2RhdGFPYmplY3QtPnVyaUxpc3Quc2l6ZSgpOyArK2kpIHsKICAgICAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIHVyaSA9IG1fZGF0YU9iamVjdC0+dXJpTGlzdFtpXTsK
KyAgICAgICAgICAgICAgICBpZiAocHJvdG9jb2xJcyh1cmksICJmaWxlIikpCisgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIEFTU0VSVCghdXJpLmlzRW1wdHko
KSk7CiAgICAgICAgICAgICAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAg
ICAgICAgdGV4dC5hcHBlbmQodGV4dE1JTUVUeXBlTGluZVNlcGFyYXRvcik7CkBAIC0xODAsNyAr
MTgyLDcgQEAgU3RyaW5nIENsaXBib2FyZENocm9taXVtOjpnZXREYXRhKGNvbnN0IFN0cmluZyYg
dHlwZSwgYm9vbCYgc3VjY2VzcykgY29uc3QKICAgICBjYXNlIENsaXBib2FyZERhdGFUeXBlVVJM
OgogICAgICAgICAvLyBJbiBjYXNlIG9mIGEgcHJldmlvdXMgc2V0RGF0YSgndGV4dC91cmktbGlz
dCcpLCBzZXREYXRhKCkgaGFzIGFscmVhZHkKICAgICAgICAgLy8gcHJlcGFyZWQgdGhlICd1cmwn
IG1lbWJlciwgc28gd2UgY2FuIGp1c3QgcmV0cmlldmUgaXQgaGVyZS4KLSAgICAgICAgaWYgKCFt
X2RhdGFPYmplY3QtPnVybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFtX2RhdGFPYmplY3Qt
PnVybC5pc0VtcHR5KCkgJiYgIW1fZGF0YU9iamVjdC0+dXJsLmlzTG9jYWxGaWxlKCkpIHsKICAg
ICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuIG1fZGF0YU9iamVj
dC0+dXJsLnN0cmluZygpOwogICAgICAgICB9CkBAIC0zMTYsMTUgKzMxOCwyMiBAQCBIYXNoU2V0
PFN0cmluZz4gQ2xpcGJvYXJkQ2hyb21pdW06OnR5cGVzKCkgY29uc3QKICAgICBpZiAoIW1fZGF0
YU9iamVjdC0+ZmlsZW5hbWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQoIkZpbGVz
Iik7CiAKLSAgICBpZiAobV9kYXRhT2JqZWN0LT51cmwuaXNWYWxpZCgpKSB7CisgICAgaWYgKG1f
ZGF0YU9iamVjdC0+dXJsLmlzVmFsaWQoKSAmJiAhbV9kYXRhT2JqZWN0LT51cmwuaXNMb2NhbEZp
bGUoKSkgewogICAgICAgICBBU1NFUlQoIW1fZGF0YU9iamVjdC0+dXJpTGlzdC5pc0VtcHR5KCkp
OwogICAgICAgICByZXN1bHRzLmFkZCgiVVJMIik7CiAgICAgfQogCiAgICAgaWYgKCFtX2RhdGFP
YmplY3QtPnVyaUxpc3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIE5vdGUgdGhhdCBldmVuIGlm
IHRoZSBVUkkgbGlzdCBpcyBub3QgZW1wdHksIGl0IG1heSBub3QgYWN0dWFsbHkKLSAgICAgICAg
Ly8gY29udGFpbiBhIHZhbGlkIFVSTCwgc28gd2UgY2FuJ3QgcmV0dXJuICJVUkwiIGhlcmUuCi0g
ICAgICAgIHJlc3VsdHMuYWRkKCJ0ZXh0L3VyaS1saXN0Iik7CisgICAgICAgIC8vIFZlcmlmeSB0
aGF0IHRoZSBVUkkgbGlzdCBjb250YWlucyBhdCBsZWFzdCBvbmUgbm9uLWZpbGUgVVJMLgorICAg
ICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fZGF0YU9iamVj
dC0+dXJpTGlzdC5iZWdpbigpOworICAgICAgICAgICAgIGl0ICE9IG1fZGF0YU9iamVjdC0+dXJp
TGlzdC5lbmQoKTsgKytpdCkgeworICAgICAgICAgICAgaWYgKCFwcm90b2NvbElzKCppdCwgImZp
bGUiKSkgeworICAgICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCBldmVuIGlmIHRoZSBVUkkgbGlz
dCBpcyBub3QgZW1wdHksIGl0IG1heSBub3QgYWN0dWFsbHkKKyAgICAgICAgICAgICAgICAvLyBj
b250YWluIGEgdmFsaWQgVVJMLCBzbyB3ZSBjYW4ndCByZXR1cm4gIlVSTCIgaGVyZS4KKyAgICAg
ICAgICAgICAgICByZXN1bHRzLmFkZCgidGV4dC91cmktbGlzdCIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFtX2Rh
dGFPYmplY3QtPnBsYWluVGV4dC5pc0VtcHR5KCkpIHsK
</data>
<flag name="review"
          id="38463"
          type_id="1"
          status="-"
          setter="dcheng"
    />
    <flag name="commit-queue"
          id="38464"
          type_id="3"
          status="-"
          setter="dcheng"
    />
          </attachment>
      

    </bug>

</bugzilla>