<?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>54440</bug_id>
          
          <creation_ts>2011-02-15 00:37:48 -0800</creation_ts>
          <short_desc>[Refactoring] Make ScheduledEvent on FrameView abstract out to ScheduleAction</short_desc>
          <delta_ts>2011-03-04 09:36:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50661</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351134</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-15 00:37:48 -0800</bug_when>
    <thetext>I need to run post-layout action for &lt;meter&gt; implementation, which occurs only when the is direction (vertical/horizontal) switches.
ScheduledEvent abstraction can be used for it if we make it something abstract.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351895</commentid>
    <comment_count>1</comment_count>
      <attachid>82593</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-15 22:56:20 -0800</bug_when>
    <thetext>Created attachment 82593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351896</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-15 22:59:34 -0800</bug_when>
    <thetext>Hi, could anyone take a look?

I&apos;m planning to use ScheduledAction for &lt;meter&gt;&apos;s post-layout hook.
&lt;meter&gt; need to change its style based on the layout result (horizontal/vertical size)
In practice, the style change rarely happens because &lt;meter&gt; doesn&apos;t change its size in normal case.
Though some edge cases need to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358899</commentid>
    <comment_count>3</comment_count>
      <attachid>84019</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-27 22:42:33 -0800</bug_when>
    <thetext>Created attachment 84019
Updated to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358900</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-27 22:45:01 -0800</bug_when>
    <thetext>Hi, Could anyone review this? This is a refactoring which just extract 2 classes.
And I need this kind of the post-layout hook to my upcoming change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358917</commentid>
    <comment_count>5</comment_count>
      <attachid>84019</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-28 00:28:01 -0800</bug_when>
    <thetext>Comment on attachment 84019
Updated to ToT

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:25134
&gt; +				0F29C16E1300C2E2002D794E /* AccessibilityAllInOne.cpp in Sources */,
&gt; +				975CA28A130365F800E99AD9 /* Crypto.cpp in Sources */,
&gt; +				975CA2A11303679D00E99AD9 /* JSCrypto.cpp in Sources */,
&gt; +				A1E1154413015C3D0054AC8C /* DistantLightSource.cpp in Sources */,
&gt; +				A1E1154613015C4E0054AC8C /* PointLightSource.cpp in Sources */,
&gt; +				A1E1154813015C5D0054AC8C /* SpotLightSource.cpp in Sources */,
&gt; +				A7B070D2130A409C00A3763C /* FrameActionScheduler.cpp in Sources */,
&gt; +				B8DBDB4B130B0F8A00F5CDB1 /* SetSelectionCommand.cpp in Sources */,
&gt; +				B8DBDB4D130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp in Sources */,

Your change adds unrelated files.

&gt; Source/WebCore/page/FrameActionScheduler.h:7
&gt; +/*
&gt; +   Copyright (C) 1997 Martin Jones (mjones@kde.org)
&gt; +             (C) 1998 Waldo Bastian (bastian@kde.org)
&gt; +             (C) 1998, 1999 Torben Weis (weis@kde.org)
&gt; +             (C) 1999 Lars Knoll (knoll@kde.org)
&gt; +             (C) 1999 Antti Koivisto (koivisto@kde.org)
&gt; +   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.

Does this file contain any code written by these copyright holders?

&gt; Source/WebCore/page/FrameActionScheduler.h:37
&gt; +#include &quot;Event.h&quot;
&gt; +#include &quot;Node.h&quot;
&gt; +#include &lt;wtf/FastAllocBase.h&gt;
&gt; +#include &lt;wtf/Forward.h&gt;
&gt; +#include &lt;wtf/OwnPtr.h&gt;
&gt; +
&gt; +namespace WebCore {
&gt; +
&gt; +class Node;
&gt; +class Event;

We don&apos;t need both of &quot;#include &lt;Event.h&gt;&quot; and &quot;class Event&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358979</commentid>
    <comment_count>6</comment_count>
      <attachid>84039</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-28 04:19:52 -0800</bug_when>
    <thetext>Created attachment 84039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358980</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-28 04:22:13 -0800</bug_when>
    <thetext>Kent-san, thank you for your review! 
I updated the patch to address the feedback

(In reply to comment #5)
&gt; (From update of attachment 84019 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=84019&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:25134
&gt; &gt; +				0F29C16E1300C2E2002D794E /* AccessibilityAllInOne.cpp in Sources */,
&gt; &gt; +				975CA28A130365F800E99AD9 /* Crypto.cpp in Sources */,
&gt; &gt; +				975CA2A11303679D00E99AD9 /* JSCrypto.cpp in Sources */,
&gt; &gt; +				A1E1154413015C3D0054AC8C /* DistantLightSource.cpp in Sources */,
&gt; &gt; +				A1E1154613015C4E0054AC8C /* PointLightSource.cpp in Sources */,
&gt; &gt; +				A1E1154813015C5D0054AC8C /* SpotLightSource.cpp in Sources */,
&gt; &gt; +				A7B070D2130A409C00A3763C /* FrameActionScheduler.cpp in Sources */,
&gt; &gt; +				B8DBDB4B130B0F8A00F5CDB1 /* SetSelectionCommand.cpp in Sources */,
&gt; &gt; +				B8DBDB4D130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp in Sources */,
&gt; 
&gt; Your change adds unrelated files.
Good catch. I failed to merge the patch... Fixed.

&gt; 
&gt; &gt; Source/WebCore/page/FrameActionScheduler.h:7
&gt; &gt; +/*
&gt; &gt; +   Copyright (C) 1997 Martin Jones (mjones@kde.org)
&gt; &gt; +             (C) 1998 Waldo Bastian (bastian@kde.org)
&gt; &gt; +             (C) 1998, 1999 Torben Weis (weis@kde.org)
&gt; &gt; +             (C) 1999 Lars Knoll (knoll@kde.org)
&gt; &gt; +             (C) 1999 Antti Koivisto (koivisto@kde.org)
&gt; &gt; +   Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
&gt; 
&gt; Does this file contain any code written by these copyright holders?
&gt; 
Cleaned up.


&gt; &gt; Source/WebCore/page/FrameActionScheduler.h:37
&gt; &gt; +#include &quot;Event.h&quot;
&gt; &gt; +#include &quot;Node.h&quot;
&gt; &gt; +#include &lt;wtf/FastAllocBase.h&gt;
&gt; &gt; +#include &lt;wtf/Forward.h&gt;
&gt; &gt; +#include &lt;wtf/OwnPtr.h&gt;
&gt; &gt; +
&gt; &gt; +namespace WebCore {
&gt; &gt; +
&gt; &gt; +class Node;
&gt; &gt; +class Event;
&gt; 
&gt; We don&apos;t need both of &quot;#include &lt;Event.h&gt;&quot; and &quot;class Event&quot;.
Removed the forward declarations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359740</commentid>
    <comment_count>8</comment_count>
      <attachid>84039</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 01:03:44 -0800</bug_when>
    <thetext>Comment on attachment 84039
Patch

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

I&apos;ll set r+ tomorrow if no one objects.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:25126
&gt;  				93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
&gt;  				E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
&gt;  				977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
&gt; +				A7B070D2130A409C00A3763C /* FrameActionScheduler.cpp in Sources */,

The new entry should be put into the right place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360537</commentid>
    <comment_count>9</comment_count>
      <attachid>84039</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 20:31:24 -0800</bug_when>
    <thetext>Comment on attachment 84039
Patch

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

r- because of some minor issues.

&gt; Source/WebCore/page/FrameActionScheduler.h:69
&gt; +    void scheduleAction(ScheduledAction*);

We should add a comment about the ownership of the specified ScheduledAction object.

&gt; Source/WebCore/page/FrameView.cpp:126
&gt; +    , m_scheduledActions(new FrameActionScheduler())

The name m_scheduledActions is not appropriate.  It should be m_actionScheduler or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360620</commentid>
    <comment_count>10</comment_count>
      <attachid>84373</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-01 23:35:10 -0800</bug_when>
    <thetext>Created attachment 84373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360623</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-01 23:38:53 -0800</bug_when>
    <thetext>Kent-san, thank you again for your review!
I updated the patch. Could you have a review again?

&gt; &gt; Source/WebCore/page/FrameActionScheduler.h:69
&gt; &gt; +    void scheduleAction(ScheduledAction*);
&gt; 
&gt; We should add a comment about the ownership of the specified ScheduledAction object.
I change it to RefCounted/RefPtr to remove the lifetime ambiguity.
 
&gt; &gt; Source/WebCore/page/FrameView.cpp:126
&gt; &gt; +    , m_scheduledActions(new FrameActionScheduler())
&gt; 
&gt; The name m_scheduledActions is not appropriate.  It should be m_actionScheduler or something.
Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360624</commentid>
    <comment_count>12</comment_count>
      <attachid>84373</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 23:43:06 -0800</bug_when>
    <thetext>Comment on attachment 84373
Patch

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

&gt; &gt; We should add a comment about the ownership of the specified ScheduledAction object.
&gt; I change it to RefCounted/RefPtr to remove the lifetime ambiguity.

Why it isn&apos;t OwnPtr? Do you have a plan to use this for cases in which OwnPtr is not enough?

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:25148
&gt;  				93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
&gt;  				E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
&gt;  				977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
&gt; +				A7B070D2130A409C00A3763C /* FrameActionScheduler.cpp in Sources */,

nit: New entry should be put into the right place, not the bottom of the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360696</commentid>
    <comment_count>13</comment_count>
      <attachid>84393</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 03:15:33 -0800</bug_when>
    <thetext>Created attachment 84393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360698</commentid>
    <comment_count>14</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 03:18:46 -0800</bug_when>
    <thetext>&gt; &gt; &gt; We should add a comment about the ownership of the specified ScheduledAction object.
&gt; &gt; I change it to RefCounted/RefPtr to remove the lifetime ambiguity.
&gt; 
&gt; Why it isn&apos;t OwnPtr? Do you have a plan to use this for cases in which OwnPtr is not enough?
That&apos;s because the pointers are stored Vector and thus copy can happen.
&gt; 
&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:25148
&gt; &gt;  				93F19B0508245E59001E9ABC /* XSLTProcessorLibxslt.cpp in Sources */,
&gt; &gt;  				E1BE512D0CF6C512002EA959 /* XSLTUnicodeSort.cpp in Sources */,
&gt; &gt;  				977E2E0E12F0FC9C00C13379 /* XSSFilter.cpp in Sources */,
&gt; &gt; +				A7B070D2130A409C00A3763C /* FrameActionScheduler.cpp in Sources */,
&gt; 
&gt; nit: New entry should be put into the right place, not the bottom of the list.
Oops. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360701</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-02 03:22:15 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; &gt; &gt; We should add a comment about the ownership of the specified ScheduledAction object.
&gt; &gt; &gt; I change it to RefCounted/RefPtr to remove the lifetime ambiguity.
&gt; &gt; 
&gt; &gt; Why it isn&apos;t OwnPtr? Do you have a plan to use this for cases in which OwnPtr is not enough?
&gt; That&apos;s because the pointers are stored Vector and thus copy can happen.

Vector.h and VectorTraits.h correctly handle OwnPtr&lt;&gt; elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360731</commentid>
    <comment_count>16</comment_count>
      <attachid>84403</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 04:58:40 -0800</bug_when>
    <thetext>Created attachment 84403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360733</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 05:02:26 -0800</bug_when>
    <thetext>&gt; 
&gt; Vector.h and VectorTraits.h correctly handle OwnPtr&lt;&gt; elements.
Wow, I didn&apos;t know that. Thank you for pointing this!

Anyway, I found binding/js/ScheduledAction whose name conflicts ScheduledAction here.
So I renamed it to FrameAction and renamed ScheduledEvent to EventFrameAction respectively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360737</commentid>
    <comment_count>18</comment_count>
      <attachid>84403</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-02 05:08:02 -0800</bug_when>
    <thetext>Comment on attachment 84403
Patch

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

&gt; Source/WebCore/page/FrameActionScheduler.h:60
&gt; +    // passed action objects are deleted by FrameAction
&gt; +    void scheduleAction(FrameAction*);

I like making the parameter type PassOwnPtr&lt;FrameAction&gt; and delete the comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360745</commentid>
    <comment_count>19</comment_count>
      <attachid>84406</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 05:17:10 -0800</bug_when>
    <thetext>Created attachment 84406
Fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360750</commentid>
    <comment_count>20</comment_count>
      <attachid>84406</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-02 05:40:40 -0800</bug_when>
    <thetext>Comment on attachment 84406
Fixed

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361363</commentid>
    <comment_count>21</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-02 22:29:21 -0800</bug_when>
    <thetext>Committed r80210: &lt;http://trac.webkit.org/changeset/80210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361624</commentid>
    <comment_count>22</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-03 07:54:43 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; Committed r80210: &lt;http://trac.webkit.org/changeset/80210&gt;

I apologize for not seeing this earlier! I just now realized this is related to meter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361643</commentid>
    <comment_count>23</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-03 08:49:12 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; I need to run post-layout action for &lt;meter&gt; implementation, which occurs only when the is direction (vertical/horizontal) switches.
&gt; ScheduledEvent abstraction can be used for it if we make it something abstract.

I am not so sure about us actually needing this. Can you explain how this will work a bit? The reason I am asking is because progress/meter aren&apos;t unique in this -- input[type=range] will also need to adopt this logic.

To me, it seemed like we need a new rendering primitive, the one that listens to the dimensions it&apos;s given and makes decisions on how to lay out the children accordingly. Right?

How does the ability to run post-layout actions buy us anything new?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362369</commentid>
    <comment_count>24</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-03-04 01:43:52 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #0)
&gt; &gt; I need to run post-layout action for &lt;meter&gt; implementation, which occurs only when the is direction (vertical/horizontal) switches.
&gt; &gt; ScheduledEvent abstraction can be used for it if we make it something abstract.
&gt; 
&gt; I am not so sure about us actually needing this. Can you explain how this will work a bit? The reason I am asking is because progress/meter aren&apos;t unique in this -- input[type=range] will also need to adopt this logic.
&gt; 
&gt; To me, it seemed like we need a new rendering primitive, the one that listens to the dimensions it&apos;s given and makes decisions on how to lay out the children accordingly. Right?
&gt; 
&gt; How does the ability to run post-layout actions buy us anything new?

Hi, Dimitri.
&lt;meter&gt; need this because it uses the layout result (whether it is vertically or horizontally long)
to determine its rendering (whether to show a vertical or horizontal bar.)
Current implementation has shadow nodes for both horizontal and vertical bars,
and hide on of them just after the layout.

This trick works. but we need to have manual layout code for it
because CSS doesn&apos;t allow overlapping node (except using position: absolute.)

Instead of this, I&apos;m thinking we can switch the style (pseudo-class)
if the dominance direction (vertical/horizontal) changes by the layout.
Because style change during the layout isn&apos;t allowed, we need to
defer the style change after the layout.  this scheduler is for such deferring. 
Giving the pseudo-class dynamically based on the layout,
we can get rid of large part of manual layout logic from the &lt;meter&gt; code.
Such kind of layout code is hard to write correctly and causes potential security hole.
(Actually I had several bugs around there....)

This technique can cause an extra layout, but it doesn&apos;t matter in practice because
the size of &lt;meter&gt; doesn&apos;t change in most cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362562</commentid>
    <comment_count>25</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-04 09:36:24 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; I need to run post-layout action for &lt;meter&gt; implementation, which occurs only when the is direction (vertical/horizontal) switches.
&gt; &gt; &gt; ScheduledEvent abstraction can be used for it if we make it something abstract.
&gt; &gt; 
&gt; &gt; I am not so sure about us actually needing this. Can you explain how this will work a bit? The reason I am asking is because progress/meter aren&apos;t unique in this -- input[type=range] will also need to adopt this logic.
&gt; &gt; 
&gt; &gt; To me, it seemed like we need a new rendering primitive, the one that listens to the dimensions it&apos;s given and makes decisions on how to lay out the children accordingly. Right?
&gt; &gt; 
&gt; &gt; How does the ability to run post-layout actions buy us anything new?
&gt; 
&gt; Hi, Dimitri.
&gt; &lt;meter&gt; need this because it uses the layout result (whether it is vertically or horizontally long)
&gt; to determine its rendering (whether to show a vertical or horizontal bar.)
&gt; Current implementation has shadow nodes for both horizontal and vertical bars,
&gt; and hide on of them just after the layout.

Right. The problem you&apos;re dealing with is pretty fundamental. I don&apos;t think we should be using tricks. I think we should fix the problem itself :)

The gist of the problem is that we need this ability to change what selector the element matches _after_ computing its logical width. I really don&apos;t think we should do this.

I am going to post to whatwg to start the discussion on this. In the meantime, I highly recommend going with what we&apos;ve done with input[type=range] -- just have explicit selector for horizontal and vertical orientation.

Engaging in double-layout and other stuff like this is the road to hell.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82593</attachid>
            <date>2011-02-15 22:56:20 -0800</date>
            <delta_ts>2011-02-27 22:42:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54440-20110216155618.patch</filename>
            <type>text/plain</type>
            <size>22888</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDljZDMwMjJjNTA4YjYx
