<?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>110308</bug_id>
          
          <creation_ts>2013-02-19 22:39:05 -0800</creation_ts>
          <short_desc>shouldUsePluginDocument() needs to be respected when a document is created</short_desc>
          <delta_ts>2013-05-09 11:48:24 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Max Feil">mfeil</reporter>
          <assigned_to name="Max Feil">mfeil</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>837184</commentid>
    <comment_count>0</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-19 22:39:05 -0800</bug_when>
    <thetext>The client needs to be able to specify certain mime types that should be treated as a plugin no matter what. This will allow the &quot;missing plugin&quot; icon to be displayed in those cases where the plugin dll cannot be loaded.

For example, Adobe Flashplayer swf files have a mime type of &quot;application/x-shockwave-flash&quot;. Without an explicit call to shouldUsePluginDocument() in DOMImplementation::createHTMLDocument() we end up with web pages displaying swf binary as gibberish HTML (BlackBerry) or downloading the .swf file immediately (Chrome). This fix is specifically targeted at plugin mime types referenced as the src property of iframes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837189</commentid>
    <comment_count>1</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-19 22:47:43 -0800</bug_when>
    <thetext>Note that this patch does not impact any non-BlackBerry ports except Windows. For all other ports, shouldUsePluginDocument() always returns false. For Windows the layout tests should provide adequate coverage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837196</commentid>
    <comment_count>2</comment_count>
      <attachid>189252</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-19 22:56:08 -0800</bug_when>
    <thetext>Created attachment 189252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837200</commentid>
    <comment_count>3</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-19 23:03:00 -0800</bug_when>
    <thetext>I am proposing a cross-platform change. The only non-BlackBerry port that seems to be affected is Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837533</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-20 10:03:35 -0800</bug_when>
    <thetext>It&apos;s not very clear what the shouldUsePluginDocument() function is supposed to do, given that it&apos;s not implemented on most platforms. It probably needs a better name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839826</commentid>
    <comment_count>5</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-22 12:45:34 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; It&apos;s not very clear what the shouldUsePluginDocument() function is supposed to do, given that it&apos;s not implemented on most platforms. It probably needs a better name.

I think the name is quite descriptive. It is already used as the basis for deciding whether PluginDocument::create() should be called at the beginning of  DocumentWriter::createDocument(). I am simply proposing a matching check in the only other place PluginDocument::create() is called (see my proposed patch).

To me this patch makes things consistent, and is low risk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839851</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-22 13:13:58 -0800</bug_when>
    <thetext>So looking at shouldUsePluginDocument() implementation in WebKit2, I see that it always returns false. If the name was accurate and descriptive, that would mean that WebKit2 never uses PluginDocument, which is obviously incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839882</commentid>
    <comment_count>7</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-22 13:36:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; So looking at shouldUsePluginDocument() implementation in WebKit2, I see that it always returns false. If the name was accurate and descriptive, that would mean that WebKit2 never uses PluginDocument, which is obviously incorrect.

That&apos;s getting a bit picky, but I see your point. How about shouldForcePluginDocument()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839898</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-22 13:48:56 -0800</bug_when>
    <thetext>Will returning true for this function make it so that a PluginDocument would be created for any MIME type, including text/html?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839930</commentid>
    <comment_count>9</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-22 14:06:09 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Will returning true for this function make it so that a PluginDocument would be created for any MIME type, including text/html?

No, so my suggestion is not good. I really find the current name fine. To get an exactly appropriate name we&apos;d end up with &quot;shouldForcePluginDocumentWithExceptions()&quot; or &quot;shouldTendToUsePluginDocument()&quot; or something equally horrible :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839973</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-22 14:24:32 -0800</bug_when>
    <thetext>I was not nitpicking, the current name really makes no sense to me.

If there is no good name for the concept, then it just shouldn&apos;t exist, and adding more code paths that depend on on it is not advisable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841615</commentid>
    <comment_count>11</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-25 21:51:03 -0800</bug_when>
    <thetext>
(In reply to comment #10)
&gt; If there is no good name for the concept, then it just shouldn&apos;t exist, and adding more code paths that depend on on it is not advisable.

I disagree. We can&apos;t make all function names contain the full details of what the function does. For that information a developer can look in the code.

The shouldUsePluginDocument() function simply allows a mime type to be interpreted as being associated with a plugin document without the plugin already being available. There are of course exceptions. A port can&apos;t turn text/html into a plugin mime type.

So I would re-word what you said above as &quot;if there is no good way to describe a concept, then its implementation should not be proliferated&quot;. But &quot;name of concept&quot; does not equate to &quot;name of function&quot;.

Can somebody else chime in here? I really think that an idea for a useful patch has been side tracked by 8 straight comments about a function name that was already implemented and reviewed long ago. If not everyone is happy with that name, then I&apos;ll be happy to create a separate bug and cc the original author and reviewers who chose that name.

I&apos;m feeling like Arthur Two Sheds Jackson: http://www.youtube.com/watch?v=HLjS3gzHetA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841659</commentid>
    <comment_count>12</comment_count>
      <attachid>189252</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-25 22:54:29 -0800</bug_when>
    <thetext>Comment on attachment 189252
Patch

I don&apos;t think that continued arguing would be productive. This patch is harmful, and cannot be landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841787</commentid>
    <comment_count>13</comment_count>
      <attachid>189252</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-02-26 01:39:50 -0800</bug_when>
    <thetext>Comment on attachment 189252
Patch

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

I don&apos;t know the original purpose of the existing shouldUsePluginDocument(), but maybe instead of trying to come up with a better name, we could add a new method for this particular use case, because it might not be the same. Something like shouldAlwaysCreatePluginDocumentForMIMEType() which means that even if there isn&apos;t a plugin in the database to handle the MIME type we still want to create a PluginDocument for this particular MIME type.

&gt; Source/WebCore/dom/DOMImplementation.cpp:420
&gt; -    if (type != &quot;text/plain&quot; &amp;&amp; pluginData &amp;&amp; pluginData-&gt;supportsMimeType(type)) 
&gt; +    if (type != &quot;text/plain&quot; &amp;&amp; ((pluginData &amp;&amp; pluginData-&gt;supportsMimeType(type)) || (frame &amp;&amp; frame-&gt;loader()-&gt;client()-&gt;shouldUsePluginDocument(type))))

pluginData is NULL when plugins are disabled (or there&apos;s not frame nor page) so I think we should still honor that and only create the PluginDocument if plugins are allowed, what about something like this?

if (type != &quot;text/plain&quot; &amp;&amp; pluginData &amp;&amp; (pluginData-&gt;supportsMimeType(type) || frame-&gt;loader()-&gt;client()-&gt;shouldAlwaysCreatePluginDocumentForMIMEType(type)))

We don&apos;t need to check frame because pluginData can only be != NULL if frame is also != NULL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841806</commentid>
    <comment_count>14</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-26 02:02:50 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; pluginData is NULL when plugins are disabled (or there&apos;s not frame nor page) so I think we should still honor that and only create the PluginDocument if plugins are allowed, what about something like this?

Thanks for the comment Carlos. The only problem with your suggestion is that when pluginData is null, a non-plugin action will be performed on the src of the iframe, i.e. execution will continue down below the check in question and HTMLDocument::create() will be called. In the case of an Adobe Flashplayer .swf file, the BlackBerry port will render gibberish text for the entire binary (the very problem I am trying to solve). For other ports, if current behaviour holds, the user will be prompted to download the .swf (Safari) or it will just be downloaded automatically (Chrome).

The intent of allowing a client to associate a mime type with a plugin document is to ensure that the missing plugin icon gets rendered, and I think this is also the correct behaviour when pluginData is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841984</commentid>
    <comment_count>15</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2013-02-26 07:39:47 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I was not nitpicking, the current name really makes no sense to me.
&gt; 
&gt; If there is no good name for the concept, then it just shouldn&apos;t exist, and adding more code paths that depend on on it is not advisable.

What is the correct way to determine that a page should show the missing plugin icon for a mime type rather than displaying or downloading the content?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842032</commentid>
    <comment_count>16</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2013-02-26 08:28:14 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Will returning true for this function make it so that a PluginDocument would be created for any MIME type, including text/html?
&gt; 
&gt; No, so my suggestion is not good. I really find the current name fine. To get an exactly appropriate name we&apos;d end up with &quot;shouldForcePluginDocumentWithExceptions()&quot; or &quot;shouldTendToUsePluginDocument()&quot; or something equally horrible :)

I think &quot;shouldUsePluginDocumentForMIMEType&quot; or simply &quot;shouldUsePluginForMIMEType&quot; would be a good name for this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842333</commentid>
    <comment_count>17</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-26 13:51:38 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; What is the correct way to determine that a page should show the missing plugin icon for a mime type rather than displaying or downloading the content?

In the BlackBerry port, we don&apos;t use the missing plugin icon. We do (sort of) use the missing plugin text. See the function unavailablePluginReplacementText().

This text gets rendered when HTMLEmbedElement.cpp initiates its subframe load. Plugins are typically placed inside &lt;embed&gt; or &lt;object&gt; elements. This same code path is executed when a PluginDocument is created, which is why my patch works.

When an iframe loads, the code is not assuming that it will contain a plugin (unlike &lt;embed&gt; and &lt;object&gt;). That is why the client needs the ability to tell it to create a plugin document (similar to what is already done for top level frames in DocumentWriter::createDocument()).

Historically, iframes have been an area where code fixes have lagged behind. Often a feature or bug fix is implemented, only to later require a special case for iframes. I feel this bug is no different.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842357</commentid>
    <comment_count>18</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-26 14:04:28 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I think &quot;shouldUsePluginDocumentForMIMEType&quot; or simply &quot;shouldUsePluginForMIMEType&quot; would be a good name for this function.

I like both of those!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842617</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-26 19:34:24 -0800</bug_when>
    <thetext>&gt; I think &quot;shouldUsePluginDocumentForMIMEType&quot; or simply &quot;shouldUsePluginForMIMEType&quot; would be a good name for this function.

How are these different from &quot;shouldUsePluginDocument&quot;? I think that all the same comments that I made about it still apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842766</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-02-27 00:19:42 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; &gt; I think &quot;shouldUsePluginDocumentForMIMEType&quot; or simply &quot;shouldUsePluginForMIMEType&quot; would be a good name for this function.
&gt; 
&gt; How are these different from &quot;shouldUsePluginDocument&quot;? I think that all the same comments that I made about it still apply.

I think shouldAlwaysCreatePluginDocumentForMIMEType() or shouldAlwaysUsePluginDocumentForMIMEType() would address your concerns, since it would make clear that even if they return false, that doesn&apos;t mean PluginDocument could not be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842800</commentid>
    <comment_count>21</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-27 00:49:22 -0800</bug_when>
    <thetext>I assume that the proposed name is for an additional client call, as existing usage of shouldUsePluginDocument() doesn&apos;t appear to match it.

shouldAlwaysUsePluginDocument() appears correct and descriptive, but please don&apos;t add the &quot;ForMIMEType&quot; part. It doesn&apos;t add meaning, as a function call always returns a result for its arguments.

However I&apos;m concerned that this adds a new way to do something that is already doable. If I understood the problem statement correctly, Safari doesn&apos;t have this issue. How does Mac port implement the desired behavior?

What I tested was opening &lt;data:text/html,%3Ciframe%20src=%22http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf%22%3E%3C/iframe%3E&gt; without Flash installed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843036</commentid>
    <comment_count>22</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2013-02-27 07:20:15 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; However I&apos;m concerned that this adds a new way to do something that is already doable. If I understood the problem statement correctly, Safari doesn&apos;t have this issue. How does Mac port implement the desired behavior?
&gt; 
&gt; What I tested was opening &lt;data:text/html,%3Ciframe%20src=%22http://www.adobe.com/swf/software/flash/about/flashAbout_info_small.swf%22%3E%3C/iframe%3E&gt; without Flash installed.

I don&apos;t have a Mac, but both Chrome and Safari for Windows do NOT implement the desired behaviour. When I go to the above link without Flash installed, they download the .swf file. 

Our target behaviour for Blackberry is to show the &quot;missing plugin&quot; icon in the iframe. Can you confirm whether Safari for Mac does this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843100</commentid>
    <comment_count>23</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-02-27 08:41:23 -0800</bug_when>
    <thetext>
(In reply to comment #21)
&gt; I assume that the proposed name is for an additional client call, as existing usage of shouldUsePluginDocument() doesn&apos;t appear to match it.

I would prefer not to add an existing client call, since what we need appears to have exactly the same usage as shouldUsePluginDocument(). This call already partially implements what is needed. My patch simply completes the implementation. Also see my comment #5.

And as I mentioned in comment #17, one reason that I believe that the existing implementation is not complete is that the iframe case is often forgotten at first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843277</commentid>
    <comment_count>24</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-27 11:10:33 -0800</bug_when>
    <thetext>&gt; Our target behaviour for Blackberry is to show the &quot;missing plugin&quot; icon in the iframe. Can you confirm whether Safari for Mac does this?

Safari shows a blank iframe. Depending on how it&apos;s implemented, it might be possible to show &quot;missing plug-in&quot; too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852971</commentid>
    <comment_count>25</comment_count>
      <attachid>192620</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-11 18:42:34 -0700</bug_when>
    <thetext>Created attachment 192620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852976</commentid>
    <comment_count>26</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-11 18:45:37 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=192620) [details]
&gt; Patch

Updated my patch to include the name change from comment #12. I updated the name everywhere except WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853143</commentid>
    <comment_count>27</comment_count>
      <attachid>192620</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-12 00:37:03 -0700</bug_when>
    <thetext>Comment on attachment 192620
Patch

Attachment 192620 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17038160</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853251</commentid>
    <comment_count>28</comment_count>
      <attachid>192620</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-12 02:53:39 -0700</bug_when>
    <thetext>Comment on attachment 192620
Patch

