<?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>18208</bug_id>
          
          <creation_ts>2008-03-29 10:11:46 -0700</creation_ts>
          <short_desc>Acid3 test 65 takes &gt;33ms due to plugin refreshing on Windows</short_desc>
          <delta_ts>2008-04-02 13:56:56 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://acid3.acidtests.org/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>18214</dependson>
          <blocked>17064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>andersca</cc>
    
    <cc>drtifti</cc>
    
    <cc>jhoneycutt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>75756</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:11:46 -0700</bug_when>
    <thetext>Acid3 test 65 takes 172ms on my MacBook Pro on Windows XP. On Mac the same test takes less than 33ms. The test creates an &lt;object data=&quot;svg.xml&quot;&gt;, and we seem to spend the majority of the time refreshing the plugin database when we fail to find a plugin to handle text/xml.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75757</commentid>
    <comment_count>1</comment_count>
      <attachid>20192</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:13:05 -0700</bug_when>
    <thetext>Created attachment 20192
Preliminary cleanup: Make PluginPackage work like our other RefCounted classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75758</commentid>
    <comment_count>2</comment_count>
      <attachid>20192</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-29 10:22:34 -0700</bug_when>
    <thetext>Comment on attachment 20192
Preliminary cleanup: Make PluginPackage work like our other RefCounted classes

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75759</commentid>
    <comment_count>3</comment_count>
      <attachid>20193</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:27:21 -0700</bug_when>
    <thetext>Created attachment 20193
Cleanup 2: Change PlatformFileTime to time_t on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75760</commentid>
    <comment_count>4</comment_count>
      <attachid>20194</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:27:36 -0700</bug_when>
    <thetext>Created attachment 20194
Cleanup 3: Remove PlatformFileTime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75763</commentid>
    <comment_count>5</comment_count>
      <attachid>20196</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:32:01 -0700</bug_when>
    <thetext>Created attachment 20196
Reduced testcase

Here&apos;s a reduced testcase that just creates the object element and puts it into the document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75764</commentid>
    <comment_count>6</comment_count>
      <attachid>20193</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 10:37:42 -0700</bug_when>
    <thetext>Comment on attachment 20193
Cleanup 2: Change PlatformFileTime to time_t on Windows

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75765</commentid>
    <comment_count>7</comment_count>
      <attachid>20194</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 10:38:22 -0700</bug_when>
    <thetext>Comment on attachment 20194
Cleanup 3: Remove PlatformFileTime

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75766</commentid>
    <comment_count>8</comment_count>
      <attachid>20197</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:51:16 -0700</bug_when>
    <thetext>Created attachment 20197
Cleanup 4: Rename PluginPaths -&gt; PluginDirectories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75767</commentid>
    <comment_count>9</comment_count>
      <attachid>20198</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 10:52:23 -0700</bug_when>
    <thetext>Created attachment 20198
Reduced testcase that works in Firefox as well

This version of the testcase works in Firefox as well. Firefox doesn&apos;t seem to respect the &lt;base&gt; tag when resolving the &lt;object&gt; element&apos;s data attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75768</commentid>
    <comment_count>10</comment_count>
      <attachid>20197</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 10:59:53 -0700</bug_when>
    <thetext>Comment on attachment 20197
Cleanup 4: Rename PluginPaths -&gt; PluginDirectories

+        void setPluginDirectories(const Vector&lt;String&gt;&amp; paths) { m_pluginDirectories = paths; }

You can change the name of the argument here too.

-bool PluginDatabase::isPreferredPluginPath(const String&amp; path)
+bool PluginDatabase::isPreferredPluginDirectory(const String&amp; path)

And here.

-static inline void addMozillaPluginPaths(Vector&lt;String&gt;&amp; paths)
+static inline void addMozillaPluginDirectories(Vector&lt;String&gt;&amp; paths)

And here.

-static inline void addWindowsMediaPlayerPluginPath(Vector&lt;String&gt;&amp; paths)
+static inline void addWindowsMediaPlayerPluginDirectory(Vector&lt;String&gt;&amp; paths)

And in several other places.

rs=me either way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75770</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 11:05:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 20197 [edit])
&gt; +        void setPluginDirectories(const Vector&lt;String&gt;&amp; paths) {
&gt; m_pluginDirectories = paths; }
&gt; 
&gt; You can change the name of the argument here too.
&gt; 
&gt; -bool PluginDatabase::isPreferredPluginPath(const String&amp; path)
&gt; +bool PluginDatabase::isPreferredPluginDirectory(const String&amp; path)
&gt; 
&gt; And here.
&gt; 
&gt; -static inline void addMozillaPluginPaths(Vector&lt;String&gt;&amp; paths)
&gt; +static inline void addMozillaPluginDirectories(Vector&lt;String&gt;&amp; paths)
&gt; 
&gt; And here.
&gt; 
&gt; -static inline void addWindowsMediaPlayerPluginPath(Vector&lt;String&gt;&amp; paths)
&gt; +static inline void addWindowsMediaPlayerPluginDirectory(Vector&lt;String&gt;&amp; paths)
&gt; 
&gt; And in several other places.
&gt; 
&gt; rs=me either way

I&apos;ve changed these and more locally. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75771</commentid>
    <comment_count>12</comment_count>
      <attachid>20199</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 11:16:53 -0700</bug_when>
    <thetext>Created attachment 20199
Cleanup 5: Return const String&amp; from PluginPackage methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75772</commentid>
    <comment_count>13</comment_count>
      <attachid>20199</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 11:22:25 -0700</bug_when>
    <thetext>Comment on attachment 20199
Cleanup 5: Return const String&amp; from PluginPackage methods

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75773</commentid>
    <comment_count>14</comment_count>
      <attachid>20200</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 11:25:09 -0700</bug_when>
    <thetext>Created attachment 20200
Cleanup 6: Change getPluginsInDirectories to use an out parameter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75774</commentid>
    <comment_count>15</comment_count>
      <attachid>20200</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 11:32:20 -0700</bug_when>
    <thetext>Comment on attachment 20200
Cleanup 6: Change getPluginsInDirectories to use an out parameter

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75809</commentid>
    <comment_count>16</comment_count>
      <attachid>20209</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 23:13:03 -0700</bug_when>
    <thetext>Created attachment 20209
Step 1: Separate filesystem crawling from PluginPackage instantiation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75810</commentid>
    <comment_count>17</comment_count>
      <attachid>20210</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-29 23:13:55 -0700</bug_when>
    <thetext>Created attachment 20210
Step 2: Don&apos;t do any work if the plugin paths haven&apos;t changed between calls to refresh()

I can easily turn attachment 20198 into a regression test, but I worry that it might fail on slower machines. Any suggestions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75811</commentid>
    <comment_count>18</comment_count>
      <attachid>20209</attachid>
    <who name="">mitz</who>
    <bug_when>2008-03-29 23:27:27 -0700</bug_when>
    <thetext>Comment on attachment 20209
Step 1: Separate filesystem crawling from PluginPackage instantiation

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75873</commentid>
    <comment_count>19</comment_count>
      <attachid>20210</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-30 16:38:54 -0700</bug_when>
    <thetext>Comment on attachment 20210
Step 2: Don&apos;t do any work if the plugin paths haven&apos;t changed between calls to refresh()

+        HashMap&lt;String, time_t&gt;::iterator found = m_pluginPathsWithTimes.find(*it);

Can this just use get instead?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75930</commentid>
    <comment_count>20</comment_count>
      <attachid>20236</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-31 09:40:52 -0700</bug_when>
    <thetext>Created attachment 20236
Step 2 (revised)

Here&apos;s a new version of Step 2. There are two changes from attachment 20210:

1) I now use HashMap::get instead of HashMap::find, as suggested by Darin in comment 19.
2) We will now handle the case where one or more plugins have been uninstalled but no new plugins have been installed correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75931</commentid>
    <comment_count>21</comment_count>
      <attachid>20236</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-03-31 09:42:11 -0700</bug_when>
    <thetext>Comment on attachment 20236
Step 2 (revised)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75933</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-03-31 10:00:56 -0700</bug_when>
    <thetext>Committed in r31459, r31460, r31461, r31462, r31463, r31644, r31465, and r31466.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76181</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2008-04-02 13:56:56 -0700</bug_when>
    <thetext>*** Bug 18159 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20192</attachid>
            <date>2008-03-29 10:13:05 -0700</date>
            <delta_ts>2008-03-29 10:22:34 -0700</delta_ts>
            <desc>Preliminary cleanup: Make PluginPackage work like our other RefCounted classes</desc>
            <filename>0001--Make-PluginPackage-work-like-our-other-RefCo.patch</filename>
            <type>text/plain</type>
            <size>6920</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBkZmEyOGRjMjE5YjQzYWEzOWZhYmRjZjBjNjFiMzAzODE0OWEzMWY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDEzOjExOjU4IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgTWFr
ZSBQbHVnaW5QYWNrYWdlIHdvcmsgbGlrZSBvdXIgb3RoZXIgUmVmQ291bnRlZCBjbGFzc2VzCgog
ICAgICAgIFBsdWdpblBhY2thZ2Ugbm93IHN0YXJ0cyB3aXRoIGEgcmVmIGNvdW50IG9mIDEsIGFu
ZCBpdHMgY3JlYXRlUGFja2FnZQogICAgICAgIG1ldGhvZCBub3cgcmV0dXJucyBhIFBhc3NSZWZQ
dHIgaW5zdGVhZCBvZiBhIHJhdyBwb2ludGVyLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KCiAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjpQbHVnaW5QYWNrYWdlKTogUmVtb3ZlZCBleHBsaWNpdCBj
YWxsIHRvIHRoZQogICAgICAgIFJlZkNvdW50ZWQgY29uc3RydWN0b3Igc28gdGhhdCB3ZSdsbCBz
dGFydCB3aXRoIGEgcmVmIGNvdW50IG9mIDEuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2th
Z2U6OmNyZWF0ZVBhY2thZ2UpOiBDaGFuZ2VkIHRvIHJldHVybiBhCiAgICAgICAgUGFzc1JlZlB0
ci4KICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5oOgogICAgICAgICogcGx1Z2lucy9n
dGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFz
ZTo6Z2V0UGx1Z2luc0luUGF0aHMpOiBDaGFuZ2VkIHRvIHN0b3JlIHRoZQogICAgICAgIG5ld2x5
LWNyZWF0ZWQgUGx1Z2luUGFja2FnZSBpbiBhIFJlZlB0ci4KICAgICAgICAqIHBsdWdpbnMvd2lu
L1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKICAgICAgICAoV2ViQ29yZTo6YWRkUGx1Z2luc0Zyb21S
ZWdpc3RyeSk6IERpdHRvLgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1
Z2luc0luUGF0aHMpOiBEaXR0by4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMjIgKysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblBhY2thZ2UuY3BwICAgICAgICAgfCAgIDEzICsrKysrLS0tLS0tLS0KIFdlYkNvcmUv
cGx1Z2lucy9QbHVnaW5QYWNrYWdlLmggICAgICAgICAgIHwgICAgMiArLQogV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAgfCAgICAyICstCiBXZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCB8ICAgIDggKysrKy0tLS0KIDUgZmlsZXMgY2hhbmdl
ZCwgMzMgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTQzYmMyLi5hMDgzNWJiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDA4LTAzLTI5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBNYWtlIFBsdWdpblBhY2thZ2Ugd29yayBsaWtlIG91ciBvdGhlciBSZWZDb3Vu
dGVkIGNsYXNzZXMKKworICAgICAgICBQbHVnaW5QYWNrYWdlIG5vdyBzdGFydHMgd2l0aCBhIHJl
ZiBjb3VudCBvZiAxLCBhbmQgaXRzIGNyZWF0ZVBhY2thZ2UKKyAgICAgICAgbWV0aG9kIG5vdyBy
ZXR1cm5zIGEgUGFzc1JlZlB0ciBpbnN0ZWFkIG9mIGEgcmF3IHBvaW50ZXIuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBh
Y2thZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6UGx1Z2luUGFja2Fn
ZSk6IFJlbW92ZWQgZXhwbGljaXQgY2FsbCB0byB0aGUKKyAgICAgICAgUmVmQ291bnRlZCBjb25z
dHJ1Y3RvciBzbyB0aGF0IHdlJ2xsIHN0YXJ0IHdpdGggYSByZWYgY291bnQgb2YgMS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UpOiBDaGFuZ2VkIHRvIHJl
dHVybiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5QYWNr
YWdlLmg6CisgICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKTogQ2hhbmdl
ZCB0byBzdG9yZSB0aGUKKyAgICAgICAgbmV3bHktY3JlYXRlZCBQbHVnaW5QYWNrYWdlIGluIGEg
UmVmUHRyLgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZFBsdWdpbnNGcm9tUmVnaXN0cnkpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5QYXRocyk6IERpdHRvLgorCiAy
MDA4LTAzLTI3ICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAg
ICAgICAgIHd4IGJ1aWxkIGZpeC4gUmV0dXJuIGEgZGVmYXVsdCB2YWx1ZSBmb3Igb3BlcmF0b3Ig
PT0gCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggNzY4ODJjOC4uNGYzY2MyNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtNTksOCArNTksNyBAQCB2b2lkIFBsdWdpblBh
Y2thZ2U6OmZyZWVMaWJyYXJ5VGltZXJGaXJlZChUaW1lcjxQbHVnaW5QYWNrYWdlPiopCiB9CiAK
IFBsdWdpblBhY2thZ2U6OlBsdWdpblBhY2thZ2UoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBQ
bGF0Zm9ybUZpbGVUaW1lJiBsYXN0TW9kaWZpZWQpCi0gICAgOiBSZWZDb3VudGVkPFBsdWdpblBh
Y2thZ2U+KDApCi0gICAgLCBtX3BhdGgocGF0aCkKKyAgICA6IG1fcGF0aChwYXRoKQogICAgICwg
bV9tb2R1bGVWZXJzaW9uKDApCiAgICAgLCBtX21vZHVsZSgwKQogICAgICwgbV9sYXN0TW9kaWZp
ZWQobGFzdE1vZGlmaWVkKQpAQCAtMTA0LDE2ICsxMDMsMTQgQEAgdm9pZCBQbHVnaW5QYWNrYWdl
Ojp1bmxvYWRXaXRob3V0U2h1dGRvd24oKQogICAgIG1faXNMb2FkZWQgPSBmYWxzZTsKIH0KIAot
UGx1Z2luUGFja2FnZSogUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZShjb25zdCBTdHJpbmcm
IHBhdGgsIGNvbnN0IFBsYXRmb3JtRmlsZVRpbWUmIGxhc3RNb2RpZmllZCkKK1Bhc3NSZWZQdHI8
UGx1Z2luUGFja2FnZT4gUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZShjb25zdCBTdHJpbmcm
IHBhdGgsIGNvbnN0IFBsYXRmb3JtRmlsZVRpbWUmIGxhc3RNb2RpZmllZCkKIHsKLSAgICBQbHVn
aW5QYWNrYWdlKiBwYWNrYWdlID0gbmV3IFBsdWdpblBhY2thZ2UocGF0aCwgbGFzdE1vZGlmaWVk
KTsKKyAgICBSZWZQdHI8UGx1Z2luUGFja2FnZT4gcGFja2FnZSA9IGFkb3B0UmVmKG5ldyBQbHVn
aW5QYWNrYWdlKHBhdGgsIGxhc3RNb2RpZmllZCkpOwogCi0gICAgaWYgKCFwYWNrYWdlLT5mZXRj
aEluZm8oKSkgewotICAgICAgICBkZWxldGUgcGFja2FnZTsKKyAgICBpZiAoIXBhY2thZ2UtPmZl
dGNoSW5mbygpKQogICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAgICAgCi0gICAgcmV0dXJuIHBh
Y2thZ2U7CisgICAgcmV0dXJuIHBhY2thZ2UucmVsZWFzZSgpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blBhY2thZ2UuaAppbmRleCBmOGM4NzFjLi5kMjIxNmI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdl
LmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFBsdWdp
blBhY2thZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQbHVnaW5QYWNrYWdlPiB7CiAgICAgcHVibGlj
OgogICAgICAgICB+UGx1Z2luUGFja2FnZSgpOwotICAgICAgICBzdGF0aWMgUGx1Z2luUGFja2Fn
ZSogY3JlYXRlUGFja2FnZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFBsYXRmb3JtRmlsZVRp
bWUmIGxhc3RNb2RpZmllZCk7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblBhY2th
Z2U+IGNyZWF0ZVBhY2thZ2UoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBQbGF0Zm9ybUZpbGVU
aW1lJiBsYXN0TW9kaWZpZWQpOwogICAgICAgICAKICAgICAgICAgU3RyaW5nIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KICAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0
ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpbkRhdGFi
YXNlR3RrLmNwcAppbmRleCBhZmU0MzcyLi41NWNhMDU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvZ3RrL1BsdWdpbkRhdGFiYXNlR3RrLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvZ3Rr
L1BsdWdpbkRhdGFiYXNlR3RrLmNwcApAQCAtNDksNyArNDksNyBAQCBQbHVnaW5TZXQgUGx1Z2lu
RGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKCkgY29uc3QKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICAgICAgZ2NoYXIqIGZpbGVuYW1lID0gZ19idWlsZF9maWxlbmFtZSgo
aXQtPnV0ZjgoKSkuZGF0YSgpLCBuYW1lLCAwKTsKLSAgICAgICAgICAgIFBsdWdpblBhY2thZ2Uq
IHBsdWdpblBhY2thZ2UgPSBQbHVnaW5QYWNrYWdlOjpjcmVhdGVQYWNrYWdlKGZpbGVuYW1lLCB0
aW1lKDApKTsKKyAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5QYWNrYWdlPiBwbHVnaW5QYWNrYWdl
ID0gUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZShmaWxlbmFtZSwgdGltZSgwKSk7CiAgICAg
ICAgICAgICBpZiAocGx1Z2luUGFja2FnZSkKICAgICAgICAgICAgICAgICBwbHVnaW5zLmFkZChw
bHVnaW5QYWNrYWdlKTsKICAgICAgICAgICAgIGdfZnJlZShmaWxlbmFtZSk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCBiL1dlYkNvcmUvcGx1
Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCmluZGV4IDY3NGRlMWUuLjI5MGZhMDggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCisrKyBi
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCkBAIC02Niw3ICs2Niw3
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRQbHVnaW5zRnJvbVJlZ2lzdHJ5KEhLRVkgcm9vdEtl
eSwgUGx1Z2luU2V0JiBwbHVnaW5zKQogICAgICAgICBpZiAoR2V0RmlsZUF0dHJpYnV0ZXNFeChw
YXRoU3RyLCBHZXRGaWxlRXhJbmZvU3RhbmRhcmQsICZhdHRyaWJ1dGVzKSA9PSAwKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgUGx1Z2luUGFja2FnZSogcGFja2FnZSA9IFBsdWdp
blBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UoU3RyaW5nKHBhdGhTdHIsIHBhdGhTdHJTaXplIC8gc2l6
ZW9mKFdDSEFSKSAtIDEpLCBhdHRyaWJ1dGVzLmZ0TGFzdFdyaXRlVGltZSk7CisgICAgICAgIFJl
ZlB0cjxQbHVnaW5QYWNrYWdlPiBwYWNrYWdlID0gUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2Fn
ZShTdHJpbmcocGF0aFN0ciwgcGF0aFN0clNpemUgLyBzaXplb2YoV0NIQVIpIC0gMSksIGF0dHJp
YnV0ZXMuZnRMYXN0V3JpdGVUaW1lKTsKIAogICAgICAgICBpZiAocGFja2FnZSkKICAgICAgICAg
ICAgIHBsdWdpbnMuYWRkKHBhY2thZ2UpOwpAQCAtODQsOCArODQsOCBAQCBQbHVnaW5TZXQgUGx1
Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKCkgY29uc3QKICAgICBIQU5ETEUgaEZpbmQg
PSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKICAgICBXSU4zMl9GSU5EX0RBVEFXIGZpbmRGaWxlRGF0
YTsKIAotICAgIFBsdWdpblBhY2thZ2UqIG9sZFdNUFBsdWdpbiA9IDA7Ci0gICAgUGx1Z2luUGFj
a2FnZSogbmV3V01QUGx1Z2luID0gMDsKKyAgICBSZWZQdHI8UGx1Z2luUGFja2FnZT4gb2xkV01Q
UGx1Z2luOworICAgIFJlZlB0cjxQbHVnaW5QYWNrYWdlPiBuZXdXTVBQbHVnaW47CiAKICAgICBW
ZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wbHVnaW5QYXRocy5lbmQoKTsK
ICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1Z2luUGF0
aHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC0xMDksNyArMTA5LDcgQEAgUGx1Z2lu
U2V0IFBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5QYXRocygpIGNvbnN0CiAgICAgICAgICAg
ICBpZiAoIXVuaXF1ZUZpbGVuYW1lcy5hZGQoZnVsbFBhdGgpLnNlY29uZCkKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgICAgICBQbHVnaW5QYWNrYWdlKiBwbHVn
aW5QYWNrYWdlID0gUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZShmdWxsUGF0aCwgZmluZEZp
bGVEYXRhLmZ0TGFzdFdyaXRlVGltZSk7CisgICAgICAgICAgICBSZWZQdHI8UGx1Z2luUGFja2Fn
ZT4gcGx1Z2luUGFja2FnZSA9IFBsdWdpblBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UoZnVsbFBhdGgs
IGZpbmRGaWxlRGF0YS5mdExhc3RXcml0ZVRpbWUpOwogCiAgICAgICAgICAgICBpZiAocGx1Z2lu
UGFja2FnZSkgewogICAgICAgICAgICAgICAgIHBsdWdpbnMuYWRkKHBsdWdpblBhY2thZ2UpOwot
LSAKMS41LjQuNC41MzcuZ2I3NWFhCgo=
</data>
<flag name="review"
          id="8804"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20193</attachid>
            <date>2008-03-29 10:27:21 -0700</date>
            <delta_ts>2008-03-29 10:37:42 -0700</delta_ts>
            <desc>Cleanup 2: Change PlatformFileTime to time_t on Windows</desc>
            <filename>0001--Change-PlatformFileTime-on-Windows-to-be-tim.patch</filename>
            <type>text/plain</type>
            <size>5581</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA0NDA0Y2Y1ZWQyZmE3NDlmNjZmZjE5OWI2MjdhMWQyMDVlYjJhNDZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDEzOjIyOjE3IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgQ2hh
