<?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>79704</bug_id>
          
          <creation_ts>2012-02-27 14:21:57 -0800</creation_ts>
          <short_desc>Restrict access to notifications for unique origins and file URLs with no local file access</short_desc>
          <delta_ts>2012-03-27 13:16:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>81708</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>atwilson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>gustavo</cc>
    
    <cc>jberlin</cc>
    
    <cc>jianli</cc>
    
    <cc>ossy</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565979</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-27 14:21:57 -0800</bug_when>
    <thetext>For now, this includes geolocation and notifications.

&lt;rdar://problem/10912430&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566086</commentid>
    <comment_count>1</comment_count>
      <attachid>129123</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-27 16:26:40 -0800</bug_when>
    <thetext>Created attachment 129123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566515</commentid>
    <comment_count>2</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 02:10:46 -0800</bug_when>
    <thetext>After some discussion, reconsidering approach to this issue. Renaming appropriately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566544</commentid>
    <comment_count>3</comment_count>
      <attachid>129219</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 02:56:24 -0800</bug_when>
    <thetext>Created attachment 129219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566746</commentid>
    <comment_count>4</comment_count>
      <attachid>129219</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-28 08:55:21 -0800</bug_when>
    <thetext>Comment on attachment 129219
Patch

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

&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:102
&gt; +    if (originString == &quot;null&quot;)

Why not origin-&gt;isUnique() or add origin-&gt;canPresentNotifications?  Testing against a string constant is kind of ugly...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566807</commentid>
    <comment_count>5</comment_count>
      <attachid>129219</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 09:50:45 -0800</bug_when>
    <thetext>Comment on attachment 129219
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:102
&gt;&gt; +    if (originString == &quot;null&quot;)
&gt; 
&gt; Why not origin-&gt;isUnique() or add origin-&gt;canPresentNotifications?  Testing against a string constant is kind of ugly...

The first would only catch one of the two cases, and I was reluctant to expose a bit needed to detect the file:// case. As for the second, I don&apos;t think we want to pollute the SecurityOrigin interface with a function specific to this feature.

The string literal isn&apos;t great, but maybe instead we can refactor all uses of it (in SecurityOrigin::toString()) to a constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566852</commentid>
    <comment_count>6</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 10:40:58 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 129219 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129219&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:102
&gt; &gt;&gt; +    if (originString == &quot;null&quot;)
&gt; &gt; 
&gt; &gt; Why not origin-&gt;isUnique() or add origin-&gt;canPresentNotifications?  Testing against a string constant is kind of ugly...
&gt; 
&gt; The first would only catch one of the two cases, and I was reluctant to expose a bit needed to detect the file:// case. As for the second, I don&apos;t think we want to pollute the SecurityOrigin interface with a function specific to this feature.
&gt; 
&gt; The string literal isn&apos;t great, but maybe instead we can refactor all uses of it (in SecurityOrigin::toString()) to a constant.

Talked with ap offline, and we agreed to add a new function to SecurityOrigin as you suggested, Adam.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567064</commentid>
    <comment_count>7</comment_count>
      <attachid>129325</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 13:56:32 -0800</bug_when>
    <thetext>Created attachment 129325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567069</commentid>
    <comment_count>8</comment_count>
      <attachid>129325</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 14:01:54 -0800</bug_when>
    <thetext>Comment on attachment 129325
Patch

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

&gt; Source/WebCore/page/SecurityOrigin.cpp:360
&gt; +    return !isUnique() &amp;&amp; !m_enforceFilePathSeparation;

When is the second part of the test important?

&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:100
&gt; +    if (!origin-&gt;canShowNotifications())
&gt; +        return NotificationPresenter::PermissionDenied;

It&apos;s quite confusing that there is a method on SecurityOrigin that only affects WK2. Do we want it to be used in all ports?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567110</commentid>
    <comment_count>9</comment_count>
      <attachid>129325</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 14:34:44 -0800</bug_when>
    <thetext>Comment on attachment 129325
Patch

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

&gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:360
&gt;&gt; +    return !isUnique() &amp;&amp; !m_enforceFilePathSeparation;
&gt; 
&gt; When is the second part of the test important?

It looks like file URLs are not treated as unique origins by default (see SchemeRegistry.cpp: schemesWithUniqueOrigins()). So with just !isUnique() alone this test will fail if file URLs have restrictions. The second part of the test ensures that file URLs with local file access restrictions are prevented from showing notifications. See how in SecurityOrigin::toString() there is a check for this bit to return a similar string as for unique origins.

&gt;&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:100
&gt;&gt; +        return NotificationPresenter::PermissionDenied;
&gt; 
&gt; It&apos;s quite confusing that there is a method on SecurityOrigin that only affects WK2. Do we want it to be used in all ports?

For WK1 the policy can be enforced by the provider, which is left to the port to implement. But for symmetry I can add that check in WebKit as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567222</commentid>
    <comment_count>10</comment_count>
      <attachid>129353</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-28 16:42:08 -0800</bug_when>
    <thetext>Created attachment 129353
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567276</commentid>
    <comment_count>11</comment_count>
      <attachid>129353</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 17:34:38 -0800</bug_when>
    <thetext>Comment on attachment 129353
WIP

Attachment 129353 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11695028

New failing tests:
fast/notifications/notifications-document-close-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567701</commentid>
    <comment_count>12</comment_count>
      <attachid>129469</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-02-29 10:16:38 -0800</bug_when>
    <thetext>Created attachment 129469
WIP #2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581681</commentid>
    <comment_count>13</comment_count>
      <attachid>132555</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-19 00:52:52 -0700</bug_when>
    <thetext>Created attachment 132555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581682</commentid>
    <comment_count>14</comment_count>
      <attachid>132555</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-19 00:57:31 -0700</bug_when>
    <thetext>Comment on attachment 132555
Patch

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

&gt; Source/WebCore/notifications/NotificationCenter.cpp:62
&gt; +    if (scriptExecutionContext()-&gt;securityOrigin()-&gt;isLocal())
&gt; +        return NotificationClient::PermissionAllowed;

Why should local URLs be automatically whitelisted to have PermissionAllowed?  That sounds like a security decision that should either be made by SecurityOrigin or the client (probably the client).