Attachment 192620 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/17041202</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853747</commentid>
    <comment_count>29</comment_count>
      <attachid>192797</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-12 13:55:49 -0700</bug_when>
    <thetext>Created attachment 192797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857690</commentid>
    <comment_count>30</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-18 16:20:12 -0700</bug_when>
    <thetext>Ping. I would like to find out if the only thing preventing an r+ of this patch is lack of a layout test, i.e. all else is ok now. If so, I will go ahead and write a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857725</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-18 16:52:31 -0700</bug_when>
    <thetext>I do not see a satisfactory resolution for the naming concern.

I&apos;m also still unsure if any new client calls are needed - while Safari currently chooses to just show blank for missing plug-in, I think that it used to display an icon before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857745</commentid>
    <comment_count>32</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-18 17:03:01 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; I do not see a satisfactory resolution for the naming concern.

Hi Alexey. You yourself approved the new name. See your comment #12: &quot;shouldAlwaysUsePluginDocument() appears correct and descriptive, but please don&apos;t add the &quot;ForMIMEType&quot; part.&quot;

&gt; I&apos;m also still unsure if any new client calls are needed - while Safari currently chooses to just show blank for missing plug-in, I think that it used to display an icon before.

No new client calls are needed. Any new client calls are not within the scope of my patch. That is the good thing about it. Any client can choose to implement shouldAlwaysUsePluginDocument() whenever they need this functionality.

My patch really just makes a correction to a mechanism that has been in place for quite a while, and already has been working for the case of navigating directly to a file associated with a plugin (for example a .swf file). My patch simply gets this working for the oft-forgotten iframe case as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857763</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-03-18 17:15:08 -0700</bug_when>
    <thetext>&gt; See your comment #12: &quot;shouldAlwaysUsePluginDocument() appears correct and descriptive, but please don&apos;t add the &quot;ForMIMEType&quot; part.&quot;

Indeed. Sorry, this was some time ago.

I don&apos;t have any objections against this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863243</commentid>
    <comment_count>34</comment_count>
      <attachid>194968</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-25 18:15:35 -0700</bug_when>
    <thetext>Created attachment 194968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863244</commentid>
    <comment_count>35</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-03-25 18:18:59 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Created an attachment (id=194968) [details]
&gt; Patch

This patch adds a layout test. Otherwise it is unchanged from the previous patch. I&apos;m hoping for a quick review process :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885503</commentid>
    <comment_count>36</comment_count>
      <attachid>200853</attachid>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-05-06 16:47:33 -0700</bug_when>
    <thetext>Created attachment 200853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>885505</commentid>
    <comment_count>37</comment_count>
    <who name="Max Feil">mfeil</who>
    <bug_when>2013-05-06 16:48:52 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Created an attachment (id=200853) [details]
&gt; Patch

Same as previous patch, but resolved conflicts from during the 6 weeks this patch has been up for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886985</commentid>
    <comment_count>38</comment_count>
      <attachid>200853</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2013-05-09 11:36:29 -0700</bug_when>
    <thetext>Comment on attachment 200853
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886998</commentid>
    <comment_count>39</comment_count>
      <attachid>200853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-09 11:48:19 -0700</bug_when>
    <thetext>Comment on attachment 200853
Patch

Clearing flags on attachment: 200853

Committed r149830: &lt;http://trac.webkit.org/changeset/149830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886999</commentid>
    <comment_count>40</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-09 11:48:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189252</attachid>
            <date>2013-02-19 22:56:08 -0800</date>
            <delta_ts>2013-03-11 18:42:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110308-20130220015230.patch</filename>
            <type>text/plain</type>
            <size>6879</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RmMjVjZDJkZjIyM2Iw
YjdhZDA3OWMxOTk4Y2RmMTEyNGQ1Njk5Zi4uNWVhZjI0ZWQ3MDkyNzkwZDA1ZTBlMzNhNGFjMWE1
NzE4MTU1YWFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTE5ICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
KSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCgpIHdlIHNob3VsZCBjcmVhdGUKKyAgICAgICAgYSBQbHVn
aW5Eb2N1bWVudCBmb3IgbWltZSB0eXBlcyB0aGF0IHJldHVybiAidHJ1ZSIgZm9yCisgICAgICAg
IHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KCksIGV2ZW4gaWYgdGhlcmUgaXMgbm8gcGx1Z2luRGF0
YQorICAgICAgICBmb3IgdGhlbS4gVGhpcyBsZXRzIGEgY2xpZW50IGNob29zZSBwbHVnaW5zIGZv
ciB3aGljaCB0aGUKKyAgICAgICAgIm1pc3NpbmcgcGx1Z2luIiBpY29uIHNob3VsZCBhcHBlYXIg
bW9yZSBjb25zaXN0ZW50bHkuIE90aGVyd2lzZQorICAgICAgICBwbHVnaW5zIHJlZmVyZW5jZWQg
YnkgaUZyYW1lcyB3aWxsIGJlIHRyZWF0ZWQgYXMgYW4gSFRNTERvY3VtZW50LAorICAgICAgICBw
b3NzaWJseSByZXN1bHRpbmcgaW4gYmluYXJ5IGZpbGVzIHJlbmRlcmVkIGFzIGdpYmJlcmlzaCB0
ZXh0LgorCisgICAgICAgIEEgbGF5b3V0IHRlc3QgaXMgcGVuZGluZy4gSSBhbSB1cGxvYWRpbmcg
dGhpcyBwYXRjaCBmb3IgZGlzY3Vzc2lvbgorICAgICAgICBmaXJzdC4KKworICAgICAgICAqIGRv
bS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRh
dGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorCiAyMDEzLTAyLTE5ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBUaWxlQ2FjaGUgdGlsZSBzaXplIHdo
ZW4gem9vbWVkIG9uIHNsb3ctc2Nyb2xsaW5nIHNpdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdl
TG9nCmluZGV4IGYyOGZjMjZiNmIyMTlhMjYwZWIxZjdlOWY3NjA1OGI4ODZmYzYzZmMuLjVkNGFl
YTMzMjY0MDZmM2I3OTk3MGIyMjIxZTQ0ODA0NGRhZTNhZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTE5ICBNYXggRmVpbCAgPG1mZWls
QHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoKSBuZWVkcyB0byBi
ZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyB0aGUg
ZXhpc3RpbmcgdmlydHVhbCBmdW5jdGlvbgorICAgICAgICBzaG91bGRVc2VQbHVnaW5Eb2N1bWVu
dCgpIGluIHRoZSBCbGFja0JlcnJ5IGZyYW1lIGxvYWRlciBjbGllbnQuCisgICAgICAgIEl0IGlz
IGNhbGxlZCBpbiBzZXZlcmFsIHBsYWNlcyB3aXRoaW4gV2ViQ29yZSB0byBkZXRlcm1pbmUKKyAg
ICAgICAgd2hldGhlciBhIFBsdWdpbkRvY3VtZW50IHNob3VsZCBiZSBjcmVhdGVkLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkVXNlUGx1
Z2luRG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChGcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkpOgorCiAyMDEzLTAyLTE5ICBOaW1hIEdoYW5hdmF0aWFuICA8
bmdoYW5hdmF0aWFuQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFwcHJvcHJpYXRl
bHkgaGFuZGxlIHdvcmQgd3JhcHBpbmcgaW4gU3BlbGxpbmdIYW5kbGVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCAxY2EyODIyZmZkY2Y2ZmMzMzI2ZDkxOTY2
MmUxZmRlOTcwMTAxMTBjLi42ODJlOGRlZWExZTJlNGExY2U5ODE2NTU3MTU1MmRhMmVjNmNlZDk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTQxNyw3ICs0
MTcsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiB0eXBlLCBGcmFtZQogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBl
eGNlcHQgdGV4dC9wbGFpbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1
bGFyLCBBZG9iZSBTVkcgVmlld2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxl
ZC4KICAgICAvLyBEaXNhbGxvd2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50
cyBwbHVnLWlucyBmcm9tIGhpamFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJv
d3NlciBpcyBleHBlY3RlZCB0byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFu
IG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4g
dGhlIGNvbW1vbiBjYXNlLgotICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5E
YXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBl
ICE9ICJ0ZXh0L3BsYWluIiAmJiAoKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNN
aW1lVHlwZSh0eXBlKSkgfHwgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNo
b3VsZFVzZVBsdWdpbkRvY3VtZW50KHR5cGUpKSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1
bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwogICAgIGlmIChpc1RleHRNSU1FVHlwZSh0eXBlKSkK
ICAgICAgICAgcmV0dXJuIFRleHREb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBmNDkwODlmZGNjOWE3
NmMzMmNjYjc1ZGUyNzM0N2U2ZDllMDcyM2QxLi5kNzNlODZkY2FlMTc1Yjg3NWJhNjI5NjE2MTZi
ZTIzNzFhZTkyYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmNwcApAQCAtMzMwLDYgKzMzMCwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eTo6Y29tbWl0dGVkTG9hZChEb2N1bWVudExvYWRlciogbG9hZGVyLCBjb25zdCBjaAogICAgIH0K
IH0KIAorYm9vbCBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnNob3VsZFVzZVBsdWdpbkRv
Y3VtZW50KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1pbWVU
eXBlID09ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCI7Cit9CisKIFBhc3NSZWZQdHI8
V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNyZWF0ZVBsdWdpbihjb25zdCBJ
bnRTaXplJiBwbHVnaW5TaXplLAogICAgIEhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZW50LCBjb25z
dCBLVVJMJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLAogICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgY29uc3QgU3RyaW5nJiBtaW1lVHlwZUluLCBi
b29sIGxvYWRNYW51YWxseSkKQEAgLTMzOCw3ICszNDMsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4g
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYg
cGx1ZwogICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsKICAgICAgICAgbWltZVR5cGUgPSBN
SU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgodXJsLnBhdGgoKSk7CiAgICAgICAg
IG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0Tm9ybWFsaXplZE1JTUVUeXBlKG1pbWVU
eXBlKTsKLSAgICAgICAgaWYgKG1pbWVUeXBlICE9ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1m
bGFzaCIpCisgICAgICAgIGlmICghc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpKQog
ICAgICAgICAgICAgbWltZVR5cGUgPSBtaW1lVHlwZUluOwogICAgIH0KIApAQCAtMzUyLDcgKzM1
Nyw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNy
ZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnCiAgICAgLy8gd2lsbCBnZW5lcmFsbHkgYmUg
YSB2YWxpZCBtZWRpYSBtaW1lIHR5cGUsIG9yIGl0IG1heSBiZSBudWxsLiBXZQogICAgIC8vIGV4
cGxpY2l0bHkgY2hlY2sgZm9yIEZsYXNoIGNvbnRlbnQgc28gaXQgZG9lcyBub3QgZ2V0IHJlbmRl
cmVkIGFzCiAgICAgLy8gdGV4dCBhdCB0aGlzIHBvaW50LCBwcm9kdWNpbmcgZ2FyYmxlZCBjaGFy
YWN0ZXJzLgotICAgIGlmIChtaW1lVHlwZSAhPSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxh
c2giICYmIG1fZnJhbWUtPmxvYWRlcigpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5zdWJmcmFtZUxv
YWRlcigpICYmICF1cmwuaXNOdWxsKCkpCisgICAgaWYgKCFzaG91bGRVc2VQbHVnaW5Eb2N1bWVu
dChtaW1lVHlwZSkgJiYgbV9mcmFtZS0+bG9hZGVyKCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPnN1
YmZyYW1lTG9hZGVyKCkgJiYgIXVybC5pc051bGwoKSkKICAgICAgICAgbV9mcmFtZS0+bG9hZGVy
KCktPnN1YmZyYW1lTG9hZGVyKCktPnJlcXVlc3RGcmFtZShlbGVtZW50LCB1cmwsIFN0cmluZygp
KTsKIAogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5oCmluZGV4IGVkOGYxMThjYmU3YzQwMzhhNzY3YmJkZGZmOGUwMjA5MTA2ZTc0MGEuLjVjYzQ1
Njk3MDM1MDQ4NDM1NDY1Mzg5NDRlYjBiMWQzMmI4ZjdjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVy
cnkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKQEAgLTE0Niw2ICsxNDYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQmVjb21lRnJhbWVzZXQoYm9vbCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZChNYWluUmVzb3VyY2VM
b2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBj
cmVhdGVGcmFtZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVt
ZW50KiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCBpbnQpOworICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQbHVn
SW5FbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVk
aXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdl
dD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1l
bnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192620</attachid>
            <date>2013-03-11 18:42:34 -0700</date>
            <delta_ts>2013-03-12 13:55:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110308-20130311213833.patch</filename>
            <type>text/plain</type>
            <size>12324</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYwM2ZlMjdmMDdjMzU1