ZTYxMGVlMTM5YzcxOGI5MzVmYWQ2NDg5Y2UuLjkzNTQyMTM0OGUxYWJkOTMwMzY1YTA2NjM5OWE5
NzI1YTJkMTVjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE3LDYgKzQxNyw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGMwYTJjNGU5ZmU0MzcxOGU4Mjk0Y2YwNmMyNDJjOWYwOTgyNzUyYTEuLjJjMzlkNjUzNjZh
NzBmOGMwNmNhYjg2Y2ZmNjVkMjg2ZmNhZDcxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTM3LDYgKzExMzcsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA3ODE5ZWM1YmUxOWM5MGQ3MjBmMzU0YzI4ZGY4ZWRlYjYwZmJhMTAzLi41Y2FjNGNj
NWYxMTY3MjY4MWQ2NGFmNmYzODdiNmQ5Y2QzNDAyNDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDItMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgU2NoZWR1bGVkQWN0aW9uIGFic3RyYWN0
IGNsYXNzIGZyb20gU2NoZWR1bGVkRXZlbnQsCisgICAgICAgICAgd2hpY2ggaGFzIGZpcmUoKSB2
aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBjaGFuZ2UsIEFueSBh
Y3Rpb24gY2FuIGJlIGhvb2tlZCB1cCB0byB0aGUgZW5kIG9mIHRoZSBsYXlvdXQuCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2
ZW50OjpTY2hlZHVsZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRFdmVudDo6
flNjaGVkdWxlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2ZW50OjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVk
QWN0aW9uOjp+U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9u
U2NoZWR1bGVyOjppc1NjaGVkdWxlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAyLTE1ICBBbWkgRmlzY2htYW4gIDxmaXNjaG1hbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IGFiMWEyNjAzYmRlNTE3MTc1MDFjMGQ5YmM3ZGFjODFjYTA1ZmY4ZTUuLmEy
YmYyYTUzNTUxMDVjYjA5OWM5YWUwZDE3MjNiMGY2MGM2Njg0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCkBAIC0yMjA5LDYgKzIyMDksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVBY3Rpb25TY2hlZHVsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUxvYWRSZXF1
ZXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTA2YmU1Y2RhMzdj
NGQxMWI2NjE3MGNmMTc4ZjBhZGJhMDRkZThkZC4uNGU1MGZlYTM2OTc2OWI4OGE2YTAwZGU1NDM1
MzVjNGZkYWQ1M2NiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjMwNCw2ICsyMzA0LDggQEAKICAg
ICAgICAgICAgICdwYWdlL0ZyYW1lTG9hZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGFnZS9G
cmFtZVRyZWUuY3BwJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lVHJlZS5oJywKKyAgICAgICAg
ICAgICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9G
cmFtZUFjdGlvblNjaGVkdWxlci5oJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5jcHAn
LAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVWaWV3LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2Vv
bG9jYXRpb24uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNWM4MjA0MGU0N2Q0Y2U2NDQyZjY0MWRm
Y2ExZDZkYTU2Y2I2MTdiMy4uZGU0ZjcyNzJhYTAzYTYwOTc4NWFhOTIyYzM5YzVjNjFhYWU5NTE3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwMjQsNiArMTAyNCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBhZ2UvRXZlbnRTb3VyY2UuY3BwIFwKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgXAog
ICAgIHBhZ2UvRnJhbWUuY3BwIFwKKyAgICBwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBc
CiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwIFwKICAgICBwYWdlL0ZyYW1lVmlldy5jcHAgXAogICAg
IHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggNGFiZmUwYzBjMTc3YjA3NzkyYTA5M2ZiMTZmMDQwMGZhNDU3
MTJkNS4uOTAwMTVmMTliYWM1NTNjZTA4YTdiYmZjZTE4NzE2YTQxODE1MTIyMSAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0NDU2LDYgKzI0
NDU2LDE0IEBACiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFtZS5oIgog
CQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxGcmFtZUFjdGlvblNjaGVkdWxlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lTG9hZFJl
cXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1ZDZlMzA2NTBiZGZiOTQyZGY5M2YwY2UzYzI5OTAzNjM4ZjBkMDQ2Li5j
N2ZhZDY3ODllYTA0NGMzYjc1OWU0Yjc3ZTgxN2NkNmVjY2I1NmJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjAzLDYgKzMy
MDMsOCBAQAogCQlBN0FBNjZENzExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FBNjZENTEx
QzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmggKi87IH07CiAJCUE3QUQyRjg3MEVD
ODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FEMkY4NTBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2gu
Y3BwICovOyB9OwogCQlBN0FEMkY4ODBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg2MEVDODlE
MDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3Bw
ICovOyB9OworCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjA3
MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovOyB9OwogCQlB
N0I2RTY5RjBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBE
cmFnRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUyNjQxMUFG
QjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5jcHAgKi87IH07CiAJCUE3QkJFMjY3
MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY1MTFBRkIzRjIwMDA1RUEwMyAv
KiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLzsgfTsKQEAgLTk1OTUsNiArOTU5Nyw4IEBACiAJCUE3
QUE2NkQ1MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rSGFzaC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUQyRjg2MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFz
aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rSGFzaC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
N0IwNzBEMTEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVBY3Rpb25TY2hlZHVsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNIVE1MTWV0ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdC
QkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTY3LDYgKzEzOTcxLDggQEAKIAkJCQkwNjIyODc4MzBCNERC
MzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCAqLywKIAkJCQk2NUJGMDIyOTA5NzQ4MTYz
MDBDNDMxOTYgLyogRnJhbWUuY3BwICovLAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0MzE5NiAv
KiBGcmFtZS5oICovLAorCQkJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgKi8sCisJCQkJQTdCMDcwRDExMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1l
QWN0aW9uU2NoZWR1bGVyLmggKi8sCiAJCQkJNjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUzIC8qIEZy
YW1lTG9hZFJlcXVlc3QuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEgLyogRnJh
bWVUcmVlLmNwcCAqLywKIAkJCQk2NUEyMTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVl
LmggKi8sCkBAIC0yMDY2Miw2ICsyMDY2OCw3IEBACiAJCQkJOTM1QzQ3NkQwOUFDNEQ2MzAwQTZB
QUI0IC8qIEZvdW5kYXRpb25FeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NTMxMjNEMTFE
MDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTdCMDcwRDMxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVM
b2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0RCAvKiBG
cmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAwMEVCQTMxMUJEQUZENDAw
QzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
MTE2LDggKzI1MTIzLDEyIEBACiAJCQkJQTFFMTE1NDQxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3Rh
bnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0NjEzMDE1QzRFMDA1
NEFDOEMgLyogUG9pbnRMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMUUxMTU0
ODEzMDE1QzVEMDA1NEFDOEMgLyogU3BvdExpZ2h0U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAor
PDw8PDw8PCBIRUFECiAJCQkJQjhEQkRCNEIxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlv
bkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjhEQkRCNEQxMzBCMEY4QTAwRjVDREIx
IC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCis9PT09PT09
CisJCQkJQTdCMDcwRDIxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNw
cCBpbiBTb3VyY2VzICovLAorPj4+Pj4+PiBmaXhlZAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lQWN0aW9uU2NoZWR1bGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzk2NDYyNzVjODRjMzM5MzYxMDhj
ZTdjY2VhMjg5N2YyZDAzNWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgICBDb3B5
cmlnaHQgKEMpIDE5OTcgTWFydGluIEpvbmVzIChtam9uZXNAa2RlLm9yZykKKyAgICAgICAgICAg
ICAoQykgMTk5OCBXYWxkbyBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCisgICAgICAgICAgICAg
KEMpIDE5OTgsIDE5OTkgVG9yYmVuIFdlaXMgKHdlaXNAa2RlLm9yZykKKyAgICAgICAgICAgICAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICAgICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICAgQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKworICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKKwor
I2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1NjaGVkdWxlZEV2ZW50OjpTY2hlZHVsZWRFdmVudChQYXNzUmVmUHRyPEV2
ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiB0YXJnZXQpCisgICAgOiBtX2V2ZW50KGV2ZW50
KSwgbV9ldmVudFRhcmdldCh0YXJnZXQpCit7Cit9CisKK1NjaGVkdWxlZEV2ZW50Ojp+U2NoZWR1
bGVkRXZlbnQoKQoreworfQorCit2b2lkIFNjaGVkdWxlZEV2ZW50OjpmaXJlKCkKK3sKKyAgICAv
LyBPbmx5IGRpc3BhdGNoIGV2ZW50cyB0byBub2RlcyB0aGF0IGFyZSBpbiB0aGUgZG9jdW1lbnQK
KyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpZiAobV9ldmVudFRhcmdldC0+aW5Eb2N1
bWVudCgpKQorICAgICAgICBtX2V2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQsIGVj
KTsKK30KKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6OkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKKyAg
ICA6IG1fZW5xdWV1ZUFjdGlvbnMoMCkKK3sKK30KKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6On5G
cmFtZUFjdGlvblNjaGVkdWxlcigpCit7CisgICAgY2xlYXIoKTsKK30KKworYm9vbCBGcmFtZUFj
dGlvblNjaGVkdWxlcjo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NoZWR1bGVk
QWN0aW9ucy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OmNsZWFy
KCkKK3sKKyAgICBmb3IgKFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPjo6aXRlcmF0b3IgaSA9IG1f
c2NoZWR1bGVkQWN0aW9ucy5iZWdpbigpOyBpICE9IG1fc2NoZWR1bGVkQWN0aW9ucy5lbmQoKTsg
KytpKQorICAgICAgICBkZWxldGUgKmk7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLmNsZWFyKCk7
CisgICAgbV9lbnF1ZXVlQWN0aW9ucyA9IDA7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVs
ZXI6OnBhdXNlKCkKK3sKKyAgICBBU1NFUlQoaXNFbXB0eSgpIHx8IG1fZW5xdWV1ZUFjdGlvbnMp
OworICAgIG1fZW5xdWV1ZUFjdGlvbnMrKzsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxl
cjo6cmVzdW1lKCkKK3sKKyAgICBtX2VucXVldWVBY3Rpb25zLS07CisgICAgaWYgKCFtX2VucXVl
dWVBY3Rpb25zKQorICAgICAgICBkaXNwYXRjaCgpOworICAgIEFTU0VSVChpc0VtcHR5KCkgfHwg
bV9lbnF1ZXVlQWN0aW9ucyk7CisKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlz
cGF0Y2goKQoreworICAgIFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPiBzbmFwc2hvdDsKKyAgICBt
X3NjaGVkdWxlZEFjdGlvbnMuc3dhcChzbmFwc2hvdCk7CisgICAgCisgICAgZm9yIChWZWN0b3I8
U2NoZWR1bGVkQWN0aW9uKj46Oml0ZXJhdG9yIGkgPSBzbmFwc2hvdC5iZWdpbigpOyBpICE9IHNu
YXBzaG90LmVuZCgpOyArK2kpIHsKKyAgICAgICAgU2NoZWR1bGVkQWN0aW9uKiBhY3Rpb24gPSAq
aTsKKyAgICAgICAgYWN0aW9uLT5maXJlKCk7CisgICAgICAgIGRlbGV0ZSBhY3Rpb247CisgICAg
fQorfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUFjdGlvbihTY2hlZHVs
ZWRBY3Rpb24qIGFjdGlvbikKK3sKKyAgICBtX3NjaGVkdWxlZEFjdGlvbnMuYXBwZW5kKGFjdGlv
bik7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gZXZlbnRUYXJnZXQpCit7CisgICAg
c2NoZWR1bGVBY3Rpb24obmV3IFNjaGVkdWxlZEV2ZW50KGV2ZW50LCBldmVudFRhcmdldCkpOwor
fQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWY3NTU4ZDBmMTU0OWUwNTkwNGQzZGFkNThm
NGE5ODZkNDk0ODk3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgICBDb3B5cmlnaHQgKEMp
IDE5OTcgTWFydGluIEpvbmVzIChtam9uZXNAa2RlLm9yZykKKyAgICAgICAgICAgICAoQykgMTk5
OCBXYWxkbyBCYXN0aWFuIChiYXN0aWFuQGtkZS5vcmcpCisgICAgICAgICAgICAgKEMpIDE5OTgs
IDE5OTkgVG9yYmVuIFdlaXMgKHdlaXNAa2RlLm9yZykKKyAgICAgICAgICAgICAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICAgICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtv
aXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKwor
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZy
YW1lQWN0aW9uU2NoZWR1bGVyX2gKKyNkZWZpbmUgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAorCisj
aW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSA8d3RmL0Zhc3RB
bGxvY0Jhc2UuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOworY2xhc3MgRXZlbnQ7
CisKK2NsYXNzIFNjaGVkdWxlZEFjdGlvbiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVkQWN0aW9uKTsKK3B1YmxpYzoKKyAg
ICBTY2hlZHVsZWRBY3Rpb24oKSB7fQorICAgIHZpcnR1YWwgflNjaGVkdWxlZEFjdGlvbigpIHt9
CisgICAgdmlydHVhbCB2b2lkIGZpcmUoKSA9IDA7Cit9OworCitjbGFzcyBTY2hlZHVsZWRFdmVu
dCA6IHB1YmxpYyBTY2hlZHVsZWRBY3Rpb24geworcHVibGljOgorICAgIFNjaGVkdWxlZEV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICB2aXJ0dWFsIH5TY2hl
ZHVsZWRFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBmaXJlKCk7CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFyZ2V0Owor
fTsKKworY2xhc3MgRnJhbWVBY3Rpb25TY2hlZHVsZXIgeworcHVibGljOgorICAgIEZyYW1lQWN0
aW9uU2NoZWR1bGVyKCk7CisgICAgfkZyYW1lQWN0aW9uU2NoZWR1bGVyKCk7CisKKyAgICBib29s
IGlzRW1wdHkoKSBjb25zdDsKKyAgICBib29sIGlzU2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4g
MCA8IG1fZW5xdWV1ZUFjdGlvbnM7IH0KKyAgICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBwYXVz
ZSgpOworICAgIHZvaWQgcmVzdW1lKCk7CisKKyAgICB2b2lkIHNjaGVkdWxlQWN0aW9uKFNjaGVk
dWxlZEFjdGlvbiopOworICAgIHZvaWQgc2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50Piwg
UGFzc1JlZlB0cjxOb2RlPik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBkaXNwYXRjaCgpOworCisg
ICAgdW5zaWduZWQgbV9lbnF1ZXVlQWN0aW9uczsKKyAgICBWZWN0b3I8U2NoZWR1bGVkQWN0aW9u
Kj4gbV9zY2hlZHVsZWRBY3Rpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRnJhbWVBY3Rpb25TY2hlZHVsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IGQ2NmZlMDU4ODM5YmUyNWFkYzg1N2MyNmFlYWMyMmJkYWM2YTBjMDcuLjdkMzBiMDZi
OTEyZGI0ZTZiMTI0NzdiYWViNTI5MzUzNWRhNzMwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRl
ICJGb2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
QWN0aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJG
cmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgpAQCAtMTA5LDE0ICsx
MTAsNiBAQCBkb3VibGUgRnJhbWVWaWV3OjpzX2RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50
RHVyaW5nTG9hZGluZyA9IDA7CiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgdXBkYXRlV2lkZ2V0
cyBpdGVyYXRpb25zIHRoYXQgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIHJldHVybmluZy4KIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBtYXhVcGRhdGVXaWRnZXRzSXRlcmF0aW9ucyA9IDI7CiAKLXN0cnVj
dCBTY2hlZHVsZWRFdmVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVkRXZl
bnQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBTY2hlZHVsZWRFdmVu
dCgpIHsgfQotICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsKLSAgICBSZWZQdHI8Tm9kZT4gbV9l
dmVudFRhcmdldDsKLX07Ci0KIEZyYW1lVmlldzo6RnJhbWVWaWV3KEZyYW1lKiBmcmFtZSkKICAg
ICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NhbkhhdmVTY3JvbGxiYXJzKHRydWUpCkBAIC0x
MzAsNyArMTIzLDcgQEAgRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwg
bV9pc1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV9iYXNlQmFja2dyb3VuZENvbG9yKENvbG9y
Ojp3aGl0ZSkKICAgICAsIG1fbWVkaWFUeXBlKCJzY3JlZW4iKQotICAgICwgbV9lbnF1ZXVlRXZl
bnRzKDApCisgICAgLCBtX3NjaGVkdWxlZEFjdGlvbnMobmV3IEZyYW1lQWN0aW9uU2NoZWR1bGVy
KCkpCiAgICAgLCBtX292ZXJmbG93U3RhdHVzRGlydHkodHJ1ZSkKICAgICAsIG1fdmlld3BvcnRS
ZW5kZXJlcigwKQogICAgICwgbV93YXNTY3JvbGxlZEJ5VXNlcihmYWxzZSkKQEAgLTE2Myw4ICsx
NTYsNyBAQCBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQogewogICAgIGlmIChtX2hhc1BlbmRpbmdQ
b3N0TGF5b3V0VGFza3MpIHsKICAgICAgICAgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7
Ci0gICAgICAgIG1fc2NoZWR1bGVkRXZlbnRzLmNsZWFyKCk7Ci0gICAgICAgIG1fZW5xdWV1ZUV2
ZW50cyA9IDA7CisgICAgICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+Y2xlYXIoKTsKICAgICB9CiAg
ICAgCiAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgYXhP
YmplY3RDYWNoZSgpKQpAQCAtMTgwLDggKzE3Miw3IEBAIEZyYW1lVmlldzo6fkZyYW1lVmlldygp
CiAgICAgc2V0SGFzVmVydGljYWxTY3JvbGxiYXIoZmFsc2UpOwogICAgIAogICAgIEFTU0VSVCgh
bV9zY3JvbGxDb3JuZXIpOwotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5KCkp
OwotICAgIEFTU0VSVCghbV9lbnF1ZXVlRXZlbnRzKTsKKyAgICBBU1NFUlQobV9zY2hlZHVsZWRB
Y3Rpb25zLT5pc0VtcHR5KCkpOwogCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgQVNTRVJU
KG1fZnJhbWUtPnZpZXcoKSAhPSB0aGlzIHx8ICFtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7
CkBAIC04ODQsNyArODc1LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3Vi
dHJlZSkKIAogICAgIFJlbmRlckxheWVyKiBsYXllciA9IHJvb3QtPmVuY2xvc2luZ0xheWVyKCk7
CiAKLSAgICBwYXVzZVNjaGVkdWxlZEV2ZW50cygpOworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+
cGF1c2UoKTsKIAogICAgIGJvb2wgZGlzYWJsZUxheW91dFN0YXRlID0gZmFsc2U7CiAgICAgaWYg
KHN1YnRyZWUpIHsKQEAgLTk2MiwxMyArOTUzLDEyIEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQo
Ym9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdQb3N0TGF5b3V0VGFz
a3MgPSB0cnVlOwogICAgICAgICAgICAgbV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdGFydE9uZVNo
b3QoMCk7CiAgICAgICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkgewotICAgICAgICAgICAgICAg
IHBhdXNlU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgICAgICAgICAgICAgbV9zY2hlZHVsZWRBY3Rp
b25zLT5wYXVzZSgpOwogICAgICAgICAgICAgICAgIGxheW91dCgpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCk7
Ci0gICAgICAgIEFTU0VSVChtX2VucXVldWVFdmVudHMpOworICAgICAgICBtX3NjaGVkdWxlZEFj
dGlvbnMtPnJlc3VtZSgpOwogICAgIH0KIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkTGF5b3V0KGNvb2tpZSk7CkBAIC0xNzM3LDMwICsxNzI3LDE3IEBAIGJvb2wgRnJhbWVWaWV3
OjpzaG91bGRVcGRhdGUoYm9vbCBpbW1lZGlhdGVSZXF1ZXN0ZWQpIGNvbnN0CiAKIHZvaWQgRnJh
bWVWaWV3OjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRy
PE5vZGU+IGV2ZW50VGFyZ2V0KQogewotICAgIGlmICghbV9lbnF1ZXVlRXZlbnRzKSB7Ci0gICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBldmVudFRhcmdldC0+ZGlzcGF0Y2hF
dmVudChldmVudCwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NoZWR1bGVk
RXZlbnQqIHNjaGVkdWxlZEV2ZW50ID0gbmV3IFNjaGVkdWxlZEV2ZW50OwotICAgIHNjaGVkdWxl
ZEV2ZW50LT5tX2V2ZW50ID0gZXZlbnQ7Ci0gICAgc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnRUYXJn
ZXQgPSBldmVudFRhcmdldDsKLSAgICBtX3NjaGVkdWxlZEV2ZW50cy5hcHBlbmQoc2NoZWR1bGVk
RXZlbnQpOworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+c2NoZWR1bGVFdmVudChldmVudCwgZXZl
bnRUYXJnZXQpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6cGF1c2VTY2hlZHVsZWRFdmVudHMoKQog
ewotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5KCkgfHwgbV9lbnF1ZXVlRXZl
bnRzKTsKLSAgICBtX2VucXVldWVFdmVudHMrKzsKKyAgICBtX3NjaGVkdWxlZEFjdGlvbnMtPnBh
dXNlKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpyZXN1bWVTY2hlZHVsZWRFdmVudHMoKQogewot
ICAgIG1fZW5xdWV1ZUV2ZW50cy0tOwotICAgIGlmICghbV9lbnF1ZXVlRXZlbnRzKQotICAgICAg
ICBkaXNwYXRjaFNjaGVkdWxlZEV2ZW50cygpOwotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50
cy5pc0VtcHR5KCkgfHwgbV9lbnF1ZXVlRXZlbnRzKTsKKyAgICBtX3NjaGVkdWxlZEFjdGlvbnMt
PnJlc3VtZSgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IoKQpAQCAtMTg4
NCw3ICsxODYxLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQog
CiAgICAgc2Nyb2xsVG9BbmNob3IoKTsKIAotICAgIHJlc3VtZVNjaGVkdWxlZEV2ZW50cygpOwor
ICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+cmVzdW1lKCk7CiAKICAgICBpZiAoIXJvb3QtPnByaW50
aW5nKCkpIHsKICAgICAgICAgSW50U2l6ZSBjdXJyZW50U2l6ZSA9IEludFNpemUod2lkdGgoKSwg
aGVpZ2h0KCkpOwpAQCAtMTkyMSwzNSArMTg5OCwxMyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRl
T3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wgdmVydGljYWxPdmVy
ZgogICAgICAgICBtX2hvcml6b250YWxPdmVyZmxvdyA9IGhvcml6b250YWxPdmVyZmxvdzsKICAg
ICAgICAgbV92ZXJ0aWNhbE92ZXJmbG93ID0gdmVydGljYWxPdmVyZmxvdzsKICAgICAgICAgCi0g
ICAgICAgIHNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6Y3JlYXRlKGhvcml6b250YWxPdmVy
Zmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKKyAgICAgICAgbV9zY2hlZHVsZWRBY3Rp
b25zLT5zY2hlZHVsZUV2ZW50KE92ZXJmbG93RXZlbnQ6OmNyZWF0ZShob3Jpem9udGFsT3ZlcmZs
b3dDaGFuZ2VkLCBob3Jpem9udGFsT3ZlcmZsb3csCiAgICAgICAgICAgICB2ZXJ0aWNhbE92ZXJm
bG93Q2hhbmdlZCwgdmVydGljYWxPdmVyZmxvdyksCiAgICAgICAgICAgICBtX3ZpZXdwb3J0UmVu
ZGVyZXItPm5vZGUoKSk7CiAgICAgfQogICAgIAogfQogCi12b2lkIEZyYW1lVmlldzo6ZGlzcGF0
Y2hTY2hlZHVsZWRFdmVudHMoKQotewotICAgIGlmIChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxTY2hlZHVsZWRFdmVudCo+IHNjaGVk
dWxlZEV2ZW50c0NvcHkgPSBtX3NjaGVkdWxlZEV2ZW50czsKLSAgICBtX3NjaGVkdWxlZEV2ZW50
cy5jbGVhcigpOwotICAgIAotICAgIFZlY3RvcjxTY2hlZHVsZWRFdmVudCo+OjppdGVyYXRvciBl
bmQgPSBzY2hlZHVsZWRFdmVudHNDb3B5LmVuZCgpOwotICAgIGZvciAoVmVjdG9yPFNjaGVkdWxl
ZEV2ZW50Kj46Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkRXZlbnRzQ29weS5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKLSAgICAgICAgU2NoZWR1bGVkRXZlbnQqIHNjaGVkdWxlZEV2ZW50ID0g
Kml0OwotICAgICAgICAKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIAot
ICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIGV2ZW50cyB0byBub2RlcyB0aGF0IGFyZSBpbiB0aGUg
ZG9jdW1lbnQKLSAgICAgICAgaWYgKHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50VGFyZ2V0LT5pbkRv
Y3VtZW50KCkpCi0gICAgICAgICAgICBzY2hlZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldC0+ZGlz
cGF0Y2hFdmVudChzY2hlZHVsZWRFdmVudC0+bV9ldmVudCwgZWMpOwotICAgICAgICAKLSAgICAg
ICAgZGVsZXRlIHNjaGVkdWxlZEV2ZW50OwotICAgIH0KLX0KLQogSW50UmVjdCBGcmFtZVZpZXc6
OndpbmRvd0NsaXBSZWN0KGJvb2wgY2xpcFRvQ29udGVudHMpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KG1fZnJhbWUtPnZpZXcoKSA9PSB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDk0
MGFiMDYzZjE4YWYzMmZhYTM1YzQzYzE0NThiNGI4MTNiMmQ2MTguLjMxY2NiMTE3YjM1N2ZlNWM5
OTc4ZmVjNTYyMTM4NWMxOTZiMzM3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzcs
NiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENvbG9yOwogY2xhc3MgRXZl
bnQ7CitjbGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlcjsKIGNsYXNzIEZyYW1lVmlld1ByaXZhdGU7
CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgTm9kZTsKQEAgLTQ2LDggKzQ3LDYgQEAgY2xhc3MgUmVu
ZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyRW1iZWRkZWRPYmplY3Q7CiBjbGFzcyBSZW5kZXJTY3Jv
bGxiYXJQYXJ0OwogCi1zdHJ1Y3QgU2NoZWR1bGVkRXZlbnQ7Ci0KIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBjbGFzcyBUaW1lcjsKIAogY2xhc3MgRnJhbWVWaWV3IDogcHVibGljIFNjcm9sbFZpZXcg
ewpAQCAtMjg4LDcgKzI4Nyw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93
U3RhdHVzKGJvb2wgaG9yaXpvbnRhbE92ZXJmbG93LCBib29sIHZlcnRpY2FsT3ZlcmZsb3cpOwog
Ci0gICAgdm9pZCBkaXNwYXRjaFNjaGVkdWxlZEV2ZW50cygpOwogICAgIHZvaWQgcGVyZm9ybVBv
c3RMYXlvdXRUYXNrcygpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFu
Z2xlKGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSk7CkBAIC0zNzAsOSArMzY4LDggQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9tZWRpYVR5cGU7CiAgICAgU3RyaW5nIG1fbWVkaWFUeXBl
V2hlbk5vdFByaW50aW5nOwogCi0gICAgdW5zaWduZWQgbV9lbnF1ZXVlRXZlbnRzOwotICAgIFZl
Y3RvcjxTY2hlZHVsZWRFdmVudCo+IG1fc2NoZWR1bGVkRXZlbnRzOwotICAgIAorICAgIE93blB0
cjxGcmFtZUFjdGlvblNjaGVkdWxlcj4gbV9zY2hlZHVsZWRBY3Rpb25zOworCiAgICAgYm9vbCBt
X292ZXJmbG93U3RhdHVzRGlydHk7CiAgICAgYm9vbCBtX2hvcml6b250YWxPdmVyZmxvdzsKICAg
ICBib29sIG1fdmVydGljYWxPdmVyZmxvdzsgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84019</attachid>
            <date>2011-02-27 22:42:33 -0800</date>
            <delta_ts>2011-02-28 04:19:47 -0800</delta_ts>
            <desc>Updated to ToT</desc>
            <filename>bug-54440-20110228154231.patch</filename>
            <type>text/plain</type>
            <size>23253</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGE5MWUxYmJkZjViYmIy