bmdlIFBsYXRmb3JtRmlsZVRpbWUgb24gV2luZG93cyB0byBiZSB0aW1lX3QKCiAgICAgICAgVGhp
cyBtYXRjaGVzIG90aGVyIHBsYXRmb3JtcyBhbmQgb3VyIGV4aXN0aW5nIGZ1bmN0aW9ucyBpbgog
ICAgICAgIEZpbGVTeXN0ZW0uaC4gSXQgd2lsbCBhbHNvIGxldCB1cyBnZXQgcmlkIG9mIFBsYXRm
b3JtRmlsZVRpbWUKICAgICAgICBhbHRvZ2V0aGVyLgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6IENoYW5nZSBQbGF0
Zm9ybUZpbGVUaW1lIHRvIHRpbWVfdCBvbiBXaW5kb3dzLgogICAgICAgICogcGx1Z2lucy93aW4v
UGx1Z2luRGF0YWJhc2VXaW4uY3BwOgogICAgICAgIChXZWJDb3JlOjphZGRQbHVnaW5zRnJvbVJl
Z2lzdHJ5KTogVXNlIGdldEZpbGVNb2RpZmljYXRpb25UaW1lIHRvIGdldAogICAgICAgIHRoZSBt
b2RpZmljYXRpb24gdGltZSB0byBwYXNzIHRvIFBsdWdpblBhY2thZ2U6OmNyZWF0ZS4KICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKTogRGl0dG8uCiAg
ICAgICAgKiBwbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcDoKICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luUGFja2FnZTo6aGFzaCk6IFVwZGF0ZWQgdG8gdXNlIG1fbGFzdE1vZGlmaWVkIGFz
IGEKICAgICAgICB0aW1lX3QuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmVxdWFs
KTogRGl0dG8uCi0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDIwICsrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0u
aCAgICAgICAgICAgICB8ICAgIDIgKy0KIFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJh
c2VXaW4uY3BwIHwgICAxNCArKysrKysrKysrLS0tLQogV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVn
aW5QYWNrYWdlV2luLmNwcCAgfCAgICA5ICsrKystLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAzNSBp
bnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEwODM1YmIuLjgyYTgyMmEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjUgQEAKIDIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAg
ICAgIENoYW5nZSBQbGF0Zm9ybUZpbGVUaW1lIG9uIFdpbmRvd3MgdG8gYmUgdGltZV90CisKKyAg
ICAgICAgVGhpcyBtYXRjaGVzIG90aGVyIHBsYXRmb3JtcyBhbmQgb3VyIGV4aXN0aW5nIGZ1bmN0
aW9ucyBpbgorICAgICAgICBGaWxlU3lzdGVtLmguIEl0IHdpbGwgYWxzbyBsZXQgdXMgZ2V0IHJp
ZCBvZiBQbGF0Zm9ybUZpbGVUaW1lCisgICAgICAgIGFsdG9nZXRoZXIuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVt
Lmg6IENoYW5nZSBQbGF0Zm9ybUZpbGVUaW1lIHRvIHRpbWVfdCBvbiBXaW5kb3dzLgorICAgICAg
ICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmFkZFBsdWdpbnNGcm9tUmVnaXN0cnkpOiBVc2UgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUgdG8g
Z2V0CisgICAgICAgIHRoZSBtb2RpZmljYXRpb24gdGltZSB0byBwYXNzIHRvIFBsdWdpblBhY2th
Z2U6OmNyZWF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5z
SW5QYXRocyk6IERpdHRvLgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6aGFzaCk6IFVwZGF0ZWQgdG8g
dXNlIG1fbGFzdE1vZGlmaWVkIGFzIGEKKyAgICAgICAgdGltZV90LgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luUGFja2FnZTo6ZXF1YWwpOiBEaXR0by4KKworMjAwOC0wMy0yOSAgQWRhbSBSb2Jl
biAgPGFyb2JlbkBhcHBsZS5jb20+CisKICAgICAgICAgTWFrZSBQbHVnaW5QYWNrYWdlIHdvcmsg
bGlrZSBvdXIgb3RoZXIgUmVmQ291bnRlZCBjbGFzc2VzCiAKICAgICAgICAgUGx1Z2luUGFja2Fn
ZSBub3cgc3RhcnRzIHdpdGggYSByZWYgY291bnQgb2YgMSwgYW5kIGl0cyBjcmVhdGVQYWNrYWdl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGQyYTMwMTEuLjc4ZDQwMTcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5
c3RlbS5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNzIFN0cmluZzsKIAogI2lmIFBMQVRGT1JNKFdJ
TikKIHR5cGVkZWYgSEFORExFIFBsYXRmb3JtRmlsZUhhbmRsZTsKLXR5cGVkZWYgRklMRVRJTUUg
UGxhdGZvcm1GaWxlVGltZTsKK3R5cGVkZWYgdGltZV90IFBsYXRmb3JtRmlsZVRpbWU7CiB0eXBl
ZGVmIEhNT0RVTEUgUGxhdGZvcm1Nb2R1bGU7CiBjb25zdCBQbGF0Zm9ybUZpbGVIYW5kbGUgaW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCBiL1dlYkNvcmUv
cGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCmluZGV4IDI5MGZhMDguLjQ0MDQ5ODQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwCkBAIC02MiwxMSAr
NjIsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFBsdWdpbnNGcm9tUmVnaXN0cnkoSEtFWSBy
b290S2V5LCBQbHVnaW5TZXQmIHBsdWdpbnMpCiAgICAgICAgIGlmIChyZXN1bHQgIT0gRVJST1Jf
U1VDQ0VTUyB8fCB0eXBlICE9IFJFR19TWikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgIFdJTjMyX0ZJTEVfQVRUUklCVVRFX0RBVEEgYXR0cmlidXRlczsKLSAgICAgICAgaWYgKEdl
dEZpbGVBdHRyaWJ1dGVzRXgocGF0aFN0ciwgR2V0RmlsZUV4SW5mb1N0YW5kYXJkLCAmYXR0cmli
dXRlcykgPT0gMCkKKyAgICAgICAgU3RyaW5nIHBhdGgocGF0aFN0ciwgcGF0aFN0clNpemUgLyBz
aXplb2YoV0NIQVIpIC0gMSk7CisKKyAgICAgICAgdGltZV90IG1vZGlmaWVkVGltZTsKKyAgICAg
ICAgaWYgKCFnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShwYXRoLCBtb2RpZmllZFRpbWUpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgUmVmUHRyPFBsdWdpblBhY2thZ2U+IHBhY2th
Z2UgPSBQbHVnaW5QYWNrYWdlOjpjcmVhdGVQYWNrYWdlKFN0cmluZyhwYXRoU3RyLCBwYXRoU3Ry
U2l6ZSAvIHNpemVvZihXQ0hBUikgLSAxKSwgYXR0cmlidXRlcy5mdExhc3RXcml0ZVRpbWUpOwor
ICAgICAgICBSZWZQdHI8UGx1Z2luUGFja2FnZT4gcGFja2FnZSA9IFBsdWdpblBhY2thZ2U6OmNy
ZWF0ZVBhY2thZ2UocGF0aCwgbW9kaWZpZWRUaW1lKTsKIAogICAgICAgICBpZiAocGFja2FnZSkK
ICAgICAgICAgICAgIHBsdWdpbnMuYWRkKHBhY2thZ2UpOwpAQCAtMTA4LDggKzExMCwxMiBAQCBQ
bHVnaW5TZXQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKCkgY29uc3QKICAgICAg
ICAgICAgIFN0cmluZyBmdWxsUGF0aCA9ICppdCArICJcXCIgKyBmaWxlbmFtZTsKICAgICAgICAg
ICAgIGlmICghdW5pcXVlRmlsZW5hbWVzLmFkZChmdWxsUGF0aCkuc2Vjb25kKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICB0aW1lX3QgbW9kaWZpZWRUaW1lOworICAg
ICAgICAgICAgaWYgKCFnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShmdWxsUGF0aCwgbW9kaWZpZWRU
aW1lKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgICAgICBS
ZWZQdHI8UGx1Z2luUGFja2FnZT4gcGx1Z2luUGFja2FnZSA9IFBsdWdpblBhY2thZ2U6OmNyZWF0
ZVBhY2thZ2UoZnVsbFBhdGgsIGZpbmRGaWxlRGF0YS5mdExhc3RXcml0ZVRpbWUpOworICAgICAg
ICAgICAgUmVmUHRyPFBsdWdpblBhY2thZ2U+IHBsdWdpblBhY2thZ2UgPSBQbHVnaW5QYWNrYWdl
OjpjcmVhdGVQYWNrYWdlKGZ1bGxQYXRoLCBtb2RpZmllZFRpbWUpOwogCiAgICAgICAgICAgICBp
ZiAocGx1Z2luUGFja2FnZSkgewogICAgICAgICAgICAgICAgIHBsdWdpbnMuYWRkKHBsdWdpblBh
Y2thZ2UpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNrYWdlV2lu
LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHAKaW5kZXggY2Nj
NzU4Ni4uMWU3NDMxMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5QYWNr
YWdlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4uY3Bw
CkBAIC0zNjAsMTggKzM2MCwxNyBAQCBhYm9ydDoKIAogdW5zaWduZWQgUGx1Z2luUGFja2FnZTo6
aGFzaCgpIGNvbnN0CiB7IAotICAgIGNvbnN0IHVuc2lnbmVkIGhhc2hDb2Rlc1szXSA9IHsKKyAg
ICBjb25zdCB1bnNpZ25lZCBoYXNoQ29kZXNbMl0gPSB7CiAgICAgICAgIG1fZGVzY3JpcHRpb24u
aW1wbCgpLT5oYXNoKCksCi0gICAgICAgIG1fbGFzdE1vZGlmaWVkLmR3TG93RGF0ZVRpbWUsCi0g
ICAgICAgIG1fbGFzdE1vZGlmaWVkLmR3SGlnaERhdGVUaW1lCisgICAgICAgIG1fbGFzdE1vZGlm
aWVkCiAgICAgfTsKIAotICAgIHJldHVybiBTdHJpbmdJbXBsOjpjb21wdXRlSGFzaChyZWludGVy
cHJldF9jYXN0PGNvbnN0IFVDaGFyKj4oaGFzaENvZGVzKSwgMyAqIHNpemVvZih1bnNpZ25lZCkg
LyBzaXplb2YoVUNoYXIpKTsKKyAgICByZXR1cm4gU3RyaW5nSW1wbDo6Y29tcHV0ZUhhc2gocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KGhhc2hDb2RlcyksIDIgKiBzaXplb2YodW5zaWdu
ZWQpIC8gc2l6ZW9mKFVDaGFyKSk7CiB9CiAKIGJvb2wgUGx1Z2luUGFja2FnZTo6ZXF1YWwoY29u
c3QgUGx1Z2luUGFja2FnZSYgYSwgY29uc3QgUGx1Z2luUGFja2FnZSYgYikKIHsKLSAgICByZXR1
cm4gYS5tX2Rlc2NyaXB0aW9uID09IGIubV9kZXNjcmlwdGlvbiAmJiAoQ29tcGFyZUZpbGVUaW1l
KCZhLm1fbGFzdE1vZGlmaWVkLCAmYi5tX2xhc3RNb2RpZmllZCkgPT0gMCk7CisgICAgcmV0dXJu
IGEubV9kZXNjcmlwdGlvbiA9PSBiLm1fZGVzY3JpcHRpb24gJiYgYS5tX2xhc3RNb2RpZmllZCA9
PSBiLm1fbGFzdE1vZGlmaWVkOwogfQogCiB9Ci0tIAoxLjUuNC40LjUzNy5nYjc1YWEKCg==
</data>
<flag name="review"
          id="8805"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20194</attachid>
            <date>2008-03-29 10:27:36 -0700</date>
            <delta_ts>2008-03-29 10:38:22 -0700</delta_ts>
            <desc>Cleanup 3: Remove PlatformFileTime</desc>
            <filename>0002--Remove-PlatformFileTime.patch</filename>
            <type>text/plain</type>
            <size>4246</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA2ZWQ3OTIxMjI4MjRmMTExZTJmNDRkYTk2NzZhNmIyZjhkMzBlMjZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDEzOjI2OjMyIC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgUmVt
b3ZlIFBsYXRmb3JtRmlsZVRpbWUKCiAgICAgICAgVGhpcyB0eXBlZGVmIGlzIHRpbWVfdCBvbiBh
bGwgcGxhdGZvcm1zLCBzbyB3ZSBjYW4ganVzdCBnZXQgcmlkIG9mIHRoZQogICAgICAgIHR5cGVk
ZWYuCgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIHBsYXRm
b3JtL0ZpbGVTeXN0ZW0uaDoKICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHA6CiAg
ICAgICAgKiBwbHVnaW5zL1BsdWdpblBhY2thZ2UuaDoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZvcm0vRmls
ZVN5c3RlbS5oICAgICB8ICAgIDIgLS0KIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNw
cCB8ICAgIDQgKystLQogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuaCAgIHwgICAgNiAr
KystLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDgyYTgyMmEuLjBmNjI4ODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMDgtMDMtMjkgIEFkYW0gUm9iZW4g
IDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIFJlbW92ZSBQbGF0Zm9ybUZpbGVUaW1lCisK
KyAgICAgICAgVGhpcyB0eXBlZGVmIGlzIHRpbWVfdCBvbiBhbGwgcGxhdGZvcm1zLCBzbyB3ZSBj
YW4ganVzdCBnZXQgcmlkIG9mIHRoZQorICAgICAgICB0eXBlZGVmLgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vRmlsZVN5c3RlbS5o
OgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHA6CisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5QYWNrYWdlLmg6CisKKzIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgorCiAgICAgICAgIENoYW5nZSBQbGF0Zm9ybUZpbGVUaW1lIG9uIFdpbmRvd3MgdG8g
YmUgdGltZV90CiAKICAgICAgICAgVGhpcyBtYXRjaGVzIG90aGVyIHBsYXRmb3JtcyBhbmQgb3Vy
IGV4aXN0aW5nIGZ1bmN0aW9ucyBpbgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmggYi9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCA3OGQ0MDE3Li5m
MWI3ZWE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAorKysgYi9X
ZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtNDcsNyArNDcsNiBAQCBjbGFzcyBTdHJp
bmc7CiAKICNpZiBQTEFURk9STShXSU4pCiB0eXBlZGVmIEhBTkRMRSBQbGF0Zm9ybUZpbGVIYW5k
bGU7Ci10eXBlZGVmIHRpbWVfdCBQbGF0Zm9ybUZpbGVUaW1lOwogdHlwZWRlZiBITU9EVUxFIFBs
YXRmb3JtTW9kdWxlOwogY29uc3QgUGxhdGZvcm1GaWxlSGFuZGxlIGludmFsaWRQbGF0Zm9ybUZp
bGVIYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKIApAQCAtNzAsNyArNjksNiBAQCBzdHJ1
Y3QgUGxhdGZvcm1Nb2R1bGVWZXJzaW9uIHsKIH07CiAjZWxzZQogdHlwZWRlZiBpbnQgUGxhdGZv
cm1GaWxlSGFuZGxlOwotdHlwZWRlZiB0aW1lX3QgUGxhdGZvcm1GaWxlVGltZTsKICNpZiBQTEFU
Rk9STShHVEspCiB0eXBlZGVmIEdNb2R1bGUqIFBsYXRmb3JtTW9kdWxlOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5QYWNrYWdlLmNwcAppbmRleCA0ZjNjYzI1Li44MThmNjYxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblBhY2thZ2UuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgUGx1Z2luUGFja2FnZTo6ZnJl
ZUxpYnJhcnlUaW1lckZpcmVkKFRpbWVyPFBsdWdpblBhY2thZ2U+KikKICAgICBtX21vZHVsZSA9
IDA7CiB9CiAKLVBsdWdpblBhY2thZ2U6OlBsdWdpblBhY2thZ2UoY29uc3QgU3RyaW5nJiBwYXRo
LCBjb25zdCBQbGF0Zm9ybUZpbGVUaW1lJiBsYXN0TW9kaWZpZWQpCitQbHVnaW5QYWNrYWdlOjpQ
bHVnaW5QYWNrYWdlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgdGltZV90JiBsYXN0TW9kaWZp
ZWQpCiAgICAgOiBtX3BhdGgocGF0aCkKICAgICAsIG1fbW9kdWxlVmVyc2lvbigwKQogICAgICwg
bV9tb2R1bGUoMCkKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIFBsdWdpblBhY2thZ2U6OnVubG9h
ZFdpdGhvdXRTaHV0ZG93bigpCiAgICAgbV9pc0xvYWRlZCA9IGZhbHNlOwogfQogCi1QYXNzUmVm
UHRyPFBsdWdpblBhY2thZ2U+IFBsdWdpblBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UoY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCBQbGF0Zm9ybUZpbGVUaW1lJiBsYXN0TW9kaWZpZWQpCitQYXNzUmVm
UHRyPFBsdWdpblBhY2thZ2U+IFBsdWdpblBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UoY29uc3QgU3Ry
aW5nJiBwYXRoLCBjb25zdCB0aW1lX3QmIGxhc3RNb2RpZmllZCkKIHsKICAgICBSZWZQdHI8UGx1
Z2luUGFja2FnZT4gcGFja2FnZSA9IGFkb3B0UmVmKG5ldyBQbHVnaW5QYWNrYWdlKHBhdGgsIGxh
c3RNb2RpZmllZCkpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2Fn
ZS5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuaAppbmRleCBkMjIxNmI5Li4zOGZi
NTBmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5oCisrKyBiL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmgKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIFBsdWdpblBhY2thZ2UgOiBwdWJsaWMgUmVmQ291bnRlZDxQ
bHVnaW5QYWNrYWdlPiB7CiAgICAgcHVibGljOgogICAgICAgICB+UGx1Z2luUGFja2FnZSgpOwot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5QYWNrYWdlPiBjcmVhdGVQYWNrYWdlKGNv
bnN0IFN0cmluZyYgcGF0aCwgY29uc3QgUGxhdGZvcm1GaWxlVGltZSYgbGFzdE1vZGlmaWVkKTsK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UGx1Z2luUGFja2FnZT4gY3JlYXRlUGFja2FnZShj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IHRpbWVfdCYgbGFzdE1vZGlmaWVkKTsKICAgICAgICAg
CiAgICAgICAgIFN0cmluZyBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgICAg
IFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KQEAg
LTY3LDcgKzY3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjb25zdCBQbGF0Zm9y
bU1vZHVsZVZlcnNpb24mIHZlcnNpb24oKSBjb25zdCB7IHJldHVybiBtX21vZHVsZVZlcnNpb247
IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFBsdWdpblBhY2thZ2UoY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBQbGF0Zm9ybUZpbGVUaW1lJiBsYXN0TW9kaWZpZWQpOworICAgICAgICBQbHVn
aW5QYWNrYWdlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgdGltZV90JiBsYXN0TW9kaWZpZWQp
OwogICAgICAgICBib29sIGZldGNoSW5mbygpOwogICAgICAgICBib29sIGlzUGx1Z2luQmxhY2ts
aXN0ZWQoKTsKICAgICAgICAgdm9pZCBkZXRlcm1pbmVRdWlya3MoY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSk7CkBAIC04Nyw3ICs4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTUlN
RVRvRXh0ZW5zaW9uc01hcCBtX21pbWVUb0V4dGVuc2lvbnM7CiAKICAgICAgICAgUGxhdGZvcm1N
b2R1bGUgbV9tb2R1bGU7Ci0gICAgICAgIFBsYXRmb3JtRmlsZVRpbWUgbV9sYXN0TW9kaWZpZWQ7
CisgICAgICAgIHRpbWVfdCBtX2xhc3RNb2RpZmllZDsKIAogICAgICAgICBOUFBfU2h1dGRvd25Q
cm9jUHRyIG1fTlBQX1NodXRkb3duOwogICAgICAgICBOUFBsdWdpbkZ1bmNzIG1fcGx1Z2luRnVu
Y3M7Ci0tIAoxLjUuNC40LjUzNy5nYjc1YWEKCg==
</data>
<flag name="review"
          id="8806"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20196</attachid>
            <date>2008-03-29 10:32:01 -0700</date>
            <delta_ts>2008-03-29 10:52:23 -0700</delta_ts>
            <desc>Reduced testcase</desc>
            <filename>test65.html</filename>
            <type>text/html</type>
            <size>767</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">PGJvZHk+CjxiYXNlIGhyZWY9Imh0dHA6Ly9hY2lkMy5hY2lkdGVzdHMub3JnLyI+CjxzY3JpcHQ+