MWE5NzJlM2M5NTVmMWVkZmQxOTQzY2M4NC4uMWIzMGIzY2M1NWUxNjYwZTUyM2U3OTY0YzUyMjRi
NjVlYWE4MmM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTE5ICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
KSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCgpIHdlIHNob3VsZCBjcmVhdGUKKyAgICAgICAgYSBQbHVn
aW5Eb2N1bWVudCBmb3IgbWltZSB0eXBlcyB0aGF0IHJldHVybiAidHJ1ZSIgZm9yCisgICAgICAg
IHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KCksIGV2ZW4gaWYgdGhlcmUgaXMgbm8gcGx1
Z2luRGF0YQorICAgICAgICBmb3IgdGhlbS4gVGhpcyBsZXRzIGEgY2xpZW50IGNob29zZSBwbHVn
aW5zIGZvciB3aGljaCB0aGUgIm1pc3NpbmcKKyAgICAgICAgcGx1Z2luIiB0ZXh0IG9yIGljb24g
c2hvdWxkIGFwcGVhciBtb3JlIGNvbnNpc3RlbnRseS4gT3RoZXJ3aXNlCisgICAgICAgIHBsdWdp
bnMgcmVmZXJlbmNlZCBieSBpRnJhbWVzIHdpbGwgYmUgdHJlYXRlZCBhcyBhbiBIVE1MRG9jdW1l
bnQsCisgICAgICAgIHBvc3NpYmx5IHJlc3VsdGluZyBpbiBiaW5hcnkgZmlsZXMgcmVuZGVyZWQg
YXMgZ2liYmVyaXNoIHRleHQuCisKKyAgICAgICAgQSBsYXlvdXQgdGVzdCBpcyBwZW5kaW5nLiBJ
IGFtIHVwbG9hZGluZyB0aGlzIHBhdGNoIGZvciBkaXNjdXNzaW9uCisgICAgICAgIGZpcnN0Lgor
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisKIDIwMTMtMDMtMTEgIFl1a2kg
U2VraWd1Y2hpICA8eXVraS5zZWtpZ3VjaGlAYWNjZXNzLWNvbXBhbnkuY29tPgogCiAgICAgICAg
IFJ1YnkgdGV4dCBpcyBpbmNvcnJlY3RseSBwb3NpdGlvbmVkIHdoZW4gaXRzIHdyaXRpbmctbW9k
ZSBpcyBjaGFuZ2VkIHRvIHZlcnRpY2FsIGFmdGVyIGxheW91dCBpcyBkb25lCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCBmMDE5NGI0NWNlODA3MTZjNjU3ZWE1YzJjOWMzOTA4M2Vm
ZGE4MjNiLi5mNmVlYjVmMTk0NDU5MmMwNjFhZGQ4MmZkMWY1MWM5MDVhNzU2ODE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMi0xOSAgTWF4
IEZlaWwgIDxtZmVpbEByaW0uY29tPgorCisgICAgICAgIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50
KCkgbmVlZHMgdG8gYmUgcmVzcGVjdGVkIHdoZW4gYSBkb2N1bWVudCBpcyBjcmVhdGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoKSBpbiB0aGUKKyAgICAgICAg
QmxhY2tCZXJyeSBmcmFtZSBsb2FkZXIgY2xpZW50LiBJdCBpcyBjYWxsZWQgaW4gc2V2ZXJhbCBw
bGFjZXMKKyAgICAgICAgd2l0aGluIFdlYkNvcmUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBQbHVn
aW5Eb2N1bWVudCBzaG91bGQKKyAgICAgICAgYmUgY3JlYXRlZC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4pOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5KToKKwogMjAxMy0wMy0xMSAgR2VuZXZpZXZlIE1hayAgPGdtYWtAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGEgbWV0aG9kIHRvIGZpbmQgdGhlIFNj
cm9sbFZpZXcgZm9yIGEgdGV4dCBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcAppbmRleCA1Mzc5OGYxY2U4Nzk5YzA3ZWY0NWRkYzM5NGE5YzA5YmRlMmEz
NGZiLi45N2NkYTFjODA4ZDc5NWMwZDg0ZDEwNzMxMzM2MmRhM2RhZDM5ODhmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTQxOCw3ICs0MTgsNyBAQCBQYXNz
UmVmUHRyPERvY3VtZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiB0eXBlLCBGcmFtZQogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9w
bGFpbiBjYW4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBT
VkcgVmlld2VyIHNob3VsZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KICAgICAvLyBE
aXNhbGxvd2luZyBwbHVnLWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50cyBwbHVnLWlucyBm
cm9tIGhpamFja2luZyBhIGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBl
Y3RlZCB0byBoYW5kbGUsCiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFuIG9wdGltaXphdGlv
biB0byBwcmV2ZW50IGxvYWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBj
YXNlLgotICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdp
bkRhdGEtPnN1cHBvcnRzTWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBlICE9ICJ0ZXh0L3Bs
YWluIiAmJiAoKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBl
KSkgfHwgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZEFsd2F5c1Vz
ZVBsdWdpbkRvY3VtZW50KHR5cGUpKSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6
Y3JlYXRlKGZyYW1lLCB1cmwpOwogICAgIGlmIChpc1RleHRNSU1FVHlwZSh0eXBlKSkKICAgICAg
ICAgcmV0dXJuIFRleHREb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKaW5kZXggMDNiNTc0OWY4Y2Y2NGY0MDdjZDQwZDQ4
M2RiM2I1YWZmYTM1MmVhMC4uMjI4MGQzY2Q2OWVjMzhjODNlODY2ZTg2Y2I5OGZlNDZhYmM2NmQ1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0xMDQsNyAr
MTA0LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6YmVnaW4oKQogCiBQYXNzUmVmUHRyPERvY3Vt
ZW50PiBEb2N1bWVudFdyaXRlcjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgS1VSTCYgdXJsKQogewot
ICAgIGlmICghbV9mcmFtZS0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJ
bml0aWFsRW1wdHlEb2N1bWVudCgpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hv
dWxkVXNlUGx1Z2luRG9jdW1lbnQobV9taW1lVHlwZSkpCisgICAgaWYgKCFtX2ZyYW1lLT5sb2Fk
ZXIoKS0+c3RhdGVNYWNoaW5lKCktPmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkg
JiYgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1
bWVudChtX21pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVhdGUo
bV9mcmFtZSwgdXJsKTsKICAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+aGFz
SFRNTFZpZXcoKSkKICAgICAgICAgcmV0dXJuIFBsYWNlaG9sZGVyRG9jdW1lbnQ6OmNyZWF0ZSht
X2ZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApp
bmRleCBkMzlhNWI4ZWFiYzBhOTVhNTNhZjBkN2FkMmI0MWQyYmYzOWI4ZmI5Li4xNjYwZTViNjMz
YzNiZDg3Yjk1NDVkODNjOWZmMzk2NzE3ZmFiMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzE1LDcgKzMxNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCB1bnNpZ25lZCBjaGFyKiBkYXRhLCB1bnNpZ25lZCBsb25nIGxvbmcgbGVuZ3RoKSA9IDA7
CiAjZW5kaWYKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
Y29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJp
bmcmIC8qbWltZVR5cGUqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVh
bCBib29sIHNob3VsZExvYWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgS1VSTCYpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0
KCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA3YTU1
MDg4Y2JlMDIyNjE4M2I3MjI5MjhkZGUyZTZjZWZkMzNhYTNhLi4zMjEwZDE2NWNhZWNlOWFlMjY5
ZTBmNTQ5MjdlYTk2MWFjZjNkYmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAKQEAgLTQxMyw3ICs0MTMsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjphbGxvd1Bs
dWdpbnMoUmVhc29uRm9yQ2FsbGluZ0FsbG93UGx1Z2lucyByZWFzb24pCiAKIGJvb2wgU3ViZnJh
bWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcywgYm9vbCBoYXNGYWxs
YmFjaywgYm9vbCYgdXNlRmFsbGJhY2spCiB7Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5j
bGllbnQoKS0+c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpKSB7CisgICAgaWYgKG1f
ZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQo
bWltZVR5cGUpKSB7CiAgICAgICAgIHVzZUZhbGxiYWNrID0gZmFsc2U7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5j
cHAKaW5kZXggMWIzNWUxMGI5ZDUwMjlmYzk0YmQzZDIzY2RjMWVmMDYxMjYyZjNmNS4uZWViOWEy
NzdlYjNiNmQxOWMxYWM4ZmEwMzdiNzY0Zjg3YTc0ZWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAgLTMyOCw2ICszMjgsMTEgQEAgdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OmNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqIGxv
YWRlciwgY29uc3QgY2gKICAgICB9CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRCbGFja0Jl
cnJ5OjpzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdAoreworICAgIHJldHVybiBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC1zaG9ja3dh
dmUtZmxhc2giOworfQorCiBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRCbGFj
a0JlcnJ5OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBIVE1M
UGx1Z0luRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1OYW1lcywKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMs
IGNvbnN0IFN0cmluZyYgbWltZVR5cGVJbiwgYm9vbCBsb2FkTWFudWFsbHkpCkBAIC0zMzYsNyAr
MzQxLDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6
Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWcKICAgICBpZiAobWltZVR5cGUuaXNFbXB0
eSgpKSB7CiAgICAgICAgIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVG
b3JQYXRoKHVybC5wYXRoKCkpOwogICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6
OmdldE5vcm1hbGl6ZWRNSU1FVHlwZShtaW1lVHlwZSk7Ci0gICAgICAgIGlmIChtaW1lVHlwZSAh
PSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giKQorICAgICAgICBpZiAoIXNob3VsZEFs
d2F5c1VzZVBsdWdpbkRvY3VtZW50KG1pbWVUeXBlKSkKICAgICAgICAgICAgIG1pbWVUeXBlID0g
bWltZVR5cGVJbjsKICAgICB9CiAKQEAgLTM1MCw3ICszNTUsNyBAQCBQYXNzUmVmUHRyPFdpZGdl
dD4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6
ZSYgcGx1ZwogICAgIC8vIHdpbGwgZ2VuZXJhbGx5IGJlIGEgdmFsaWQgbWVkaWEgbWltZSB0eXBl
LCBvciBpdCBtYXkgYmUgbnVsbC4gV2UKICAgICAvLyBleHBsaWNpdGx5IGNoZWNrIGZvciBGbGFz
aCBjb250ZW50IHNvIGl0IGRvZXMgbm90IGdldCByZW5kZXJlZCBhcwogICAgIC8vIHRleHQgYXQg
dGhpcyBwb2ludCwgcHJvZHVjaW5nIGdhcmJsZWQgY2hhcmFjdGVycy4KLSAgICBpZiAobWltZVR5
cGUgIT0gImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiAmJiBtX2ZyYW1lLT5sb2FkZXIo
KSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+c3ViZnJhbWVMb2FkZXIoKSAmJiAhdXJsLmlzTnVsbCgp
KQorICAgIGlmICghc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpICYmIG1f
ZnJhbWUtPmxvYWRlcigpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5zdWJmcmFtZUxvYWRlcigpICYm
ICF1cmwuaXNOdWxsKCkpCiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zdWJmcmFtZUxvYWRl
cigpLT5yZXF1ZXN0RnJhbWUoZWxlbWVudCwgdXJsLCBTdHJpbmcoKSk7CiAKICAgICByZXR1cm4g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaAppbmRleCAxMjgxOGU2
MTRlNWU1NDY4NGNhOTE5YWE0NmUwODkyMGQ4NzFkNDg1Li42ZWIyNjNmYjUyOTdlOWM2ZTU4OTJk
MThjYTAzMDYxNjMzMjBmOGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tC
ZXJyeS5oCkBAIC0xNDcsNiArMTQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0
TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoTWFpblJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYsIEhU
TUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJvb2wsIGludCwgaW50KTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5n
JikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNv
bnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25zdCBWZWN0
b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCopOwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50
U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAw
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggZDRiZWJiNjJjZTUwNjdhYmFhOWRiYTJhOGMyZGUy
Yjk4ZjA0NDdkMC4uNGFiNTFlMzM2OWM1ZjY1NGE4OGRiMjBiYWMyMGY2YWM0YmFjZjI5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtODk2LDcgKzg5Niw3IEBAIFdlYkhpc3RvcnkqIFdlYkZyYW1l
TG9hZGVyQ2xpZW50Ojp3ZWJIaXN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gV2ViSGlzdG9yeTo6
c2hhcmVkSGlzdG9yeSgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRV
c2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAorYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93ZWJGcmFt
ZS0+d2ViVmlldygpOwogICAgIGlmICghd2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGNhMDJm
ODc5OWFlZTJkYmYwZWYyMTlkNDExMjBjN2UxMmM0YmU1N2YuLjMzMmU4ODkxZmYzMmMxYzc1NTRl
MGE3OGViYmEwMGQ5ZTY2YTRjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTE4LDcgKzExOCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjcmVhdGVQbHVnaW4oV2ViQ29yZTo6V2lkZ2V0
KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNvcmU6Oldp
ZGdldCogcGx1Z2luV2lkZ2V0KTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQbHVnaW5E
b2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYgbWlt
ZVR5cGUpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFRvU3RhcnRQ
bHVnaW4oY29uc3QgV2ViQ29yZTo6UGx1Z2luVmlldyopIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKaW5k
ZXggZDg1ODY1NjBjNmM2NWQ0YzlmODE3ZmQ0Yjc1NzE5NDYzYjIxMWFmMC4uODUwMjExM2FlMDdm
MTljNjU5Y2M3NTI0NjY3Y2EwYjcyMWI0OGRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcApAQCAtOTkxLDcgKzk5
MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNl
dChib29sKQogewogfQogCi1ib29sIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnNob3VsZFVzZVBsdWdp
bkRvY3VtZW50KGNvbnN0IFN0cmluZyAmbWltZVR5cGUpIGNvbnN0Citib29sIEZyYW1lTG9hZGVy
Q2xpZW50V3g6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyAmbWlt
ZVR5cGUpIGNvbnN0CiB7CiAgICAgLy8gTk9URTogUGx1Z2luIERvY3VtZW50cyBhcmUgdXNlZCBm
b3Igdmlld2luZyBQREZzLCBldGMuIGlubGluZSwgYW5kIHNob3VsZAogICAgIC8vIG5vdCBiZSB1
c2VkIGZvciBwYWdlcyB3aXRoIHBsdWdpbnMgaW4gdGhlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmggYi9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCmluZGV4IDRmOTE1Yzc3
MTY0ZmUyMWRjNmU0Y2Q5NjJlYmMzZDMxYjM3NjAwODguLmIzZjUyMDliYzU4Yzk2ODYwODEwNWIz
ODEzMTE3YzcxNTMyZWFjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaApAQCAtMjI5LDcgKzIyOSw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvcklj
b25Ob3RpZmljYXRpb24oYm9vbCBsaXN0ZW4gPSB0cnVlKTsKICAgICAgICAgCi0gICAgICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcgJm1pbWVUeXBl
KSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3Vt
ZW50KGNvbnN0IFN0cmluZyAmbWltZVR5cGUpIGNvbnN0OwogICAgICAgICAKICAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPEZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdD
b250ZXh0KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192797</attachid>
            <date>2013-03-12 13:55:49 -0700</date>
            <delta_ts>2013-03-25 18:15:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110308-20130312165147.patch</filename>
            <type>text/plain</type>
            <size>16555</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTYwM2ZlMjdmMDdjMzU1