Y2ZlMTEzN2VhOTUxYzg0MTU2ZmY4ODVhNzQuLjkzZTNhMDU5YTM3N2M3MjUyYjUxNzUxMTg4Mzk0
ODM1ZmRlNzYzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE3LDYgKzQxNyw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDUyNjVmN2VlODYxNDA4ZWEzMTljMmU2ODNiMzNjZjU1NTJiYmFiNmEuLjA1ZWRlYjc4ZTA2
NzM3NWVkNTdkNGVhMTUzZWY1MzZjYzllYmI4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQwLDYgKzExNDAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwYzg4NGNiYjA5N2E3NmY1ZjA3OGNiNTc4ZDQ0ZDI0ZjFhZWNlNDA5Li5hNDhlNzM1
OWNlN2IwMmMzMTE4MGNhMzMxMjcxNDczNDY1NzQxOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDItMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgU2NoZWR1bGVkQWN0aW9uIGFic3RyYWN0
IGNsYXNzIGZyb20gU2NoZWR1bGVkRXZlbnQsCisgICAgICAgICAgd2hpY2ggaGFzIGZpcmUoKSB2
aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBjaGFuZ2UsIEFueSBh
Y3Rpb24gY2FuIGJlIGhvb2tlZCB1cCB0byB0aGUgZW5kIG9mIHRoZSBsYXlvdXQuCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2
ZW50OjpTY2hlZHVsZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRFdmVudDo6
flNjaGVkdWxlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2ZW50OjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVk
QWN0aW9uOjp+U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9u
U2NoZWR1bGVyOjppc1NjaGVkdWxlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAyLTI3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4u
cG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KaW5kZXggMGZlY2VjOTQxZTQ0Mjk2YWJlZmZjOTFkNTBmNmVlNWNiNTUw
ZmU1MS4uNjZlMzZlZTEwMDkxMGMzZWQ1ZGNiODg1NGZjYTVmMzg2ZmY0NzkyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KQEAgLTIyMTEsNiArMjIxMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
TG9hZFJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkMmZm
NmU2NDY3MTFlZTk2YjBjYjgzMmNkNmE3Y2UzZmVhYzY2ZGMzLi5hZmFiNDU2NjhiYzE1NTNiMGRh
YjVjY2Q3YjI5MzkwOGQ5ZmJhYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzE1LDYgKzIzMTUs
OCBAQAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVMb2FkUmVxdWVzdC5oJywKICAgICAgICAgICAg
ICdwYWdlL0ZyYW1lVHJlZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVUcmVlLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwJywKKyAgICAgICAgICAg
ICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVW
aWV3LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVZpZXcuaCcsCiAgICAgICAgICAgICAn
cGFnZS9HZW9sb2NhdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5Y2ExZThiNjNhNTExMTkz
NDM3YTI3NWQ0NDUzNGE3YmViODE3NTM1Li41YjU4ODI0NGU0ZDI3YWE0N2VhYjg4N2M0N2Y5ZDk4
ZTk2YTEwYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODgyLDYgKzg4Miw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHBhZ2UvRXZlbnRTb3VyY2UuY3BwIFwKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgXAogICAgIHBhZ2UvRnJhbWUuY3BwIFwKKyAgICBwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVy
LmNwcCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwIFwKICAgICBwYWdlL0ZyYW1lVmlldy5jcHAg
XAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYmExMWQwNmIyMDVmMDA0NTg1MzFlMjFkYTkzYmZh
MDViYmExZDUyOS4uZTIxYjdiZDUxOWRkNmM0MTFiNzZiMmJkNGRkODhlOTE0YWU4OTQ2ZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0NDU2
LDYgKzI0NDU2LDE0IEBACiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFt
ZS5oIgogCQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUFjdGlvblNjaGVkdWxlci5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1l
TG9hZFJlcXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBjNDRjMTk1YWE5MDc0ZTY1NzY5NzU2M2YzZWY1M2Y5YzEyYmU3
NGU5Li5iZGZlY2FlMmUyOTlhMWUxYmZjM2YwYTJhNDMzNzQzZWFiYTc3ZmZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTY2
LDYgKzMxNjYsOCBAQAogCQlBN0FBNjZENzExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FB
NjZENTExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmggKi87IH07CiAJCUE3QUQy
Rjg3MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FEMkY4NTBFQzg5RDA3MDA4QUIwMDIgLyogTGlu
a0hhc2guY3BwICovOyB9OwogCQlBN0FEMkY4ODBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg2
MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVs
ZXIuY3BwICovOyB9OworCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25T
Y2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovOyB9
OwogCQlBN0I2RTY5RjBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5
RiAvKiBEcmFnRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUy
NjQxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5jcHAgKi87IH07CiAJCUE3
QkJFMjY3MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY1MTFBRkIzRjIwMDA1
RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLzsgfTsKQEAgLTk1OTUsNiArOTU5Nyw4IEBA
CiAJCUE3QUE2NkQ1MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rSGFzaC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUQyRjg2MEVDODlEMDcwMDhBQjAwMiAvKiBM
aW5rSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rSGFzaC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyog
RnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVBY3Rpb25TY2hlZHVsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8q
IERyYWdEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAv
KiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTdCQkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTkzLDYgKzEzOTk3LDggQEAKIAkJCQkwNjIyODc4
MzBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCAqLywKIAkJCQk2NUJGMDIyOTA5
NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuY3BwICovLAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5oICovLAorCQkJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgKi8sCisJCQkJQTdCMDcwRDExMzBBNDA5QzAwQTM3NjNDIC8q
IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8sCiAJCQkJNjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUz
IC8qIEZyYW1lTG9hZFJlcXVlc3QuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEg
LyogRnJhbWVUcmVlLmNwcCAqLywKIAkJCQk2NUEyMTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJh
bWVUcmVlLmggKi8sCkBAIC0yMDY5NCw2ICsyMDcwMCw3IEBACiAJCQkJOTM1QzQ3NkQwOUFDNEQ2
MzAwQTZBQUI0IC8qIEZvdW5kYXRpb25FeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NTMx
MjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTdCMDcwRDMxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyog
RnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0
RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAwMEVCQTMxMUJE
QUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MTE2LDYgKzI1MTIzLDE1IEBACiAJCQkJOTNGMTlCMDUwODI0NUU1OTAwMUU5QUJDIC8q
IFhTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQkU1MTJEMENG
NkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0ZpbHRlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRjI5QzE2RTEzMDBDMkUyMDAyRDc5NEUgLyogQWNjZXNzaWJpbGl0eUFsbEluT25lLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk3NUNBMjhBMTMwMzY1RjgwMEU5OUFEOSAvKiBDcnlwdG8u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTc1Q0EyQTExMzAzNjc5RDAwRTk5QUQ5IC8qIEpTQ3J5
cHRvLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUExRTExNTQ0MTMwMTVDM0QwMDU0QUM4QyAvKiBE
aXN0YW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFFMTE1NDYxMzAxNUM0
RTAwNTRBQzhDIC8qIFBvaW50TGlnaHRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTFF
MTE1NDgxMzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlBN0IwNzBEMjEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjhEQkRCNEIxMzBCMEY4QTAwRjVDREIxIC8qIFNldFNl
bGVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQjhEQkRCNEQxMzBCMEY4QTAw
RjVDREIxIC8qIFNwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjEzOTY0NjI3NWM4NGMzMzkzNjEwOGNlN2NjZWEyODk3ZjJkMDM1ZGIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcApAQCAtMCww
ICsxLDExMSBAQAorLyoKKyAgIENvcHlyaWdodCAoQykgMTk5NyBNYXJ0aW4gSm9uZXMgKG1qb25l
c0BrZGUub3JnKQorICAgICAgICAgICAgIChDKSAxOTk4IFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5A
a2RlLm9yZykKKyAgICAgICAgICAgICAoQykgMTk5OCwgMTk5OSBUb3JiZW4gV2VpcyAod2Vpc0Br
ZGUub3JnKQorICAgICAgICAgICAgIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
CisgICAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcp
CisgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFt
ZUFjdGlvblNjaGVkdWxlci5oIgorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2NoZWR1bGVkRXZlbnQ6OlNjaGVk
dWxlZEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IHRhcmdl
dCkKKyAgICA6IG1fZXZlbnQoZXZlbnQpLCBtX2V2ZW50VGFyZ2V0KHRhcmdldCkKK3sKK30KKwor
U2NoZWR1bGVkRXZlbnQ6On5TY2hlZHVsZWRFdmVudCgpCit7Cit9CisKK3ZvaWQgU2NoZWR1bGVk
RXZlbnQ6OmZpcmUoKQoreworICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRo
YXQgYXJlIGluIHRoZSBkb2N1bWVudAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlm
IChtX2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCisgICAgICAgIG1fZXZlbnRUYXJnZXQtPmRp
c3BhdGNoRXZlbnQobV9ldmVudCwgZWMpOworfQorCitGcmFtZUFjdGlvblNjaGVkdWxlcjo6RnJh
bWVBY3Rpb25TY2hlZHVsZXIoKQorICAgIDogbV9lbnF1ZXVlQWN0aW9ucygwKQoreworfQorCitG
cmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKK3sKKyAgICBjbGVh
cigpOworfQorCitib29sIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjppc0VtcHR5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zY2hlZHVsZWRBY3Rpb25zLmlzRW1wdHkoKTsKK30KKwordm9pZCBGcmFt
ZUFjdGlvblNjaGVkdWxlcjo6Y2xlYXIoKQoreworICAgIGZvciAoVmVjdG9yPFNjaGVkdWxlZEFj
dGlvbio+OjppdGVyYXRvciBpID0gbV9zY2hlZHVsZWRBY3Rpb25zLmJlZ2luKCk7IGkgIT0gbV9z
Y2hlZHVsZWRBY3Rpb25zLmVuZCgpOyArK2kpCisgICAgICAgIGRlbGV0ZSAqaTsKKyAgICBtX3Nj
aGVkdWxlZEFjdGlvbnMuY2xlYXIoKTsKKyAgICBtX2VucXVldWVBY3Rpb25zID0gMDsKK30KKwor
dm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UoKQoreworICAgIEFTU0VSVChpc0VtcHR5
KCkgfHwgbV9lbnF1ZXVlQWN0aW9ucyk7CisgICAgbV9lbnF1ZXVlQWN0aW9ucysrOworfQorCit2
b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpyZXN1bWUoKQoreworICAgIG1fZW5xdWV1ZUFjdGlv
bnMtLTsKKyAgICBpZiAoIW1fZW5xdWV1ZUFjdGlvbnMpCisgICAgICAgIGRpc3BhdGNoKCk7Cisg
ICAgQVNTRVJUKGlzRW1wdHkoKSB8fCBtX2VucXVldWVBY3Rpb25zKTsKKworfQorCit2b2lkIEZy
YW1lQWN0aW9uU2NoZWR1bGVyOjpkaXNwYXRjaCgpCit7CisgICAgVmVjdG9yPFNjaGVkdWxlZEFj
dGlvbio+IHNuYXBzaG90OworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5zd2FwKHNuYXBzaG90KTsK
KyAgICAKKyAgICBmb3IgKFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPjo6aXRlcmF0b3IgaSA9IHNu
YXBzaG90LmJlZ2luKCk7IGkgIT0gc25hcHNob3QuZW5kKCk7ICsraSkgeworICAgICAgICBTY2hl
ZHVsZWRBY3Rpb24qIGFjdGlvbiA9ICppOworICAgICAgICBhY3Rpb24tPmZpcmUoKTsKKyAgICAg
ICAgZGVsZXRlIGFjdGlvbjsKKyAgICB9Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6
OnNjaGVkdWxlQWN0aW9uKFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uKQoreworICAgIG1fc2NoZWR1
bGVkQWN0aW9ucy5hcHBlbmQoYWN0aW9uKTsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxl
cjo6c2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2Rl
PiBldmVudFRhcmdldCkKK3sKKyAgICBzY2hlZHVsZUFjdGlvbihuZXcgU2NoZWR1bGVkRXZlbnQo
ZXZlbnQsIGV2ZW50VGFyZ2V0KSk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5Zjc1
NThkMGYxNTQ5ZTA1OTA0ZDNkYWQ1OGY0YTk4NmQ0OTQ4OTcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgKQEAgLTAsMCArMSw4MiBA
QAorLyoKKyAgIENvcHlyaWdodCAoQykgMTk5NyBNYXJ0aW4gSm9uZXMgKG1qb25lc0BrZGUub3Jn
KQorICAgICAgICAgICAgIChDKSAxOTk4IFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykK
KyAgICAgICAgICAgICAoQykgMTk5OCwgMTk5OSBUb3JiZW4gV2VpcyAod2Vpc0BrZGUub3JnKQor
ICAgICAgICAgICAgIChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgICAgICAg
ICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgICBDb3B5
cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorCisgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisKKyAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyovCisKKyNpZm5kZWYgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAorI2RlZmluZSBGcmFt
ZUFjdGlvblNjaGVkdWxlcl9oCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIk5vZGUu
aCIKKyNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIE5vZGU7CitjbGFzcyBFdmVudDsKKworY2xhc3MgU2NoZWR1bGVkQWN0aW9uIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVs
ZWRBY3Rpb24pOworcHVibGljOgorICAgIFNjaGVkdWxlZEFjdGlvbigpIHt9CisgICAgdmlydHVh
bCB+U2NoZWR1bGVkQWN0aW9uKCkge30KKyAgICB2aXJ0dWFsIHZvaWQgZmlyZSgpID0gMDsKK307
CisKK2NsYXNzIFNjaGVkdWxlZEV2ZW50IDogcHVibGljIFNjaGVkdWxlZEFjdGlvbiB7CitwdWJs
aWM6CisgICAgU2NoZWR1bGVkRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9k
ZT4pOworICAgIHZpcnR1YWwgflNjaGVkdWxlZEV2ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGZp
cmUoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8RXZlbnQ+IG1fZXZlbnQ7CisgICAgUmVmUHRy
PE5vZGU+IG1fZXZlbnRUYXJnZXQ7Cit9OworCitjbGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlciB7
CitwdWJsaWM6CisgICAgRnJhbWVBY3Rpb25TY2hlZHVsZXIoKTsKKyAgICB+RnJhbWVBY3Rpb25T
Y2hlZHVsZXIoKTsKKworICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OworICAgIGJvb2wgaXNTY2hl
ZHVsZWQoKSBjb25zdCB7IHJldHVybiAwIDwgbV9lbnF1ZXVlQWN0aW9uczsgfQorICAgIHZvaWQg
Y2xlYXIoKTsKKyAgICB2b2lkIHBhdXNlKCk7CisgICAgdm9pZCByZXN1bWUoKTsKKworICAgIHZv
aWQgc2NoZWR1bGVBY3Rpb24oU2NoZWR1bGVkQWN0aW9uKik7CisgICAgdm9pZCBzY2hlZHVsZUV2
ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+KTsKKworcHJpdmF0ZToKKyAg
ICB2b2lkIGRpc3BhdGNoKCk7CisKKyAgICB1bnNpZ25lZCBtX2VucXVldWVBY3Rpb25zOworICAg
IFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPiBtX3NjaGVkdWxlZEFjdGlvbnM7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBGcmFtZUFjdGlvblNjaGVkdWxlcl9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYzkzMzU2NDcxY2MxZjdjNmI3NjA1YzVhYmI0
NGM4YmYxMTY5OTFmOS4uNmMzM2RjYTk2M2ZjYjIzMGVhNTI3ZDUxZGRlYjQ2MDA3ODE3Zjg1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJh
bWVUcmVlLmgiCkBAIC0xMDksMTQgKzExMCw2IEBAIGRvdWJsZSBGcmFtZVZpZXc6OnNfZGVmZXJy
ZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0gMDsKIC8vIFRoZSBtYXhpbXVt
IG51bWJlciBvZiB1cGRhdGVXaWRnZXRzIGl0ZXJhdGlvbnMgdGhhdCBzaG91bGQgYmUgZG9uZSBi
ZWZvcmUgcmV0dXJuaW5nLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFVwZGF0ZVdpZGdldHNJ
dGVyYXRpb25zID0gMjsKIAotc3RydWN0IFNjaGVkdWxlZEV2ZW50IHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShTY2hlZHVsZWRFdmVudCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVi
bGljOgotICAgIFNjaGVkdWxlZEV2ZW50KCkgeyB9Ci0gICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50
OwotICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFyZ2V0OwotfTsKLQogRnJhbWVWaWV3OjpGcmFt
ZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFtZSkKICAgICAsIG1fY2FuSGF2
ZVNjcm9sbGJhcnModHJ1ZSkKQEAgLTEzMCw3ICsxMjMsNyBAQCBGcmFtZVZpZXc6OkZyYW1lVmll
dyhGcmFtZSogZnJhbWUpCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX2Jh
c2VCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OndoaXRlKQogICAgICwgbV9tZWRpYVR5cGUoInNjcmVl
biIpCi0gICAgLCBtX2VucXVldWVFdmVudHMoMCkKKyAgICAsIG1fc2NoZWR1bGVkQWN0aW9ucyhu
ZXcgRnJhbWVBY3Rpb25TY2hlZHVsZXIoKSkKICAgICAsIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eSh0
cnVlKQogICAgICwgbV92aWV3cG9ydFJlbmRlcmVyKDApCiAgICAgLCBtX3dhc1Njcm9sbGVkQnlV
c2VyKGZhbHNlKQpAQCAtMTY1LDggKzE1OCw3IEBAIEZyYW1lVmlldzo6fkZyYW1lVmlldygpCiB7
CiAgICAgaWYgKG1faGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcykgewogICAgICAgICBtX3Bvc3RM
YXlvdXRUYXNrc1RpbWVyLnN0b3AoKTsKLSAgICAgICAgbV9zY2hlZHVsZWRFdmVudHMuY2xlYXIo
KTsKLSAgICAgICAgbV9lbnF1ZXVlRXZlbnRzID0gMDsKKyAgICAgICAgbV9zY2hlZHVsZWRBY3Rp
b25zLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSAmJiBheE9iamVjdENhY2hlKCkpCkBAIC0xODIsOCArMTc0LDcgQEAg
RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxz
ZSk7CiAgICAgCiAgICAgQVNTRVJUKCFtX3Njcm9sbENvcm5lcik7Ci0gICAgQVNTRVJUKG1fc2No
ZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX2VucXVldWVFdmVudHMpOwor
ICAgIEFTU0VSVChtX3NjaGVkdWxlZEFjdGlvbnMtPmlzRW1wdHkoKSk7CiAKICAgICBpZiAobV9m
cmFtZSkgewogICAgICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpICE9IHRoaXMgfHwgIW1fZnJh
bWUtPmNvbnRlbnRSZW5kZXJlcigpKTsKQEAgLTg5MCw3ICs4ODEsNyBAQCB2b2lkIEZyYW1lVmll
dzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogCiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0g
cm9vdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKIAotICAgIHBhdXNlU2NoZWR1bGVkRXZlbnRzKCk7Cisg
ICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5wYXVzZSgpOwogCiAgICAgYm9vbCBkaXNhYmxlTGF5b3V0
U3RhdGUgPSBmYWxzZTsKICAgICBpZiAoc3VidHJlZSkgewpAQCAtOTY4LDEzICs5NTksMTIgQEAg
dm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkKICAgICAgICAgICAgIG1f
aGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcyA9IHRydWU7CiAgICAgICAgICAgICBtX3Bvc3RMYXlv
dXRUYXNrc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKICAgICAgICAgICAgIGlmIChuZWVkc0xheW91
dCgpKSB7Ci0gICAgICAgICAgICAgICAgcGF1c2VTY2hlZHVsZWRFdmVudHMoKTsKKyAgICAgICAg
ICAgICAgICBtX3NjaGVkdWxlZEFjdGlvbnMtPnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgbGF5
b3V0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICBy
ZXN1bWVTY2hlZHVsZWRFdmVudHMoKTsKLSAgICAgICAgQVNTRVJUKG1fZW5xdWV1ZUV2ZW50cyk7
CisgICAgICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+cmVzdW1lKCk7CiAgICAgfQogCiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMYXlvdXQoY29va2llKTsKQEAgLTE3OTQsMzAgKzE3
ODQsMTcgQEAgYm9vbCBGcmFtZVZpZXc6OnNob3VsZFVwZGF0ZShib29sIGltbWVkaWF0ZVJlcXVl
c3RlZCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gZXZlbnRUYXJnZXQpCiB7Ci0gICAgaWYgKCFt
X2VucXVldWVFdmVudHMpIHsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBTY2hlZHVsZWRFdmVudCogc2NoZWR1bGVkRXZlbnQgPSBuZXcgU2NoZWR1
bGVkRXZlbnQ7Ci0gICAgc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnQgPSBldmVudDsKLSAgICBzY2hl
ZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldCA9IGV2ZW50VGFyZ2V0OwotICAgIG1fc2NoZWR1bGVk
RXZlbnRzLmFwcGVuZChzY2hlZHVsZWRFdmVudCk7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5z
Y2hlZHVsZUV2ZW50KGV2ZW50LCBldmVudFRhcmdldCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpw
YXVzZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlz
RW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOwotICAgIG1fZW5xdWV1ZUV2ZW50cysrOworICAg
IG1fc2NoZWR1bGVkQWN0aW9ucy0+cGF1c2UoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnJlc3Vt
ZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAgbV9lbnF1ZXVlRXZlbnRzLS07Ci0gICAgaWYgKCFt
X2VucXVldWVFdmVudHMpCi0gICAgICAgIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7Ci0gICAg
QVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOwor
ICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+cmVzdW1lKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3Ojpz
Y3JvbGxUb0FuY2hvcigpCkBAIC0xOTQzLDcgKzE5MjAsNyBAQCB2b2lkIEZyYW1lVmlldzo6cGVy
Zm9ybVBvc3RMYXlvdXRUYXNrcygpCiAKICAgICBzY3JvbGxUb0FuY2hvcigpOwogCi0gICAgcmVz
dW1lU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5yZXN1bWUoKTsK
IAogICAgIGlmICghcm9vdC0+cHJpbnRpbmcoKSkgewogICAgICAgICBJbnRTaXplIGN1cnJlbnRT
aXplID0gSW50U2l6ZSh3aWR0aCgpLCBoZWlnaHQoKSk7CkBAIC0xOTgwLDM1ICsxOTU3LDEzIEBA
IHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVPdmVyZmxvd1N0YXR1cyhib29sIGhvcml6b250YWxPdmVy
ZmxvdywgYm9vbCB2ZXJ0aWNhbE92ZXJmCiAgICAgICAgIG1faG9yaXpvbnRhbE92ZXJmbG93ID0g
aG9yaXpvbnRhbE92ZXJmbG93OwogICAgICAgICBtX3ZlcnRpY2FsT3ZlcmZsb3cgPSB2ZXJ0aWNh
bE92ZXJmbG93OwogICAgICAgICAKLSAgICAgICAgc2NoZWR1bGVFdmVudChPdmVyZmxvd0V2ZW50
OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwgaG9yaXpvbnRhbE92ZXJmbG93LAor
ICAgICAgICBtX3NjaGVkdWxlZEFjdGlvbnMtPnNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6
Y3JlYXRlKGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKICAg
ICAgICAgICAgIHZlcnRpY2FsT3ZlcmZsb3dDaGFuZ2VkLCB2ZXJ0aWNhbE92ZXJmbG93KSwKICAg
ICAgICAgICAgIG1fdmlld3BvcnRSZW5kZXJlci0+bm9kZSgpKTsKICAgICB9CiAgICAgCiB9CiAK
LXZvaWQgRnJhbWVWaWV3OjpkaXNwYXRjaFNjaGVkdWxlZEV2ZW50cygpCi17Ci0gICAgaWYgKG1f
c2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVmVjdG9y
PFNjaGVkdWxlZEV2ZW50Kj4gc2NoZWR1bGVkRXZlbnRzQ29weSA9IG1fc2NoZWR1bGVkRXZlbnRz
OwotICAgIG1fc2NoZWR1bGVkRXZlbnRzLmNsZWFyKCk7Ci0gICAgCi0gICAgVmVjdG9yPFNjaGVk
dWxlZEV2ZW50Kj46Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZEV2ZW50c0NvcHkuZW5kKCk7Ci0g
ICAgZm9yIChWZWN0b3I8U2NoZWR1bGVkRXZlbnQqPjo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRF
dmVudHNDb3B5LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBTY2hlZHVsZWRF
dmVudCogc2NoZWR1bGVkRXZlbnQgPSAqaXQ7Ci0gICAgICAgIAotICAgICAgICBFeGNlcHRpb25D
b2RlIGVjID0gMDsKLSAgICAgICAgCi0gICAgICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRv
IG5vZGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudAotICAgICAgICBpZiAoc2NoZWR1bGVkRXZl
bnQtPm1fZXZlbnRUYXJnZXQtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIHNjaGVkdWxlZEV2
ZW50LT5tX2V2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50
LCBlYyk7Ci0gICAgICAgIAotICAgICAgICBkZWxldGUgc2NoZWR1bGVkRXZlbnQ7Ci0gICAgfQot
fQotCiBJbnRSZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50
cykgY29uc3QKIHsKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmgKaW5kZXggNWZhYjRhNGEwOTA1MGUwMzZmZmYyMzljZjg1MjIzMzk0ZGUz
Yzg2NS4uZjI1OWY4MGZhZTE3MmNmMmEwYjg0ZTkwY2NjZWRiNTVkZWNmMmEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ29sb3I7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lQWN0aW9uU2NoZWR1bGVyOwog
Y2xhc3MgRnJhbWVWaWV3UHJpdmF0ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBOb2RlOwpAQCAt
NDYsOCArNDcsNiBAQCBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9i
amVjdDsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiAKLXN0cnVjdCBTY2hlZHVsZWRFdmVu
dDsKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRpbWVyOwogCiBjbGFzcyBGcmFtZVZp
ZXcgOiBwdWJsaWMgU2Nyb2xsVmlldyB7CkBAIC0yOTcsNyArMjk2LDYgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgdXBkYXRlT3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJv
b2wgdmVydGljYWxPdmVyZmxvdyk7CiAKLSAgICB2b2lkIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRz
KCk7CiAgICAgdm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRl
KTsKQEAgLTM4MSw5ICszNzksOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21lZGlhVHlwZTsK
ICAgICBTdHJpbmcgbV9tZWRpYVR5cGVXaGVuTm90UHJpbnRpbmc7CiAKLSAgICB1bnNpZ25lZCBt
X2VucXVldWVFdmVudHM7Ci0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj4gbV9zY2hlZHVsZWRF
dmVudHM7Ci0gICAgCisgICAgT3duUHRyPEZyYW1lQWN0aW9uU2NoZWR1bGVyPiBtX3NjaGVkdWxl
ZEFjdGlvbnM7CisKICAgICBib29sIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eTsKICAgICBib29sIG1f
aG9yaXpvbnRhbE92ZXJmbG93OwogICAgIGJvb2wgbV92ZXJ0aWNhbE92ZXJmbG93OyAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84039</attachid>
            <date>2011-02-28 04:19:52 -0800</date>
            <delta_ts>2011-03-01 23:35:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54440-20110228211950.patch</filename>
            <type>text/plain</type>
            <size>23109</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk4NDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IGE5MWUxYmJkZjViYmIy