CiAgICBmdW5jdGlvbiB0ZXN0NjUoKSB7CiAgICAgIC8vIHRlc3QgNjU6IGJyaW5nIGluIGEgY291
cGxlIG9mIFNWRyBmaWxlcyBhbmQgc29tZSBIVE1MIGZpbGVzIGR5bmFtaWNhbGx5IC0gcHJlcGFy
YXRpb24gZm9yIGxhdGVyIHRlc3RzIGluIHRoaXMgYnVja2V0CiAgICAgIHZhciBrdW5nRnVEZWF0
aEdyaXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CiAgICAgIHZhciBvYmplY3QgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsKICAgICAgb2JqZWN0Lm9ubG9hZCA9IGZ1
bmN0aW9uICgpIHsga3VuZ0Z1RGVhdGhHcmlwLnRpdGxlICs9ICcyJyB9OwogICAgICBvYmplY3Qu
ZGF0YSA9ICJzdmcueG1sIjsKICAgICAga3VuZ0Z1RGVhdGhHcmlwLmFwcGVuZENoaWxkKG9iamVj
dCk7CiAgICAgIC8vIGFkZCB0aGUgbG90IHRvIHRoZSBkb2N1bWVudAogICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGt1bmdGdURlYXRoR3JpcCk7CiAgICAgIHJldHVybiA1OwogICAgfQoK
ICAgIHZhciBiZWZvcmVUZXN0ID0gbmV3IERhdGUoKTsKICAgIHRlc3Q2NSgpOwogICAgdmFyIGVs
YXBzZWRUZXN0ID0gbmV3IERhdGUoKSAtIGJlZm9yZVRlc3Q7CiAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdUZXN0IHRvb2sgJyArIGVsYXBzZWRU
ZXN0ICsgJ21zXG4nKSk7Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20197</attachid>
            <date>2008-03-29 10:51:16 -0700</date>
            <delta_ts>2008-03-29 10:59:53 -0700</delta_ts>
            <desc>Cleanup 4: Rename PluginPaths -&gt; PluginDirectories</desc>
            <filename>0001-Rename-PluginDatabase-s-PluginPaths-to-PluginDire.patch</filename>
            <type>text/plain</type>
            <size>20877</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAzMjhhNDJlYzM3ZmFhZDUyMmZhMGVjYmM5ZGY5NDRmMDdjOTNmZjJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDEzOjQ5OjU1IC0wNDAwClN1YmplY3Q6IFtQRlJdIFJlbmFtZSBQbHVn