MWE5NzJlM2M5NTVmMWVkZmQxOTQzY2M4NC4uYWU5NzI5ODNiMDZkYzI0ZjM2OTQ3ZmYyNzU5Y2Jk
YmUwMDE2YTZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTEyICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
KSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCgpIHdlIHNob3VsZCBjcmVhdGUKKyAgICAgICAgYSBQbHVn
aW5Eb2N1bWVudCBmb3IgbWltZSB0eXBlcyB0aGF0IHJldHVybiAidHJ1ZSIgZm9yCisgICAgICAg
IHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KCksIGV2ZW4gaWYgdGhlcmUgaXMgbm8gcGx1
Z2luRGF0YQorICAgICAgICBmb3IgdGhlbS4gVGhpcyBsZXRzIGEgY2xpZW50IGNob29zZSBwbHVn
aW5zIGZvciB3aGljaCB0aGUgIm1pc3NpbmcKKyAgICAgICAgcGx1Z2luIiB0ZXh0IG9yIGljb24g
c2hvdWxkIGFwcGVhciBtb3JlIGNvbnNpc3RlbnRseS4gT3RoZXJ3aXNlCisgICAgICAgIHBsdWdp
bnMgcmVmZXJlbmNlZCBieSBpRnJhbWVzIHdpbGwgYmUgdHJlYXRlZCBhcyBhbiBIVE1MRG9jdW1l
bnQsCisgICAgICAgIHBvc3NpYmx5IHJlc3VsdGluZyBpbiBiaW5hcnkgZmlsZXMgcmVuZGVyZWQg
YXMgZ2liYmVyaXNoIHRleHQuCisKKyAgICAgICAgQSBsYXlvdXQgdGVzdCBpcyBwZW5kaW5nLiBJ
IGFtIHVwbG9hZGluZyB0aGlzIHBhdGNoIGZvciBkaXNjdXNzaW9uCisgICAgICAgIGZpcnN0Lgor
CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudCk6CisKIDIwMTMtMDMtMTEgIFl1a2kg
U2VraWd1Y2hpICA8eXVraS5zZWtpZ3VjaGlAYWNjZXNzLWNvbXBhbnkuY29tPgogCiAgICAgICAg
IFJ1YnkgdGV4dCBpcyBpbmNvcnJlY3RseSBwb3NpdGlvbmVkIHdoZW4gaXRzIHdyaXRpbmctbW9k
ZSBpcyBjaGFuZ2VkIHRvIHZlcnRpY2FsIGFmdGVyIGxheW91dCBpcyBkb25lCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZwppbmRleCBmMDE5NGI0NWNlODA3MTZjNjU3ZWE1YzJjOWMzOTA4M2Vm
ZGE4MjNiLi5mNmVlYjVmMTk0NDU5MmMwNjFhZGQ4MmZkMWY1MWM5MDVhNzU2ODE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMi0xOSAgTWF4
IEZlaWwgIDxtZmVpbEByaW0uY29tPgorCisgICAgICAgIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50
KCkgbmVlZHMgdG8gYmUgcmVzcGVjdGVkIHdoZW4gYSBkb2N1bWVudCBpcyBjcmVhdGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMDgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGlt
cGxlbWVudHMgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoKSBpbiB0aGUKKyAgICAgICAg
QmxhY2tCZXJyeSBmcmFtZSBsb2FkZXIgY2xpZW50LiBJdCBpcyBjYWxsZWQgaW4gc2V2ZXJhbCBw
bGFjZXMKKyAgICAgICAgd2l0aGluIFdlYkNvcmUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBQbHVn
aW5Eb2N1bWVudCBzaG91bGQKKyAgICAgICAgYmUgY3JlYXRlZC4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnk6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRv
Y3VtZW50KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4pOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oOgorICAgICAgICAoRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5KToKKwogMjAxMy0wMy0xMSAgR2VuZXZpZXZlIE1hayAgPGdtYWtAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQWRkIGEgbWV0aG9kIHRvIGZpbmQgdGhlIFNj
cm9sbFZpZXcgZm9yIGEgdGV4dCBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGFkZTM4
ZDI2ZGRkOTRjNzM1ZjIxYzdkZTUxZDlmZjc4ZTAzNGIwMy4uNjk3MGRlODZmNDNkYjQwMGU4ZGQz
MzJiYzBjN2MzMTRjYzVkYzc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDEzLTAzLTEyICBNYXggRmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNl
UGx1Z2luRG9jdW1lbnQoKSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlz
IGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMDMwOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbmFtaW5nIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KCkgdG8gc2hvdWxkQWx3YXlzVXNlUGx1
Z2luRG9jdW1lbnQoKQorICAgICAgICBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVy
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIxNDQ1NDcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IDAzMjRlMjE1ZGJlZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLjkw
OTkxYjFiODU1NWU4MTU1ZTgwMzMzMDhkMzM2ZWQxYjdhNzM2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTMtMDMtMTIgIE1heCBGZWlsICA8bWZlaWxAcmltLmNvbT4KKwor
ICAgICAgICBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudCgpIG5lZWRzIHRvIGJlIHJlc3BlY3RlZCB3
aGVuIGEgZG9jdW1lbnQgaXMgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1pbmcgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoKSB0byBz
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCgpCisgICAgICAgIGZvciBjbGFyaXR5LgorCisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaDoKKyAg
ICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50V3gpOgorCiAyMDEzLTAyLTI2ICBEbWl0cnkgWnZvcnln
aW4gIDx6dm9yeWdpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTWVyZ2VkIFRpcCBhbmQgRGVi
dWcgbG9nIGxldmVscyBmb3Igd2ViIGNvbnNvbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGRmOGQzMTcxYmI1
ZTIyMmQ1YjFjNTJmZjBhMDE1YTE1ZmZkYzJjMS4uZTY1OGZkMzdhNzAyM2IyMjBlM2IxZDU5Y2M2
ZDM3MzlhZDIwM2RlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTEyICBN
YXggRmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1l
bnQoKSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtaW5nIHNo
b3VsZFVzZVBsdWdpbkRvY3VtZW50KCkgdG8gc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQo
KQorICAgICAgICBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50KToKKwogMjAxMy0wMy0xMSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQREZQbHVnaW46IE1ha2Ugc2Nyb2xs
aW5nIGJldHdlZW4gcGFnZXMgaW4gbm9uLWNvbnRpbnVvdXMgbW9kZXMgd29yawpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggNTM3OThmMWNlODc5OWMwN2VmNDVk
ZGMzOTRhOWMwOWJkZTJhMzRmYi4uOTdjZGExYzgwOGQ3OTVjMGQ4NGQxMDczMTMzNjJkYTNkYWQz
OTg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC00MTgs
NyArNDE4LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0
ZURvY3VtZW50KGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUKICAgICAvLyBFdmVyeXRoaW5nIGVs
c2UgZXhjZXB0IHRleHQvcGxhaW4gY2FuIGJlIG92ZXJyaWRkZW4gYnkgcGx1Z2lucy4gSW4gcGFy
dGljdWxhciwgQWRvYmUgU1ZHIFZpZXdlciBzaG91bGQgYmUgdXNlZCBmb3IgU1ZHLCBpZiBpbnN0
YWxsZWQuCiAgICAgLy8gRGlzYWxsb3dpbmcgcGx1Zy1pbnMgdG8gdXNlIHRleHQvcGxhaW4gcHJl
dmVudHMgcGx1Zy1pbnMgZnJvbSBoaWphY2tpbmcgYSBmdW5kYW1lbnRhbCB0eXBlIHRoYXQgdGhl
IGJyb3dzZXIgaXMgZXhwZWN0ZWQgdG8gaGFuZGxlLAogICAgIC8vIGFuZCBhbHNvIHNlcnZlcyBh
cyBhbiBvcHRpbWl6YXRpb24gdG8gcHJldmVudCBsb2FkaW5nIHRoZSBwbHVnLWluIGRhdGFiYXNl
IGluIHRoZSBjb21tb24gY2FzZS4KLSAgICBpZiAodHlwZSAhPSAidGV4dC9wbGFpbiIgJiYgcGx1
Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c01pbWVUeXBlKHR5cGUpKSAKKyAgICBpZiAo
dHlwZSAhPSAidGV4dC9wbGFpbiIgJiYgKChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBv
cnRzTWltZVR5cGUodHlwZSkpIHx8IChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgp
LT5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCh0eXBlKSkpKQogICAgICAgICByZXR1cm4g
UGx1Z2luRG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICAgICBpZiAoaXNUZXh0TUlNRVR5
cGUodHlwZSkpCiAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJs
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IDAzYjU3NDlm
OGNmNjRmNDA3Y2Q0MGQ0ODNkYjNiNWFmZmEzNTJlYTAuLjIyODBkM2NkNjllYzM4YzgzZTg2NmU4
NmNiOThmZTQ2YWJjNjZkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVy
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKCkKIAog
UGFzc1JlZlB0cjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNyZWF0ZURvY3VtZW50KGNvbnN0
IEtVUkwmIHVybCkKIHsKLSAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUo
KS0+aXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KG1fbWltZVR5cGUpKQorICAgIGlm
ICghbV9mcmFtZS0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFs
RW1wdHlEb2N1bWVudCgpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxkQWx3
YXlzVXNlUGx1Z2luRG9jdW1lbnQobV9taW1lVHlwZSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5E
b2N1bWVudDo6Y3JlYXRlKG1fZnJhbWUsIHVybCk7CiAgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIo
KS0+Y2xpZW50KCktPmhhc0hUTUxWaWV3KCkpCiAgICAgICAgIHJldHVybiBQbGFjZWhvbGRlckRv
Y3VtZW50OjpjcmVhdGUobV9mcmFtZSwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKaW5kZXggZDM5YTViOGVhYmMwYTk1YTUzYWYwZDdhZDJiNDFkMmJmMzli
OGZiOS4uMTY2MGU1YjYzM2MzYmQ4N2I5NTQ1ZDgzYzlmZjM5NjcxN2ZhYjIwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxNSw3ICszMTUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3Bv
bnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbG9uZyBs
b25nIGxlbmd0aCkgPSAwOwogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVz
ZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9j
dW1lbnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMb2FkTWVkaWFFbGVtZW50VVJMKGNvbnN0IEtV
UkwmKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZVNjcm9sbE9mZnNldCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHAKaW5kZXggN2E1NTA4OGNiZTAyMjYxODNiNzIyOTI4ZGRlMmU2Y2VmZDMzYWEzYS4uMzIx
MGQxNjVjYWVjZTlhZTI2OWUwZjU0OTI3ZWE5NjFhY2YzZGJlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC00MTMsNyArNDEzLDcgQEAgYm9vbCBTdWJmcmFt
ZUxvYWRlcjo6YWxsb3dQbHVnaW5zKFJlYXNvbkZvckNhbGxpbmdBbGxvd1BsdWdpbnMgcmVhc29u
KQogCiBib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVnaW4oY29uc3QgS1VSTCYgdXJs
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFn
ZXMsIGJvb2wgaGFzRmFsbGJhY2ssIGJvb2wmIHVzZUZhbGxiYWNrKQogewotICAgIGlmIChtX2Zy
YW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KG1pbWVUeXBl
KSkgeworICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZEFsd2F5c1Vz
ZVBsdWdpbkRvY3VtZW50KG1pbWVUeXBlKSkgewogICAgICAgICB1c2VGYWxsYmFjayA9IGZhbHNl
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwCmluZGV4IDFiMzVlMTBiOWQ1MDI5ZmM5NGJkM2QyM2NkYzFlZjA2
MTI2MmYzZjUuLmVlYjlhMjc3ZWIzYjZkMTljMWFjOGZhMDM3Yjc2NGY4N2E3NGVkMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMjgsNiArMzI4
LDExIEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpjb21taXR0ZWRMb2FkKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGNoCiAgICAgfQogfQogCitib29sIEZyYW1lTG9h
ZGVyQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbWltZVR5cGUgPT0gImFwcGxp
Y2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIjsKK30KKwogUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdp
blNpemUsCiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsCiAgICAgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHBhcmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlSW4sIGJvb2wgbG9hZE1hbnVh
bGx5KQpAQCAtMzM2LDcgKzM0MSw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnk6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnCiAgICAgaWYg
KG1pbWVUeXBlLmlzRW1wdHkoKSkgewogICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0
cnk6OmdldE1JTUVUeXBlRm9yUGF0aCh1cmwucGF0aCgpKTsKICAgICAgICAgbWltZVR5cGUgPSBN
SU1FVHlwZVJlZ2lzdHJ5OjpnZXROb3JtYWxpemVkTUlNRVR5cGUobWltZVR5cGUpOwotICAgICAg
ICBpZiAobWltZVR5cGUgIT0gImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIikKKyAgICAg
ICAgaWYgKCFzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpCiAgICAgICAg
ICAgICBtaW1lVHlwZSA9IG1pbWVUeXBlSW47CiAgICAgfQogCkBAIC0zNTAsNyArMzU1LDcgQEAg
UGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmIHBsdWcKICAgICAvLyB3aWxsIGdlbmVyYWxseSBiZSBhIHZhbGlk
IG1lZGlhIG1pbWUgdHlwZSwgb3IgaXQgbWF5IGJlIG51bGwuIFdlCiAgICAgLy8gZXhwbGljaXRs
eSBjaGVjayBmb3IgRmxhc2ggY29udGVudCBzbyBpdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQgYXMK
ICAgICAvLyB0ZXh0IGF0IHRoaXMgcG9pbnQsIHByb2R1Y2luZyBnYXJibGVkIGNoYXJhY3RlcnMu
Ci0gICAgaWYgKG1pbWVUeXBlICE9ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgJiYg
bV9mcmFtZS0+bG9hZGVyKCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPnN1YmZyYW1lTG9hZGVyKCkg
JiYgIXVybC5pc051bGwoKSkKKyAgICBpZiAoIXNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50
KG1pbWVUeXBlKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+c3Vi
ZnJhbWVMb2FkZXIoKSAmJiAhdXJsLmlzTnVsbCgpKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIo
KS0+c3ViZnJhbWVMb2FkZXIoKS0+cmVxdWVzdEZyYW1lKGVsZW1lbnQsIHVybCwgU3RyaW5nKCkp
OwogCiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5
LmgKaW5kZXggMTI4MThlNjE0ZTVlNTQ2ODRjYTkxOWFhNDZlMDg5MjBkODcxZDQ4NS4uNmViMjYz
ZmI1Mjk3ZTljNmU1ODkyZDE4Y2EwMzA2MTYzMzIwZjhhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJy
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxv
YWRlckNsaWVudEJsYWNrQmVycnkuaApAQCAtMTQ3LDYgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKE1haW5SZXNvdXJjZUxv
YWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IEtVUkwmLCBj
b25zdCBTdHJpbmcmLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJpbmcmLCBib29s
LCBpbnQsIGludCk7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3Vt
ZW50KGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+
IGNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiwgSFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBL
VVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0
IFN0cmluZyYsIGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihX
aWRnZXQqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0
V2lkZ2V0KGNvbnN0IEludFNpemUmLCBIVE1MQXBwbGV0RWxlbWVudCosIGNvbnN0IEtVUkwmLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgeyBub3RJbXBsZW1l
bnRlZCgpOyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGQ0YmViYjYyY2U1MDY3
YWJhYTlkYmEyYThjMmRlMmI5OGYwNDQ3ZDAuLjRhYjUxZTMzNjljNWY2NTRhODhkYjIwYmFjMjBm
NmFjNGJhY2YyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTg5Niw3ICs4OTYsNyBAQCBXZWJI
aXN0b3J5KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2ViSGlzdG9yeSgpIGNvbnN0CiAgICAgcmV0
dXJuIFdlYkhpc3Rvcnk6OnNoYXJlZEhpc3RvcnkoKTsKIH0KIAotYm9vbCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkg
Y29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRv
Y3VtZW50KGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiB7CiAgICAgV2ViVmlldyogd2Vi
VmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBpZiAoIXdlYlZpZXcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAppbmRleCBjYTAyZjg3OTlhZWUyZGJmMGVmMjE5ZDQxMTIwYzdlMTJjNGJlNTdmLi4zMzJl
ODg5MWZmMzJjMWM3NTU0ZTBhNzhlYmJhMDBkOWU2NmE0Y2VhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAg
LTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlY3JlYXRlUGx1Z2lu
KFdlYkNvcmU6OldpZGdldCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1Bs
dWdpbihXZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmIG1pbWVUeXBlKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3Qg
V1RGOjpTdHJpbmcmIG1pbWVUeXBlKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZEZhaWxUb1N0YXJ0UGx1Z2luKGNvbnN0IFdlYkNvcmU6OlBsdWdpblZpZXcqKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guY3BwCmluZGV4IGQ4NTg2NTYwYzZjNjVkNGM5ZjgxN2ZkNGI3NTcxOTQ2M2IyMTFh
ZjAuLjg1MDIxMTNhZTA3ZjE5YzY1OWNjNzUyNDY2N2NhMGI3MjFiNDhkZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5j
cHAKQEAgLTk5MSw3ICs5OTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNo
RGlkQmVjb21lRnJhbWVzZXQoYm9vbCkKIHsKIH0KIAotYm9vbCBGcmFtZUxvYWRlckNsaWVudFd4
OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcgJm1pbWVUeXBlKSBjb25zdAor
Ym9vbCBGcmFtZUxvYWRlckNsaWVudFd4OjpzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChj
b25zdCBTdHJpbmcgJm1pbWVUeXBlKSBjb25zdAogewogICAgIC8vIE5PVEU6IFBsdWdpbiBEb2N1
bWVudHMgYXJlIHVzZWQgZm9yIHZpZXdpbmcgUERGcywgZXRjLiBpbmxpbmUsIGFuZCBzaG91bGQK
ICAgICAvLyBub3QgYmUgdXNlZCBmb3IgcGFnZXMgd2l0aCBwbHVnaW5zIGluIHRoZW0uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
eC5oIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3gu
aAppbmRleCA0ZjkxNWM3NzE2NGZlMjFkYzZlNGNkOTYyZWJjM2QzMWIzNzYwMDg4Li5iM2Y1MjA5
YmM1OGM5Njg2MDgxMDViMzgxMzExN2M3MTUzMmVhYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgKQEAgLTIyOSw3ICsy
MjksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0aW9uKGJvb2wgbGlzdGVuID0gdHJ1ZSk7CiAgICAg
ICAgIAotICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3Qg
U3RyaW5nICZtaW1lVHlwZSkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBbHdh
eXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcgJm1pbWVUeXBlKSBjb25zdDsKICAgICAg
ICAgCiAgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBj
cmVhdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCmluZGV4IDM4ZjMxZjJmYzQwOTk1ZTM0Y2RjMTdkODkwMDMyMzYxYWVmYjZjZDkuLjcyYzZi
ZTQ1OWUyZDYwZDZlMTNmODk0YmRmYmRmYWMyMmJkOGE4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCkBAIC0xNTMzLDcgKzE1MzMsNyBAQCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIq
LCB1bgogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5cGUqLykg
Y29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRv
Y3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdAogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
CmluZGV4IDIzZGI3MDZiMzcxOTcyODY0NDMxZTcwMTMwMmUyZjhhOTRjMjRiNTEuLjg0NzMxMzEz
NGY2MjRkYmMzNzc4NDMzZDcxYzgzMTFiYmU1M2EwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTlNDYWNo
ZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqKSBjb25zdCBP
VkVSUklERTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdpbkRvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiAvKm1p
bWVUeXBlKi8pIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNj
cm9sbE9mZnNldCgpIE9WRVJSSURFOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194968</attachid>
            <date>2013-03-25 18:15:35 -0700</date>
            <delta_ts>2013-05-06 16:47:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110308-20130325211118.patch</filename>
            <type>text/plain</type>
            <size>18948</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2ODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdmMDQ5NzRkOTNiOWQz