Y2ZlMTEzN2VhOTUxYzg0MTU2ZmY4ODVhNzQuLjkzZTNhMDU5YTM3N2M3MjUyYjUxNzUxMTg4Mzk0
ODM1ZmRlNzYzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE3LDYgKzQxNyw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IDUyNjVmN2VlODYxNDA4ZWEzMTljMmU2ODNiMzNjZjU1NTJiYmFiNmEuLjA1ZWRlYjc4ZTA2
NzM3NWVkNTdkNGVhMTUzZWY1MzZjYzllYmI4MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQwLDYgKzExNDAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwYzg4NGNiYjA5N2E3NmY1ZjA3OGNiNTc4ZDQ0ZDI0ZjFhZWNlNDA5Li5hNDhlNzM1
OWNlN2IwMmMzMTE4MGNhMzMxMjcxNDczNDY1NzQxOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDItMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgU2NoZWR1bGVkQWN0aW9uIGFic3RyYWN0
IGNsYXNzIGZyb20gU2NoZWR1bGVkRXZlbnQsCisgICAgICAgICAgd2hpY2ggaGFzIGZpcmUoKSB2
aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBjaGFuZ2UsIEFueSBh
Y3Rpb24gY2FuIGJlIGhvb2tlZCB1cCB0byB0aGUgZW5kIG9mIHRoZSBsYXlvdXQuCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2
ZW50OjpTY2hlZHVsZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRFdmVudDo6
flNjaGVkdWxlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2ZW50OjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVk
QWN0aW9uOjp+U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9u
U2NoZWR1bGVyOjppc1NjaGVkdWxlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAyLTI3ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW4u
cG91bGFpbkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KaW5kZXggMGZlY2VjOTQxZTQ0Mjk2YWJlZmZjOTFkNTBmNmVlNWNiNTUw
ZmU1MS4uNjZlMzZlZTEwMDkxMGMzZWQ1ZGNiODg1NGZjYTVmMzg2ZmY0NzkyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KQEAgLTIyMTEsNiArMjIxMSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
TG9hZFJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkMmZm
NmU2NDY3MTFlZTk2YjBjYjgzMmNkNmE3Y2UzZmVhYzY2ZGMzLi5hZmFiNDU2NjhiYzE1NTNiMGRh
YjVjY2Q3YjI5MzkwOGQ5ZmJhYTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzE1LDYgKzIzMTUs
OCBAQAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVMb2FkUmVxdWVzdC5oJywKICAgICAgICAgICAg
ICdwYWdlL0ZyYW1lVHJlZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVUcmVlLmgnLAor
ICAgICAgICAgICAgJ3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwJywKKyAgICAgICAgICAg
ICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWVW
aWV3LmNwcCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVZpZXcuaCcsCiAgICAgICAgICAgICAn
cGFnZS9HZW9sb2NhdGlvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA5Y2ExZThiNjNhNTExMTkz
NDM3YTI3NWQ0NDUzNGE3YmViODE3NTM1Li41YjU4ODI0NGU0ZDI3YWE0N2VhYjg4N2M0N2Y5ZDk4
ZTk2YTEwYzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODgyLDYgKzg4Miw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHBhZ2UvRXZlbnRTb3VyY2UuY3BwIFwKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAgXAogICAgIHBhZ2UvRnJhbWUuY3BwIFwKKyAgICBwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVy
LmNwcCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwIFwKICAgICBwYWdlL0ZyYW1lVmlldy5jcHAg
XAogICAgIHBhZ2UvR2VvbG9jYXRpb24uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYmExMWQwNmIyMDVmMDA0NTg1MzFlMjFkYTkzYmZh
MDViYmExZDUyOS4uZTIxYjdiZDUxOWRkNmM0MTFiNzZiMmJkNGRkODhlOTE0YWU4OTQ2ZCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0NDU2
LDYgKzI0NDU2LDE0IEBACiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFt
ZS5oIgogCQkJCT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUFjdGlvblNjaGVkdWxlci5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1l
TG9hZFJlcXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBjNDRjMTk1YWE5MDc0ZTY1NzY5NzU2M2YzZWY1M2Y5YzEyYmU3
NGU5Li4wODg3NjMwMGE5ZTM2YjNkM2EyYzQ3NTcyZDc1Y2M1NmJlYTE2NDdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMTY2
LDYgKzMxNjYsOCBAQAogCQlBN0FBNjZENzExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNh
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FB
NjZENTExQzVFRDZBMDAxRDhDOEMgLyogUmVuZGVySW5kaWNhdG9yLmggKi87IH07CiAJCUE3QUQy
Rjg3MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FEMkY4NTBFQzg5RDA3MDA4QUIwMDIgLyogTGlu
a0hhc2guY3BwICovOyB9OwogCQlBN0FEMkY4ODBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2gu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg2
MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVs
ZXIuY3BwICovOyB9OworCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25T
Y2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovOyB9
OwogCQlBN0I2RTY5RjBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5
RiAvKiBEcmFnRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE3QkJFMjY2MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUy
NjQxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5jcHAgKi87IH07CiAJCUE3
QkJFMjY3MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY1MTFBRkIzRjIwMDA1
RUEwMyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLzsgfTsKQEAgLTk1OTUsNiArOTU5Nyw4IEBA
CiAJCUE3QUE2NkQ1MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW5kaWNhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMaW5rSGFzaC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QUQyRjg2MEVDODlEMDcwMDhBQjAwMiAvKiBM
aW5rSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMaW5rSGFzaC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyog
RnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVBY3Rpb25TY2hlZHVsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8q
IERyYWdEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdEYXRhLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAv
KiBKU0hUTUxNZXRlckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MTWV0ZXJFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTdCQkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxNZXRlckVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzOTkzLDYgKzEzOTk3LDggQEAKIAkJCQkwNjIyODc4
MzBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCAqLywKIAkJCQk2NUJGMDIyOTA5
NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuY3BwICovLAogCQkJCTY1QkYwMjJBMDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5oICovLAorCQkJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgKi8sCisJCQkJQTdCMDcwRDExMzBBNDA5QzAwQTM3NjNDIC8q
IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8sCiAJCQkJNjU4NDM2ODUwQUUwMUI3NDAwRTUzNzUz
IC8qIEZyYW1lTG9hZFJlcXVlc3QuaCAqLywKIAkJCQk2NUEyMTQ4MjA5N0EzRjUzMDBCOTA1MEEg
LyogRnJhbWVUcmVlLmNwcCAqLywKIAkJCQk2NUEyMTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJh
bWVUcmVlLmggKi8sCkBAIC0yMDY5NCw2ICsyMDcwMCw3IEBACiAJCQkJOTM1QzQ3NkQwOUFDNEQ2
MzAwQTZBQUI0IC8qIEZvdW5kYXRpb25FeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NTMx
MjNEMTFEMDQ3MUIwMEQ0RDA3NyAvKiBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1QkYwMjJGMDk3NDgxNjMwMEM0MzE5NiAvKiBGcmFtZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTdCMDcwRDMxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczQzBBREJBNURFMDBBNDU1NEQgLyog
RnJhbWVMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNFMEFEQkE1REUwMEE0NTU0
RCAvKiBGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDAwMEVCQTMxMUJE
QUZENDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MTE2LDYgKzI1MTIzLDcgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyog
WFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rp
b25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDM3YmUxMmU4ZTk3MzA2OTk2YmI1MjcyMzE3NzljYjkwMDkwYzdh
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hl
ZHVsZXIuY3BwCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkZyYW1lQWN0aW9uU2NoZWR1bGVyLmgiCisKKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2NoZWR1bGVkRXZlbnQ6OlNjaGVkdWxl
ZEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IHRhcmdldCkK
KyAgICA6IG1fZXZlbnQoZXZlbnQpLCBtX2V2ZW50VGFyZ2V0KHRhcmdldCkKK3sKK30KKworU2No
ZWR1bGVkRXZlbnQ6On5TY2hlZHVsZWRFdmVudCgpCit7Cit9CisKK3ZvaWQgU2NoZWR1bGVkRXZl
bnQ6OmZpcmUoKQoreworICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRoYXQg
YXJlIGluIHRoZSBkb2N1bWVudAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlmICht
X2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCisgICAgICAgIG1fZXZlbnRUYXJnZXQtPmRpc3Bh
dGNoRXZlbnQobV9ldmVudCwgZWMpOworfQorCitGcmFtZUFjdGlvblNjaGVkdWxlcjo6RnJhbWVB
Y3Rpb25TY2hlZHVsZXIoKQorICAgIDogbV9lbnF1ZXVlQWN0aW9ucygwKQoreworfQorCitGcmFt
ZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKK3sKKyAgICBjbGVhcigp
OworfQorCitib29sIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjppc0VtcHR5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zY2hlZHVsZWRBY3Rpb25zLmlzRW1wdHkoKTsKK30KKwordm9pZCBGcmFtZUFj
dGlvblNjaGVkdWxlcjo6Y2xlYXIoKQoreworICAgIGZvciAoVmVjdG9yPFNjaGVkdWxlZEFjdGlv
bio+OjppdGVyYXRvciBpID0gbV9zY2hlZHVsZWRBY3Rpb25zLmJlZ2luKCk7IGkgIT0gbV9zY2hl
ZHVsZWRBY3Rpb25zLmVuZCgpOyArK2kpCisgICAgICAgIGRlbGV0ZSAqaTsKKyAgICBtX3NjaGVk
dWxlZEFjdGlvbnMuY2xlYXIoKTsKKyAgICBtX2VucXVldWVBY3Rpb25zID0gMDsKK30KKwordm9p
ZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UoKQoreworICAgIEFTU0VSVChpc0VtcHR5KCkg
fHwgbV9lbnF1ZXVlQWN0aW9ucyk7CisgICAgbV9lbnF1ZXVlQWN0aW9ucysrOworfQorCit2b2lk
IEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpyZXN1bWUoKQoreworICAgIG1fZW5xdWV1ZUFjdGlvbnMt
LTsKKyAgICBpZiAoIW1fZW5xdWV1ZUFjdGlvbnMpCisgICAgICAgIGRpc3BhdGNoKCk7CisgICAg
QVNTRVJUKGlzRW1wdHkoKSB8fCBtX2VucXVldWVBY3Rpb25zKTsKKworfQorCit2b2lkIEZyYW1l
QWN0aW9uU2NoZWR1bGVyOjpkaXNwYXRjaCgpCit7CisgICAgVmVjdG9yPFNjaGVkdWxlZEFjdGlv
bio+IHNuYXBzaG90OworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5zd2FwKHNuYXBzaG90KTsKKyAg
ICAKKyAgICBmb3IgKFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPjo6aXRlcmF0b3IgaSA9IHNuYXBz
aG90LmJlZ2luKCk7IGkgIT0gc25hcHNob3QuZW5kKCk7ICsraSkgeworICAgICAgICBTY2hlZHVs
ZWRBY3Rpb24qIGFjdGlvbiA9ICppOworICAgICAgICBhY3Rpb24tPmZpcmUoKTsKKyAgICAgICAg
ZGVsZXRlIGFjdGlvbjsKKyAgICB9Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNj
aGVkdWxlQWN0aW9uKFNjaGVkdWxlZEFjdGlvbiogYWN0aW9uKQoreworICAgIG1fc2NoZWR1bGVk
QWN0aW9ucy5hcHBlbmQoYWN0aW9uKTsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6
c2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBl
dmVudFRhcmdldCkKK3sKKyAgICBzY2hlZHVsZUFjdGlvbihuZXcgU2NoZWR1bGVkRXZlbnQoZXZl
bnQsIGV2ZW50VGFyZ2V0KSk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNGYwYjI5
YzMzN2Y1MWZlYjU1NGFjYjVlOGJhN2M5ODAyODk0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgKQEAgLTAsMCArMSw4MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAorI2RlZmluZSBGcmFtZUFj
dGlvblNjaGVkdWxlcl9oCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIK
KworI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgU2NoZWR1bGVkQWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVsZWRBY3Rpb24pOworcHVibGljOgorICAgIFNjaGVk
dWxlZEFjdGlvbigpIHt9CisgICAgdmlydHVhbCB+U2NoZWR1bGVkQWN0aW9uKCkge30KKyAgICB2
aXJ0dWFsIHZvaWQgZmlyZSgpID0gMDsKK307CisKK2NsYXNzIFNjaGVkdWxlZEV2ZW50IDogcHVi
bGljIFNjaGVkdWxlZEFjdGlvbiB7CitwdWJsaWM6CisgICAgU2NoZWR1bGVkRXZlbnQoUGFzc1Jl
ZlB0cjxFdmVudD4sIFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHZpcnR1YWwgflNjaGVkdWxlZEV2
ZW50KCk7CisgICAgdmlydHVhbCB2b2lkIGZpcmUoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8
RXZlbnQ+IG1fZXZlbnQ7CisgICAgUmVmUHRyPE5vZGU+IG1fZXZlbnRUYXJnZXQ7Cit9OworCitj
bGFzcyBGcmFtZUFjdGlvblNjaGVkdWxlciB7CitwdWJsaWM6CisgICAgRnJhbWVBY3Rpb25TY2hl
ZHVsZXIoKTsKKyAgICB+RnJhbWVBY3Rpb25TY2hlZHVsZXIoKTsKKworICAgIGJvb2wgaXNFbXB0
eSgpIGNvbnN0OworICAgIGJvb2wgaXNTY2hlZHVsZWQoKSBjb25zdCB7IHJldHVybiAwIDwgbV9l
bnF1ZXVlQWN0aW9uczsgfQorICAgIHZvaWQgY2xlYXIoKTsKKyAgICB2b2lkIHBhdXNlKCk7Cisg
ICAgdm9pZCByZXN1bWUoKTsKKworICAgIHZvaWQgc2NoZWR1bGVBY3Rpb24oU2NoZWR1bGVkQWN0
aW9uKik7CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVm
UHRyPE5vZGU+KTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGRpc3BhdGNoKCk7CisKKyAgICB1bnNp
Z25lZCBtX2VucXVldWVBY3Rpb25zOworICAgIFZlY3RvcjxTY2hlZHVsZWRBY3Rpb24qPiBtX3Nj
aGVkdWxlZEFjdGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBGcmFtZUFjdGlvblNjaGVkdWxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
YzkzMzU2NDcxY2MxZjdjNmI3NjA1YzVhYmI0NGM4YmYxMTY5OTFmOS4uNmMzM2RjYTk2M2ZjYjIz
MGVhNTI3ZDUxZGRlYjQ2MDA3ODE3Zjg1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3Vz
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVBY3Rpb25T
Y2hlZHVsZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBAIC0xMDksMTQgKzExMCw2IEBA
IGRvdWJsZSBGcmFtZVZpZXc6OnNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdM
b2FkaW5nID0gMDsKIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiB1cGRhdGVXaWRnZXRzIGl0ZXJh
dGlvbnMgdGhhdCBzaG91bGQgYmUgZG9uZSBiZWZvcmUgcmV0dXJuaW5nLgogc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heFVwZGF0ZVdpZGdldHNJdGVyYXRpb25zID0gMjsKIAotc3RydWN0IFNjaGVk
dWxlZEV2ZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVsZWRFdmVudCk7IFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFNjaGVkdWxlZEV2ZW50KCkgeyB9
Ci0gICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50OwotICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFy
Z2V0OwotfTsKLQogRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgIDogbV9m
cmFtZShmcmFtZSkKICAgICAsIG1fY2FuSGF2ZVNjcm9sbGJhcnModHJ1ZSkKQEAgLTEzMCw3ICsx
MjMsNyBAQCBGcmFtZVZpZXc6OkZyYW1lVmlldyhGcmFtZSogZnJhbWUpCiAgICAgLCBtX2lzVHJh
bnNwYXJlbnQoZmFsc2UpCiAgICAgLCBtX2Jhc2VCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OndoaXRl
KQogICAgICwgbV9tZWRpYVR5cGUoInNjcmVlbiIpCi0gICAgLCBtX2VucXVldWVFdmVudHMoMCkK
KyAgICAsIG1fc2NoZWR1bGVkQWN0aW9ucyhuZXcgRnJhbWVBY3Rpb25TY2hlZHVsZXIoKSkKICAg
ICAsIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eSh0cnVlKQogICAgICwgbV92aWV3cG9ydFJlbmRlcmVy
KDApCiAgICAgLCBtX3dhc1Njcm9sbGVkQnlVc2VyKGZhbHNlKQpAQCAtMTY1LDggKzE1OCw3IEBA
IEZyYW1lVmlldzo6fkZyYW1lVmlldygpCiB7CiAgICAgaWYgKG1faGFzUGVuZGluZ1Bvc3RMYXlv
dXRUYXNrcykgewogICAgICAgICBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLnN0b3AoKTsKLSAgICAg
ICAgbV9zY2hlZHVsZWRFdmVudHMuY2xlYXIoKTsKLSAgICAgICAgbV9lbnF1ZXVlRXZlbnRzID0g
MDsKKyAgICAgICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5jbGVhcigpOwogICAgIH0KICAgICAKICAg
ICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBheE9iamVjdENh
Y2hlKCkpCkBAIC0xODIsOCArMTc0LDcgQEAgRnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKICAgICBz
ZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSk7CiAgICAgCiAgICAgQVNTRVJUKCFtX3Njcm9s
bENvcm5lcik7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAg
QVNTRVJUKCFtX2VucXVldWVFdmVudHMpOworICAgIEFTU0VSVChtX3NjaGVkdWxlZEFjdGlvbnMt
PmlzRW1wdHkoKSk7CiAKICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBBU1NFUlQobV9mcmFt
ZS0+dmlldygpICE9IHRoaXMgfHwgIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKTsKQEAgLTg5
MCw3ICs4ODEsNyBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQog
CiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gcm9vdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKIAotICAg
IHBhdXNlU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5wYXVzZSgp
OwogCiAgICAgYm9vbCBkaXNhYmxlTGF5b3V0U3RhdGUgPSBmYWxzZTsKICAgICBpZiAoc3VidHJl
ZSkgewpAQCAtOTY4LDEzICs5NTksMTIgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFs
bG93U3VidHJlZSkKICAgICAgICAgICAgIG1faGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcyA9IHRy
dWU7CiAgICAgICAgICAgICBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
ICAgICAgICAgICAgIGlmIChuZWVkc0xheW91dCgpKSB7Ci0gICAgICAgICAgICAgICAgcGF1c2VT
Y2hlZHVsZWRFdmVudHMoKTsKKyAgICAgICAgICAgICAgICBtX3NjaGVkdWxlZEFjdGlvbnMtPnBh
dXNlKCk7CiAgICAgICAgICAgICAgICAgbGF5b3V0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICByZXN1bWVTY2hlZHVsZWRFdmVudHMoKTsKLSAgICAg
ICAgQVNTRVJUKG1fZW5xdWV1ZUV2ZW50cyk7CisgICAgICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+
cmVzdW1lKCk7CiAgICAgfQogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMYXlv
dXQoY29va2llKTsKQEAgLTE3OTQsMzAgKzE3ODQsMTcgQEAgYm9vbCBGcmFtZVZpZXc6OnNob3Vs
ZFVwZGF0ZShib29sIGltbWVkaWF0ZVJlcXVlc3RlZCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6
OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4g
ZXZlbnRUYXJnZXQpCiB7Ci0gICAgaWYgKCFtX2VucXVldWVFdmVudHMpIHsKLSAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2
ZW50LCBlYyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBTY2hlZHVsZWRFdmVudCog
c2NoZWR1bGVkRXZlbnQgPSBuZXcgU2NoZWR1bGVkRXZlbnQ7Ci0gICAgc2NoZWR1bGVkRXZlbnQt
Pm1fZXZlbnQgPSBldmVudDsKLSAgICBzY2hlZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldCA9IGV2
ZW50VGFyZ2V0OwotICAgIG1fc2NoZWR1bGVkRXZlbnRzLmFwcGVuZChzY2hlZHVsZWRFdmVudCk7
CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLT5zY2hlZHVsZUV2ZW50KGV2ZW50LCBldmVudFRhcmdl
dCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpwYXVzZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAg
QVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOwot
ICAgIG1fZW5xdWV1ZUV2ZW50cysrOworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+cGF1c2UoKTsK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAgbV9l
bnF1ZXVlRXZlbnRzLS07Ci0gICAgaWYgKCFtX2VucXVldWVFdmVudHMpCi0gICAgICAgIGRpc3Bh
dGNoU2NoZWR1bGVkRXZlbnRzKCk7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1w
dHkoKSB8fCBtX2VucXVldWVFdmVudHMpOworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy0+cmVzdW1l
KCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb0FuY2hvcigpCkBAIC0xOTQzLDcgKzE5
MjAsNyBAQCB2b2lkIEZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAKICAgICBz
Y3JvbGxUb0FuY2hvcigpOwogCi0gICAgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgbV9z
Y2hlZHVsZWRBY3Rpb25zLT5yZXN1bWUoKTsKIAogICAgIGlmICghcm9vdC0+cHJpbnRpbmcoKSkg
ewogICAgICAgICBJbnRTaXplIGN1cnJlbnRTaXplID0gSW50U2l6ZSh3aWR0aCgpLCBoZWlnaHQo
KSk7CkBAIC0xOTgwLDM1ICsxOTU3LDEzIEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVPdmVyZmxv
d1N0YXR1cyhib29sIGhvcml6b250YWxPdmVyZmxvdywgYm9vbCB2ZXJ0aWNhbE92ZXJmCiAgICAg
ICAgIG1faG9yaXpvbnRhbE92ZXJmbG93ID0gaG9yaXpvbnRhbE92ZXJmbG93OwogICAgICAgICBt
X3ZlcnRpY2FsT3ZlcmZsb3cgPSB2ZXJ0aWNhbE92ZXJmbG93OwogICAgICAgICAKLSAgICAgICAg
c2NoZWR1bGVFdmVudChPdmVyZmxvd0V2ZW50OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hh
bmdlZCwgaG9yaXpvbnRhbE92ZXJmbG93LAorICAgICAgICBtX3NjaGVkdWxlZEFjdGlvbnMtPnNj
aGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6Y3JlYXRlKGhvcml6b250YWxPdmVyZmxvd0NoYW5n
ZWQsIGhvcml6b250YWxPdmVyZmxvdywKICAgICAgICAgICAgIHZlcnRpY2FsT3ZlcmZsb3dDaGFu
Z2VkLCB2ZXJ0aWNhbE92ZXJmbG93KSwKICAgICAgICAgICAgIG1fdmlld3BvcnRSZW5kZXJlci0+
bm9kZSgpKTsKICAgICB9CiAgICAgCiB9CiAKLXZvaWQgRnJhbWVWaWV3OjpkaXNwYXRjaFNjaGVk
dWxlZEV2ZW50cygpCi17Ci0gICAgaWYgKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj4gc2NoZWR1bGVkRXZl
bnRzQ29weSA9IG1fc2NoZWR1bGVkRXZlbnRzOwotICAgIG1fc2NoZWR1bGVkRXZlbnRzLmNsZWFy
KCk7Ci0gICAgCi0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj46Oml0ZXJhdG9yIGVuZCA9IHNj
aGVkdWxlZEV2ZW50c0NvcHkuZW5kKCk7Ci0gICAgZm9yIChWZWN0b3I8U2NoZWR1bGVkRXZlbnQq
Pjo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRFdmVudHNDb3B5LmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgewotICAgICAgICBTY2hlZHVsZWRFdmVudCogc2NoZWR1bGVkRXZlbnQgPSAqaXQ7Ci0g
ICAgICAgIAotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgCi0gICAgICAg
IC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVu
dAotICAgICAgICBpZiAoc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnRUYXJnZXQtPmluRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2
ZW50KHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50LCBlYyk7Ci0gICAgICAgIAotICAgICAgICBkZWxl
dGUgc2NoZWR1bGVkRXZlbnQ7Ci0gICAgfQotfQotCiBJbnRSZWN0IEZyYW1lVmlldzo6d2luZG93
Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QKIHsKICAgICBBU1NFUlQobV9mcmFt
ZS0+dmlldygpID09IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggNWZhYjRhNGEw
OTA1MGUwMzZmZmYyMzljZjg1MjIzMzk0ZGUzYzg2NS4uZjI1OWY4MGZhZTE3MmNmMmEwYjg0ZTkw
Y2NjZWRiNTVkZWNmMmEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC0zNyw2ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CiBjbGFzcyBFdmVudDsKK2Ns
YXNzIEZyYW1lQWN0aW9uU2NoZWR1bGVyOwogY2xhc3MgRnJhbWVWaWV3UHJpdmF0ZTsKIGNsYXNz
IEludFJlY3Q7CiBjbGFzcyBOb2RlOwpAQCAtNDYsOCArNDcsNiBAQCBjbGFzcyBSZW5kZXJPYmpl
Y3Q7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBh
cnQ7CiAKLXN0cnVjdCBTY2hlZHVsZWRFdmVudDsKLQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNs
YXNzIFRpbWVyOwogCiBjbGFzcyBGcmFtZVZpZXcgOiBwdWJsaWMgU2Nyb2xsVmlldyB7CkBAIC0y
OTcsNyArMjk2LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlT3ZlcmZsb3dTdGF0dXMo
Ym9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wgdmVydGljYWxPdmVyZmxvdyk7CiAKLSAgICB2
b2lkIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7CiAgICAgdm9pZCBwZXJmb3JtUG9zdExheW91
dFRhc2tzKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29u
c3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKQEAgLTM4MSw5ICszNzksOCBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX21lZGlhVHlwZTsKICAgICBTdHJpbmcgbV9tZWRpYVR5cGVXaGVuTm90
UHJpbnRpbmc7CiAKLSAgICB1bnNpZ25lZCBtX2VucXVldWVFdmVudHM7Ci0gICAgVmVjdG9yPFNj
aGVkdWxlZEV2ZW50Kj4gbV9zY2hlZHVsZWRFdmVudHM7Ci0gICAgCisgICAgT3duUHRyPEZyYW1l
QWN0aW9uU2NoZWR1bGVyPiBtX3NjaGVkdWxlZEFjdGlvbnM7CisKICAgICBib29sIG1fb3ZlcmZs
b3dTdGF0dXNEaXJ0eTsKICAgICBib29sIG1faG9yaXpvbnRhbE92ZXJmbG93OwogICAgIGJvb2wg
bV92ZXJ0aWNhbE92ZXJmbG93OyAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84373</attachid>
            <date>2011-03-01 23:35:10 -0800</date>
            <delta_ts>2011-03-02 03:15:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54440-20110302163508.patch</filename>
            <type>text/plain</type>
            <size>22974</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDg0OGQ0MzgyOTc2Zjk3