aW5EYXRhYmFzZSdzICJQbHVnaW5QYXRocyIgdG8gIlBsdWdpbkRpcmVjdG9yaWVzIgoKV2ViQ29y
ZToKCiAgICAgICAgUmVuYW1lIFBsdWdpbkRhdGFiYXNlJ3MgIlBsdWdpblBhdGhzIiB0byAiUGx1
Z2luRGlyZWN0b3JpZXMiCgogICAgICAgIFRoZSBjb2RlIGV4cGVjdHMgdGhlc2UgcGF0aHMgdG8g
YWxsIGJlIGRpcmVjdG9yaWVzLCBzbyBpdCBzZWVtcyBnb29kCiAgICAgICAgdG8gcmVmZXIgdG8g
dGhlbSBhcyBzdWNoLgoKICAgICAgICBUaGlzIHBhdGNoIGp1c3QgY2hhbmdlcyAiUGF0aHMiIHRv
ICJEaXJlY3RvcmllcyIgYW5kICJQYXRoIiB0bwogICAgICAgICJEaXJlY3RvcnkiLgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZW1w
b3JhcnlMaW5rU3R1YnMuY3BwOgogICAgICAgICogcGxhdGZvcm0vd3gvVGVtcG9yYXJ5TGlua1N0
dWJzLmNwcDoKICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgogICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucyk6CiAgICAgICAgKFdlYkNv
cmU6OlBsdWdpbkRhdGFiYXNlOjpyZWZyZXNoKToKICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuaDoKICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OnNldFBsdWdpbkRpcmVj
dG9yaWVzKToKICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpbkRhdGFiYXNlR3RrLmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKToK
ICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKToKICAgICAgICAo
V2ViQ29yZTo6c2FmYXJpUGx1Z2luc0RpcmVjdG9yeSk6CiAgICAgICAgKFdlYkNvcmU6OlBsdWdp
bkRhdGFiYXNlOjpkZWZhdWx0UGx1Z2luRGlyZWN0b3JpZXMpOgogICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5EYXRhYmFzZTo6aXNQcmVmZXJyZWRQbHVnaW5EaXJlY3RvcnkpOgogICAgICAgICogcGx1
Z2lucy93aW4vUGx1Z2luUGFja2FnZVdpbi5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBh
Y2thZ2U6OmNvbXBhcmUpOgoKV2ViS2l0L3dpbjoKCiAgICAgICAgUmVuYW1lIElXZWJWaWV3UHJp
dmF0ZTo6YWRkQWRkaXRpb25hbFBsdWdpblBhdGggdG8KICAgICAgICBhZGRBZGRpdGlvbmFsUGx1
Z2luRGlyZWN0b3J5CgogICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKICAgICAgICAqIEludGVyZmFjZXMv
V2ViS2l0LmlkbDogVG91Y2hlZCB0byBtYWtlIHN1cmUgdGhlIEludGVyZmFjZXMgcHJvamVjdAog
ICAgICAgIHJlYnVpbGRzLgogICAgICAgICogV2ViVmlldy5jcHA6CiAgICAgICAgKFdlYlZpZXc6
OmFkZEFkZGl0aW9uYWxQbHVnaW5EaXJlY3RvcnkpOgogICAgICAgICogV2ViVmlldy5oOgoKV2Vi
S2l0VG9vbHM6CgogICAgICAgIFVwZGF0ZSBmb3IgcmVuYW1lIG9mIGFuIElXZWJWaWV3UHJpdmF0
ZSBtZXRob2QKCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICog
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKICAgICAgICAoY3JlYXRlV2Vi
Vmlld0FuZE9mZnNjcmVlbldpbmRvdyk6Ci0tLQogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjkgKysrKysrKysrKysKIFdlYkNvcmUvcGxhdGZv
cm0vcXQvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcCAgICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3Bs
YXRmb3JtL3d4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgICAgICAgIHwgICAgNCArLQogV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCAgICAgICAgICAgICAgICB8ICAgIDggKystLQog
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggICAgICAgICAgICAgICAgICB8ICAgMTIg
KystLQogV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAgICAgICAgICB8
ICAgMTAgKystLQogV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAgICAg
ICAgICB8ICAgNTYgKysrKysrKysrKy0tLS0tLS0tLS0KIFdlYkNvcmUvcGx1Z2lucy93aW4vUGx1
Z2luUGFja2FnZVdpbi5jcHAgICAgICAgICAgfCAgICA0ICstCiBXZWJLaXQvd2luL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKwogV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwgICAgICAgICB8ICAgIDIgKy0KIFdlYktpdC93
aW4vSW50ZXJmYWNlcy9XZWJLaXQuaWRsICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBXZWJL
aXQvd2luL1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQog
V2ViS2l0L3dpbi9XZWJWaWV3LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIg
Ky0KIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICA5ICsrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cCB8ICAgIDIgKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDEwNyBpbnNlcnRpb25zKCspLCA1NSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDBmNjI4ODUuLjQyNjFiMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQgQEAKIDIwMDgtMDMtMjkgIEFk
YW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCisgICAgICAgIFJlbmFtZSBQbHVnaW5EYXRh
YmFzZSdzICJQbHVnaW5QYXRocyIgdG8gIlBsdWdpbkRpcmVjdG9yaWVzIgorCisgICAgICAgIFRo
ZSBjb2RlIGV4cGVjdHMgdGhlc2UgcGF0aHMgdG8gYWxsIGJlIGRpcmVjdG9yaWVzLCBzbyBpdCBz
ZWVtcyBnb29kCisgICAgICAgIHRvIHJlZmVyIHRvIHRoZW0gYXMgc3VjaC4KKworICAgICAgICBU
aGlzIHBhdGNoIGp1c3QgY2hhbmdlcyAiUGF0aHMiIHRvICJEaXJlY3RvcmllcyIgYW5kICJQYXRo
IiB0bworICAgICAgICAiRGlyZWN0b3J5Ii4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVicy5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vd3gvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRh
dGFiYXNlOjppbnN0YWxsZWRQbHVnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFi
YXNlOjpyZWZyZXNoKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6c2V0UGx1Z2luRGlyZWN0b3JpZXMpOgorICAg
ICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpbkRhdGFiYXNlR3RrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5EaXJlY3Rvcmllcyk6CisgICAgICAgICog
cGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6
OnNhZmFyaVBsdWdpbnNEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJh
c2U6OmRlZmF1bHRQbHVnaW5EaXJlY3Rvcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5E
YXRhYmFzZTo6aXNQcmVmZXJyZWRQbHVnaW5EaXJlY3RvcnkpOgorICAgICAgICAqIHBsdWdpbnMv
d2luL1BsdWdpblBhY2thZ2VXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2Fn
ZTo6Y29tcGFyZSk6CisKKzIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29t
PgorCiAgICAgICAgIFJlbW92ZSBQbGF0Zm9ybUZpbGVUaW1lCiAKICAgICAgICAgVGhpcyB0eXBl
ZGVmIGlzIHRpbWVfdCBvbiBhbGwgcGxhdGZvcm1zLCBzbyB3ZSBjYW4ganVzdCBnZXQgcmlkIG9m
IHRoZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnMu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCmluZGV4IGE5
MmJiODcuLmU1NmMzZjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vcXQvVGVtcG9yYXJ5
TGlua1N0dWJzLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtTdHVi
cy5jcHAKQEAgLTcyLDggKzcyLDggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVBs
dWdpblNldCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luUGF0aHMoKSBjb25zdCB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiBQbHVnaW5TZXQoKTsgfQotVmVjdG9yPFN0cmluZz4gUGx1Z2lu
RGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5QYXRocygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJu
IFZlY3RvcjxTdHJpbmc+KCk7IH0KK1BsdWdpblNldCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2lu
c0luRGlyZWN0b3JpZXMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBQbHVnaW5T
ZXQoKTsgfQorVmVjdG9yPFN0cmluZz4gUGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5EaXJl
Y3RvcmllcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7IH0K
IGJvb2wgUGx1Z2luRGF0YWJhc2U6OmlzUHJlZmVycmVkUGx1Z2luUGF0aChjb25zdCBTdHJpbmcm
KSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsgfQogaW50IFBsdWdpblBhY2thZ2U6
OmNvbXBhcmUoY29uc3QgUGx1Z2luUGFja2FnZSYpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIDA7IH0KIGJvb2wgUGx1Z2luUGFja2FnZTo6ZmV0Y2hJbmZvKCkgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vd3gv
VGVtcG9yYXJ5TGlua1N0dWJzLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vd3gvVGVtcG9yYXJ5TGlu
a1N0dWJzLmNwcAppbmRleCAyMDk3NWFhLi4zMjRhNmE1IDEwMDc1NQotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL3d4L1RlbXBvcmFyeUxpbmtTdHVicy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS93
eC9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCkBAIC0xMTYsOCArMTE2LDggQEAgY29uc3QgV2ViQ29y
ZTo6Q3Vyc29yJiBXZWJDb3JlOjptb3ZlQ3Vyc29yKCkgeyByZXR1cm4gbG9jYWxDdXJzb3I7IH0K
IAogdm9pZCBXZWJDb3JlOjpmaW5kV29yZEJvdW5kYXJ5KFVDaGFyIGNvbnN0KiBzdHIsaW50IGxl
bixpbnQgcG9zaXRpb24saW50KiBzdGFydCwgaW50KiBlbmQpIHsgbm90SW1wbGVtZW50ZWQoKTsg
KnN0YXJ0PXBvc2l0aW9uOyAqZW5kPXBvc2l0aW9uOyB9CiAKLVBsdWdpblNldCBQbHVnaW5EYXRh
YmFzZTo6Z2V0UGx1Z2luc0luUGF0aHMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBQbHVnaW5TZXQoKTsgfQotVmVjdG9yPFN0cmluZz4gUGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQ
bHVnaW5QYXRocygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7
IH0KK1BsdWdpblNldCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMoKSBj
b25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBQbHVnaW5TZXQoKTsgfQorVmVjdG9yPFN0
cmluZz4gUGx1Z2luRGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5EaXJlY3RvcmllcygpIHsgbm90SW1w
bGVtZW50ZWQoKTsgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7IH0KIGJvb2wgUGx1Z2luRGF0YWJh
c2U6OmlzUHJlZmVycmVkUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmKSB7IG5vdEltcGxlbWVudGVk
KCk7IHJldHVybiBmYWxzZTsgfQogaW50IFBsdWdpblBhY2thZ2U6OmNvbXBhcmUoY29uc3QgUGx1
Z2luUGFja2FnZSYpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIGJvb2wg
UGx1Z2luUGFja2FnZTo6ZmV0Y2hJbmZvKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCmluZGV4IGRiYTVlZjkuLjA0MTJkOTEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApAQCAtNDAsNyArNDAsNyBAQCBQbHVnaW5E
YXRhYmFzZSogUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMoKQogICAgIAogICAgIGlm
ICghcGx1Z2lucykgewogICAgICAgICBwbHVnaW5zID0gbmV3IFBsdWdpbkRhdGFiYXNlOwotICAg
ICAgICBwbHVnaW5zLT5zZXRQbHVnaW5QYXRocyhQbHVnaW5EYXRhYmFzZTo6ZGVmYXVsdFBsdWdp
blBhdGhzKCkpOworICAgICAgICBwbHVnaW5zLT5zZXRQbHVnaW5EaXJlY3RvcmllcyhQbHVnaW5E
YXRhYmFzZTo6ZGVmYXVsdFBsdWdpbkRpcmVjdG9yaWVzKCkpOwogICAgICAgICBwbHVnaW5zLT5y
ZWZyZXNoKCk7CiAgICAgfQogCkBAIC01Nyw5ICs1Nyw5IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6
OmlzTUlNRVR5cGVSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgcmV0dXJu
IChyZWZyZXNoKCkgJiYgbV9yZWdpc3RlcmVkTUlNRVR5cGVzLmNvbnRhaW5zKG1pbWVUeXBlKSk7
CiB9CiAKLXZvaWQgUGx1Z2luRGF0YWJhc2U6OmFkZEV4dHJhUGx1Z2luUGF0aChjb25zdCBTdHJp
bmcmIHBhdGgpCit2b2lkIFBsdWdpbkRhdGFiYXNlOjphZGRFeHRyYVBsdWdpbkRpcmVjdG9yeShj
b25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgbV9wbHVnaW5QYXRocy5hcHBlbmQocGF0aCk7Cisg
ICAgbV9wbHVnaW5EaXJlY3Rvcmllcy5hcHBlbmQocGF0aCk7CiAgICAgcmVmcmVzaCgpOwogfQog
CkBAIC03MCw3ICs3MCw3IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6OnJlZnJlc2goKQogICAgIGJv
b2wgcGx1Z2luU2V0Q2hhbmdlZCA9IGZhbHNlOwogCiAgICAgLy8gQ3JlYXRlIGEgbmV3IHNldCBv
ZiBwbHVnaW5zCi0gICAgbmV3UGx1Z2lucyA9IGdldFBsdWdpbnNJblBhdGhzKCk7CisgICAgbmV3
UGx1Z2lucyA9IGdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKCk7CiAKICAgICBpZiAoIW1fcGx1Z2lu
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9yZWdpc3RlcmVkTUlNRVR5cGVzLmNsZWFyKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5oCmluZGV4IGY3OWI4ODEuLjA1NzgwMmUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EYXRhYmFzZS5oCkBAIC01MCwyMyArNTAsMjMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBib29sIHJlZnJlc2goKTsKICAgICAgICAgVmVjdG9yPFBsdWdpblBhY2thZ2UqPiBw
bHVnaW5zKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNNSU1FVHlwZVJlZ2lzdGVyZWQoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSk7Ci0gICAgICAgIHZvaWQgYWRkRXh0cmFQbHVnaW5QYXRoKGNvbnN0
IFN0cmluZyYpOworICAgICAgICB2b2lkIGFkZEV4dHJhUGx1Z2luRGlyZWN0b3J5KGNvbnN0IFN0
cmluZyYpOwogCi0gICAgICAgIHN0YXRpYyBib29sIGlzUHJlZmVycmVkUGx1Z2luUGF0aChjb25z
dCBTdHJpbmcmIHBhdGgpOworICAgICAgICBzdGF0aWMgYm9vbCBpc1ByZWZlcnJlZFBsdWdpbkRp
cmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpOwogICAgICAgICBzdGF0aWMgaW50IHByZWZlcnJl
ZFBsdWdpbkNvbXBhcmUoY29uc3Qgdm9pZCosIGNvbnN0IHZvaWQqKTsKIAogICAgICAgICBQbHVn
aW5QYWNrYWdlKiBmaW5kUGx1Z2luKGNvbnN0IEtVUkwmLCBTdHJpbmcmIG1pbWVUeXBlKTsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgc2V0UGx1Z2luUGF0aHMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHBhdGhzKSB7IG1fcGx1Z2luUGF0aHMgPSBwYXRoczsgfQotICAgICAgICBQbHVnaW5T
ZXQgZ2V0UGx1Z2luc0luUGF0aHMoKSBjb25zdDsKKyAgICAgICAgdm9pZCBzZXRQbHVnaW5EaXJl
Y3Rvcmllcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpIHsgbV9wbHVnaW5EaXJlY3Rvcmll
cyA9IHBhdGhzOyB9CisgICAgICAgIFBsdWdpblNldCBnZXRQbHVnaW5zSW5EaXJlY3Rvcmllcygp
IGNvbnN0OwogCiAgICAgICAgIFBsdWdpblBhY2thZ2UqIHBsdWdpbkZvck1JTUVUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpOwogICAgICAgICBTdHJpbmcgTUlNRVR5cGVGb3JFeHRlbnNpb24o
Y29uc3QgU3RyaW5nJiBleHRlbnNpb24pIGNvbnN0OwogCi0gICAgICAgIHN0YXRpYyBWZWN0b3I8
U3RyaW5nPiBkZWZhdWx0UGx1Z2luUGF0aHMoKTsKKyAgICAgICAgc3RhdGljIFZlY3RvcjxTdHJp
bmc+IGRlZmF1bHRQbHVnaW5EaXJlY3RvcmllcygpOwogCi0gICAgICAgIFZlY3RvcjxTdHJpbmc+
IG1fcGx1Z2luUGF0aHM7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1fcGx1Z2luRGlyZWN0b3Jp
ZXM7CiAgICAgICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRNSU1FVHlwZXM7CiAgICAg
ICAgIFBsdWdpblNldCBtX3BsdWdpbnM7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1
Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVn
aW5EYXRhYmFzZUd0ay5jcHAKaW5kZXggNTVjYTA1OC4uMGZiMDE1MCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAKQEAgLTMyLDE0ICszMiwxNCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVBsdWdpblNldCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0lu
UGF0aHMoKSBjb25zdAorUGx1Z2luU2V0IFBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5EaXJl
Y3RvcmllcygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGEgY2FzZSBp
bnNlbnNpdGl2ZSBzZXQuCiAgICAgSGFzaFNldDxTdHJpbmc+IHVuaXF1ZUZpbGVuYW1lczsKICAg
ICBQbHVnaW5TZXQgcGx1Z2luczsKIAotICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtX3BsdWdpblBhdGhzLmVuZCgpOwotICAgIGZvciAoVmVjdG9yPFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gbV9wbHVnaW5QYXRocy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQp
IHsKKyAgICBWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wbHVnaW5EaXJl
Y3Rvcmllcy5lbmQoKTsKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1fcGx1Z2luRGlyZWN0b3JpZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAg
ICAgIEdEaXIqIGRpciA9IGdfZGlyX29wZW4oKGl0LT51dGY4KCkpLmRhdGEoKSwgMCwgMCk7CiAg
ICAgICAgIGlmICghZGlyKQogICAgICAgICAgICAgY29udGludWU7CkBAIC02MCw3ICs2MCw3IEBA
IFBsdWdpblNldCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luUGF0aHMoKSBjb25zdAogICAg
IHJldHVybiBwbHVnaW5zOwogfQogCi1WZWN0b3I8U3RyaW5nPiBQbHVnaW5EYXRhYmFzZTo6ZGVm
YXVsdFBsdWdpblBhdGhzKCkKK1ZlY3RvcjxTdHJpbmc+IFBsdWdpbkRhdGFiYXNlOjpkZWZhdWx0
UGx1Z2luRGlyZWN0b3JpZXMoKQogewogICAgIFZlY3RvcjxTdHJpbmc+IHBhdGhzOwogICAgIGdj
aGFyKiBwYXRoOwpAQCAtOTgsNyArOTgsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbHVnaW5EYXRhYmFz
ZTo6ZGVmYXVsdFBsdWdpblBhdGhzKCkKICAgICByZXR1cm4gcGF0aHM7CiB9CiAKLWJvb2wgUGx1
Z2luRGF0YWJhc2U6OmlzUHJlZmVycmVkUGx1Z2luUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiti
b29sIFBsdWdpbkRhdGFiYXNlOjppc1ByZWZlcnJlZFBsdWdpbkRpcmVjdG9yeShjb25zdCBTdHJp
bmcmIHBhdGgpCiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpbkRhdGFiYXNlV2luLmNwcAppbmRleCA0NDA0OTg0Li5mODU0NWUwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcApAQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgYWRkUGx1Z2luc0Zyb21SZWdpc3RyeShIS0VZIHJvb3RLZXksIFBsdWdpblNl
dCYgcGx1Z2lucykKICAgICBSZWdDbG9zZUtleShrZXkpOwogfQogCi1QbHVnaW5TZXQgUGx1Z2lu
RGF0YWJhc2U6OmdldFBsdWdpbnNJblBhdGhzKCkgY29uc3QKK1BsdWdpblNldCBQbHVnaW5EYXRh
YmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMoKSBjb25zdAogewogICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSBhIGNhc2UgaW5zZW5zaXRpdmUgc2V0LgogICAgIEhhc2hTZXQ8U3RyaW5n
PiB1bmlxdWVGaWxlbmFtZXM7CkBAIC04OSw4ICs4OSw4IEBAIFBsdWdpblNldCBQbHVnaW5EYXRh
YmFzZTo6Z2V0UGx1Z2luc0luUGF0aHMoKSBjb25zdAogICAgIFJlZlB0cjxQbHVnaW5QYWNrYWdl
PiBvbGRXTVBQbHVnaW47CiAgICAgUmVmUHRyPFBsdWdpblBhY2thZ2U+IG5ld1dNUFBsdWdpbjsK
IAotICAgIFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BsdWdpblBhdGhz
LmVuZCgpOwotICAgIGZvciAoVmVjdG9yPFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9w
bHVnaW5QYXRocy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBWZWN0b3I8U3RyaW5n
Pjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wbHVnaW5EaXJlY3Rvcmllcy5lbmQoKTsKKyAgICBm
b3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1Z2luRGlyZWN0b3Jp
ZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFN0cmluZyBwYXR0ZXJuID0g
Kml0ICsgIlxcKiI7CiAKICAgICAgICAgaEZpbmQgPSBGaW5kRmlyc3RGaWxlVyhwYXR0ZXJuLmNo
YXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCksICZmaW5kRmlsZURhdGEpOwpAQCAtMTgwLDcg
KzE4MCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlVmVyc2lvbnMoY29uc3QgVmVjdG9y
PGludD4mIHZlcnNpb25BLCBjb25zdCBWZWN0b3I8aW50CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1zdGF0aWMgaW5saW5lIHZvaWQgYWRkTW96aWxsYVBsdWdpblBhdGhzKFZlY3RvcjxTdHJpbmc+
JiBwYXRocykKK3N0YXRpYyBpbmxpbmUgdm9pZCBhZGRNb3ppbGxhUGx1Z2luRGlyZWN0b3JpZXMo
VmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewogICAgIC8vIEVudW1lcmF0ZSBhbGwgTW96aWxsYSBw
bHVnaW4gZGlyZWN0b3JpZXMgaW4gdGhlIHJlZ2lzdHJ5CiAgICAgSEtFWSBrZXk7CkBAIC0yMjQs
NyArMjI0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZE1vemlsbGFQbHVnaW5QYXRocyhWZWN0
b3I8U3RyaW5nPiYgcGF0aHMpCiAgICAgfQogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYWRkV2lu
ZG93c01lZGlhUGxheWVyUGx1Z2luUGF0aChWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCitzdGF0aWMg
aW5saW5lIHZvaWQgYWRkV2luZG93c01lZGlhUGxheWVyUGx1Z2luRGlyZWN0b3J5KFZlY3RvcjxT
dHJpbmc+JiBwYXRocykKIHsKICAgICAvLyBUaGUgbmV3IFdNUCBGaXJlZm94IHBsdWdpbiBpcyBp
bnN0YWxsZWQgaW4gXFBGaWxlc1xQbHVnaW5zIGlmIGl0IGNhbid0IGZpbmQgYW55IEZpcmVmb3gg
aW5zdGFsbHMKICAgICBXQ0hBUiBwbHVnaW5EaXJlY3RvcnlTdHJbX01BWF9QQVRIICsgMV07CkBA
IC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFdpbmRvd3NNZWRpYVBsYXll
clBsdWdpblBhdGgoVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogICAgICAgICBwYXRocy5hcHBlbmQo
U3RyaW5nKGluc3RhbGxhdGlvbkRpcmVjdG9yeVN0ciwgaW5zdGFsbGF0aW9uRGlyZWN0b3J5U2l6
ZSAvIHNpemVvZihXQ0hBUikgLSAxKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhZGRRdWlj
a1RpbWVQbHVnaW5QYXRoKFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBhZGRRdWlja1RpbWVQbHVnaW5EaXJlY3RvcnkoVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogewog
ICAgIERXT1JEIHR5cGU7CiAgICAgV0NIQVIgaW5zdGFsbGF0aW9uRGlyZWN0b3J5U3RyW19NQVhf
UEFUSF07CkBAIC0yNTcsNyArMjU3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFF1aWNrVGlt
ZVBsdWdpblBhdGgoVmVjdG9yPFN0cmluZz4mIHBhdGhzKQogICAgIH0KIH0KIAotc3RhdGljIGlu
bGluZSB2b2lkIGFkZEFkb2JlQWNyb2JhdFBsdWdpblBhdGgoVmVjdG9yPFN0cmluZz4mIHBhdGhz
KQorc3RhdGljIGlubGluZSB2b2lkIGFkZEFkb2JlQWNyb2JhdFBsdWdpbkRpcmVjdG9yeShWZWN0
b3I8U3RyaW5nPiYgcGF0aHMpCiB7CiAgICAgSEtFWSBrZXk7CiAgICAgSFJFU1VMVCByZXN1bHQg
PSBSZWdPcGVuS2V5RXgoSEtFWV9MT0NBTF9NQUNISU5FLCBURVhUKCJTb2Z0d2FyZVxcQWRvYmVc
XEFjcm9iYXQgUmVhZGVyIiksIDAsIEtFWV9SRUFELCAma2V5KTsKQEAgLTMwMiwxNCArMzAyLDE0
IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRBZG9iZUFjcm9iYXRQbHVnaW5QYXRoKFZlY3RvcjxT
dHJpbmc+JiBwYXRocykKICAgICBSZWdDbG9zZUtleShrZXkpOwogfQogCi1zdGF0aWMgaW5saW5l
IFN0cmluZyBzYWZhcmlQbHVnaW5zUGF0aCgpCitzdGF0aWMgaW5saW5lIFN0cmluZyBzYWZhcmlQ
bHVnaW5zRGlyZWN0b3J5KCkKIHsKICAgICBXQ0hBUiBtb2R1bGVGaWxlTmFtZVN0cltfTUFYX1BB
VEhdOwotICAgIHN0YXRpYyBTdHJpbmcgcGx1Z2luc1BhdGg7Ci0gICAgc3RhdGljIGJvb2wgY2Fj
aGVkUGx1Z2luUGF0aCA9IGZhbHNlOworICAgIHN0YXRpYyBTdHJpbmcgcGx1Z2luc0RpcmVjdG9y
eTsKKyAgICBzdGF0aWMgYm9vbCBjYWNoZWRQbHVnaW5EaXJlY3RvcnkgPSBmYWxzZTsKIAotICAg
IGlmICghY2FjaGVkUGx1Z2luUGF0aCkgewotICAgICAgICBjYWNoZWRQbHVnaW5QYXRoID0gdHJ1
ZTsKKyAgICBpZiAoIWNhY2hlZFBsdWdpbkRpcmVjdG9yeSkgeworICAgICAgICBjYWNoZWRQbHVn
aW5EaXJlY3RvcnkgPSB0cnVlOwogCiAgICAgICAgIGludCBtb2R1bGVGaWxlTmFtZUxlbiA9IEdl
dE1vZHVsZUZpbGVOYW1lKDAsIG1vZHVsZUZpbGVOYW1lU3RyLCBfTUFYX1BBVEgpOwogCkBAIC0z
MTksMTMgKzMxOSwxMyBAQCBzdGF0aWMgaW5saW5lIFN0cmluZyBzYWZhcmlQbHVnaW5zUGF0aCgp
CiAgICAgICAgIGlmICghUGF0aFJlbW92ZUZpbGVTcGVjKG1vZHVsZUZpbGVOYW1lU3RyKSkKICAg
ICAgICAgICAgIGdvdG8gZXhpdDsKIAotICAgICAgICBwbHVnaW5zUGF0aCA9IFN0cmluZyhtb2R1
bGVGaWxlTmFtZVN0cikgKyAiXFxQbHVnaW5zIjsKKyAgICAgICAgcGx1Z2luc0RpcmVjdG9yeSA9
IFN0cmluZyhtb2R1bGVGaWxlTmFtZVN0cikgKyAiXFxQbHVnaW5zIjsKICAgICB9CiBleGl0Ogot
ICAgIHJldHVybiBwbHVnaW5zUGF0aDsKKyAgICByZXR1cm4gcGx1Z2luc0RpcmVjdG9yeTsKIH0K
IAotc3RhdGljIGlubGluZSB2b2lkIGFkZE1hY3JvbWVkaWFQbHVnaW5QYXRocyhWZWN0b3I8U3Ry
aW5nPiYgcGF0aHMpCitzdGF0aWMgaW5saW5lIHZvaWQgYWRkTWFjcm9tZWRpYVBsdWdpbkRpcmVj
dG9yaWVzKFZlY3RvcjxTdHJpbmc+JiBwYXRocykKIHsKICAgICBXQ0hBUiBzeXN0ZW1EaXJlY3Rv
cnlTdHJbTUFYX1BBVEhdOwogCkBAIC0zNDEsMjggKzM0MSwyOCBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgYWRkTWFjcm9tZWRpYVBsdWdpblBhdGhzKFZlY3RvcjxTdHJpbmc+JiBwYXRocykKICAgICBw
YXRocy5hcHBlbmQobWFjcm9tZWRpYURpcmVjdG9yeVN0cik7CiB9CiAKLVZlY3RvcjxTdHJpbmc+
IFBsdWdpbkRhdGFiYXNlOjpkZWZhdWx0UGx1Z2luUGF0aHMoKQorVmVjdG9yPFN0cmluZz4gUGx1
Z2luRGF0YWJhc2U6OmRlZmF1bHRQbHVnaW5EaXJlY3RvcmllcygpCiB7CiAgICAgVmVjdG9yPFN0
cmluZz4gcGF0aHM7Ci0gICAgU3RyaW5nIG91clBhdGggPSBzYWZhcmlQbHVnaW5zUGF0aCgpOwor
ICAgIFN0cmluZyBvdXJEaXJlY3RvcnkgPSBzYWZhcmlQbHVnaW5zRGlyZWN0b3J5KCk7CiAKLSAg
ICBpZiAoIW91clBhdGguaXNOdWxsKCkpCi0gICAgICAgIHBhdGhzLmFwcGVuZChvdXJQYXRoKTsK
LSAgICBhZGRRdWlja1RpbWVQbHVnaW5QYXRoKHBhdGhzKTsKLSAgICBhZGRBZG9iZUFjcm9iYXRQ
bHVnaW5QYXRoKHBhdGhzKTsKLSAgICBhZGRNb3ppbGxhUGx1Z2luUGF0aHMocGF0aHMpOwotICAg
IGFkZFdpbmRvd3NNZWRpYVBsYXllclBsdWdpblBhdGgocGF0aHMpOwotICAgIGFkZE1hY3JvbWVk
aWFQbHVnaW5QYXRocyhwYXRocyk7CisgICAgaWYgKCFvdXJEaXJlY3RvcnkuaXNOdWxsKCkpCisg
ICAgICAgIHBhdGhzLmFwcGVuZChvdXJEaXJlY3RvcnkpOworICAgIGFkZFF1aWNrVGltZVBsdWdp
bkRpcmVjdG9yeShwYXRocyk7CisgICAgYWRkQWRvYmVBY3JvYmF0UGx1Z2luRGlyZWN0b3J5KHBh
dGhzKTsKKyAgICBhZGRNb3ppbGxhUGx1Z2luRGlyZWN0b3JpZXMocGF0aHMpOworICAgIGFkZFdp
bmRvd3NNZWRpYVBsYXllclBsdWdpbkRpcmVjdG9yeShwYXRocyk7CisgICAgYWRkTWFjcm9tZWRp
YVBsdWdpbkRpcmVjdG9yaWVzKHBhdGhzKTsKIAogICAgIHJldHVybiBwYXRoczsKIH0KIAotYm9v
bCBQbHVnaW5EYXRhYmFzZTo6aXNQcmVmZXJyZWRQbHVnaW5QYXRoKGNvbnN0IFN0cmluZyYgcGF0
aCkKK2Jvb2wgUGx1Z2luRGF0YWJhc2U6OmlzUHJlZmVycmVkUGx1Z2luRGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCkKIHsKLSAgICBTdHJpbmcgb3VyUGF0aCA9IHNhZmFyaVBsdWdpbnNQYXRo
KCk7CisgICAgU3RyaW5nIG91ckRpcmVjdG9yeSA9IHNhZmFyaVBsdWdpbnNEaXJlY3RvcnkoKTsK
IAotICAgIGlmICghb3VyUGF0aC5pc051bGwoKSAmJiAhcGF0aC5pc051bGwoKSkKLSAgICAgICAg
cmV0dXJuIG91clBhdGggPT0gcGF0aDsKKyAgICBpZiAoIW91ckRpcmVjdG9yeS5pc051bGwoKSAm
JiAhcGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIG91ckRpcmVjdG9yeSA9PSBwYXRoOwog
CiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9Q
bHVnaW5QYWNrYWdlV2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luUGFja2FnZVdp
bi5jcHAKaW5kZXggMWU3NDMxMS4uZTBiZDBhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5z
L3dpbi9QbHVnaW5QYWNrYWdlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdp
blBhY2thZ2VXaW4uY3BwCkBAIC03NSw4ICs3NSw4IEBAIGludCBQbHVnaW5QYWNrYWdlOjpjb21w
YXJlKGNvbnN0IFBsdWdpblBhY2thZ2UmIGNvbXBhcmVUbykgY29uc3QKICAgICAgICAgcmV0dXJu
IEFhbGxvd3NNdWx0aXBsZUluc3RhbmNlcyA/IC0xIDogMTsKIAogICAgIC8vIFNvcnQgcGx1Zy1p
bnMgaW4gYSBwcmVmZXJyZWQgcGF0aCBmaXJzdC4KLSAgICBib29sIEFpc0luUHJlZmVycmVkUGF0
aCA9IFBsdWdpbkRhdGFiYXNlOjppc1ByZWZlcnJlZFBsdWdpblBhdGgocGFyZW50RGlyZWN0b3J5
KCkpOwotICAgIGJvb2wgQmlzSW5QcmVmZXJyZWRQYXRoID0gUGx1Z2luRGF0YWJhc2U6OmlzUHJl
ZmVycmVkUGx1Z2luUGF0aChjb21wYXJlVG8ucGFyZW50RGlyZWN0b3J5KCkpOworICAgIGJvb2wg
QWlzSW5QcmVmZXJyZWRQYXRoID0gUGx1Z2luRGF0YWJhc2U6OmlzUHJlZmVycmVkUGx1Z2luRGly
ZWN0b3J5KHBhcmVudERpcmVjdG9yeSgpKTsKKyAgICBib29sIEJpc0luUHJlZmVycmVkUGF0aCA9
IFBsdWdpbkRhdGFiYXNlOjppc1ByZWZlcnJlZFBsdWdpbkRpcmVjdG9yeShjb21wYXJlVG8ucGFy
ZW50RGlyZWN0b3J5KCkpOwogICAgIGlmIChBaXNJblByZWZlcnJlZFBhdGggIT0gQmlzSW5QcmVm
ZXJyZWRQYXRoKQogICAgICAgICByZXR1cm4gQWlzSW5QcmVmZXJyZWRQYXRoID8gLTEgOiAxOwog
CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9n
CmluZGV4IDMxYTMyZDcuLmM1NGRkNTggMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDgtMDMtMjkg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBJV2ViVmll
d1ByaXZhdGU6OmFkZEFkZGl0aW9uYWxQbHVnaW5QYXRoIHRvCisgICAgICAgIGFkZEFkZGl0aW9u
YWxQbHVnaW5EaXJlY3RvcnkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL1dlYktpdC5pZGw6IFRvdWNoZWQgdG8gbWFrZSBzdXJlIHRoZSBJbnRlcmZhY2Vz
IHByb2plY3QKKyAgICAgICAgcmVidWlsZHMuCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAg
ICAgIChXZWJWaWV3OjphZGRBZGRpdGlvbmFsUGx1Z2luRGlyZWN0b3J5KToKKyAgICAgICAgKiBX
ZWJWaWV3Lmg6CisKIDIwMDgtMDMtMjYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBnbWFpbC5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKaW5kZXggMDk5NGU2Yy4uMTQxMWVmYiAxMDA2NDQKLS0t
IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKKysrIGIvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKQEAgLTk0LDcgKzk0LDcgQEAgaW50
ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZSA6IElVbmtub3duCiAgICAgSFJFU1VMVCB0YWJLZXlDeWNs
ZXNUaHJvdWdoRWxlbWVudHMoW291dCwgcmV0dmFsXSBCT09MKiByZXN1bHQpOwogCiAgICAgSFJF
U1VMVCBzZXRBbGxvd1NpdGVTcGVjaWZpY0hhY2tzKFtpbl0gQk9PTCBhbGxvd3MpOwotICAgIEhS
RVNVTFQgYWRkQWRkaXRpb25hbFBsdWdpblBhdGgoW2luXSBCU1RSIHBhdGgpOworICAgIEhSRVNV
TFQgYWRkQWRkaXRpb25hbFBsdWdpbkRpcmVjdG9yeShbaW5dIEJTVFIgcGF0aCk7CiAKICAgICBI
UkVTVUxUIGxvYWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3KFtpbl0gSVdlYlZpZXcqIG90
aGVyVmlldyk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9XZWJLaXQuaWRs
IGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKaW5kZXggNjZjMzA3Yy4uNDNjMjky
MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKKysrIGIvV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhODI3M2EyLi5kNjBlMmI2IDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQy
NzQsMTAgKzQyNzQsMTAgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRB
bGxvd1NpdGVTcGVjaWZpY0hhY2tzKAogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmFkZEFkZGl0aW9uYWxQbHVnaW5QYXRoKCAKK0hSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6YWRkQWRkaXRpb25hbFBsdWdpbkRpcmVjdG9y
eSggCiAgICAgICAgIC8qIFtpbl0gKi8gQlNUUiBwYXRoKQogewotICAgIFBsdWdpbkRhdGFiYXNl
OjppbnN0YWxsZWRQbHVnaW5zKCktPmFkZEV4dHJhUGx1Z2luUGF0aChTdHJpbmcocGF0aCwgU3lz
U3RyaW5nTGVuKHBhdGgpKSk7CisgICAgUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxlZFBsdWdpbnMo
KS0+YWRkRXh0cmFQbHVnaW5EaXJlY3RvcnkoU3RyaW5nKHBhdGgsIFN5c1N0cmluZ0xlbihwYXRo
KSkpOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZp
ZXcuaCBiL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDJjZDU4NTUuLjI3NDZiMjIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5oCkBA
IC02NDEsNyArNjQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBzZXRBbGxvd1NpdGVTcGVjaWZpY0hhY2tzKAogICAgICAgICAvKiBbaW5dICovIEJP
T0wgYWxsb3dzKTsKIAotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRB
ZGRpdGlvbmFsUGx1Z2luUGF0aCggCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGFkZEFkZGl0aW9uYWxQbHVnaW5EaXJlY3RvcnkoIAogICAgICAgICAvKiBbaW5dICovIEJT
VFIgcGF0aCk7ICAgIAogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGxv
YWRCYWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3KCAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA0OTQ4YzJmLi5iZDZkYWUw
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBmb3IgcmVuYW1lIG9mIGFuIElXZWJWaWV3UHJp
dmF0ZSBtZXRob2QKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChj
cmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KToKKwogMjAwOC0wMy0yNiAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAK
aW5kZXggNzNiZTEyMy4uMWYyNzgxNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05NjQsNyArOTY0LDcgQEAgSVdlYlZpZXcq
IGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coSFdORCogd2ViVmlld1dpbmRvdykKICAg
ICBCU1RSIHBsdWdpblBhdGggPSBTeXNBbGxvY1N0cmluZ0xlbigwLCBleGVQYXRoKCkubGVuZ3Ro
KCkgKyBfdGNzbGVuKFRlc3RQbHVnaW5EaXIpKTsKICAgICBfdGNzY3B5KHBsdWdpblBhdGgsIGV4
ZVBhdGgoKS5jX3N0cigpKTsKICAgICBfdGNzY2F0KHBsdWdpblBhdGgsIFRlc3RQbHVnaW5EaXIp
OwotICAgIGZhaWxlZCA9IEZBSUxFRCh2aWV3UHJpdmF0ZS0+YWRkQWRkaXRpb25hbFBsdWdpblBh
dGgocGx1Z2luUGF0aCkpOworICAgIGZhaWxlZCA9IEZBSUxFRCh2aWV3UHJpdmF0ZS0+YWRkQWRk
aXRpb25hbFBsdWdpbkRpcmVjdG9yeShwbHVnaW5QYXRoKSk7CiAgICAgU3lzRnJlZVN0cmluZyhw
bHVnaW5QYXRoKTsKICAgICBpZiAoZmFpbGVkKQogICAgICAgICByZXR1cm4gMDsKLS0gCjEuNS40
LjQuNTM3LmdiNzVhYQoK
</data>
<flag name="review"
          id="8807"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20198</attachid>
            <date>2008-03-29 10:52:23 -0700</date>
            <delta_ts>2008-03-29 10:52:23 -0700</delta_ts>
            <desc>Reduced testcase that works in Firefox as well</desc>
            <filename>test65.html</filename>
            <type>text/html</type>
            <size>752</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">PGJvZHk+CjxzY3JpcHQ+CiAgICBmdW5jdGlvbiB0ZXN0NjUoKSB7CiAgICAgIC8vIHRlc3QgNjU6