YzExZGU0ZjNhYTVhZjY3ZmMxNjY4ZDI4Yi4uNWEwZjNlYTQyZDIwZWRhMzk3MTNmZGRhZGM3OTVh
Yjc5ZjZhMGQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAzLTEyICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
KSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCgpIHdlIHNob3VsZCBjcmVhdGUKKyAgICAgICAgYSBQbHVn
aW5Eb2N1bWVudCBmb3IgbWltZSB0eXBlcyB0aGF0IHJldHVybiAidHJ1ZSIgZm9yCisgICAgICAg
IHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KCksIGV2ZW4gaWYgdGhlcmUgaXMgbm8gcGx1
Z2luRGF0YQorICAgICAgICBmb3IgdGhlbS4gVGhpcyBsZXRzIGEgY2xpZW50IGNob29zZSBwbHVn
aW5zIGZvciB3aGljaCB0aGUgIm1pc3NpbmcKKyAgICAgICAgcGx1Z2luIiB0ZXh0IG9yIGljb24g
c2hvdWxkIGFwcGVhciBtb3JlIGNvbnNpc3RlbnRseS4gT3RoZXJ3aXNlCisgICAgICAgIHBsdWdp
bnMgcmVmZXJlbmNlZCBieSBpRnJhbWVzIHdpbGwgYmUgdHJlYXRlZCBhcyBhbiBIVE1MRG9jdW1l
bnQsCisgICAgICAgIHBvc3NpYmx5IHJlc3VsdGluZyBpbiBiaW5hcnkgZmlsZXMgcmVuZGVyZWQg
YXMgZ2liYmVyaXNoIHRleHQuCisKKyAgICAgICAgTGF5b3V0IHRlc3QgcGxhdGZvcm0vYmxhY2ti
ZXJyeS9wbHVnaW5zL3N3Zi1hcy1zcmMtb2YtaWZyYW1lLmh0bWwKKworICAgICAgICAqIGRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlRG9jdW1lbnQpOgorCiAyMDEzLTAzLTI1ICBSb2dlciBGb25nICA8cm9nZXJfZm9u
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gV3JvbmcgcGxhY2UgdG8gZW5hYmxl
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZSBmb3IgV2luZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hh
bmdlTG9nCmluZGV4IGM3MmE2MmI3N2ExODFkZmUwYzU2OWM4NjNiNDA0NjBjN2IwMzc0ZDIuLjZl
MjM1ZTkzYmJlMTk1NjAxMzNhMGFjODk3MDZkYTliODMxMDNlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAyLTE5ICBNYXggRmVpbCAgPG1m
ZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoKSBuZWVkcyB0
byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBz
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCgpIGluIHRoZQorICAgICAgICBCbGFja0JlcnJ5
IGZyYW1lIGxvYWRlciBjbGllbnQuIEl0IGlzIGNhbGxlZCBpbiBzZXZlcmFsIHBsYWNlcworICAg
ICAgICB3aXRoaW4gV2ViQ29yZSB0byBkZXRlcm1pbmUgd2hldGhlciBhIFBsdWdpbkRvY3VtZW50
IHNob3VsZAorICAgICAgICBiZSBjcmVhdGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmNyZWF0ZVBsdWdpbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRCbGFja0JlcnJ5Lmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEJsYWNr
QmVycnkpOgorCiAyMDEzLTAzLTIyICBOaW1hIEdoYW5hdmF0aWFuICA8bmdoYW5hdmF0aWFuQGJs
YWNrYmVycnkuY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBCdWlsZCBmaXggaW4gSW5wdXRI
YW5kbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggODEzMTFjMjU4ZjAyMTE2MGUxNTY2NjYzODAzMGFl
YjQ3NzQ0NzBmYS4uNGQ4NjRkYWU1OTkzZjEwNTFmMWZiMjM0ZjEwYzIwMDFjOTlkM2Q5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTEyICBNYXggRmVpbCAgPG1m
ZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoKSBuZWVkcyB0
byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtaW5nIHNob3VsZFVzZVBsdWdp
bkRvY3VtZW50KCkgdG8gc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoKQorICAgICAgICBm
b3IgY2xhcml0eS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRBbHdheXNVc2VQ
bHVnaW5Eb2N1bWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50KToKKwogMjAxMy0wMy0yMiAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaGUgc2Vjb25kIHBh
cnQgb2YgdGhlIGJ1aWxkIGZpeCBmb3IgcjE0NjcwMi4gVGhpcyBzaG91bGQgZG8gaXQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hh
bmdlTG9nCmluZGV4IDk2ZDBjYmE2YmE2OTNkOTRlZDZhYmE0ZGUxZTdhZTcxNTBmNDJjMDcuLmU2
MmNjYzhjZDZlMGUzYjc2MTk4ZDgyYTBkZmY4NjEwODY2ZTcwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTMtMDMtMTIgIE1heCBGZWlsICA8bWZlaWxAcmltLmNvbT4KKwor
ICAgICAgICBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudCgpIG5lZWRzIHRvIGJlIHJlc3BlY3RlZCB3
aGVuIGEgZG9jdW1lbnQgaXMgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVuYW1pbmcgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoKSB0byBz
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCgpCisgICAgICAgIGZvciBjbGFyaXR5LgorCisg
ICAgICAgICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3Vt
ZW50KToKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaDoKKyAg
ICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50V3gpOgorCiAyMDEzLTAzLTE1ICBOYXRlIENoYXBpbiAg
PGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSGlkZSBNYWluUmVzb3VyY2VMb2FkZXIg
ZnJvbSB0aGUgb3V0c2lkZSB3b3JsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGFjYjM5YzUwYjIyYjliN2VlMzE1
YmU3NDc1ZWYyYzNhOGVlY2Q4YjMuLjEyYTIwYmI0MWE1NjNkM2I2MzRhNjAzMzI1MjIxZDZlNTBk
NDUyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wMy0xMiAgTWF4IEZlaWwg
IDxtZmVpbEByaW0uY29tPgorCisgICAgICAgIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KCkgbmVl
ZHMgdG8gYmUgcmVzcGVjdGVkIHdoZW4gYSBkb2N1bWVudCBpcyBjcmVhdGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAzMDgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWluZyBzaG91bGRVc2VQ
bHVnaW5Eb2N1bWVudCgpIHRvIHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KCkKKyAgICAg
ICAgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJG
cmFtZUxvYWRlckNsaWVudCk6CisKIDIwMTMtMDMtMjUgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIENsZWFudXAgcGx1Z2luIHNuYXBzaG90dGluZyBhdXRvc3RhcnQg
ZGVjaXNpb24gbWFraW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVt
ZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApp
bmRleCA1Mzc5OGYxY2U4Nzk5YzA3ZWY0NWRkYzM5NGE5YzA5YmRlMmEzNGZiLi45N2NkYTFjODA4
ZDc5NWMwZDg0ZDEwNzMxMzM2MmRhM2RhZDM5ODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKQEAgLTQxOCw3ICs0MTgsNyBAQCBQYXNzUmVmUHRyPERvY3VtZW50
PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0eXBlLCBG
cmFtZQogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBleGNlcHQgdGV4dC9wbGFpbiBjYW4gYmUgb3Zl
cnJpZGRlbiBieSBwbHVnaW5zLiBJbiBwYXJ0aWN1bGFyLCBBZG9iZSBTVkcgVmlld2VyIHNob3Vs
ZCBiZSB1c2VkIGZvciBTVkcsIGlmIGluc3RhbGxlZC4KICAgICAvLyBEaXNhbGxvd2luZyBwbHVn
LWlucyB0byB1c2UgdGV4dC9wbGFpbiBwcmV2ZW50cyBwbHVnLWlucyBmcm9tIGhpamFja2luZyBh
IGZ1bmRhbWVudGFsIHR5cGUgdGhhdCB0aGUgYnJvd3NlciBpcyBleHBlY3RlZCB0byBoYW5kbGUs
CiAgICAgLy8gYW5kIGFsc28gc2VydmVzIGFzIGFuIG9wdGltaXphdGlvbiB0byBwcmV2ZW50IGxv
YWRpbmcgdGhlIHBsdWctaW4gZGF0YWJhc2UgaW4gdGhlIGNvbW1vbiBjYXNlLgotICAgIGlmICh0
eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiBwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRz
TWltZVR5cGUodHlwZSkpIAorICAgIGlmICh0eXBlICE9ICJ0ZXh0L3BsYWluIiAmJiAoKHBsdWdp
bkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkgfHwgKGZyYW1lICYm
IGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50
KHR5cGUpKSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1
cmwpOwogICAgIGlmIChpc1RleHRNSU1FVHlwZSh0eXBlKSkKICAgICAgICAgcmV0dXJuIFRleHRE
b2N1bWVudDo6Y3JlYXRlKGZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dFdyaXRlci5jcHAKaW5kZXggMDNiNTc0OWY4Y2Y2NGY0MDdjZDQwZDQ4M2RiM2I1YWZmYTM1MmVh
MC4uMjI4MGQzY2Q2OWVjMzhjODNlODY2ZTg2Y2I5OGZlNDZhYmM2NmQ1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBE
b2N1bWVudFdyaXRlcjo6YmVnaW4oKQogCiBQYXNzUmVmUHRyPERvY3VtZW50PiBEb2N1bWVudFdy
aXRlcjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgS1VSTCYgdXJsKQogewotICAgIGlmICghbV9mcmFt
ZS0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlEb2N1
bWVudCgpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxkVXNlUGx1Z2luRG9j
dW1lbnQobV9taW1lVHlwZSkpCisgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+c3RhdGVNYWNo
aW5lKCktPmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkgJiYgbV9mcmFtZS0+bG9h
ZGVyKCktPmNsaWVudCgpLT5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtX21pbWVUeXBl
KSkKICAgICAgICAgcmV0dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVhdGUobV9mcmFtZSwgdXJsKTsK
ICAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+aGFzSFRNTFZpZXcoKSkKICAg
ICAgICAgcmV0dXJuIFBsYWNlaG9sZGVyRG9jdW1lbnQ6OmNyZWF0ZShtX2ZyYW1lLCB1cmwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBlNWJjOGMxOGY1
MWNhZjFhNzEzZDJkY2Y3MmY5ZmNkN2IwYWNjNjJlLi4zZTBkNjMwYjM5NzlkZmU1ZmRhM2M0MmY4
NzU0NzFlNTg3MzAzMDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaApAQCAtMzEzLDcgKzMxMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmly
dHVhbCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCB1bnNpZ25lZCBj
aGFyKiBkYXRhLCB1bnNpZ25lZCBsb25nIGxvbmcgbGVuZ3RoKSA9IDA7CiAjZW5kaWYKIAotICAg
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nJiAv
Km1pbWVUeXBlKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5cGUq
LykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZExv
YWRNZWRpYUVsZW1lbnRVUkwoY29uc3QgS1VSTCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Nyb2xsT2Zmc2V0KCkgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCA3YTU1MDg4Y2JlMDIyNjE4M2I3
MjI5MjhkZGUyZTZjZWZkMzNhYTNhLi4zMjEwZDE2NWNhZWNlOWFlMjY5ZTBmNTQ5MjdlYTk2MWFj
ZjNkYmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTQx
Myw3ICs0MTMsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjphbGxvd1BsdWdpbnMoUmVhc29uRm9y
Q2FsbGluZ0FsbG93UGx1Z2lucyByZWFzb24pCiAKIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnNob3Vs
ZFVzZVBsdWdpbihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wg
c2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcywgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNl
RmFsbGJhY2spCiB7Ci0gICAgaWYgKG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxk
VXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpKSB7CisgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigp
LT5jbGllbnQoKS0+c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpKSB7CiAg
ICAgICAgIHVzZUZhbGxiYWNrID0gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggYjFkNjUy
YTM2NmYwMmMyYzhjNmQxMTUxMTM5N2Y4ZWUxMzBmNTY4NS4uOTc0MDEzYWUwYTc4NzY1NmY4YzY1
Njk5N2ViMmEwZjhmMmRkNjA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKQEAgLTMxMCw2ICszMTAsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmNvbW1pdHRlZExvYWQoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgY29uc3QgY2gK
ICAgICB9CiB9CiAKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpzaG91bGRBbHdh
eXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAoreworICAg
IHJldHVybiBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giOworfQor
CiBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQ
bHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICBIVE1MUGx1Z0luRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1l
cywKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGNvbnN0IFN0cmluZyYg
bWltZVR5cGVJbiwgYm9vbCBsb2FkTWFudWFsbHkpCkBAIC0zMTgsNyArMzIzLDcgQEAgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlUGx1Z2luKGNv
bnN0IEludFNpemUmIHBsdWcKICAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKSB7CiAgICAgICAg
IG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKHVybC5wYXRo
KCkpOwogICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6OmdldE5vcm1hbGl6ZWRN
SU1FVHlwZShtaW1lVHlwZSk7Ci0gICAgICAgIGlmIChtaW1lVHlwZSAhPSAiYXBwbGljYXRpb24v
eC1zaG9ja3dhdmUtZmxhc2giKQorICAgICAgICBpZiAoIXNob3VsZEFsd2F5c1VzZVBsdWdpbkRv
Y3VtZW50KG1pbWVUeXBlKSkKICAgICAgICAgICAgIG1pbWVUeXBlID0gbWltZVR5cGVJbjsKICAg
ICB9CiAKQEAgLTMzMiw3ICszMzcsNyBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJD
bGllbnRCbGFja0JlcnJ5OjpjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1ZwogICAgIC8v
IHdpbGwgZ2VuZXJhbGx5IGJlIGEgdmFsaWQgbWVkaWEgbWltZSB0eXBlLCBvciBpdCBtYXkgYmUg
bnVsbC4gV2UKICAgICAvLyBleHBsaWNpdGx5IGNoZWNrIGZvciBGbGFzaCBjb250ZW50IHNvIGl0
IGRvZXMgbm90IGdldCByZW5kZXJlZCBhcwogICAgIC8vIHRleHQgYXQgdGhpcyBwb2ludCwgcHJv
ZHVjaW5nIGdhcmJsZWQgY2hhcmFjdGVycy4KLSAgICBpZiAobWltZVR5cGUgIT0gImFwcGxpY2F0
aW9uL3gtc2hvY2t3YXZlLWZsYXNoIiAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1lLT5s
b2FkZXIoKS0+c3ViZnJhbWVMb2FkZXIoKSAmJiAhdXJsLmlzTnVsbCgpKQorICAgIGlmICghc2hv
dWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQobWltZVR5cGUpICYmIG1fZnJhbWUtPmxvYWRlcigp
ICYmIG1fZnJhbWUtPmxvYWRlcigpLT5zdWJmcmFtZUxvYWRlcigpICYmICF1cmwuaXNOdWxsKCkp
CiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zdWJmcmFtZUxvYWRlcigpLT5yZXF1ZXN0RnJh
bWUoZWxlbWVudCwgdXJsLCBTdHJpbmcoKSk7CiAKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnkuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuaAppbmRleCAwYWU3ZGQ1Y2U5NzRhNjBlYzI0OTI5
ZjAzMjgyZjZjN2QxNzQ2Y2MxLi45YjVjMjBmNWEyOGE4YTZhOWNmODQzYThjNjg4Y2VhOGI4OGFh
MDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCkBAIC0xNDQs
NiArMTQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEJlY29tZUZy
YW1lc2V0KGJvb2wpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb252ZXJ0TWFpblJlc291cmNlTG9h
ZFRvRG93bmxvYWQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEZyYW1lPiBjcmVh
dGVGcmFtZShjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwgSFRNTEZyYW1lT3duZXJFbGVtZW50
KiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgaW50LCBpbnQpOworICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgSW50U2l6ZSYsIEhUTUxQ
bHVnSW5FbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVkaXJlY3REYXRhVG9QbHVnaW4oV2lkZ2V0Kik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdp
ZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVs
ZW1lbnQqLCBjb25zdCBLVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAxMzMyZTRlNWE3MDg5YmFhYzlmYzg3NTZjZTJmMTBmNmVhM2EwYWRkLi45NzE3OTlj
YTk2MTc0NTVlNTBkMmNlOTM5YzAyMzFlNmFiODQ2MTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC04OTYsNyArODk2LDcgQEAgV2ViSGlzdG9yeSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndlYkhp
c3RvcnkoKSBjb25zdAogICAgIHJldHVybiBXZWJIaXN0b3J5OjpzaGFyZWRIaXN0b3J5KCk7CiB9
CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNv
bnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpz
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25z
dAogewogICAgIFdlYlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAg
aWYgKCF3ZWJWaWV3KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggY2EwMmY4Nzk5YWVlMmRiZjBlZjIxOWQ0
MTEyMGM3ZTEyYzRiZTU3Zi4uMzMyZTg4OTFmZjMyYzFjNzU1NGUwYTc4ZWJiYTAwZDllNjZhNGNl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQp
OwogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdURjo6
U3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFsd2F5c1Vz
ZVBsdWdpbkRvY3VtZW50KGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsVG9TdGFydFBsdWdpbihjb25zdCBXZWJDb3Jl
OjpQbHVnaW5WaWV3KikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAppbmRleCA2MWZkNzViOTQyMzY0ZDE5
OGU0OTY3NzE0YWI5NmJiMmM3MjAzOGU2Li5jNTJlY2YzYmFmMGViZGY4OGNkYTk0YmM2ODBkZjAz
YjExZDcyN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCkBAIC05OTEsNyArOTkxLDcgQEAgdm9pZCBGcmFtZUxv
YWRlckNsaWVudFd4OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiB7CiB9CiAKLWJv
b2wgRnJhbWVMb2FkZXJDbGllbnRXeDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3Ry
aW5nICZtaW1lVHlwZSkgY29uc3QKK2Jvb2wgRnJhbWVMb2FkZXJDbGllbnRXeDo6c2hvdWxkQWx3
YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nICZtaW1lVHlwZSkgY29uc3QKIHsKICAg
ICAvLyBOT1RFOiBQbHVnaW4gRG9jdW1lbnRzIGFyZSB1c2VkIGZvciB2aWV3aW5nIFBERnMsIGV0
Yy4gaW5saW5lLCBhbmQgc2hvdWxkCiAgICAgLy8gbm90IGJlIHVzZWQgZm9yIHBhZ2VzIHdpdGgg
cGx1Z2lucyBpbiB0aGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guaCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFd4LmgKaW5kZXggYzlmZDdhZTNlMTk4ODhjNzdkYzFlNDU3ZTg5
MTZjNjUxYzc1MmUyOC4uMGI2ZTYxZmY0YWJhN2UyOTBkY2EzZjIxM2U4NTllZGU4ZmIzMmZlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50V3guaAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRXeC5oCkBAIC0yMjksNyArMjI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29s
IGxpc3RlbiA9IHRydWUpOwogICAgICAgICAKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVz
ZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyAmbWltZVR5cGUpIGNvbnN0OworICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5nICZt
aW1lVHlwZSkgY29uc3Q7CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RnJh
bWVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlTmV0d29ya2luZ0NvbnRleHQoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxOTc3MzQ0YzIxMWY5NjNlZGViNzM1ZTkw
ODhmOTRlMzhhZTNmZjk5Li4yMGI3N2U1Mjg5ZjFmZjEyNzVkODg1YmU3OTJlM2I2MTgwODg5NzVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTUzMyw3ICsxNTMzLDcg
QEAgTlNDYWNoZWRVUkxSZXNwb25zZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDYWNoZVJl
c3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW4KIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKIAot
Ym9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0Citib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpz
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5cGUqLykg
Y29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA0ZjczMjY2Y2RiZjI4ZDYzNjJiYjNjOTM0NGYw
NmE5MjlkYzA2OGZjLi5jMDY3ODI1Zjk4NTlmMjBlN2U3Y2U2MDMyN2M4Njc0OGI1YTQ1NjY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yMTQsNyArMjE0LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hl
ZFVSTFJlc3BvbnNlKikgY29uc3QgT1ZFUlJJREU7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIC8qbWltZVR5cGUqLykgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRDaGFuZ2VTY3JvbGxPZmZzZXQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9wbHVnaW5zL3N3Zi1hcy1zcmMtb2Yt
aWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvcGx1
Z2lucy9zd2YtYXMtc3JjLW9mLWlmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNjZGYx
ZTkzOTMyY2ExNzQyNWEzNGVjMWE2MTVhODNkZjM4YmFkOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvcGx1Z2lucy9zd2YtYXMtc3JjLW9mLWlmcmFt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L3BsdWdpbnMvc3dmLWFzLXNyYy1vZi1pZnJhbWUuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvcGx1Z2lucy9zd2YtYXMtc3JjLW9m
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYmQ5OGJiZTEwNzM5ZGFhYjIxMjBhNWQ1MTgwNGI5
MWYyY2M5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ibGFja2Jl
cnJ5L3BsdWdpbnMvc3dmLWFzLXNyYy1vZi1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPlRlc3QgdGhhdCBpZnJhbWUgd2l0aCBzcmMgc2V0IHRvIHN3
ZiB1c2VzIHBsdWdpbiBkb2N1bWVudDwvdGl0bGU+Cis8IS0tLSBUaGlzIHdpbGwgZW5zdXJlIHRo
YXQgdGhlICJtaXNzaW5nIHBsdWdpbiB0ZXh0IiBpcyBzaG93biB3aGVuIHRoZSBGbGFzaFBsYXll
ciBwbHVnaW4gaXMgZGlzYWJsZWQuIC0tPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKSB7
CisgIGZyYW1lZG9jdW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZnJhbWUnKS5jb250
ZW50V2luZG93LmRvY3VtZW50OworICBpbm5lcmh0bWwgPSBmcmFtZWRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdib2R5JylbMF0uaW5uZXJIVE1MOworICBpZiAoaW5uZXJodG1sWzBdID09
PSAnQycpIHsKKyAgICAvLyBUaGlzIGlzIHRoZSAnQycgZnJvbSB0aGUgQWN0aW9uU2NyaXB0IFNX
Qy4gVGhlIGNvbnRlbnRzIGFyZSBiZWluZworICAgIC8vIHJlbmRlcmVkIGFzIHRleHQuIEZhaWwg
dGhlIHRlc3QuCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS50ZXh0Q29u
dGVudCA9ICJGQUlMRUQgZHVlIHRvIHBsdWdpbiByZW5kZXJlZCBhcyBnaWJiZXJpc2ggdGV4dCAo
UFIyOTMwOTgpLiI7CisgIH0gZWxzZSB7CisgICAgdmFyIGZsYXNocGxheWVyTG9hZGVkID0gZmFs
c2U7CisgICAgZm9yIChpID0gMDsgaSA8IG5hdmlnYXRvci5wbHVnaW5zLmxlbmd0aDsgKytpKSB7
CisgICAgICBmb3IgKGogPSAwOyBqIDwgbmF2aWdhdG9yLnBsdWdpbnNbaV0ubGVuZ3RoOyArK2op
IHsKKyAgICAgICAgaWYgKG5hdmlnYXRvci5wbHVnaW5zW2ldW2pdLnR5cGUgPT0gImFwcGxpY2F0
aW9uL3gtc2hvY2t3YXZlLWZsYXNoIikgeworICAgICAgICAgIGZsYXNocGxheWVyTG9hZGVkID0g
dHJ1ZTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKyAgICBpZiAoZmxhc2hwbGF5ZXJMb2Fk
ZWQpIHsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykudGV4dENvbnRl
bnQgPSAiRkFJTEVEIGR1ZSB0byBGbGFzaFBsYXllciBwbHVnaW4gZW5hYmxlZC4gUGxlYXNlIGRp
c2FibGUgaXQuIjsKKyAgICB9IGVsc2UgaWYgKGZyYW1lZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ2VtYmVkJylbMF0peworICAgICAgLy8gVGhlcmUgaXMgYW4gZW1iZWQgZWxlbWVudCBp
bnN0ZWFkIG9mIGdpYmJlcmlzaCB0ZXh0LiBUaGlzIGlzIHdoYXQgd2UKKyAgICAgIC8vIHdhbnQg
YW5kIGluZGljYXRlcyB0aGF0IGEgcGx1Z2luIGRvY3VtZW50IHdhcyBjcmVhdGVkIGluc3RlYWQg
b2YgYW4KKyAgICAgIC8vIEhUTUwgZG9jdW1lbnQuCisgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLnRleHRDb250ZW50ID0gIlBBU1NFRCI7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykudGV4dENvbnRlbnQgPSAiRkFJ
TEVEIGZvciBhbiB1bmtub3duIHJlc29uLiI7CisgICAgfQorICB9CisKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKTsiPgorCis8aWZyYW1lIGlkPSJmcmFt
ZSIgc3JjPSIuLi8uLi8uLi9wbHVnaW5zL3Jlc291cmNlcy9zaW1wbGVfYmxhbmsuc3dmIiB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCI+Cis8L2lmcmFtZT4KKworPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8L2JvZHk+CisKKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200853</attachid>
            <date>2013-05-06 16:47:33 -0700</date>
            <delta_ts>2013-05-09 11:48:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110308-20130506194639.patch</filename>
            <type>text/plain</type>
            <size>16667</size>
            <attacher name="Max Feil">mfeil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5NjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAxMTgxZTE2OWIzZjJk