YjQxMGJiZGZlMGU4ZGVlOGQzYmQ2NTBiNDUuLmIwNWJhNWY4YTEwZTcxMjcxYjI0NDFiM2QyMGY0
ZGE1MWI0MTAxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE4LDYgKzQxOCw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGMwMjI2NWM2NDZkMDhiYjBkYzE5MGI3ZWIwYWVmYzcwZDI1ZTNlOTYuLjBiNjRlMTJkYzBm
ZGM3MGI2YjU3NTllYTVkYjExM2U2MzI0M2NlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQxLDYgKzExNDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNWE4ODRhYWUyODliOTY4NTc1MWM3YjE0ZjMxMjE3YjJhMzQyYWQ4Li40YTU1NTc3
ZmZkZDZmYTI2NjI2M2M4ODhkYmI3Nzg2MmJmNzZmMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDItMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgU2NoZWR1bGVkQWN0aW9uIGFic3RyYWN0
IGNsYXNzIGZyb20gU2NoZWR1bGVkRXZlbnQsCisgICAgICAgICAgd2hpY2ggaGFzIGZpcmUoKSB2
aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBjaGFuZ2UsIEFueSBh
Y3Rpb24gY2FuIGJlIGhvb2tlZCB1cCB0byB0aGUgZW5kIG9mIHRoZSBsYXlvdXQuCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2
ZW50OjpTY2hlZHVsZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRFdmVudDo6
flNjaGVkdWxlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2ZW50OjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVk
QWN0aW9uOjp+U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9u
U2NoZWR1bGVyOjppc1NjaGVkdWxlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAzLTAxICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCA3ZWEyZTUxMTQxYzc2Mzg1OGFmNTM0OTEwNWY1MjcxOTQyMzZlN2Y3Li45ZDJi
YjdkMTkxYTM5MzFhYWZlZjEyZTAyZjNkZGIyZDVhOTEwOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMjIxNSw2ICsyMjE1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
QWN0aW9uU2NoZWR1bGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVMb2FkUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIyYWJlYjViNjk4MTRj
ZWQ4MDBlZDU0OGJkYWYyNGZmNmMwYzdmYmMuLjk2NjFlMWE3ZTI5NGZjMjc5YWU3M2Y3YWY0MGYy
YWFhMmI3MDMxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzMzQsNiArMjMzNCw4IEBACiAgICAg
ICAgICAgICAncGFnZS9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJh
bWVUcmVlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVRyZWUuaCcsCisgICAgICAgICAg
ICAncGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvRnJh
bWVBY3Rpb25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVZpZXcuY3BwJywK
ICAgICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xv
Y2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQ1OGQ2YTIxNDBhYTJjYjc3NGQ4YTIxMDhk
YmU3MDFiYzRlNWRhY2MuLjVjZjBjN2U5NjhlMTIzNDE0ODgyY2VhYjBhNjY2ODVjZDJhYTJlOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC04ODMsNiArODgzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFn
ZS9FdmVudFNvdXJjZS5jcHAgXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBcCiAgICAg
cGFnZS9GcmFtZS5jcHAgXAorICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIFwKICAg
ICBwYWdlL0ZyYW1lVHJlZS5jcHAgXAogICAgIHBhZ2UvRnJhbWVWaWV3LmNwcCBcCiAgICAgcGFn
ZS9HZW9sb2NhdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA0NmNjYzJjODgyMWRiZjg3OWUxNjA0YmFjMGE4NzEwYTYzNWNmNDU3
Li43ZjE0YzY0ZDczMzg1NjIzYTEyODEyNTRjMTNmYzJlM2IxYzkyMmRlIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjQ0NjAsNiArMjQ0NjAs
MTQgQEAKIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lLmgiCiAJCQkJ
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVBY3Rpb25TY2hlZHVs
ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXEZyYW1lQWN0aW9uU2NoZWR1bGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVMb2FkUmVxdWVz
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDA2M2MwYzM0NTExNDU2MGZlYTM5N2Q5ZWU3ODViNmMyNDEyNGZiODkuLmY2YjFk
YWRhOGQ3MzVmNGRjZDM5YmNkNzg0ZmRhNTBmMGFjNmE1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxNzEsNiArMzE3MSw4
IEBACiAJCUE3QUE2NkQ3MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ1MTFDNUVE
NkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCAqLzsgfTsKIAkJQTdBRDJGODcwRUM4OUQw
NzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAg
Ki87IH07CiAJCUE3QUQyRjg4MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBRDJGODYwRUM4OUQwNzAw
OEFCMDAyIC8qIExpbmtIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJQTdCMDcwRDIxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgKi87
IH07CisJCUE3QjA3MEQzMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCMDcwRDEx
MzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi87IH07CiAJCUE3QjZF
NjlGMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdE
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTdCQkUyNjYxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JCRTI2NDExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTdCQkUyNjcxMUFG
QjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpT
SFRNTE1ldGVyRWxlbWVudC5oICovOyB9OwpAQCAtOTYwNiw2ICs5NjA4LDggQEAKIAkJQTdBQTY2
RDUxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtIYXNoLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtIYXNoLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QjA3
MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUFjdGlvblNjaGVkdWxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0RhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCQkUyNjQxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1l
dGVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JCRTI2
NTExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQwMDgsNiArMTQwMTIsOCBAQAogCQkJCTA2MjI4NzgzMEI0REIzMjIw
MDBDMzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oICovLAogCQkJCTY1QkYwMjI5MDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5jcHAgKi8sCiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZy
YW1lLmggKi8sCisJCQkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCAqLywKKwkJCQlBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rp
b25TY2hlZHVsZXIuaCAqLywKIAkJCQk2NTg0MzY4NTBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVM
b2FkUmVxdWVzdC5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRy
ZWUuY3BwICovLAogCQkJCTY1QTIxNDgzMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuaCAq
LywKQEAgLTIwNzEyLDYgKzIwNzE4LDcgQEAKIAkJCQk5MzVDNDc2RDA5QUM0RDYzMDBBNkFBQjQg
LyogRm91bmRhdGlvbkV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg1MzEyM0QxMUQwNDcx
QjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1l
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3
MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxMzgs
NiArMjUxNDUsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vz
c29yTGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJG
MEZDOUMwMEMxMzM3OSAvKiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTdCMDcw
RDIxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNzlhZGI5MTA4MGI3NjE4OTNkYTliMWU0MzU3NTA0YWYwNzIzYzgyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAK
QEAgLTAsMCArMSwxMDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitTY2hlZHVsZWRFdmVudDo6U2NoZWR1bGVkRXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gdGFyZ2V0KQorICAgIDogbV9l
dmVudChldmVudCksIG1fZXZlbnRUYXJnZXQodGFyZ2V0KQoreworfQorCitTY2hlZHVsZWRFdmVu
dDo6flNjaGVkdWxlZEV2ZW50KCkKK3sKK30KKwordm9pZCBTY2hlZHVsZWRFdmVudDo6ZmlyZSgp
Cit7CisgICAgLy8gT25seSBkaXNwYXRjaCBldmVudHMgdG8gbm9kZXMgdGhhdCBhcmUgaW4gdGhl
IGRvY3VtZW50CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgaWYgKG1fZXZlbnRUYXJn
ZXQtPmluRG9jdW1lbnQoKSkKKyAgICAgICAgbV9ldmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudCht
X2V2ZW50LCBlYyk7Cit9CisKK0ZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNjaGVk
dWxlcigpCisgICAgOiBtX2VucXVldWVBY3Rpb25zKDApCit7Cit9CisKK0ZyYW1lQWN0aW9uU2No
ZWR1bGVyOjp+RnJhbWVBY3Rpb25TY2hlZHVsZXIoKQoreworICAgIGNsZWFyKCk7Cit9CisKK2Jv
b2wgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OmlzRW1wdHkoKSBjb25zdAoreworICAgIHJldHVybiBt
X3NjaGVkdWxlZEFjdGlvbnMuaXNFbXB0eSgpOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1
bGVyOjpjbGVhcigpCit7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLmNsZWFyKCk7CisgICAgbV9l
bnF1ZXVlQWN0aW9ucyA9IDA7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OnBhdXNl
KCkKK3sKKyAgICBBU1NFUlQoaXNFbXB0eSgpIHx8IG1fZW5xdWV1ZUFjdGlvbnMpOworICAgIG1f
ZW5xdWV1ZUFjdGlvbnMrKzsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6cmVzdW1l
KCkKK3sKKyAgICBtX2VucXVldWVBY3Rpb25zLS07CisgICAgaWYgKCFtX2VucXVldWVBY3Rpb25z
KQorICAgICAgICBkaXNwYXRjaCgpOworICAgIEFTU0VSVChpc0VtcHR5KCkgfHwgbV9lbnF1ZXVl
QWN0aW9ucyk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OmRpc3BhdGNoKCkKK3sK
KyAgICBWZWN0b3I8IFJlZlB0cjxTY2hlZHVsZWRBY3Rpb24+ID4gc25hcHNob3Q7CisgICAgbV9z
Y2hlZHVsZWRBY3Rpb25zLnN3YXAoc25hcHNob3QpOworICAgIAorICAgIGZvciAoVmVjdG9yPCBS
ZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiA+OjppdGVyYXRvciBpID0gc25hcHNob3QuYmVnaW4oKTsg
aSAhPSBzbmFwc2hvdC5lbmQoKTsgKytpKQorICAgICAgICAoKmkpLT5maXJlKCk7Cit9CisKK3Zv
aWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKFBhc3NSZWZQdHI8U2NoZWR1
bGVkQWN0aW9uPiBhY3Rpb24pCit7CisgICAgbV9zY2hlZHVsZWRBY3Rpb25zLmFwcGVuZChhY3Rp
b24pOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IGV2ZW50VGFyZ2V0KQoreworICAg
IHNjaGVkdWxlQWN0aW9uKGFkb3B0UmVmKG5ldyBTY2hlZHVsZWRFdmVudChldmVudCwgZXZlbnRU
YXJnZXQpKSk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NDU0ODBkZDNjNGNmNzBj
ZmFmYWQxNTdmYjk3Yzk3YjEwOTYwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAorI2RlZmluZSBGcmFtZUFjdGlvblNjaGVk
dWxlcl9oCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKKworI2luY2x1
ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2NoZWR1
bGVkQWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2NoZWR1bGVkQWN0aW9uPiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVk
QWN0aW9uKTsKK3B1YmxpYzoKKyAgICBTY2hlZHVsZWRBY3Rpb24oKSB7fQorICAgIHZpcnR1YWwg
flNjaGVkdWxlZEFjdGlvbigpIHt9CisgICAgdmlydHVhbCB2b2lkIGZpcmUoKSA9IDA7Cit9Owor
CitjbGFzcyBTY2hlZHVsZWRFdmVudCA6IHB1YmxpYyBTY2hlZHVsZWRBY3Rpb24geworcHVibGlj
OgorICAgIFNjaGVkdWxlZEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+
KTsKKyAgICB2aXJ0dWFsIH5TY2hlZHVsZWRFdmVudCgpOworICAgIHZpcnR1YWwgdm9pZCBmaXJl
KCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAgIFJlZlB0cjxO
b2RlPiBtX2V2ZW50VGFyZ2V0OworfTsKKworY2xhc3MgRnJhbWVBY3Rpb25TY2hlZHVsZXIgewor
cHVibGljOgorICAgIEZyYW1lQWN0aW9uU2NoZWR1bGVyKCk7CisgICAgfkZyYW1lQWN0aW9uU2No
ZWR1bGVyKCk7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKyAgICBib29sIGlzU2NoZWR1
bGVkKCkgY29uc3QgeyByZXR1cm4gMCA8IG1fZW5xdWV1ZUFjdGlvbnM7IH0KKyAgICB2b2lkIGNs
ZWFyKCk7CisgICAgdm9pZCBwYXVzZSgpOworICAgIHZvaWQgcmVzdW1lKCk7CisKKyAgICB2b2lk
IHNjaGVkdWxlQWN0aW9uKFBhc3NSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPik7CisgICAgdm9pZCBz
Y2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+KTsKKworcHJp
dmF0ZToKKyAgICB2b2lkIGRpc3BhdGNoKCk7CisKKyAgICB1bnNpZ25lZCBtX2VucXVldWVBY3Rp
b25zOworICAgIFZlY3RvcjwgUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gPiBtX3NjaGVkdWxlZEFj
dGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBGcmFtZUFj
dGlvblNjaGVkdWxlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggY2U1OTQ5Y2U3
ZWQwYTlhN2Y0NmMxZjkzODhiOGY1YmZmNDkyZTFkNi4uM2JjY2I0MWZiYTc0ZWYwMzk4MzBhNDIw
MmMxYWVkMGRmMzRhZGFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVBY3Rpb25TY2hlZHVsZXIu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCkBAIC0xMDksMTQgKzExMCw2IEBAIGRvdWJsZSBG
cmFtZVZpZXc6OnNfZGVmZXJyZWRSZXBhaW50RGVsYXlJbmNyZW1lbnREdXJpbmdMb2FkaW5nID0g
MDsKIC8vIFRoZSBtYXhpbXVtIG51bWJlciBvZiB1cGRhdGVXaWRnZXRzIGl0ZXJhdGlvbnMgdGhh
dCBzaG91bGQgYmUgZG9uZSBiZWZvcmUgcmV0dXJuaW5nLgogc3RhdGljIGNvbnN0IHVuc2lnbmVk
IG1heFVwZGF0ZVdpZGdldHNJdGVyYXRpb25zID0gMjsKIAotc3RydWN0IFNjaGVkdWxlZEV2ZW50
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTY2hlZHVsZWRFdmVudCk7IFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIFNjaGVkdWxlZEV2ZW50KCkgeyB9Ci0gICAgUmVm
UHRyPEV2ZW50PiBtX2V2ZW50OwotICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFyZ2V0OwotfTsK
LQogRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFtZShmcmFt
ZSkKICAgICAsIG1fY2FuSGF2ZVNjcm9sbGJhcnModHJ1ZSkKQEAgLTEzMCw3ICsxMjMsNyBAQCBG
cmFtZVZpZXc6OkZyYW1lVmlldyhGcmFtZSogZnJhbWUpCiAgICAgLCBtX2lzVHJhbnNwYXJlbnQo
ZmFsc2UpCiAgICAgLCBtX2Jhc2VCYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OndoaXRlKQogICAgICwg
bV9tZWRpYVR5cGUoInNjcmVlbiIpCi0gICAgLCBtX2VucXVldWVFdmVudHMoMCkKKyAgICAsIG1f
YWN0aW9uU2NoZWR1bGVyKG5ldyBGcmFtZUFjdGlvblNjaGVkdWxlcigpKQogICAgICwgbV9vdmVy
Zmxvd1N0YXR1c0RpcnR5KHRydWUpCiAgICAgLCBtX3ZpZXdwb3J0UmVuZGVyZXIoMCkKICAgICAs
IG1fd2FzU2Nyb2xsZWRCeVVzZXIoZmFsc2UpCkBAIC0xNjUsOCArMTU4LDcgQEAgRnJhbWVWaWV3
Ojp+RnJhbWVWaWV3KCkKIHsKICAgICBpZiAobV9oYXNQZW5kaW5nUG9zdExheW91dFRhc2tzKSB7
CiAgICAgICAgIG1fcG9zdExheW91dFRhc2tzVGltZXIuc3RvcCgpOwotICAgICAgICBtX3NjaGVk
dWxlZEV2ZW50cy5jbGVhcigpOwotICAgICAgICBtX2VucXVldWVFdmVudHMgPSAwOworICAgICAg
ICBtX2FjdGlvblNjaGVkdWxlci0+Y2xlYXIoKTsKICAgICB9CiAgICAgCiAgICAgaWYgKEFYT2Jq
ZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkgJiYgYXhPYmplY3RDYWNoZSgpKQpAQCAt
MTgyLDggKzE3NCw3IEBAIEZyYW1lVmlldzo6fkZyYW1lVmlldygpCiAgICAgc2V0SGFzVmVydGlj
YWxTY3JvbGxiYXIoZmFsc2UpOwogICAgIAogICAgIEFTU0VSVCghbV9zY3JvbGxDb3JuZXIpOwot
ICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5KCkpOwotICAgIEFTU0VSVCghbV9l
bnF1ZXVlRXZlbnRzKTsKKyAgICBBU1NFUlQobV9hY3Rpb25TY2hlZHVsZXItPmlzRW1wdHkoKSk7
CiAKICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpICE9
IHRoaXMgfHwgIW1fZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKTsKQEAgLTg5MCw3ICs4ODEsNyBA
QCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQogCiAgICAgUmVuZGVy
TGF5ZXIqIGxheWVyID0gcm9vdC0+ZW5jbG9zaW5nTGF5ZXIoKTsKIAotICAgIHBhdXNlU2NoZWR1
bGVkRXZlbnRzKCk7CisgICAgbV9hY3Rpb25TY2hlZHVsZXItPnBhdXNlKCk7CiAKICAgICBib29s
IGRpc2FibGVMYXlvdXRTdGF0ZSA9IGZhbHNlOwogICAgIGlmIChzdWJ0cmVlKSB7CkBAIC05Njgs
MTMgKzk1OSwxMiBAQCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0KGJvb2wgYWxsb3dTdWJ0cmVlKQog
ICAgICAgICAgICAgbV9oYXNQZW5kaW5nUG9zdExheW91dFRhc2tzID0gdHJ1ZTsKICAgICAgICAg
ICAgIG1fcG9zdExheW91dFRhc2tzVGltZXIuc3RhcnRPbmVTaG90KDApOwogICAgICAgICAgICAg
aWYgKG5lZWRzTGF5b3V0KCkpIHsKLSAgICAgICAgICAgICAgICBwYXVzZVNjaGVkdWxlZEV2ZW50
cygpOworICAgICAgICAgICAgICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5wYXVzZSgpOwogICAgICAg
ICAgICAgICAgIGxheW91dCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCk7Ci0gICAgICAgIEFTU0VSVChtX2Vu
cXVldWVFdmVudHMpOworICAgICAgICBtX2FjdGlvblNjaGVkdWxlci0+cmVzdW1lKCk7CiAgICAg
fQogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRMYXlvdXQoY29va2llKTsKQEAg
LTE3OTQsMzAgKzE3ODQsMTcgQEAgYm9vbCBGcmFtZVZpZXc6OnNob3VsZFVwZGF0ZShib29sIGlt
bWVkaWF0ZVJlcXVlc3RlZCkgY29uc3QKIAogdm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlRXZlbnQo
UGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NSZWZQdHI8Tm9kZT4gZXZlbnRUYXJnZXQpCiB7
Ci0gICAgaWYgKCFtX2VucXVldWVFdmVudHMpIHsKLSAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7Ci0gICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50LCBlYyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBTY2hlZHVsZWRFdmVudCogc2NoZWR1bGVkRXZlbnQg
PSBuZXcgU2NoZWR1bGVkRXZlbnQ7Ci0gICAgc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnQgPSBldmVu
dDsKLSAgICBzY2hlZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldCA9IGV2ZW50VGFyZ2V0OwotICAg
IG1fc2NoZWR1bGVkRXZlbnRzLmFwcGVuZChzY2hlZHVsZWRFdmVudCk7CisgICAgbV9hY3Rpb25T
Y2hlZHVsZXItPnNjaGVkdWxlRXZlbnQoZXZlbnQsIGV2ZW50VGFyZ2V0KTsKIH0KIAogdm9pZCBG
cmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKCkKIHsKLSAgICBBU1NFUlQobV9zY2hlZHVs
ZWRFdmVudHMuaXNFbXB0eSgpIHx8IG1fZW5xdWV1ZUV2ZW50cyk7Ci0gICAgbV9lbnF1ZXVlRXZl
bnRzKys7CisgICAgbV9hY3Rpb25TY2hlZHVsZXItPnBhdXNlKCk7CiB9CiAKIHZvaWQgRnJhbWVW
aWV3OjpyZXN1bWVTY2hlZHVsZWRFdmVudHMoKQogewotICAgIG1fZW5xdWV1ZUV2ZW50cy0tOwot
ICAgIGlmICghbV9lbnF1ZXVlRXZlbnRzKQotICAgICAgICBkaXNwYXRjaFNjaGVkdWxlZEV2ZW50
cygpOwotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5KCkgfHwgbV9lbnF1ZXVl
RXZlbnRzKTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+cmVzdW1lKCk7CiB9CiAKIHZvaWQgRnJh
bWVWaWV3OjpzY3JvbGxUb0FuY2hvcigpCkBAIC0xOTQzLDcgKzE5MjAsNyBAQCB2b2lkIEZyYW1l
Vmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpCiAKICAgICBzY3JvbGxUb0FuY2hvcigpOwog
Ci0gICAgcmVzdW1lU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgbV9hY3Rpb25TY2hlZHVsZXItPnJl
c3VtZSgpOwogCiAgICAgaWYgKCFyb290LT5wcmludGluZygpKSB7CiAgICAgICAgIEludFNpemUg
Y3VycmVudFNpemUgPSBJbnRTaXplKHdpZHRoKCksIGhlaWdodCgpKTsKQEAgLTE5ODAsMzUgKzE5
NTcsMTMgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKGJvb2wgaG9yaXpv
bnRhbE92ZXJmbG93LCBib29sIHZlcnRpY2FsT3ZlcmYKICAgICAgICAgbV9ob3Jpem9udGFsT3Zl
cmZsb3cgPSBob3Jpem9udGFsT3ZlcmZsb3c7CiAgICAgICAgIG1fdmVydGljYWxPdmVyZmxvdyA9
IHZlcnRpY2FsT3ZlcmZsb3c7CiAgICAgICAgIAotICAgICAgICBzY2hlZHVsZUV2ZW50KE92ZXJm
bG93RXZlbnQ6OmNyZWF0ZShob3Jpem9udGFsT3ZlcmZsb3dDaGFuZ2VkLCBob3Jpem9udGFsT3Zl
cmZsb3csCisgICAgICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5zY2hlZHVsZUV2ZW50KE92ZXJmbG93
RXZlbnQ6OmNyZWF0ZShob3Jpem9udGFsT3ZlcmZsb3dDaGFuZ2VkLCBob3Jpem9udGFsT3ZlcmZs
b3csCiAgICAgICAgICAgICB2ZXJ0aWNhbE92ZXJmbG93Q2hhbmdlZCwgdmVydGljYWxPdmVyZmxv
dyksCiAgICAgICAgICAgICBtX3ZpZXdwb3J0UmVuZGVyZXItPm5vZGUoKSk7CiAgICAgfQogICAg
IAogfQogCi12b2lkIEZyYW1lVmlldzo6ZGlzcGF0Y2hTY2hlZHVsZWRFdmVudHMoKQotewotICAg
IGlmIChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFZlY3RvcjxTY2hlZHVsZWRFdmVudCo+IHNjaGVkdWxlZEV2ZW50c0NvcHkgPSBtX3NjaGVkdWxl
ZEV2ZW50czsKLSAgICBtX3NjaGVkdWxlZEV2ZW50cy5jbGVhcigpOwotICAgIAotICAgIFZlY3Rv
cjxTY2hlZHVsZWRFdmVudCo+OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRFdmVudHNDb3B5LmVu
ZCgpOwotICAgIGZvciAoVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj46Oml0ZXJhdG9yIGl0ID0gc2No
ZWR1bGVkRXZlbnRzQ29weS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgU2No
ZWR1bGVkRXZlbnQqIHNjaGVkdWxlZEV2ZW50ID0gKml0OwotICAgICAgICAKLSAgICAgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAgIAotICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIGV2
ZW50cyB0byBub2RlcyB0aGF0IGFyZSBpbiB0aGUgZG9jdW1lbnQKLSAgICAgICAgaWYgKHNjaGVk
dWxlZEV2ZW50LT5tX2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCi0gICAgICAgICAgICBzY2hl
ZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChzY2hlZHVsZWRFdmVudC0+
bV9ldmVudCwgZWMpOwotICAgICAgICAKLSAgICAgICAgZGVsZXRlIHNjaGVkdWxlZEV2ZW50Owot
ICAgIH0KLX0KLQogSW50UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KGJvb2wgY2xpcFRv
Q29udGVudHMpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fZnJhbWUtPnZpZXcoKSA9PSB0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDVmYWI0YTRhMDkwNTBlMDM2ZmZmMjM5Y2Y4NTIy
MzM5NGRlM2M4NjUuLjgxZjFjZDM4NmQzZDJhMjYzOWYyOGU5YmQ0ZWYwZGFlNTBlOTc1ZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENvbG9yOwogY2xhc3MgRXZlbnQ7CitjbGFzcyBGcmFtZUFjdGlvblNjaGVk
dWxlcjsKIGNsYXNzIEZyYW1lVmlld1ByaXZhdGU7CiBjbGFzcyBJbnRSZWN0OwogY2xhc3MgTm9k
ZTsKQEAgLTQ2LDggKzQ3LDYgQEAgY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q7CiBjbGFzcyBSZW5kZXJTY3JvbGxiYXJQYXJ0OwogCi1zdHJ1Y3QgU2NoZWR1
bGVkRXZlbnQ7Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBUaW1lcjsKIAogY2xhc3Mg
RnJhbWVWaWV3IDogcHVibGljIFNjcm9sbFZpZXcgewpAQCAtMjk3LDcgKzI5Niw2IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHVwZGF0ZU92ZXJmbG93U3RhdHVzKGJvb2wgaG9yaXpvbnRhbE92ZXJm
bG93LCBib29sIHZlcnRpY2FsT3ZlcmZsb3cpOwogCi0gICAgdm9pZCBkaXNwYXRjaFNjaGVkdWxl
ZEV2ZW50cygpOwogICAgIHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOwogCiAgICAgdmly
dHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmLCBib29sIGlt
bWVkaWF0ZSk7CkBAIC0zODEsOSArMzc5LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9tZWRp
YVR5cGU7CiAgICAgU3RyaW5nIG1fbWVkaWFUeXBlV2hlbk5vdFByaW50aW5nOwogCi0gICAgdW5z
aWduZWQgbV9lbnF1ZXVlRXZlbnRzOwotICAgIFZlY3RvcjxTY2hlZHVsZWRFdmVudCo+IG1fc2No
ZWR1bGVkRXZlbnRzOwotICAgIAorICAgIE93blB0cjxGcmFtZUFjdGlvblNjaGVkdWxlcj4gbV9h
Y3Rpb25TY2hlZHVsZXI7CisKICAgICBib29sIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eTsKICAgICBi
b29sIG1faG9yaXpvbnRhbE92ZXJmbG93OwogICAgIGJvb2wgbV92ZXJ0aWNhbE92ZXJmbG93OyAg
ICAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84393</attachid>
            <date>2011-03-02 03:15:33 -0800</date>
            <delta_ts>2011-03-02 04:58:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54440-20110302201531.patch</filename>
            <type>text/plain</type>
            <size>23101</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDg0OGQ0MzgyOTc2Zjk3