IGJyaW5nIGluIGEgY291cGxlIG9mIFNWRyBmaWxlcyBhbmQgc29tZSBIVE1MIGZpbGVzIGR5bmFt
aWNhbGx5IC0gcHJlcGFyYXRpb24gZm9yIGxhdGVyIHRlc3RzIGluIHRoaXMgYnVja2V0CiAgICAg
IHZhciBrdW5nRnVEZWF0aEdyaXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7CiAgICAg
IHZhciBvYmplY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvYmplY3QnKTsKICAgICAgb2Jq
ZWN0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsga3VuZ0Z1RGVhdGhHcmlwLnRpdGxlICs9ICcyJyB9
OwogICAgICBvYmplY3QuZGF0YSA9ICJodHRwOi8vYWNpZDMuYWNpZHRlc3RzLm9yZy9zdmcueG1s
IjsKICAgICAga3VuZ0Z1RGVhdGhHcmlwLmFwcGVuZENoaWxkKG9iamVjdCk7CiAgICAgIC8vIGFk
ZCB0aGUgbG90IHRvIHRoZSBkb2N1bWVudAogICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGt1bmdGdURlYXRoR3JpcCk7CiAgICAgIHJldHVybiA1OwogICAgfQoKICAgIHZhciBiZWZvcmVU
ZXN0ID0gbmV3IERhdGUoKTsKICAgIHRlc3Q2NSgpOwogICAgdmFyIGVsYXBzZWRUZXN0ID0gbmV3
IERhdGUoKSAtIGJlZm9yZVRlc3Q7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKCdUZXN0IHRvb2sgJyArIGVsYXBzZWRUZXN0ICsgJ21zXG4nKSk7
Cjwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20199</attachid>
            <date>2008-03-29 11:16:53 -0700</date>
            <delta_ts>2008-03-29 11:22:25 -0700</delta_ts>
            <desc>Cleanup 5: Return const String&amp; from PluginPackage methods</desc>
            <filename>0001--Make-some-PluginPackage-methods-return-const.patch</filename>
            <type>text/plain</type>
            <size>2060</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBkZGRjN2VlN2M4ZjNjMWU0ZDQxM2QzN2Q2MmU3YmVhMjkxNTljOWMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDE0OjE1OjU0IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgTWFr
ZSBzb21lIFBsdWdpblBhY2thZ2UgbWV0aG9kcyByZXR1cm4gY29uc3QgU3RyaW5nJgoKICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBwbHVnaW5zL1BsdWdpblBh
Y2thZ2UuaDoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgIHwgICAgOCArKysr
KysrKwogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuaCB8ICAgIDggKysrKy0tLS0KIDIg
ZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQyNjFiMmUu
LmFlNjAyYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTMgQEAKIDIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5A
YXBwbGUuY29tPgogCisgICAgICAgIE1ha2Ugc29tZSBQbHVnaW5QYWNrYWdlIG1ldGhvZHMgcmV0
dXJuIGNvbnN0IFN0cmluZyYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5oOgorCisyMDA4LTAzLTI5ICBBZGFt
IFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KKwogICAgICAgICBSZW5hbWUgUGx1Z2luRGF0YWJh
c2UncyAiUGx1Z2luUGF0aHMiIHRvICJQbHVnaW5EaXJlY3RvcmllcyIKIAogICAgICAgICBUaGUg
Y29kZSBleHBlY3RzIHRoZXNlIHBhdGhzIHRvIGFsbCBiZSBkaXJlY3Rvcmllcywgc28gaXQgc2Vl
bXMgZ29vZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuaCBiL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmgKaW5kZXggMzhmYjUwZi4uZjc3Y2IwNSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuaAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luUGFja2FnZS5oCkBAIC00NSwxMCArNDUsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB+UGx1Z2luUGFja2FnZSgpOwogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxQbHVnaW5QYWNrYWdlPiBjcmVhdGVQYWNrYWdlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3Qg
dGltZV90JiBsYXN0TW9kaWZpZWQpOwogICAgICAgICAKLSAgICAgICAgU3RyaW5nIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICAgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgY29u
c3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQotICAgICAgICBTdHJpbmcgZmlsZU5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2ZpbGVOYW1lOyB9Ci0gICAgICAgIFN0cmluZyBwYXJlbnREaXJlY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudERpcmVjdG9yeTsgfQorICAgICAgICBjb25zdCBT
dHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICAgICAgY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZU5hbWU7IH0K
KyAgICAgICAgY29uc3QgU3RyaW5nJiBwYXJlbnREaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudERpcmVjdG9yeTsgfQogCiAgICAgICAgIGNvbnN0IE1JTUVUb0Rlc2NyaXB0aW9uc01h
cCYgbWltZVRvRGVzY3JpcHRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9taW1lVG9EZXNjcmlwdGlv
bnM7IH0KICAgICAgICAgY29uc3QgTUlNRVRvRXh0ZW5zaW9uc01hcCYgbWltZVRvRXh0ZW5zaW9u
cygpIGNvbnN0IHsgcmV0dXJuIG1fbWltZVRvRXh0ZW5zaW9uczsgfQotLSAKMS41LjQuNC41Mzcu
Z2I3NWFhCgo=
</data>
<flag name="review"
          id="8808"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20200</attachid>
            <date>2008-03-29 11:25:09 -0700</date>
            <delta_ts>2008-03-29 11:32:20 -0700</delta_ts>
            <desc>Cleanup 6: Change getPluginsInDirectories to use an out parameter</desc>
            <filename>0001--Change-getPluginsInDirectories-to-use-an-out.patch</filename>
            <type>text/plain</type>
            <size>4801</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBlYTQ1OWQxYzZkY2JmM2FhYThiMWRhNDdlN2QwNGJkNzA3NGEwNTUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDI5IE1hciAyMDA4IDE0OjI0OjE4IC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgQ2hh
bmdlIGdldFBsdWdpbnNJbkRpcmVjdG9yaWVzIHRvIHVzZSBhbiBvdXQgcGFyYW1ldGVyCgogICAg
ICAgIFRoaXMgYXZvaWRzIGNvcHlpbmcgYSBIYXNoU2V0LgoKICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OnJlZnJlc2gpOgogICAgICAgICogcGx1Z2lu
cy9QbHVnaW5EYXRhYmFzZS5oOgogICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VH
dGsuY3BwOgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luRGly
ZWN0b3JpZXMpOgogICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4uY3BwOgog
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMp
OgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiAr
KysrKysrKysrKysrKysrCiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwICAgICAg
ICB8ICAgIDIgKy0KIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oICAgICAgICAgIHwg
ICAgMiArLQogV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAgfCAgICA1
ICstLS0tCiBXZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcCB8ICAgIDUg
Ky0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjAgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBhZTYwMmI4Li5kMGY5YjU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDA4LTAzLTI5ICBBZGFtIFJvYmVu
ICA8YXJvYmVuQGFwcGxlLmNvbT4KIAorICAgICAgICBDaGFuZ2UgZ2V0UGx1Z2luc0luRGlyZWN0
b3JpZXMgdG8gdXNlIGFuIG91dCBwYXJhbWV0ZXIKKworICAgICAgICBUaGlzIGF2b2lkcyBjb3B5
aW5nIGEgSGFzaFNldC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luRGF0YWJhc2U6OnJlZnJlc2gpOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuaDoKKyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMpOgor
ICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5EaXJlY3Rvcmllcyk6CisKKzIwMDgt
MDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgorCiAgICAgICAgIE1ha2Ugc29t
ZSBQbHVnaW5QYWNrYWdlIG1ldGhvZHMgcmV0dXJuIGNvbnN0IFN0cmluZyYKIAogICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EYXRhYmFzZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCmlu
ZGV4IDA2N2M1NTYuLmE5NjBiNTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5E
YXRhYmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcApAQCAt
NzAsNyArNzAsNyBAQCBib29sIFBsdWdpbkRhdGFiYXNlOjpyZWZyZXNoKCkKICAgICBib29sIHBs
dWdpblNldENoYW5nZWQgPSBmYWxzZTsKIAogICAgIC8vIENyZWF0ZSBhIG5ldyBzZXQgb2YgcGx1
Z2lucwotICAgIG5ld1BsdWdpbnMgPSBnZXRQbHVnaW5zSW5EaXJlY3RvcmllcygpOworICAgIGdl
dFBsdWdpbnNJbkRpcmVjdG9yaWVzKG5ld1BsdWdpbnMpOwogCiAgICAgaWYgKCFtX3BsdWdpbnMu
aXNFbXB0eSgpKSB7CiAgICAgICAgIG1fcmVnaXN0ZXJlZE1JTUVUeXBlcy5jbGVhcigpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luRGF0YWJhc2UuaAppbmRleCBiNTRmNDc1Li4zNWE4N2Y3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luRGF0YWJhc2UuaApAQCAtNTksNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBwcml2YXRlOgogICAgICAgICB2b2lkIHNldFBsdWdpbkRpcmVjdG9yaWVzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBkaXJlY3RvcmllcykgeyBtX3BsdWdpbkRpcmVjdG9yaWVzID0gZGlyZWN0b3Jp
ZXM7IH0KLSAgICAgICAgUGx1Z2luU2V0IGdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKCkgY29uc3Q7
CisgICAgICAgIHZvaWQgZ2V0UGx1Z2luc0luRGlyZWN0b3JpZXMoUGx1Z2luU2V0JikgY29uc3Q7
CiAKICAgICAgICAgUGx1Z2luUGFja2FnZSogcGx1Z2luRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSk7CiAgICAgICAgIFN0cmluZyBNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBT
dHJpbmcmIGV4dGVuc2lvbikgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3Rr
L1BsdWdpbkRhdGFiYXNlR3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luRGF0YWJh
c2VHdGsuY3BwCmluZGV4IDc1MjA1OWYuLmVkNTMyZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1
Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luRGF0YWJhc2VHdGsuY3BwCkBAIC0zMiwxMSArMzIsMTAgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1QbHVnaW5TZXQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9y
aWVzKCkgY29uc3QKK3ZvaWQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9yaWVz
KFBsdWdpblNldCYgcGx1Z2lucykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
YmUgYSBjYXNlIGluc2Vuc2l0aXZlIHNldC4KICAgICBIYXNoU2V0PFN0cmluZz4gdW5pcXVlRmls
ZW5hbWVzOwotICAgIFBsdWdpblNldCBwbHVnaW5zOwogCiAgICAgVmVjdG9yPFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGx1Z2luRGlyZWN0b3JpZXMuZW5kKCk7CiAgICAgZm9yIChW
ZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpbkRpcmVjdG9yaWVzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtNTYsOCArNTUsNiBAQCBQbHVnaW5TZXQgUGx1
Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9yaWVzKCkgY29uc3QKICAgICAgICAgfQog
ICAgICAgICBnX2Rpcl9jbG9zZShkaXIpOwogICAgIH0KLQotICAgIHJldHVybiBwbHVnaW5zOwog
fQogCiBWZWN0b3I8U3RyaW5nPiBQbHVnaW5EYXRhYmFzZTo6ZGVmYXVsdFBsdWdpbkRpcmVjdG9y
aWVzKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luRGF0YWJhc2VXaW4u
Y3BwIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5jcHAKaW5kZXggMGEx
NGM3Mi4uODdhMDA1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRh
YmFzZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5j
cHAKQEAgLTc3LDExICs3NywxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkUGx1Z2luc0Zyb21S
ZWdpc3RyeShIS0VZIHJvb3RLZXksIFBsdWdpblNldCYgcGx1Z2lucykKICAgICBSZWdDbG9zZUtl
eShrZXkpOwogfQogCi1QbHVnaW5TZXQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVj
dG9yaWVzKCkgY29uc3QKK3ZvaWQgUGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpbnNJbkRpcmVjdG9y
aWVzKFBsdWdpblNldCYgcGx1Z2lucykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgYmUgYSBjYXNlIGluc2Vuc2l0aXZlIHNldC4KICAgICBIYXNoU2V0PFN0cmluZz4gdW5pcXVl
RmlsZW5hbWVzOwotICAgIFBsdWdpblNldCBwbHVnaW5zOwogCiAgICAgSEFORExFIGhGaW5kID0g
SU5WQUxJRF9IQU5ETEVfVkFMVUU7CiAgICAgV0lOMzJfRklORF9EQVRBVyBmaW5kRmlsZURhdGE7
CkBAIC0xMzgsOCArMTM3LDYgQEAgUGx1Z2luU2V0IFBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5z
SW5EaXJlY3RvcmllcygpIGNvbnN0CiAgICAgLy8gd2UgcmVtb3ZlIHRoZSBvbGQgb25lIHNvIHdl
IGRvbid0IGVuZCB1cCBjaG9vc2luZyB0aGUgb2xkIG9uZS4KICAgICBpZiAob2xkV01QUGx1Z2lu
ICYmIG5ld1dNUFBsdWdpbikKICAgICAgICAgcGx1Z2lucy5yZW1vdmUob2xkV01QUGx1Z2luKTsK
LQotICAgIHJldHVybiBwbHVnaW5zOwogfQogCiBzdGF0aWMgaW5saW5lIFZlY3RvcjxpbnQ+IHBh
cnNlVmVyc2lvblN0cmluZyhjb25zdCBTdHJpbmcmIHZlcnNpb25TdHJpbmcpCi0tIAoxLjUuNC40
LjUzNy5nYjc1YWEKCg==
</data>
<flag name="review"
          id="8809"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20209</attachid>
            <date>2008-03-29 23:13:03 -0700</date>
            <delta_ts>2008-03-29 23:27:27 -0700</delta_ts>
            <desc>Step 1: Separate filesystem crawling from PluginPackage instantiation</desc>
            <filename>0001--Separate-filesystem-crawling-from-PluginPack.patch</filename>
            <type>text/plain</type>
            <size>15495</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA0ZDRkMDFlNDNlYTdmODg4YTExNDFkN2MzMjg5ZTJkMTBkMGYyZmQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