&gt; Source/WebCore/notifications/NotificationCenter.cpp:70
&gt; +    if (!scriptExecutionContext()-&gt;securityOrigin()-&gt;canShowNotifications() || scriptExecutionContext()-&gt;securityOrigin()-&gt;isLocal()) {

We shouldn&apos;t be magically whitelisting isLocal.

&gt; Source/WebCore/notifications/NotificationCenter.cpp:71
&gt; +        callback-&gt;handleEvent();

Does this mean we&apos;re calling the callback synchronously when before we called it async?

&gt; Source/WebCore/page/SecurityOrigin.cpp:360
&gt; +    return !isUnique() &amp;&amp; (m_universalAccess || !m_enforceFilePathSeparation);

I&apos;m not sure I understand this condition.  Is this the same thing we use for, e.g., localStorage?

&gt; Source/WebCore/page/SecurityOrigin.h:117
&gt;      bool canAccessCookies() const { return !isUnique(); }
&gt;      bool canAccessPasswordManager() const { return !isUnique(); }
&gt;      bool canAccessFileSystem() const { return !isUnique(); }

Why is canShowNotifications different from the above?  Should we change the above?  I think it make sense allow access to these things when m_universalAccess is true, but I don&apos;t understand the connection with m_enforceFilePathSeparation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582055</commentid>
    <comment_count>15</comment_count>
      <attachid>132555</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-19 12:32:14 -0700</bug_when>
    <thetext>Comment on attachment 132555
Patch

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

&gt;&gt; Source/WebCore/notifications/NotificationCenter.cpp:62
&gt;&gt; +        return NotificationClient::PermissionAllowed;
&gt; 
&gt; Why should local URLs be automatically whitelisted to have PermissionAllowed?  That sounds like a security decision that should either be made by SecurityOrigin or the client (probably the client).

By the point we do the isLocal() check, we will have gone through the canShowNotifications() check, which will only be true for local protocols if they have been granted universal access, and do not have the file url restriction.

&gt;&gt; Source/WebCore/notifications/NotificationCenter.cpp:70
&gt;&gt; +    if (!scriptExecutionContext()-&gt;securityOrigin()-&gt;canShowNotifications() || scriptExecutionContext()-&gt;securityOrigin()-&gt;isLocal()) {
&gt; 
&gt; We shouldn&apos;t be magically whitelisting isLocal.

Should be covered by the canShowNotifications() check. See below.

&gt;&gt; Source/WebCore/notifications/NotificationCenter.cpp:71
&gt;&gt; +        callback-&gt;handleEvent();
&gt; 
&gt; Does this mean we&apos;re calling the callback synchronously when before we called it async?

Oops, you&apos;re right. It should be async.

&gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:360
&gt;&gt; +    return !isUnique() &amp;&amp; (m_universalAccess || !m_enforceFilePathSeparation);
&gt; 
&gt; I&apos;m not sure I understand this condition.  Is this the same thing we use for, e.g., localStorage?

No, it is not the same. It looks like there was a special exception added for local/file protocols, which caused the security origin for file URLs to appear unique, even if it isn&apos;t actually marked as unique. In those cases we don&apos;t want to post notifications. This is controlled by the m_enforceFilePathSeparation variable.

But the m_enforceFilePathSeparation variable itself is confusing. The only place it seems to be used is in the toString() method, which makes the origin appear unique, and in there, it is only used against the &quot;file&quot; protocol. But the only call site that changes that variable is in Document::initSecurityContext(), and there it checks isLocal(). Is that right?

The boolean expression in canShowNotifications() reflects this portion of initSecurityContext():

    if (Settings* settings = this-&gt;settings()) {
        if (!settings-&gt;isWebSecurityEnabled()) {
          securityOrigin()-&gt;grantUniversalAccess();
        } else if (settings-&gt;allowUniversalAccessFromFileURLs() &amp;&amp; securityOrigin()-&gt;isLocal()) {
          securityOrigin()-&gt;grantUniversalAccess();
        } else if (!settings-&gt;allowFileAccessFromFileURLs() &amp;&amp; securityOrigin()-&gt;isLocal()) {
          securityOrigin()-&gt;enforceFilePathSeparation();
        }
    }

So in checkPermission() and requestPermission(), by the time we reach the isLocal() check, we know that this local URL has been granted universal access, or does not appear like a unique origin.

Maybe an alternative phrase for &quot;enforceFilePathSeparation&quot; would clarify this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582293</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-19 15:02:11 -0700</bug_when>
    <thetext>Comment #15 is very confusing to me.  Maybe it would make more sense to discuss this in a more interactive setting?  (More detailed comments below.)

&gt; &gt; Why should local URLs be automatically whitelisted to have PermissionAllowed?  That sounds like a security decision that should either be made by SecurityOrigin or the client (probably the client).
&gt; 
&gt; By the point we do the isLocal() check, we will have gone through the canShowNotifications() check, which will only be true for local protocols if they have been granted universal access, and do not have the file url restriction.

My point is that whatever logic we have for whether a document can show a notification should be in canShowNotifications().  This could shouldn&apos;t care whether an origin is local or not.  This code should not have different behavior depend on whether anything is local.  In fact, I suspect the &quot;is local&quot; flag should be private to SecurityOrigin.

&gt; &gt;&gt; Source/WebCore/page/SecurityOrigin.cpp:360
&gt; &gt;&gt; +    return !isUnique() &amp;&amp; (m_universalAccess || !m_enforceFilePathSeparation);
&gt; &gt; 
&gt; &gt; I&apos;m not sure I understand this condition.  Is this the same thing we use for, e.g., localStorage?
&gt; 
&gt; No, it is not the same. It looks like there was a special exception added for local/file protocols, which caused the security origin for file URLs to appear unique, even if it isn&apos;t actually marked as unique. In those cases we don&apos;t want to post notifications. This is controlled by the m_enforceFilePathSeparation variable.

canShowNotifications() should not depend on m_enforceFilePathSeparation.  Ideally, m_enforceFilePathSeparation wouldn&apos;t exist and when embedders wanted to put file URLs in unique origins, they&apos;d use real unique origins.  However, there&apos;s some reason I forget why we can do that (related to files stored persistently on disk somewhere), so we have this m_enforceFilePathSeparation hack.  I need to do another round of cleaning up this issue, but I haven&apos;t gotten around to it.

In any case, notification shouldn&apos;t get tangled up in this mess.

&gt; The boolean expression in canShowNotifications() reflects this portion of initSecurityContext():

Notifications shouldn&apos;t care at all about how SecurityOrigins get initialized.  They should base their decision entirely on the final SecurityOrigin that was constructed.

&gt; So in checkPermission() and requestPermission(), by the time we reach the isLocal() check, we know that this local URL has been granted universal access, or does not appear like a unique origin.

Right, but Notification should not care whether a SecurityOrigin is local.  Really, nothing in WebCore should care.

&gt; Maybe an alternative phrase for &quot;enforceFilePathSeparation&quot; would clarify this?

Yeah, there&apos;s likely a better name for enforceFilePathSeparation that would clarify it&apos;s purpose as state that shouldn&apos;t be used for anything new.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583258</commentid>
    <comment_count>17</comment_count>
      <attachid>132860</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-20 11:16:39 -0700</bug_when>
    <thetext>Created attachment 132860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583267</commentid>
    <comment_count>18</comment_count>
      <attachid>132860</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-20 11:21:29 -0700</bug_when>
    <thetext>Comment on attachment 132860
Patch

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

&gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:99
&gt; -    HashMap&lt;String, bool&gt;::const_iterator it = m_permissionsMap.find(origin-&gt;toString());
&gt; +    HashMap&lt;String, bool&gt;::const_iterator it = m_permissionsMap.find(origin-&gt;toRawString());

Should we ASSERT that the origin isn&apos;t unique here?  This code seems like it would do the wrong thing for unique origins, but based on the other changes in the patch, I don&apos;t think that can happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583268</commentid>
    <comment_count>19</comment_count>
      <attachid>132860</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-20 11:22:37 -0700</bug_when>
    <thetext>Comment on attachment 132860
Patch

Attachment 132860 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12002395</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583275</commentid>
    <comment_count>20</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-20 11:25:46 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 132860 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=132860&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Notifications/WebNotificationManager.cpp:99
&gt; &gt; -    HashMap&lt;String, bool&gt;::const_iterator it = m_permissionsMap.find(origin-&gt;toString());
&gt; &gt; +    HashMap&lt;String, bool&gt;::const_iterator it = m_permissionsMap.find(origin-&gt;toRawString());
&gt; 
&gt; Should we ASSERT that the origin isn&apos;t unique here?  This code seems like it would do the wrong thing for unique origins, but based on the other changes in the patch, I don&apos;t think that can happen.

Good point. I&apos;ll add it. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583392</commentid>
    <comment_count>21</comment_count>
      <attachid>132860</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-20 13:10:11 -0700</bug_when>
    <thetext>Comment on attachment 132860
Patch

Attachment 132860 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12014020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583474</commentid>
    <comment_count>22</comment_count>
      <attachid>132860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-20 14:40:25 -0700</bug_when>
    <thetext>Comment on attachment 132860
Patch

Attachment 132860 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12035057

New failing tests:
fast/dom/error-to-string-stack-overflow.html
fast/notifications/notifications-request-permission.html
fast/notifications/notifications-without-permission.html
fast/notifications/notifications-check-permission.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583501</commentid>
    <comment_count>23</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-20 15:02:19 -0700</bug_when>
    <thetext>Committed r111445: &lt;http://trac.webkit.org/changeset/111445&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583515</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-20 15:33:57 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Committed r111445: &lt;http://trac.webkit.org/changeset/111445&gt;

Reopen, because it broke the Qt build. Why did you land it when EWS was red?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583517</commentid>
    <comment_count>25</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-20 15:35:56 -0700</bug_when>
    <thetext>And GTK build too ... 

Are you going to fix it or roll it out now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583538</commentid>
    <comment_count>26</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-20 15:54:47 -0700</bug_when>
    <thetext>Rollout landed in http://trac.webkit.org/changeset/111455.

Please don&apos;t land patches and then leave if EWS bot are red ...
I willingly help you to fix the build if you ask me _before_ landing.
But I don&apos;t have time to fix build fail cause your patch at night.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583631</commentid>
    <comment_count>27</comment_count>
      <attachid>132933</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-20 17:04:27 -0700</bug_when>
    <thetext>Created attachment 132933
Rename enums to try to fix GTK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583662</commentid>
    <comment_count>28</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2012-03-20 17:37:32 -0700</bug_when>
    <thetext>Committed r111476: http://trac.webkit.org/changeset/111476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589202</commentid>
    <comment_count>29</comment_count>
      <attachid>132933</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-27 13:16:30 -0700</bug_when>
    <thetext>Comment on attachment 132933
Rename enums to try to fix GTK

Cleared review? from attachment 132933 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129123</attachid>
            <date>2012-02-27 16:26:40 -0800</date>
            <delta_ts>2012-02-28 02:56:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79704-20120227162720.patch</filename>
            <type>text/plain</type>
            <size>18894</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmI0OTAzNmVkNDllZmQy
OGE3ZjA1ZTA1MzY1NWEyYTZlYTEzYjg3MS4uMDhiZTc3MDBiM2U3MDM5NWNlMWEyODQ4NDkxYWY2
OTk3MmUyOTJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTI3ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc2V0dGluZyB3aGljaCBnaXZl
cyBvcHRpb24gdG8gcmVzdHJpY3QgYWNjZXNzIHRvIHBsYXRmb3JtIHNlcnZpY2VzIGZvciBldmVy
eSBmaWxlOi8vLworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Nzk3MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwOTEyNDMwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEV4
cG9zZSBTZWN1cml0eU9yaWdpbjo6aXNMb2NhbCgpLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKTogQnkgZGVmYXVsdCwg
YWxsb3cgYWNjZXNzIHRvIHBsYWZvcm0gc2VydmljZXMuCisgICAgICAgICogcGFnZS9TZXR0aW5n
cy5oOiBBZGRlZCBhcyBzZXR0aW5nLgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldEFs
bG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNldHRpbmdzOjphbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMcyk6CisgICAg
ICAgIChTZXR0aW5ncyk6CisKIDIwMTItMDItMjcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBn
b29nbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEN0cmwrSyBzaG91bGQgbm90IHpv
b20gaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmZjUyMTNlOWViMmNjODAxZWNiOWQ1YTdjNDlkZDI1
Y2UxYWEzM2ZlLi4xM2NiN2I2YjAxM2ZmZTA4MWUxYWJmYjAwYjI3YTFmN2FjOWZlYTBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDItMjcgIEpvbiBMZWUgIDxqb25s
ZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzZXR0aW5nIHdoaWNoIGdpdmVzIG9wdGlvbiB0
byByZXN0cmljdCBhY2Nlc3MgdG8gcGxhdGZvcm0gc2VydmljZXMgZm9yIGV2ZXJ5IGZpbGU6Ly8v
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOiBBZGQgV2ViS2l0QWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVSTHNQ
cmVmZXJlbmNlS2V5CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDog
QWRkIG1ldGhvZHMgZm9yIHRoZSBzZXR0aW5nLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEFsbG93UGxhdGZvcm1TZXJ2
aWNlQWNjZXNzRnJvbUZpbGVVUkxzOl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBhbGxv
d1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMc10pOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOiBV
cGRhdGUgdGhlIGJpdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9u
Q2xpZW50Lm1tOgorICAgICAgICAoV2ViR2VvbG9jYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKTogQmVmb3JlIGFza2luZyB0aGUgVUkgZGVsZWdhdGUgdG8gZGVjaWRlIHRoZSBwb2xpY3ks
IGNoZWNrCisgICAgICAgIGFnYWluc3QgdGhpcyBuZXcgc2V0dGluZy4gSWYgdGhlIG9yaWdpbiBp
cyBsb2NhbCwgdGhlbiB3ZSB1c2UgdGhlIG5ldyBzZXR0aW5nIGluc3RlYWQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2ViTm90
aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24pOiBTYW1lIHRoaW5nIGhlcmUuCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5j
ZXMgaW5pdGlhbGl6ZV0pOiBBbGxvdyBieSBkZWZhdWx0LgorCiAyMDEyLTAyLTI2ICBIYWppbWUg
TW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1vdmUgQ2hyb21lQ2xp
ZW50OjpzaG93Q29udGV4dE1lbnUoKSB0byBDb250ZXh0TWVudUNsaWVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IGYxNjNkMjcxYmE4Nzc0OTg0MjM5YWQ5ZDRkNTNmZWZlYjJiZjE1OTkuLjY2MDMzZTA2NmU4MmJh
MDFkMjdjMzRmNDU2Yjg1OTUxYzA3MDNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMi0wMi0yNyAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHNl
dHRpbmcgd2hpY2ggZ2l2ZXMgb3B0aW9uIHRvIHJlc3RyaWN0IGFjY2VzcyB0byBwbGF0Zm9ybSBz
ZXJ2aWNlcyBmb3IgZXZlcnkgZmlsZTovLy8KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc5NzA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDkxMjQz
MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgIChXZWJLaXQpOiBBZGQgc2V0dGlu
Zy4gQnkgZGVmYXVsdCwgc2V0IHRvIHRydWUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZCBXSyBBUEkgZm9yIGFjY2Vzc2luZyB0aGUgc2V0dGlu
Zy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAg
IChXS1ByZWZlcmVuY2VzU2V0UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dl
ZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZp
bGVVUkxzQWxsb3dlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6IFVwZGF0ZSB0
aGUgc2V0dGluZy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnBlcm1pc3Npb25MZXZlbCk6IENoZWNr
IGFnYWluc3QgdGhlIHNldHRpbmcgYmVmb3JlIGdldHRpbmcKKyAgICAgICAgdGhlIHBvbGljeSBm
b3IgdGhlIG9yaWdpbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdl
b2xvY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViR2VvbG9jYXRpb25DbGll
bnQ6OnJlcXVlc3RQZXJtaXNzaW9uKTogQ2hlY2sgYWdhaW5zdCB0aGUgc2V0dGluZyBiZWZvcmUg
YXNraW5nIHRoZSByZXF1ZXN0IG1hbmFnZXIKKyAgICAgICAgdG8gc3RhcnQgYSBuZXcgcmVxdWVz
dC4KKwogMjAxMi0wMi0yNiAgWW91bmdUYWVjayBTb25nICA8eW91bmd0YWVjay5zb25nQHNhbXN1
bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gQWRkIEluamVjdGVkQnVuZGxlRWZsLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCA4YjJkOTY4Njk4NjhiYWJmM2Q3YTU2M2Y2ZTY1MjE5ZDE0
MGNjOWUyLi40Y2ZlYjc4MjkzOWJjMTdiNTFiMTdhNDcwN2RjODIwMzAwNzI0MmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMTI3OSw2ICsxMjc5LDcgQEAgX19aTks3V2ViQ29yZTE0U2Nyb2xs
YWJsZUFyZWEyMGNvbnRlbnRBcmVhV2lsbFBhaW50RXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjJtb3VzZUV4aXRlZENvbnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFi
bGVBcmVhMjNtb3VzZUVudGVyZWRDb250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTY3JvbGxh
YmxlQXJlYTIzbW91c2VNb3ZlZEluQ29udGVudEFyZWFFdgorX19aTks3V2ViQ29yZTE0U2VjdXJp
dHlPcmlnaW43aXNMb2NhbEV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjEwY2FuRGlz
cGxheUVSS05TXzRLVVJMRQogX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOGRhdGFiYXNl
SWRlbnRpZmllckV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBlYzUwZjg4YzhlNmE0MjJmYjllZjUxMGViYjk0
MzRkZDhiZjlmNzFiLi4yOWFhNzg3ZTM2ZmU1ZTFkOWE2N2NkNTI0NGQxZDJhMjI3Y2U5NjdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMjQ1LDYgKzI0NSw3IEBAIFNldHRpbmdzOjpT
ZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV90b3VjaEV2ZW50RW11bGF0aW9uRW5hYmxlZChm
YWxzZSkKICNlbmRpZgogICAgICwgbV90aHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoZmFsc2UpCisg
ICAgLCBtX2FsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCiAgICAg
LCBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseVRpbWVyKHRoaXMsICZTZXR0aW5nczo6bG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5VGltZXJGaXJlZCkKIHsKICAgICAvLyBBIEZyYW1lIG1heSBub3Qg
aGF2ZSBiZWVuIGNyZWF0ZWQgeWV0LCBzbyB3ZSBpbml0aWFsaXplIHRoZSBBdG9taWNTdHJpbmcg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZDM5MDZmMWU1NTUxNzg4MmNkOTczNzgxMzI2NGZh
N2JkNmU5YWE5NS4uYzUxNmI1NTUxY2Q5Yzg0OWIzOGU0Mjc5ZDliZGZhMWJjYTYwZjQ0NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtNTM5LDYgKzUzOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdm9pZCBzZXRUaHJlYWRlZEFuaW1hdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVk
KSB7IG1fdGhyZWFkZWRBbmltYXRpb25FbmFibGVkID0gZW5hYmxlZDsgfQogICAgICAgICBib29s
IHRocmVhZGVkQW5pbWF0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGhyZWFkZWRBbmlt
YXRpb25FbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRBbGxvd1BsYXRmb3JtU2VydmljZUFj
Y2Vzc0Zyb21GaWxlVVJMcyhib29sIGVuYWJsZWQpIHsgbV9hbGxvd1BsYXRmb3JtU2VydmljZUFj
Y2Vzc0Zyb21GaWxlVVJMcyA9IGVuYWJsZWQ7IH0KKyAgICAgICAgYm9vbCBhbGxvd1BsYXRmb3Jt
U2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dQbGF0Zm9y
bVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVSTHM7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIFNl
dHRpbmdzKFBhZ2UqKTsKIApAQCAtNjkwLDYgKzY5Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgYm9vbCBtX3RvdWNoRXZlbnRFbXVsYXRpb25FbmFibGVkIDogMTsKICNlbmRpZgog
ICAgICAgICBib29sIG1fdGhyZWFkZWRBbmltYXRpb25FbmFibGVkIDogMTsKKyAgICAgICAgYm9v
bCBtX2FsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzIDogMTsKIAogICAgICAg
ICBUaW1lcjxTZXR0aW5ncz4gbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lcjsKICAgICAg
ICAgdm9pZCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlUaW1lckZpcmVkKFRpbWVyPFNldHRpbmdz
PiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViR2Vv
bG9jYXRpb25DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJH
ZW9sb2NhdGlvbkNsaWVudC5tbQppbmRleCA1NDFmNDBjY2Q4ZTg5ODQwZTI2NDZiNjc0MmU1ZDU0
YjkyOWVjZWY0Li45Y2Y4YzRhYjYxN2IyYzBjY2YzMzIwZTU1NWY3OGJiOGE2ZmY4MzNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5tbQpAQCAtMzQsNiArMzQsOSBAQAogI2ltcG9ydCA8V2ViQ29yZS9CbG9ja0V4
Y2VwdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
R2VvbG9jYXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNjgsMTQgKzcxLDIwIEBAIHZvaWQgV2ViR2VvbG9j
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKEdlb2xvY2F0aW9uKiBnZW9sb2NhdGlvbikK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKKyAgICBGcmFtZSAqZnJhbWUg
PSBnZW9sb2NhdGlvbi0+ZnJhbWUoKTsKKyAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgaWYgKG9yaWdpbi0+aXNMb2Nh
bCgpKSB7CisgICAgICAgIGdlb2xvY2F0aW9uLT5zZXRJc0FsbG93ZWQoW21fd2ViVmlldyBwYWdl
XS0+c2V0dGluZ3MoKS0+YWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVSTHMoKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Io
d2ViVmlldzpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luOmZyYW1l
Omxpc3RlbmVyOik7CiAgICAgaWYgKCFbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1Rv
U2VsZWN0b3I6c2VsZWN0b3JdKSB7CiAgICAgICAgIGdlb2xvY2F0aW9uLT5zZXRJc0FsbG93ZWQo
ZmFsc2UpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgRnJhbWUgKmZyYW1lID0gZ2Vv
bG9jYXRpb24tPmZyYW1lKCk7Ci0gICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtb
V2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpm
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07CisgICAgV2ViU2VjdXJpdHlPcmln
aW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNv
cmVTZWN1cml0eU9yaWdpbjpvcmlnaW5dOwogICAgIFdlYkdlb2xvY2F0aW9uUG9saWN5TGlzdGVu
ZXIqIGxpc3RlbmVyID0gW1tXZWJHZW9sb2NhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0
V2l0aEdlb2xvY2F0aW9uOmdlb2xvY2F0aW9uXTsKIAogICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
Vmlldywgc2VsZWN0b3IsIHdlYk9yaWdpbiwga2l0KGZyYW1lKSwgbGlzdGVuZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lm1tCmluZGV4IDJmN2NkNTQxMTc3MTM3MzNmYWUwZTFlMmMyZjRhOTkxMWQ2ZmJjNGYu
LmQ2MGM3MzZkYmRmZDRlN2ViZjA2YmIyMGRlZjMwMzBiNzdkYWQ5OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQubW0KQEAgLTM1LDYgKzM1LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvQmxvY2tFeGNlcHRpb25z
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2lt
cG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMTc4LDYgKzE4MCwxNCBAQCBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Np
b24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RQogICAgICAg
ICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uRGVuaWVkOwogICAgIGlm
ICghW1ttX3dlYlZpZXcgcHJlZmVyZW5jZXNdIG5vdGlmaWNhdGlvbnNFbmFibGVkXSkKICAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKworICAg
IGlmIChjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLT5pc0xvY2FsKCkpIHsKKyAgICAgICAgaWYg
KFttX3dlYlZpZXcgcGFnZV0tPnNldHRpbmdzKCktPmFsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNz
RnJvbUZpbGVVUkxzKCkpCisgICAgICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uUHJlc2VudGVy
OjpQZXJtaXNzaW9uQWxsb3dlZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIE5v
dGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKKyAgICB9CisKICAgICBXZWJT
ZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2lu
aXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOmNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCldOwog
ICAgIFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24gcGVybWlzc2lvbiA9IFtbbV93ZWJWaWV3IF9u
b3RpZmljYXRpb25Qcm92aWRlcl0gcG9saWN5Rm9yT3JpZ2luOndlYk9yaWdpbl07CiAgICAgW3dl
Yk9yaWdpbiByZWxlYXNlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IDI2MWEzMGU1Njg4MTZiOWQ1YzZmMTUwYmUw
NmU3YTRkNDUxZDMzNzAuLjlmYWE2MzY2MzljNGI1NjY4OThjYmNiNTI4ZDE3MjUxN2QwZDRiYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtMTE5LDYgKzExOSw3IEBACiAjZGVmaW5lIFdlYktpdFNob3VsZERpc3Bs
YXlUZXh0RGVzY3JpcHRpb25zUHJlZmVyZW5jZUtleSBAIldlYktpdFNob3VsZERpc3BsYXlUZXh0
RGVzY3JpcHRpb25zIgogI2RlZmluZSBXZWJLaXROb3RpZmljYXRpb25zRW5hYmxlZEtleSBAIldl
YktpdE5vdGlmaWNhdGlvbnNFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTdXBwcmVzc2VzSW5jcmVt
ZW50YWxSZW5kZXJpbmdLZXkgQCJXZWJLaXRTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmci
CisjZGVmaW5lIFdlYktpdEFsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzUHJl
ZmVyZW5jZUtleSBAIldlYktpdEFsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxz
IgogCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBzaG91bGQgYmUg
dXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCiAvLyBjb3ZlciBtZXRob2Rz
IHRoZW1zZWx2ZXMgYXJlIHByaXZhdGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbQppbmRleCBlZDIzOTEwYTkwMGI1MzcwNjZlODcwZTRiMjc2YmIwYzQ5ZTg0
ZDkzLi5jZDBiYTQwZTkwZTQyYmUwNDI0NDg0NDk3NjY4ZmEyMmU0YTdiYWE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTM5NSw2ICszOTUsNyBA
QCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNob3VsZERpc3BsYXlD
YXB0aW9uc1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpO
T10sICAgV2ViS2l0U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnNQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdE5vdGlmaWNhdGlv
bnNFbmFibGVkS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdl
YktpdEFsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzUHJlZmVyZW5jZUtleSwK
IAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aExvbmdMb25nOkFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpub1F1b3RhKCldLCBXZWJLaXRBcHBsaWNhdGlvbkNhY2hlVG90YWxRdW90YSwKICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhMb25nTG9uZzpBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6bm9RdW90YSgpXSwgV2ViS2l0QXBwbGljYXRpb25DYWNoZURlZmF1bHRPcmlnaW5RdW90YSwK
QEAgLTE2NjQsNiArMTY2NSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQg
PSBuaWw7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0Tm90aWZpY2F0
aW9uc0VuYWJsZWRLZXldOwogfQogCistICh2b2lkKXNldEFsbG93UGxhdGZvcm1TZXJ2aWNlQWNj
ZXNzRnJvbUZpbGVVUkxzOihCT09MKWZsYWcKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZs
YWcgZm9yS2V5OldlYktpdEFsbG93UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzUHJl
ZmVyZW5jZUtleV07Cit9CisKKy0gKEJPT0wpYWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9t
RmlsZVVSTHMKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBbGxv
d1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMc1ByZWZlcmVuY2VLZXldOworfQorCiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRl
eCAyOWE4YmUxMjU4MzEwOGQ4MDliYTIyYWU0MTNjYmIxNThmMTkwNjEwLi5lODM5OGM4YmE3OWYx
NWJmZmVmNjhlODM2ODNiYjM3YzM3NDhhZDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI5Myw0ICsyOTMsNyBAQCBleHRl
cm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwog
LSAodm9pZClzZXROb3RpZmljYXRpb25zRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTClub3Rp
ZmljYXRpb25zRW5hYmxlZDsKIAorLSAoQk9PTClhbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zy
b21GaWxlVVJMczsKKy0gKHZvaWQpc2V0QWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmls
ZVVSTHM6KEJPT0wpZmxhZzsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDliNzIyMDI2ZWRjMjkxZTRlNWJjOTg1Yzg3NDRmMDQxOGQ3MmM4NWEuLmI2MTMxMjhl
N2EzYmU1MDY4ZTBlMmU2ZDA3MGNlZGE5NWU5ZmRlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTE1MTgsNiArMTUxOCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJl
dGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICNlbmRpZgogCiAgICAgc2V0dGluZ3MtPnNldE5lZWRz
SXNMb2FkaW5nSW5BUElTZW5zZVF1aXJrKFtzZWxmIF9uZWVkc0lzTG9hZGluZ0luQVBJU2Vuc2VR
dWlya10pOworICAgIHNldHRpbmdzLT5zZXRBbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21G
aWxlVVJMcyhbcHJlZmVyZW5jZXMgYWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVS
THNdKTsKIAogICAgIC8vIEFwcGxpY2F0aW9uIENhY2hlIFByZWZlcmVuY2VzIGFyZSBzdG9yZWQg
b24gdGhlIGdsb2JhbCBjYWNoZSBzdG9yYWdlIG1hbmFnZXIsIG5vdCBpbiBTZXR0aW5ncy4KICAg
ICBbV2ViQXBwbGljYXRpb25DYWNoZSBzZXREZWZhdWx0T3JpZ2luUXVvdGE6W3ByZWZlcmVuY2Vz
IGFwcGxpY2F0aW9uQ2FjaGVEZWZhdWx0T3JpZ2luUXVvdGFdXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IGNiNzAzMDk0MDc0YzQ2YzBjNjI3ZDU3
MmMzYjFjMWU1ZGU3OWFkY2IuLmY1NDZmNzU2ZDRhYTU3MjhjMzkyNjZhOTYzY2E0MmNiNDEzNjA2
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3Jl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaApAQCAt
MTA2LDYgKzEwNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIG1hY3JvKFNob3VsZERpc3Bs
YXlDYXB0aW9ucywgc2hvdWxkRGlzcGxheUNhcHRpb25zLCBCb29sLCBib29sLCBmYWxzZSkgXAog
ICAgIG1hY3JvKFNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zLCBzaG91bGREaXNwbGF5VGV4
dERlc2NyaXB0aW9ucywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhOb3RpZmljYXRp
b25zRW5hYmxlZCwgbm90aWZpY2F0aW9uc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAg
ICBtYWNybyhBbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dQbGF0
Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBc
CiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5k
ZXggMzk5MDNiY2I1ZmYwNTc4NDdmOWVkOTEyNWY0YWRlYTZkMjViODhkOS4uN2RjZTQwZDM2OTE0
MTExOTM0ZGUxNGMzNjhhOWU0NmI4YzI1NDc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAtNzY0LDMgKzc2NCwxMyBAQCB2b2lk
IFdLUHJlZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZikKICAgICAvLyBhcmUgdXN1YWxseSBhbHdheXMgdGhlIHNhbWUgKGluIHRo
ZSBVSSBwcm9jZXNzKSwgdGhleSBhcmUgbm90IHNlbnQgdG8gd2ViIHByb2Nlc3MsIG5vdCB0cmln
Z2VyaW5nIHRoZSByZXNldC4KICAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5mb3JjZVVwZGF0
ZSgpOwogfQorCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9t
RmlsZVVSTHNBbGxvd2VkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgYWxs
b3dlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZXRBbGxvd1BsYXRmb3JtU2Vy
dmljZUFjY2Vzc0Zyb21GaWxlVVJMcyhhbGxvd2VkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2Vz
R2V0UGxhdGZvcm1TZXJ2aWNlQWNjZXNzRnJvbUZpbGVVUkxzQWxsb3dlZChXS1ByZWZlcmVuY2Vz
UmVmIHByZWZlcmVuY2VzUmVmKQoreworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYp
LT5hbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMcygpOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApp
bmRleCAzNjk1MGU4OTE0MTExYTM0NjFkZmNiNDAyZGQ3NGViYWU2MDJiNmY5Li41ZDc3ZmEzYmQy
ZTI3YzRmYjRlM2RmODg2YjcwMzdhYTU5MmRmMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTY5LDYgKzE2
OSwxMCBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0QXBwbGljYXRpb25DaHJvbWVN
b2RlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZQogCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZl
cmVuY2VzUmVzZXRUZXN0UnVubmVyT3ZlcnJpZGVzKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXNSZWYpOwogCisvLyBEZWZhdWx0cyB0byB0cnVlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJl
bmNlc1NldFBsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMc0FsbG93ZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBhbGxvd2VkKTsKK1dLX0VYUE9SVCBib29sIFdL
UHJlZmVyZW5jZXNHZXRQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVSTHNBbGxvd2VkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0K
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAppbmRleCAxZGRkYTdjOTgxNjBkNTQ5Yjk5MjNhZTI3ZTE0ZGU4N2Q4OTU3
YjIyLi5mZTMzYmE5NzkyMTM2MThlYjJjMjZlYjViZjg3ZDhiYTc3MTJlN2FmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApA
QCAtOTgsNiArOTgsMTIgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2kKICAgICBpZiAoIW1fcGFn
ZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+bm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKICAgICAK
KyAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPmlzTG9jYWwoKSkgeworICAgICAgICBpZiAobV9wYWdl
LT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLT5hbGxvd1BsYXRmb3JtU2VydmljZUFjY2Vzc0Zyb21G
aWxlVVJMcygpKQorICAgICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVy
bWlzc2lvbkFsbG93ZWQ7CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBl
cm1pc3Npb25EZW5pZWQ7CisgICAgfQorCiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNoYXJlZCgp
Lm5vdGlmaWNhdGlvbk1hbmFnZXIoKS5wb2xpY3lGb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2VjdXJpdHlPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xv
Y2F0aW9uQ2xpZW50LmNwcAppbmRleCAxZjkyMGExZmI1YmUzZTMwY2VlYWIyOWM2MzQxNTk0MWRi
MzY3OWIwLi5lNGQzOWFiMzczZGViYWZkZmY4OGE1MzhjYjIyMDhlMDcxODFiOTY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0
aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcApAQCAtMzEsOCArMzEsMTIgQEAKICNpbmNsdWRl
ICJXZWJHZW9sb2NhdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dlb2xvY2F0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HZW9sb2NhdGlvblBvc2l0
aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTcwLDYgKzc0LDEzIEBAIEdlb2xvY2F0aW9uUG9zaXRpb24q
IFdlYkdlb2xvY2F0aW9uQ2xpZW50OjpsYXN0UG9zaXRpb24oKQogCiB2b2lkIFdlYkdlb2xvY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihHZW9sb2NhdGlvbiogZ2VvbG9jYXRpb24pCiB7
CisgICAgRnJhbWUqIGZyYW1lID0gZ2VvbG9jYXRpb24tPmZyYW1lKCk7CisgICAgU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOworICAg
IGlmIChvcmlnaW4tPmlzTG9jYWwoKSkgeworICAgICAgICBnZW9sb2NhdGlvbi0+c2V0SXNBbGxv
d2VkKG1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+YWxsb3dQbGF0Zm9ybVNlcnZpY2VB
Y2Nlc3NGcm9tRmlsZVVSTHMoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX3Bh
Z2UtPmdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRSZXF1ZXN0Rm9y
R2VvbG9jYXRpb24oZ2VvbG9jYXRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjg4ZTdjZGQwNDNmNDI4MWQ3OWI0Yjg3NGJj
ZWVjMTYyYzExYzllYy4uMWMzN2FlODA5YmQ3N2Q4ODE0ODI5ZmRjNGQyZDRkZDc3ZDZjYzA3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
MTkzOSw2ICsxOTM5LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKICAg
ICBzZXR0aW5ncy0+c2V0Tm90aWZpY2F0aW9uc0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpub3RpZmljYXRpb25zRW5hYmxlZEtleSgpKSk7CiAjZW5k
aWYKKyAgICBzZXR0aW5ncy0+c2V0QWxsb3dQbGF0Zm9ybVNlcnZpY2VBY2Nlc3NGcm9tRmlsZVVS
THMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd1BsYXRm
b3JtU2VydmljZUFjY2Vzc0Zyb21GaWxlVVJMc0tleSgpKSk7CiAKICAgICBwbGF0Zm9ybVByZWZl
cmVuY2VzRGlkQ2hhbmdlKHN0b3JlKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129219</attachid>
            <date>2012-02-28 02:56:24 -0800</date>
            <delta_ts>2012-02-28 13:56:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79704-20120228025702.patch</filename>
            <type>text/plain</type>
            <size>2393</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTI4NTkyZTFhMmY5ZjNk
OTcyMDE5OTczMGVhYTkwMmMxMDM2MGRlNy4uYTA1YTc0ZTY4ODBlOTljMmYzNzBhYmI4ZGRhMjE4
NTk3OTA5MDE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAyLTI4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2tpbmcgdGhlIHBlcm1p
c3Npb24gbGV2ZWwgYW5kIHJlcXVlc3RpbmcgcGVybWlzc2lvbiBib3RoIGdvIHRocm91Z2ggcG9s
aWN5Rm9yT3JpZ2luKCksIHdoaWNoCisgICAgICAgIGNoZWNrcyB0aGUgY2FjaGVkIHRhYmxlIG9m
IGtub3duIHBlcm1pc3Npb25zLiBJZiB0aGUgb3JpZ2luLCBleHByZXNzZWQgYXMgYSBzdHJpbmcs
IGlzICJudWxsIiwgdGhlbgorICAgICAgICBpdCBpcyBhbiBvcmlnaW4gd2l0aCBhIGdsb2JhbGx5
IHVuaXF1ZSBpZGVudGlmaWVyLCBvciBhIGxvY2FsIGZpbGUgd2l0aCByZXN0cmljdGVkIGFjY2Vz
cy4KKyAgICAgICAgSW4gdGhlc2UgY2FzZXMgd2UgZGVueSBwZXJtaXNzaW9uLiBPdGhlcndpc2Ug
d2UgY29udGludWUgdGhlIGxvb2sgdXAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbik6CisKIDIwMTItMDItMjcgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVsZW1lbnQ6OnJl
bW92ZVNoYWRvd1Jvb3QoKSBhbmQgc2V0U2hhZG93Um9vdCgpIHNob3VsZCBiZSBtb3ZlZCBpbnRv
IFNoYWRvd1RyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggOTBh
N2Y0MDIxOGI3MzU4YTY3OGJmNGVjZDc1NjlkZmU0ZWE5NWM3OC4uMWE0MzIxNDBlZDIwNmUwNTQw
ODRjZmMwM2Y1MTIyYzkzMjE0MmY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcApAQCAtOTYsNyArOTYsMTMgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9u
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3IKICAgICBpZiAo
IW9yaWdpbikKICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lv
bk5vdEFsbG93ZWQ7CiAgICAgCi0gICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChvcmlnaW4tPnRvU3RyaW5nKCkpOworICAg
IFN0cmluZyBvcmlnaW5TdHJpbmcgPSBvcmlnaW4tPnRvU3RyaW5nKCk7CisgICAgLy8gSWYgdGhl
IHN0cmluZyBpcyAibnVsbCIsIGVpdGhlciB0aGUgb3JpZ2luIGlzIGEgZ2xvYmFsbHkgdW5pcXVl
IGlkZW50aWZpZXIsIG9yCisgICAgLy8gYSBsb2NhbCBmaWxlIHdpdGggcmVzdHJpY3RlZCBhY2Nl
c3MuCisgICAgaWYgKG9yaWdpblN0cmluZyA9PSAibnVsbCIpCisgICAgICAgIHJldHVybiBOb3Rp
ZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgYm9vbD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdp
blN0cmluZyk7CiAgICAgaWYgKGl0ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAg
IHJldHVybiBpdC0+c2Vjb25kID8gTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxs
b3dlZCA6IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129325</attachid>
            <date>2012-02-28 13:56:32 -0800</date>
            <delta_ts>2012-02-28 16:42:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79704-20120228135709.patch</filename>
            <type>text/plain</type>
            <size>4863</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRjY2M0YzJhOTU5YjM1
MWFhMWIyYzU5OGRlYWRhOWVkMDIyM2U1Yy4uZTRmOTk3MTJmZmU3MjQ3YzRjYzU0NTYxMDE1NzJm
Yjk3MjQ2ODk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAyLTI4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmg6IEFkZCBuZXcgZnVuY3Rpb24gY2FuU2hvd05vdGlmaWNhdGlvbnMoKS4KKyAgICAgICAg
KiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpjYW5TaG93Tm90aWZpY2F0aW9ucyk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46IEV4
cG9ydCBjYW5TaG93Tm90aWZpY2F0aW9ucygpLgorCiAyMDEyLTAyLTI4ICBOb2VsIEdvcmRvbiAg
PG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggY29tbWVudCBhYm91dCBSR0Ig
c3dpenpsZSBkZWNvZGluZyBhbmQgQWRvYmUgdHJhbnNmb3JtPTAgaW1hZ2VzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggYTI4NTkyZTFhMmY5ZjNkOTcyMDE5OTczMGVhYTkwMmMxMDM2MGRlNy4uM2VhZTc2MjM2YWZh
OWVjODQ3N2JlZTVlNmM1YjQ4NzFhYjE5ODBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEyLTAyLTI4ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0
cmljdCBhY2Nlc3MgdG8gbm90aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUg
VVJMcyB3aXRoIG5vIGxvY2FsIGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5
MTI0MzA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q2hlY2tpbmcgdGhlIHBlcm1pc3Npb24gbGV2ZWwgYW5kIHJlcXVlc3RpbmcgcGVybWlzc2lvbiBi
b3RoIGdvIHRocm91Z2ggcG9saWN5Rm9yT3JpZ2luKCksIHdoaWNoCisgICAgICAgIGNoZWNrcyB0
aGUgY2FjaGVkIHRhYmxlIG9mIGtub3duIHBlcm1pc3Npb25zLiBJZiB0aGUgb3JpZ2luIGlzIG5v
dCBhbGxvd2VkIHRvIHNob3cgbm90aWZpY2F0aW9ucywgd2UgZGVueQorICAgICAgICBwZXJtaXNz
aW9uLiBPdGhlcndpc2Ugd2UgY29udGludWUgdGhlIGxvb2sgdXAuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbik6CisKIDIw
MTItMDItMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKSBhbmQgc2V0U2hhZG93Um9vdCgpIHNob3Vs
ZCBiZSBtb3ZlZCBpbnRvIFNoYWRvd1RyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDM0NmE3
OGU2ZmQxYzZiOGY5MTA5ZGI2YWE5NDI2NjU0NWI2N2EzN2IuLmM0NTMzY2EyYjA1MWVlZDhkZjUz
ZDM4ZWMzOTk5NWQzMWI2NmEwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMjgxLDYgKzEy
ODEsNyBAQCBfX1pOSzdXZWJDb3JlMTRTY3JvbGxhYmxlQXJlYTIzbW91c2VFbnRlcmVkQ29udGVu
dEFyZWFFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlTW92ZWRJbkNvbnRl
bnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMTBjYW5EaXNwbGF5RVJLTlNf
NEtVUkxFCiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjE4ZGF0YWJhc2VJZGVudGlmaWVy
RXYKK19fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjBjYW5TaG93Tm90aWZpY2F0aW9uc0V2
CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjVlcXVhbEVQS1MwXwogX19aTks3V2ViQ29y
ZTE0U2VjdXJpdHlPcmlnaW44dG9TdHJpbmdFdgogX19aTks3V2ViQ29yZTE1QWZmaW5lVHJhbnNm
b3JtMTBpc0lkZW50aXR5RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5k
ZXggMThlNGZhMmY3MWUwMDcxNzZlNTEzMWIyMGRiNzY0ZGNmYTFjNTE3MC4uNjE5Nzk3YmY4MzFm
NTdmNjQzZmRiMDkzMzNjYWZiYzI5MzAwZmRiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5jcHAKQEAgLTM1NSw2ICszNTUsMTEgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2Fu
RGlzcGxheShjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jv
b2wgU2VjdXJpdHlPcmlnaW46OmNhblNob3dOb3RpZmljYXRpb25zKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gIWlzVW5pcXVlKCkgJiYgIW1fZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbjsKK30KKwog
dm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRMb2FkTG9jYWxSZXNvdXJjZXMoKQogewogICAgIC8v
IFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgdG8gc3VwcG9ydCBiYWNrd2FyZHMgY29tcGF0aWJp
bGl0eSB3aXRoIG9sZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggNDVh
OGExYTUzM2IxNTBmMDgwZDk0MTk4MTE2YjA2NjQxY2EzYWQyNy4uNTdhMzJmOGM2ZGE0ODhhMjg2
NWIxN2JlODMyMTg4OTMyN2Y1ZWJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
aApAQCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkFjY2Vzc0Nvb2tpZXMo
KSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQogICAgIGJvb2wgY2FuQWNjZXNzUGFzc3dv
cmRNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAgICBib29sIGNhbkFj
Y2Vzc0ZpbGVTeXN0ZW0oKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQorICAgIGJvb2wg
Y2FuU2hvd05vdGlmaWNhdGlvbnMoKSBjb25zdDsKIAogICAgIC8vIFRlY2huaWNhbGx5LCB3ZSBz
aG91bGQgYWx3YXlzIGFsbG93IGFjY2VzcyB0byBzZXNzaW9uU3RvcmFnZSwgYnV0IHdlCiAgICAg
Ly8gY3VycmVudGx5IGRvbid0IGhhbmRsZSBjcmVhdGluZyBhIHNlc3Npb25TdG9yYWdlIGFyZWEg
Zm9yIHVuaXF1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDkwYTdm
NDAyMThiNzM1OGE2NzhiZjRlY2Q3NTY5ZGZlNGVhOTVjNzguLjMzNjNmY2JkMzkyZWU1YjE2ZGIw
MmE0MDRhYzE5NTBmMDA3ZTAzMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5j
cHAKQEAgLTk2LDYgKzk2LDkgQEAgTm90aWZpY2F0aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3IKICAgICBpZiAoIW9y
aWdpbikKICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvblByZXNlbnRlcjo6UGVybWlzc2lvbk5v
dEFsbG93ZWQ7CiAgICAgCisgICAgaWYgKCFvcmlnaW4tPmNhblNob3dOb3RpZmljYXRpb25zKCkp
CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7
CisKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZXJt
aXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9TdHJpbmcoKSk7CiAgICAgaWYgKGl0ICE9IG1fcGVy
bWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdC0+c2Vjb25kID8gTm90aWZpY2F0
aW9uUHJlc2VudGVyOjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNhdGlvblByZXNlbnRlcjo6
UGVybWlzc2lvbkRlbmllZDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129353</attachid>
            <date>2012-02-28 16:42:08 -0800</date>
            <delta_ts>2012-02-29 10:16:34 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79704-20120228164244.patch</filename>
            <type>text/plain</type>
            <size>4080</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MDg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRjY2M0YzJhOTU5YjM1
MWFhMWIyYzU5OGRlYWRhOWVkMDIyM2U1Yy4uNTJmODI0NWI1N2U2MWE4MjdjZjQ2MWU5NTAwNWQ0
M2U5ZGJhYzEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTI4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGNoZWNraW5nIG9y
IHJlcXVlc3RpbmcgcGVybWlzc2lvbnMsIHdlIGxvb2sgYXQgd2hldGhlciB3ZSBjYW4gc2hvdyBu
b3RpZmljYXRpb25zIGJhc2VkIG9uCisgICAgICAgIHRoZSBzZWN1cml0eSBjb250ZXh0LiBJZiBu
b3QsIHdlIHNob3J0IGNpcmN1aXQgYW5kIGRvIG5vdCBmb3J3YXJkIHRoZSByZXF1ZXN0IHRvIHRo
ZSBjbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6IEFkZCBuZXcgZnVu
Y3Rpb24gY2FuU2hvd05vdGlmaWNhdGlvbnMoKS4KKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5TaG93Tm90aWZp
Y2F0aW9ucyk6IFVuaXF1ZSBvcmlnaW5zIGFuZCBmaWxlIFVSTHMgd2l0aCBubyBsb2NhbCBmaWxl
CisgICAgICAgIGFjY2VzcyBzaG91bGQgbm90IGJlIGFibGUgdG8gc2hvdyBub3RpZmljYXRpb25z
LgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwOiBEbyBh
biBlYXJseSBjaGVjayB0byBzZWUgaWYgdGhlIHNlY3VyaXR5IG9yaWdpbiBjYW4gc2hvdworICAg
ICAgICBub3RpZmljYXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVy
OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVy
OjpyZXF1ZXN0UGVybWlzc2lvbik6CisKIDIwMTItMDItMjggIE5vZWwgR29yZG9uICA8bm9lbC5n
b3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIEZpeCBjb21tZW50IGFib3V0IFJHQiBzd2l6emxl
IGRlY29kaW5nIGFuZCBBZG9iZSB0cmFuc2Zvcm09MCBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCA3MTE0NmFm
OGRhMzcyM2QxNDcxNWVmY2I1ZDFhYmVhYzQ4ZTM3MTU5Li4zMjI5NGMyNzZhNzFlODE4NDYyODE0
ZjFmZWQ3NTRlN2YzZTA3ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVk
ZSAiV29ya2VyQ29udGV4dC5oIgogCkBAIC01NCwxNSArNTUsMTcgQEAgTm90aWZpY2F0aW9uQ2Vu
dGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
Tm90aWZpY2EKIAogaW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKCkKIHsK
LSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
aWYgKCFwcmVzZW50ZXIoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8ICFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhblNob3dOb3RpZmljYXRpb25z
KCkpCiAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5p
ZWQ7CiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jaGVja1Blcm1pc3Npb24o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6
OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxsYmFjaykKIHsK
LSAgICBpZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAg
aWYgKCFwcmVzZW50ZXIoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8ICFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhblNob3dOb3RpZmljYXRpb25z
KCkpIHsKKyAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KCk7CiAgICAgICAgIHJldHVybjsK
KyAgICB9CiAgICAgbV9ub3RpZmljYXRpb25QcmVzZW50ZXItPnJlcXVlc3RQZXJtaXNzaW9uKHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDE4ZTRmYTJmNzFlMDA3MTc2ZTUxMzFiMjBkYjc2NGRj
ZmExYzUxNzAuLjYxOTc5N2JmODMxZjU3ZjY0M2ZkYjA5MzMzY2FmYmMyOTMwMGZkYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC0zNTUsNiArMzU1LDExIEBAIGJv
b2wgU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAg
IHJldHVybiB0cnVlOwogfQogCitib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5TaG93Tm90aWZpY2F0
aW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFpc1VuaXF1ZSgpICYmICFtX2VuZm9yY2VGaWxl
UGF0aFNlcGFyYXRpb247Cit9CisKIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50TG9hZExvY2Fs
UmVzb3VyY2VzKCkKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBvbmx5IHRvIHN1cHBv
cnQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oCmluZGV4IDQ1YThhMWE1MzNiMTUwZjA4MGQ5NDE5ODExNmIwNjY0MWNhM2Fk
MjcuLjU3YTMyZjhjNmRhNDg4YTI4NjViMTdiZTgzMjE4ODkzMjdmNWViYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBjYW5BY2Nlc3NDb29raWVzKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAg
ICBib29sIGNhbkFjY2Vzc1Bhc3N3b3JkTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1
ZSgpOyB9CiAgICAgYm9vbCBjYW5BY2Nlc3NGaWxlU3lzdGVtKCkgY29uc3QgeyByZXR1cm4gIWlz
VW5pcXVlKCk7IH0KKyAgICBib29sIGNhblNob3dOb3RpZmljYXRpb25zKCkgY29uc3Q7CiAKICAg
ICAvLyBUZWNobmljYWxseSwgd2Ugc2hvdWxkIGFsd2F5cyBhbGxvdyBhY2Nlc3MgdG8gc2Vzc2lv
blN0b3JhZ2UsIGJ1dCB3ZQogICAgIC8vIGN1cnJlbnRseSBkb24ndCBoYW5kbGUgY3JlYXRpbmcg
YSBzZXNzaW9uU3RvcmFnZSBhcmVhIGZvciB1bmlxdWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129469</attachid>
            <date>2012-02-29 10:16:38 -0800</date>
            <delta_ts>2012-03-19 00:52:48 -0700</delta_ts>
            <desc>WIP #2</desc>
            <filename>bug-79704-20120229101712.patch</filename>
            <type>text/plain</type>
            <size>4062</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTRmMWIxNTZiNjQyZDc5
NDViNjc0OWM0NDJlOTg3YWVmMjdlYmIyZS4uODM5YjVhOWJiYmI0MDhjM2FjYTJmYTFjZDEzZWMy
MDhiYTEwZjhiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTI4ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGNoZWNraW5nIG9y
IHJlcXVlc3RpbmcgcGVybWlzc2lvbnMsIHdlIGxvb2sgYXQgd2hldGhlciB3ZSBjYW4gc2hvdyBu
b3RpZmljYXRpb25zIGJhc2VkIG9uCisgICAgICAgIHRoZSBzZWN1cml0eSBjb250ZXh0LiBJZiBu
b3QsIHdlIHNob3J0IGNpcmN1aXQgYW5kIGRvIG5vdCBmb3J3YXJkIHRoZSByZXF1ZXN0IHRvIHRo
ZSBjbGllbnQuCisKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6IEFkZCBuZXcgZnVu
Y3Rpb24gY2FuU2hvd05vdGlmaWNhdGlvbnMoKS4KKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5TaG93Tm90aWZp
Y2F0aW9ucyk6IFVuaXF1ZSBvcmlnaW5zIGFuZCBmaWxlIFVSTHMgd2l0aCBubyBsb2NhbCBmaWxl
CisgICAgICAgIGFjY2VzcyBzaG91bGQgbm90IGJlIGFibGUgdG8gc2hvdyBub3RpZmljYXRpb25z
LgorCisgICAgICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwOiBEbyBh
biBlYXJseSBjaGVjayB0byBzZWUgaWYgdGhlIHNlY3VyaXR5IG9yaWdpbiBjYW4gc2hvdworICAg
ICAgICBub3RpZmljYXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVy
OjpjaGVja1Blcm1pc3Npb24pOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVy
OjpyZXF1ZXN0UGVybWlzc2lvbik6CisKIDIwMTItMDItMjggIEFya28gU2FoYSAgPGFya29AbW90
b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvZGF0YTogSW1wbGVtZW50IEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbiBjb2xsZWN0aW9uLm5hbWVkSXRlbSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCmluZGV4IDcxMTQ2YWY4ZGEz
NzIzZDE0NzE1ZWZjYjVkMWFiZWFjNDhlMzcxNTkuLjI4N2M0OTQ1YjNhZWFhMGUzNzE0Yjk5ZTQ4
NDc5MGRkODRjNzVmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNlbnRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKIAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCisjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJX
b3JrZXJDb250ZXh0LmgiCiAKQEAgLTU0LDcgKzU1LDcgQEAgTm90aWZpY2F0aW9uQ2VudGVyOjpO
b3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgTm90aWZp
Y2EKIAogaW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKCkKIHsKLSAgICBp
ZiAoIXByZXNlbnRlcigpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgaWYgKCFw
cmVzZW50ZXIoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8ICFzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhblNob3dOb3RpZmljYXRpb25zKCkpCiAg
ICAgICAgIHJldHVybiBOb3RpZmljYXRpb25QcmVzZW50ZXI6OlBlcm1pc3Npb25EZW5pZWQ7CiAg
ICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUHJlc2VudGVyLT5jaGVja1Blcm1pc3Npb24oc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KQEAgLTYzLDYgKzY0LDEwIEBAIHZvaWQgTm90aWZpY2F0
aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlzc2lvbihQYXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2Fs
bGJhY2spCiB7CiAgICAgaWYgKCFwcmVzZW50ZXIoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQogICAgICAgICByZXR1cm47CisgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnNlY3VyaXR5T3JpZ2luKCktPmNhblNob3dOb3RpZmljYXRpb25zKCkpIHsKKyAgICAgICAgY2Fs
bGJhY2stPmhhbmRsZUV2ZW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgbV9ub3Rp
ZmljYXRpb25QcmVzZW50ZXItPnJlcXVlc3RQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgY2FsbGJhY2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3Bw
CmluZGV4IDE4ZTRmYTJmNzFlMDA3MTc2ZTUxMzFiMjBkYjc2NGRjZmExYzUxNzAuLjYxOTc5N2Jm
ODMxZjU3ZjY0M2ZkYjA5MzMzY2FmYmMyOTMwMGZkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCkBAIC0zNTUsNiArMzU1LDExIEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46
OmNhbkRpc3BsYXkoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Citib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5TaG93Tm90aWZpY2F0aW9ucygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuICFpc1VuaXF1ZSgpICYmICFtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb247Cit9
CisKIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50TG9hZExvY2FsUmVzb3VyY2VzKCkKIHsKICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBvbmx5IHRvIHN1cHBvcnQgYmFja3dhcmRzIGNvbXBh
dGliaWxpdHkgd2l0aCBvbGRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCmluZGV4
IDQ1YThhMWE1MzNiMTUwZjA4MGQ5NDE5ODExNmIwNjY0MWNhM2FkMjcuLjU3YTMyZjhjNmRhNDg4
YTI4NjViMTdiZTgzMjE4ODkzMjdmNWViYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmgKQEAgLTExNSw2ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5BY2Nlc3NDb29r
aWVzKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAgICBib29sIGNhbkFjY2Vzc1Bh
c3N3b3JkTWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1ZSgpOyB9CiAgICAgYm9vbCBj
YW5BY2Nlc3NGaWxlU3lzdGVtKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KKyAgICBi
b29sIGNhblNob3dOb3RpZmljYXRpb25zKCkgY29uc3Q7CiAKICAgICAvLyBUZWNobmljYWxseSwg
d2Ugc2hvdWxkIGFsd2F5cyBhbGxvdyBhY2Nlc3MgdG8gc2Vzc2lvblN0b3JhZ2UsIGJ1dCB3ZQog
ICAgIC8vIGN1cnJlbnRseSBkb24ndCBoYW5kbGUgY3JlYXRpbmcgYSBzZXNzaW9uU3RvcmFnZSBh
cmVhIGZvciB1bmlxdWUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132555</attachid>
            <date>2012-03-19 00:52:52 -0700</date>
            <delta_ts>2012-03-20 11:16:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79704-20120319005412.patch</filename>
            <type>text/plain</type>
            <size>6011</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExMTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE4OTg2NmNiZDdjZDFi
ZDkzYTk0MDM1NTQzMmZlYWE4ZjNhOWE2Yi4uYzFkNjZiZTA5NjM4M2RlODcyOGRhNjFjZTU3M2Ez
MmM4N2RjN2IzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAzLTE5ICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGNoZWNraW5nIG9y
IHJlcXVlc3RpbmcgcGVybWlzc2lvbnMsIHdlIGxvb2sgYXQgd2hldGhlciB3ZSBjYW4gc2hvdyBu
b3RpZmljYXRpb25zIGJhc2VkIG9uCisgICAgICAgIHRoZSBzZWN1cml0eSBjb250ZXh0LiBJZiBu
b3QsIHdlIHNob3J0IGNpcmN1aXQgYW5kIGRvIG5vdCBmb3J3YXJkIHRoZSByZXF1ZXN0IHRvIHRo
ZSBjbGllbnQuCisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6IEZpeCBhIGJ1ZyB3
aGVyZSBjcmVhdGluZyBhIG5vdGlmaWNhdGlvbiBnb2VzIHRocm91Z2ggc2xpZ2h0bHkKKyAgICAg
ICAgZGlmZmVyZW50IGxvZ2ljIGZvciBjaGVja2luZyBwZXJtaXNzaW9ucyB0aGFuIHdoZW4gY2hl
Y2tpbmcgcGVybWlzc2lvbnMgdGhyb3VnaCB0aGUKKyAgICAgICAgbm90aWZpY2F0aW9uIGNlbnRl
ci4KKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbik6IENoZWNr
IHRvIHNlZSBpZiB0aGUgb3JpZ2luIGlzIGxvY2FsLCBhbmQgaWYgaXQKKyAgICAgICAgY2FuIHNo
b3cgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6
cmVxdWVzdFBlcm1pc3Npb24pOiBJZiB0aGUgb3JpZ2luIGNhbid0IHNob3cgbm90aWZpY2F0aW9u
cywgb3IgaXQgY2FuIGJ1dAorICAgICAgICBpcyBhIGxvY2FsIG9yaWdpbiwgd2Ugc2hvcnQtY2ly
Y3VpdCBhbmQgZGlzcGF0Y2ggdGhlIGNhbGxiYWNrLgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhblNob3dOb3Rp
ZmljYXRpb25zKTogT3JpZ2lucyB0aGF0IGFyZSBub3QgdW5pcXVlLCBhbmQgZWl0aGVyIGhhdmUg
dW5pdmVyc2FsCisgICAgICAgIGFjY2VzcyBvciBkbyBub3QgaGF2ZSBsb2NhbCBmaWxlIGFjY2Vz
cyByZXN0cmljdGlvbnMsIG1heSBzaG93IG5vdGlmaWNhdGlvbnMuIFRoaXMgbG9naWMgaXMgZGVy
aXZlZAorICAgICAgICBmcm9tIHRoZSBzZXJpZXMgb2YgY2hlY2tzIGFnYWluc3Qgc2VjdXJpdHkg
c2V0dGluZ3MgaW4gRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKS4KKyAgICAgICAgKiBw
YWdlL1NlY3VyaXR5T3JpZ2luLmg6IEFkZCBuZXcgZnVuY3Rpb24gY2FuU2hvd05vdGlmaWNhdGlv
bnMoKS4KKwogMjAxMi0wMy0xNiAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgU2hvdWxkIHJlbW92ZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjptdWx0
aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IDAzYzgyNDQ3MGNhNTA1Y2Q1YjA0MmJlZDM0NWIyYjJk
Y2ZjMDYzN2MuLjI5OGM0MGUxY2E0ZGE5ZGIxMmM1NWRhNTBiZmY1MjQ5YjYzMDM1MjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTU4LDgg
KzU4LDcgQEAgTm90aWZpY2F0aW9uOjpOb3RpZmljYXRpb24oY29uc3QgS1VSTCYgdXJsLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGMKICAgICAsIG1fc3RhdGUoSWRsZSkKICAg
ICAsIG1fbm90aWZpY2F0aW9uQ2VudGVyKHByb3ZpZGVyKQogewotICAgIEFTU0VSVChtX25vdGlm
aWNhdGlvbkNlbnRlci0+Y2xpZW50KCkpOwotICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+
Y2xpZW50KCktPmNoZWNrUGVybWlzc2lvbihjb250ZXh0KSAhPSBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb25BbGxvd2VkKSB7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jaGVj
a1Blcm1pc3Npb24oKSAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkKSB7
CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
ODAsOCArNzksNyBAQCBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRp
dGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZwogICAgICwgbV9zdGF0ZShJZGxl
KQogICAgICwgbV9ub3RpZmljYXRpb25DZW50ZXIocHJvdmlkZXIpCiB7Ci0gICAgQVNTRVJUKG1f
bm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSk7Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9uQ2Vu
dGVyLT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9IE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXIt
PmNoZWNrUGVybWlzc2lvbigpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93
ZWQpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRl
ci5jcHAKaW5kZXggMmYyZDdkNmE3Y2YwMjc4ZDczOWE5OGU4NTBkOWJhYmIzNDIzOWY3Yi4uNGNl
YTFiMmQ2YzFhOTliOTczOTc0ZGU3ZjQzYjZkYTlhNGJiZDJlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25D
bGllbnQuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlZvaWRDYWxs
YmFjay5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKIApAQCAtNTUsOCArNTYsMTAgQEAg
Tm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgTm90aWZpY2EKIAogaW50IE5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQ
ZXJtaXNzaW9uKCkKIHsKLSAgICBpZiAoIWNsaWVudCgpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgaWYgKCFjbGllbnQoKSB8fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHx8
ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhblNob3dOb3Rp
ZmljYXRpb25zKCkpCiAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b25EZW5pZWQ7CisgICAgaWYgKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmln
aW4oKS0+aXNMb2NhbCgpKQorICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uQWxsb3dlZDsKICAgICByZXR1cm4gbV9jbGllbnQtPmNoZWNrUGVybWlzc2lvbihzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCkBAIC02NCw2ICs2NywxMSBAQCB2b2lkIE5vdGlm
aWNhdGlvbkNlbnRlcjo6cmVxdWVzdFBlcm1pc3Npb24oUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+
IGNhbGxiYWNrKQogewogICAgIGlmICghY2xpZW50KCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKICAgICAgICAgcmV0dXJuOworICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5zZWN1cml0eU9yaWdpbigpLT5jYW5TaG93Tm90aWZpY2F0aW9ucygpIHx8IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNMb2NhbCgpKSB7CisgICAgICAgIGNh
bGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9j
bGllbnQtPnJlcXVlc3RQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJh
Y2spOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDE4ZTRm
YTJmNzFlMDA3MTc2ZTUxMzFiMjBkYjc2NGRjZmExYzUxNzAuLmNiZjMyNWY5NGFiN2U3OWMwZTdh
ODlmNGRiOWU0MzA1NmJkNDgzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCkBAIC0zNTUsNiArMzU1LDExIEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXko
Y29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIFNlY3Vy
aXR5T3JpZ2luOjpjYW5TaG93Tm90aWZpY2F0aW9ucygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFp
c1VuaXF1ZSgpICYmIChtX3VuaXZlcnNhbEFjY2VzcyB8fCAhbV9lbmZvcmNlRmlsZVBhdGhTZXBh
cmF0aW9uKTsKK30KKwogdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRMb2FkTG9jYWxSZXNvdXJj
ZXMoKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgdG8gc3VwcG9ydCBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmgKaW5kZXggNDVhOGExYTUzM2IxNTBmMDgwZDk0MTk4MTE2YjA2NjQxY2EzYWQyNy4uNTdh
MzJmOGM2ZGE0ODhhMjg2NWIxN2JlODMyMTg4OTMyN2Y1ZWJiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uaApAQCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICBib29sIGNh
bkFjY2Vzc0Nvb2tpZXMoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQogICAgIGJvb2wg
Y2FuQWNjZXNzUGFzc3dvcmRNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0K
ICAgICBib29sIGNhbkFjY2Vzc0ZpbGVTeXN0ZW0oKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUo
KTsgfQorICAgIGJvb2wgY2FuU2hvd05vdGlmaWNhdGlvbnMoKSBjb25zdDsKIAogICAgIC8vIFRl
Y2huaWNhbGx5LCB3ZSBzaG91bGQgYWx3YXlzIGFsbG93IGFjY2VzcyB0byBzZXNzaW9uU3RvcmFn
ZSwgYnV0IHdlCiAgICAgLy8gY3VycmVudGx5IGRvbid0IGhhbmRsZSBjcmVhdGluZyBhIHNlc3Np
b25TdG9yYWdlIGFyZWEgZm9yIHVuaXF1ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132860</attachid>
            <date>2012-03-20 11:16:39 -0700</date>
            <delta_ts>2012-03-20 17:04:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79704-20120320111754.patch</filename>
            <type>text/plain</type>
            <size>17699</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc3OTUxZTNkZGExNmRk
ZmUwOWRiYTA4YjQxYTgwOTAxNTYwYjQ1MC4uZmY0NmFjYjBlOTQxMGU0YzAyMmVmNjA4ZjY3ODFh
MWRiNjI2MTJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTIwICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIGNoZWNraW5nIG9y
IHJlcXVlc3RpbmcgcGVybWlzc2lvbnMsIHdlIGxvb2sgYXQgd2hldGhlciB3ZSBjYW4gc2hvdyBu
b3RpZmljYXRpb25zIGJhc2VkIG9uCisgICAgICAgIHRoZSBzZWN1cml0eSBjb250ZXh0LiBJZiBu
b3QsIHdlIHNob3J0IGNpcmN1aXQgYW5kIGRvIG5vdCBmb3J3YXJkIHRoZSByZXF1ZXN0IHRvIHRo
ZSBjbGllbnQuCisKKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6IEZpeCBhIGJ1ZyB3
aGVyZSBjcmVhdGluZyBhIG5vdGlmaWNhdGlvbiBnb2VzIHRocm91Z2ggc2xpZ2h0bHkKKyAgICAg
ICAgZGlmZmVyZW50IGxvZ2ljIGZvciBjaGVja2luZyBwZXJtaXNzaW9ucyB0aGFuIHdoZW4gY2hl
Y2tpbmcgcGVybWlzc2lvbnMgdGhyb3VnaCB0aGUKKyAgICAgICAgbm90aWZpY2F0aW9uIGNlbnRl
ci4KKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OmNoZWNrUGVybWlzc2lvbik6IENoZWNr
IHRvIHNlZSBpZiB0aGUgb3JpZ2luIGNhbiBzaG93IG5vdGlmaWNhdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKTogSWYgd2Uga25v
dyB3aGV0aGVyIGFuIG9yaWdpbiBjYW4gc2hvdyBub3RpZmljYXRpb25zLAorICAgICAgICB3ZSBh
c3luY2hyb25vdXNseSBjYWxsIHRoZSBjYWxsYmFjayB3aXRoIHRoYXQgZGVjaXNpb24uIE90aGVy
d2lzZSB3ZSBhc2sgdGhlIGNsaWVudC4KKworICAgICAgICBBZGQgbmV3IHZhcmlhYmxlIGluIHRo
ZSBub3RpZmljYXRpb24gY2VudGVyIHRvIGtlZXAgdHJhY2sgb2YgcGVuZGluZyBjYWxsYmFja3Mg
d2hlbiB3ZSBzaG9ydC1jaXJjdWl0CisgICAgICAgIHJlcXVlc3RQZXJtaXNzaW9uKCkuCisgICAg
ICAgICogbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIuaDoKKyAgICAgICAgKE5vdGlm
aWNhdGlvblJlcXVlc3RDYWxsYmFjayk6IEFkZCBuZXcgcHJpdmF0ZSBjbGFzcyBlbmNhcHN1bGF0
aW5nIHRoZSBjYWxsYmFjay4KKyAgICAgICAgKiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6OnJlcXVlc3RU
aW1lZE91dCk6IFJlbW92ZSB0aGUgcmVxdWVzdCBmcm9tIHRoZSBzZXQgb2YgcGVuZGluZyBjYWxs
YmFja3MuCisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlv
blJlcXVlc3Q6OmNyZWF0ZUFuZFN0YXJ0VGltZXIpOiBCZWNhdXNlIHRoaXMgaXMgdXNlZCB3aGVu
IHdlIGFscmVhZHkKKyAgICAgICAga25vdyB0aGUgZGVjaXNpb24sIGFuZCBhcmUgbm90IGFza2lu
ZyB0aGUgY2xpZW50IHRvIGRlY2lkZSwgd2UgY2FuIGltbWVkaWF0ZWx5IHRyaWdnZXIgYSBvbmUt
c2hvdCB0aW1lcgorICAgICAgICB0byBpbnZva2UgdGhlIGNhbGxiYWNrLgorICAgICAgICAoV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0OjpOb3RpZmljYXRp
b25SZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZp
Y2F0aW9uUmVxdWVzdDo6c3RhcnRUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRp
b25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3Q6OnRpbWVyRmlyZWQpOiBJbnZva2UgdGhlIGNh
bGxiYWNrIGFuZCB0ZWxsIHRoZSBub3RpZmljYXRpb24KKyAgICAgICAgY2VudGVyLgorICAgICAg
ICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDogQWRkIG5ldyB0b1Jhd1N0cmluZygpIG1ldGhvZCB0
byByZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2luLAorICAgICAg
ICByZWdhcmRsZXNzIG9mIGFueSByZXN0cmljdGlvbnMgdGhhdCBtaWdodCBvdGhlcndpc2UgY2F1
c2UgdG9TdHJpbmcoKSB0byByZXR1cm4gIm51bGwiLgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhblNob3dOb3Rp
ZmljYXRpb25zKTogQWRkZWQgdG8gcmV0dXJuIGEgdHJpLXN0YXRlIHJlZ2FyZGluZyB3aGV0aGVy
IHdlIGtub3cKKyAgICAgICAgdGhlIG9yaWdpbiBjYW4gc2hvdyBub3RpZmljYXRpb25zLiBJZiB0
aGUgb3JpZ2luIGlzIHVuaXF1ZSwgd2UgbmV2ZXIgbGV0IGl0IHNob3cuIElmIHRoZSBvcmlnaW4g
aGFzCisgICAgICAgIHVuaXZlcnNhbCBhY2Nlc3MsIHdlIGFsd2F5cyBsZXQgaXQgc2hvdy4gT3Ro
ZXJ3aXNlIHRoZSBjbGllbnQgc2hvdWxkIGJlIGFza2VkLgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OnRvU3RyaW5nKTogUmVmYWN0b3IgdG8gdXNlIHRvUmF3U3RyaW5nKCkuCisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dG9SYXdTdHJpbmcpOgorCisgICAgICAg
IEFkZGVkIEZJWE1FJ3MgcmVnYXJkaW5nIHRoZSBuYW1pbmcgb2YgZW5mb3JjZUZpbGVQYXRoU2Vw
YXJhdGlvbigpLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCk6IEFsc28sIHRhYiByZWZvcm1hdHRpbmcu
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjogRXhwb3J0IHRvUmF3U3RyaW5nKCkuCisKIDIw
MTItMDMtMjAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAg
ICAgICBDb252ZXJ0IGhhc1NwZWxsaW5nTWFya2VyIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNl
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDA0ZmIxZGIwMTM5YjQwODg1OTY4MmRmZTYxYjBjZDhlODU0M2QzMWEu
LmQ2ZTg4YjI4YzBlNDNiYmUxNDg0ZTMzNWU4MTM3NDk4ODlkMGY5ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAxMi0wMy0yMCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVzdHJpY3QgYWNjZXNzIHRvIG5vdGlmaWNhdGlvbnMgZm9yIHVuaXF1ZSBvcmln
aW5zIGFuZCBmaWxlIFVSTHMgd2l0aCBubyBsb2NhbCBmaWxlIGFjY2VzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzk3MDQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwOTEyNDMwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEluIHRoZSBzcGVjaWZpYyBjYXNlIHdoZXJlIGEgZmlsZSBVUkwgaGFzIHJl
c3RyaWN0ZWQgZmlsZSBhY2Nlc3MgYW5kIGlzIGRlbmllZCB1bml2ZXJzYWwgYWNjZXNzLAorICAg
ICAgICBTZWN1cml0eU9yaWdpbjo6Y2FuU2hvd05vdGlmaWNhdGlvbnMoKSByZXR1cm5zIEFzaywg
c2luY2UgaXQgaXMgbm90IGNvbnNpZGVyZWQgYSB1bmlxdWUgb3JpZ2luLgorICAgICAgICBUaGUg
Y2FjaGVkIHRhYmxlIG9mIHBlcm1pc3Npb25zIGhlbGQgYnkgdGhlIG5vdGlmaWNhdGlvbiBtYW5h
Z2VyIHdpbGwgdHlwaWNhbGx5IG5vdCBoYXZlIGFuIGVudHJ5IGZvcgorICAgICAgICB0aGUgdG9T
dHJpbmcoKSByZXByZXNlbnRhdGlvbiBvZiB0aGVzZSBmaWxlIFVSTHMsIHdoaWNoIGlzICJudWxs
Iiwgc2luY2UgdGhhdCBjYW4gYWxzbyBjb3ZlciB1bmlxdWUKKyAgICAgICAgb3JpZ2lucywgYW5k
IGl0IGlzIHBvc3NpYmxlIHRoYXQgdGhlIGNsaWVudCB3aWxsIHdhbnQgZGlmZmVyZW50IHBlcm1p
c3Npb25zIGJldHdlZW4gdGhlIHR3byB0eXBlcy4KKworICAgICAgICBJdCBpcyByZWFzb25hYmxl
LCBob3dldmVyLCBmb3IgdGhlcmUgdG8gYmUgYW4gZW50cnkgZm9yICJmaWxlOi8vIiwgc28gd2Ug
dXNlIHRvUmF3U3RyaW5nKCkgdG8gZG8gdGhlIGxvb2t1cC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6cG9saWN5Rm9yT3JpZ2luKToKKwogMjAxMi0w
My0yMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEdy
YXBoaWMgZGlzdG9ydGlvbiBlZmZlY3Qgd2hlbiBsYXVuY2hpbmcgd2l0aCBlbXB0eSBwYWdlIFNh
ZmFyaSBhZnRlciByZXNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjNmM3YTA4MzhlMmZkZDg2
NDViYmQzM2I5NDNkMmUzZmQ0YTNkNzQ3Li5jMTc4MWEyN2M2ZTg3NTVkNzc3Yzg5ZDg5NjA3YjFh
MTY5YTE1YjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTI4Myw2ICsxMjgzLDcgQEAgX19a
Tks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyMm1vdXNlRXhpdGVkQ29udGVudEFyZWFFdgogX19a
Tks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlRW50ZXJlZENvbnRlbnRBcmVhRXYKIF9f
Wk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVkSW5Db250ZW50QXJlYUV2CiBf
X1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjEwY2FuRGlzcGxheUVSS05TXzRLVVJMRQorX19a
Tks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xMXRvUmF3U3RyaW5nRXYKIF9fWk5LN1dlYkNvcmUx
NFNlY3VyaXR5T3JpZ2luMThkYXRhYmFzZUlkZW50aWZpZXJFdgogX19aTks3V2ViQ29yZTE0U2Vj
dXJpdHlPcmlnaW41ZXF1YWxFUEtTMF8KIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luOHRv
U3RyaW5nRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDdhZjUwYzA3M2YwOTk1ZGI1Njdl
ZTU1ODAxY2EzZGQwM2UwNzI5ZjEuLjEyMGUxZGI0OGVmZmIwOGJhYTZjNmM0MDRjM2FmMTJiOWE1
NGIxZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDcyNywxOSArNDcyNywyMCBAQCB2
b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKIAogICAgIGlmIChTZXR0aW5ncyog
c2V0dGluZ3MgPSB0aGlzLT5zZXR0aW5ncygpKSB7CiAgICAgICAgIGlmICghc2V0dGluZ3MtPmlz
V2ViU2VjdXJpdHlFbmFibGVkKCkpIHsKLSAgICAgICAgICAvLyBXZWIgc2VjdXJpdHkgaXMgdHVy
bmVkIG9mZi4gIFdlIHNob3VsZCBsZXQgdGhpcyBkb2N1bWVudCBhY2Nlc3MgZXZlcnkKLSAgICAg
ICAgICAvLyBvdGhlciBkb2N1bWVudC4gIFRoaXMgaXMgdXNlZCBwcmltYXJ5IGJ5IHRlc3Rpbmcg
aGFybmVzc2VzIGZvciB3ZWIKLSAgICAgICAgICAvLyBzaXRlcy4KLSAgICAgICAgICBzZWN1cml0
eU9yaWdpbigpLT5ncmFudFVuaXZlcnNhbEFjY2VzcygpOwotCisgICAgICAgICAgICAvLyBXZWIg
c2VjdXJpdHkgaXMgdHVybmVkIG9mZi4gV2Ugc2hvdWxkIGxldCB0aGlzIGRvY3VtZW50IGFjY2Vz
cyBldmVyeQorICAgICAgICAgICAgLy8gb3RoZXIgZG9jdW1lbnQuIFRoaXMgaXMgdXNlZCBwcmlt
YXJ5IGJ5IHRlc3RpbmcgaGFybmVzc2VzIGZvciB3ZWIKKyAgICAgICAgICAgIC8vIHNpdGVzLgor
ICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+Z3JhbnRVbml2ZXJzYWxBY2Nlc3MoKTsKICAg
ICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy0+YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THMoKSAmJiBzZWN1cml0eU9yaWdpbigpLT5pc0xvY2FsKCkpIHsKLSAgICAgICAgICAvLyBTb21l
IGNsaWVudHMgd2FudCBmaWxlOi8vIFVSTHMgdG8gaGF2ZSB1bml2ZXJzYWwgYWNjZXNzLCBidXQg
dGhhdAotICAgICAgICAgIC8vIHNldHRpbmcgaXMgZGFuZ2Vyb3VzIGZvciBvdGhlciBjbGllbnRz
LgotICAgICAgICAgIHNlY3VyaXR5T3JpZ2luKCktPmdyYW50VW5pdmVyc2FsQWNjZXNzKCk7Cisg
ICAgICAgICAgICAvLyBTb21lIGNsaWVudHMgd2FudCBmaWxlOi8vIFVSTHMgdG8gaGF2ZSB1bml2
ZXJzYWwgYWNjZXNzLCBidXQgdGhhdAorICAgICAgICAgICAgLy8gc2V0dGluZyBpcyBkYW5nZXJv
dXMgZm9yIG90aGVyIGNsaWVudHMuCisgICAgICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5ncmFu
dFVuaXZlcnNhbEFjY2VzcygpOwogICAgICAgICB9IGVsc2UgaWYgKCFzZXR0aW5ncy0+YWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzKCkgJiYgc2VjdXJpdHlPcmlnaW4oKS0+aXNMb2NhbCgpKSB7
Ci0gICAgICAgICAgLy8gU29tZSBjbGllbnRzIHdhbnQgZmlsZTovLyBVUkxzIHRvIGhhdmUgZXZl
biB0aWdodGVyIHJlc3RyaWN0aW9ucyBieQotICAgICAgICAgIC8vIGRlZmF1bHQsIGFuZCBub3Qg
YmUgYWJsZSB0byBhY2Nlc3Mgb3RoZXIgbG9jYWwgZmlsZXMuCi0gICAgICAgICAgc2VjdXJpdHlP
cmlnaW4oKS0+ZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbigpOworICAgICAgICAgICAgLy8gU29t
ZSBjbGllbnRzIHdhbnQgZmlsZTovLyBVUkxzIHRvIGhhdmUgZXZlbiB0aWdodGVyIHJlc3RyaWN0
aW9ucyBieQorICAgICAgICAgICAgLy8gZGVmYXVsdCwgYW5kIG5vdCBiZSBhYmxlIHRvIGFjY2Vz
cyBvdGhlciBsb2NhbCBmaWxlcy4KKyAgICAgICAgICAgIC8vIEZJWE1FIDgxNTc4OiBUaGUgbmFt
aW5nIG9mIHRoaXMgaXMgY29uZnVzaW5nLiBGaWxlcyB3aXRoIHJlc3RyaWN0ZWQgYWNjZXNzIHRv
IG90aGVyIGxvY2FsIGZpbGVzCisgICAgICAgICAgICAvLyBzdGlsbCBjYW4gaGF2ZSBvdGhlciBw
cml2aWxlZ2VzIHRoYXQgY2FuIGJlIHJlbWVtYmVyZWQsIHRoZXJlYnkgbm90IG1ha2luZyB0aGVt
IHVuaXF1ZSBvcmlnaW5zLgorICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+ZW5mb3JjZUZp
bGVQYXRoU2VwYXJhdGlvbigpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggMDNjODI0NDcwY2E1MDVjZDVi
MDQyYmVkMzQ1YjJiMmRjZmMwNjM3Yy4uMjk4YzQwZTFjYTRkYTlkYjEyYzU1ZGE1MGJmZjUyNDli
NjMwMzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmNwcApAQCAtNTgsOCArNTgsNyBAQCBOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbihjb25zdCBL
VVJMJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4YwogICAgICwgbV9z
dGF0ZShJZGxlKQogICAgICwgbV9ub3RpZmljYXRpb25DZW50ZXIocHJvdmlkZXIpCiB7Ci0gICAg
QVNTRVJUKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSk7Ci0gICAgaWYgKG1fbm90aWZp
Y2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9uKGNvbnRleHQpICE9IE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQpIHsKKyAgICBpZiAobV9ub3RpZmljYXRp
b25DZW50ZXItPmNoZWNrUGVybWlzc2lvbigpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbkFsbG93ZWQpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC04MCw4ICs3OSw3IEBAIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKGNv
bnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nCiAgICAg
LCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNlbnRlcihwcm92aWRlcikKIHsK
LSAgICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpKTsKLSAgICBpZiAobV9u
b3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgeworICAgIGlmIChtX25vdGlm
aWNhdGlvbkNlbnRlci0+Y2hlY2tQZXJtaXNzaW9uKCkgIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uQWxsb3dlZCkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCAyZjJkN2Q2YTdjZjAyNzhkNzM5YTk4ZTg1MGQ5YmFi
YjM0MjM5ZjdiLi5kY2M1ZGU0MmY3ZGJlZjg4ZjEyZWM5N2VjZjk4MzhlZjdhNzliZGVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
Y3BwCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw2ICs1NywxNyBAQCBpbnQgTm90aWZpY2F0aW9uQ2VudGVy
OjpjaGVja1Blcm1pc3Npb24oKQogewogICAgIGlmICghY2xpZW50KCkgfHwgIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbkRlbmllZDsKKworICAgIHN3aXRjaCAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1
cml0eU9yaWdpbigpLT5jYW5TaG93Tm90aWZpY2F0aW9ucygpKSB7CisgICAgY2FzZSBTZWN1cml0
eU9yaWdpbjo6QWx3YXlzOgorICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uQWxsb3dlZDsKKyAgICBjYXNlIFNlY3VyaXR5T3JpZ2luOjpOZXZlcjoKKyAgICAgICAg
cmV0dXJuIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKyAgICBjYXNlIFNl
Y3VyaXR5T3JpZ2luOjpBc2s6CisgICAgICAgIHJldHVybiBtX2NsaWVudC0+Y2hlY2tQZXJtaXNz
aW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKIH0KIApAQCAtNjQsNiArNzUsMTggQEAgdm9pZCBOb3RpZmljYXRp
b25DZW50ZXI6OnJlcXVlc3RQZXJtaXNzaW9uKFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxs
YmFjaykKIHsKICAgICBpZiAoIWNsaWVudCgpIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CiAgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaCAoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5zZWN1cml0eU9yaWdpbigpLT5jYW5TaG93Tm90aWZpY2F0aW9ucygpKSB7CisgICAgY2FzZSBT
ZWN1cml0eU9yaWdpbjo6QWx3YXlzOgorICAgIGNhc2UgU2VjdXJpdHlPcmlnaW46Ok5ldmVyOiB7
CisgICAgICAgIG1fY2FsbGJhY2tzLmFkZChOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s6OmNy
ZWF0ZUFuZFN0YXJ0VGltZXIodGhpcywgY2FsbGJhY2spKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIFNlY3VyaXR5T3JpZ2luOjpBc2s6CisgICAgICAgIHJldHVybiBtX2NsaWVu
dC0+cmVxdWVzdFBlcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBjYWxsYmFjayk7
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgbV9jbGllbnQtPnJlcXVl
c3RQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgY2FsbGJhY2spOwogfQogCkBA
IC03OCw2ICsxMDEsMzYgQEAgdm9pZCBOb3RpZmljYXRpb25DZW50ZXI6OmRpc2Nvbm5lY3RGcmFt
ZSgpCiAgICAgbV9jbGllbnQgPSAwOwogfQogCit2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6cmVx
dWVzdFRpbWVkT3V0KE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxi
YWNrKiByZXF1ZXN0KQoreworICAgIG1fY2FsbGJhY2tzLnJlbW92ZShyZXF1ZXN0KTsKK30KKwor
UGFzc1JlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFj
az4gTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s6OmNyZWF0
ZUFuZFN0YXJ0VGltZXIoTm90aWZpY2F0aW9uQ2VudGVyKiBjZW50ZXIsIFBhc3NSZWZQdHI8Vm9p
ZENhbGxiYWNrPiBjYWxsYmFjaykKK3sKKyAgICBSZWZQdHI8Tm90aWZpY2F0aW9uQ2VudGVyOjpO
b3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+IHJlcXVlc3RDYWxsYmFjayA9IGFkb3B0UmVmKG5l
dyBOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayhjZW50ZXIs
IGNhbGxiYWNrKSk7CisgICAgcmVxdWVzdENhbGxiYWNrLT5zdGFydFRpbWVyKCk7CisgICAgcmV0
dXJuIHJlcXVlc3RDYWxsYmFjay5yZWxlYXNlKCk7Cit9CisKK05vdGlmaWNhdGlvbkNlbnRlcjo6
Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2so
Tm90aWZpY2F0aW9uQ2VudGVyKiBjZW50ZXIsIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPiBjYWxs
YmFjaykKKyAgICA6IG1fbm90aWZpY2F0aW9uQ2VudGVyKGNlbnRlcikKKyAgICAsIG1fdGltZXIo
dGhpcywgJk5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrOjp0
aW1lckZpcmVkKQorICAgICwgbV9jYWxsYmFjayhjYWxsYmFjaykKK3sKK30KKwordm9pZCBOb3Rp
ZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjazo6c3RhcnRUaW1lcigp
Cit7CisgICAgbV90aW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgTm90aWZpY2F0aW9u
Q2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s6OnRpbWVyRmlyZWQoVGltZXI8Tm90
aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+KikKK3sKKyAgICBt
X2NhbGxiYWNrLT5oYW5kbGVFdmVudCgpOworICAgIG1fbm90aWZpY2F0aW9uQ2VudGVyLT5yZXF1
ZXN0VGltZWRPdXQodGhpcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNl
bnRlci5oIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DZW50ZXIu
aAppbmRleCBhMDg0NTYwNTYxYTE0ZmIzZDM4NzdmNTM1NzBiZjcwZmU4ZTlhZDc5Li40ZWMyOWM1
MzI3OTVjNjI5ZWIzZDQ0NDQ5MzAyZTgxODRlZDcxNWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmgKQEAgLTM1LDYgKzM1LDggQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCisj
aW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTgz
LDcgKzg1LDIzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uQ2VudGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBOb3RpZmljYXRpb25DbGllbnQqKTsKIAorICAgIGNsYXNz
IE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNh
dGlvblJlcXVlc3RDYWxsYmFjaz4geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrPiBjcmVhdGVBbmRTdGFydFRpbWVyKE5v
dGlmaWNhdGlvbkNlbnRlciosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CisgICAgICAgIHZv
aWQgc3RhcnRUaW1lcigpOworICAgICAgICB2b2lkIHRpbWVyRmlyZWQoVGltZXI8Tm90aWZpY2F0
aW9uUmVxdWVzdENhbGxiYWNrPiopOworICAgIHByaXZhdGU6CisgICAgICAgIE5vdGlmaWNhdGlv
blJlcXVlc3RDYWxsYmFjayhOb3RpZmljYXRpb25DZW50ZXIqLCBQYXNzUmVmUHRyPFZvaWRDYWxs
YmFjaz4pOworCisgICAgICAgIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI+IG1fbm90aWZpY2F0
aW9uQ2VudGVyOworICAgICAgICBUaW1lcjxOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+IG1f
dGltZXI7CisgICAgICAgIFJlZlB0cjxWb2lkQ2FsbGJhY2s+IG1fY2FsbGJhY2s7CisgICAgfTsK
KworICAgIHZvaWQgcmVxdWVzdFRpbWVkT3V0KE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayop
OworCiAgICAgTm90aWZpY2F0aW9uQ2xpZW50KiBtX2NsaWVudDsKKyAgICBIYXNoU2V0PFJlZlB0
cjxOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+ID4gbV9jYWxsYmFja3M7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmlu
ZGV4IDE4ZTRmYTJmNzFlMDA3MTc2ZTUxMzFiMjBkYjc2NGRjZmExYzUxNzAuLmE1NDQ3MTZkNjUw
N2NhYzM0ODE0NWMxZTlmM2E0NGMzNmU5MGI2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwCkBAIC0zNTUsNiArMzU1LDE1IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNh
bkRpc3BsYXkoY29uc3QgS1VSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCitT
ZWN1cml0eU9yaWdpbjo6UG9saWN5IFNlY3VyaXR5T3JpZ2luOjpjYW5TaG93Tm90aWZpY2F0aW9u
cygpIGNvbnN0Cit7CisgICAgaWYgKG1fdW5pdmVyc2FsQWNjZXNzKQorICAgICAgICByZXR1cm4g
QWx3YXlzOworICAgIGlmIChpc1VuaXF1ZSgpKQorICAgICAgICByZXR1cm4gTmV2ZXI7CisgICAg
cmV0dXJuIEFzazsKK30KKwogdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRMb2FkTG9jYWxSZXNv
dXJjZXMoKQogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgdG8gc3VwcG9ydCBi
YWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyCkBAIC0zODYsMTIgKzM5NSwxNSBAQCBT
dHJpbmcgU2VjdXJpdHlPcmlnaW46OnRvU3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAoaXNVbmlx
dWUoKSkKICAgICAgICAgcmV0dXJuICJudWxsIjsKKyAgICBpZiAobV9wcm90b2NvbCA9PSAiZmls
ZSIgJiYgbV9lbmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uKQorICAgICAgICByZXR1cm4gIm51bGwi
OworICAgIHJldHVybiB0b1Jhd1N0cmluZygpOworfQogCi0gICAgaWYgKG1fcHJvdG9jb2wgPT0g
ImZpbGUiKSB7Ci0gICAgICAgIGlmIChtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb24pCi0gICAg
ICAgICAgICByZXR1cm4gIm51bGwiOworU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjp0b1Jhd1N0cmlu
ZygpIGNvbnN0Cit7CisgICAgaWYgKG1fcHJvdG9jb2wgPT0gImZpbGUiKQogICAgICAgICByZXR1
cm4gImZpbGU6Ly8iOwotICAgIH0KIAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJl
c3VsdC5yZXNlcnZlQ2FwYWNpdHkobV9wcm90b2NvbC5sZW5ndGgoKSArIG1faG9zdC5sZW5ndGgo
KSArIDEwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA0NWE4YTFhNTMz
YjE1MGYwODBkOTQxOTgxMTZiMDY2NDFjYTNhZDI3Li5mNTU5M2JiNGRmMzY4ZDU3MDY3ODI5ZDM0
NTc1YThjYzczY2RlNGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5
T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC02
MSw2ICs2MSwxMiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRvbWFpbigpIGNvbnN0IHsgcmV0dXJu
IG1fZG9tYWluOyB9CiAgICAgdW5zaWduZWQgc2hvcnQgcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1f
cG9ydDsgfQogCisgICAgZW51bSBQb2xpY3kgeworICAgICAgICBOZXZlciA9IDAsCisgICAgICAg
IEFsd2F5cywKKyAgICAgICAgQXNrLAorICAgIH07CisKICAgICAvLyBSZXR1cm5zIHRydWUgaWYg
dGhpcyBTZWN1cml0eU9yaWdpbiBjYW4gc2NyaXB0IG9iamVjdHMgaW4gdGhlIGdpdmVuCiAgICAg
Ly8gU2VjdXJpdHlPcmlnaW4uIEZvciBleGFtcGxlLCBjYWxsIHRoaXMgZnVuY3Rpb24gYmVmb3Jl
IGFsbG93aW5nCiAgICAgLy8gc2NyaXB0IGZyb20gb25lIHNlY3VyaXR5IG9yaWdpbiB0byByZWFk
IG9yIHdyaXRlIG9iamVjdHMgZnJvbQpAQCAtMTE1LDYgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGNhbkFjY2Vzc0Nvb2tpZXMoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQogICAg
IGJvb2wgY2FuQWNjZXNzUGFzc3dvcmRNYW5hZ2VyKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVl
KCk7IH0KICAgICBib29sIGNhbkFjY2Vzc0ZpbGVTeXN0ZW0oKSBjb25zdCB7IHJldHVybiAhaXNV
bmlxdWUoKTsgfQorICAgIFBvbGljeSBjYW5TaG93Tm90aWZpY2F0aW9ucygpIGNvbnN0OwogCiAg
ICAgLy8gVGVjaG5pY2FsbHksIHdlIHNob3VsZCBhbHdheXMgYWxsb3cgYWNjZXNzIHRvIHNlc3Np
b25TdG9yYWdlLCBidXQgd2UKICAgICAvLyBjdXJyZW50bHkgZG9uJ3QgaGFuZGxlIGNyZWF0aW5n
IGEgc2Vzc2lvblN0b3JhZ2UgYXJlYSBmb3IgdW5pcXVlCkBAIC0xMzUsNiArMTQyLDggQEAgcHVi
bGljOgogICAgIGJvb2wgaXNVbmlxdWUoKSBjb25zdCB7IHJldHVybiBtX2lzVW5pcXVlOyB9CiAK
ICAgICAvLyBNYXJrcyBhIGZpbGU6Ly8gb3JpZ2luIGFzIGJlaW5nIGluIGEgZG9tYWluIGRlZmlu
ZWQgYnkgaXRzIHBhdGguCisgICAgLy8gRklYTUUgODE1Nzg6IFRoZSBuYW1pbmcgb2YgdGhpcyBp
cyBjb25mdXNpbmcuIEZpbGVzIHdpdGggcmVzdHJpY3RlZCBhY2Nlc3MgdG8gb3RoZXIgbG9jYWwg
ZmlsZXMKKyAgICAvLyBzdGlsbCBjYW4gaGF2ZSBvdGhlciBwcml2aWxlZ2VzIHRoYXQgY2FuIGJl
IHJlbWVtYmVyZWQsIHRoZXJlYnkgbm90IG1ha2luZyB0aGVtIHVuaXF1ZS4KICAgICB2b2lkIGVu
Zm9yY2VGaWxlUGF0aFNlcGFyYXRpb24oKTsKIAogICAgIC8vIENvbnZlcnQgdGhpcyBTZWN1cml0
eU9yaWdpbiBpbnRvIGEgc3RyaW5nLiBUaGUgc3RyaW5nCkBAIC0xNDksNiArMTU4LDEwIEBAIHB1
YmxpYzoKICAgICAvLyB3ZSBzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MuCiAgICAgU3Ry
aW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAKKyAgICAvLyBTaW1pbGFyIHRvIHRvU3RyaW5nKCksIGJ1
dCBkb2VzIG5vdCB0YWtlIGludG8gYWNjb3VudCBhbnkgZmFjdG9ycyB0aGF0CisgICAgLy8gY291
bGQgbWFrZSB0aGUgc3RyaW5nIHJldHVybiAibnVsbCIuCisgICAgU3RyaW5nIHRvUmF3U3RyaW5n
KCkgY29uc3Q7CisKICAgICAvLyBTZXJpYWxpemUgdGhlIHNlY3VyaXR5IG9yaWdpbiB0byBhIHN0
cmluZyB0aGF0IGNvdWxkIGJlIHVzZWQgYXMgcGFydCBvZgogICAgIC8vIGZpbGUgbmFtZXMuIFRo
aXMgZm9ybWF0IHNob3VsZCBiZSB1c2VkIGluIHN0b3JhZ2UgQVBJcyBvbmx5LgogICAgIFN0cmlu
ZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcAppbmRleCA4ZGFmNTI1MDFiNTc2NzdmMDE4ZTgxYjAxOTUyYTA4ZTYzM2U1N2ZjLi45
NGZiYzBkNWQ2MWZhMDIxOGM1YmI0NjEzMmY2OGVlMmEwYzA5ZDM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC05Niw3ICs5Niw3IEBAIE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpwb2xpY3lGb3JPcmlnaW4oV2Vi
Q29yZTo6CiAgICAgaWYgKCFvcmlnaW4pCiAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb25Ob3RBbGxvd2VkOwogICAgIAotICAgIEhhc2hNYXA8U3RyaW5nLCBib29s
Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX3Blcm1pc3Npb25zTWFwLmZpbmQob3JpZ2luLT50b1N0
cmluZygpKTsKKyAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
bV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9SYXdTdHJpbmcoKSk7CiAgICAgaWYgKGl0
ICE9IG1fcGVybWlzc2lvbnNNYXAuZW5kKCkpCiAgICAgICAgIHJldHVybiBpdC0+c2Vjb25kID8g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCA6IE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbkRlbmllZDsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132933</attachid>
            <date>2012-03-20 17:04:27 -0700</date>
            <delta_ts>2012-03-27 13:16:29 -0700</delta_ts>
            <desc>Rename enums to try to fix GTK</desc>
            <filename>bug-79704-20120320170541.patch</filename>
            <type>text/plain</type>
            <size>17676</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiMWZmOGI1NWVlOTg2
OWIyM2E0OTlmZjJlOGMzNjAyYWNhYWEyYy4uZjZhNTA3NTdkZGJkYWI1OTlmMDAxNzI5NDk4YjJh
Nzc4MmQyY2M0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTAzLTIwICBKb24g
TGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBhY2Nlc3MgdG8gbm90
aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3aXRoIG5vIGxvY2Fs
IGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBCZWZvcmUgY2hlY2tpbmcgb3IgcmVx
dWVzdGluZyBwZXJtaXNzaW9ucywgd2UgbG9vayBhdCB3aGV0aGVyIHdlIGNhbiBzaG93IG5vdGlm
aWNhdGlvbnMgYmFzZWQgb24KKyAgICAgICAgdGhlIHNlY3VyaXR5IGNvbnRleHQuIElmIG5vdCwg
d2Ugc2hvcnQgY2lyY3VpdCBhbmQgZG8gbm90IGZvcndhcmQgdGhlIHJlcXVlc3QgdG8gdGhlIGNs
aWVudC4KKworICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKTogRml4IGEgYnVnIHdoZXJl
IGNyZWF0aW5nIGEgbm90aWZpY2F0aW9uIGdvZXMgdGhyb3VnaCBzbGlnaHRseQorICAgICAgICBk
aWZmZXJlbnQgbG9naWMgZm9yIGNoZWNraW5nIHBlcm1pc3Npb25zIHRoYW4gd2hlbiBjaGVja2lu
ZyBwZXJtaXNzaW9ucyB0aHJvdWdoIHRoZQorICAgICAgICBub3RpZmljYXRpb24gY2VudGVyLgor
ICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6Y2hlY2tQZXJtaXNzaW9uKTogQ2hlY2sgdG8g
c2VlIGlmIHRoZSBvcmlnaW4gY2FuIHNob3cgbm90aWZpY2F0aW9ucy4KKyAgICAgICAgKFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFBlcm1pc3Npb24pOiBJZiB3ZSBrbm93IHdo
ZXRoZXIgYW4gb3JpZ2luIGNhbiBzaG93IG5vdGlmaWNhdGlvbnMsCisgICAgICAgIHdlIGFzeW5j
aHJvbm91c2x5IGNhbGwgdGhlIGNhbGxiYWNrIHdpdGggdGhhdCBkZWNpc2lvbi4gT3RoZXJ3aXNl
IHdlIGFzayB0aGUgY2xpZW50LgorCisgICAgICAgIEFkZCBuZXcgdmFyaWFibGUgaW4gdGhlIG5v
dGlmaWNhdGlvbiBjZW50ZXIgdG8ga2VlcCB0cmFjayBvZiBwZW5kaW5nIGNhbGxiYWNrcyB3aGVu
IHdlIHNob3J0LWNpcmN1aXQKKyAgICAgICAgcmVxdWVzdFBlcm1pc3Npb24oKS4KKyAgICAgICAg
KiBub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oOgorICAgICAgICAoTm90aWZpY2F0
aW9uUmVxdWVzdENhbGxiYWNrKTogQWRkIG5ldyBwcml2YXRlIGNsYXNzIGVuY2Fwc3VsYXRpbmcg
dGhlIGNhbGxiYWNrLgorICAgICAgICAqIG5vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFRpbWVk
T3V0KTogUmVtb3ZlIHRoZSByZXF1ZXN0IGZyb20gdGhlIHNldCBvZiBwZW5kaW5nIGNhbGxiYWNr
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVx
dWVzdDo6Y3JlYXRlQW5kU3RhcnRUaW1lcik6IEJlY2F1c2UgdGhpcyBpcyB1c2VkIHdoZW4gd2Ug
YWxyZWFkeQorICAgICAgICBrbm93IHRoZSBkZWNpc2lvbiwgYW5kIGFyZSBub3QgYXNraW5nIHRo
ZSBjbGllbnQgdG8gZGVjaWRlLCB3ZSBjYW4gaW1tZWRpYXRlbHkgdHJpZ2dlciBhIG9uZS1zaG90
IHRpbWVyCisgICAgICAgIHRvIGludm9rZSB0aGUgY2FsbGJhY2suCisgICAgICAgIChXZWJDb3Jl
OjpOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3Q6Ok5vdGlmaWNhdGlvblJl
cXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRp
b25SZXF1ZXN0OjpzdGFydFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNl
bnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdDo6dGltZXJGaXJlZCk6IEludm9rZSB0aGUgY2FsbGJh
Y2sgYW5kIHRlbGwgdGhlIG5vdGlmaWNhdGlvbgorICAgICAgICBjZW50ZXIuCisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbi5oOiBBZGQgbmV3IHRvUmF3U3RyaW5nKCkgbWV0aG9kIHRvIHJl
dHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvcmlnaW4sCisgICAgICAgIHJl
Z2FyZGxlc3Mgb2YgYW55IHJlc3RyaWN0aW9ucyB0aGF0IG1pZ2h0IG90aGVyd2lzZSBjYXVzZSB0
b1N0cmluZygpIHRvIHJldHVybiAibnVsbCIuCisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuU2hvd05vdGlmaWNh
dGlvbnMpOiBBZGRlZCB0byByZXR1cm4gYSB0cmktc3RhdGUgcmVnYXJkaW5nIHdoZXRoZXIgd2Ug
a25vdworICAgICAgICB0aGUgb3JpZ2luIGNhbiBzaG93IG5vdGlmaWNhdGlvbnMuIElmIHRoZSBv
cmlnaW4gaXMgdW5pcXVlLCB3ZSBuZXZlciBsZXQgaXQgc2hvdy4gSWYgdGhlIG9yaWdpbiBoYXMK
KyAgICAgICAgdW5pdmVyc2FsIGFjY2Vzcywgd2UgYWx3YXlzIGxldCBpdCBzaG93LiBPdGhlcndp
c2UgdGhlIGNsaWVudCBzaG91bGQgYmUgYXNrZWQuCisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbjo6dG9TdHJpbmcpOiBSZWZhY3RvciB0byB1c2UgdG9SYXdTdHJpbmcoKS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjp0b1Jhd1N0cmluZyk6CisKKyAgICAgICAgQWRk
ZWQgRklYTUUncyByZWdhcmRpbmcgdGhlIG5hbWluZyBvZiBlbmZvcmNlRmlsZVBhdGhTZXBhcmF0
aW9uKCkuCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KTogQWxzbywgdGFiIHJlZm9ybWF0dGluZy4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOiBFeHBvcnQgdG9SYXdTdHJpbmcoKS4KKwogMjAxMi0w
My0yMCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IHVudXNlZCBDU1NQcmltaXRpdmVWYWx1ZSBjb25zdHJ1Y3RvcnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjlj
YTRlNDQ1MTkxMWRkZjZkMTIzYjZlOThhMDU3OTA0MGEzNGE3MS4uY2I2ZGJhNzFkNDMxNDQ5ZGY1
OTE2MWMxMGRiMzRlNDEyNWE3NTgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEy
LTAzLTIwICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN0cmljdCBh
Y2Nlc3MgdG8gbm90aWZpY2F0aW9ucyBmb3IgdW5pcXVlIG9yaWdpbnMgYW5kIGZpbGUgVVJMcyB3
aXRoIG5vIGxvY2FsIGZpbGUgYWNjZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03OTcwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTA5MTI0MzA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBJbiB0aGUgc3Bl
Y2lmaWMgY2FzZSB3aGVyZSBhIGZpbGUgVVJMIGhhcyByZXN0cmljdGVkIGZpbGUgYWNjZXNzIGFu
ZCBpcyBkZW5pZWQgdW5pdmVyc2FsIGFjY2VzcywKKyAgICAgICAgU2VjdXJpdHlPcmlnaW46OmNh
blNob3dOb3RpZmljYXRpb25zKCkgcmV0dXJucyBBc2ssIHNpbmNlIGl0IGlzIG5vdCBjb25zaWRl
cmVkIGEgdW5pcXVlIG9yaWdpbi4KKyAgICAgICAgVGhlIGNhY2hlZCB0YWJsZSBvZiBwZXJtaXNz
aW9ucyBoZWxkIGJ5IHRoZSBub3RpZmljYXRpb24gbWFuYWdlciB3aWxsIHR5cGljYWxseSBub3Qg
aGF2ZSBhbiBlbnRyeSBmb3IKKyAgICAgICAgdGhlIHRvU3RyaW5nKCkgcmVwcmVzZW50YXRpb24g
b2YgdGhlc2UgZmlsZSBVUkxzLCB3aGljaCBpcyAibnVsbCIsIHNpbmNlIHRoYXQgY2FuIGFsc28g
Y292ZXIgdW5pcXVlCisgICAgICAgIG9yaWdpbnMsIGFuZCBpdCBpcyBwb3NzaWJsZSB0aGF0IHRo
ZSBjbGllbnQgd2lsbCB3YW50IGRpZmZlcmVudCBwZXJtaXNzaW9ucyBiZXR3ZWVuIHRoZSB0d28g
dHlwZXMuCisKKyAgICAgICAgSXQgaXMgcmVhc29uYWJsZSwgaG93ZXZlciwgZm9yIHRoZXJlIHRv
IGJlIGFuIGVudHJ5IGZvciAiZmlsZTovLyIsIHNvIHdlIHVzZSB0b1Jhd1N0cmluZygpIHRvIGRv
IHRoZSBsb29rdXAuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1h
bmFnZXI6OnBvbGljeUZvck9yaWdpbik6CisKIDIwMTItMDMtMjAgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUHJvY2VzcyBzaG91bGQgdXNlIHByaXZh
dGUgdGVtcG9yYXJ5IGFuZCBjYWNoZSBkaXJlY3RvcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCBjNmM3YTA4MzhlMmZkZDg2NDViYmQzM2I5NDNkMmUzZmQ0YTNkNzQ3Li5jMTc4MWEyN2M2ZTg3
NTVkNzc3Yzg5ZDg5NjA3YjFhMTY5YTE1YjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTI4
Myw2ICsxMjgzLDcgQEAgX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyMm1vdXNlRXhpdGVk
Q29udGVudEFyZWFFdgogX19aTks3V2ViQ29yZTE0U2Nyb2xsYWJsZUFyZWEyM21vdXNlRW50ZXJl
ZENvbnRlbnRBcmVhRXYKIF9fWk5LN1dlYkNvcmUxNFNjcm9sbGFibGVBcmVhMjNtb3VzZU1vdmVk
SW5Db250ZW50QXJlYUV2CiBfX1pOSzdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjEwY2FuRGlzcGxh
eUVSS05TXzRLVVJMRQorX19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xMXRvUmF3U3RyaW5n
RXYKIF9fWk5LN1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMThkYXRhYmFzZUlkZW50aWZpZXJFdgog
X19aTks3V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW41ZXF1YWxFUEtTMF8KIF9fWk5LN1dlYkNvcmUx
NFNlY3VyaXR5T3JpZ2luOHRvU3RyaW5nRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGU3
NWM5ZDNkN2I2ZDRhNmFkMzM4MDY0Y2Y2ZTAyNzhkZTk4ODhhYTEuLjFkODFkMTVmNzA0NDQ2NGQ2
Yzg0NjQ4M2IyZDVlMjgxMmIxNTg0MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDcx
NywxOSArNDcxNywyMCBAQCB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKIAog
ICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSB0aGlzLT5zZXR0aW5ncygpKSB7CiAgICAgICAg
IGlmICghc2V0dGluZ3MtPmlzV2ViU2VjdXJpdHlFbmFibGVkKCkpIHsKLSAgICAgICAgICAvLyBX
ZWIgc2VjdXJpdHkgaXMgdHVybmVkIG9mZi4gIFdlIHNob3VsZCBsZXQgdGhpcyBkb2N1bWVudCBh
Y2Nlc3MgZXZlcnkKLSAgICAgICAgICAvLyBvdGhlciBkb2N1bWVudC4gIFRoaXMgaXMgdXNlZCBw
cmltYXJ5IGJ5IHRlc3RpbmcgaGFybmVzc2VzIGZvciB3ZWIKLSAgICAgICAgICAvLyBzaXRlcy4K
LSAgICAgICAgICBzZWN1cml0eU9yaWdpbigpLT5ncmFudFVuaXZlcnNhbEFjY2VzcygpOwotCisg
ICAgICAgICAgICAvLyBXZWIgc2VjdXJpdHkgaXMgdHVybmVkIG9mZi4gV2Ugc2hvdWxkIGxldCB0
aGlzIGRvY3VtZW50IGFjY2VzcyBldmVyeQorICAgICAgICAgICAgLy8gb3RoZXIgZG9jdW1lbnQu
IFRoaXMgaXMgdXNlZCBwcmltYXJ5IGJ5IHRlc3RpbmcgaGFybmVzc2VzIGZvciB3ZWIKKyAgICAg
ICAgICAgIC8vIHNpdGVzLgorICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+Z3JhbnRVbml2
ZXJzYWxBY2Nlc3MoKTsKICAgICAgICAgfSBlbHNlIGlmIChzZXR0aW5ncy0+YWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMoKSAmJiBzZWN1cml0eU9yaWdpbigpLT5pc0xvY2FsKCkpIHsK
LSAgICAgICAgICAvLyBTb21lIGNsaWVudHMgd2FudCBmaWxlOi8vIFVSTHMgdG8gaGF2ZSB1bml2
ZXJzYWwgYWNjZXNzLCBidXQgdGhhdAotICAgICAgICAgIC8vIHNldHRpbmcgaXMgZGFuZ2Vyb3Vz
IGZvciBvdGhlciBjbGllbnRzLgotICAgICAgICAgIHNlY3VyaXR5T3JpZ2luKCktPmdyYW50VW5p
dmVyc2FsQWNjZXNzKCk7CisgICAgICAgICAgICAvLyBTb21lIGNsaWVudHMgd2FudCBmaWxlOi8v
IFVSTHMgdG8gaGF2ZSB1bml2ZXJzYWwgYWNjZXNzLCBidXQgdGhhdAorICAgICAgICAgICAgLy8g
c2V0dGluZyBpcyBkYW5nZXJvdXMgZm9yIG90aGVyIGNsaWVudHMuCisgICAgICAgICAgICBzZWN1
cml0eU9yaWdpbigpLT5ncmFudFVuaXZlcnNhbEFjY2VzcygpOwogICAgICAgICB9IGVsc2UgaWYg
KCFzZXR0aW5ncy0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCkgJiYgc2VjdXJpdHlPcmln
aW4oKS0+aXNMb2NhbCgpKSB7Ci0gICAgICAgICAgLy8gU29tZSBjbGllbnRzIHdhbnQgZmlsZTov
LyBVUkxzIHRvIGhhdmUgZXZlbiB0aWdodGVyIHJlc3RyaWN0aW9ucyBieQotICAgICAgICAgIC8v
IGRlZmF1bHQsIGFuZCBub3QgYmUgYWJsZSB0byBhY2Nlc3Mgb3RoZXIgbG9jYWwgZmlsZXMuCi0g
ICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+ZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbigpOwor
ICAgICAgICAgICAgLy8gU29tZSBjbGllbnRzIHdhbnQgZmlsZTovLyBVUkxzIHRvIGhhdmUgZXZl
biB0aWdodGVyIHJlc3RyaWN0aW9ucyBieQorICAgICAgICAgICAgLy8gZGVmYXVsdCwgYW5kIG5v
dCBiZSBhYmxlIHRvIGFjY2VzcyBvdGhlciBsb2NhbCBmaWxlcy4KKyAgICAgICAgICAgIC8vIEZJ
WE1FIDgxNTc4OiBUaGUgbmFtaW5nIG9mIHRoaXMgaXMgY29uZnVzaW5nLiBGaWxlcyB3aXRoIHJl
c3RyaWN0ZWQgYWNjZXNzIHRvIG90aGVyIGxvY2FsIGZpbGVzCisgICAgICAgICAgICAvLyBzdGls
bCBjYW4gaGF2ZSBvdGhlciBwcml2aWxlZ2VzIHRoYXQgY2FuIGJlIHJlbWVtYmVyZWQsIHRoZXJl
Ynkgbm90IG1ha2luZyB0aGVtIHVuaXF1ZSBvcmlnaW5zLgorICAgICAgICAgICAgc2VjdXJpdHlP
cmlnaW4oKS0+ZW5mb3JjZUZpbGVQYXRoU2VwYXJhdGlvbigpOwogICAgICAgICB9CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXgg
MDNjODI0NDcwY2E1MDVjZDViMDQyYmVkMzQ1YjJiMmRjZmMwNjM3Yy4uMjk4YzQwZTFjYTRkYTlk
YjEyYzU1ZGE1MGJmZjUyNDliNjMwMzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcApAQCAtNTgsOCArNTgsNyBAQCBOb3RpZmljYXRpb246Ok5v
dGlmaWNhdGlvbihjb25zdCBLVVJMJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIEV4YwogICAgICwgbV9zdGF0ZShJZGxlKQogICAgICwgbV9ub3RpZmljYXRpb25DZW50ZXIo
cHJvdmlkZXIpCiB7Ci0gICAgQVNTRVJUKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKSk7
Ci0gICAgaWYgKG1fbm90aWZpY2F0aW9uQ2VudGVyLT5jbGllbnQoKS0+Y2hlY2tQZXJtaXNzaW9u
KGNvbnRleHQpICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQpIHsKKyAg
ICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNoZWNrUGVybWlzc2lvbigpICE9IE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkFsbG93ZWQpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC04MCw4ICs3OSw3IEBAIE5vdGlmaWNhdGlv
bjo6Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwg
Y29uc3QgU3RyaW5nCiAgICAgLCBtX3N0YXRlKElkbGUpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNl
bnRlcihwcm92aWRlcikKIHsKLSAgICBBU1NFUlQobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVu
dCgpKTsKLSAgICBpZiAobV9ub3RpZmljYXRpb25DZW50ZXItPmNsaWVudCgpLT5jaGVja1Blcm1p
c3Npb24oY29udGV4dCkgIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkg
eworICAgIGlmIChtX25vdGlmaWNhdGlvbkNlbnRlci0+Y2hlY2tQZXJtaXNzaW9uKCkgIT0gTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uQWxsb3dlZCkgewogICAgICAgICBlYyA9IFNFQ1VS
SVRZX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmNwcAppbmRleCAyZjJkN2Q2YTdjZjAy
NzhkNzM5YTk4ZTg1MGQ5YmFiYjM0MjM5ZjdiLi5iY2NiMzI3NzYwYzgwYzhjZWZjY2FkYTUyNGEx
ZWFhZTZhODA3NjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBACiAKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgotI2luY2x1ZGUgIlZvaWRD
YWxsYmFjay5oIgorI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV29ya2Vy
Q29udGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01Nyw2ICs1NywxNyBAQCBpbnQg
Tm90aWZpY2F0aW9uQ2VudGVyOjpjaGVja1Blcm1pc3Npb24oKQogewogICAgIGlmICghY2xpZW50
KCkgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbkRlbmllZDsKKworICAgIHN3aXRjaCAoc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5TaG93Tm90aWZpY2F0aW9ucygpKSB7
CisgICAgY2FzZSBTZWN1cml0eU9yaWdpbjo6QWx3YXlzQWxsb3c6CisgICAgICAgIHJldHVybiBO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25BbGxvd2VkOworICAgIGNhc2UgU2VjdXJpdHlP
cmlnaW46OkFsd2F5c0Rlbnk6CisgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb25EZW5pZWQ7CisgICAgY2FzZSBTZWN1cml0eU9yaWdpbjo6QXNrOgorICAgICAgICBy
ZXR1cm4gbV9jbGllbnQtPmNoZWNrUGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBtX2NsaWVu
dC0+Y2hlY2tQZXJtaXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKQEAgLTY0
LDYgKzc1LDE4IEBAIHZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0UGVybWlzc2lvbihQ
YXNzUmVmUHRyPFZvaWRDYWxsYmFjaz4gY2FsbGJhY2spCiB7CiAgICAgaWYgKCFjbGllbnQoKSB8
fCAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47CisKKyAgICBzd2l0
Y2ggKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuU2hvd05v
dGlmaWNhdGlvbnMoKSkgeworICAgIGNhc2UgU2VjdXJpdHlPcmlnaW46OkFsd2F5c0FsbG93Ogor
ICAgIGNhc2UgU2VjdXJpdHlPcmlnaW46OkFsd2F5c0Rlbnk6IHsKKyAgICAgICAgbV9jYWxsYmFj
a3MuYWRkKE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjazo6Y3JlYXRlQW5kU3RhcnRUaW1lcih0
aGlzLCBjYWxsYmFjaykpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgU2VjdXJp
dHlPcmlnaW46OkFzazoKKyAgICAgICAgcmV0dXJuIG1fY2xpZW50LT5yZXF1ZXN0UGVybWlzc2lv
bihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGNhbGxiYWNrKTsKKyAgICB9CisKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICBtX2NsaWVudC0+cmVxdWVzdFBlcm1pc3Npb24oc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBjYWxsYmFjayk7CiB9CiAKQEAgLTc4LDYgKzEwMSwzNiBAQCB2
b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6ZGlzY29ubmVjdEZyYW1lKCkKICAgICBtX2NsaWVudCA9
IDA7CiB9CiAKK3ZvaWQgTm90aWZpY2F0aW9uQ2VudGVyOjpyZXF1ZXN0VGltZWRPdXQoTm90aWZp
Y2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2sqIHJlcXVlc3QpCit7Cisg
ICAgbV9jYWxsYmFja3MucmVtb3ZlKHJlcXVlc3QpOworfQorCitQYXNzUmVmUHRyPE5vdGlmaWNh
dGlvbkNlbnRlcjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrPiBOb3RpZmljYXRpb25DZW50
ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjazo6Y3JlYXRlQW5kU3RhcnRUaW1lcihOb3Rp
ZmljYXRpb25DZW50ZXIqIGNlbnRlciwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNr
KQoreworICAgIFJlZlB0cjxOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlvblJlcXVlc3RD
YWxsYmFjaz4gcmVxdWVzdENhbGxiYWNrID0gYWRvcHRSZWYobmV3IE5vdGlmaWNhdGlvbkNlbnRl
cjo6Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrKGNlbnRlciwgY2FsbGJhY2spKTsKKyAgICBy
ZXF1ZXN0Q2FsbGJhY2stPnN0YXJ0VGltZXIoKTsKKyAgICByZXR1cm4gcmVxdWVzdENhbGxiYWNr
LnJlbGVhc2UoKTsKK30KKworTm90aWZpY2F0aW9uQ2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0
Q2FsbGJhY2s6Ok5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjayhOb3RpZmljYXRpb25DZW50ZXIq
IGNlbnRlciwgUGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+IGNhbGxiYWNrKQorICAgIDogbV9ub3Rp
ZmljYXRpb25DZW50ZXIoY2VudGVyKQorICAgICwgbV90aW1lcih0aGlzLCAmTm90aWZpY2F0aW9u
Q2VudGVyOjpOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s6OnRpbWVyRmlyZWQpCisgICAgLCBt
X2NhbGxiYWNrKGNhbGxiYWNrKQoreworfQorCit2b2lkIE5vdGlmaWNhdGlvbkNlbnRlcjo6Tm90
aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrOjpzdGFydFRpbWVyKCkKK3sKKyAgICBtX3RpbWVyLnN0
YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBOb3RpZmljYXRpb25DZW50ZXI6Ok5vdGlmaWNhdGlv
blJlcXVlc3RDYWxsYmFjazo6dGltZXJGaXJlZChUaW1lcjxOb3RpZmljYXRpb25DZW50ZXI6Ok5v
dGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjaz4qKQoreworICAgIG1fY2FsbGJhY2stPmhhbmRsZUV2
ZW50KCk7CisgICAgbV9ub3RpZmljYXRpb25DZW50ZXItPnJlcXVlc3RUaW1lZE91dCh0aGlzKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNB
VElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNlbnRlci5oCmluZGV4IGEwODQ1NjA1NjFh
MTRmYjNkMzg3N2Y1MzU3MGJmNzBmZThlOWFkNzkuLjRlYzI5YzUzMjc5NWM2MjllYjNkNDQ0NDkz
MDJlODE4NGVkNzE1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25DZW50ZXIuaApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlICJWb2lkQ2FsbGJh
Y2suaCIKICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtODMsNyArODUsMjMgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBOb3RpZmljYXRpb25DZW50ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIE5vdGlmaWNhdGlvbkNsaWVudCopOwogCisgICAgY2xhc3MgTm90aWZpY2F0aW9uUmVxdWVz
dENhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNr
PiB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxOb3RpZmljYXRpb25S
ZXF1ZXN0Q2FsbGJhY2s+IGNyZWF0ZUFuZFN0YXJ0VGltZXIoTm90aWZpY2F0aW9uQ2VudGVyKiwg
UGFzc1JlZlB0cjxWb2lkQ2FsbGJhY2s+KTsKKyAgICAgICAgdm9pZCBzdGFydFRpbWVyKCk7Cisg
ICAgICAgIHZvaWQgdGltZXJGaXJlZChUaW1lcjxOb3RpZmljYXRpb25SZXF1ZXN0Q2FsbGJhY2s+
Kik7CisgICAgcHJpdmF0ZToKKyAgICAgICAgTm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrKE5v
dGlmaWNhdGlvbkNlbnRlciosIFBhc3NSZWZQdHI8Vm9pZENhbGxiYWNrPik7CisKKyAgICAgICAg
UmVmUHRyPE5vdGlmaWNhdGlvbkNlbnRlcj4gbV9ub3RpZmljYXRpb25DZW50ZXI7CisgICAgICAg
IFRpbWVyPE5vdGlmaWNhdGlvblJlcXVlc3RDYWxsYmFjaz4gbV90aW1lcjsKKyAgICAgICAgUmVm
UHRyPFZvaWRDYWxsYmFjaz4gbV9jYWxsYmFjazsKKyAgICB9OworCisgICAgdm9pZCByZXF1ZXN0
VGltZWRPdXQoTm90aWZpY2F0aW9uUmVxdWVzdENhbGxiYWNrKik7CisKICAgICBOb3RpZmljYXRp
b25DbGllbnQqIG1fY2xpZW50OworICAgIEhhc2hTZXQ8UmVmUHRyPE5vdGlmaWNhdGlvblJlcXVl
c3RDYWxsYmFjaz4gPiBtX2NhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggMThlNGZhMmY3MWUwMDcx
NzZlNTEzMWIyMGRiNzY0ZGNmYTFjNTE3MC4uM2YyZjA5M2JmNTVmYWViZjA1YTNlYmE2NTBlZjVk
ZDU2NTE3ODg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTM1
NSw2ICszNTUsMTUgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheShjb25zdCBLVVJM
JiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1NlY3VyaXR5T3JpZ2luOjpQb2xp
Y3kgU2VjdXJpdHlPcmlnaW46OmNhblNob3dOb3RpZmljYXRpb25zKCkgY29uc3QKK3sKKyAgICBp
ZiAobV91bml2ZXJzYWxBY2Nlc3MpCisgICAgICAgIHJldHVybiBBbHdheXNBbGxvdzsKKyAgICBp
ZiAoaXNVbmlxdWUoKSkKKyAgICAgICAgcmV0dXJuIEFsd2F5c0Rlbnk7CisgICAgcmV0dXJuIEFz
azsKK30KKwogdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRMb2FkTG9jYWxSZXNvdXJjZXMoKQog
ewogICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIG9ubHkgdG8gc3VwcG9ydCBiYWNrd2FyZHMg
Y29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyCkBAIC0zODYsMTIgKzM5NSwxNSBAQCBTdHJpbmcgU2Vj
dXJpdHlPcmlnaW46OnRvU3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAoaXNVbmlxdWUoKSkKICAg
ICAgICAgcmV0dXJuICJudWxsIjsKKyAgICBpZiAobV9wcm90b2NvbCA9PSAiZmlsZSIgJiYgbV9l
bmZvcmNlRmlsZVBhdGhTZXBhcmF0aW9uKQorICAgICAgICByZXR1cm4gIm51bGwiOworICAgIHJl
dHVybiB0b1Jhd1N0cmluZygpOworfQogCi0gICAgaWYgKG1fcHJvdG9jb2wgPT0gImZpbGUiKSB7
Ci0gICAgICAgIGlmIChtX2VuZm9yY2VGaWxlUGF0aFNlcGFyYXRpb24pCi0gICAgICAgICAgICBy
ZXR1cm4gIm51bGwiOworU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjp0b1Jhd1N0cmluZygpIGNvbnN0
Cit7CisgICAgaWYgKG1fcHJvdG9jb2wgPT0gImZpbGUiKQogICAgICAgICByZXR1cm4gImZpbGU6
Ly8iOwotICAgIH0KIAogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHJlc3VsdC5yZXNl
cnZlQ2FwYWNpdHkobV9wcm90b2NvbC5sZW5ndGgoKSArIG1faG9zdC5sZW5ndGgoKSArIDEwKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA0NWE4YTFhNTMzYjE1MGYwODBk
OTQxOTgxMTZiMDY2NDFjYTNhZDI3Li5kN2I5YWE0ZDk3ZDhlZjVlZGQ0M2RlYzhiMzIzMjA1N2Zk
YWIyNmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0zOSw2ICszOSwx
MiBAQCBjbGFzcyBLVVJMOwogCiBjbGFzcyBTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxTZWN1cml0eU9yaWdpbj4gewogcHVibGljOgorICAgIGVudW0gUG9saWN5
IHsKKyAgICAgICAgQWx3YXlzRGVueSA9IDAsCisgICAgICAgIEFsd2F5c0FsbG93LAorICAgICAg
ICBBc2sKKyAgICB9OworCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNy
ZWF0ZShjb25zdCBLVVJMJik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IGNyZWF0ZVVuaXF1ZSgpOwogCkBAIC0xMTUsNiArMTIxLDcgQEAgcHVibGljOgogICAgIGJvb2wg
Y2FuQWNjZXNzQ29va2llcygpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1ZSgpOyB9CiAgICAgYm9v
bCBjYW5BY2Nlc3NQYXNzd29yZE1hbmFnZXIoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsg
fQogICAgIGJvb2wgY2FuQWNjZXNzRmlsZVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1
ZSgpOyB9CisgICAgUG9saWN5IGNhblNob3dOb3RpZmljYXRpb25zKCkgY29uc3Q7CiAKICAgICAv
LyBUZWNobmljYWxseSwgd2Ugc2hvdWxkIGFsd2F5cyBhbGxvdyBhY2Nlc3MgdG8gc2Vzc2lvblN0
b3JhZ2UsIGJ1dCB3ZQogICAgIC8vIGN1cnJlbnRseSBkb24ndCBoYW5kbGUgY3JlYXRpbmcgYSBz
ZXNzaW9uU3RvcmFnZSBhcmVhIGZvciB1bmlxdWUKQEAgLTEzNSw2ICsxNDIsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc1VuaXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNVbmlxdWU7IH0KIAogICAg
IC8vIE1hcmtzIGEgZmlsZTovLyBvcmlnaW4gYXMgYmVpbmcgaW4gYSBkb21haW4gZGVmaW5lZCBi
eSBpdHMgcGF0aC4KKyAgICAvLyBGSVhNRSA4MTU3ODogVGhlIG5hbWluZyBvZiB0aGlzIGlzIGNv
bmZ1c2luZy4gRmlsZXMgd2l0aCByZXN0cmljdGVkIGFjY2VzcyB0byBvdGhlciBsb2NhbCBmaWxl
cworICAgIC8vIHN0aWxsIGNhbiBoYXZlIG90aGVyIHByaXZpbGVnZXMgdGhhdCBjYW4gYmUgcmVt
ZW1iZXJlZCwgdGhlcmVieSBub3QgbWFraW5nIHRoZW0gdW5pcXVlLgogICAgIHZvaWQgZW5mb3Jj
ZUZpbGVQYXRoU2VwYXJhdGlvbigpOwogCiAgICAgLy8gQ29udmVydCB0aGlzIFNlY3VyaXR5T3Jp
Z2luIGludG8gYSBzdHJpbmcuIFRoZSBzdHJpbmcKQEAgLTE0OSw2ICsxNTgsMTAgQEAgcHVibGlj
OgogICAgIC8vIHdlIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcy4KICAgICBTdHJpbmcg
dG9TdHJpbmcoKSBjb25zdDsKIAorICAgIC8vIFNpbWlsYXIgdG8gdG9TdHJpbmcoKSwgYnV0IGRv
ZXMgbm90IHRha2UgaW50byBhY2NvdW50IGFueSBmYWN0b3JzIHRoYXQKKyAgICAvLyBjb3VsZCBt
YWtlIHRoZSBzdHJpbmcgcmV0dXJuICJudWxsIi4KKyAgICBTdHJpbmcgdG9SYXdTdHJpbmcoKSBj
b25zdDsKKwogICAgIC8vIFNlcmlhbGl6ZSB0aGUgc2VjdXJpdHkgb3JpZ2luIHRvIGEgc3RyaW5n
IHRoYXQgY291bGQgYmUgdXNlZCBhcyBwYXJ0IG9mCiAgICAgLy8gZmlsZSBuYW1lcy4gVGhpcyBm
b3JtYXQgc2hvdWxkIGJlIHVzZWQgaW4gc3RvcmFnZSBBUElzIG9ubHkuCiAgICAgU3RyaW5nIGRh
dGFiYXNlSWRlbnRpZmllcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwCmluZGV4IDhkYWY1MjUwMWI1NzY3N2YwMThlODFiMDE5NTJhMDhlNjMzZTU3ZmMuLjI3ZTRj
NzJlYTFmNzRkNWUxMTU1NDU0YjhhMzVjOWNhZTM2OWE4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5jcHAKQEAgLTk1LDggKzk1LDkgQEAgTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnBvbGljeUZvck9yaWdpbihXZWJDb3Jl
OjoKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJ
T05TKQogICAgIGlmICghb3JpZ2luKQogICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uTm90QWxsb3dlZDsKLSAgICAKLSAgICBIYXNoTWFwPFN0cmluZywgYm9vbD46
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9wZXJtaXNzaW9uc01hcC5maW5kKG9yaWdpbi0+dG9TdHJp
bmcoKSk7CisKKyAgICBBU1NFUlQoIW9yaWdpbi0+aXNVbmlxdWUoKSk7CisgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGVybWlzc2lvbnNNYXAuZmluZChv
cmlnaW4tPnRvUmF3U3RyaW5nKCkpOwogICAgIGlmIChpdCAhPSBtX3Blcm1pc3Npb25zTWFwLmVu
ZCgpKQogICAgICAgICByZXR1cm4gaXQtPnNlY29uZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbkFsbG93ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25EZW5pZWQ7CiAj
ZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>