MGNkMDc4OTNjMjUzNGMzNjQ5NGVkZjY4Yi4uMmQzMDlkNmJlZGRmNGE3MmNjYzM4ZmVjYTIyMzBm
OGY3ZjM4ZTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAzLTEyICBNYXgg
RmVpbCAgPG1mZWlsQHJpbS5jb20+CisKKyAgICAgICAgc2hvdWxkVXNlUGx1Z2luRG9jdW1lbnQo
KSBuZWVkcyB0byBiZSByZXNwZWN0ZWQgd2hlbiBhIGRvY3VtZW50IGlzIGNyZWF0ZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDMwOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIERPTUltcGxlbWVu
dGF0aW9uOjpjcmVhdGVEb2N1bWVudCgpIHdlIHNob3VsZCBjcmVhdGUKKyAgICAgICAgYSBQbHVn
aW5Eb2N1bWVudCBmb3IgbWltZSB0eXBlcyB0aGF0IHJldHVybiAidHJ1ZSIgZm9yCisgICAgICAg
IHNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KCksIGV2ZW4gaWYgdGhlcmUgaXMgbm8gcGx1
Z2luRGF0YQorICAgICAgICBmb3IgdGhlbS4gVGhpcyBsZXRzIGEgY2xpZW50IGNob29zZSBwbHVn
aW5zIGZvciB3aGljaCB0aGUgIm1pc3NpbmcKKyAgICAgICAgcGx1Z2luIiB0ZXh0IG9yIGljb24g
c2hvdWxkIGFwcGVhciBtb3JlIGNvbnNpc3RlbnRseS4gT3RoZXJ3aXNlCisgICAgICAgIHBsdWdp
bnMgcmVmZXJlbmNlZCBieSBpRnJhbWVzIHdpbGwgYmUgdHJlYXRlZCBhcyBhbiBIVE1MRG9jdW1l
bnQsCisgICAgICAgIHBvc3NpYmx5IHJlc3VsdGluZyBpbiBiaW5hcnkgZmlsZXMgcmVuZGVyZWQg
YXMgZ2liYmVyaXNoIHRleHQuCisKKyAgICAgICAgTGF5b3V0IHRlc3QgcGxhdGZvcm0vYmxhY2ti
ZXJyeS9wbHVnaW5zL3N3Zi1hcy1zcmMtb2YtaWZyYW1lLmh0bWwKKworICAgICAgICAqIGRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6Y3JlYXRlRG9jdW1lbnQpOgorCiAyMDEzLTA1LTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFz
ICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCB3ZWJraXRfdXJpX3NjaGVt
ZV9yZXF1ZXN0X2ZpbmlzaF9lcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXgg
YTZmMjNiYjBiMjgwOWU3NDVlMDkwODA2ZjBkZWY5N2Y2MTBmZmM1ZC4uOGNkNGM5NDU2MGY4NzAy
NTI0MDVkMzhlMjlhYzczMjNlNGNlNjRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDItMTkgIE1heCBGZWlsICA8bWZlaWxAcmltLmNvbT4K
KworICAgICAgICBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudCgpIG5lZWRzIHRvIGJlIHJlc3BlY3Rl
ZCB3aGVuIGEgZG9jdW1lbnQgaXMgY3JlYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIHNob3VsZEFsd2F5c1Vz
ZVBsdWdpbkRvY3VtZW50KCkgaW4gdGhlCisgICAgICAgIEJsYWNrQmVycnkgZnJhbWUgbG9hZGVy
IGNsaWVudC4gSXQgaXMgY2FsbGVkIGluIHNldmVyYWwgcGxhY2VzCisgICAgICAgIHdpdGhpbiBX
ZWJDb3JlIHRvIGRldGVybWluZSB3aGV0aGVyIGEgUGx1Z2luRG9jdW1lbnQgc2hvdWxkCisgICAg
ICAgIGJlIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRC
bGFja0JlcnJ5OjpzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3Jl
YXRlUGx1Z2luKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnkuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeSk6CisKIDIw
MTMtMDUtMDYgIE1pa2UgTGF0dGFuemlvICA8bWxhdHRhbnppb0BibGFja2JlcnJ5LmNvbT4KIAog
ICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxlIGFuZCBFeHBvc2UgVGV4dCBBdXRvc2l6aW5nIHRo
cm91Z2ggQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTZXR0aW5ncwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4
IDgxNTA4ZGU3YWRkNmMxMWVmMDk4M2UxNmFkMzI3ZDc1YWJjYWNiOTEuLmIzMjQ5NzNmNDg1Nzkw
OTcwMjc5ODEzOTQwYjA2ZDQ2NjUwMDQ2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMy0wMy0xMiAgTWF4IEZlaWwgIDxtZmVpbEByaW0uY29tPgorCisgICAgICAgIHNo
b3VsZFVzZVBsdWdpbkRvY3VtZW50KCkgbmVlZHMgdG8gYmUgcmVzcGVjdGVkIHdoZW4gYSBkb2N1
bWVudCBpcyBjcmVhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTAzMDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWluZyBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudCgpIHRvIHNob3VsZEFsd2F5
c1VzZVBsdWdpbkRvY3VtZW50KCkKKyAgICAgICAgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudCk6CisKIDIwMTMtMDUtMDQgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFuaW1hdGlvbnMgYW5kIFRyYW5zaXRpb25zIHNob3VsZCBub3Qgc3Rh
cnQgd2hlbiBnbG9iYWxseSBzdXNwZW5kZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzZDllNmZmZDE3MDQzYmU4
ZTI4NGMyMjE4YmIwMDRmMjkyOGQ0YzVjLi5hODlhZGRjYjA4OTJjOWY2OGU3MjAzZGNkZjY3MmIw
ODU2YzU4NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTMtMDMtMTIgIE1heCBG
ZWlsICA8bWZlaWxAcmltLmNvbT4KKworICAgICAgICBzaG91bGRVc2VQbHVnaW5Eb2N1bWVudCgp
IG5lZWRzIHRvIGJlIHJlc3BlY3RlZCB3aGVuIGEgZG9jdW1lbnQgaXMgY3JlYXRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMzA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1pbmcgc2hvdWxk
VXNlUGx1Z2luRG9jdW1lbnQoKSB0byBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCgpCisg
ICAgICAgIGZvciBjbGFyaXR5LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAo
V2ViRnJhbWVMb2FkZXJDbGllbnQpOgorCiAyMDEzLTA1LTA2ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBsb2NhbCBzdG9yYWdlIGRpcmVjdG9y
eSBoYW5kbGluZyB0byBMb2NhbFN0b3JhZ2VEYXRhYmFzZVRyYWNrZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDk3MGMzYjU0ZGIyODNhNDlhYzA3ZDg0MTBj
OWI3MWIxMzIzZGNmNjUuLmI2MGIyYWZmODFiNjliMjA4MWI2MDdlZTBlOTJjZTVmM2QxODVjYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDE4LDcgKzQx
OCw3IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1
bWVudChjb25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lCiAgICAgLy8gRXZlcnl0aGluZyBlbHNlIGV4
Y2VwdCB0ZXh0L3BsYWluIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHBsdWdpbnMuIEluIHBhcnRpY3Vs
YXIsIEFkb2JlIFNWRyBWaWV3ZXIgc2hvdWxkIGJlIHVzZWQgZm9yIFNWRywgaWYgaW5zdGFsbGVk
LgogICAgIC8vIERpc2FsbG93aW5nIHBsdWctaW5zIHRvIHVzZSB0ZXh0L3BsYWluIHByZXZlbnRz
IHBsdWctaW5zIGZyb20gaGlqYWNraW5nIGEgZnVuZGFtZW50YWwgdHlwZSB0aGF0IHRoZSBicm93
c2VyIGlzIGV4cGVjdGVkIHRvIGhhbmRsZSwKICAgICAvLyBhbmQgYWxzbyBzZXJ2ZXMgYXMgYW4g
b3B0aW1pemF0aW9uIHRvIHByZXZlbnQgbG9hZGluZyB0aGUgcGx1Zy1pbiBkYXRhYmFzZSBpbiB0
aGUgY29tbW9uIGNhc2UuCi0gICAgaWYgKHR5cGUgIT0gInRleHQvcGxhaW4iICYmIHBsdWdpbkRh
dGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNNaW1lVHlwZSh0eXBlKSkKKyAgICBpZiAodHlwZSAh
PSAidGV4dC9wbGFpbiIgJiYgKChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzTWlt
ZVR5cGUodHlwZSkpIHx8IChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zaG91
bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudCh0eXBlKSkpKQogICAgICAgICByZXR1cm4gUGx1Z2lu
RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKICAgICBpZiAoaXNUZXh0TUlNRVR5cGUodHlw
ZSkpCiAgICAgICAgIHJldHVybiBUZXh0RG9jdW1lbnQ6OmNyZWF0ZShmcmFtZSwgdXJsKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmluZGV4IGZkOTQ4MjE2MDI0NWZk
ODhkM2U2MDFhYmViY2M2ODhlNWQ4ZDJmYjIuLjc0OWNhYTQ5NzkxOWU5MmUwYzBkNDM2YjY1YmMz
MDhkY2JkZWNiNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdy
aXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIHZvaWQgRG9jdW1lbnRXcml0ZXI6OmJlZ2luKCkKIAogUGFzc1Jl
ZlB0cjxEb2N1bWVudD4gRG9jdW1lbnRXcml0ZXI6OmNyZWF0ZURvY3VtZW50KGNvbnN0IEtVUkwm
IHVybCkKIHsKLSAgICBpZiAoIW1fZnJhbWUtPmxvYWRlcigpLT5zdGF0ZU1hY2hpbmUoKS0+aXNE
aXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCktPnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KG1fbWltZVR5cGUpKQorICAgIGlmICghbV9m
cmFtZS0+bG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLT5pc0Rpc3BsYXlpbmdJbml0aWFsRW1wdHlE
b2N1bWVudCgpICYmIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+c2hvdWxkQWx3YXlzVXNl
UGx1Z2luRG9jdW1lbnQobV9taW1lVHlwZSkpCiAgICAgICAgIHJldHVybiBQbHVnaW5Eb2N1bWVu
dDo6Y3JlYXRlKG1fZnJhbWUsIHVybCk7CiAgICAgaWYgKCFtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xp
ZW50KCktPmhhc0hUTUxWaWV3KCkpCiAgICAgICAgIHJldHVybiBQbGFjZWhvbGRlckRvY3VtZW50
OjpjcmVhdGUobV9mcmFtZSwgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
Q2xpZW50LmgKaW5kZXggYmM5NDU4ZTEwMWU4MWE5MTJiNjQ2ZDc5NWYwMWNhMTQ0NzQyMzc5Ny4u
MGIwNDkzNjE5OTY1ODE1MzVkMjcxMjY5ZDNhYWQwM2IxNTEzYTUxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI5Myw3ICsyOTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKERv
Y3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciogZGF0YSwgdW5zaWduZWQgbG9uZyBsb25nIGxl
bmd0aCkgPSAwOwogI2VuZGlmCiAKLSAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVBsdWdp
bkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQo
Y29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRMb2FkTWVkaWFFbGVtZW50VVJMKGNvbnN0IEtVUkwmKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNj
cm9sbE9mZnNldCgpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
aW5kZXggYWMxNjFjM2NlMzE1YzQzYzViZjVmODFlZjI3OWI1MTYzNzFhNmM5My4uMWFlYWE5NTM5
NjlhNmZhOTRiNDE2ZTVmMWRlYTJlODFmZjhkOGQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCkBAIC00MTQsNyArNDE0LDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRl
cjo6YWxsb3dQbHVnaW5zKFJlYXNvbkZvckNhbGxpbmdBbGxvd1BsdWdpbnMgcmVhc29uKQogCiBi
b29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVnaW4oY29uc3QgS1VSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMsIGJv
b2wgaGFzRmFsbGJhY2ssIGJvb2wmIHVzZUZhbGxiYWNrKQogewotICAgIGlmIChtX2ZyYW1lLT5s
b2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZFVzZVBsdWdpbkRvY3VtZW50KG1pbWVUeXBlKSkgewor
ICAgIGlmIChtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNob3VsZEFsd2F5c1VzZVBsdWdp
bkRvY3VtZW50KG1pbWVUeXBlKSkgewogICAgICAgICB1c2VGYWxsYmFjayA9IGZhbHNlOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnkuY3BwCmluZGV4IGQ3MWJlMzk2ZGU2YThjZWU3NjhiNTBiODY4NDdjOTY4MjViMWI1
NTguLjM5NWU0OTk2YTE2NjFiYzM3NDMwOTU4NzA4YTY3Mzk2ODk3YTY5YTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMDgsNiArMzA4LDExIEBA
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5Ojpjb21taXR0ZWRMb2FkKERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGNoCiAgICAgfQogfQogCitib29sIEZyYW1lTG9hZGVyQ2xp
ZW50QmxhY2tCZXJyeTo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSkgY29uc3QKK3sKKyAgICByZXR1cm4gbWltZVR5cGUgPT0gImFwcGxpY2F0aW9u
L3gtc2hvY2t3YXZlLWZsYXNoIjsKK30KKwogUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVy
Q2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUs
CiAgICAgSFRNTFBsdWdJbkVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsCiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtVmFsdWVzLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlSW4sIGJvb2wgbG9hZE1hbnVhbGx5KQpA
QCAtMzE2LDcgKzMyMSw3IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudEJs
YWNrQmVycnk6OmNyZWF0ZVBsdWdpbihjb25zdCBJbnRTaXplJiBwbHVnCiAgICAgaWYgKG1pbWVU
eXBlLmlzRW1wdHkoKSkgewogICAgICAgICBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Omdl
dE1JTUVUeXBlRm9yUGF0aCh1cmwucGF0aCgpKTsKICAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlw
ZVJlZ2lzdHJ5OjpnZXROb3JtYWxpemVkTUlNRVR5cGUobWltZVR5cGUpOwotICAgICAgICBpZiAo
bWltZVR5cGUgIT0gImFwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoIikKKyAgICAgICAgaWYg
KCFzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpCiAgICAgICAgICAgICBt
aW1lVHlwZSA9IG1pbWVUeXBlSW47CiAgICAgfQogCkBAIC0zMzAsNyArMzM1LDcgQEAgUGFzc1Jl
ZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeTo6Y3JlYXRlUGx1Z2luKGNv
bnN0IEludFNpemUmIHBsdWcKICAgICAvLyB3aWxsIGdlbmVyYWxseSBiZSBhIHZhbGlkIG1lZGlh
IG1pbWUgdHlwZSwgb3IgaXQgbWF5IGJlIG51bGwuIFdlCiAgICAgLy8gZXhwbGljaXRseSBjaGVj
ayBmb3IgRmxhc2ggY29udGVudCBzbyBpdCBkb2VzIG5vdCBnZXQgcmVuZGVyZWQgYXMKICAgICAv
LyB0ZXh0IGF0IHRoaXMgcG9pbnQsIHByb2R1Y2luZyBnYXJibGVkIGNoYXJhY3RlcnMuCi0gICAg
aWYgKG1pbWVUeXBlICE9ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgJiYgbV9mcmFt
ZS0+bG9hZGVyKCkgJiYgbV9mcmFtZS0+bG9hZGVyKCktPnN1YmZyYW1lTG9hZGVyKCkgJiYgIXVy
bC5pc051bGwoKSkKKyAgICBpZiAoIXNob3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KG1pbWVU
eXBlKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKSAmJiBtX2ZyYW1lLT5sb2FkZXIoKS0+c3ViZnJhbWVM
b2FkZXIoKSAmJiAhdXJsLmlzTnVsbCgpKQogICAgICAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+c3Vi
ZnJhbWVMb2FkZXIoKS0+cmVxdWVzdEZyYW1lKGVsZW1lbnQsIHVybCwgU3RyaW5nKCkpOwogCiAg
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRCbGFja0JlcnJ5LmgKaW5k
ZXggMGFlN2RkNWNlOTc0YTYwZWMyNDkyOWYwMzI4MmY2YzdkMTc0NmNjMS4uOWI1YzIwZjVhMjhh
OGE2YTljZjg0M2E4YzY4OGNlYThiODhhYTA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50QmxhY2tCZXJyeS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEJsYWNrQmVycnkuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKERvY3VtZW50TG9hZGVyKiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmlu
ZyYsIEhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIGJvb2wsIGludCwgaW50
KTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29uc3Qg
U3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IEtVUkwmLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiwg
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCopOwog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXaWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29u
c3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRFbGVtZW50KiwgY29uc3QgS1VSTCYsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mKSB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMTMzMmU0ZTVhNzA4OWJhYWM5ZmM4NzU2
Y2UyZjEwZjZlYTNhMGFkZC4uOTcxNzk5Y2E5NjE3NDU1ZTUwZDJjZTkzOWMwMjMxZTZhYjg0NjE2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODk2LDcgKzg5Niw3IEBAIFdlYkhpc3RvcnkqIFdl
YkZyYW1lTG9hZGVyQ2xpZW50Ojp3ZWJIaXN0b3J5KCkgY29uc3QKICAgICByZXR1cm4gV2ViSGlz
dG9yeTo6c2hhcmVkSGlzdG9yeSgpOwogfQogCi1ib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpz
aG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1lbnQoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKIHsKICAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gbV93
ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIGlmICghd2ViVmlldykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4
IGNhMDJmODc5OWFlZTJkYmYwZWYyMTlkNDExMjBjN2UxMmM0YmU1N2YuLjMzMmU4ODkxZmYzMmMx
Yzc1NTRlMGE3OGViYmEwMGQ5ZTY2YTRjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTE4LDcgKzEx
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjcmVhdGVQbHVnaW4oV2ViQ29yZTo6
V2lkZ2V0KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNv
cmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KTsKIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VQ
bHVnaW5Eb2N1bWVudChjb25zdCBXVEY6OlN0cmluZyYgbWltZVR5cGUpIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBXVEY6OlN0cmlu
ZyYgbWltZVR5cGUpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFRv
U3RhcnRQbHVnaW4oY29uc3QgV2ViQ29yZTo6UGx1Z2luVmlldyopIGNvbnN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDg4MDA1OTVkODEzY2IyOWEyODk2N2RjYWU0
ZWQ5YjQ4ZDdjYjQ1MWEuLjYzZmY5MGFhN2YyZjZmMDQ1N2M5ZDMzNzljMzFkZjY0YmQ5ZjdkYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTM2LDcgKzE1MzYsNyBA
QCBOU0NhY2hlZFVSTFJlc3BvbnNlKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVz
cG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bgogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogCi1i
b29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VQbHVnaW5Eb2N1bWVudChjb25zdCBT
dHJpbmcmIC8qbWltZVR5cGUqLykgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNo
b3VsZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDRmNzMyNjZjZGJmMjhkNjM2MmJiM2M5MzQ0ZjA2
YTkyOWRjMDY4ZmMuLmMwNjc4MjVmOTg1OWYyMGU3ZTdjZTYwMzI3Yzg2NzQ4YjVhNDU2NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9uc2UoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVk
VVJMUmVzcG9uc2UqKSBjb25zdCBPVkVSUklERTsKICNlbmRpZgogCi0gICAgdmlydHVhbCBib29s
IHNob3VsZFVzZVBsdWdpbkRvY3VtZW50KGNvbnN0IFN0cmluZyYgLyptaW1lVHlwZSovKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQWx3YXlzVXNlUGx1Z2luRG9jdW1l
bnQoY29uc3QgU3RyaW5nJiAvKm1pbWVUeXBlKi8pIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVNjcm9sbE9mZnNldCgpIE9WRVJSSURFOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ibGFja2JlcnJ5L3BsdWdpbnMvc3dmLWFzLXNyYy1vZi1p
ZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9wbHVn
aW5zL3N3Zi1hcy1zcmMtb2YtaWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2NkZjFl
OTM5MzJjYTE3NDI1YTM0ZWMxYTYxNWE4M2RmMzhiYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9wbHVnaW5zL3N3Zi1hcy1zcmMtb2YtaWZyYW1l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTRUQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2JsYWNrYmVycnkvcGx1Z2lucy9zd2YtYXMtc3JjLW9mLWlmcmFtZS5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vYmxhY2tiZXJyeS9wbHVnaW5zL3N3Zi1hcy1zcmMtb2Yt
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFiZDk4YmJlMTA3MzlkYWFiMjEyMGE1ZDUxODA0Yjkx
ZjJjYzk5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2JsYWNrYmVy
cnkvcGx1Z2lucy9zd2YtYXMtc3JjLW9mLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8dGl0bGU+VGVzdCB0aGF0IGlmcmFtZSB3aXRoIHNyYyBzZXQgdG8gc3dm
IHVzZXMgcGx1Z2luIGRvY3VtZW50PC90aXRsZT4KKzwhLS0tIFRoaXMgd2lsbCBlbnN1cmUgdGhh
dCB0aGUgIm1pc3NpbmcgcGx1Z2luIHRleHQiIGlzIHNob3duIHdoZW4gdGhlIEZsYXNoUGxheWVy
IHBsdWdpbiBpcyBkaXNhYmxlZC4gLS0+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgZnJhbWVkb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRl
bnRXaW5kb3cuZG9jdW1lbnQ7CisgIGlubmVyaHRtbCA9IGZyYW1lZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ2JvZHknKVswXS5pbm5lckhUTUw7CisgIGlmIChpbm5lcmh0bWxbMF0gPT09
ICdDJykgeworICAgIC8vIFRoaXMgaXMgdGhlICdDJyBmcm9tIHRoZSBBY3Rpb25TY3JpcHQgU1dD
LiBUaGUgY29udGVudHMgYXJlIGJlaW5nCisgICAgLy8gcmVuZGVyZWQgYXMgdGV4dC4gRmFpbCB0
aGUgdGVzdC4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLnRleHRDb250
ZW50ID0gIkZBSUxFRCBkdWUgdG8gcGx1Z2luIHJlbmRlcmVkIGFzIGdpYmJlcmlzaCB0ZXh0IChQ
UjI5MzA5OCkuIjsKKyAgfSBlbHNlIHsKKyAgICB2YXIgZmxhc2hwbGF5ZXJMb2FkZWQgPSBmYWxz
ZTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmF2aWdhdG9yLnBsdWdpbnMubGVuZ3RoOyArK2kpIHsK
KyAgICAgIGZvciAoaiA9IDA7IGogPCBuYXZpZ2F0b3IucGx1Z2luc1tpXS5sZW5ndGg7ICsraikg
eworICAgICAgICBpZiAobmF2aWdhdG9yLnBsdWdpbnNbaV1bal0udHlwZSA9PSAiYXBwbGljYXRp
b24veC1zaG9ja3dhdmUtZmxhc2giKSB7CisgICAgICAgICAgZmxhc2hwbGF5ZXJMb2FkZWQgPSB0
cnVlOworICAgICAgICB9CisgICAgICB9CisgICAgfQorICAgIGlmIChmbGFzaHBsYXllckxvYWRl
ZCkgeworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS50ZXh0Q29udGVu
dCA9ICJGQUlMRUQgZHVlIHRvIEZsYXNoUGxheWVyIHBsdWdpbiBlbmFibGVkLiBQbGVhc2UgZGlz
YWJsZSBpdC4iOworICAgIH0gZWxzZSBpZiAoZnJhbWVkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnZW1iZWQnKVswXSl7CisgICAgICAvLyBUaGVyZSBpcyBhbiBlbWJlZCBlbGVtZW50IGlu
c3RlYWQgb2YgZ2liYmVyaXNoIHRleHQuIFRoaXMgaXMgd2hhdCB3ZQorICAgICAgLy8gd2FudCBh
bmQgaW5kaWNhdGVzIHRoYXQgYSBwbHVnaW4gZG9jdW1lbnQgd2FzIGNyZWF0ZWQgaW5zdGVhZCBv
ZiBhbgorICAgICAgLy8gSFRNTCBkb2N1bWVudC4KKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykudGV4dENvbnRlbnQgPSAiUEFTU0VEIjsKKyAgICB9IGVsc2UgeworICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS50ZXh0Q29udGVudCA9ICJGQUlM
RUQgZm9yIGFuIHVua25vd24gcmVzb24uIjsKKyAgICB9CisgIH0KKworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpOyI+CisKKzxpZnJhbWUgaWQ9ImZyYW1l
IiBzcmM9Ii4uLy4uLy4uL3BsdWdpbnMvcmVzb3VyY2VzL3NpbXBsZV9ibGFuay5zd2YiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIj4KKzwvaWZyYW1lPgorCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzwvYm9keT4KKworPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>