dW4sIDMwIE1hciAyMDA4IDAxOjUwOjQ2IC0wNDAwClN1YmplY3Q6IFtQRlIgMS8yXSAgICAgICAg
IFNlcGFyYXRlIGZpbGVzeXN0ZW0gY3Jhd2xpbmcgZnJvbSBQbHVnaW5QYWNrYWdlIGluc3RhbnRp
YXRpb24KCiAgICAgICAgUGFydCBvZiBCdWcgMTgyMDg6IEFjaWQzIHRlc3QgNjUgdGFrZXMgPjMz
bXMgZHVlIHRvIHBsdWdpbiByZWZyZXNoaW5nCiAgICAgICAgb24gV2luZG93cwogICAgICAgIDxo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwOD4KCiAgICAgICAgcmVm
cmVzaCgpIGlzIG5vdyB0aGUgb25seSBwbGFjZSB3aGVyZSBQbHVnaW5QYWNrYWdlcyBhcmUgaW5z
dGFudGlhdGVkLgogICAgICAgIHJlZnJlc2goKSBub3cgYXNrcyBmb3IgYSBzZXQgb2YgcGx1Z2lu
cyB0aGF0IG5vIGxvbmdlciBleGlzdCBvbiBkaXNrLAogICAgICAgIGFuZCB0aGUgc2V0IG9mIGFs
bCBwbHVnaW4gZmlsZXMgaW4gb3VyIHBsdWdpbiBkaXJlY3Rvcmllcy4gVXNpbmcgdGhlc2UKICAg
ICAgICB0d28gc2V0cyB3ZSBjYW4gdXBkYXRlIG91ciBpbnN0YW50aWF0ZWQgcGx1Z2lucyB3aXRo
b3V0IGNvcHlpbmcgYW55CiAgICAgICAgSGFzaFNldHMuIFRoZSBjb2RlIGluIHJlZnJlc2goKSBh
bmQgaW4gdGhlIHBsYXRmb3JtLXNwZWNpZmljIG1ldGhvZHMKICAgICAgICB0byBjcmF3bCB0aGUg
ZmlsZXN5c3RlbSBpcyBub3cgcXVpdGUgYSBiaXQgc2ltcGxlci4KCiAgICAgICAgUGx1Z2luRGF0
YWJhc2Ugbm93IHN0b3JlcyBib3RoIGEgUGx1Z2luU2V0IGFuZCBhIEhhc2hNYXAgdGhhdCBtYXBz
CiAgICAgICAgcGx1Z2luIHBhdGhzIHRvIFBsdWdpblBhY2thZ2VzLiBUaGlzIGFsbG93cyB1cyB0
byBxdWlja2x5IGRldGVybWluZQogICAgICAgIHdoZXRoZXIgd2UgYWxyZWFkeSBoYXZlIGEgUGx1
Z2luUGFja2FnZSBpbnN0YW50aWF0ZWQgZm9yIGEgcGFydGljdWxhcgogICAgICAgIHBhdGguIFRo
ZSBuZXcgYWRkL3JlbW92ZSBtZXRob2RzIGhhbmRsZSB0aGUgbW9kaWZpY2F0aW9uIG9mIHRoZXNl
IHR3bwogICAgICAgIGNvbGxlY3Rpb25zLgoKICAgICAgICBBIG5pY2Ugc2lkZSBlZmZlY3Qgb2Yg
YWxsIHRoaXMgaXMgdGhhdCByZWZyZXNoKCkgbm8gbG9uZ2VyIGNvcGllcyBhbnkKICAgICAgICBI
YXNoU2V0cy4KCiAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgogICAgICAgICog
cGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHA6CiAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFi
YXNlOjpyZWZyZXNoKTogVW5sb2FkIGFueSBwbHVnaW5zIHRoYXQgaGF2ZSBiZWVuCiAgICAgICAg
ZGVsZXRlZCBmcm9tIGRpc2ssIGFuZCBhZGQgYW55IHBsdWdpbnMgdGhhdCBlaXRoZXIgd2VyZW4n
dCBpbnN0YWxsZWQKICAgICAgICBsYXN0IHRpbWUsIG9yIGhhdmUgY2hhbmdlZCBzaW5jZSBsYXN0
IHRpbWUuCiAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpnZXREZWxldGVkUGx1Z2lu
cyk6IEFkZGVkLgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6YWRkKTogQWRkZWQu
IFJldHVybnMgd2hldGhlciBvciBub3QgdGhlCiAgICAgICAgUGx1Z2luUGFja2FnZSB3YXMgYWN0
dWFsbHkgYWRkZWQgdG8gdGhlIGRhdGFiYXNlIChkdXBsaWNhdGVzIHdvbid0IGJlCiAgICAgICAg
YWRkZWQpLgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6cmVtb3ZlKTogQWRkZWQu
CiAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmg6CiAgICAgICAgKiBwbHVnaW5zL1Bs
dWdpblBhY2thZ2UuaDoKICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6cGF0aCk6IEFk
ZGVkLgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5QYWNrYWdlOjpsYXN0TW9kaWZpZWQpOiBBZGRl
ZC4KICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdpbkRhdGFiYXNlR3RrLmNwcDoKICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmllcyk6IFJl
bmFtZWQgZnJvbQogICAgICAgIGdldFBsdWdpbnNJbkRpcmVjdG9yaWVzLiBOb3cgZmlsbHMgYSBI
YXNoU2V0IG9mIFN0cmluZ3MgaW5zdGVhZCBvZgogICAgICAgIGluc3RhbnRpYXRlZCBQbHVnaW5Q
YWNrYWdlcy4KICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKICAg
ICAgICAoV2ViQ29yZTo6YWRkUGx1Z2luUGF0aHNGcm9tUmVnaXN0cnkpOiBEaXR0by4KICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmllcyk6
IERpdHRvLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICA0NyArKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5j
cHAgICAgICAgIHwgICA3NSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBXZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGF0YWJhc2UuaCAgICAgICAgICB8ICAgIDkgKysrLQogV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblBhY2thZ2UuaCAgICAgICAgICAgfCAgICAyICsKIFdlYkNvcmUvcGx1Z2lucy9n
dGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwIHwgICAgNiArLS0KIFdlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luRGF0YWJhc2VXaW4uY3BwIHwgICA0NSArKysrKy0tLS0tLS0tLS0tLQogNiBmaWxlcyBj
aGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgNjMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZDUwZjNmLi45YjA4
ODNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSw1ICsxLDUyIEBACiAyMDA4LTAzLTI5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxl
LmNvbT4KIAorICAgICAgICBTZXBhcmF0ZSBmaWxlc3lzdGVtIGNyYXdsaW5nIGZyb20gUGx1Z2lu
UGFja2FnZSBpbnN0YW50aWF0aW9uCisKKyAgICAgICAgUGFydCBvZiBCdWcgMTgyMDg6IEFjaWQz
IHRlc3QgNjUgdGFrZXMgPjMzbXMgZHVlIHRvIHBsdWdpbiByZWZyZXNoaW5nCisgICAgICAgIG9u
IFdpbmRvd3MKKyAgICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MjA4PgorCisgICAgICAgIHJlZnJlc2goKSBpcyBub3cgdGhlIG9ubHkgcGxhY2Ugd2hlcmUg
UGx1Z2luUGFja2FnZXMgYXJlIGluc3RhbnRpYXRlZC4KKyAgICAgICAgcmVmcmVzaCgpIG5vdyBh
c2tzIGZvciBhIHNldCBvZiBwbHVnaW5zIHRoYXQgbm8gbG9uZ2VyIGV4aXN0IG9uIGRpc2ssCisg
ICAgICAgIGFuZCB0aGUgc2V0IG9mIGFsbCBwbHVnaW4gZmlsZXMgaW4gb3VyIHBsdWdpbiBkaXJl
Y3Rvcmllcy4gVXNpbmcgdGhlc2UKKyAgICAgICAgdHdvIHNldHMgd2UgY2FuIHVwZGF0ZSBvdXIg
aW5zdGFudGlhdGVkIHBsdWdpbnMgd2l0aG91dCBjb3B5aW5nIGFueQorICAgICAgICBIYXNoU2V0
cy4gVGhlIGNvZGUgaW4gcmVmcmVzaCgpIGFuZCBpbiB0aGUgcGxhdGZvcm0tc3BlY2lmaWMgbWV0
aG9kcworICAgICAgICB0byBjcmF3bCB0aGUgZmlsZXN5c3RlbSBpcyBub3cgcXVpdGUgYSBiaXQg
c2ltcGxlci4KKworICAgICAgICBQbHVnaW5EYXRhYmFzZSBub3cgc3RvcmVzIGJvdGggYSBQbHVn
aW5TZXQgYW5kIGEgSGFzaE1hcCB0aGF0IG1hcHMKKyAgICAgICAgcGx1Z2luIHBhdGhzIHRvIFBs
dWdpblBhY2thZ2VzLiBUaGlzIGFsbG93cyB1cyB0byBxdWlja2x5IGRldGVybWluZQorICAgICAg
ICB3aGV0aGVyIHdlIGFscmVhZHkgaGF2ZSBhIFBsdWdpblBhY2thZ2UgaW5zdGFudGlhdGVkIGZv
ciBhIHBhcnRpY3VsYXIKKyAgICAgICAgcGF0aC4gVGhlIG5ldyBhZGQvcmVtb3ZlIG1ldGhvZHMg
aGFuZGxlIHRoZSBtb2RpZmljYXRpb24gb2YgdGhlc2UgdHdvCisgICAgICAgIGNvbGxlY3Rpb25z
LgorCisgICAgICAgIEEgbmljZSBzaWRlIGVmZmVjdCBvZiBhbGwgdGhpcyBpcyB0aGF0IHJlZnJl
c2goKSBubyBsb25nZXIgY29waWVzIGFueQorICAgICAgICBIYXNoU2V0cy4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OnJlZnJlc2gpOiBV
bmxvYWQgYW55IHBsdWdpbnMgdGhhdCBoYXZlIGJlZW4KKyAgICAgICAgZGVsZXRlZCBmcm9tIGRp
c2ssIGFuZCBhZGQgYW55IHBsdWdpbnMgdGhhdCBlaXRoZXIgd2VyZW4ndCBpbnN0YWxsZWQKKyAg
ICAgICAgbGFzdCB0aW1lLCBvciBoYXZlIGNoYW5nZWQgc2luY2UgbGFzdCB0aW1lLgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldERlbGV0ZWRQbHVnaW5zKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6YWRkKTogQWRkZWQuIFJldHVybnMgd2hl
dGhlciBvciBub3QgdGhlCisgICAgICAgIFBsdWdpblBhY2thZ2Ugd2FzIGFjdHVhbGx5IGFkZGVk
IHRvIHRoZSBkYXRhYmFzZSAoZHVwbGljYXRlcyB3b24ndCBiZQorICAgICAgICBhZGRlZCkuCisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6cmVtb3ZlKTogQWRkZWQuCisgICAgICAg
ICogcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luUGFj
a2FnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6cGF0aCk6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGx1Z2luUGFja2FnZTo6bGFzdE1vZGlmaWVkKTogQWRkZWQuCisg
ICAgICAgICogcGx1Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luRGF0YWJhc2U6OmdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmllcyk6IFJlbmFt
ZWQgZnJvbQorICAgICAgICBnZXRQbHVnaW5zSW5EaXJlY3Rvcmllcy4gTm93IGZpbGxzIGEgSGFz
aFNldCBvZiBTdHJpbmdzIGluc3RlYWQgb2YKKyAgICAgICAgaW5zdGFudGlhdGVkIFBsdWdpblBh
Y2thZ2VzLgorICAgICAgICAqIHBsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmFkZFBsdWdpblBhdGhzRnJvbVJlZ2lzdHJ5KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luUGF0aHNJbkRpcmVjdG9yaWVz
KTogRGl0dG8uCisKKzIwMDgtMDMtMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgor
CiAgICAgICAgIENoYW5nZSBnZXRQbHVnaW5zSW5EaXJlY3RvcmllcyB0byB1c2UgYW4gb3V0IHBh
cmFtZXRlcgogCiAgICAgICAgIFRoaXMgYXZvaWRzIGNvcHlpbmcgYSBIYXNoU2V0LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5EYXRhYmFzZS5jcHAKaW5kZXggYTk2MGI1Ni4uMWYwZDQxMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luRGF0YWJhc2UuY3BwCkBAIC02NSw0NCArNjUsMzkgQEAgdm9pZCBQbHVnaW5EYXRhYmFz
ZTo6YWRkRXh0cmFQbHVnaW5EaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnkpCiAKIGJv
b2wgUGx1Z2luRGF0YWJhc2U6OnJlZnJlc2goKQogeyAgIAotICAgIFBsdWdpblNldCBuZXdQbHVn
aW5zOwotCiAgICAgYm9vbCBwbHVnaW5TZXRDaGFuZ2VkID0gZmFsc2U7CiAKLSAgICAvLyBDcmVh
dGUgYSBuZXcgc2V0IG9mIHBsdWdpbnMKLSAgICBnZXRQbHVnaW5zSW5EaXJlY3RvcmllcyhuZXdQ
bHVnaW5zKTsKLQogICAgIGlmICghbV9wbHVnaW5zLmlzRW1wdHkoKSkgewogICAgICAgICBtX3Jl
Z2lzdGVyZWRNSU1FVHlwZXMuY2xlYXIoKTsKIAotICAgICAgICBQbHVnaW5TZXQgcGx1Z2luc1Rv
VW5sb2FkID0gbV9wbHVnaW5zOwotCi0gICAgICAgIFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gbmV3UGx1Z2lucy5lbmQoKTsKLSAgICAgICAgZm9yIChQbHVnaW5TZXQ6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbmV3UGx1Z2lucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAg
ICAgICBwbHVnaW5zVG9VbmxvYWQucmVtb3ZlKCppdCk7Ci0KLSAgICAgICAgZW5kID0gbV9wbHVn
aW5zLmVuZCgpOwotICAgICAgICBmb3IgKFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X3BsdWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgbmV3UGx1Z2lu
cy5yZW1vdmUoKml0KTsKKyAgICAgICAgUGx1Z2luU2V0IHBsdWdpbnNUb1VubG9hZDsKKyAgICAg
ICAgZ2V0RGVsZXRlZFBsdWdpbnMocGx1Z2luc1RvVW5sb2FkKTsKIAogICAgICAgICAvLyBVbmxv
YWQgcGx1Z2lucwotICAgICAgICBlbmQgPSBwbHVnaW5zVG9VbmxvYWQuZW5kKCk7CisgICAgICAg
IFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcGx1Z2luc1RvVW5sb2FkLmVuZCgpOwog
ICAgICAgICBmb3IgKFBsdWdpblNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwbHVnaW5zVG9Vbmxv
YWQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgbV9wbHVnaW5zLnJlbW92
ZSgqaXQpOworICAgICAgICAgICAgcmVtb3ZlKGl0LT5nZXQoKSk7CisKKyAgICAgICAgcGx1Z2lu
U2V0Q2hhbmdlZCA9ICFwbHVnaW5zVG9VbmxvYWQuaXNFbXB0eSgpOworICAgIH0KIAotICAgICAg
ICAvLyBBZGQgbmV3IHBsdWdpbnMKLSAgICAgICAgZW5kID0gbmV3UGx1Z2lucy5lbmQoKTsKLSAg
ICAgICAgZm9yIChQbHVnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbmV3UGx1Z2lucy5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgICAgICBtX3BsdWdpbnMuYWRkKCppdCk7Cisg
ICAgSGFzaFNldDxTdHJpbmc+IHBhdGhzOworICAgIGdldFBsdWdpblBhdGhzSW5EaXJlY3Rvcmll
cyhwYXRocyk7CiAKLSAgICAgICAgcGx1Z2luU2V0Q2hhbmdlZCA9ICFwbHVnaW5zVG9VbmxvYWQu
aXNFbXB0eSgpIHx8ICFuZXdQbHVnaW5zLmlzRW1wdHkoKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBtX3BsdWdpbnMgPSBuZXdQbHVnaW5zOwotICAgICAgICBQbHVnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG5ld1BsdWdpbnMuZW5kKCk7Ci0gICAgICAgIGZvciAoUGx1Z2luU2V0Ojpjb25z
dF9pdGVyYXRvciBpdCA9IG5ld1BsdWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAg
ICAgICAgICAgbV9wbHVnaW5zLmFkZCgqaXQpOworICAgIEhhc2hTZXQ8U3RyaW5nPjo6Y29uc3Rf
aXRlcmF0b3IgcGF0aHNFbmQgPSBwYXRocy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8U3RyaW5n
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwYXRocy5iZWdpbigpOyBpdCAhPSBwYXRoc0VuZDsgKytp
dCkgeworICAgICAgICB0aW1lX3QgbGFzdE1vZGlmaWVkOworICAgICAgICBpZiAoIWdldEZpbGVN
b2RpZmljYXRpb25UaW1lKCppdCwgbGFzdE1vZGlmaWVkKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OwogCi0gICAgICAgIHBsdWdpblNldENoYW5nZWQgPSAhbmV3UGx1Z2lucy5pc0VtcHR5KCk7Cisg
ICAgICAgIGlmIChSZWZQdHI8UGx1Z2luUGFja2FnZT4gb2xkUGFja2FnZSA9IG1fcGx1Z2luc0J5
UGF0aC5nZXQoKml0KSkgeworICAgICAgICAgICAgaWYgKG9sZFBhY2thZ2UtPmxhc3RNb2RpZmll
ZCgpID09IGxhc3RNb2RpZmllZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIHJlbW92ZShvbGRQYWNrYWdlLmdldCgpKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChh
ZGQoUGx1Z2luUGFja2FnZTo6Y3JlYXRlUGFja2FnZSgqaXQsIGxhc3RNb2RpZmllZCkpKQorICAg
ICAgICAgICAgcGx1Z2luU2V0Q2hhbmdlZCA9IHRydWU7CiAgICAgfQogCiAgICAgLy8gUmVnaXN0
ZXIgcGx1Zy1pbiBNSU1FIHR5cGVzCkBAIC0yMjIsNCArMjE3LDMwIEBAIFBsdWdpblBhY2thZ2Uq
IFBsdWdpbkRhdGFiYXNlOjpmaW5kUGx1Z2luKGNvbnN0IEtVUkwmIHVybCwgU3RyaW5nJiBtaW1l
VHlwZSkKICAgICByZXR1cm4gcGx1Z2luOwogfQogCit2b2lkIFBsdWdpbkRhdGFiYXNlOjpnZXRE
ZWxldGVkUGx1Z2lucyhQbHVnaW5TZXQmIHBsdWdpbnMpIGNvbnN0Cit7CisgICAgUGx1Z2luU2V0
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3BsdWdpbnMuZW5kKCk7CisgICAgZm9yIChQbHVnaW5T
ZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wbHVnaW5zLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkgeworICAgICAgICBpZiAoIWZpbGVFeGlzdHMoKCppdCktPnBhdGgoKSkpCisgICAgICAgICAg
ICBwbHVnaW5zLmFkZCgqaXQpOworICAgIH0KK30KKworYm9vbCBQbHVnaW5EYXRhYmFzZTo6YWRk
KFBhc3NSZWZQdHI8UGx1Z2luUGFja2FnZT4gcHJwUGFja2FnZSkKK3sKKyAgICBSZWZQdHI8UGx1
Z2luUGFja2FnZT4gcGFja2FnZSA9IHBycFBhY2thZ2U7CisKKyAgICBpZiAoIW1fcGx1Z2lucy5h
ZGQocGFja2FnZSkuc2Vjb25kKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BsdWdp
bnNCeVBhdGguYWRkKHBhY2thZ2UtPnBhdGgoKSwgcGFja2FnZSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK3ZvaWQgUGx1Z2luRGF0YWJhc2U6OnJlbW92ZShQbHVnaW5QYWNrYWdlKiBwYWNrYWdl
KQoreworICAgIG1fcGx1Z2lucy5yZW1vdmUocGFja2FnZSk7CisgICAgbV9wbHVnaW5zQnlQYXRo
LnJlbW92ZShwYWNrYWdlLT5wYXRoKCkpOworfQorCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGF0YWJhc2UuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5o
CmluZGV4IDM1YTg3ZjcuLmZiZDAwNjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5EYXRhYmFzZS5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oCkBAIC01
OSw3ICs1OSwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICB2b2lkIHNldFBsdWdpbkRpcmVjdG9yaWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkaXJlY3Rv
cmllcykgeyBtX3BsdWdpbkRpcmVjdG9yaWVzID0gZGlyZWN0b3JpZXM7IH0KLSAgICAgICAgdm9p
ZCBnZXRQbHVnaW5zSW5EaXJlY3RvcmllcyhQbHVnaW5TZXQmKSBjb25zdDsKKworICAgICAgICB2
b2lkIGdldFBsdWdpblBhdGhzSW5EaXJlY3RvcmllcyhIYXNoU2V0PFN0cmluZz4mKSBjb25zdDsK
KyAgICAgICAgdm9pZCBnZXREZWxldGVkUGx1Z2lucyhQbHVnaW5TZXQmKSBjb25zdDsKKworICAg
ICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBsdWdpbiB3YXMgYWN0dWFsbHkgYWRkZWQgb3Ig
bm90IChpdCB3b24ndCBiZSBhZGRlZCBpZiBpdCdzIGEgZHVwbGljYXRlIG9mIGFuIGV4aXN0aW5n
IHBsdWdpbikuCisgICAgICAgIGJvb2wgYWRkKFBhc3NSZWZQdHI8UGx1Z2luUGFja2FnZT4pOwor
ICAgICAgICB2b2lkIHJlbW92ZShQbHVnaW5QYWNrYWdlKik7CiAKICAgICAgICAgUGx1Z2luUGFj
a2FnZSogcGx1Z2luRm9yTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7CiAgICAgICAg
IFN0cmluZyBNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikgY29u
c3Q7CkBAIC02OSw2ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgVmVjdG9y
PFN0cmluZz4gbV9wbHVnaW5EaXJlY3RvcmllczsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+IG1f
cmVnaXN0ZXJlZE1JTUVUeXBlczsKICAgICAgICAgUGx1Z2luU2V0IG1fcGx1Z2luczsKKyAgICAg
ICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxQbHVnaW5QYWNrYWdlPiA+IG1fcGx1Z2luc0J5UGF0
aDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luUGFja2FnZS5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2Uu
aAppbmRleCBmNzdjYjA1Li43NThiYTlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZS5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmgKQEAgLTQ3
LDggKzQ3LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgICAgIGNvbnN0
IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgICAgICBjb25zdCBT
dHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAg
ICAgICBjb25zdCBTdHJpbmcmIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KICAgICAg
ICAgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZU5hbWU7IH0K
ICAgICAgICAgY29uc3QgU3RyaW5nJiBwYXJlbnREaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBt
X3BhcmVudERpcmVjdG9yeTsgfQorICAgICAgICB0aW1lX3QgbGFzdE1vZGlmaWVkKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0TW9kaWZpZWQ7IH0KIAogICAgICAgICBjb25zdCBNSU1FVG9EZXNjcmlw
dGlvbnNNYXAmIG1pbWVUb0Rlc2NyaXB0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fbWltZVRvRGVz
Y3JpcHRpb25zOyB9CiAgICAgICAgIGNvbnN0IE1JTUVUb0V4dGVuc2lvbnNNYXAmIG1pbWVUb0V4
dGVuc2lvbnMoKSBjb25zdCB7IHJldHVybiBtX21pbWVUb0V4dGVuc2lvbnM7IH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luRGF0YWJhc2VHdGsuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAKaW5kZXggZWQ1MzJlMi4uZGRjMDkxYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5EYXRhYmFzZUd0ay5jcHAKQEAgLTMyLDcgKzMy
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIFBsdWdpbkRhdGFiYXNlOjpnZXRQ
bHVnaW5zSW5EaXJlY3RvcmllcyhQbHVnaW5TZXQmIHBsdWdpbnMpIGNvbnN0Cit2b2lkIFBsdWdp
bkRhdGFiYXNlOjpnZXRQbHVnaW5QYXRoc0luRGlyZWN0b3JpZXMoSGFzaFNldDxTdHJpbmc+JiBw
YXRocykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBjYXNlIGluc2Vu
c2l0aXZlIHNldC4KICAgICBIYXNoU2V0PFN0cmluZz4gdW5pcXVlRmlsZW5hbWVzOwpAQCAtNDgs
OSArNDgsNyBAQCB2b2lkIFBsdWdpbkRhdGFiYXNlOjpnZXRQbHVnaW5zSW5EaXJlY3RvcmllcyhQ
bHVnaW5TZXQmIHBsdWdpbnMpIGNvbnN0CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgICAgIGdjaGFyKiBmaWxlbmFtZSA9IGdfYnVpbGRfZmlsZW5hbWUoKGl0LT51dGY4KCkp
LmRhdGEoKSwgbmFtZSwgMCk7Ci0gICAgICAgICAgICBSZWZQdHI8UGx1Z2luUGFja2FnZT4gcGx1
Z2luUGFja2FnZSA9IFBsdWdpblBhY2thZ2U6OmNyZWF0ZVBhY2thZ2UoZmlsZW5hbWUsIHRpbWUo
MCkpOwotICAgICAgICAgICAgaWYgKHBsdWdpblBhY2thZ2UpCi0gICAgICAgICAgICAgICAgcGx1
Z2lucy5hZGQocGx1Z2luUGFja2FnZSk7CisgICAgICAgICAgICBwYXRocy5hZGQoZmlsZW5hbWUp
OwogICAgICAgICAgICAgZ19mcmVlKGZpbGVuYW1lKTsKICAgICAgICAgfQogICAgICAgICBnX2Rp
cl9jbG9zZShkaXIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRh
YmFzZVdpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFiYXNlV2luLmNwcApp
bmRleCA4N2EwMDUxLi5jODg1ZDFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpbkRhdGFiYXNlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbkRhdGFi
YXNlV2luLmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBpbmxpbmUgdm9pZCBhZGRQbHVnaW5zRnJvbVJlZ2lzdHJ5KEhLRVkgcm9vdEtleSwgUGx1
Z2luU2V0JiBwbHVnaW5zKQorc3RhdGljIGlubGluZSB2b2lkIGFkZFBsdWdpblBhdGhzRnJvbVJl
Z2lzdHJ5KEhLRVkgcm9vdEtleSwgSGFzaFNldDxTdHJpbmc+JiBwYXRocykKIHsKICAgICBIS0VZ
IGtleTsKICAgICBIUkVTVUxUIHJlc3VsdCA9IFJlZ09wZW5LZXlFeFcocm9vdEtleSwgTCJTb2Z0
d2FyZVxcTW96aWxsYVBsdWdpbnMiLCAwLCBLRVlfRU5VTUVSQVRFX1NVQl9LRVlTLCAma2V5KTsK
QEAgLTYyLDIyICs2MiwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkUGx1Z2luc0Zyb21SZWdp
c3RyeShIS0VZIHJvb3RLZXksIFBsdWdpblNldCYgcGx1Z2lucykKICAgICAgICAgaWYgKHJlc3Vs
dCAhPSBFUlJPUl9TVUNDRVNTIHx8IHR5cGUgIT0gUkVHX1NaKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgU3RyaW5nIHBhdGgocGF0aFN0ciwgcGF0aFN0clNpemUgLyBzaXplb2Yo
V0NIQVIpIC0gMSk7Ci0KLSAgICAgICAgdGltZV90IG1vZGlmaWVkVGltZTsKLSAgICAgICAgaWYg
KCFnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShwYXRoLCBtb2RpZmllZFRpbWUpKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgUmVmUHRyPFBsdWdpblBhY2thZ2U+IHBhY2thZ2UgPSBQ
bHVnaW5QYWNrYWdlOjpjcmVhdGVQYWNrYWdlKHBhdGgsIG1vZGlmaWVkVGltZSk7Ci0KLSAgICAg
ICAgaWYgKHBhY2thZ2UpCi0gICAgICAgICAgICBwbHVnaW5zLmFkZChwYWNrYWdlKTsKKyAgICAg
ICAgcGF0aHMuYWRkKFN0cmluZyhwYXRoU3RyLCBwYXRoU3RyU2l6ZSAvIHNpemVvZihXQ0hBUikg
LSAxKSk7CiAgICAgfQogCiAgICAgUmVnQ2xvc2VLZXkoa2V5KTsKIH0KIAotdm9pZCBQbHVnaW5E
YXRhYmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMoUGx1Z2luU2V0JiBwbHVnaW5zKSBjb25z
dAordm9pZCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luUGF0aHNJbkRpcmVjdG9yaWVzKEhhc2hT
ZXQ8U3RyaW5nPiYgcGF0aHMpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJl
IGEgY2FzZSBpbnNlbnNpdGl2ZSBzZXQuCiAgICAgSGFzaFNldDxTdHJpbmc+IHVuaXF1ZUZpbGVu
YW1lczsKQEAgLTg1LDggKzc2LDggQEAgdm9pZCBQbHVnaW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0lu
RGlyZWN0b3JpZXMoUGx1Z2luU2V0JiBwbHVnaW5zKSBjb25zdAogICAgIEhBTkRMRSBoRmluZCA9
IElOVkFMSURfSEFORExFX1ZBTFVFOwogICAgIFdJTjMyX0ZJTkRfREFUQVcgZmluZEZpbGVEYXRh
OwogCi0gICAgUmVmUHRyPFBsdWdpblBhY2thZ2U+IG9sZFdNUFBsdWdpbjsKLSAgICBSZWZQdHI8
UGx1Z2luUGFja2FnZT4gbmV3V01QUGx1Z2luOworICAgIFN0cmluZyBvbGRXTVBQbHVnaW5QYXRo
OworICAgIFN0cmluZyBuZXdXTVBQbHVnaW5QYXRoOwogCiAgICAgVmVjdG9yPFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IG1fcGx1Z2luRGlyZWN0b3JpZXMuZW5kKCk7CiAgICAgZm9yIChW
ZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpbkRpcmVjdG9yaWVzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTEwLDMzICsxMDEsMjUgQEAgdm9pZCBQbHVn
aW5EYXRhYmFzZTo6Z2V0UGx1Z2luc0luRGlyZWN0b3JpZXMoUGx1Z2luU2V0JiBwbHVnaW5zKSBj
b25zdAogICAgICAgICAgICAgaWYgKCF1bmlxdWVGaWxlbmFtZXMuYWRkKGZ1bGxQYXRoKS5zZWNv
bmQpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIHRpbWVfdCBtb2Rp
ZmllZFRpbWU7Ci0gICAgICAgICAgICBpZiAoIWdldEZpbGVNb2RpZmljYXRpb25UaW1lKGZ1bGxQ
YXRoLCBtb2RpZmllZFRpbWUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAK
LSAgICAgICAgICAgIFJlZlB0cjxQbHVnaW5QYWNrYWdlPiBwbHVnaW5QYWNrYWdlID0gUGx1Z2lu
UGFja2FnZTo6Y3JlYXRlUGFja2FnZShmdWxsUGF0aCwgbW9kaWZpZWRUaW1lKTsKKyAgICAgICAg
ICAgIHBhdGhzLmFkZChmdWxsUGF0aCk7CiAKLSAgICAgICAgICAgIGlmIChwbHVnaW5QYWNrYWdl
KSB7Ci0gICAgICAgICAgICAgICAgcGx1Z2lucy5hZGQocGx1Z2luUGFja2FnZSk7Ci0KLSAgICAg
ICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmlsZW5hbWUsICJucGRzcGxheS5kbGwi
KSkKLSAgICAgICAgICAgICAgICAgICAgb2xkV01QUGx1Z2luID0gcGx1Z2luUGFja2FnZTsKLSAg
ICAgICAgICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShmaWxlbmFtZSwgIm5wLW1z
d21wLmRsbCIpKQotICAgICAgICAgICAgICAgICAgICBuZXdXTVBQbHVnaW4gPSBwbHVnaW5QYWNr
YWdlOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGZp
bGVuYW1lLCAibnBkc3BsYXkuZGxsIikpCisgICAgICAgICAgICAgICAgb2xkV01QUGx1Z2luUGF0
aCA9IGZ1bGxQYXRoOworICAgICAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZmls
ZW5hbWUsICJucC1tc3dtcC5kbGwiKSkKKyAgICAgICAgICAgICAgICBuZXdXTVBQbHVnaW5QYXRo
ID0gZnVsbFBhdGg7CiAKICAgICAgICAgfSB3aGlsZSAoRmluZE5leHRGaWxlVyhoRmluZCwgJmZp
bmRGaWxlRGF0YSkgIT0gMCk7CiAKICAgICAgICAgRmluZENsb3NlKGhGaW5kKTsKICAgICB9CiAK
LSAgICBhZGRQbHVnaW5zRnJvbVJlZ2lzdHJ5KEhLRVlfTE9DQUxfTUFDSElORSwgcGx1Z2lucyk7
Ci0gICAgYWRkUGx1Z2luc0Zyb21SZWdpc3RyeShIS0VZX0NVUlJFTlRfVVNFUiwgcGx1Z2lucyk7
CisgICAgYWRkUGx1Z2luUGF0aHNGcm9tUmVnaXN0cnkoSEtFWV9MT0NBTF9NQUNISU5FLCBwYXRo
cyk7CisgICAgYWRkUGx1Z2luUGF0aHNGcm9tUmVnaXN0cnkoSEtFWV9DVVJSRU5UX1VTRVIsIHBh
dGhzKTsKIAogICAgIC8vIElmIGJvdGggdGhlIG9sZCBhbmQgbmV3IFdNUCBwbHVnaW4gYXJlIHBy
ZXNlbnQgaW4gdGhlIHBsdWdpbnMgc2V0LCAKICAgICAvLyB3ZSByZW1vdmUgdGhlIG9sZCBvbmUg
c28gd2UgZG9uJ3QgZW5kIHVwIGNob29zaW5nIHRoZSBvbGQgb25lLgotICAgIGlmIChvbGRXTVBQ
bHVnaW4gJiYgbmV3V01QUGx1Z2luKQotICAgICAgICBwbHVnaW5zLnJlbW92ZShvbGRXTVBQbHVn
aW4pOworICAgIGlmICghb2xkV01QUGx1Z2luUGF0aC5pc0VtcHR5KCkgJiYgIW5ld1dNUFBsdWdp
blBhdGguaXNFbXB0eSgpKQorICAgICAgICBwYXRocy5yZW1vdmUob2xkV01QUGx1Z2luUGF0aCk7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgVmVjdG9yPGludD4gcGFyc2VWZXJzaW9uU3RyaW5nKGNvbnN0
IFN0cmluZyYgdmVyc2lvblN0cmluZykKLS0gCjEuNS40LjQuNTM3LmdiNzVhYQoK
</data>
<flag name="review"
          id="8815"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20210</attachid>
            <date>2008-03-29 23:13:55 -0700</date>
            <delta_ts>2008-03-31 09:40:52 -0700</delta_ts>
            <desc>Step 2: Don&apos;t do any work if the plugin paths haven&apos;t changed between calls to refresh()</desc>
            <filename>0002--Fix-Bug-18208-Acid3-test-65-takes-33ms-due.patch</filename>
            <type>text/plain</type>
            <size>5375</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSAxOTQyNGI1YTM2MzEyZGYwYzE3MjZiMGNhZGVlNDU3MzkwZGFmZTkzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