YjQxMGJiZGZlMGU4ZGVlOGQzYmQ2NTBiNDUuLmIwNWJhNWY4YTEwZTcxMjcxYjI0NDFiM2QyMGY0
ZGE1MWI0MTAxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE4LDYgKzQxOCw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGMwMjI2NWM2NDZkMDhiYjBkYzE5MGI3ZWIwYWVmYzcwZDI1ZTNlOTYuLjBiNjRlMTJkYzBm
ZGM3MGI2YjU3NTllYTVkYjExM2U2MzI0M2NlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQxLDYgKzExNDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNWE4ODRhYWUyODliOTY4NTc1MWM3YjE0ZjMxMjE3YjJhMzQyYWQ4Li40YTU1NTc3
ZmZkZDZmYTI2NjI2M2M4ODhkYmI3Nzg2MmJmNzZmMjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDItMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgU2NoZWR1bGVkQWN0aW9uIGFic3RyYWN0
IGNsYXNzIGZyb20gU2NoZWR1bGVkRXZlbnQsCisgICAgICAgICAgd2hpY2ggaGFzIGZpcmUoKSB2
aXJ0dWFsIG1ldGhvZC4KKyAgICAgICAgCisgICAgICAgIFdpdGggdGhpcyBjaGFuZ2UsIEFueSBh
Y3Rpb24gY2FuIGJlIGhvb2tlZCB1cCB0byB0aGUgZW5kIG9mIHRoZSBsYXlvdXQuCisgICAgICAg
IAorICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGJlaGF2aW9yYWwgY2hhbmdlLgorCisgICAgICAg
ICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2
ZW50OjpTY2hlZHVsZWRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTY2hlZHVsZWRFdmVudDo6
flNjaGVkdWxlZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjaGVkdWxlZEV2ZW50OjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1
bGVkQWN0aW9uOjpTY2hlZHVsZWRBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2NoZWR1bGVk
QWN0aW9uOjp+U2NoZWR1bGVkQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9u
U2NoZWR1bGVyOjppc1NjaGVkdWxlZCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2NoZWR1bGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhdXNlU2NoZWR1bGVkRXZlbnRzKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lVmlldzo6cGVyZm9ybVBvc3RMYXlvdXRUYXNrcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorCiAyMDExLTAzLTAxICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbQppbmRleCA3ZWEyZTUxMTQxYzc2Mzg1OGFmNTM0OTEwNWY1MjcxOTQyMzZlN2Y3Li45ZDJi
YjdkMTkxYTM5MzFhYWZlZjEyZTAyZjNkZGIyZDVhOTEwOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQpAQCAtMjIxNSw2ICsyMjE1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzRGlyZWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmggXAorCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
QWN0aW9uU2NoZWR1bGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVMb2FkUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDIyYWJlYjViNjk4MTRj
ZWQ4MDBlZDU0OGJkYWYyNGZmNmMwYzdmYmMuLjk2NjFlMWE3ZTI5NGZjMjc5YWU3M2Y3YWY0MGYy
YWFhMmI3MDMxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzMzQsNiArMjMzNCw4IEBACiAgICAg
ICAgICAgICAncGFnZS9GcmFtZUxvYWRSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJh
bWVUcmVlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVRyZWUuaCcsCisgICAgICAgICAg
ICAncGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAnLAorICAgICAgICAgICAgJ3BhZ2UvRnJh
bWVBY3Rpb25TY2hlZHVsZXIuaCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVZpZXcuY3BwJywK
ICAgICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5oJywKICAgICAgICAgICAgICdwYWdlL0dlb2xv
Y2F0aW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQ1OGQ2YTIxNDBhYTJjYjc3NGQ4YTIxMDhk
YmU3MDFiYzRlNWRhY2MuLjVjZjBjN2U5NjhlMTIzNDE0ODgyY2VhYjBhNjY2ODVjZDJhYTJlOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC04ODMsNiArODgzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGFn
ZS9FdmVudFNvdXJjZS5jcHAgXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBcCiAgICAg
cGFnZS9GcmFtZS5jcHAgXAorICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIFwKICAg
ICBwYWdlL0ZyYW1lVHJlZS5jcHAgXAogICAgIHBhZ2UvRnJhbWVWaWV3LmNwcCBcCiAgICAgcGFn
ZS9HZW9sb2NhdGlvbi5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCA0NmNjYzJjODgyMWRiZjg3OWUxNjA0YmFjMGE4NzEwYTYzNWNmNDU3
Li43ZjE0YzY0ZDczMzg1NjIzYTEyODEyNTRjMTNmYzJlM2IxYzkyMmRlIDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjQ0NjAsNiArMjQ0NjAs
MTQgQEAKIAkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZyYW1lLmgiCiAJCQkJ
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVBY3Rpb25TY2hlZHVs
ZXIuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwYWdlXEZyYW1lQWN0aW9uU2NoZWR1bGVyLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVMb2FkUmVxdWVz
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDA2M2MwYzM0NTExNDU2MGZlYTM5N2Q5ZWU3ODViNmMyNDEyNGZiODkuLjQzZGU0
YzkxY2VkNjAzY2M5NzliNTQ4MzY1YjE3ZTVkN2FjOTg1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxNzEsNiArMzE3MSw4
IEBACiAJCUE3QUE2NkQ3MTFDNUVENkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QUE2NkQ1MTFDNUVE
NkEwMDFEOEM4QyAvKiBSZW5kZXJJbmRpY2F0b3IuaCAqLzsgfTsKIAkJQTdBRDJGODcwRUM4OUQw
NzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QUQyRjg1MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5jcHAg
Ki87IH07CiAJCUE3QUQyRjg4MEVDODlEMDcwMDhBQjAwMiAvKiBMaW5rSGFzaC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBRDJGODYwRUM4OUQwNzAw
OEFCMDAyIC8qIExpbmtIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJQTdCMDcwRDIxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgKi87
IH07CisJCUE3QjA3MEQzMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCMDcwRDEx
MzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi87IH07CiAJCUE3QjZF
NjlGMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNkU2OUQwQjI5MUE5NjAwRDA1MjlGIC8qIERyYWdE
YXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QTdCQkUyNjYxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0JCRTI2NDExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTdCQkUyNjcxMUFG
QjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1ldGVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCQkUyNjUxMUFGQjNGMjAwMDVFQTAzIC8qIEpT
SFRNTE1ldGVyRWxlbWVudC5oICovOyB9OwpAQCAtOTYwNiw2ICs5NjA4LDggQEAKIAkJQTdBQTY2
RDUxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW5kZXJJbmRpY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExpbmtIYXNoLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdBRDJGODYwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExpbmtIYXNoLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE3QjA3MEQwMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3QjA3
MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZUFjdGlvblNjaGVkdWxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0RhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTdCQkUyNjQxMUFGQjNGMjAwMDVFQTAzIC8qIEpTSFRNTE1l
dGVyRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0JCRTI2
NTExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTQwMDgsNiArMTQwMTIsOCBAQAogCQkJCTA2MjI4NzgzMEI0REIzMjIw
MDBDMzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oICovLAogCQkJCTY1QkYwMjI5MDk3NDgxNjMwMEM0
MzE5NiAvKiBGcmFtZS5jcHAgKi8sCiAJCQkJNjVCRjAyMkEwOTc0ODE2MzAwQzQzMTk2IC8qIEZy
YW1lLmggKi8sCisJCQkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2No
ZWR1bGVyLmNwcCAqLywKKwkJCQlBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rp
b25TY2hlZHVsZXIuaCAqLywKIAkJCQk2NTg0MzY4NTBBRTAxQjc0MDBFNTM3NTMgLyogRnJhbWVM
b2FkUmVxdWVzdC5oICovLAogCQkJCTY1QTIxNDgyMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRy
ZWUuY3BwICovLAogCQkJCTY1QTIxNDgzMDk3QTNGNTMwMEI5MDUwQSAvKiBGcmFtZVRyZWUuaCAq
LywKQEAgLTIwNzEyLDYgKzIwNzE4LDcgQEAKIAkJCQk5MzVDNDc2RDA5QUM0RDYzMDBBNkFBQjQg
LyogRm91bmRhdGlvbkV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg1MzEyM0QxMUQwNDcx
QjAwRDREMDc3IC8qIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVCRjAyMkYwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmggaW4gSGVhZGVycyAqLywK
KwkJCQlBN0IwNzBEMzEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NkQzNzNDMEFEQkE1REUwMEE0NTU0RCAvKiBGcmFtZUxvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2RDM3M0UwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1l
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMDAwRUJBMzExQkRBRkQ0MDBDNDc3
MjYgLyogRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtMjM0ODUs
NiArMjM0OTIsNyBAQAogCQkJCTY1NkQzNzNCMEFEQkE1REUwMEE0NTU0RCAvKiBGb3JtU3RhdGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE4ODVCOTQxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1T
dWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTY1QkYwMjJFMDk3NDgxNjMwMEM0MzE5
NiAvKiBGcmFtZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBN0IwNzBEMjEzMEE0MDlDMDBBMzc2
M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMyRTE2
MDkwQUY1NzgzNDAwMjVGNDA4IC8qIEZyYW1lTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUQwMDBFQkEyMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRlclN0YXRlTWFjaGluZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2NUJGMDI0NTA5NzQ4MTkwMDBDNDMxOTYgLyogRnJhbWVNYWMu
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVB
Y3Rpb25TY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVk
dWxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc5YWRiOTEwODBiNzYxODkzZGE5YjFlNDM1NzUwNGFmMDcy
M2M4MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25T
Y2hlZHVsZXIuY3BwCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkZyYW1lQWN0aW9uU2NoZWR1bGVyLmgiCisKKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2NoZWR1bGVkRXZlbnQ6OlNjaGVk
dWxlZEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IHRhcmdl
dCkKKyAgICA6IG1fZXZlbnQoZXZlbnQpLCBtX2V2ZW50VGFyZ2V0KHRhcmdldCkKK3sKK30KKwor
U2NoZWR1bGVkRXZlbnQ6On5TY2hlZHVsZWRFdmVudCgpCit7Cit9CisKK3ZvaWQgU2NoZWR1bGVk
RXZlbnQ6OmZpcmUoKQoreworICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRo
YXQgYXJlIGluIHRoZSBkb2N1bWVudAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGlm
IChtX2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCisgICAgICAgIG1fZXZlbnRUYXJnZXQtPmRp
c3BhdGNoRXZlbnQobV9ldmVudCwgZWMpOworfQorCitGcmFtZUFjdGlvblNjaGVkdWxlcjo6RnJh
bWVBY3Rpb25TY2hlZHVsZXIoKQorICAgIDogbV9lbnF1ZXVlQWN0aW9ucygwKQoreworfQorCitG
cmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKK3sKKyAgICBjbGVh
cigpOworfQorCitib29sIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjppc0VtcHR5KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zY2hlZHVsZWRBY3Rpb25zLmlzRW1wdHkoKTsKK30KKwordm9pZCBGcmFt
ZUFjdGlvblNjaGVkdWxlcjo6Y2xlYXIoKQoreworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5jbGVh
cigpOworICAgIG1fZW5xdWV1ZUFjdGlvbnMgPSAwOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2No
ZWR1bGVyOjpwYXVzZSgpCit7CisgICAgQVNTRVJUKGlzRW1wdHkoKSB8fCBtX2VucXVldWVBY3Rp
b25zKTsKKyAgICBtX2VucXVldWVBY3Rpb25zKys7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hl
ZHVsZXI6OnJlc3VtZSgpCit7CisgICAgbV9lbnF1ZXVlQWN0aW9ucy0tOworICAgIGlmICghbV9l
bnF1ZXVlQWN0aW9ucykKKyAgICAgICAgZGlzcGF0Y2goKTsKKyAgICBBU1NFUlQoaXNFbXB0eSgp
IHx8IG1fZW5xdWV1ZUFjdGlvbnMpOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpk
aXNwYXRjaCgpCit7CisgICAgVmVjdG9yPCBSZWZQdHI8U2NoZWR1bGVkQWN0aW9uPiA+IHNuYXBz
aG90OworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5zd2FwKHNuYXBzaG90KTsKKyAgICAKKyAgICBm
b3IgKFZlY3RvcjwgUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gPjo6aXRlcmF0b3IgaSA9IHNuYXBz
aG90LmJlZ2luKCk7IGkgIT0gc25hcHNob3QuZW5kKCk7ICsraSkKKyAgICAgICAgKCppKS0+Zmly
ZSgpOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUFjdGlvbihQYXNz
UmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uKQoreworICAgIG1fc2NoZWR1bGVkQWN0aW9u
cy5hcHBlbmQoYWN0aW9uKTsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6c2NoZWR1
bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBldmVudFRh
cmdldCkKK3sKKyAgICBzY2hlZHVsZUFjdGlvbihhZG9wdFJlZihuZXcgU2NoZWR1bGVkRXZlbnQo
ZXZlbnQsIGV2ZW50VGFyZ2V0KSkpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTQ1
NDgwZGQzYzRjZjcwY2ZhZmFkMTU3ZmI5N2M5N2IxMDk2MDJkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCkBAIC0wLDAgKzEsODEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEZyYW1lQWN0aW9uU2NoZWR1bGVyX2gKKyNkZWZpbmUgRnJh
bWVBY3Rpb25TY2hlZHVsZXJfaAorCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCisKKyNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIFNjaGVkdWxlZEFjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNjaGVkdWxlZEFjdGlv
bj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFNjaGVkdWxlZEFjdGlvbik7CitwdWJsaWM6CisgICAgU2NoZWR1bGVkQWN0aW9uKCkge30K
KyAgICB2aXJ0dWFsIH5TY2hlZHVsZWRBY3Rpb24oKSB7fQorICAgIHZpcnR1YWwgdm9pZCBmaXJl
KCkgPSAwOworfTsKKworY2xhc3MgU2NoZWR1bGVkRXZlbnQgOiBwdWJsaWMgU2NoZWR1bGVkQWN0
aW9uIHsKK3B1YmxpYzoKKyAgICBTY2hlZHVsZWRFdmVudChQYXNzUmVmUHRyPEV2ZW50PiwgUGFz
c1JlZlB0cjxOb2RlPik7CisgICAgdmlydHVhbCB+U2NoZWR1bGVkRXZlbnQoKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZmlyZSgpOworCitwcml2YXRlOgorICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsK
KyAgICBSZWZQdHI8Tm9kZT4gbV9ldmVudFRhcmdldDsKK307CisKK2NsYXNzIEZyYW1lQWN0aW9u
U2NoZWR1bGVyIHsKK3B1YmxpYzoKKyAgICBGcmFtZUFjdGlvblNjaGVkdWxlcigpOworICAgIH5G
cmFtZUFjdGlvblNjaGVkdWxlcigpOworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAg
Ym9vbCBpc1NjaGVkdWxlZCgpIGNvbnN0IHsgcmV0dXJuIDAgPCBtX2VucXVldWVBY3Rpb25zOyB9
CisgICAgdm9pZCBjbGVhcigpOworICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHJlc3VtZSgp
OworCisgICAgdm9pZCBzY2hlZHVsZUFjdGlvbihQYXNzUmVmUHRyPFNjaGVkdWxlZEFjdGlvbj4p
OworICAgIHZvaWQgc2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiwgUGFzc1JlZlB0cjxO
b2RlPik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBkaXNwYXRjaCgpOworCisgICAgdW5zaWduZWQg
bV9lbnF1ZXVlQWN0aW9uczsKKyAgICBWZWN0b3I8IFJlZlB0cjxTY2hlZHVsZWRBY3Rpb24+ID4g
bV9zY2hlZHVsZWRBY3Rpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRnJhbWVBY3Rpb25TY2hlZHVsZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IGNlNTk0OWNlN2VkMGE5YTdmNDZjMWY5Mzg4YjhmNWJmZjQ5MmUxZDYuLjNiY2NiNDFmYmE3
NGVmMDM5ODMwYTQyMDJjMWFlZDBkZjM0YWRhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJG
b2N1c0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lQWN0
aW9uU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgpAQCAtMTA5LDE0ICsxMTAs
NiBAQCBkb3VibGUgRnJhbWVWaWV3OjpzX2RlZmVycmVkUmVwYWludERlbGF5SW5jcmVtZW50RHVy
aW5nTG9hZGluZyA9IDA7CiAvLyBUaGUgbWF4aW11bSBudW1iZXIgb2YgdXBkYXRlV2lkZ2V0cyBp
dGVyYXRpb25zIHRoYXQgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIHJldHVybmluZy4KIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBtYXhVcGRhdGVXaWRnZXRzSXRlcmF0aW9ucyA9IDI7CiAKLXN0cnVjdCBT
Y2hlZHVsZWRFdmVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2NoZWR1bGVkRXZlbnQp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBTY2hlZHVsZWRFdmVudCgp
IHsgfQotICAgIFJlZlB0cjxFdmVudD4gbV9ldmVudDsKLSAgICBSZWZQdHI8Tm9kZT4gbV9ldmVu
dFRhcmdldDsKLX07Ci0KIEZyYW1lVmlldzo6RnJhbWVWaWV3KEZyYW1lKiBmcmFtZSkKICAgICA6
IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NhbkhhdmVTY3JvbGxiYXJzKHRydWUpCkBAIC0xMzAs
NyArMTIzLDcgQEAgRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogICAgICwgbV9p
c1RyYW5zcGFyZW50KGZhbHNlKQogICAgICwgbV9iYXNlQmFja2dyb3VuZENvbG9yKENvbG9yOjp3
aGl0ZSkKICAgICAsIG1fbWVkaWFUeXBlKCJzY3JlZW4iKQotICAgICwgbV9lbnF1ZXVlRXZlbnRz
KDApCisgICAgLCBtX2FjdGlvblNjaGVkdWxlcihuZXcgRnJhbWVBY3Rpb25TY2hlZHVsZXIoKSkK
ICAgICAsIG1fb3ZlcmZsb3dTdGF0dXNEaXJ0eSh0cnVlKQogICAgICwgbV92aWV3cG9ydFJlbmRl
cmVyKDApCiAgICAgLCBtX3dhc1Njcm9sbGVkQnlVc2VyKGZhbHNlKQpAQCAtMTY1LDggKzE1OCw3
IEBAIEZyYW1lVmlldzo6fkZyYW1lVmlldygpCiB7CiAgICAgaWYgKG1faGFzUGVuZGluZ1Bvc3RM
YXlvdXRUYXNrcykgewogICAgICAgICBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLnN0b3AoKTsKLSAg
ICAgICAgbV9zY2hlZHVsZWRFdmVudHMuY2xlYXIoKTsKLSAgICAgICAgbV9lbnF1ZXVlRXZlbnRz
ID0gMDsKKyAgICAgICAgbV9hY3Rpb25TY2hlZHVsZXItPmNsZWFyKCk7CiAgICAgfQogICAgIAog
ICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpICYmIGF4T2JqZWN0
Q2FjaGUoKSkKQEAgLTE4Miw4ICsxNzQsNyBAQCBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQogICAg
IHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKICAgICAKICAgICBBU1NFUlQoIW1fc2Ny
b2xsQ29ybmVyKTsKLSAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgpKTsKLSAg
ICBBU1NFUlQoIW1fZW5xdWV1ZUV2ZW50cyk7CisgICAgQVNTRVJUKG1fYWN0aW9uU2NoZWR1bGVy
LT5pc0VtcHR5KCkpOwogCiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgQVNTRVJUKG1fZnJh
bWUtPnZpZXcoKSAhPSB0aGlzIHx8ICFtX2ZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSk7CkBAIC04
OTAsNyArODgxLDcgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFsbG93U3VidHJlZSkK
IAogICAgIFJlbmRlckxheWVyKiBsYXllciA9IHJvb3QtPmVuY2xvc2luZ0xheWVyKCk7CiAKLSAg
ICBwYXVzZVNjaGVkdWxlZEV2ZW50cygpOworICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5wYXVzZSgp
OwogCiAgICAgYm9vbCBkaXNhYmxlTGF5b3V0U3RhdGUgPSBmYWxzZTsKICAgICBpZiAoc3VidHJl
ZSkgewpAQCAtOTY4LDEzICs5NTksMTIgQEAgdm9pZCBGcmFtZVZpZXc6OmxheW91dChib29sIGFs
bG93U3VidHJlZSkKICAgICAgICAgICAgIG1faGFzUGVuZGluZ1Bvc3RMYXlvdXRUYXNrcyA9IHRy
dWU7CiAgICAgICAgICAgICBtX3Bvc3RMYXlvdXRUYXNrc1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
ICAgICAgICAgICAgIGlmIChuZWVkc0xheW91dCgpKSB7Ci0gICAgICAgICAgICAgICAgcGF1c2VT
Y2hlZHVsZWRFdmVudHMoKTsKKyAgICAgICAgICAgICAgICBtX2FjdGlvblNjaGVkdWxlci0+cGF1
c2UoKTsKICAgICAgICAgICAgICAgICBsYXlvdXQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlc3VtZVNjaGVkdWxlZEV2ZW50cygpOwotICAgICAg
ICBBU1NFUlQobV9lbnF1ZXVlRXZlbnRzKTsKKyAgICAgICAgbV9hY3Rpb25TY2hlZHVsZXItPnJl
c3VtZSgpOwogICAgIH0KIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTGF5b3V0
KGNvb2tpZSk7CkBAIC0xNzk0LDMwICsxNzg0LDE3IEBAIGJvb2wgRnJhbWVWaWV3OjpzaG91bGRV
cGRhdGUoYm9vbCBpbW1lZGlhdGVSZXF1ZXN0ZWQpIGNvbnN0CiAKIHZvaWQgRnJhbWVWaWV3Ojpz
Y2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+IGV2
ZW50VGFyZ2V0KQogewotICAgIGlmICghbV9lbnF1ZXVlRXZlbnRzKSB7Ci0gICAgICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBldmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChldmVu
dCwgZWMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NoZWR1bGVkRXZlbnQqIHNj
aGVkdWxlZEV2ZW50ID0gbmV3IFNjaGVkdWxlZEV2ZW50OwotICAgIHNjaGVkdWxlZEV2ZW50LT5t
X2V2ZW50ID0gZXZlbnQ7Ci0gICAgc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnRUYXJnZXQgPSBldmVu
dFRhcmdldDsKLSAgICBtX3NjaGVkdWxlZEV2ZW50cy5hcHBlbmQoc2NoZWR1bGVkRXZlbnQpOwor
ICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5zY2hlZHVsZUV2ZW50KGV2ZW50LCBldmVudFRhcmdldCk7
CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpwYXVzZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAgQVNT
RVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOwotICAg
IG1fZW5xdWV1ZUV2ZW50cysrOworICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5wYXVzZSgpOwogfQog
CiB2b2lkIEZyYW1lVmlldzo6cmVzdW1lU2NoZWR1bGVkRXZlbnRzKCkKIHsKLSAgICBtX2VucXVl
dWVFdmVudHMtLTsKLSAgICBpZiAoIW1fZW5xdWV1ZUV2ZW50cykKLSAgICAgICAgZGlzcGF0Y2hT
Y2hlZHVsZWRFdmVudHMoKTsKLSAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgp
IHx8IG1fZW5xdWV1ZUV2ZW50cyk7CisgICAgbV9hY3Rpb25TY2hlZHVsZXItPnJlc3VtZSgpOwog
fQogCiB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IoKQpAQCAtMTk0Myw3ICsxOTIwLDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKQogCiAgICAgc2Nyb2xs
VG9BbmNob3IoKTsKIAotICAgIHJlc3VtZVNjaGVkdWxlZEV2ZW50cygpOworICAgIG1fYWN0aW9u
U2NoZWR1bGVyLT5yZXN1bWUoKTsKIAogICAgIGlmICghcm9vdC0+cHJpbnRpbmcoKSkgewogICAg
ICAgICBJbnRTaXplIGN1cnJlbnRTaXplID0gSW50U2l6ZSh3aWR0aCgpLCBoZWlnaHQoKSk7CkBA
IC0xOTgwLDM1ICsxOTU3LDEzIEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVPdmVyZmxvd1N0YXR1
cyhib29sIGhvcml6b250YWxPdmVyZmxvdywgYm9vbCB2ZXJ0aWNhbE92ZXJmCiAgICAgICAgIG1f
aG9yaXpvbnRhbE92ZXJmbG93ID0gaG9yaXpvbnRhbE92ZXJmbG93OwogICAgICAgICBtX3ZlcnRp
Y2FsT3ZlcmZsb3cgPSB2ZXJ0aWNhbE92ZXJmbG93OwogICAgICAgICAKLSAgICAgICAgc2NoZWR1
bGVFdmVudChPdmVyZmxvd0V2ZW50OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwg
aG9yaXpvbnRhbE92ZXJmbG93LAorICAgICAgICBtX2FjdGlvblNjaGVkdWxlci0+c2NoZWR1bGVF
dmVudChPdmVyZmxvd0V2ZW50OjpjcmVhdGUoaG9yaXpvbnRhbE92ZXJmbG93Q2hhbmdlZCwgaG9y
aXpvbnRhbE92ZXJmbG93LAogICAgICAgICAgICAgdmVydGljYWxPdmVyZmxvd0NoYW5nZWQsIHZl
cnRpY2FsT3ZlcmZsb3cpLAogICAgICAgICAgICAgbV92aWV3cG9ydFJlbmRlcmVyLT5ub2RlKCkp
OwogICAgIH0KICAgICAKIH0KIAotdm9pZCBGcmFtZVZpZXc6OmRpc3BhdGNoU2NoZWR1bGVkRXZl
bnRzKCkKLXsKLSAgICBpZiAobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBWZWN0b3I8U2NoZWR1bGVkRXZlbnQqPiBzY2hlZHVsZWRFdmVudHNDb3B5
ID0gbV9zY2hlZHVsZWRFdmVudHM7Ci0gICAgbV9zY2hlZHVsZWRFdmVudHMuY2xlYXIoKTsKLSAg
ICAKLSAgICBWZWN0b3I8U2NoZWR1bGVkRXZlbnQqPjo6aXRlcmF0b3IgZW5kID0gc2NoZWR1bGVk
RXZlbnRzQ29weS5lbmQoKTsKLSAgICBmb3IgKFZlY3RvcjxTY2hlZHVsZWRFdmVudCo+OjppdGVy
YXRvciBpdCA9IHNjaGVkdWxlZEV2ZW50c0NvcHkuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
Ci0gICAgICAgIFNjaGVkdWxlZEV2ZW50KiBzY2hlZHVsZWRFdmVudCA9ICppdDsKLSAgICAgICAg
Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICAKLSAgICAgICAgLy8gT25s
eSBkaXNwYXRjaCBldmVudHMgdG8gbm9kZXMgdGhhdCBhcmUgaW4gdGhlIGRvY3VtZW50Ci0gICAg
ICAgIGlmIChzY2hlZHVsZWRFdmVudC0+bV9ldmVudFRhcmdldC0+aW5Eb2N1bWVudCgpKQotICAg
ICAgICAgICAgc2NoZWR1bGVkRXZlbnQtPm1fZXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQoc2No
ZWR1bGVkRXZlbnQtPm1fZXZlbnQsIGVjKTsKLSAgICAgICAgCi0gICAgICAgIGRlbGV0ZSBzY2hl
ZHVsZWRFdmVudDsKLSAgICB9Ci19Ci0KIEludFJlY3QgRnJhbWVWaWV3Ojp3aW5kb3dDbGlwUmVj
dChib29sIGNsaXBUb0NvbnRlbnRzKSBjb25zdAogewogICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3
KCkgPT0gdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA1ZmFiNGE0YTA5MDUwZTAz
NmZmZjIzOWNmODUyMjMzOTRkZTNjODY1Li44MWYxY2QzODZkM2QyYTI2MzlmMjhlOWJkNGVmMGRh
ZTUwZTk3NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKIGNsYXNzIEV2ZW50OworY2xhc3MgRnJh
bWVBY3Rpb25TY2hlZHVsZXI7CiBjbGFzcyBGcmFtZVZpZXdQcml2YXRlOwogY2xhc3MgSW50UmVj
dDsKIGNsYXNzIE5vZGU7CkBAIC00Niw4ICs0Nyw2IEBAIGNsYXNzIFJlbmRlck9iamVjdDsKIGNs
YXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0OwogY2xhc3MgUmVuZGVyU2Nyb2xsYmFyUGFydDsKIAot
c3RydWN0IFNjaGVkdWxlZEV2ZW50OwotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgVGlt
ZXI7CiAKIGNsYXNzIEZyYW1lVmlldyA6IHB1YmxpYyBTY3JvbGxWaWV3IHsKQEAgLTI5Nyw3ICsy
OTYsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCB1cGRhdGVPdmVyZmxvd1N0YXR1cyhib29sIGhv
cml6b250YWxPdmVyZmxvdywgYm9vbCB2ZXJ0aWNhbE92ZXJmbG93KTsKIAotICAgIHZvaWQgZGlz
cGF0Y2hTY2hlZHVsZWRFdmVudHMoKTsKICAgICB2b2lkIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3Mo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRS
ZWN0JiwgYm9vbCBpbW1lZGlhdGUpOwpAQCAtMzgxLDkgKzM3OSw4IEBAIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fbWVkaWFUeXBlOwogICAgIFN0cmluZyBtX21lZGlhVHlwZVdoZW5Ob3RQcmludGlu
ZzsKIAotICAgIHVuc2lnbmVkIG1fZW5xdWV1ZUV2ZW50czsKLSAgICBWZWN0b3I8U2NoZWR1bGVk
RXZlbnQqPiBtX3NjaGVkdWxlZEV2ZW50czsKLSAgICAKKyAgICBPd25QdHI8RnJhbWVBY3Rpb25T
Y2hlZHVsZXI+IG1fYWN0aW9uU2NoZWR1bGVyOworCiAgICAgYm9vbCBtX292ZXJmbG93U3RhdHVz
RGlydHk7CiAgICAgYm9vbCBtX2hvcml6b250YWxPdmVyZmxvdzsKICAgICBib29sIG1fdmVydGlj
YWxPdmVyZmxvdzsgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84403</attachid>
            <date>2011-03-02 04:58:40 -0800</date>
            <delta_ts>2011-03-02 05:17:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54440-20110302215837.patch</filename>
            <type>text/plain</type>
            <size>22964</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDg0OGQ0MzgyOTc2Zjk3