dW4sIDMwIE1hciAyMDA4IDAyOjEyOjAxIC0wNDAwClN1YmplY3Q6IFtQRlIgMi8yXSAgICAgICAg
IEZpeCBCdWcgMTgyMDg6IEFjaWQzIHRlc3QgNjUgdGFrZXMgPjMzbXMgZHVlIHRvIHBsdWdpbiBy
ZWZyZXNoaW5nIG9uIFdpbmRvd3MKCiAgICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MjA4PgoKICAgICAgICBXZSBub3cga2VlcCB0cmFjayBvZiBhbGwgdGhl
IHBsdWdpbiBwYXRocyBmb3VuZCBlYWNoIHRpbWUgcmVmcmVzaCgpIGlzCiAgICAgICAgY2FsbGVk
LiBXZSdsbCBvbmx5IGluc3RhbnRpYXRlIFBsdWdpblBhY2thZ2VzIGlmIHRoZXJlIGFyZSBuZXcg
cGF0aHMKICAgICAgICBvciBwYXRocyB3aXRoIGNoYW5nZWQgdGltZXN0YW1wcyBzaW5jZSB0aGUg
bGFzdCB0aW1lIHJlZnJlc2goKSB3YXMKICAgICAgICBjYWxsZWQuCgogICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3Bw
OgogICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6cmVmcmVzaCk6CiAgICAgICAgICAt
IE9ubHkgaW5zdGFudGlhdGUgUGx1Z2luUGFja2FnZXMgaWYgdGhlcmUgaXMgYSBuZXcgcGF0aCBv
ciBhIHBhdGgKICAgICAgICAgICAgd2l0aCBhIGNoYW5nZWQgdGltZXN0YW1wIHNpbmNlIHdlIGxh
c3QgcmFuIHJlZnJlc2goKS4KICAgICAgICAgIC0gQ2FjaGUgdGhlIHNldCBvZiBwbHVnaW4gcGF0
aHMgZm91bmQgYW5kIHRoZWlyIHRpbWVzdGFtcHMgZm9yIHRoZQogICAgICAgICAgICBuZXh0IGNh
bGwgdG8gcmVmcmVzaCgpLgogICAgICAgICAgLSBPbmx5IHJlLXJlZ2lzdGVyIE1JTUUgdHlwZXMg
aWYgb3VyIHNldCBvZiBwbHVnaW5zIGNoYW5nZWQuCiAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRh
dGFiYXNlLmg6IEFkZGVkIGEgbmV3IG1lbWJlciB0byBjYWNoZSBwbHVnaW4gcGF0aHMKICAgICAg
ICBhbmQgdGhlaXIgdGltZXN0YW1wcy4KLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgIHwgICAyNCArKysrKysrKysrKysrKysrKysrKysrKysKIFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5EYXRhYmFzZS5jcHAgfCAgIDI0ICsrKysrKysrKysrKysrKysrKystLS0tLQogV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggICB8ICAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0
NCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIwODgzZS4uNzdjNzEzZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwyOSBAQAogMjAwOC0wMy0yOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAg
ICAgICAgRml4IEJ1ZyAxODIwODogQWNpZDMgdGVzdCA2NSB0YWtlcyA+MzNtcyBkdWUgdG8gcGx1
Z2luIHJlZnJlc2hpbmcgb24KKyAgICAgICAgV2luZG93cworCisgICAgICAgIDxodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwOD4KKworICAgICAgICBXZSBub3cga2Vl
cCB0cmFjayBvZiBhbGwgdGhlIHBsdWdpbiBwYXRocyBmb3VuZCBlYWNoIHRpbWUgcmVmcmVzaCgp
IGlzCisgICAgICAgIGNhbGxlZC4gV2UnbGwgb25seSBpbnN0YW50aWF0ZSBQbHVnaW5QYWNrYWdl
cyBpZiB0aGVyZSBhcmUgbmV3IHBhdGhzCisgICAgICAgIG9yIHBhdGhzIHdpdGggY2hhbmdlZCB0
aW1lc3RhbXBzIHNpbmNlIHRoZSBsYXN0IHRpbWUgcmVmcmVzaCgpIHdhcworICAgICAgICBjYWxs
ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFi
YXNlOjpyZWZyZXNoKToKKyAgICAgICAgICAtIE9ubHkgaW5zdGFudGlhdGUgUGx1Z2luUGFja2Fn
ZXMgaWYgdGhlcmUgaXMgYSBuZXcgcGF0aCBvciBhIHBhdGgKKyAgICAgICAgICAgIHdpdGggYSBj
aGFuZ2VkIHRpbWVzdGFtcCBzaW5jZSB3ZSBsYXN0IHJhbiByZWZyZXNoKCkuCisgICAgICAgICAg
LSBDYWNoZSB0aGUgc2V0IG9mIHBsdWdpbiBwYXRocyBmb3VuZCBhbmQgdGhlaXIgdGltZXN0YW1w
cyBmb3IgdGhlCisgICAgICAgICAgICBuZXh0IGNhbGwgdG8gcmVmcmVzaCgpLgorICAgICAgICAg
IC0gT25seSByZS1yZWdpc3RlciBNSU1FIHR5cGVzIGlmIG91ciBzZXQgb2YgcGx1Z2lucyBjaGFu
Z2VkLgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaDogQWRkZWQgYSBuZXcgbWVt
YmVyIHRvIGNhY2hlIHBsdWdpbiBwYXRocworICAgICAgICBhbmQgdGhlaXIgdGltZXN0YW1wcy4K
KworMjAwOC0wMy0yOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKICAgICAgICAg
U2VwYXJhdGUgZmlsZXN5c3RlbSBjcmF3bGluZyBmcm9tIFBsdWdpblBhY2thZ2UgaW5zdGFudGlh
dGlvbgogCiAgICAgICAgIFBhcnQgb2YgQnVnIDE4MjA4OiBBY2lkMyB0ZXN0IDY1IHRha2VzID4z
M21zIGR1ZSB0byBwbHVnaW4gcmVmcmVzaGluZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGFiYXNlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAK
aW5kZXggMWYwZDQxMC4uOGRjOWY4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGFiYXNlLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCkBA
IC02OCw4ICs2OCw2IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6OnJlZnJlc2goKQogICAgIGJvb2wg
cGx1Z2luU2V0Q2hhbmdlZCA9IGZhbHNlOwogCiAgICAgaWYgKCFtX3BsdWdpbnMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIG1fcmVnaXN0ZXJlZE1JTUVUeXBlcy5jbGVhcigpOwotCiAgICAgICAgIFBs
dWdpblNldCBwbHVnaW5zVG9VbmxvYWQ7CiAgICAgICAgIGdldERlbGV0ZWRQbHVnaW5zKHBsdWdp
bnNUb1VubG9hZCk7CiAKQEAgLTg0LDE1ICs4MiwyMyBAQCBib29sIFBsdWdpbkRhdGFiYXNlOjpy
ZWZyZXNoKCkKICAgICBIYXNoU2V0PFN0cmluZz4gcGF0aHM7CiAgICAgZ2V0UGx1Z2luUGF0aHNJ
bkRpcmVjdG9yaWVzKHBhdGhzKTsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCB0aW1lX3Q+IHBhdGhz
V2l0aFRpbWVzOworCiAgICAgSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBwYXRoc0Vu
ZCA9IHBhdGhzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxTdHJpbmc+Ojpjb25zdF9pdGVyYXRv
ciBpdCA9IHBhdGhzLmJlZ2luKCk7IGl0ICE9IHBhdGhzRW5kOyArK2l0KSB7CiAgICAgICAgIHRp
bWVfdCBsYXN0TW9kaWZpZWQ7CiAgICAgICAgIGlmICghZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUo
Kml0LCBsYXN0TW9kaWZpZWQpKQogICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgcGF0
aHNXaXRoVGltZXMuYWRkKCppdCwgbGFzdE1vZGlmaWVkKTsKKworICAgICAgICAvLyBJZiB0aGUg
cGF0aCdzIHRpbWVzdGFtcCBoYXNuJ3QgY2hhbmdlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHdlIHJh
biByZWZyZXNoKCksIHdlIGRvbid0IGhhdmUgdG8gZG8gYW55dGhpbmcuCisgICAgICAgIEhhc2hN
YXA8U3RyaW5nLCB0aW1lX3Q+OjppdGVyYXRvciBmb3VuZCA9IG1fcGx1Z2luUGF0aHNXaXRoVGlt
ZXMuZmluZCgqaXQpOworICAgICAgICBpZiAoZm91bmQgIT0gbV9wbHVnaW5QYXRoc1dpdGhUaW1l
cy5lbmQoKSAmJiBmb3VuZC0+c2Vjb25kID09IGxhc3RNb2RpZmllZCkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCiAgICAgICAgIGlmIChSZWZQdHI8UGx1Z2luUGFja2FnZT4gb2xkUGFja2FnZSA9
IG1fcGx1Z2luc0J5UGF0aC5nZXQoKml0KSkgewotICAgICAgICAgICAgaWYgKG9sZFBhY2thZ2Ut
Pmxhc3RNb2RpZmllZCgpID09IGxhc3RNb2RpZmllZCkKLSAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIEFTU0VSVChvbGRQYWNrYWdlLT5sYXN0TW9kaWZpZWQoKSAhPSBsYXN0
TW9kaWZpZWQpOwogICAgICAgICAgICAgcmVtb3ZlKG9sZFBhY2thZ2UuZ2V0KCkpOwogICAgICAg
ICB9CiAKQEAgLTEwMCw2ICsxMDYsMTQgQEAgYm9vbCBQbHVnaW5EYXRhYmFzZTo6cmVmcmVzaCgp
CiAgICAgICAgICAgICBwbHVnaW5TZXRDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKKyAgICAvLyBD
YWNoZSBhbGwgdGhlIHBhdGhzIHdlIGZvdW5kIHdpdGggdGhlaXIgdGltZXN0YW1wcyBmb3IgbmV4
dCB0aW1lLgorICAgIHBhdGhzV2l0aFRpbWVzLnN3YXAobV9wbHVnaW5QYXRoc1dpdGhUaW1lcyk7
CisKKyAgICBpZiAoIXBsdWdpblNldENoYW5nZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIG1fcmVnaXN0ZXJlZE1JTUVUeXBlcy5jbGVhcigpOworCiAgICAgLy8gUmVnaXN0ZXIgcGx1
Zy1pbiBNSU1FIHR5cGVzCiAgICAgUGx1Z2luU2V0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBtX3Bs
dWdpbnMuZW5kKCk7CiAgICAgZm9yIChQbHVnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9w
bHVnaW5zLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewpAQCAtMTEwLDcgKzEyNCw3IEBAIGJv
b2wgUGx1Z2luRGF0YWJhc2U6OnJlZnJlc2goKQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0
dXJuIHBsdWdpblNldENoYW5nZWQ7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIFZlY3RvcjxQbHVn
aW5QYWNrYWdlKj4gUGx1Z2luRGF0YWJhc2U6OnBsdWdpbnMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
RGF0YWJhc2UuaAppbmRleCBmYmQwMDY1Li41ODgzOWEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luRGF0YWJhc2UuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuaApAQCAtNzYsNiArNzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEhhc2hT
ZXQ8U3RyaW5nPiBtX3JlZ2lzdGVyZWRNSU1FVHlwZXM7CiAgICAgICAgIFBsdWdpblNldCBtX3Bs
dWdpbnM7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8UGx1Z2luUGFja2FnZT4gPiBt
X3BsdWdpbnNCeVBhdGg7CisgICAgICAgIEhhc2hNYXA8U3RyaW5nLCB0aW1lX3Q+IG1fcGx1Z2lu
UGF0aHNXaXRoVGltZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotLSAKMS41
LjQuNC41MzcuZ2I3NWFhCgo=
</data>
<flag name="review"
          id="8816"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20236</attachid>
            <date>2008-03-31 09:40:52 -0700</date>
            <delta_ts>2008-03-31 09:42:11 -0700</delta_ts>
            <desc>Step 2 (revised)</desc>
            <filename>0001--Fix-Bug-18208-Acid3-test-65-takes-33ms-due.patch</filename>
            <type>text/plain</type>
            <size>5679</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSA3YTkzZmI2NGQyZjY0NzQ3YTk5N2MzOGNkNWFhZjEyMmZlMzExZmEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBT
dW4sIDMwIE1hciAyMDA4IDAyOjEyOjAxIC0wNDAwClN1YmplY3Q6IFtQRlJdICAgICAgICAgRml4
IEJ1ZyAxODIwODogQWNpZDMgdGVzdCA2NSB0YWtlcyA+MzNtcyBkdWUgdG8gcGx1Z2luIHJlZnJl
c2hpbmcgb24gV2luZG93cwoKICAgICAgICA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyMDg+CgogICAgICAgIFdlIG5vdyBrZWVwIHRyYWNrIG9mIGFsbCB0aGUgcGx1
Z2luIHBhdGhzIGZvdW5kIGVhY2ggdGltZSByZWZyZXNoKCkgaXMKICAgICAgICBjYWxsZWQuIFdl
J2xsIG9ubHkgaW5zdGFudGlhdGUgUGx1Z2luUGFja2FnZXMgaWYgdGhlcmUgYXJlIG5ldyBwYXRo
cwogICAgICAgIG9yIHBhdGhzIHdpdGggY2hhbmdlZCB0aW1lc3RhbXBzIHNpbmNlIHRoZSBsYXN0
IHRpbWUgcmVmcmVzaCgpIHdhcwogICAgICAgIGNhbGxlZC4KCiAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgogICAgICAgICogcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHA6CiAg
ICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFiYXNlOjpyZWZyZXNoKToKICAgICAgICAgIC0gT25s
eSBpbnN0YW50aWF0ZSBQbHVnaW5QYWNrYWdlcyBpZiB0aGVyZSBpcyBhIG5ldyBwYXRoIG9yIGEg
cGF0aAogICAgICAgICAgICB3aXRoIGEgY2hhbmdlZCB0aW1lc3RhbXAgc2luY2Ugd2UgbGFzdCBy
YW4gcmVmcmVzaCgpLgogICAgICAgICAgLSBDYWNoZSB0aGUgc2V0IG9mIHBsdWdpbiBwYXRocyBm
b3VuZCBhbmQgdGhlaXIgdGltZXN0YW1wcyBmb3IgdGhlCiAgICAgICAgICAgIG5leHQgY2FsbCB0
byByZWZyZXNoKCkuCiAgICAgICAgICAtIE9ubHkgcmUtcmVnaXN0ZXIgTUlNRSB0eXBlcyBpZiBv
dXIgc2V0IG9mIHBsdWdpbnMgY2hhbmdlZC4KICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuaDogQWRkZWQgYSBuZXcgbWVtYmVyIHRvIGNhY2hlIHBsdWdpbiBwYXRocwogICAgICAgIGFu
ZCB0aGVpciB0aW1lc3RhbXBzLgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgfCAgIDI0ICsrKysrKysrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGFiYXNlLmNwcCB8ICAgMjggKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpbkRhdGFiYXNlLmggICB8ICAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0
OCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNGNmNi4uY2Y2NmZkNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSwyOSBAQAogMjAwOC0wMy0yOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKKyAg
ICAgICAgRml4IEJ1ZyAxODIwODogQWNpZDMgdGVzdCA2NSB0YWtlcyA+MzNtcyBkdWUgdG8gcGx1
Z2luIHJlZnJlc2hpbmcgb24KKyAgICAgICAgV2luZG93cworCisgICAgICAgIDxodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODIwOD4KKworICAgICAgICBXZSBub3cga2Vl
cCB0cmFjayBvZiBhbGwgdGhlIHBsdWdpbiBwYXRocyBmb3VuZCBlYWNoIHRpbWUgcmVmcmVzaCgp
IGlzCisgICAgICAgIGNhbGxlZC4gV2UnbGwgb25seSBpbnN0YW50aWF0ZSBQbHVnaW5QYWNrYWdl
cyBpZiB0aGVyZSBhcmUgbmV3IHBhdGhzCisgICAgICAgIG9yIHBhdGhzIHdpdGggY2hhbmdlZCB0
aW1lc3RhbXBzIHNpbmNlIHRoZSBsYXN0IHRpbWUgcmVmcmVzaCgpIHdhcworICAgICAgICBjYWxs
ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBw
bHVnaW5zL1BsdWdpbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpbkRhdGFi
YXNlOjpyZWZyZXNoKToKKyAgICAgICAgICAtIE9ubHkgaW5zdGFudGlhdGUgUGx1Z2luUGFja2Fn
ZXMgaWYgdGhlcmUgaXMgYSBuZXcgcGF0aCBvciBhIHBhdGgKKyAgICAgICAgICAgIHdpdGggYSBj
aGFuZ2VkIHRpbWVzdGFtcCBzaW5jZSB3ZSBsYXN0IHJhbiByZWZyZXNoKCkuCisgICAgICAgICAg
LSBDYWNoZSB0aGUgc2V0IG9mIHBsdWdpbiBwYXRocyBmb3VuZCBhbmQgdGhlaXIgdGltZXN0YW1w
cyBmb3IgdGhlCisgICAgICAgICAgICBuZXh0IGNhbGwgdG8gcmVmcmVzaCgpLgorICAgICAgICAg
IC0gT25seSByZS1yZWdpc3RlciBNSU1FIHR5cGVzIGlmIG91ciBzZXQgb2YgcGx1Z2lucyBjaGFu
Z2VkLgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaDogQWRkZWQgYSBuZXcgbWVt
YmVyIHRvIGNhY2hlIHBsdWdpbiBwYXRocworICAgICAgICBhbmQgdGhlaXIgdGltZXN0YW1wcy4K
KworMjAwOC0wMy0yOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKICAgICAgICAg
U2VwYXJhdGUgZmlsZXN5c3RlbSBjcmF3bGluZyBmcm9tIFBsdWdpblBhY2thZ2UgaW5zdGFudGlh
dGlvbgogCiAgICAgICAgIFBhcnQgb2YgQnVnIDE4MjA4OiBBY2lkMyB0ZXN0IDY1IHRha2VzID4z
M21zIGR1ZSB0byBwbHVnaW4gcmVmcmVzaGluZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpbkRhdGFiYXNlLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAK
aW5kZXggMWYwZDQxMC4uNDdmNmMxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGFiYXNlLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCkBA
IC02OCw4ICs2OCw2IEBAIGJvb2wgUGx1Z2luRGF0YWJhc2U6OnJlZnJlc2goKQogICAgIGJvb2wg
cGx1Z2luU2V0Q2hhbmdlZCA9IGZhbHNlOwogCiAgICAgaWYgKCFtX3BsdWdpbnMuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIG1fcmVnaXN0ZXJlZE1JTUVUeXBlcy5jbGVhcigpOwotCiAgICAgICAgIFBs
dWdpblNldCBwbHVnaW5zVG9VbmxvYWQ7CiAgICAgICAgIGdldERlbGV0ZWRQbHVnaW5zKHBsdWdp
bnNUb1VubG9hZCk7CiAKQEAgLTg0LDE1ICs4MiwyNyBAQCBib29sIFBsdWdpbkRhdGFiYXNlOjpy
ZWZyZXNoKCkKICAgICBIYXNoU2V0PFN0cmluZz4gcGF0aHM7CiAgICAgZ2V0UGx1Z2luUGF0aHNJ
bkRpcmVjdG9yaWVzKHBhdGhzKTsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCB0aW1lX3Q+IHBhdGhz
V2l0aFRpbWVzOworCisgICAgLy8gV2Ugc2hvdWxkIG9ubHkgc2tpcCB1bmNoYW5nZWQgZmlsZXMg
aWYgd2UgZGlkbid0IHJlbW92ZSBhbnkgcGx1Z2lucyBhYm92ZS4gSWYgd2UgZGlkIHJlbW92ZQor
ICAgIC8vIGFueSBwbHVnaW5zLCB3ZSBuZWVkIHRvIGxvb2sgYXQgZXZlcnkgcGx1Z2luIGZpbGUg
c28gdGhhdCwgZS5nLiwgaWYgdGhlIHVzZXIgaGFzIHR3byB2ZXJzaW9ucworICAgIC8vIG9mIFJl
YWxQbGF5ZXIgaW5zdGFsbGVkIGFuZCBqdXN0IHJlbW92ZWQgdGhlIG5ld2VyIG9uZSwgd2UnbGwg
cGljayB1cCB0aGUgb2xkZXIgb25lLgorICAgIGJvb2wgc2hvdWxkU2tpcFVuY2hhbmdlZEZpbGVz
ID0gIXBsdWdpblNldENoYW5nZWQ7CisKICAgICBIYXNoU2V0PFN0cmluZz46OmNvbnN0X2l0ZXJh
dG9yIHBhdGhzRW5kID0gcGF0aHMuZW5kKCk7CiAgICAgZm9yIChIYXNoU2V0PFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gcGF0aHMuYmVnaW4oKTsgaXQgIT0gcGF0aHNFbmQ7ICsraXQpIHsK
ICAgICAgICAgdGltZV90IGxhc3RNb2RpZmllZDsKICAgICAgICAgaWYgKCFnZXRGaWxlTW9kaWZp
Y2F0aW9uVGltZSgqaXQsIGxhc3RNb2RpZmllZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAor
ICAgICAgICBwYXRoc1dpdGhUaW1lcy5hZGQoKml0LCBsYXN0TW9kaWZpZWQpOworCisgICAgICAg
IC8vIElmIHRoZSBwYXRoJ3MgdGltZXN0YW1wIGhhc24ndCBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0
IHRpbWUgd2UgcmFuIHJlZnJlc2goKSwgd2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZy4KKyAg
ICAgICAgaWYgKHNob3VsZFNraXBVbmNoYW5nZWRGaWxlcyAmJiBtX3BsdWdpblBhdGhzV2l0aFRp
bWVzLmdldCgqaXQpID09IGxhc3RNb2RpZmllZCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCiAg
ICAgICAgIGlmIChSZWZQdHI8UGx1Z2luUGFja2FnZT4gb2xkUGFja2FnZSA9IG1fcGx1Z2luc0J5
UGF0aC5nZXQoKml0KSkgewotICAgICAgICAgICAgaWYgKG9sZFBhY2thZ2UtPmxhc3RNb2RpZmll
ZCgpID09IGxhc3RNb2RpZmllZCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgIEFTU0VSVCghc2hvdWxkU2tpcFVuY2hhbmdlZEZpbGVzIHx8IG9sZFBhY2thZ2UtPmxhc3RN
b2RpZmllZCgpICE9IGxhc3RNb2RpZmllZCk7CiAgICAgICAgICAgICByZW1vdmUob2xkUGFja2Fn
ZS5nZXQoKSk7CiAgICAgICAgIH0KIApAQCAtMTAwLDYgKzExMCwxNCBAQCBib29sIFBsdWdpbkRh
dGFiYXNlOjpyZWZyZXNoKCkKICAgICAgICAgICAgIHBsdWdpblNldENoYW5nZWQgPSB0cnVlOwog
ICAgIH0KIAorICAgIC8vIENhY2hlIGFsbCB0aGUgcGF0aHMgd2UgZm91bmQgd2l0aCB0aGVpciB0
aW1lc3RhbXBzIGZvciBuZXh0IHRpbWUuCisgICAgcGF0aHNXaXRoVGltZXMuc3dhcChtX3BsdWdp
blBhdGhzV2l0aFRpbWVzKTsKKworICAgIGlmICghcGx1Z2luU2V0Q2hhbmdlZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgbV9yZWdpc3RlcmVkTUlNRVR5cGVzLmNsZWFyKCk7CisKICAg
ICAvLyBSZWdpc3RlciBwbHVnLWluIE1JTUUgdHlwZXMKICAgICBQbHVnaW5TZXQ6OmNvbnN0X2l0
ZXJhdG9yIGVuZCA9IG1fcGx1Z2lucy5lbmQoKTsKICAgICBmb3IgKFBsdWdpblNldDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX3BsdWdpbnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CkBAIC0x
MTAsNyArMTI4LDcgQEAgYm9vbCBQbHVnaW5EYXRhYmFzZTo6cmVmcmVzaCgpCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gcGx1Z2luU2V0Q2hhbmdlZDsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogVmVjdG9yPFBsdWdpblBhY2thZ2UqPiBQbHVnaW5EYXRhYmFzZTo6cGx1Z2lucygpIGNv
bnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuaCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oCmluZGV4IGZiZDAwNjUuLjU4ODM5YTIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5oCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5oCkBAIC03Niw2ICs3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgSGFzaFNldDxTdHJpbmc+IG1fcmVnaXN0ZXJlZE1JTUVUeXBlczsKICAgICAg
ICAgUGx1Z2luU2V0IG1fcGx1Z2luczsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxQ
bHVnaW5QYWNrYWdlPiA+IG1fcGx1Z2luc0J5UGF0aDsKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcs
IHRpbWVfdD4gbV9wbHVnaW5QYXRoc1dpdGhUaW1lczsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0tIAoxLjUuNS5yYzIuMTU1LmdiMGE2NwoK
</data>
<flag name="review"
          id="8828"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>