YjQxMGJiZGZlMGU4ZGVlOGQzYmQ2NTBiNDUuLmIwNWJhNWY4YTEwZTcxMjcxYjI0NDFiM2QyMGY0
ZGE1MWI0MTAxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE4LDYgKzQxOCw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGMwMjI2NWM2NDZkMDhiYjBkYzE5MGI3ZWIwYWVmYzcwZDI1ZTNlOTYuLjBiNjRlMTJkYzBm
ZGM3MGI2YjU3NTllYTVkYjExM2U2MzI0M2NlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQxLDYgKzExNDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNWE4ODRhYWUyODliOTY4NTc1MWM3YjE0ZjMxMjE3YjJhMzQyYWQ4Li4yYzVkMDE4
NWVjOTJhNTQ3ZjYyZWY5MzBkZTNlMTBiYTU5YmIxZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDMtMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb24gYWJzdHJhY3QgY2xh
c3MgZnJvbSBTY2hlZHVsZWRFdmVudCwKKyAgICAgICAgICB3aGljaCBoYXMgZmlyZSgpIHZpcnR1
YWwgbWV0aG9kLgorICAgICAgICAtIFJlbmFtZWQgU2NoZWR1bGVkRXZlbnQgRXZlbnRGcmFtZUFj
dGlvbgorICAgICAgICAKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgQW55IGFjdGlvbiBjYW4g
YmUgaG9va2VkIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGxheW91dC4KKyAgICAgICAgCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBBbmRyb2lk
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFtZUFjdGlvblNjaGVk
dWxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRGcmFtZUFjdGlvbjo6RXZl
bnRGcmFtZUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEZyYW1lQWN0aW9uOjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVB
Y3Rpb246OkZyYW1lQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uOjp+RnJh
bWVBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OmlzU2No
ZWR1bGVkKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OkZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6On5G
cmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cGF1c2VTY2hlZHVsZWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpyZXN1bWVTY2hlZHVsZWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6dXBkYXRlT3ZlcmZsb3dTdGF0dXMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisK
IDIwMTEtMDMtMDEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDdlYTJl
NTExNDFjNzYzODU4YWY1MzQ5MTA1ZjUyNzE5NDIzNmU3ZjcuLjlkMmJiN2QxOTFhMzkzMWFhZmVm
MTJlMDJmM2RkYjJkNWE5MTA5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMjE1LDYgKzIy
MTUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNE
aXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNj
aGVkdWxlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUxvYWRSZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjJhYmViNWI2OTgxNGNlZDgwMGVkNTQ4YmRhZjI0
ZmY2YzBjN2ZiYy4uOTY2MWUxYTdlMjk0ZmMyNzlhZTczZjdhZjQwZjJhYWEyYjcwMzFmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjMzNCw2ICsyMzM0LDggQEAKICAgICAgICAgICAgICdwYWdlL0Zy
YW1lTG9hZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVRyZWUuY3BwJywKICAg
ICAgICAgICAgICdwYWdlL0ZyYW1lVHJlZS5oJywKKyAgICAgICAgICAgICdwYWdlL0ZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9GcmFtZUFjdGlvblNjaGVkdWxl
ci5oJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5jcHAnLAogICAgICAgICAgICAgJ3Bh
Z2UvRnJhbWVWaWV3LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb24uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNDU4ZDZhMjE0MGFhMmNiNzc0ZDhhMjEwOGRiZTcwMWJjNGU1ZGFjYy4u
NWNmMGM3ZTk2OGUxMjM0MTQ4ODJjZWFiMGE2NjY4NWNkMmFhMmU5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTg4Myw2ICs4ODMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0V2ZW50U291cmNlLmNw
cCBcCiAgICAgcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0ZyYW1lLmNwcCBc
CisgICAgcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgXAogICAgIHBhZ2UvRnJhbWVUcmVl
LmNwcCBcCiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDQ2Y2NjMmM4ODIxZGJmODc5ZTE2MDRiYWMwYTg3MTBhNjM1Y2Y0NTcuLjdmMTRjNjRkNzMzODU2
MjNhMTI4MTI1NGMxM2ZjMmUzYjFjOTIyZGUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDQ2MCw2ICsyNDQ2MCwxNCBAQAogCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWUuaCIKIAkJCQk+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVBY3Rp
b25TY2hlZHVsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUxvYWRSZXF1ZXN0LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDYzYzBj
MzQ1MTE0NTYwZmVhMzk3ZDllZTc4NWI2YzI0MTI0ZmI4OS4uNDNkZTRjOTFjZWQ2MDNjYzk3OWI1
NDgzNjViMTdlNWQ3YWM5ODU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE3MSw2ICszMTcxLDggQEAKIAkJQTdBQTY2RDcx
MUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBQTY2RDUxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJl
bmRlckluZGljYXRvci5oICovOyB9OwogCQlBN0FEMkY4NzBFQzg5RDA3MDA4QUIwMDIgLyogTGlu
a0hhc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLzsgfTsKIAkJQTdBRDJG
ODgwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hh
c2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
N0IwNzBEMjEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCMDcwRDAxMzBBNDA5
QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCAqLzsgfTsKKwkJQTdCMDcwRDMx
MzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0Mg
LyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCAqLzsgfTsKIAkJQTdCNkU2OUYwQjI5MUE5NjAwRDA1
MjlGIC8qIERyYWdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0JCRTI2NjExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwICovOyB9OwogCQlBN0JCRTI2NzExQUZCM0YyMDAwNUVBMDMgLyog
SlNIVE1MTWV0ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0JCRTI2NTExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50
LmggKi87IH07CkBAIC05NjA2LDYgKzk2MDgsOCBAQAogCQlBN0FBNjZENTExQzVFRDZBMDAxRDhD
OEMgLyogUmVuZGVySW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlckluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FEMkY4
NTBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGlua0hhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGlua0hhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCMDcwRDExMzBBNDA5QzAwQTM3
NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY1MTFBRkIzRjIwMDA1RUEw
MyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MTWV0ZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAwOCw2ICsxNDAxMiw4IEBACiAJCQkJMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3Vz
RGlyZWN0aW9uLmggKi8sCiAJCQkJNjVCRjAyMjkwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNw
cCAqLywKIAkJCQk2NUJGMDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKKwkJCQlB
N0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwICovLAor
CQkJCUE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICov
LAogCQkJCTY1ODQzNjg1MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi8s
CiAJCQkJNjVBMjE0ODIwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5jcHAgKi8sCiAJCQkJ
NjVBMjE0ODMwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oICovLApAQCAtMjA3MTIsNiAr
MjA3MTgsNyBAQAogCQkJCTkzNUM0NzZEMDlBQzRENjMwMEE2QUFCNCAvKiBGb3VuZGF0aW9uRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5
NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3QjA3MEQzMTMw
QTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRl
clN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzQ4NSw2ICsyMzQ5Miw3IEBACiAJ
CQkJNjU2RDM3M0IwQURCQTVERTAwQTQ1NTREIC8qIEZvcm1TdGF0ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MTg4NUI5NDExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjVCRjAyMkUwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0
MDggLyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZE
NDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTY1QkYwMjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kN2QzZWI1ZDE5OWUxNTM5MzJjYzczNDk2NWQ4ZmU4ODJhZGVhNDY0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAKQEAg
LTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
Tm9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBFdmVudEZyYW1lQWN0aW9uIDogcHVibGljIEZyYW1lQWN0aW9uIHsKK3B1YmxpYzoK
KyAgICBFdmVudEZyYW1lQWN0aW9uKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRy
PE5vZGU+IHRhcmdldCkKKyAgICAgICAgOiBtX2V2ZW50KGV2ZW50KQorICAgICAgICAsIG1fZXZl
bnRUYXJnZXQodGFyZ2V0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZmlyZSgp
CisgICAgeworICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIGV2ZW50cyB0byBub2RlcyB0aGF0IGFy
ZSBpbiB0aGUgZG9jdW1lbnQKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAg
IGlmIChtX2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBtX2V2ZW50VGFy
Z2V0LT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQsIGVjKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFyZ2V0Owor
fTsKKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6OkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKKyAgICA6
IG1fZW5xdWV1ZUFjdGlvbnMoMCkKK3sKK30KKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6On5GcmFt
ZUFjdGlvblNjaGVkdWxlcigpCit7CisgICAgY2xlYXIoKTsKK30KKworYm9vbCBGcmFtZUFjdGlv
blNjaGVkdWxlcjo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NoZWR1bGVkQWN0
aW9ucy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OmNsZWFyKCkK
K3sKKyAgICBtX3NjaGVkdWxlZEFjdGlvbnMuY2xlYXIoKTsKKyAgICBtX2VucXVldWVBY3Rpb25z
ID0gMDsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UoKQoreworICAgIEFT
U0VSVChpc0VtcHR5KCkgfHwgbV9lbnF1ZXVlQWN0aW9ucyk7CisgICAgbV9lbnF1ZXVlQWN0aW9u
cysrOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpyZXN1bWUoKQoreworICAgIG1f
ZW5xdWV1ZUFjdGlvbnMtLTsKKyAgICBpZiAoIW1fZW5xdWV1ZUFjdGlvbnMpCisgICAgICAgIGRp
c3BhdGNoKCk7CisgICAgQVNTRVJUKGlzRW1wdHkoKSB8fCBtX2VucXVldWVBY3Rpb25zKTsKK30K
Kwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2goKQoreworICAgIFZlY3Rvcjwg
T3duUHRyPEZyYW1lQWN0aW9uPiA+IHNuYXBzaG90OworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5z
d2FwKHNuYXBzaG90KTsKKyAgICAKKyAgICBmb3IgKFZlY3RvcjwgT3duUHRyPEZyYW1lQWN0aW9u
PiA+OjppdGVyYXRvciBpID0gc25hcHNob3QuYmVnaW4oKTsgaSAhPSBzbmFwc2hvdC5lbmQoKTsg
KytpKQorICAgICAgICAoKmkpLT5maXJlKCk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVs
ZXI6OnNjaGVkdWxlQWN0aW9uKEZyYW1lQWN0aW9uKiBhY3Rpb24pCit7CisgICAgbV9zY2hlZHVs
ZWRBY3Rpb25zLmFwcGVuZChhY3Rpb24pOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVy
OjpzY2hlZHVsZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRyPE5vZGU+
IGV2ZW50VGFyZ2V0KQoreworICAgIHNjaGVkdWxlQWN0aW9uKG5ldyBFdmVudEZyYW1lQWN0aW9u
KGV2ZW50LCBldmVudFRhcmdldCkpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Njdl
MjA1OTRlMmI1ZGJiMThiYjE4OGUwOTNhY2JiMTQ0YmViMzJkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCkBAIC0wLDAgKzEsNzIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIEZyYW1lQWN0aW9uU2NoZWR1bGVyX2gKKyNkZWZpbmUgRnJh
bWVBY3Rpb25TY2hlZHVsZXJfaAorCisjaW5jbHVkZSA8d3RmL0Zhc3RBbGxvY0Jhc2UuaD4KKyNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5vZGU7
CitjbGFzcyBFdmVudDsKKworY2xhc3MgRnJhbWVBY3Rpb24geworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZyYW1lQWN0aW9uKTsKK3B1Ymxp
YzoKKyAgICBGcmFtZUFjdGlvbigpIHt9CisgICAgdmlydHVhbCB+RnJhbWVBY3Rpb24oKSB7fQor
ICAgIHZpcnR1YWwgdm9pZCBmaXJlKCkgPSAwOworfTsKKworY2xhc3MgRnJhbWVBY3Rpb25TY2hl
ZHVsZXIgeworcHVibGljOgorICAgIEZyYW1lQWN0aW9uU2NoZWR1bGVyKCk7CisgICAgfkZyYW1l
QWN0aW9uU2NoZWR1bGVyKCk7CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdDsKKyAgICBib29s
IGlzU2NoZWR1bGVkKCkgY29uc3QgeyByZXR1cm4gMCA8IG1fZW5xdWV1ZUFjdGlvbnM7IH0KKyAg
ICB2b2lkIGNsZWFyKCk7CisgICAgdm9pZCBwYXVzZSgpOworICAgIHZvaWQgcmVzdW1lKCk7CisK
KyAgICAvLyBwYXNzZWQgYWN0aW9uIG9iamVjdHMgYXJlIGRlbGV0ZWQgYnkgRnJhbWVBY3Rpb24K
KyAgICB2b2lkIHNjaGVkdWxlQWN0aW9uKEZyYW1lQWN0aW9uKik7CisgICAgdm9pZCBzY2hlZHVs
ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+KTsKKworcHJpdmF0ZToK
KyAgICB2b2lkIGRpc3BhdGNoKCk7CisKKyAgICB1bnNpZ25lZCBtX2VucXVldWVBY3Rpb25zOwor
ICAgIFZlY3RvcjwgT3duUHRyPEZyYW1lQWN0aW9uPiA+IG1fc2NoZWR1bGVkQWN0aW9uczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZyYW1lQWN0aW9uU2NoZWR1
bGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjZTU5NDljZTdlZDBhOWE3ZjQ2
YzFmOTM4OGI4ZjViZmY0OTJlMWQ2Li4zYmNjYjQxZmJhNzRlZjAzOTgzMGE0MjAyYzFhZWQwZGYz
NGFkYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUFjdGlvblNjaGVkdWxlci5oIgogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJGcmFtZVRyZWUuaCIKQEAgLTEwOSwxNCArMTEwLDYgQEAgZG91YmxlIEZyYW1lVmlldzo6
c19kZWZlcnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcgPSAwOwogLy8gVGhl
IG1heGltdW0gbnVtYmVyIG9mIHVwZGF0ZVdpZGdldHMgaXRlcmF0aW9ucyB0aGF0IHNob3VsZCBi
ZSBkb25lIGJlZm9yZSByZXR1cm5pbmcuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4VXBkYXRl
V2lkZ2V0c0l0ZXJhdGlvbnMgPSAyOwogCi1zdHJ1Y3QgU2NoZWR1bGVkRXZlbnQgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFNjaGVkdWxlZEV2ZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7Ci1wdWJsaWM6Ci0gICAgU2NoZWR1bGVkRXZlbnQoKSB7IH0KLSAgICBSZWZQdHI8RXZlbnQ+
IG1fZXZlbnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fZXZlbnRUYXJnZXQ7Ci19OwotCiBGcmFtZVZp
ZXc6OkZyYW1lVmlldyhGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwg
bV9jYW5IYXZlU2Nyb2xsYmFycyh0cnVlKQpAQCAtMTMwLDcgKzEyMyw3IEBAIEZyYW1lVmlldzo6
RnJhbWVWaWV3KEZyYW1lKiBmcmFtZSkKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAg
ICAsIG1fYmFzZUJhY2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpCiAgICAgLCBtX21lZGlhVHlw
ZSgic2NyZWVuIikKLSAgICAsIG1fZW5xdWV1ZUV2ZW50cygwKQorICAgICwgbV9hY3Rpb25TY2hl
ZHVsZXIobmV3IEZyYW1lQWN0aW9uU2NoZWR1bGVyKCkpCiAgICAgLCBtX292ZXJmbG93U3RhdHVz
RGlydHkodHJ1ZSkKICAgICAsIG1fdmlld3BvcnRSZW5kZXJlcigwKQogICAgICwgbV93YXNTY3Jv
bGxlZEJ5VXNlcihmYWxzZSkKQEAgLTE2NSw4ICsxNTgsNyBAQCBGcmFtZVZpZXc6On5GcmFtZVZp
ZXcoKQogewogICAgIGlmIChtX2hhc1BlbmRpbmdQb3N0TGF5b3V0VGFza3MpIHsKICAgICAgICAg
bV9wb3N0TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7Ci0gICAgICAgIG1fc2NoZWR1bGVkRXZlbnRz
LmNsZWFyKCk7Ci0gICAgICAgIG1fZW5xdWV1ZUV2ZW50cyA9IDA7CisgICAgICAgIG1fYWN0aW9u
U2NoZWR1bGVyLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6
YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSAmJiBheE9iamVjdENhY2hlKCkpCkBAIC0xODIsOCArMTc0
LDcgQEAgRnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJh
cihmYWxzZSk7CiAgICAgCiAgICAgQVNTRVJUKCFtX3Njcm9sbENvcm5lcik7Ci0gICAgQVNTRVJU
KG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX2VucXVldWVFdmVu
dHMpOworICAgIEFTU0VSVChtX2FjdGlvblNjaGVkdWxlci0+aXNFbXB0eSgpKTsKIAogICAgIGlm
IChtX2ZyYW1lKSB7CiAgICAgICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgIT0gdGhpcyB8fCAh
bV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCkpOwpAQCAtODkwLDcgKzg4MSw3IEBAIHZvaWQgRnJh
bWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAKICAgICBSZW5kZXJMYXllciogbGF5
ZXIgPSByb290LT5lbmNsb3NpbmdMYXllcigpOwogCi0gICAgcGF1c2VTY2hlZHVsZWRFdmVudHMo
KTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+cGF1c2UoKTsKIAogICAgIGJvb2wgZGlzYWJsZUxh
eW91dFN0YXRlID0gZmFsc2U7CiAgICAgaWYgKHN1YnRyZWUpIHsKQEAgLTk2OCwxMyArOTU5LDEy
IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAg
ICBtX2hhc1BlbmRpbmdQb3N0TGF5b3V0VGFza3MgPSB0cnVlOwogICAgICAgICAgICAgbV9wb3N0
TGF5b3V0VGFza3NUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICBpZiAobmVlZHNM
YXlvdXQoKSkgewotICAgICAgICAgICAgICAgIHBhdXNlU2NoZWR1bGVkRXZlbnRzKCk7CisgICAg
ICAgICAgICAgICAgbV9hY3Rpb25TY2hlZHVsZXItPnBhdXNlKCk7CiAgICAgICAgICAgICAgICAg
bGF5b3V0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAg
ICByZXN1bWVTY2hlZHVsZWRFdmVudHMoKTsKLSAgICAgICAgQVNTRVJUKG1fZW5xdWV1ZUV2ZW50
cyk7CisgICAgICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5yZXN1bWUoKTsKICAgICB9CiAKICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZExheW91dChjb29raWUpOwpAQCAtMTc5NCwzMCAr
MTc4NCwxNyBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRlKGJvb2wgaW1tZWRpYXRlUmVx
dWVzdGVkKSBjb25zdAogCiB2b2lkIEZyYW1lVmlldzo6c2NoZWR1bGVFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBldmVudFRhcmdldCkKIHsKLSAgICBpZiAo
IW1fZW5xdWV1ZUV2ZW50cykgewotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAg
ICAgZXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIFNjaGVkdWxlZEV2ZW50KiBzY2hlZHVsZWRFdmVudCA9IG5ldyBTY2hl
ZHVsZWRFdmVudDsKLSAgICBzY2hlZHVsZWRFdmVudC0+bV9ldmVudCA9IGV2ZW50OwotICAgIHNj
aGVkdWxlZEV2ZW50LT5tX2V2ZW50VGFyZ2V0ID0gZXZlbnRUYXJnZXQ7Ci0gICAgbV9zY2hlZHVs
ZWRFdmVudHMuYXBwZW5kKHNjaGVkdWxlZEV2ZW50KTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+
c2NoZWR1bGVFdmVudChldmVudCwgZXZlbnRUYXJnZXQpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6
cGF1c2VTY2hlZHVsZWRFdmVudHMoKQogewotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5p
c0VtcHR5KCkgfHwgbV9lbnF1ZXVlRXZlbnRzKTsKLSAgICBtX2VucXVldWVFdmVudHMrKzsKKyAg
ICBtX2FjdGlvblNjaGVkdWxlci0+cGF1c2UoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnJlc3Vt
ZVNjaGVkdWxlZEV2ZW50cygpCiB7Ci0gICAgbV9lbnF1ZXVlRXZlbnRzLS07Ci0gICAgaWYgKCFt
X2VucXVldWVFdmVudHMpCi0gICAgICAgIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7Ci0gICAg
QVNTRVJUKG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOwor
ICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5yZXN1bWUoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNj
cm9sbFRvQW5jaG9yKCkKQEAgLTE5NDMsNyArMTkyMCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJm
b3JtUG9zdExheW91dFRhc2tzKCkKIAogICAgIHNjcm9sbFRvQW5jaG9yKCk7CiAKLSAgICByZXN1
bWVTY2hlZHVsZWRFdmVudHMoKTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+cmVzdW1lKCk7CiAK
ICAgICBpZiAoIXJvb3QtPnByaW50aW5nKCkpIHsKICAgICAgICAgSW50U2l6ZSBjdXJyZW50U2l6
ZSA9IEludFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpOwpAQCAtMTk4MCwzNSArMTk1NywxMyBAQCB2
b2lkIEZyYW1lVmlldzo6dXBkYXRlT3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZs
b3csIGJvb2wgdmVydGljYWxPdmVyZgogICAgICAgICBtX2hvcml6b250YWxPdmVyZmxvdyA9IGhv
cml6b250YWxPdmVyZmxvdzsKICAgICAgICAgbV92ZXJ0aWNhbE92ZXJmbG93ID0gdmVydGljYWxP
dmVyZmxvdzsKICAgICAgICAgCi0gICAgICAgIHNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6
Y3JlYXRlKGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKKyAg
ICAgICAgbV9hY3Rpb25TY2hlZHVsZXItPnNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6Y3Jl
YXRlKGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKICAgICAg
ICAgICAgIHZlcnRpY2FsT3ZlcmZsb3dDaGFuZ2VkLCB2ZXJ0aWNhbE92ZXJmbG93KSwKICAgICAg
ICAgICAgIG1fdmlld3BvcnRSZW5kZXJlci0+bm9kZSgpKTsKICAgICB9CiAgICAgCiB9CiAKLXZv
aWQgRnJhbWVWaWV3OjpkaXNwYXRjaFNjaGVkdWxlZEV2ZW50cygpCi17Ci0gICAgaWYgKG1fc2No
ZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVmVjdG9yPFNj
aGVkdWxlZEV2ZW50Kj4gc2NoZWR1bGVkRXZlbnRzQ29weSA9IG1fc2NoZWR1bGVkRXZlbnRzOwot
ICAgIG1fc2NoZWR1bGVkRXZlbnRzLmNsZWFyKCk7Ci0gICAgCi0gICAgVmVjdG9yPFNjaGVkdWxl
ZEV2ZW50Kj46Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZEV2ZW50c0NvcHkuZW5kKCk7Ci0gICAg
Zm9yIChWZWN0b3I8U2NoZWR1bGVkRXZlbnQqPjo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRFdmVu
dHNDb3B5LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBTY2hlZHVsZWRFdmVu
dCogc2NoZWR1bGVkRXZlbnQgPSAqaXQ7Ci0gICAgICAgIAotICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICAgICAgCi0gICAgICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5v
ZGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudAotICAgICAgICBpZiAoc2NoZWR1bGVkRXZlbnQt
Pm1fZXZlbnRUYXJnZXQtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIHNjaGVkdWxlZEV2ZW50
LT5tX2V2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50LCBl
Yyk7Ci0gICAgICAgIAotICAgICAgICBkZWxldGUgc2NoZWR1bGVkRXZlbnQ7Ci0gICAgfQotfQot
CiBJbnRSZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykg
Y29uc3QKIHsKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKaW5kZXggNWZhYjRhNGEwOTA1MGUwMzZmZmYyMzljZjg1MjIzMzk0ZGUzYzg2
NS4uODFmMWNkMzg2ZDNkMmEyNjM5ZjI4ZTliZDRlZjBkYWU1MGU5NzVmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ29sb3I7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lQWN0aW9uU2NoZWR1bGVyOwogY2xh
c3MgRnJhbWVWaWV3UHJpdmF0ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBOb2RlOwpAQCAtNDYs
OCArNDcsNiBAQCBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVj
dDsKIGNsYXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiAKLXN0cnVjdCBTY2hlZHVsZWRFdmVudDsK
LQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRpbWVyOwogCiBjbGFzcyBGcmFtZVZpZXcg
OiBwdWJsaWMgU2Nyb2xsVmlldyB7CkBAIC0yOTcsNyArMjk2LDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgdXBkYXRlT3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wg
dmVydGljYWxPdmVyZmxvdyk7CiAKLSAgICB2b2lkIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7
CiAgICAgdm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsK
QEAgLTM4MSw5ICszNzksOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21lZGlhVHlwZTsKICAg
ICBTdHJpbmcgbV9tZWRpYVR5cGVXaGVuTm90UHJpbnRpbmc7CiAKLSAgICB1bnNpZ25lZCBtX2Vu
cXVldWVFdmVudHM7Ci0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj4gbV9zY2hlZHVsZWRFdmVu
dHM7Ci0gICAgCisgICAgT3duUHRyPEZyYW1lQWN0aW9uU2NoZWR1bGVyPiBtX2FjdGlvblNjaGVk
dWxlcjsKKwogICAgIGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5OwogICAgIGJvb2wgbV9ob3Jp
em9udGFsT3ZlcmZsb3c7CiAgICAgYm9vbCBtX3ZlcnRpY2FsT3ZlcmZsb3c7ICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84406</attachid>
            <date>2011-03-02 05:17:10 -0800</date>
            <delta_ts>2011-03-02 05:40:40 -0800</delta_ts>
            <desc>Fixed</desc>
            <filename>bug-54440-20110302221708.patch</filename>
            <type>text/plain</type>
            <size>22958</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAwOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDg0OGQ0MzgyOTc2Zjk3
YjQxMGJiZGZlMGU4ZGVlOGQzYmQ2NTBiNDUuLmIwNWJhNWY4YTEwZTcxMjcxYjI0NDFiM2QyMGY0
ZGE1MWI0MTAxYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtNDE4LDYgKzQxOCw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCXBhZ2UvRXZlbnRIYW5kbGVyLmNwcCBcCiAJ
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKIAlwYWdlL0ZyYW1lLmNwcCBcCisJcGFnZS9GcmFt
ZUFjdGlvblNjaGVkdWxlci5jcHAgXAogCXBhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJcGFnZS9GcmFt
ZVZpZXcuY3BwIFwKIAlwYWdlL0dlb2xvY2F0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cmlu
ZGV4IGMwMjI2NWM2NDZkMDhiYjBkYzE5MGI3ZWIwYWVmYzcwZDI1ZTNlOTYuLjBiNjRlMTJkYzBm
ZGM3MGI2YjU3NTllYTVkYjExM2U2MzI0M2NlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0x
MTQxLDYgKzExNDEsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9FdmVudFNvdXJj
ZS5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0ZyYW1lLmNwcAor
ICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3Bw
CiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwCiAgICAgcGFnZS9HZW9sb2NhdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjNWE4ODRhYWUyODliOTY4NTc1MWM3YjE0ZjMxMjE3YjJhMzQyYWQ4Li4yYzVkMDE4
NWVjOTJhNTQ3ZjYyZWY5MzBkZTNlMTBiYTU5YmIxZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTEtMDMtMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1JlZmFjdG9y
aW5nXSBNYWtlIFNjaGVkdWxlZEV2ZW50IG9uIEZyYW1lVmlldyBhYnN0cmFjdCBvdXQgdG8gU2No
ZWR1bGVBY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NDQwCisKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb25TY2hlZHVsZXIgZnJv
bSBGcmFtZVZpZXcKKyAgICAgICAgLSBFeHRyYWN0ZWQgRnJhbWVBY3Rpb24gYWJzdHJhY3QgY2xh
c3MgZnJvbSBTY2hlZHVsZWRFdmVudCwKKyAgICAgICAgICB3aGljaCBoYXMgZmlyZSgpIHZpcnR1
YWwgbWV0aG9kLgorICAgICAgICAtIFJlbmFtZWQgU2NoZWR1bGVkRXZlbnQgRXZlbnRGcmFtZUFj
dGlvbgorICAgICAgICAKKyAgICAgICAgV2l0aCB0aGlzIGNoYW5nZSwgQW55IGFjdGlvbiBjYW4g
YmUgaG9va2VkIHVwIHRvIHRoZSBlbmQgb2YgdGhlIGxheW91dC4KKyAgICAgICAgCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBBbmRyb2lk
Lm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFt
OgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGFnZS9GcmFtZUFjdGlvblNjaGVk
dWxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRGcmFtZUFjdGlvbjo6RXZl
bnRGcmFtZUFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEZyYW1lQWN0aW9uOjpmaXJl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpGcmFtZUFjdGlvblNj
aGVkdWxlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6fkZyYW1l
QWN0aW9uU2NoZWR1bGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVy
Ojppc0VtcHR5KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpjbGVh
cik6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnJlc3VtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OnNjaGVkdWxlQWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lQWN0aW9uU2NoZWR1bGVyOjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVB
Y3Rpb246OkZyYW1lQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lQWN0aW9uOjp+RnJh
bWVBY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVBY3Rpb25TY2hlZHVsZXI6OmlzU2No
ZWR1bGVkKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OkZyYW1lVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6On5G
cmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6cGF1c2VTY2hlZHVsZWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3OjpyZXN1bWVTY2hlZHVsZWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpwZXJmb3JtUG9zdExheW91dFRhc2tzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6dXBkYXRlT3ZlcmZsb3dTdGF0dXMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisK
IDIwMTEtMDMtMDEgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDdlYTJl
NTExNDFjNzYzODU4YWY1MzQ5MTA1ZjUyNzE5NDIzNmU3ZjcuLjlkMmJiN2QxOTFhMzkzMWFhZmVm
MTJlMDJmM2RkYjJkNWE5MTA5MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMjE1LDYgKzIy
MTUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNE
aXJlY3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNj
aGVkdWxlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUxvYWRSZXF1ZXN0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjJhYmViNWI2OTgxNGNlZDgwMGVkNTQ4YmRhZjI0
ZmY2YzBjN2ZiYy4uOTY2MWUxYTdlMjk0ZmMyNzlhZTczZjdhZjQwZjJhYWEyYjcwMzFmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjMzNCw2ICsyMzM0LDggQEAKICAgICAgICAgICAgICdwYWdlL0Zy
YW1lTG9hZFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZVRyZWUuY3BwJywKICAg
ICAgICAgICAgICdwYWdlL0ZyYW1lVHJlZS5oJywKKyAgICAgICAgICAgICdwYWdlL0ZyYW1lQWN0
aW9uU2NoZWR1bGVyLmNwcCcsCisgICAgICAgICAgICAncGFnZS9GcmFtZUFjdGlvblNjaGVkdWxl
ci5oJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lVmlldy5jcHAnLAogICAgICAgICAgICAgJ3Bh
Z2UvRnJhbWVWaWV3LmgnLAogICAgICAgICAgICAgJ3BhZ2UvR2VvbG9jYXRpb24uY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggNDU4ZDZhMjE0MGFhMmNiNzc0ZDhhMjEwOGRiZTcwMWJjNGU1ZGFjYy4u
NWNmMGM3ZTk2OGUxMjM0MTQ4ODJjZWFiMGE2NjY4NWNkMmFhMmU5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTg4Myw2ICs4ODMsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0V2ZW50U291cmNlLmNw
cCBcCiAgICAgcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0ZyYW1lLmNwcCBc
CisgICAgcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgXAogICAgIHBhZ2UvRnJhbWVUcmVl
LmNwcCBcCiAgICAgcGFnZS9GcmFtZVZpZXcuY3BwIFwKICAgICBwYWdlL0dlb2xvY2F0aW9uLmNw
cCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDQ2Y2NjMmM4ODIxZGJmODc5ZTE2MDRiYWMwYTg3MTBhNjM1Y2Y0NTcuLjdmMTRjNjRkNzMzODU2
MjNhMTI4MTI1NGMxM2ZjMmUzYjFjOTIyZGUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDQ2MCw2ICsyNDQ2MCwxNCBAQAogCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWUuaCIKIAkJCQk+CisJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUFjdGlvblNjaGVkdWxlci5jcHAiCisJCQkJPgor
CQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRnJhbWVBY3Rp
b25TY2hlZHVsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGcmFtZUxvYWRSZXF1ZXN0LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDYzYzBj
MzQ1MTE0NTYwZmVhMzk3ZDllZTc4NWI2YzI0MTI0ZmI4OS4uNDNkZTRjOTFjZWQ2MDNjYzk3OWI1
NDgzNjViMTdlNWQ3YWM5ODU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzE3MSw2ICszMTcxLDggQEAKIAkJQTdBQTY2RDcx
MUM1RUQ2QTAwMUQ4QzhDIC8qIFJlbmRlckluZGljYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdBQTY2RDUxMUM1RUQ2QTAwMUQ4QzhDIC8qIFJl
bmRlckluZGljYXRvci5oICovOyB9OwogCQlBN0FEMkY4NzBFQzg5RDA3MDA4QUIwMDIgLyogTGlu
a0hhc2guY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLzsgfTsKIAkJQTdBRDJG
ODgwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hh
c2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
N0IwNzBEMjEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCMDcwRDAxMzBBNDA5
QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCAqLzsgfTsKKwkJQTdCMDcwRDMx
MzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0IwNzBEMTEzMEE0MDlDMDBBMzc2M0Mg
LyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuaCAqLzsgfTsKIAkJQTdCNkU2OUYwQjI5MUE5NjAwRDA1
MjlGIC8qIERyYWdEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0I2RTY5RDBCMjkxQTk2MDBEMDUyOUYgLyogRHJhZ0RhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBN0JCRTI2NjExQUZCM0Yy
MDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QkJFMjY0MTFBRkIzRjIwMDA1RUEwMyAvKiBKU0hU
TUxNZXRlckVsZW1lbnQuY3BwICovOyB9OwogCQlBN0JCRTI2NzExQUZCM0YyMDAwNUVBMDMgLyog
SlNIVE1MTWV0ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0JCRTI2NTExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50
LmggKi87IH07CkBAIC05NjA2LDYgKzk2MDgsOCBAQAogCQlBN0FBNjZENTExQzVFRDZBMDAxRDhD
OEMgLyogUmVuZGVySW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbmRlckluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0FEMkY4
NTBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGlua0hhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBN0FEMkY4NjBFQzg5RDA3MDA4QUIwMDIgLyogTGlua0hhc2guaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGlua0hhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTdCMDcwRDAxMzBBNDA5QzAwQTM3NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTdCMDcwRDExMzBBNDA5QzAwQTM3
NjNDIC8qIEZyYW1lQWN0aW9uU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZyYW1lQWN0aW9uU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBN0JCRTI2NDExQUZCM0YyMDAwNUVBMDMgLyogSlNIVE1MTWV0ZXJFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1ldGVyRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3QkJFMjY1MTFBRkIzRjIwMDA1RUEw
MyAvKiBKU0hUTUxNZXRlckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MTWV0ZXJFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NDAwOCw2ICsxNDAxMiw4IEBACiAJCQkJMDYyMjg3ODMwQjREQjMyMjAwMEMzNERGIC8qIEZvY3Vz
RGlyZWN0aW9uLmggKi8sCiAJCQkJNjVCRjAyMjkwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNw
cCAqLywKIAkJCQk2NUJGMDIyQTA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCAqLywKKwkJCQlB
N0IwNzBEMDEzMEE0MDlDMDBBMzc2M0MgLyogRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwICovLAor
CQkJCUE3QjA3MEQxMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oICov
LAogCQkJCTY1ODQzNjg1MEFFMDFCNzQwMEU1Mzc1MyAvKiBGcmFtZUxvYWRSZXF1ZXN0LmggKi8s
CiAJCQkJNjVBMjE0ODIwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5jcHAgKi8sCiAJCQkJ
NjVBMjE0ODMwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oICovLApAQCAtMjA3MTIsNiAr
MjA3MTgsNyBAQAogCQkJCTkzNUM0NzZEMDlBQzRENjMwMEE2QUFCNCAvKiBGb3VuZGF0aW9uRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODUzMTIzRDExRDA0NzFCMDBENEQwNzcgLyogRnJh
Z21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUJGMDIyRjA5
NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3QjA3MEQzMTMw
QTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjU2RDM3M0MwQURCQTVERTAwQTQ1NTREIC8qIEZyYW1lTG9hZGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NTZEMzczRTBBREJBNURFMDBBNDU1NEQgLyogRnJhbWVMb2FkZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUQwMDBFQkEzMTFCREFGRDQwMEM0NzcyNiAvKiBGcmFtZUxvYWRl
clN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzQ4NSw2ICsyMzQ5Miw3IEBACiAJ
CQkJNjU2RDM3M0IwQURCQTVERTAwQTQ1NTREIC8qIEZvcm1TdGF0ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MTg4NUI5NDExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNjVCRjAyMkUwOTc0ODE2MzAwQzQzMTk2IC8qIEZyYW1lLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE3QjA3MEQyMTMwQTQwOUMwMEEzNzYzQyAvKiBGcmFtZUFjdGlv
blNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0
MDggLyogRnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZE
NDAwQzQ3NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTY1QkYwMjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NmQ5YjNjMzllZTZkM2U3YzBlNDczNTVhOTU0NGM4ZjkzMzBkMTNiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAKQEAg
LTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RnJhbWVBY3Rpb25TY2hlZHVsZXIuaCIKKworI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAi
Tm9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBFdmVudEZyYW1lQWN0aW9uIDogcHVibGljIEZyYW1lQWN0aW9uIHsKK3B1YmxpYzoK
KyAgICBFdmVudEZyYW1lQWN0aW9uKFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50LCBQYXNzUmVmUHRy
PE5vZGU+IHRhcmdldCkKKyAgICAgICAgOiBtX2V2ZW50KGV2ZW50KQorICAgICAgICAsIG1fZXZl
bnRUYXJnZXQodGFyZ2V0KQorICAgIHsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZmlyZSgp
CisgICAgeworICAgICAgICAvLyBPbmx5IGRpc3BhdGNoIGV2ZW50cyB0byBub2RlcyB0aGF0IGFy
ZSBpbiB0aGUgZG9jdW1lbnQKKyAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgICAg
IGlmIChtX2V2ZW50VGFyZ2V0LT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICBtX2V2ZW50VGFy
Z2V0LT5kaXNwYXRjaEV2ZW50KG1fZXZlbnQsIGVjKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPEV2ZW50PiBtX2V2ZW50OworICAgIFJlZlB0cjxOb2RlPiBtX2V2ZW50VGFyZ2V0Owor
fTsKKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6OkZyYW1lQWN0aW9uU2NoZWR1bGVyKCkKKyAgICA6
IG1fZW5xdWV1ZUFjdGlvbnMoMCkKK3sKK30KKworRnJhbWVBY3Rpb25TY2hlZHVsZXI6On5GcmFt
ZUFjdGlvblNjaGVkdWxlcigpCit7CisgICAgY2xlYXIoKTsKK30KKworYm9vbCBGcmFtZUFjdGlv
blNjaGVkdWxlcjo6aXNFbXB0eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2NoZWR1bGVkQWN0
aW9ucy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVsZXI6OmNsZWFyKCkK
K3sKKyAgICBtX3NjaGVkdWxlZEFjdGlvbnMuY2xlYXIoKTsKKyAgICBtX2VucXVldWVBY3Rpb25z
ID0gMDsKK30KKwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6cGF1c2UoKQoreworICAgIEFT
U0VSVChpc0VtcHR5KCkgfHwgbV9lbnF1ZXVlQWN0aW9ucyk7CisgICAgbV9lbnF1ZXVlQWN0aW9u
cysrOworfQorCit2b2lkIEZyYW1lQWN0aW9uU2NoZWR1bGVyOjpyZXN1bWUoKQoreworICAgIG1f
ZW5xdWV1ZUFjdGlvbnMtLTsKKyAgICBpZiAoIW1fZW5xdWV1ZUFjdGlvbnMpCisgICAgICAgIGRp
c3BhdGNoKCk7CisgICAgQVNTRVJUKGlzRW1wdHkoKSB8fCBtX2VucXVldWVBY3Rpb25zKTsKK30K
Kwordm9pZCBGcmFtZUFjdGlvblNjaGVkdWxlcjo6ZGlzcGF0Y2goKQoreworICAgIFZlY3Rvcjwg
T3duUHRyPEZyYW1lQWN0aW9uPiA+IHNuYXBzaG90OworICAgIG1fc2NoZWR1bGVkQWN0aW9ucy5z
d2FwKHNuYXBzaG90KTsKKyAgICAKKyAgICBmb3IgKFZlY3RvcjwgT3duUHRyPEZyYW1lQWN0aW9u
PiA+OjppdGVyYXRvciBpID0gc25hcHNob3QuYmVnaW4oKTsgaSAhPSBzbmFwc2hvdC5lbmQoKTsg
KytpKQorICAgICAgICAoKmkpLT5maXJlKCk7Cit9CisKK3ZvaWQgRnJhbWVBY3Rpb25TY2hlZHVs
ZXI6OnNjaGVkdWxlQWN0aW9uKFBhc3NPd25QdHI8RnJhbWVBY3Rpb24+IGFjdGlvbikKK3sKKyAg
ICBtX3NjaGVkdWxlZEFjdGlvbnMuYXBwZW5kKGFjdGlvbik7Cit9CisKK3ZvaWQgRnJhbWVBY3Rp
b25TY2hlZHVsZXI6OnNjaGVkdWxlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQsIFBhc3NS
ZWZQdHI8Tm9kZT4gZXZlbnRUYXJnZXQpCit7CisgICAgc2NoZWR1bGVBY3Rpb24obmV3IEV2ZW50
RnJhbWVBY3Rpb24oZXZlbnQsIGV2ZW50VGFyZ2V0KSk7Cit9CisKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVk
dWxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk1OTBkZTlmZTQ0MTQ2MzRjM2Y5OGMyZjM2MTUwOTNlMzZmYjdiMzUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmgKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRnJhbWVBY3Rpb25TY2hlZHVsZXJfaAor
I2RlZmluZSBGcmFtZUFjdGlvblNjaGVkdWxlcl9oCisKKyNpbmNsdWRlIDx3dGYvRmFzdEFsbG9j
QmFzZS5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOworY2xhc3MgRXZlbnQ7CisK
K2NsYXNzIEZyYW1lQWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShGcmFtZUFjdGlvbik7CitwdWJsaWM6CisgICAgRnJhbWVBY3Rp
b24oKSB7fQorICAgIHZpcnR1YWwgfkZyYW1lQWN0aW9uKCkge30KKyAgICB2aXJ0dWFsIHZvaWQg
ZmlyZSgpID0gMDsKK307CisKK2NsYXNzIEZyYW1lQWN0aW9uU2NoZWR1bGVyIHsKK3B1YmxpYzoK
KyAgICBGcmFtZUFjdGlvblNjaGVkdWxlcigpOworICAgIH5GcmFtZUFjdGlvblNjaGVkdWxlcigp
OworCisgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CisgICAgYm9vbCBpc1NjaGVkdWxlZCgpIGNv
bnN0IHsgcmV0dXJuIDAgPCBtX2VucXVldWVBY3Rpb25zOyB9CisgICAgdm9pZCBjbGVhcigpOwor
ICAgIHZvaWQgcGF1c2UoKTsKKyAgICB2b2lkIHJlc3VtZSgpOworCisgICAgdm9pZCBzY2hlZHVs
ZUFjdGlvbihQYXNzT3duUHRyPEZyYW1lQWN0aW9uPik7CisgICAgdm9pZCBzY2hlZHVsZUV2ZW50
KFBhc3NSZWZQdHI8RXZlbnQ+LCBQYXNzUmVmUHRyPE5vZGU+KTsKKworcHJpdmF0ZToKKyAgICB2
b2lkIGRpc3BhdGNoKCk7CisKKyAgICB1bnNpZ25lZCBtX2VucXVldWVBY3Rpb25zOworICAgIFZl
Y3RvcjwgT3duUHRyPEZyYW1lQWN0aW9uPiA+IG1fc2NoZWR1bGVkQWN0aW9uczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEZyYW1lQWN0aW9uU2NoZWR1bGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjZTU5NDljZTdlZDBhOWE3ZjQ2YzFmOTM4
OGI4ZjViZmY0OTJlMWQ2Li4zYmNjYjQxZmJhNzRlZjAzOTgzMGE0MjAyYzFhZWQwZGYzNGFkYWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUFjdGlvblNjaGVkdWxlci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJG
cmFtZVRyZWUuaCIKQEAgLTEwOSwxNCArMTEwLDYgQEAgZG91YmxlIEZyYW1lVmlldzo6c19kZWZl
cnJlZFJlcGFpbnREZWxheUluY3JlbWVudER1cmluZ0xvYWRpbmcgPSAwOwogLy8gVGhlIG1heGlt
dW0gbnVtYmVyIG9mIHVwZGF0ZVdpZGdldHMgaXRlcmF0aW9ucyB0aGF0IHNob3VsZCBiZSBkb25l
IGJlZm9yZSByZXR1cm5pbmcuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4VXBkYXRlV2lkZ2V0
c0l0ZXJhdGlvbnMgPSAyOwogCi1zdHJ1Y3QgU2NoZWR1bGVkRXZlbnQgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFNjaGVkdWxlZEV2ZW50KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1w
dWJsaWM6Ci0gICAgU2NoZWR1bGVkRXZlbnQoKSB7IH0KLSAgICBSZWZQdHI8RXZlbnQ+IG1fZXZl
bnQ7Ci0gICAgUmVmUHRyPE5vZGU+IG1fZXZlbnRUYXJnZXQ7Ci19OwotCiBGcmFtZVZpZXc6OkZy
YW1lVmlldyhGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9jYW5I
YXZlU2Nyb2xsYmFycyh0cnVlKQpAQCAtMTMwLDcgKzEyMyw3IEBAIEZyYW1lVmlldzo6RnJhbWVW
aWV3KEZyYW1lKiBmcmFtZSkKICAgICAsIG1faXNUcmFuc3BhcmVudChmYWxzZSkKICAgICAsIG1f
YmFzZUJhY2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpCiAgICAgLCBtX21lZGlhVHlwZSgic2Ny
ZWVuIikKLSAgICAsIG1fZW5xdWV1ZUV2ZW50cygwKQorICAgICwgbV9hY3Rpb25TY2hlZHVsZXIo
bmV3IEZyYW1lQWN0aW9uU2NoZWR1bGVyKCkpCiAgICAgLCBtX292ZXJmbG93U3RhdHVzRGlydHko
dHJ1ZSkKICAgICAsIG1fdmlld3BvcnRSZW5kZXJlcigwKQogICAgICwgbV93YXNTY3JvbGxlZEJ5
VXNlcihmYWxzZSkKQEAgLTE2NSw4ICsxNTgsNyBAQCBGcmFtZVZpZXc6On5GcmFtZVZpZXcoKQog
ewogICAgIGlmIChtX2hhc1BlbmRpbmdQb3N0TGF5b3V0VGFza3MpIHsKICAgICAgICAgbV9wb3N0
TGF5b3V0VGFza3NUaW1lci5zdG9wKCk7Ci0gICAgICAgIG1fc2NoZWR1bGVkRXZlbnRzLmNsZWFy
KCk7Ci0gICAgICAgIG1fZW5xdWV1ZUV2ZW50cyA9IDA7CisgICAgICAgIG1fYWN0aW9uU2NoZWR1
bGVyLT5jbGVhcigpOwogICAgIH0KICAgICAKICAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSAmJiBheE9iamVjdENhY2hlKCkpCkBAIC0xODIsOCArMTc0LDcgQEAg
RnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxz
ZSk7CiAgICAgCiAgICAgQVNTRVJUKCFtX3Njcm9sbENvcm5lcik7Ci0gICAgQVNTRVJUKG1fc2No
ZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUKCFtX2VucXVldWVFdmVudHMpOwor
ICAgIEFTU0VSVChtX2FjdGlvblNjaGVkdWxlci0+aXNFbXB0eSgpKTsKIAogICAgIGlmIChtX2Zy
YW1lKSB7CiAgICAgICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgIT0gdGhpcyB8fCAhbV9mcmFt
ZS0+Y29udGVudFJlbmRlcmVyKCkpOwpAQCAtODkwLDcgKzg4MSw3IEBAIHZvaWQgRnJhbWVWaWV3
OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAKICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBy
b290LT5lbmNsb3NpbmdMYXllcigpOwogCi0gICAgcGF1c2VTY2hlZHVsZWRFdmVudHMoKTsKKyAg
ICBtX2FjdGlvblNjaGVkdWxlci0+cGF1c2UoKTsKIAogICAgIGJvb2wgZGlzYWJsZUxheW91dFN0
YXRlID0gZmFsc2U7CiAgICAgaWYgKHN1YnRyZWUpIHsKQEAgLTk2OCwxMyArOTU5LDEyIEBAIHZv
aWQgRnJhbWVWaWV3OjpsYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICBtX2hh
c1BlbmRpbmdQb3N0TGF5b3V0VGFza3MgPSB0cnVlOwogICAgICAgICAgICAgbV9wb3N0TGF5b3V0
VGFza3NUaW1lci5zdGFydE9uZVNob3QoMCk7CiAgICAgICAgICAgICBpZiAobmVlZHNMYXlvdXQo
KSkgewotICAgICAgICAgICAgICAgIHBhdXNlU2NoZWR1bGVkRXZlbnRzKCk7CisgICAgICAgICAg
ICAgICAgbV9hY3Rpb25TY2hlZHVsZXItPnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgbGF5b3V0
KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2UgewotICAgICAgICByZXN1
bWVTY2hlZHVsZWRFdmVudHMoKTsKLSAgICAgICAgQVNTRVJUKG1fZW5xdWV1ZUV2ZW50cyk7Cisg
ICAgICAgIG1fYWN0aW9uU2NoZWR1bGVyLT5yZXN1bWUoKTsKICAgICB9CiAKICAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZExheW91dChjb29raWUpOwpAQCAtMTc5NCwzMCArMTc4NCwx
NyBAQCBib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRlKGJvb2wgaW1tZWRpYXRlUmVxdWVzdGVk
KSBjb25zdAogCiB2b2lkIEZyYW1lVmlldzo6c2NoZWR1bGVFdmVudChQYXNzUmVmUHRyPEV2ZW50
PiBldmVudCwgUGFzc1JlZlB0cjxOb2RlPiBldmVudFRhcmdldCkKIHsKLSAgICBpZiAoIW1fZW5x
dWV1ZUV2ZW50cykgewotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgZXZl
bnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQsIGVjKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIFNjaGVkdWxlZEV2ZW50KiBzY2hlZHVsZWRFdmVudCA9IG5ldyBTY2hlZHVsZWRF
dmVudDsKLSAgICBzY2hlZHVsZWRFdmVudC0+bV9ldmVudCA9IGV2ZW50OwotICAgIHNjaGVkdWxl
ZEV2ZW50LT5tX2V2ZW50VGFyZ2V0ID0gZXZlbnRUYXJnZXQ7Ci0gICAgbV9zY2hlZHVsZWRFdmVu
dHMuYXBwZW5kKHNjaGVkdWxlZEV2ZW50KTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+c2NoZWR1
bGVFdmVudChldmVudCwgZXZlbnRUYXJnZXQpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6cGF1c2VT
Y2hlZHVsZWRFdmVudHMoKQogewotICAgIEFTU0VSVChtX3NjaGVkdWxlZEV2ZW50cy5pc0VtcHR5
KCkgfHwgbV9lbnF1ZXVlRXZlbnRzKTsKLSAgICBtX2VucXVldWVFdmVudHMrKzsKKyAgICBtX2Fj
dGlvblNjaGVkdWxlci0+cGF1c2UoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnJlc3VtZVNjaGVk
dWxlZEV2ZW50cygpCiB7Ci0gICAgbV9lbnF1ZXVlRXZlbnRzLS07Ci0gICAgaWYgKCFtX2VucXVl
dWVFdmVudHMpCi0gICAgICAgIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7Ci0gICAgQVNTRVJU
KG1fc2NoZWR1bGVkRXZlbnRzLmlzRW1wdHkoKSB8fCBtX2VucXVldWVFdmVudHMpOworICAgIG1f
YWN0aW9uU2NoZWR1bGVyLT5yZXN1bWUoKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNjcm9sbFRv
QW5jaG9yKCkKQEAgLTE5NDMsNyArMTkyMCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtUG9z
dExheW91dFRhc2tzKCkKIAogICAgIHNjcm9sbFRvQW5jaG9yKCk7CiAKLSAgICByZXN1bWVTY2hl
ZHVsZWRFdmVudHMoKTsKKyAgICBtX2FjdGlvblNjaGVkdWxlci0+cmVzdW1lKCk7CiAKICAgICBp
ZiAoIXJvb3QtPnByaW50aW5nKCkpIHsKICAgICAgICAgSW50U2l6ZSBjdXJyZW50U2l6ZSA9IElu
dFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpOwpAQCAtMTk4MCwzNSArMTk1NywxMyBAQCB2b2lkIEZy
YW1lVmlldzo6dXBkYXRlT3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJv
b2wgdmVydGljYWxPdmVyZgogICAgICAgICBtX2hvcml6b250YWxPdmVyZmxvdyA9IGhvcml6b250
YWxPdmVyZmxvdzsKICAgICAgICAgbV92ZXJ0aWNhbE92ZXJmbG93ID0gdmVydGljYWxPdmVyZmxv
dzsKICAgICAgICAgCi0gICAgICAgIHNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6Y3JlYXRl
KGhvcml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKKyAgICAgICAg
bV9hY3Rpb25TY2hlZHVsZXItPnNjaGVkdWxlRXZlbnQoT3ZlcmZsb3dFdmVudDo6Y3JlYXRlKGhv
cml6b250YWxPdmVyZmxvd0NoYW5nZWQsIGhvcml6b250YWxPdmVyZmxvdywKICAgICAgICAgICAg
IHZlcnRpY2FsT3ZlcmZsb3dDaGFuZ2VkLCB2ZXJ0aWNhbE92ZXJmbG93KSwKICAgICAgICAgICAg
IG1fdmlld3BvcnRSZW5kZXJlci0+bm9kZSgpKTsKICAgICB9CiAgICAgCiB9CiAKLXZvaWQgRnJh
bWVWaWV3OjpkaXNwYXRjaFNjaGVkdWxlZEV2ZW50cygpCi17Ci0gICAgaWYgKG1fc2NoZWR1bGVk
RXZlbnRzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVmVjdG9yPFNjaGVkdWxl
ZEV2ZW50Kj4gc2NoZWR1bGVkRXZlbnRzQ29weSA9IG1fc2NoZWR1bGVkRXZlbnRzOwotICAgIG1f
c2NoZWR1bGVkRXZlbnRzLmNsZWFyKCk7Ci0gICAgCi0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50
Kj46Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZEV2ZW50c0NvcHkuZW5kKCk7Ci0gICAgZm9yIChW
ZWN0b3I8U2NoZWR1bGVkRXZlbnQqPjo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRFdmVudHNDb3B5
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICBTY2hlZHVsZWRFdmVudCogc2No
ZWR1bGVkRXZlbnQgPSAqaXQ7Ci0gICAgICAgIAotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKLSAgICAgICAgCi0gICAgICAgIC8vIE9ubHkgZGlzcGF0Y2ggZXZlbnRzIHRvIG5vZGVzIHRo
YXQgYXJlIGluIHRoZSBkb2N1bWVudAotICAgICAgICBpZiAoc2NoZWR1bGVkRXZlbnQtPm1fZXZl
bnRUYXJnZXQtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgICAgIHNjaGVkdWxlZEV2ZW50LT5tX2V2
ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KHNjaGVkdWxlZEV2ZW50LT5tX2V2ZW50LCBlYyk7Ci0g
ICAgICAgIAotICAgICAgICBkZWxldGUgc2NoZWR1bGVkRXZlbnQ7Ci0gICAgfQotfQotCiBJbnRS
ZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykgY29uc3QK
IHsKICAgICBBU1NFUlQobV9mcmFtZS0+dmlldygpID09IHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKaW5kZXggNWZhYjRhNGEwOTA1MGUwMzZmZmYyMzljZjg1MjIzMzk0ZGUzYzg2NS4uODFm
MWNkMzg2ZDNkMmEyNjM5ZjI4ZTliZDRlZjBkYWU1MGU5NzVmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29s
b3I7CiBjbGFzcyBFdmVudDsKK2NsYXNzIEZyYW1lQWN0aW9uU2NoZWR1bGVyOwogY2xhc3MgRnJh
bWVWaWV3UHJpdmF0ZTsKIGNsYXNzIEludFJlY3Q7CiBjbGFzcyBOb2RlOwpAQCAtNDYsOCArNDcs
NiBAQCBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNs
YXNzIFJlbmRlclNjcm9sbGJhclBhcnQ7CiAKLXN0cnVjdCBTY2hlZHVsZWRFdmVudDsKLQogdGVt
cGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFRpbWVyOwogCiBjbGFzcyBGcmFtZVZpZXcgOiBwdWJs
aWMgU2Nyb2xsVmlldyB7CkBAIC0yOTcsNyArMjk2LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
dXBkYXRlT3ZlcmZsb3dTdGF0dXMoYm9vbCBob3Jpem9udGFsT3ZlcmZsb3csIGJvb2wgdmVydGlj
YWxPdmVyZmxvdyk7CiAKLSAgICB2b2lkIGRpc3BhdGNoU2NoZWR1bGVkRXZlbnRzKCk7CiAgICAg
dm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVwYWlu
dENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKQEAgLTM4
MSw5ICszNzksOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX21lZGlhVHlwZTsKICAgICBTdHJp
bmcgbV9tZWRpYVR5cGVXaGVuTm90UHJpbnRpbmc7CiAKLSAgICB1bnNpZ25lZCBtX2VucXVldWVF
dmVudHM7Ci0gICAgVmVjdG9yPFNjaGVkdWxlZEV2ZW50Kj4gbV9zY2hlZHVsZWRFdmVudHM7Ci0g
ICAgCisgICAgT3duUHRyPEZyYW1lQWN0aW9uU2NoZWR1bGVyPiBtX2FjdGlvblNjaGVkdWxlcjsK
KwogICAgIGJvb2wgbV9vdmVyZmxvd1N0YXR1c0RpcnR5OwogICAgIGJvb2wgbV9ob3Jpem9udGFs
T3ZlcmZsb3c7CiAgICAgYm9vbCBtX3ZlcnRpY2FsT3ZlcmZsb3c7ICAgIAo=
</data>
<flag name="review"
          id="76379"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>