<?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>49785</bug_id>
          
          <creation_ts>2010-11-18 22:44:07 -0800</creation_ts>
          <short_desc>Move asynchronous event dispatching out of Document</short_desc>
          <delta_ts>2010-12-14 15:00:29 -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>All</rep_platform>
          <op_sys>All</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>45631</blocked>
    
    <blocked>45712</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mihai Parparita">mihaip</reporter>
          <assigned_to name="Mihai Parparita">mihaip</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gustavo</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>311299</commentid>
    <comment_count>0</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-18 22:44:07 -0800</bug_when>
    <thetext>Move asynchronous event dispatching out of Document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311300</commentid>
    <comment_count>1</comment_count>
      <attachid>74355</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-18 22:47:21 -0800</bug_when>
    <thetext>Created attachment 74355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311301</commentid>
    <comment_count>2</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-18 22:49:27 -0800</bug_when>
    <thetext>This breaks out the EventQueue class out of bug 45631, so that Ryosuke can use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311305</commentid>
    <comment_count>3</comment_count>
      <attachid>74355</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-18 23:29:59 -0800</bug_when>
    <thetext>Comment on attachment 74355
Patch

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

Thanks for doing this!

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:2656
&gt; +		8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F6756191288B17B0047ACA3 /* EventQueue.h */; };

You probably want to make this private.  i.e. settings = {ATTRIBUTES = (Private, ); };

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:18435
&gt; +				8F6756191288B17B0047ACA3 /* EventQueue.h */,
&gt; +				8F67561A1288B17B0047ACA3 /* EventQueue.cpp */,

Please put this in the lexicologically correct location.

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:21372
&gt; +				8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */,

Ditto.

&gt; WebCore/WebCore.xcodeproj/project.pbxproj:23942
&gt; +				8F67561C1288B17B0047ACA3 /* EventQueue.cpp in Sources */,

Ditto.

&gt; WebCore/dom/EventQueue.cpp:67
&gt; +        if (!eventTarget-&gt;toNode()-&gt;inDocument())
&gt; +            return;

I&apos;m not sure why you&apos;re doing this.  Why shouldn&apos;t we fire events when the target node is not in the document?

&gt; WebCore/dom/EventQueue.h:39
&gt; +class EventQueue {

Should this inherit from Noncopyable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311524</commentid>
    <comment_count>4</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-19 09:39:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; You probably want to make this private.  i.e. settings = {ATTRIBUTES = (Private, ); };

Why? Despite the name, &quot;private&quot; actually exposes the header outside of the project. The default visibility (&quot;project&quot;) is better unless there&apos;s a need for EventQueue to be used outside of WebCore. Other headers nearby (e.g. EventContext.h) use &quot;project&quot; visibility too.
 
&gt; &gt; WebCore/WebCore.xcodeproj/project.pbxproj:18435
&gt; &gt; +				8F6756191288B17B0047ACA3 /* EventQueue.h */,
&gt; &gt; +				8F67561A1288B17B0047ACA3 /* EventQueue.cpp */,
&gt; 
&gt; Please put this in the lexicologically correct location.

Done.

&gt; &gt; WebCore/WebCore.xcodeproj/project.pbxproj:21372
&gt; &gt; +				8F67561B1288B17B0047ACA3 /* EventQueue.h in Headers */,
&gt; 
&gt; Ditto.

Done.

&gt; &gt; WebCore/WebCore.xcodeproj/project.pbxproj:23942
&gt; &gt; +				8F67561C1288B17B0047ACA3 /* EventQueue.cpp in Sources */,
&gt; 
&gt; Ditto.

Done.

&gt; 
&gt; &gt; WebCore/dom/EventQueue.cpp:67
&gt; &gt; +        if (!eventTarget-&gt;toNode()-&gt;inDocument())
&gt; &gt; +            return;
&gt; 
&gt; I&apos;m not sure why you&apos;re doing this.  Why shouldn&apos;t we fire events when the target node is not in the document?

This was left over from the scrolling-related change, and isn&apos;t necessary for this refactoring. Removed.

&gt; 
&gt; &gt; WebCore/dom/EventQueue.h:39
&gt; &gt; +class EventQueue {
&gt; 
&gt; Should this inherit from Noncopyable?

Based on http://trac.webkit.org/changeset/68414, WTF_MAKE_NONCOPYABLE is actually the preferred way of doing this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311529</commentid>
    <comment_count>5</comment_count>
      <attachid>74399</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-19 09:41:51 -0800</bug_when>
    <thetext>Created attachment 74399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311530</commentid>
    <comment_count>6</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-11-19 09:42:15 -0800</bug_when>
    <thetext>Ojan may be a good reviewer too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311539</commentid>
    <comment_count>7</comment_count>
      <attachid>74399</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-19 10:04:14 -0800</bug_when>
    <thetext>Comment on attachment 74399
Patch

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

&gt; WebCore/dom/EventQueue.cpp:70
&gt; +    else if (eventTarget-&gt;toDOMWindow())
&gt; +        eventTarget-&gt;toDOMWindow()-&gt;dispatchEvent(event, 0);
&gt; +    else
&gt; +        ASSERT_NOT_REACHED();

This &quot;else if&quot; condition is unnecessary since you already asserted
ASSERT(event-&gt;target()-&gt;toNode() || event-&gt;target()-&gt;toDOMWindow());
in enqueueEvent.  You can just do:
else {
    ASSERT(event-&gt;target()-&gt;toDOMWindow());
    eventTarget-&gt;toDOMWindow()-&gt;dispatchEvent(event, 0);
}

It&apos;s not possible for the node or DOMWindow to go away
since the target is stored as RefPtr in Event, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311545</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-19 10:16:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; You probably want to make this private.  i.e. settings = {ATTRIBUTES = (Private, ); };
&gt; 
&gt; Why? Despite the name, &quot;private&quot; actually exposes the header outside of the project. The default visibility (&quot;project&quot;) is better unless there&apos;s a need for EventQueue to be used outside of WebCore. Other headers nearby (e.g. EventContext.h) use &quot;project&quot; visibility too.

Ok, that makes sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311550</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 10:19:16 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; It&apos;s not possible for the node or DOMWindow to go away since the target is stored as RefPtr in Event, right?

It all depends what you mean by “go away”. The memory for the object won’t be reclaimed and the object won’t be deleted as long as we hold a reference. But the object can be in a state where it’s no longer reasonable to dispatch events to it.

For example, we don’t want to dispatch events to elements in webpages in the back/forward cache, to name the trickiest example I can think of. Similarly, if we already sent an unload event to a webpage we don’t want to send other events to the elements on the page that are left over from earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311562</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-19 10:45:42 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; It all depends what you mean by “go away”. The memory for the object won’t be reclaimed and the object won’t be deleted as long as we hold a reference. But the object can be in a state where it’s no longer reasonable to dispatch events to it.

Right but calling toDOMWindow() doesn&apos;t help, does it?

&gt; For example, we don’t want to dispatch events to elements in webpages in the back/forward cache, to name the trickiest example I can think of. Similarly, if we already sent an unload event to a webpage we don’t want to send other events to the elements on the page that are left over from earlier.

Wait, I thought this won&apos;t happen because of ActiveDOMObject?

+ap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311568</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 11:00:40 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; It all depends what you mean by “go away”. The memory for the object won’t be reclaimed and the object won’t be deleted as long as we hold a reference. But the object can be in a state where it’s no longer reasonable to dispatch events to it.
&gt; 
&gt; Right but calling toDOMWindow() doesn&apos;t help, does it?

I don’t understand this remark. The function toDOMWindow is a good way to convert from an EventTarget* to a DOMWindow*. It has nothing to do with object lifetime; did someone say it does?

&gt; &gt; For example, we don’t want to dispatch events to elements in webpages in the back/forward cache, to name the trickiest example I can think of. Similarly, if we already sent an unload event to a webpage we don’t want to send other events to the elements on the page that are left over from earlier.
&gt; 
&gt; Wait, I thought this won&apos;t happen because of ActiveDOMObject?

The ActiveDOMObject mechanism prevents some sorts of activity from occurring while a page is in the back/forward cache. But how does ActiveDOMObject prevent us from dispatching one of these queued events? Clearly it doesn’t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311579</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-19 11:16:08 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Right but calling toDOMWindow() doesn&apos;t help, does it?
&gt; 
&gt; I don’t understand this remark. The function toDOMWindow is a good way to convert from an EventTarget* to a DOMWindow*. It has nothing to do with object lifetime; did someone say it does?

Sorry, my point was to say this refactoring wouldn&apos;t worsen the problem.  Am I right?

&gt; &gt; &gt; For example, we don’t want to dispatch events to elements in webpages in the back/forward cache, to name the trickiest example I can think of. Similarly, if we already sent an unload event to a webpage we don’t want to send other events to the elements on the page that are left over from earlier.
&gt; &gt;
&gt; &gt; Wait, I thought this won&apos;t happen because of ActiveDOMObject?
&gt;
&gt; The ActiveDOMObject mechanism prevents some sorts of activity from occurring while a page is in the back/forward cache. But how does ActiveDOMObject prevent us from dispatching one of these queued events? Clearly it doesn’t.

I see.  Maybe we should check that the document is still attached to a frame?  (i.e. frame() != 0).  But I&apos;m not sure how that helps for DOMWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311581</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-19 11:18:30 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; The ActiveDOMObject mechanism prevents some sorts of activity from occurring while a page is in the back/forward cache. But how does ActiveDOMObject prevent us from dispatching one of these queued events? Clearly it doesn’t.

One more thing.  I was going to suggest that we can add clear() to EventQueue so that we can remove all the pending events when we detach the document and or frame.  What do you think of this idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311598</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-19 11:59:07 -0800</bug_when>
    <thetext>&gt; For example, we don’t want to dispatch events to elements in webpages in the back/forward cache

This depends on event - for example, async DOM mutation events almost certainly should keep the document object alive and work regardless of whether the document is in frame, or ever was.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311601</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-19 12:02:15 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; For example, we don’t want to dispatch events to elements in webpages in the back/forward cache
&gt; 
&gt; This depends on event - for example, async DOM mutation events almost certainly should keep the document object alive and work regardless of whether the document is in frame, or ever was.

Keeping a document alive is fine, but in the back/forward cache case the document is in suspended animation. I think it would be bad to run any JavaScript at all when the document is in that state. But I could be wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311611</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-19 12:13:06 -0800</bug_when>
    <thetext>I agree that running JS in a context of a document that&apos;s in b/f cache is unacceptable. But event dispatch is different - a handler can be in another context. E.g.

var doc = frames[0].document;
doc.documentElement.addEventListener(&quot;AsyncDOMMutation&quot;, function() { alert(&quot;ha-ha!&quot;) }, true);
frames[0].navigateAway();
doc.documentElement.appendElement(...);

There is no reason for the alert to not be displayed. JSEventListener::handleEvent() takes care of not running scripts in documents that are in b/f cache or frameless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312550</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-22 15:14:01 -0800</bug_when>
    <thetext>Could someone review this patch?  There are two bugs depending on this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312553</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-22 15:19:01 -0800</bug_when>
    <thetext>Could someone review this patch?  There are two bugs depending on this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317811</commentid>
    <comment_count>19</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-06 13:05:05 -0800</bug_when>
    <thetext>Given Alexey&apos;s clarifications in comment 16 about event dispatch and the b/f cache, are there any other concerns with this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322002</commentid>
    <comment_count>20</comment_count>
      <attachid>74399</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-12-14 09:16:24 -0800</bug_when>
    <thetext>Comment on attachment 74399
Patch

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

Looks ok overall, except for the win build fix mentioned.

&gt; WebCore/WebCore.vcproj/WebCore.vcproj:42430
&gt; +				RelativePath=&quot;..\dom\EventQueue.cpp&quot;

I think you also need to add this file to DOMAllInOne for it to build on Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322190</commentid>
    <comment_count>21</comment_count>
      <attachid>76568</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:08:42 -0800</bug_when>
    <thetext>Created attachment 76568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322191</commentid>
    <comment_count>22</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:09:07 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I think you also need to add this file to DOMAllInOne for it to build on Win.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322200</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-14 14:22:02 -0800</bug_when>
    <thetext>Attachment 76568 did not build on chromium:
Build output: http://queues.webkit.org/results/6948114</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322201</commentid>
    <comment_count>24</comment_count>
      <attachid>76568</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:23:42 -0800</bug_when>
    <thetext>Comment on attachment 76568
Patch

Looking at Chromium build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322203</commentid>
    <comment_count>25</comment_count>
      <attachid>76568</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-14 14:24:12 -0800</bug_when>
    <thetext>Comment on attachment 76568
Patch

Rejecting attachment 76568 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sf&apos;, &apos;apply-attachment&apos;, &apos;--non-interactive&apos;, 76568]&quot; exit_code: 2
Last 500 characters of output:
project.pbxproj
patching file WebCore/dom/DOMAllInOne.cpp
patching file WebCore/dom/Document.cpp
patching file WebCore/dom/Document.h
patching file WebCore/dom/EventQueue.cpp
patching file WebCore/dom/EventQueue.h
patching file WebCore/storage/StorageEventDispatcher.cpp
patching file WebKit/chromium/ChangeLog
patching file WebKit/chromium/src/StorageAreaProxy.cpp

Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Dimitri Glazkov&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/6992126</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322209</commentid>
    <comment_count>26</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-12-14 14:27:24 -0800</bug_when>
    <thetext>Attachment 76568 did not build on qt:
Build output: http://queues.webkit.org/results/7023131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322217</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-14 14:32:14 -0800</bug_when>
    <thetext>Attachment 76568 did not build on gtk:
Build output: http://queues.webkit.org/results/7073001</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322231</commentid>
    <comment_count>28</comment_count>
      <attachid>76574</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:41:37 -0800</bug_when>
    <thetext>Created attachment 76574
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322234</commentid>
    <comment_count>29</comment_count>
      <attachid>76574</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-14 14:43:19 -0800</bug_when>
    <thetext>Comment on attachment 76574
Patch for landing

Rejecting attachment 76574 from commit-queue.

Failed to run &quot;[&apos;/Projects/WebKit/WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--non-interactive&apos;, 76574]&quot; exit_code: 2
Last 500 characters of output:
ing file WebCore/WebCore.xcodeproj/project.pbxproj
patching file WebCore/dom/DOMAllInOne.cpp
patching file WebCore/dom/Document.cpp
patching file WebCore/dom/Document.h
patching file WebCore/dom/EventQueue.cpp
patching file WebCore/dom/EventQueue.h
patching file WebCore/storage/StorageEventDispatcher.cpp
patching file WebKit/chromium/ChangeLog
patching file WebKit/chromium/src/StorageAreaProxy.cpp

Failed to run &quot;[u&apos;/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/7007113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322238</commentid>
    <comment_count>30</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:46:42 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 76568 [details])
&gt; Looking at Chromium build issue.

The EventQueue forward declaration in Document.h got dropped due a merge conflict, hence the build issues (with all platforms). New patch should build correctly.

Will land manually due to the cq complaining about merge issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322242</commentid>
    <comment_count>31</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-14 14:52:40 -0800</bug_when>
    <thetext>Committed r74062: &lt;http://trac.webkit.org/changeset/74062&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322244</commentid>
    <comment_count>32</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2010-12-14 15:00:29 -0800</bug_when>
    <thetext>Attachment 76568 did not build on win:
Build output: http://queues.webkit.org/results/6979140</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74355</attachid>
            <date>2010-11-18 22:47:21 -0800</date>
            <delta_ts>2010-11-19 09:41:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49785-20101118224720.patch</filename>
            <type>text/plain</type>
            <size>22321</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBjYzQ5MGVlZjQ1MWZlZmEyN2RjM2JkYTU4Mjg4ZmYyNzExNTMwNGRlLi5hZjJlYTA2MmY3YjI2
OTgyYjNkZDcwMGQ2MjQ5NGQyZDAxODE2OWZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xMzIsNiArMTMyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL0V2ZW50Q29udGV4dC5jcHAgXAog
CWRvbS9FdmVudE5hbWVzLmNwcCBcCiAJZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCisJZG9tL0V2ZW50
UXVldWUuY3BwIFwKIAlkb20vRXhjZXB0aW9uQmFzZS5jcHAgXAogCWRvbS9FeGNlcHRpb25Db2Rl
LmNwcCBcCiAJZG9tL0lucHV0RWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNzFiNDU3MTJlMWZlNjM3
YmM1ZDJjMDFhYmQ2ZGFjOGRmOGQyOTRjOC4uODhhNzJhMmQ0Y2QyYTE2MzM3YjY5ZTg1MWViNzlh
MDhjNzZhYzY1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC04MjQsNiArODI0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGRvbS9FdmVudENvbnRleHQuY3BwCiAgICAgZG9tL0V2ZW50TmFtZXMuY3BwCiAgICAg
ZG9tL0V2ZW50VGFyZ2V0LmNwcAorICAgIGRvbS9FdmVudFF1ZXVlLmNwcAogICAgIGRvbS9FeGNl
cHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2RlLmNwcAogICAgIGRvbS9JbnB1dEVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDEyNWU3NTY5MzRhOTJkZGM5YTJkN2E1OWE2NmE0ZGIxNWJkNWE4NWUuLmQxNTI5
ZWRkYmFiZmJhMTkzNGFhNGQ0YzZhZWFkYTE2ZTE4YmZkNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAt
MTEtMTggIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhc3luY2hyb25vdXMg
ZXZlbnQgZGlzcGF0Y2hpbmcgb3V0IG9mIERvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTc4NQorICAgICAgICAKKyAgICAgICAgTW92ZSBh
c3luY2hvbm91cyBldmVudCBjb2RlIG91dCBvZiBEb2N1bWVudCBhbmQgaW50byBhIHN0YW5kYWxv
bmUKKyAgICAgICAgRXZlbnRRdWV1ZSBjbGFzcyAod2hpY2ggc3VwcG9ydHMgYXN5bmMgZXZlbnRz
IGZvciBib3RoIHJlZ3VsYXIgbm9kZXMKKyAgICAgICAgYW5kIHRoZSB3aW5kb3cgb2JqZWN0KS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgbmVjZXNzYXJ5LCBzaW5jZSBubyBuZXcgZnVuY3Rpb25h
bGl0eSBpcyBleHBvc2VkIChleGlzdGluZworICAgICAgICBsYXlvdXQgdGVzdHMgcGFzcykuCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVdpbmRvd0V2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpldmVudFF1ZXVlKToK
KyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRRdWV1ZTo6RXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjpl
bnF1ZXVlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50
VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50
KToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorCiAyMDEwLTExLTE4ICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggYTIxMWMxOGQzMDYwMDFjNmQzODIxZjE5NjY3ZTExYTdiNDg0ZjY5OS4uOGJjOTZiZWFk
ZTc3ODMxOTJmY2E5YjFmNmU2Y2M4MGRjYTlmMjQ0MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMTM3LDYgKzExMzcs
OCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBcCiAJ
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwIFwKIAlXZWJDb3JlL2RvbS9FdmVudFRhcmdldC5o
IFwKKwlXZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcCBcCisJV2ViQ29yZS9kb20vRXZlbnRRdWV1
ZS5oIFwKIAlXZWJDb3JlL2RvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAJV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQmFzZS5oIFwKIAlXZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGQ5
ZjFlZjNiMmVkODE5MGRjNzQ1ZjY2MzQ0YTMzNjdhOWE1ZWQ3ZTkuLjk3MjUyMDQ5ZTA4MjA0MjE0
NDcxYzc3MzdkMDcyYjVkYTMzYzVlZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMjA0LDYgKzEyMDQsOCBAQAogICAgICAg
ICAgICAgJ2RvbS9FdmVudE5hbWVzLmgnLAogICAgICAgICAgICAgJ2RvbS9FdmVudFRhcmdldC5j
cHAnLAogICAgICAgICAgICAgJ2RvbS9FdmVudFRhcmdldC5oJywKKyAgICAgICAgICAgICdkb20v
RXZlbnRRdWV1ZS5jcHAnLAorICAgICAgICAgICAgJ2RvbS9FdmVudFF1ZXVlLmgnLAogICAgICAg
ICAgICAgJ2RvbS9FeGNlcHRpb25CYXNlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlv
bkJhc2UuaCcsCiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkNvZGUuY3BwJywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDEyZDYz
MmNjMDUxZjI5ZGMxY2U0NDk5ZTQzYWRhOTE4ZDY2NjBkNzMuLjkzOTBmZTFkYzk1YjViYjEyNTYw
YTA4NjM2MzkzMzgzMWVlMGU0MmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNzEyLDYgKzcxMiw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIGRvbS9FdmVudENvbnRleHQuY3BwIFwKICAgICBkb20vRXZlbnROYW1lcy5jcHAgXAogICAg
IGRvbS9FdmVudFRhcmdldC5jcHAgXAorICAgIGRvbS9FdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9t
L0V4Y2VwdGlvbkJhc2UuY3BwIFwKICAgICBkb20vRXhjZXB0aW9uQ29kZS5jcHAgXAogICAgIGRv
bS9JbnB1dEVsZW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmlu
ZGV4IGU0MWI1NWIwNWQ4ZWJkYTFkZjI3ZGZhNTAwZWZiYTExZDVhNDg3NTAuLjg3MGIzODZhZjdm
ZTg5Mzg4M2U4MGMyNzJiNjQzNzFiMmVjNTdjOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagpAQCAtNDI0MjYsNiArNDI0MjYsNjIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxFdmVudFRhcmdldC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KKwkJICA8RmlsZQ0KKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFdmVudFF1ZXVlLmNwcCINCisJCQkJPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIi
DQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fp
cm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEV2ZW50UXVldWUuaCINCisJCQkJPg0KKwkJ
CTwvRmlsZT4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFeGNlcHRpb25C
YXNlLmNwcCINCiAJCQkJPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk2NTlhYzRlNTk5MmRjZDY3N2E0ZGI3NGY1Y2E3ZmEzYTM5NzU4NS4uZTI3Mjdk
OWRjMWFiMzQ5NmRiZmIyMDE1NWIxMjIzNmY5Mzg5OTc0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI2NTMsNiArMjY1Myw4IEBACiAJCThBRjRFNTVD
MTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEFGNEU1NTkxMURDNUE2MzAwMEVEM0RFIC8q
IFBlcmZvcm1hbmNlVGltaW5nLmggKi87IH07CiAJCThDNkVBNjE5MTFFRjdFMDQwMEZEOEVFMyAv
KiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDhDNkVBNjE3MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcCAqLzsgfTsKIAkJOEM2RUE2MUExMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhDNkVBNjE4MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmggKi87IH07CisJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYx
OTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovOyB9OworCQk4RjY3NTYxQzEyODhC
MTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4RjY3NTYxQTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1
ZS5jcHAgKi87IH07CiAJCThGQUM3NzREMTE5ODcyQ0IwMDE1QUU5NCAvKiBKU01haW5UaHJlYWRF
eGVjU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAg
Ki87IH07CiAJCTkzMDJCMEJEMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMkIwQkMwRDc5Rjgy
OTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgKi87IH07CiAJCTkzMDJCMEJGMEQ3OUY4MkMwMEM3
RUU4MyAvKiBQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzMDJCMEJFMEQ3OUY4MkMwMEM3RUU4MyAvKiBQYWdlR3JvdXAuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODc3Niw2ICs4Nzc4
LDggQEAKIAkJOEFGNEU1NUExMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1hbmNlVGltaW5nLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBQZXJmb3JtYW5jZVRpbWluZy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCThDNkVBNjE3MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOyBwYXRoID0gZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEM2RUE2MTgxMUVG
N0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOyBwYXRoID0gZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CThGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOEY2NzU2MUExMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRRdWV1ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDgzMTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThGOTM0RDg0MTE4
OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwMkIwQkMwRDc5RjgyOTAwQzdFRTgzIC8qIFBhZ2VH
cm91cC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlR3JvdXAu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTg0MjcsNiArMTg0MzEsOCBAQAog
CQkJCTU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxEb2N1bWVudFBhcnNlckxpYnhtbDIu
Y3BwICovLAogCQkJCTVEMTVFM0E5MEY5RTZBQzEwMDlFMEUzRiAvKiBYTUxEb2N1bWVudFBhcnNl
clNjb3BlLmNwcCAqLywKIAkJCQk1RDE1RTNBQTBGOUU2QUMxMDA5RTBFM0YgLyogWE1MRG9jdW1l
bnRQYXJzZXJTY29wZS5oICovLAorCQkJCThGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVu
dFF1ZXVlLmggKi8sCisJCQkJOEY2NzU2MUExMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUu
Y3BwICovLAogCQkJKTsKIAkJCXBhdGggPSBkb207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMjEzNjMsNiArMjEzNjksNyBAQAogCQkJCUUxQUQxNDIxMTI5NUVBNkIwMEFDQTk4OSAv
KiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQUQxNDIz
MTI5NUVBN0YwMEFDQTk4OSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQUQxNDI1MTI5NUVBOTUwMEFDQTk4OSAvKiBKU0hUTUxPYmplY3RFbGVtZW50
Q3VzdG9tLmggaW4gSGVhZGVycyAqLywKKwkJCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyog
RXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzkzMiw2ICsyMzkzOSw3IEBACiAJCQkJ
RTFBRDEyRDYxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQUQxMzlCMTI5NUQ5MjYwMEFDQTk4OSAvKiBKU0hU
TUxMaW5rRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTM5RTEyOTVE
OTYxMDBBQ0E5ODkgLyogSlNIVE1MU3R5bGVFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDlhZDk1NmY2MmVhNWNhNDdhNWEyZGU1ODllNzcyYTRkYmYx
YWVkNzEuLjE2MzA1ZDlmYTRlYjg0ZThiZGRlZDMxOTNiNTg0MDczOGI2YzkwMzkgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRl
ICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2
ZW50UXVldWUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKQEAgLTM5OSw3ICs0MDAsNyBAQCBEb2N1
bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRN
TCwgYm9vbCBpc0hUTUwsIGNvbgogICAgICwgbV9ub3JtYWxXb3JsZFdyYXBwZXJDYWNoZSgwKQog
I2VuZGlmCiAgICAgLCBtX3VzaW5nR2VvbG9jYXRpb24oZmFsc2UpCi0gICAgLCBtX3BlbmRpbmdF
dmVudFRpbWVyKHRoaXMsICZEb2N1bWVudDo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCkKKyAgICAs
IG1fZXZlbnRRdWV1ZShhZG9wdFB0cihuZXcgRXZlbnRRdWV1ZSkpCiAjaWYgRU5BQkxFKFdNTCkK
ICAgICAsIG1fY29udGFpbnNXTUxDb250ZW50KGZhbHNlKQogI2VuZGlmCkBAIC0zNDQyLDIzICsz
NDQzLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkKICAgICBk
b21XaW5kb3ctPmRpc3BhdGNoTG9hZEV2ZW50KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmVucXVl
dWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3ZvaWQgRG9jdW1lbnQ6OmVucXVldWVX
aW5kb3dFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKLSAgICBtX3BlbmRpbmdFdmVu
dFF1ZXVlLmFwcGVuZChldmVudCk7Ci0gICAgaWYgKCFtX3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgIG1fcGVuZGluZ0V2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwotfQot
Ci12b2lkIERvY3VtZW50OjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50Piop
Ci17Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIFZl
Y3RvcjxSZWZQdHI8RXZlbnQ+ID4gZXZlbnRRdWV1ZTsKLSAgICBldmVudFF1ZXVlLnN3YXAobV9w
ZW5kaW5nRXZlbnRRdWV1ZSk7Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID46
OmNvbnN0X2l0ZXJhdG9yIEl0ZXJhdG9yOwotICAgIEl0ZXJhdG9yIGVuZCA9IGV2ZW50UXVldWUu
ZW5kKCk7Ci0gICAgZm9yIChJdGVyYXRvciBpdCA9IGV2ZW50UXVldWUuYmVnaW4oKTsgaXQgIT0g
ZW5kOyArK2l0KQotICAgICAgICBkaXNwYXRjaFdpbmRvd0V2ZW50KCppdCk7CisgICAgZXZlbnQt
PnNldFRhcmdldChkb21XaW5kb3coKSk7CisgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQo
ZXZlbnQpOwogfQogCiBQYXNzUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29u
c3QgU3RyaW5nJiBldmVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNDcyMCw3ICs0NzA4
LDcgQEAgdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBl
cnNpc3RlbmNlIHBlcnNpc3RlZCkKIAogdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZUhhc2hjaGFuZ2VF
dmVudChjb25zdCBTdHJpbmcmIG9sZFVSTCwgY29uc3QgU3RyaW5nJiBuZXdVUkwpCiB7Ci0gICAg
ZW5xdWV1ZUV2ZW50KEhhc2hDaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVSTCwgbmV3VVJMKSk7Cisg
ICAgZW5xdWV1ZVdpbmRvd0V2ZW50KEhhc2hDaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVSTCwgbmV3
VVJMKSk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVQb3BzdGF0ZUV2ZW50KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCkKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDgzNDQ1ZTA3
MDg1OWY5NmRmYTVlNDI2YWZiYzU3YmVjY2JmZjViNDYuLjQ1MjIzNzI5MDE4ZDU2MDcxZDliNTgw
YWNmM2RmYmI1YTkyNzhhOGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNzUsNiArNzUsNyBAQCBjbGFzcyBFbGVtZW50
OwogY2xhc3MgRW50aXR5UmVmZXJlbmNlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudExpc3Rl
bmVyOworY2xhc3MgRXZlbnRRdWV1ZTsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3Owog
Y2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7CkBAIC0xMDE5LDEwICsxMDIwLDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGNvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV9j
b250YWluc1ZhbGlkaXR5U3R5bGVSdWxlczsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNWYWxpZGl0
eVN0eWxlUnVsZXMoKSB7IG1fY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMgPSB0cnVlOyB9CiAK
LSAgICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgdm9pZCBlbnF1
ZXVlV2luZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwogICAgIHZvaWQgZW5xdWV1ZVBhZ2Vz
aG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlKTsKICAgICB2b2lkIGVucXVldWVIYXNo
Y2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKTsK
ICAgICB2b2lkIGVucXVldWVQb3BzdGF0ZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBzdGF0ZU9iamVjdCk7CisgICAgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXZlbnRRdWV1ZS5nZXQoKTsgfQogCiAgICAgdm9pZCBhZGRNZWRpYUNhblN0
YXJ0TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVNZWRp
YUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFDYW5TdGFydExpc3RlbmVyKik7CkBAIC0xMTE5LDggKzEx
MjEsNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTdHlsZVNlbGVjdG9yKCk7CiAKLSAg
ICB2b2lkIHBlbmRpbmdFdmVudFRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7Ci0KICAgICBQ
YXNzUmVmUHRyPE5vZGVMaXN0PiBoYW5kbGVaZXJvUGFkZGluZyhjb25zdCBIaXRUZXN0UmVxdWVz
dCYsIEhpdFRlc3RSZXN1bHQmKSBjb25zdDsKIAogICAgIHZvaWQgbG9hZEV2ZW50RGVsYXlUaW1l
ckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwpAQCAtMTM0Miw5ICsxMzQyLDggQEAgcHJpdmF0ZToK
ICNlbmRpZgogCiAgICAgYm9vbCBtX3VzaW5nR2VvbG9jYXRpb247Ci0KLSAgICBUaW1lcjxEb2N1
bWVudD4gbV9wZW5kaW5nRXZlbnRUaW1lcjsKLSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1f
cGVuZGluZ0V2ZW50UXVldWU7CisgICAgCisgICAgT3duUHRyPEV2ZW50UXVldWU+IG1fZXZlbnRR
dWV1ZTsKIAogI2lmIEVOQUJMRShXTUwpCiAgICAgYm9vbCBtX2NvbnRhaW5zV01MQ29udGVudDsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwIGIvV2ViQ29yZS9kb20vRXZl
bnRRdWV1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjg2MTQ3NmEwMWZmMDY0MjgxMzdmNTdmOTA3NzY4YzBk
M2YzZjVmMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJFdmVudFF1ZXVlLmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJE
b2N1bWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0V2ZW50UXVldWU6OkV2ZW50UXVldWUoKQorICAgIDog
bV9wZW5kaW5nRXZlbnRUaW1lcih0aGlzLCAmRXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJG
aXJlZCkKK3sKK30KKwordm9pZCBFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxF
dmVudD4gZXZlbnQpCit7CisgICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkgfHwg
ZXZlbnQtPnRhcmdldCgpLT50b0RPTVdpbmRvdygpKTsKKyAgICBtX3F1ZXVlZEV2ZW50cy5hcHBl
bmQoZXZlbnQpOworICAgIAorICAgIGlmICghbV9wZW5kaW5nRXZlbnRUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX3BlbmRpbmdFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9p
ZCBFdmVudFF1ZXVlOjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50UXVldWU+KikK
K3sKKyAgICBBU1NFUlQoIW1fcGVuZGluZ0V2ZW50VGltZXIuaXNBY3RpdmUoKSk7CisKKyAgICBW
ZWN0b3I8UmVmUHRyPEV2ZW50PiA+IHF1ZXVlZEV2ZW50czsKKyAgICBxdWV1ZWRFdmVudHMuc3dh
cChtX3F1ZXVlZEV2ZW50cyk7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXVlZEV2
ZW50cy5zaXplKCk7IGkrKykKKyAgICAgICAgZGlzcGF0Y2hFdmVudChxdWV1ZWRFdmVudHNbaV0u
cmVsZWFzZSgpKTsKK30KKwordm9pZCBFdmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQ
dHI8RXZlbnQ+IGV2ZW50KQoreworICAgIEV2ZW50VGFyZ2V0KiBldmVudFRhcmdldCA9IGV2ZW50
LT50YXJnZXQoKTsKKyAgICBpZiAoZXZlbnRUYXJnZXQtPnRvTm9kZSgpKSB7CisgICAgICAgIGlm
ICghZXZlbnRUYXJnZXQtPnRvTm9kZSgpLT5pbkRvY3VtZW50KCkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKGV2ZW50VGFyZ2V0LT50b0RPTVdpbmRvdygpKQorICAgICAgICBldmVudFRh
cmdldC0+dG9ET01XaW5kb3coKS0+ZGlzcGF0Y2hFdmVudChldmVudCwgMCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaCBiL1dlYkNvcmUvZG9tL0V2ZW50UXVl
dWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NGNhMzM5NjMwMDIzYjBlMDFmODRjNTk5ZDNmZWE5ZWYwZTczMmYx
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oCkBAIC0wLDAgKzEs
NTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKgorICovCisKKyNpZm5kZWYgRXZlbnRRdWV1ZV9oCisjZGVmaW5lIEV2ZW50
UXVldWVfaAorCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV2
ZW50OworY2xhc3MgTm9kZTsKKworY2xhc3MgRXZlbnRRdWV1ZSB7CitwdWJsaWM6CisgICAgRXZl
bnRRdWV1ZSgpOworCisgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOwor
Citwcml2YXRlOgorICAgIHZvaWQgcGVuZGluZ0V2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudFF1
ZXVlPiopOworICAgIHZvaWQgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisKKyAg
ICBUaW1lcjxFdmVudFF1ZXVlPiBtX3BlbmRpbmdFdmVudFRpbWVyOworICAgIFZlY3RvcjxSZWZQ
dHI8RXZlbnQ+ID4gbV9xdWV1ZWRFdmVudHM7Cit9OworCit9CisKKyNlbmRpZiAvLyBFdmVudFF1
ZXVlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCA1
ODMzYzU5ZjA0NjJkOWIzMDdhY2VlODFkZTYxOWE4YzZkMmNhYjRkLi41Y2U1NmM2MzNkMTkxMDRh
ZTFkN2RjZWQyYWVjZGFlZTQxNWQ3MWQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvU3Rv
cmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVu
dERpc3BhdGNoZXIuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgU3RvcmFnZUV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUs
CiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgICAgIFN0b3JhZ2Uq
IHN0b3JhZ2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3RvcmFnZShlYyk7CiAg
ICAgICAgICAgICBpZiAoIWVjKQotICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQo
KS0+ZW5xdWV1ZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdl
RXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCksIHN0b3JhZ2UpKTsKKyAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCkt
PmVucXVldWVXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3Rv
cmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50
KCktPnVybCgpLCBzdG9yYWdlKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICAv
LyBTZW5kIGV2ZW50cyB0byBldmVyeSBwYWdlLgpAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFN0b3Jh
Z2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIG9sZFZhbHVlLAogICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAg
ICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9y
YWdlKGVjKTsKICAgICAgICAgICAgIGlmICghZWMpCi0gICAgICAgICAgICAgICAgZnJhbWVzW2ld
LT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5k
b2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+
ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDY5NjdiYmI0NDkzZjZkZWUwM2I2NTc2Yjk0ZDMxMTc0OTQ0MTQ4NWMuLjRl
NzZkNTZlMjU5YjIzMWE3YjBiZjVhNWFlNWI2MGE2ZWM4YWM1MGEgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDEwLTExLTE4ICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgYXN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoaW5nIG91dCBvZiBEb2N1bWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3ODUKKyAgICAg
ICAgCisgICAgICAgIENoYW5nZSBlbnF1ZXVlRXZlbnQgY2FsbHNpdGUuCisKKyAgICAgICAgKiBz
cmMvU3RvcmFnZUFyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVBy
b3h5OjpzdG9yYWdlRXZlbnQpOgorCiAyMDEwLTExLTE4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAKaW5kZXggNTMxMWI2NWIxMTg1ZDc5MDg1MDJi
OTQ1YjYwN2MzZDNkMGNiMWZkNi4uZWQ4OWIyYzhjZjdjYTliYWM2OGFkNzRlYTYwY2VjM2VlMzll
NjZjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCkBAIC0xMjks
NyArMTI5LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZlbnQoY29uc3QgU3Ry
aW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGMKICAgICAgICAgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFnZSA9IGZyYW1lc1tpXS0+
ZG9tV2luZG93KCktPnNlc3Npb25TdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlmICghZWMpCi0g
ICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQoU3RvcmFn
ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwg
bmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAg
ICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2ZW50KFN0
b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsK
ICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRvIGV2ZXJ5
IHBhZ2UuCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdl
RXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGMKICAgICAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFn
ZSA9IGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZShlYyk7CiAgICAgICAgICAg
ICBpZiAoIWVjKQotICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1
ZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtl
eSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0
b3JhZ2UpKTsKKyAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVX
aW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50
LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgp
LCBzdG9yYWdlKSk7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74399</attachid>
            <date>2010-11-19 09:41:51 -0800</date>
            <delta_ts>2010-12-14 14:08:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49785-20101119094150.patch</filename>
            <type>text/plain</type>
            <size>22635</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyM2M1OWI0MzhmOWY1ZTYyZWI1OGI2ZGQ2OTA0ZmY3NThhNDhhYjEyLi5hMTRmNjFkMWQwYjEx
ZTUyMDRjOWI3YTQxNmRiMTFiYzJmZDVhODgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xMzIsNiArMTMyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL0V2ZW50Q29udGV4dC5jcHAgXAog
CWRvbS9FdmVudE5hbWVzLmNwcCBcCiAJZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCisJZG9tL0V2ZW50
UXVldWUuY3BwIFwKIAlkb20vRXhjZXB0aW9uQmFzZS5jcHAgXAogCWRvbS9FeGNlcHRpb25Db2Rl
LmNwcCBcCiAJZG9tL0lucHV0RWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggM2ZiYzdiNWM0MGUwNWQy
OWNlMGJiYTZmZDU1MGJhMzMxZmI2YmJlMS4uYjg4ZjQ4N2RkNTZlNTM1OTQ4NDJhZTk5ZWE3ZjEw
NjZiYjAwYzgxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC04MjMsNiArODIzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGRvbS9FdmVudENvbnRleHQuY3BwCiAgICAgZG9tL0V2ZW50TmFtZXMuY3BwCiAgICAg
ZG9tL0V2ZW50VGFyZ2V0LmNwcAorICAgIGRvbS9FdmVudFF1ZXVlLmNwcAogICAgIGRvbS9FeGNl
cHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2RlLmNwcAogICAgIGRvbS9JbnB1dEVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDUzMTQxZWM5ZTMwYjcyMGE1MDYxNDMyNDFkYWUxOTQyYjkxZWU1OWEuLjYxZTUy
MzIwNTNmMTBmYWFjNWIyOTY2NDc4YzdhZGYwNDgzY2VhM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTAt
MTEtMTkgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhc3luY2hyb25vdXMg
ZXZlbnQgZGlzcGF0Y2hpbmcgb3V0IG9mIERvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTc4NQorICAgICAgICAKKyAgICAgICAgTW92ZSBh
c3luY2hvbm91cyBldmVudCBjb2RlIG91dCBvZiBEb2N1bWVudCBhbmQgaW50byBhIHN0YW5kYWxv
bmUKKyAgICAgICAgRXZlbnRRdWV1ZSBjbGFzcyAod2hpY2ggc3VwcG9ydHMgYXN5bmMgZXZlbnRz
IGZvciBib3RoIHJlZ3VsYXIgbm9kZXMKKyAgICAgICAgYW5kIHRoZSB3aW5kb3cgb2JqZWN0KS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgbmVjZXNzYXJ5LCBzaW5jZSBubyBuZXcgZnVuY3Rpb25h
bGl0eSBpcyBleHBvc2VkIChleGlzdGluZworICAgICAgICBsYXlvdXQgdGVzdHMgcGFzcykuCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVdpbmRvd0V2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpldmVudFF1ZXVlKToK
KyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRRdWV1ZTo6RXZlbnRRdWV1ZSk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjpl
bnF1ZXVlRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50
VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50
KToKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2
ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gpOgorCiAyMDEwLTExLTE5ICBOaWtvbGFzIFppbW1lcm1h
bm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2No
dWx6ZS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IGU4ZWIzODY0NzUzZTQ5MDU5Nzc4YTE2NGNjYjliZDIzN2JlYjZkY2Uu
Ljk4ZWUwMWFkNzQxYTU1MGUyMTE0NTMyMmI5MTE3MDMwNzUzMmFhZTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTEz
Myw2ICsxMTMzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2RvbS9FdmVudE5h
bWVzLmggXAogCVdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCiAJV2ViQ29yZS9kb20vRXZl
bnRUYXJnZXQuaCBcCisJV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAgXAorCVdlYkNvcmUvZG9t
L0V2ZW50UXVldWUuaCBcCiAJV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5jcHAgXAogCVdlYkNv
cmUvZG9tL0V4Y2VwdGlvbkJhc2UuaCBcCiAJV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCBhZjc4MmE2YmVlYmIyY2Q1NDZmZjM4YjZkMDc4NjhjZjU1NTlhMWRkLi4wMWNhODA4
ZDA5Y2UwYmUyYjE5NTE2ZTM1Y2YwNjZmNzIwYWMxZDMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTE5OSw2ICsxMTk5LDgg
QEAKICAgICAgICAgICAgICdkb20vRXZlbnROYW1lcy5oJywKICAgICAgICAgICAgICdkb20vRXZl
bnRUYXJnZXQuY3BwJywKICAgICAgICAgICAgICdkb20vRXZlbnRUYXJnZXQuaCcsCisgICAgICAg
ICAgICAnZG9tL0V2ZW50UXVldWUuY3BwJywKKyAgICAgICAgICAgICdkb20vRXZlbnRRdWV1ZS5o
JywKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFzZS5jcHAnLAogICAgICAgICAgICAgJ2Rv
bS9FeGNlcHRpb25CYXNlLmgnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25Db2RlLmNwcCcs
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpp
bmRleCA2NzE0ODkzNDAxZTgwMjBlMjI2OWJiNTM0NzViMzZhZjllNWE5NmFkLi5lZTVkZmY4NWE2
MDE4MTRhMTA1MjJmNzEwMWI0MDEyMTVkMDVlMDVmIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTcxMiw2ICs3MTIsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBkb20vRXZlbnRDb250ZXh0LmNwcCBcCiAgICAgZG9tL0V2ZW50TmFtZXMu
Y3BwIFwKICAgICBkb20vRXZlbnRUYXJnZXQuY3BwIFwKKyAgICBkb20vRXZlbnRRdWV1ZS5jcHAg
XAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3Bw
IFwKICAgICBkb20vSW5wdXRFbGVtZW50LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA0OTRhNjVkOGIzNWZiNmJlZTZlOGUwYTNjNDY5M2U2NmE0MDhmMmZmLi4z
NDhhMWY5MWQ3NjIyNTQ2MGJmMjVhMDZlZmU2OGRkZWRlMWQ3OTE4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQyNDI2LDYgKzQyNDI2LDYyIEBACiAJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cRXZlbnRUYXJnZXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCisJCSAg
PEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRXZlbnRRdWV1ZS5jcHAiDQorCQkJCT4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0K
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0ludGVy
bmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJ
CQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkv
Pg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFdmVudFF1ZXVlLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
RXhjZXB0aW9uQmFzZS5jcHAiDQogCQkJCT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGMzMjY2YTEwZTFjOGRkMWNjMGMxMjYwOTk5NGRhMzBkZWVmMDA1
M2UuLmQ3ODk5MjE1MWVmNzUxMzM2N2Y3NjM3MmQ2N2E0OGQ0NzFjOGRhYTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNjUxLDYgKzI2NTEsOCBAQAog
CQk4QUY0RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhBRjRFNTU5MTFEQzVBNjMw
MDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oICovOyB9OwogCQk4QzZFQTYxOTExRUY3RTA0
MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QzZFQTYxNzExRUY3RTA0MDBGRDhFRTMgLyog
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgKi87IH07CiAJCThDNkVBNjFBMTFFRjdFMDQwMEZE
OEVFMyAvKiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QzZFQTYxODExRUY3RTA0MDBGRDhFRTMgLyogUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oICovOyB9OworCQk4RjY3NTYxQjEyODhCMTdCMDA0N0FDQTMgLyog
RXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLzsgfTsKKwkJOEY2
NzU2MUMxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MUExMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuY3BwICovOyB9OwogCQk4RkFDNzc0RDExOTg3MkNCMDAxNUFFOTQgLyogSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDhGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAvKiBKU01haW5UaHJlYWRFeGVj
U3RhdGUuY3BwICovOyB9OwogCQk5MzAyQjBCRDBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3Vw
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDJC
MEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovOyB9OwogCQk5MzAyQjBCRjBE
NzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3Vw
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg3
NTIsNiArODc1NCw4IEBACiAJCThBRjRFNTVBMTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5j
ZVRpbWluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVyZm9ybWFuY2VUaW1pbmcuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QzZFQTYxNzExRUY3RTA0MDBGRDhFRTMg
LyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDsgcGF0aCA9IGdlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThD
NkVBNjE4MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDsgcGF0
aCA9IGdlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCThGNjc1NjFBMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2ZW50UXVldWUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjkzNEQ4MzExODlGMUVFMDA1MDhENUQgLyog
SlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4
MyAvKiBQYWdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGFnZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MjAyLDYgKzE4
MjA2LDggQEAKIAkJCQk4NUFGQTc0MTBBQUYyOTg0MDBFODQzMDUgLyogRXZlbnRMaXN0ZW5lci5p
ZGwgKi8sCiAJCQkJOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8qIEV2ZW50TmFtZXMuY3BwICov
LAogCQkJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmggKi8sCisJCQkJ
OEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCAqLywKKwkJCQk4RjY3NTYx
QTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgKi8sCiAJCQkJRTEyRURCRTkwQjMw
OEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCAqLywKIAkJCQlFMTJFREI3QTBCMzA4QTc4
MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCAqLywKIAkJCQk4NUFGQTc0MjBBQUYyOTg0MDBFODQz
MDUgLyogRXZlbnRUYXJnZXQuaWRsICovLApAQCAtMTk1MTgsNiArMTk1MjQsNyBAQAogCQkJCTkz
NUZCQzQ1MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRMb29wLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFy
Z2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkExMUUwMDBCOTkxOEYgLyogRXhj
ZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjE2OCw2ICsyMjE3NSw3IEBACiAJCQkJ
OTNDMDlBN0YwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxlck1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTFDQTE5RTA1MERDMjU1OTUwMDY1QTk5NCAvKiBFdmVudExvb3BNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3QzQgLyogRXZlbnROYW1lcy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk4RjY3NTYxQzEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRR
dWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMEZFRjM3MkIyN0M1M0VBQzFDMUZCRUUgLyog
RXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEyRURCRUEwQjMwOEUwQjAwMjcw
NEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjBEOEYyMEQyQTEx
RTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDQwZjA3OGZlNDQ3NDRhNmM3ZWUwY2M4MTE4ZDc4ZGE4ZDMzZTBkYjUuLjg3NDVjNTljMDNm
NjdiMDcxOTMzNDYwNDhlNGIxZDIyYmNhYWExMDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU4LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKQEAgLTM5OSw3ICs0MDAsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwsIGNv
bgogICAgICwgbV9ub3JtYWxXb3JsZFdyYXBwZXJDYWNoZSgwKQogI2VuZGlmCiAgICAgLCBtX3Vz
aW5nR2VvbG9jYXRpb24oZmFsc2UpCi0gICAgLCBtX3BlbmRpbmdFdmVudFRpbWVyKHRoaXMsICZE
b2N1bWVudDo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCkKKyAgICAsIG1fZXZlbnRRdWV1ZShhZG9w
dFB0cihuZXcgRXZlbnRRdWV1ZSkpCiAjaWYgRU5BQkxFKFdNTCkKICAgICAsIG1fY29udGFpbnNX
TUxDb250ZW50KGZhbHNlKQogI2VuZGlmCkBAIC0zNDQyLDIzICszNDQzLDEwIEBAIHZvaWQgRG9j
dW1lbnQ6OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkKICAgICBkb21XaW5kb3ctPmRpc3BhdGNo
TG9hZEV2ZW50KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OmVucXVldWVFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKK3ZvaWQgRG9jdW1lbnQ6OmVucXVldWVXaW5kb3dFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKIHsKLSAgICBtX3BlbmRpbmdFdmVudFF1ZXVlLmFwcGVuZChldmVu
dCk7Ci0gICAgaWYgKCFtX3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1f
cGVuZGluZ0V2ZW50VGltZXIuc3RhcnRPbmVTaG90KDApOwotfQotCi12b2lkIERvY3VtZW50Ojpw
ZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopCi17Ci0gICAgQVNTRVJUKCFt
X3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwotICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+
ID4gZXZlbnRRdWV1ZTsKLSAgICBldmVudFF1ZXVlLnN3YXAobV9wZW5kaW5nRXZlbnRRdWV1ZSk7
Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID46OmNvbnN0X2l0ZXJhdG9yIEl0
ZXJhdG9yOwotICAgIEl0ZXJhdG9yIGVuZCA9IGV2ZW50UXVldWUuZW5kKCk7Ci0gICAgZm9yIChJ
dGVyYXRvciBpdCA9IGV2ZW50UXVldWUuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAg
ICBkaXNwYXRjaFdpbmRvd0V2ZW50KCppdCk7CisgICAgZXZlbnQtPnNldFRhcmdldChkb21XaW5k
b3coKSk7CisgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVlRXZlbnQoZXZlbnQpOwogfQogCiBQYXNz
UmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZlbnQoY29uc3QgU3RyaW5nJiBldmVudFR5
cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNDcyMCw3ICs0NzA4LDcgQEAgdm9pZCBEb2N1bWVu
dDo6ZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dFdmVudFBlcnNpc3RlbmNlIHBlcnNpc3Rl
ZCkKIAogdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZUhhc2hjaGFuZ2VFdmVudChjb25zdCBTdHJpbmcm
IG9sZFVSTCwgY29uc3QgU3RyaW5nJiBuZXdVUkwpCiB7Ci0gICAgZW5xdWV1ZUV2ZW50KEhhc2hD
aGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVSTCwgbmV3VVJMKSk7CisgICAgZW5xdWV1ZVdpbmRvd0V2
ZW50KEhhc2hDaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVSTCwgbmV3VVJMKSk7CiB9CiAKIHZvaWQg
RG9jdW1lbnQ6OmVucXVldWVQb3BzdGF0ZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBzdGF0ZU9iamVjdCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDFlODk4MjBkZGJiZjI3NDhkYjUzYWNkODU2
ZjY4MGRkOGJlN2NhNzMuLjBiYmJiNzg3ODkxMmI1N2UzZGM5ZGJlMDg4ZGEzNWUxYmJmODY2YTIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtNzUsNiArNzUsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgRW50aXR5UmVm
ZXJlbmNlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOworY2xhc3MgRXZlbnRR
dWV1ZTsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVWaWV3OwogY2xhc3MgSFRNTENhbnZhc0Vs
ZW1lbnQ7CkBAIC0xMDE5LDEwICsxMDIwLDExIEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRhaW5z
VmFsaWRpdHlTdHlsZVJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWluc1ZhbGlkaXR5U3R5
bGVSdWxlczsgfQogICAgIHZvaWQgc2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSB7IG1f
Y29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMgPSB0cnVlOyB9CiAKLSAgICB2b2lkIGVucXVldWVF
dmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisgICAgdm9pZCBlbnF1ZXVlV2luZG93RXZlbnQoUGFz
c1JlZlB0cjxFdmVudD4pOwogICAgIHZvaWQgZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dF
dmVudFBlcnNpc3RlbmNlKTsKICAgICB2b2lkIGVucXVldWVIYXNoY2hhbmdlRXZlbnQoY29uc3Qg
U3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKTsKICAgICB2b2lkIGVucXVldWVQ
b3BzdGF0ZUV2ZW50KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVj
dCk7CisgICAgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXZlbnRR
dWV1ZS5nZXQoKTsgfQogCiAgICAgdm9pZCBhZGRNZWRpYUNhblN0YXJ0TGlzdGVuZXIoTWVkaWFD
YW5TdGFydExpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVNZWRpYUNhblN0YXJ0TGlzdGVuZXIo
TWVkaWFDYW5TdGFydExpc3RlbmVyKik7CkBAIC0xMTIxLDggKzExMjMsNiBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBjcmVhdGVTdHlsZVNlbGVjdG9yKCk7CiAKLSAgICB2b2lkIHBlbmRpbmdFdmVu
dFRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7Ci0KICAgICBQYXNzUmVmUHRyPE5vZGVMaXN0
PiBoYW5kbGVaZXJvUGFkZGluZyhjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQm
KSBjb25zdDsKIAogICAgIHZvaWQgbG9hZEV2ZW50RGVsYXlUaW1lckZpcmVkKFRpbWVyPERvY3Vt
ZW50PiopOwpAQCAtMTM0NCw5ICsxMzQ0LDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgYm9v
bCBtX3VzaW5nR2VvbG9jYXRpb247Ci0KLSAgICBUaW1lcjxEb2N1bWVudD4gbV9wZW5kaW5nRXZl
bnRUaW1lcjsKLSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcGVuZGluZ0V2ZW50UXVldWU7
CisgICAgCisgICAgT3duUHRyPEV2ZW50UXVldWU+IG1fZXZlbnRRdWV1ZTsKIAogI2lmIEVOQUJM
RShXTUwpCiAgICAgYm9vbCBtX2NvbnRhaW5zV01MQ29udGVudDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZG9tL0V2ZW50UXVldWUuY3BwIGIvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjdjZDgwMmJiYjA0YjI4ODUxNDlhN2U1NzE1YWU4MGZkY2QxM2Q1ZgotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFF1ZXVlLmgi
CisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0V2ZW50UXVldWU6OkV2ZW50UXVldWUoKQorICAgIDogbV9wZW5kaW5nRXZlbnRUaW1l
cih0aGlzLCAmRXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCkKK3sKK30KKwordm9p
ZCBFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7Cisg
ICAgQVNTRVJUKGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCkgfHwgZXZlbnQtPnRhcmdldCgpLT50
b0RPTVdpbmRvdygpKTsKKyAgICBtX3F1ZXVlZEV2ZW50cy5hcHBlbmQoZXZlbnQpOworICAgIAor
ICAgIGlmICghbV9wZW5kaW5nRXZlbnRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3BlbmRp
bmdFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBFdmVudFF1ZXVlOjpwZW5k
aW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50UXVldWU+KikKK3sKKyAgICBBU1NFUlQoIW1f
cGVuZGluZ0V2ZW50VGltZXIuaXNBY3RpdmUoKSk7CisKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50
PiA+IHF1ZXVlZEV2ZW50czsKKyAgICBxdWV1ZWRFdmVudHMuc3dhcChtX3F1ZXVlZEV2ZW50cyk7
CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHF1ZXVlZEV2ZW50cy5zaXplKCk7IGkrKykK
KyAgICAgICAgZGlzcGF0Y2hFdmVudChxdWV1ZWRFdmVudHNbaV0ucmVsZWFzZSgpKTsKK30KKwor
dm9pZCBFdmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQor
eworICAgIEV2ZW50VGFyZ2V0KiBldmVudFRhcmdldCA9IGV2ZW50LT50YXJnZXQoKTsKKyAgICBp
ZiAoZXZlbnRUYXJnZXQtPnRvTm9kZSgpKQorICAgICAgICBldmVudFRhcmdldC0+ZGlzcGF0Y2hF
dmVudChldmVudCk7CisgICAgZWxzZSBpZiAoZXZlbnRUYXJnZXQtPnRvRE9NV2luZG93KCkpCisg
ICAgICAgIGV2ZW50VGFyZ2V0LT50b0RPTVdpbmRvdygpLT5kaXNwYXRjaEV2ZW50KGV2ZW50LCAw
KTsKKyAgICBlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmggYi9XZWJDb3JlL2RvbS9FdmVudFF1ZXVl
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGRkN2VjOWJiMDUzMmU3ZTlkNjgxNWMxMTEzZGE4NmEyMTk1NzIzNQot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaApAQCAtMCwwICsxLDU4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICoKKyAqLworCisjaWZuZGVmIEV2ZW50UXVldWVfaAorI2RlZmluZSBFdmVudFF1
ZXVlX2gKKworI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBFdmVudDsKK2NsYXNzIE5vZGU7CisKK2NsYXNzIEV2
ZW50UXVldWUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50UXVldWUpOworCitwdWJs
aWM6CisgICAgRXZlbnRRdWV1ZSgpOworCisgICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4pOworCitwcml2YXRlOgorICAgIHZvaWQgcGVuZGluZ0V2ZW50VGltZXJGaXJlZChU
aW1lcjxFdmVudFF1ZXVlPiopOworICAgIHZvaWQgZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2
ZW50Pik7CisKKyAgICBUaW1lcjxFdmVudFF1ZXVlPiBtX3BlbmRpbmdFdmVudFRpbWVyOworICAg
IFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9xdWV1ZWRFdmVudHM7Cit9OworCit9CisKKyNlbmRp
ZiAvLyBFdmVudFF1ZXVlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZl
bnREaXNwYXRjaGVyLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVy
LmNwcAppbmRleCA1ODMzYzU5ZjA0NjJkOWIzMDdhY2VlODFkZTYxOWE4YzZkMmNhYjRkLi41Y2U1
NmM2MzNkMTkxMDRhZTFkN2RjZWQyYWVjZGFlZTQxNWQ3MWQ4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCkBAIC01OCw3ICs1OCw3IEBAIHZvaWQgU3RvcmFn
ZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgb2xkVmFsdWUsCiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAg
ICAgIFN0b3JhZ2UqIHN0b3JhZ2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5zZXNzaW9uU3Rv
cmFnZShlYyk7CiAgICAgICAgICAgICBpZiAoIWVjKQotICAgICAgICAgICAgICAgIGZyYW1lc1tp
XS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKKyAgICAgICAgICAgICAgICBmcmFtZXNbaV0t
PmRvY3VtZW50KCktPmVucXVldWVXaW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJh
bWUtPmRvY3VtZW50KCktPnVybCgpLCBzdG9yYWdlKSk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewogICAgICAgICAvLyBTZW5kIGV2ZW50cyB0byBldmVyeSBwYWdlLgpAQCAtNzUsNyArNzUsNyBA
QCB2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0IFN0cmluZyYga2V5
LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLAogICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21XaW5kb3co
KS0+bG9jYWxTdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlmICghZWMpCi0gICAgICAgICAgICAg
ICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNv
dXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAgICAgICAgICAgICAg
IGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVl
LCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKICAgICAgICAgfQog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBjMzViOGViNDE0MjA1MWRkN2ExYjllNTQwYjYxZjkx
NDZkYTRjOTkuLmRiY2VmMTBiMzE4ODU4MTQzNmUyZmE4MDU1ZTQyZDA2MmQ0YjBkNzYgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTExLTE5ICBNaWhhaSBQYXJwYXJpdGEgIDxt
aWhhaXBAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgYXN5bmNocm9ub3VzIGV2ZW50IGRpc3BhdGNoaW5nIG91dCBvZiBE
b2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDk3ODUKKyAgICAgICAgCisgICAgICAgIENoYW5nZSBlbnF1ZXVlRXZlbnQgY2FsbHNpdGUuCisK
KyAgICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZlbnQpOgorCiAyMDEwLTExLTE5ICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByNzIzOTkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3Jh
Z2VBcmVhUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNw
cAppbmRleCA1MzExYjY1YjExODVkNzkwODUwMmI5NDViNjA3YzNkM2QwY2IxZmQ2Li5lZDg5YjJj
OGNmN2NhOWJhYzY4YWQ3NGVhNjBjZWMzZWUzOWU2NmNkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
U3RvcmFnZUFyZWFQcm94eS5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCB2b2lkIFN0b3JhZ2VBcmVh
UHJveHk6OnN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRW
YWx1ZSwgYwogICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgICAgICBT
dG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2Uo
ZWMpOwogICAgICAgICAgICAgaWYgKCFlYykKLSAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRv
Y3VtZW50KCktPmVucXVldWVFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
c3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpLCBzdG9yYWdlKSk7CisgICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1
bWVudCgpLT5lbnF1ZXVlV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1l
cygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5k
b2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAg
ICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFnZS4KQEAgLTE0Niw3ICsxNDYsNyBAQCB2
b2lkIFN0b3JhZ2VBcmVhUHJveHk6OnN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgU3RyaW5nJiBvbGRWYWx1ZSwgYwogICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7
CiAgICAgICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+
bG9jYWxTdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlmICghZWMpCi0gICAgICAgICAgICAgICAg
ZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUo
ZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJj
ZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAgICAgICAgICAgICAgIGZy
YW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBz
b3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKICAgICAgICAgfQogICAg
IH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76568</attachid>
            <date>2010-12-14 14:08:42 -0800</date>
            <delta_ts>2010-12-14 14:41:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49785-20101214140841.patch</filename>
            <type>text/plain</type>
            <size>22882</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBiZTUxNDVhZDQxNjI2NWJjOTYyYWQyMWFiYjUwNGY4ZWZkYWFiZTI3Li4xMWZlZGZiZWRhMGY2
ZGM4ZjVhMDBjOWQ2ZTZlMzczMmIyZWRjYzlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xMzIsNiArMTMyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL0V2ZW50Q29udGV4dC5jcHAgXAog
CWRvbS9FdmVudE5hbWVzLmNwcCBcCiAJZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCisJZG9tL0V2ZW50
UXVldWUuY3BwIFwKIAlkb20vRXhjZXB0aW9uQmFzZS5jcHAgXAogCWRvbS9FeGNlcHRpb25Db2Rl
LmNwcCBcCiAJZG9tL0lucHV0RWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTdjNzM1YjI1YzFmNDVj
NjRjZmY1M2JmNTg3YWU3NmJlNTQxMDZiNS4uMzM0ZDU2YWI2YjIzYmM0NjIzZjAzYTFmY2UzZmM0
YmZkOTE5YjFiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NTIsNiArODUyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGRvbS9FdmVudENvbnRleHQuY3BwCiAgICAgZG9tL0V2ZW50TmFtZXMuY3BwCiAgICAg
ZG9tL0V2ZW50VGFyZ2V0LmNwcAorICAgIGRvbS9FdmVudFF1ZXVlLmNwcAogICAgIGRvbS9FeGNl
cHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2RlLmNwcAogICAgIGRvbS9JbnB1dEVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDMyZTVjMGNlZDJkZjk3ZGFlMjQxM2YzZjUzYmY4ZDYyMDc2OWM1NDguLjA1Mzg1
OGM4MDVmYjRlNzJhYWUwZjk1Yjk0YTFlYzQ1YzFlZjgwYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAt
MTItMTQgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBhc3luY2hyb25vdXMg
ZXZlbnQgZGlzcGF0Y2hpbmcgb3V0IG9mIERvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTc4NQorICAgICAgICAKKyAgICAgICAgTW92ZSBh
c3luY2hvbm91cyBldmVudCBjb2RlIG91dCBvZiBEb2N1bWVudCBhbmQgaW50byBhIHN0YW5kYWxv
bmUKKyAgICAgICAgRXZlbnRRdWV1ZSBjbGFzcyAod2hpY2ggc3VwcG9ydHMgYXN5bmMgZXZlbnRz
IGZvciBib3RoIHJlZ3VsYXIgbm9kZXMKKyAgICAgICAgYW5kIHRoZSB3aW5kb3cgb2JqZWN0KS4K
KworICAgICAgICBObyBuZXcgdGVzdHMgbmVjZXNzYXJ5LCBzaW5jZSBubyBuZXcgZnVuY3Rpb25h
bGl0eSBpcyBleHBvc2VkIChleGlzdGluZworICAgICAgICBsYXlvdXQgdGVzdHMgcGFzcykuCisK
KyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZVdpbmRvd0V2ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50OjplbnF1ZXVlSGFzaGNoYW5nZUV2ZW50KToKKyAgICAgICAgKiBk
b20vRE9NQWxsSW5PbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmV2ZW50UXVl
dWUpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9FdmVudFF1ZXVl
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjpFdmVudFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50UXVldWU6OmVucXVldWVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFF1ZXVlOjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50UXVldWU6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIGRvbS9FdmVudFF1
ZXVlLmg6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6
CisKIDIwMTAtMTItMTQgIEt5b3VuZ2EgUmEgIDxreW91bmdhLnJhQGdtYWlsLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNWZkMmI1M2Y2NjAzY2FhM2I5
ZDVmNDdlYzIyNDI5MzY3NTU1YjZiNS4uY2IzNmUzMTkwZDgxMjhlMDc4NmMwN2Y3YzcyMmZiMDk4
NjljOWM4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xMjA2LDYgKzEyMDYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBcCiAJV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQu
Y3BwIFwKIAlXZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oIFwKKwlXZWJDb3JlL2RvbS9FdmVudFF1
ZXVlLmNwcCBcCisJV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oIFwKIAlXZWJDb3JlL2RvbS9FeGNl
cHRpb25CYXNlLmNwcCBcCiAJV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5oIFwKIAlXZWJDb3Jl
L2RvbS9FeGNlcHRpb25Db2RlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJlN2EwZWQ1MjIyNTE1ZGI3MTE5ZDM1NDRi
N2E0ODkwY2VkMGUzYzcuLmRmN2JlMDkzMjM2N2FiMmQ2ZWJmMDNkMzNkZjU4ODZkMTE5YTgzMDcg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0xMjQ2LDYgKzEyNDYsOCBAQAogICAgICAgICAgICAgJ2RvbS9FdmVudE5hbWVzLmgn
LAogICAgICAgICAgICAgJ2RvbS9FdmVudFRhcmdldC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9F
dmVudFRhcmdldC5oJywKKyAgICAgICAgICAgICdkb20vRXZlbnRRdWV1ZS5jcHAnLAorICAgICAg
ICAgICAgJ2RvbS9FdmVudFF1ZXVlLmgnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25CYXNl
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0V4Y2VwdGlvbkJhc2UuaCcsCiAgICAgICAgICAgICAn
ZG9tL0V4Y2VwdGlvbkNvZGUuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGY5NzBkZTJmZGEzODJlOWJjMDEyNzk0N2MzM2Yw
MmMzNWEzNWMwOTAuLjExMWJjODJmYTY1YTM2ZDQ5ZWI4MjExYWViNjQwZWRlN2JjZjgxZDYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtNzMwLDYgKzczMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9FdmVudENvbnRleHQuY3Bw
IFwKICAgICBkb20vRXZlbnROYW1lcy5jcHAgXAogICAgIGRvbS9FdmVudFRhcmdldC5jcHAgXAor
ICAgIGRvbS9FdmVudFF1ZXVlLmNwcCBcCiAgICAgZG9tL0V4Y2VwdGlvbkJhc2UuY3BwIFwKICAg
ICBkb20vRXhjZXB0aW9uQ29kZS5jcHAgXAogICAgIGRvbS9JbnB1dEVsZW1lbnQuY3BwIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDZhNDJjNjlkN2U3ODM4OTBmY2U3
YzM5NjFhMGU5YTMwZGQ2ZTNmMWQuLjMyM2U1MjZhNzNmOWY4M2FhYWE4YTY0NjE5MTA0ZWRkM2Qw
NDMzZjIgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDM2OTcsNiAr
NDM2OTcsNjIgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFdmVudFRhcmdldC5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KKwkJICA8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXEV2ZW50
UXVldWUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0ludGVy
bmFsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19D
YWlyb3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFz
ZV9DYWlyb3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVi
dWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxFdmVudFF1ZXVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgogCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFeGNlcHRpb25CYXNlLmNwcCIKIAkJCQk+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVjMzM1ZWZkMWZlMDgwYzVjMWU3
MTgwMjI5ZWZkYWQ0MmM4Mzk5MjEuLmZjZjMwMDkzNWYyNTQzNTRjNWUwNjFjNjk4MGYzMDk5ZjA5
MDQyOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
NjkwLDYgKzI2OTAsOCBAQAogCQk4QUY0RTU1QzExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFu
Y2VUaW1pbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDhBRjRFNTU5MTFEQzVBNjMwMDBFRDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5oICovOyB9Owog
CQk4QzZFQTYxOTExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QzZFQTYxNzEx
RUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgKi87IH07CiAJCThD
NkVBNjFBMTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4QzZFQTYxODExRUY3RTA0
MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oICovOyB9OworCQk4RjY3NTYxQjEy
ODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVl
dWUuaCAqLzsgfTsKKwkJOEY2NzU2MUMxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEY2NzU2MUEx
Mjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3BwICovOyB9OwogCQk4RkFDNzc0RDExOTg3
MkNCMDAxNUFFOTQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhGOTM0RDg0MTE4OUYxRUUwMDUwOEQ1RCAv
KiBKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwICovOyB9OwogCQk5MzAyQjBCRDBENzlGODI5MDBD
N0VFODMgLyogUGFnZUdyb3VwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICov
OyB9OwogCQk5MzAyQjBCRjBENzlGODJDMDBDN0VFODMgLyogUGFnZUdyb3VwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCRTBENzlGODJDMDBD
N0VFODMgLyogUGFnZUdyb3VwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTkwMjcsNiArOTAyOSw4IEBACiAJCThBRjRFNTVBMTFEQzVBNjMwMDBF
RDNERSAvKiBQZXJmb3JtYW5jZVRpbWluZy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUGVy
Zm9ybWFuY2VUaW1pbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4QzZFQTYx
NzExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDsg
cGF0aCA9IGdlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCThDNkVBNjE4MTFFRjdFMDQwMEZEOEVFMyAvKiBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaDsgcGF0aCA9IGdlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RjY3NTYxOTEyODhCMTdCMDA0N0FDQTMgLyog
RXZlbnRRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudFF1ZXVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCThGNjc1NjFBMTI4OEIxN0IwMDQ3QUNB
MyAvKiBFdmVudFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEV2ZW50UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4RjkzNEQ4MzEx
ODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQgLyogSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJC
MEJDMEQ3OUY4MjkwMEM3RUU4MyAvKiBQYWdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUGFnZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE4ODA2LDYgKzE4ODEwLDggQEAKIAkJCQk4NUFGQTc0MTBBQUYyOTg0MDBFODQzMDUg
LyogRXZlbnRMaXN0ZW5lci5pZGwgKi8sCiAJCQkJOTM5ODg1QzEwOEI3RTNEMTAwRTcwN0M0IC8q
IEV2ZW50TmFtZXMuY3BwICovLAogCQkJCTkzOTg4NUMyMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVu
dE5hbWVzLmggKi8sCisJCQkJOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUu
aCAqLywKKwkJCQk4RjY3NTYxQTEyODhCMTdCMDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgKi8s
CiAJCQkJRTEyRURCRTkwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCAqLywKIAkJ
CQlFMTJFREI3QTBCMzA4QTc4MDAyNzA0QjYgLyogRXZlbnRUYXJnZXQuaCAqLywKIAkJCQk4NUFG
QTc0MjBBQUYyOTg0MDBFODQzMDUgLyogRXZlbnRUYXJnZXQuaWRsICovLApAQCAtMjAzMzEsNiAr
MjAzMzcsNyBAQAogCQkJCTkzNUZCQzQ1MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVudExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0ExOUUxNjBEQzI1NUNBMDA2NUE5OTQgLyogRXZlbnRM
b29wLmggaW4gSGVhZGVycyAqLywKIAkJCQk5Mzk4ODVDNDA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOEY2NzU2MUIxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUwRkVGMzcyQjE3QzUzRUFDMUMxRkJF
RSAvKiBFdmVudFNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyRURCN0IwQjMwOEE3ODAw
MjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzYwRDhGMzBEMkEx
MUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzA5MCw2
ICsyMzA5Nyw3IEBACiAJCQkJOTNDMDlBN0YwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxl
ck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQTE5RTA1MERDMjU1OTUwMDY1QTk5NCAvKiBF
dmVudExvb3BNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk4ODVDMzA4QjdFM0QxMDBFNzA3
QzQgLyogRXZlbnROYW1lcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4RjY3NTYxQzEyODhCMTdC
MDA0N0FDQTMgLyogRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMEZFRjM3MkIy
N0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEy
RURCRUEwQjMwOEUwQjAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGRjNGUzOWIyZTVjZTVhNTIwZmMxNGY1YjgzYjk2
NTBjYWM2MGVlMmMuLmFlZmMyN2FhZmY3NWFmYzA4YzRjZTJhNDI4MDg4NjJhYWQ0YTRjN2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2RvbS9E
T01BbGxJbk9uZS5jcHAKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJFdmVudC5jcHAiCiAj
aW5jbHVkZSAiRXZlbnRDb250ZXh0LmNwcCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmNwcCIKKyNp
bmNsdWRlICJFdmVudFF1ZXVlLmNwcCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5jcHAiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQmFzZS5jcHAiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5jcHAiCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKaW5kZXggNzc1YTJhZGY2MWUzYjgyZjkzMjlhZjk5MDc1OWQ2NjQ2NGVkNDNhMS4uZjI4
NmQ5ZDY3ODkyMzg5ODEwNjc4MWYxNDZiMjZiZDY1ZWMzMWNhNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTks
NiArNTksNyBAQAogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TGlz
dGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGb2N1c0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIKQEAgLTQwMyw3ICs0MDQsNyBA
QCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wg
aXNYSFRNTCwgYm9vbCBpc0hUTUwsIGNvbgogICAgICwgbV9ub3JtYWxXb3JsZFdyYXBwZXJDYWNo
ZSgwKQogI2VuZGlmCiAgICAgLCBtX3VzaW5nR2VvbG9jYXRpb24oZmFsc2UpCi0gICAgLCBtX3Bl
bmRpbmdFdmVudFRpbWVyKHRoaXMsICZEb2N1bWVudDo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCkK
KyAgICAsIG1fZXZlbnRRdWV1ZShhZG9wdFB0cihuZXcgRXZlbnRRdWV1ZSkpCiAjaWYgRU5BQkxF
KFdNTCkKICAgICAsIG1fY29udGFpbnNXTUxDb250ZW50KGZhbHNlKQogI2VuZGlmCkBAIC0zNDcz
LDIzICszNDc0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpc3BhdGNoV2luZG93TG9hZEV2ZW50KCkK
ICAgICBkb21XaW5kb3ctPmRpc3BhdGNoTG9hZEV2ZW50KCk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6
OmVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3ZvaWQgRG9jdW1lbnQ6OmVu
cXVldWVXaW5kb3dFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKIHsKLSAgICBtX3BlbmRp
bmdFdmVudFF1ZXVlLmFwcGVuZChldmVudCk7Ci0gICAgaWYgKCFtX3BlbmRpbmdFdmVudFRpbWVy
LmlzQWN0aXZlKCkpCi0gICAgICAgIG1fcGVuZGluZ0V2ZW50VGltZXIuc3RhcnRPbmVTaG90KDAp
OwotfQotCi12b2lkIERvY3VtZW50OjpwZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3Vt
ZW50PiopCi17Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwot
ICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gZXZlbnRRdWV1ZTsKLSAgICBldmVudFF1ZXVlLnN3
YXAobV9wZW5kaW5nRXZlbnRRdWV1ZSk7Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8RXZl
bnQ+ID46OmNvbnN0X2l0ZXJhdG9yIEl0ZXJhdG9yOwotICAgIEl0ZXJhdG9yIGVuZCA9IGV2ZW50
UXVldWUuZW5kKCk7Ci0gICAgZm9yIChJdGVyYXRvciBpdCA9IGV2ZW50UXVldWUuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KQotICAgICAgICBkaXNwYXRjaFdpbmRvd0V2ZW50KCppdCk7CisgICAg
ZXZlbnQtPnNldFRhcmdldChkb21XaW5kb3coKSk7CisgICAgbV9ldmVudFF1ZXVlLT5lbnF1ZXVl
RXZlbnQoZXZlbnQpOwogfQogCiBQYXNzUmVmUHRyPEV2ZW50PiBEb2N1bWVudDo6Y3JlYXRlRXZl
bnQoY29uc3QgU3RyaW5nJiBldmVudFR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtNDc1MSw3
ICs0NzM5LDcgQEAgdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZVBhZ2VzaG93RXZlbnQoUGFnZXNob3dF
dmVudFBlcnNpc3RlbmNlIHBlcnNpc3RlZCkKIAogdm9pZCBEb2N1bWVudDo6ZW5xdWV1ZUhhc2hj
aGFuZ2VFdmVudChjb25zdCBTdHJpbmcmIG9sZFVSTCwgY29uc3QgU3RyaW5nJiBuZXdVUkwpCiB7
Ci0gICAgZW5xdWV1ZUV2ZW50KEhhc2hDaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVSTCwgbmV3VVJM
KSk7CisgICAgZW5xdWV1ZVdpbmRvd0V2ZW50KEhhc2hDaGFuZ2VFdmVudDo6Y3JlYXRlKG9sZFVS
TCwgbmV3VVJMKSk7CiB9CiAKIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVQb3BzdGF0ZUV2ZW50KFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzdGF0ZU9iamVjdCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDdh
OGVhNzgzYTAxOThiZjRlMTA2NWIwY2E1Yjc2NTU5ODE0YTRhMzYuLmQ1ZjA0ZTZmNDJjNWJiNDg0
Mjk0ZTkwYmU3NzU4MGRkNmY4OWJlMTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTAyNiwxMCArMTAyNiwxMSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBjb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXM7IH0KICAgICB2b2lkIHNldENvbnRhaW5z
VmFsaWRpdHlTdHlsZVJ1bGVzKCkgeyBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzID0gdHJ1
ZTsgfQogCi0gICAgdm9pZCBlbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworICAgIHZv
aWQgZW5xdWV1ZVdpbmRvd0V2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKICAgICB2b2lkIGVucXVl
dWVQYWdlc2hvd0V2ZW50KFBhZ2VzaG93RXZlbnRQZXJzaXN0ZW5jZSk7CiAgICAgdm9pZCBlbnF1
ZXVlSGFzaGNoYW5nZUV2ZW50KGNvbnN0IFN0cmluZyYgb2xkVVJMLCBjb25zdCBTdHJpbmcmIG5l
d1VSTCk7CiAgICAgdm9pZCBlbnF1ZXVlUG9wc3RhdGVFdmVudChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QpOworICAgIEV2ZW50UXVldWUqIGV2ZW50UXVldWUo
KSBjb25zdCB7IHJldHVybiBtX2V2ZW50UXVldWUuZ2V0KCk7IH0KIAogICAgIHZvaWQgYWRkTWVk
aWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciopOwogICAgIHZvaWQgcmVt
b3ZlTWVkaWFDYW5TdGFydExpc3RlbmVyKE1lZGlhQ2FuU3RhcnRMaXN0ZW5lciopOwpAQCAtMTEy
OCw4ICsxMTI5LDYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU3R5bGVTZWxlY3Rvcigp
OwogCi0gICAgdm9pZCBwZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwot
CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gaGFuZGxlWmVyb1BhZGRpbmcoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JikgY29uc3Q7CiAKICAgICB2b2lkIGxvYWRFdmVudERl
bGF5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKQEAgLTEzNTIsOSArMTM1MSw4IEBAIHBy
aXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV91c2luZ0dlb2xvY2F0aW9uOwotCi0gICAgVGlt
ZXI8RG9jdW1lbnQ+IG1fcGVuZGluZ0V2ZW50VGltZXI7Ci0gICAgVmVjdG9yPFJlZlB0cjxFdmVu
dD4gPiBtX3BlbmRpbmdFdmVudFF1ZXVlOworICAgIAorICAgIE93blB0cjxFdmVudFF1ZXVlPiBt
X2V2ZW50UXVldWU7CiAKICNpZiBFTkFCTEUoV01MKQogICAgIGJvb2wgbV9jb250YWluc1dNTENv
bnRlbnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFF1ZXVlLmNwcCBiL1dlYkNvcmUv
ZG9tL0V2ZW50UXVldWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3Y2Q4MDJiYmIwNGIyODg1MTQ5YTdlNTcx
NWFlODBmZGNkMTNkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9FdmVudFF1ZXVl
LmNwcApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiRXZlbnRRdWV1ZS5oIgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitFdmVudFF1ZXVlOjpFdmVudFF1ZXVlKCkK
KyAgICA6IG1fcGVuZGluZ0V2ZW50VGltZXIodGhpcywgJkV2ZW50UXVldWU6OnBlbmRpbmdFdmVu
dFRpbWVyRmlyZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRRdWV1ZTo6ZW5xdWV1ZUV2ZW50KFBhc3NS
ZWZQdHI8RXZlbnQ+IGV2ZW50KQoreworICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCktPnRvTm9k
ZSgpIHx8IGV2ZW50LT50YXJnZXQoKS0+dG9ET01XaW5kb3coKSk7CisgICAgbV9xdWV1ZWRFdmVu
dHMuYXBwZW5kKGV2ZW50KTsKKyAgICAKKyAgICBpZiAoIW1fcGVuZGluZ0V2ZW50VGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV9wZW5kaW5nRXZlbnRUaW1lci5zdGFydE9uZVNob3QoMCk7Cit9
CisKK3ZvaWQgRXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudFF1
ZXVlPiopCit7CisgICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudFRpbWVyLmlzQWN0aXZlKCkpOwor
CisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBxdWV1ZWRFdmVudHM7CisgICAgcXVldWVkRXZl
bnRzLnN3YXAobV9xdWV1ZWRFdmVudHMpOworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBx
dWV1ZWRFdmVudHMuc2l6ZSgpOyBpKyspCisgICAgICAgIGRpc3BhdGNoRXZlbnQocXVldWVkRXZl
bnRzW2ldLnJlbGVhc2UoKSk7Cit9CisKK3ZvaWQgRXZlbnRRdWV1ZTo6ZGlzcGF0Y2hFdmVudChQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBFdmVudFRhcmdldCogZXZlbnRUYXJnZXQg
PSBldmVudC0+dGFyZ2V0KCk7CisgICAgaWYgKGV2ZW50VGFyZ2V0LT50b05vZGUoKSkKKyAgICAg
ICAgZXZlbnRUYXJnZXQtPmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGVsc2UgaWYgKGV2ZW50
VGFyZ2V0LT50b0RPTVdpbmRvdygpKQorICAgICAgICBldmVudFRhcmdldC0+dG9ET01XaW5kb3co
KS0+ZGlzcGF0Y2hFdmVudChldmVudCwgMCk7CisgICAgZWxzZQorICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5o
IGIvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZDdlYzliYjA1MzJlN2U5
ZDY4MTVjMTExM2RhODZhMjE5NTcyMzUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9F
dmVudFF1ZXVlLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworI2lmbmRlZiBFdmVu
dFF1ZXVlX2gKKyNkZWZpbmUgRXZlbnRRdWV1ZV9oCisKKyNpbmNsdWRlICJUaW1lci5oIgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRXZlbnQ7
CitjbGFzcyBOb2RlOworCitjbGFzcyBFdmVudFF1ZXVlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShFdmVudFF1ZXVlKTsKKworcHVibGljOgorICAgIEV2ZW50UXVldWUoKTsKKworICAgIHZv
aWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IHBlbmRpbmdFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRRdWV1ZT4qKTsKKyAgICB2b2lkIGRp
c3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4pOworCisgICAgVGltZXI8RXZlbnRRdWV1ZT4g
bV9wZW5kaW5nRXZlbnRUaW1lcjsKKyAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IG1fcXVldWVk
RXZlbnRzOworfTsKKworfQorCisjZW5kaWYgLy8gRXZlbnRRdWV1ZV9oCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgYi9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAKaW5kZXggNTgzM2M1OWYwNDYyZDliMzA3YWNl
ZTgxZGU2MTlhOGM2ZDJjYWI0ZC4uNWNlNTZjNjMzZDE5MTA0YWUxZDdkY2VkMmFlY2RhZWU0MTVk
NzFkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIu
Y3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcApAQCAt
NTgsNyArNTgsNyBAQCB2b2lkIFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLAogICAgICAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ld
LT5kb21XaW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoZWMpOwogICAgICAgICAgICAgaWYgKCFlYykK
LSAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVFdmVudChTdG9y
YWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVl
LCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBzdG9yYWdlKSk7Cisg
ICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlV2luZG93RXZlbnQo
U3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkp
OwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZl
cnkgcGFnZS4KQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpk
aXNwYXRjaChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwKICAgICAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFn
ZSA9IGZyYW1lc1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZShlYyk7CiAgICAgICAgICAg
ICBpZiAoIWVjKQotICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1
ZUV2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtl
eSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0
b3JhZ2UpKTsKKyAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVX
aW5kb3dFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50
LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgp
LCBzdG9yYWdlKSk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MDMyNWM5
OTlhNGM1ZmMxZjM0ZmFhMjQ5NGRlYmVjNmQwNTgxZTNkLi5iMDg3ODE2Yjk5YWYxY2QyZWQyNjgz
MmM4OGZiYWY2MTE0Zjk0ZGU3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0x
Mi0xNCAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGFzeW5jaHJvbm91cyBl
dmVudCBkaXNwYXRjaGluZyBvdXQgb2YgRG9jdW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5Nzg1CisgICAgICAgIAorICAgICAgICBDaGFuZ2Ug
ZW5xdWV1ZUV2ZW50IGNhbGxzaXRlLgorCisgICAgICAgICogc3JjL1N0b3JhZ2VBcmVhUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUFyZWFQcm94eTo6c3RvcmFnZUV2ZW50KToK
KwogMjAxMC0xMi0xMyAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
U3RvcmFnZUFyZWFQcm94eS5jcHAKaW5kZXggNTMxMWI2NWIxMTg1ZDc5MDg1MDJiOTQ1YjYwN2Mz
ZDNkMGNiMWZkNi4uZWQ4OWIyYzhjZjdjYTliYWM2OGFkNzRlYTYwY2VjM2VlMzllNjZjZCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCkBAIC0xMjksNyArMTI5LDcg
QEAgdm9pZCBTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGMKICAgICAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMg
PSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFnZSA9IGZyYW1lc1tpXS0+ZG9tV2luZG93
KCktPnNlc3Npb25TdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlmICghZWMpCi0gICAgICAgICAg
ICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQoU3RvcmFnZUV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUs
IHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOworICAgICAgICAgICAg
ICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2ZW50KFN0b3JhZ2VFdmVu
dDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFsdWUsIG5ld1Zh
bHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsKICAgICAgICAg
fQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRvIGV2ZXJ5IHBhZ2UuCkBA
IC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZlbnQoY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGMKICAgICAgICAgICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFnZSA9IGZyYW1l
c1tpXS0+ZG9tV2luZG93KCktPmxvY2FsU3RvcmFnZShlYyk7CiAgICAgICAgICAgICBpZiAoIWVj
KQotICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZUV2ZW50KFN0
b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwgb2xkVmFs
dWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3JhZ2UpKTsK
KyAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVXaW5kb3dFdmVu
dChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBzdG9yYWdl
KSk7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76574</attachid>
            <date>2010-12-14 14:41:37 -0800</date>
            <delta_ts>2010-12-14 14:43:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-49785-20101214144136.patch</filename>
            <type>text/plain</type>
            <size>23058</size>
            <attacher name="Mihai Parparita">mihaip</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBiZTUxNDVhZDQxNjI2NWJjOTYyYWQyMWFiYjUwNGY4ZWZkYWFiZTI3Li4xMWZlZGZiZWRhMGY2
ZGM4ZjVhMDBjOWQ2ZTZlMzczMmIyZWRjYzlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xMzIsNiArMTMyLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL0V2ZW50Q29udGV4dC5jcHAgXAog
CWRvbS9FdmVudE5hbWVzLmNwcCBcCiAJZG9tL0V2ZW50VGFyZ2V0LmNwcCBcCisJZG9tL0V2ZW50
UXVldWUuY3BwIFwKIAlkb20vRXhjZXB0aW9uQmFzZS5jcHAgXAogCWRvbS9FeGNlcHRpb25Db2Rl
LmNwcCBcCiAJZG9tL0lucHV0RWxlbWVudC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTdjNzM1YjI1YzFmNDVj
NjRjZmY1M2JmNTg3YWU3NmJlNTQxMDZiNS4uMzM0ZDU2YWI2YjIzYmM0NjIzZjAzYTFmY2UzZmM0
YmZkOTE5YjFiOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC04NTIsNiArODUyLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNF
UwogICAgIGRvbS9FdmVudENvbnRleHQuY3BwCiAgICAgZG9tL0V2ZW50TmFtZXMuY3BwCiAgICAg
ZG9tL0V2ZW50VGFyZ2V0LmNwcAorICAgIGRvbS9FdmVudFF1ZXVlLmNwcAogICAgIGRvbS9FeGNl
cHRpb25CYXNlLmNwcAogICAgIGRvbS9FeGNlcHRpb25Db2RlLmNwcAogICAgIGRvbS9JbnB1dEVs
ZW1lbnQuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDMyZTVjMGNlZDJkZjk3ZGFlMjQxM2YzZjUzYmY4ZDYyMDc2OWM1NDguLjMwOTA3
ZDBjMDUzMjFlYTllY2IxYTZlZTI2OTZkMzcxZGE5MjcxZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTAt
MTItMTQgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIE1vdmUgYXN5bmNocm9ub3Vz
IGV2ZW50IGRpc3BhdGNoaW5nIG91dCBvZiBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3ODUKKyAgICAgICAgCisgICAgICAgIE1vdmUg
YXN5bmNob25vdXMgZXZlbnQgY29kZSBvdXQgb2YgRG9jdW1lbnQgYW5kIGludG8gYSBzdGFuZGFs
b25lCisgICAgICAgIEV2ZW50UXVldWUgY2xhc3MgKHdoaWNoIHN1cHBvcnRzIGFzeW5jIGV2ZW50
cyBmb3IgYm90aCByZWd1bGFyIG5vZGVzCisgICAgICAgIGFuZCB0aGUgd2luZG93IG9iamVjdCku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lY2Vzc2FyeSwgc2luY2Ugbm8gbmV3IGZ1bmN0aW9u
YWxpdHkgaXMgZXhwb3NlZCAoZXhpc3RpbmcKKyAgICAgICAgbGF5b3V0IHRlc3RzIHBhc3MpLgor
CisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
V2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6Cisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmVucXVldWVXaW5kb3dFdmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6ZW5xdWV1ZUhhc2hjaGFuZ2VFdmVudCk6CisgICAgICAgICog
ZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpldmVudFF1
ZXVlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vRXZlbnRRdWV1
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRRdWV1ZTo6RXZlbnRRdWV1ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudFF1ZXVlOjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgKiBkb20vRXZlbnRR
dWV1ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZUV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2gp
OgorCiAyMDEwLTEyLTE0ICBLeW91bmdhIFJhICA8a3lvdW5nYS5yYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDVmZDJiNTNmNjYwM2NhYTNi
OWQ1ZjQ3ZWMyMjQyOTM2NzU1NWI2YjUuLmNiMzZlMzE5MGQ4MTI4ZTA3ODZjMDdmN2M3MjJmYjA5
ODY5YzljOGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTIwNiw2ICsxMjA2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2RvbS9FdmVudE5hbWVzLmggXAogCVdlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0
LmNwcCBcCiAJV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaCBcCisJV2ViQ29yZS9kb20vRXZlbnRR
dWV1ZS5jcHAgXAorCVdlYkNvcmUvZG9tL0V2ZW50UXVldWUuaCBcCiAJV2ViQ29yZS9kb20vRXhj
ZXB0aW9uQmFzZS5jcHAgXAogCVdlYkNvcmUvZG9tL0V4Y2VwdGlvbkJhc2UuaCBcCiAJV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyZTdhMGVkNTIyMjUxNWRiNzExOWQzNTQ0
YjdhNDg5MGNlZDBlM2M3Li5kZjdiZTA5MzIzNjdhYjJkNmViZjAzZDMzZGY1ODg2ZDExOWE4MzA3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMTI0Niw2ICsxMjQ2LDggQEAKICAgICAgICAgICAgICdkb20vRXZlbnROYW1lcy5o
JywKICAgICAgICAgICAgICdkb20vRXZlbnRUYXJnZXQuY3BwJywKICAgICAgICAgICAgICdkb20v
RXZlbnRUYXJnZXQuaCcsCisgICAgICAgICAgICAnZG9tL0V2ZW50UXVldWUuY3BwJywKKyAgICAg
ICAgICAgICdkb20vRXZlbnRRdWV1ZS5oJywKICAgICAgICAgICAgICdkb20vRXhjZXB0aW9uQmFz
ZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FeGNlcHRpb25CYXNlLmgnLAogICAgICAgICAgICAg
J2RvbS9FeGNlcHRpb25Db2RlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBmOTcwZGUyZmRhMzgyZTliYzAxMjc5NDdjMzNm
MDJjMzVhMzVjMDkwLi4xMTFiYzgyZmE2NWEzNmQ0OWViODIxMWFlYjY0MGVkZTdiY2Y4MWQ2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTczMCw2ICs3MzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vRXZlbnRDb250ZXh0LmNw
cCBcCiAgICAgZG9tL0V2ZW50TmFtZXMuY3BwIFwKICAgICBkb20vRXZlbnRUYXJnZXQuY3BwIFwK
KyAgICBkb20vRXZlbnRRdWV1ZS5jcHAgXAogICAgIGRvbS9FeGNlcHRpb25CYXNlLmNwcCBcCiAg
ICAgZG9tL0V4Y2VwdGlvbkNvZGUuY3BwIFwKICAgICBkb20vSW5wdXRFbGVtZW50LmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA2YTQyYzY5ZDdlNzgzODkwZmNl
N2MzOTYxYTBlOWEzMGRkNmUzZjFkLi4zMjNlNTI2YTczZjlmODNhYWFhOGE2NDYxOTEwNGVkZDNk
MDQzM2YyIDEwMDc1NQotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQzNjk3LDYg
KzQzNjk3LDYyIEBACiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRXZlbnRUYXJnZXQuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CisJCSAgPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxFdmVu
dFF1ZXVlLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNl
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdf
Q2Fpcm98V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2VfQ2Fpcm98V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cRXZlbnRRdWV1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cRXhjZXB0aW9uQmFzZS5jcHAiCiAJCQkJPgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYzMzNWVmZDFmZTA4MGM1YzFl
NzE4MDIyOWVmZGFkNDJjODM5OTIxLi5mY2YzMDA5MzVmMjU0MzU0YzVlMDYxYzY5ODBmMzA5OWYw
OTA0MjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjY5MCw2ICsyNjkwLDggQEAKIAkJOEFGNEU1NUMxMURDNUE2MzAwMEVEM0RFIC8qIFBlcmZvcm1h
bmNlVGltaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4QUY0RTU1OTExREM1QTYzMDAwRUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaCAqLzsgfTsK
IAkJOEM2RUE2MTkxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEM2RUE2MTcx
MUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwICovOyB9OwogCQk4
QzZFQTYxQTExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOEM2RUE2MTgxMUVGN0Uw
NDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCAqLzsgfTsKKwkJOEY2NzU2MUIx
Mjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1
ZXVlLmggKi87IH07CisJCThGNjc1NjFDMTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhGNjc1NjFB
MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVlLmNwcCAqLzsgfTsKIAkJOEZBQzc3NEQxMTk4
NzJDQjAwMTVBRTk0IC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4RjkzNEQ4NDExODlGMUVFMDA1MDhENUQg
LyogSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkQwRDc5RjgyOTAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAq
LzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5RjgyQzAw
QzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC05MDI3LDYgKzkwMjksOCBAQAogCQk4QUY0RTU1QTExREM1QTYzMDAw
RUQzREUgLyogUGVyZm9ybWFuY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBl
cmZvcm1hbmNlVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEM2RUE2
MTcxMUVGN0UwNDAwRkQ4RUUzIC8qIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA7
IHBhdGggPSBnZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4QzZFQTYxODExRUY3RTA0MDBGRDhFRTMgLyogUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmg7IHBhdGggPSBnZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEY2NzU2MTkxMjg4QjE3QjAwNDdBQ0EzIC8q
IEV2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRRdWV1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4RjY3NTYxQTEyODhCMTdCMDA0N0FD
QTMgLyogRXZlbnRRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFdmVudFF1ZXVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODMx
MTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU01haW5UaHJlYWRFeGVjU3RhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOEY5MzREODQxMTg5RjFFRTAwNTA4RDVEIC8qIEpTTWFpblRocmVh
ZEV4ZWNTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01h
aW5UaHJlYWRFeGVjU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzAy
QjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhZ2VHcm91cC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xODgwNiw2ICsxODgxMCw4IEBACiAJCQkJODVBRkE3NDEwQUFGMjk4NDAwRTg0MzA1
IC8qIEV2ZW50TGlzdGVuZXIuaWRsICovLAogCQkJCTkzOTg4NUMxMDhCN0UzRDEwMEU3MDdDNCAv
KiBFdmVudE5hbWVzLmNwcCAqLywKIAkJCQk5Mzk4ODVDMjA4QjdFM0QxMDBFNzA3QzQgLyogRXZl
bnROYW1lcy5oICovLAorCQkJCThGNjc1NjE5MTI4OEIxN0IwMDQ3QUNBMyAvKiBFdmVudFF1ZXVl
LmggKi8sCisJCQkJOEY2NzU2MUExMjg4QjE3QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3BwICov
LAogCQkJCUUxMkVEQkU5MEIzMDhFMEIwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5jcHAgKi8sCiAJ
CQkJRTEyRURCN0EwQjMwOEE3ODAwMjcwNEI2IC8qIEV2ZW50VGFyZ2V0LmggKi8sCiAJCQkJODVB
RkE3NDIwQUFGMjk4NDAwRTg0MzA1IC8qIEV2ZW50VGFyZ2V0LmlkbCAqLywKQEAgLTIwMzMxLDYg
KzIwMzM3LDcgQEAKIAkJCQk5MzVGQkM0NTA5QkEwMEI5MDBFMjMwQjEgLyogRXZlbnRMaXN0ZW5l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNBMTlFMTYwREMyNTVDQTAwNjVBOTk0IC8qIEV2ZW50
TG9vcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODg1QzQwOEI3RTNEMTAwRTcwN0M0IC8qIEV2
ZW50TmFtZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCThGNjc1NjFCMTI4OEIxN0IwMDQ3QUNBMyAv
KiBFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMEZFRjM3MkIxN0M1M0VBQzFDMUZC
RUUgLyogRXZlbnRTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMkVEQjdCMEIzMDhBNzgw
MDI3MDRCNiAvKiBFdmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MEQ4RjMwRDJB
MTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjMwOTAs
NiArMjMwOTcsNyBAQAogCQkJCTkzQzA5QTdGMEIwNjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRs
ZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQ0ExOUUwNTBEQzI1NTk1MDA2NUE5OTQgLyog
RXZlbnRMb29wTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5ODg1QzMwOEI3RTNEMTAwRTcw
N0M0IC8qIEV2ZW50TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOEY2NzU2MUMxMjg4QjE3
QjAwNDdBQ0EzIC8qIEV2ZW50UXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTBGRUYzNzJC
MjdDNTNFQUMxQzFGQkVFIC8qIEV2ZW50U291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
MkVEQkVBMEIzMDhFMEIwMDI3MDRCNiAvKiBFdmVudFRhcmdldC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBkYzRlMzliMmU1Y2U1YTUyMGZjMTRmNWI4M2I5
NjUwY2FjNjBlZTJjLi5hZWZjMjdhYWZmNzVhZmMwOGM0Y2UyYTQyODA4ODYyYWFkNGE0YzdmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwCkBAIC03MSw2ICs3MSw3IEBACiAjaW5jbHVkZSAiRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkV2ZW50Q29udGV4dC5jcHAiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5jcHAiCisj
aW5jbHVkZSAiRXZlbnRRdWV1ZS5jcHAiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuY3BwIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkJhc2UuY3BwIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuY3BwIgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDc3NWEyYWRmNjFlM2I4MmY5MzI5YWY5OTA3NTlkNjY0NjRlZDQzYTEuLmYy
ODZkOWQ2Nzg5MjM4OTgxMDY3ODFmMTQ2YjI2YmQ2NWVjMzFjYTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTU5
LDYgKzU5LDcgQEAKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudExp
c3RlbmVyLmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV2ZW50UXVldWUu
aCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVy
LmgiCiAjaW5jbHVkZSAiRm9ybUFzc29jaWF0ZWRFbGVtZW50LmgiCkBAIC00MDMsNyArNDA0LDcg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29s
IGlzWEhUTUwsIGJvb2wgaXNIVE1MLCBjb24KICAgICAsIG1fbm9ybWFsV29ybGRXcmFwcGVyQ2Fj
aGUoMCkKICNlbmRpZgogICAgICwgbV91c2luZ0dlb2xvY2F0aW9uKGZhbHNlKQotICAgICwgbV9w
ZW5kaW5nRXZlbnRUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OnBlbmRpbmdFdmVudFRpbWVyRmlyZWQp
CisgICAgLCBtX2V2ZW50UXVldWUoYWRvcHRQdHIobmV3IEV2ZW50UXVldWUpKQogI2lmIEVOQUJM
RShXTUwpCiAgICAgLCBtX2NvbnRhaW5zV01MQ29udGVudChmYWxzZSkKICNlbmRpZgpAQCAtMzQ3
MywyMyArMzQ3NCwxMCBAQCB2b2lkIERvY3VtZW50OjpkaXNwYXRjaFdpbmRvd0xvYWRFdmVudCgp
CiAgICAgZG9tV2luZG93LT5kaXNwYXRjaExvYWRFdmVudCgpOwogfQogCi12b2lkIERvY3VtZW50
OjplbnF1ZXVlRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit2b2lkIERvY3VtZW50Ojpl
bnF1ZXVlV2luZG93RXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiB7Ci0gICAgbV9wZW5k
aW5nRXZlbnRRdWV1ZS5hcHBlbmQoZXZlbnQpOwotICAgIGlmICghbV9wZW5kaW5nRXZlbnRUaW1l
ci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3BlbmRpbmdFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKLX0KLQotdm9pZCBEb2N1bWVudDo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZChUaW1lcjxEb2N1
bWVudD4qKQotewotICAgIEFTU0VSVCghbV9wZW5kaW5nRXZlbnRUaW1lci5pc0FjdGl2ZSgpKTsK
LSAgICBWZWN0b3I8UmVmUHRyPEV2ZW50PiA+IGV2ZW50UXVldWU7Ci0gICAgZXZlbnRRdWV1ZS5z
d2FwKG1fcGVuZGluZ0V2ZW50UXVldWUpOwotCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPEV2
ZW50PiA+Ojpjb25zdF9pdGVyYXRvciBJdGVyYXRvcjsKLSAgICBJdGVyYXRvciBlbmQgPSBldmVu
dFF1ZXVlLmVuZCgpOwotICAgIGZvciAoSXRlcmF0b3IgaXQgPSBldmVudFF1ZXVlLmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgZGlzcGF0Y2hXaW5kb3dFdmVudCgqaXQpOworICAg
IGV2ZW50LT5zZXRUYXJnZXQoZG9tV2luZG93KCkpOworICAgIG1fZXZlbnRRdWV1ZS0+ZW5xdWV1
ZUV2ZW50KGV2ZW50KTsKIH0KIAogUGFzc1JlZlB0cjxFdmVudD4gRG9jdW1lbnQ6OmNyZWF0ZUV2
ZW50KGNvbnN0IFN0cmluZyYgZXZlbnRUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKQEAgLTQ3NTEs
NyArNDczOSw3IEBAIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVQYWdlc2hvd0V2ZW50KFBhZ2VzaG93
RXZlbnRQZXJzaXN0ZW5jZSBwZXJzaXN0ZWQpCiAKIHZvaWQgRG9jdW1lbnQ6OmVucXVldWVIYXNo
Y2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiBvbGRVUkwsIGNvbnN0IFN0cmluZyYgbmV3VVJMKQog
ewotICAgIGVucXVldWVFdmVudChIYXNoQ2hhbmdlRXZlbnQ6OmNyZWF0ZShvbGRVUkwsIG5ld1VS
TCkpOworICAgIGVucXVldWVXaW5kb3dFdmVudChIYXNoQ2hhbmdlRXZlbnQ6OmNyZWF0ZShvbGRV
UkwsIG5ld1VSTCkpOwogfQogCiB2b2lkIERvY3VtZW50OjplbnF1ZXVlUG9wc3RhdGVFdmVudChQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc3RhdGVPYmplY3QpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3
YThlYTc4M2EwMTk4YmY0ZTEwNjViMGNhNWI3NjU1OTgxNGE0YTM2Li41NGFlZDI0NWViYTNhMDRl
NjI1ZDI1MmNkMjEwMDRmNTk0YTEwMmE3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTc2LDYgKzc2LDcgQEAgY2xhc3Mg
RWxlbWVudDsKIGNsYXNzIEVudGl0eVJlZmVyZW5jZTsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZl
bnRMaXN0ZW5lcjsKK2NsYXNzIEV2ZW50UXVldWU7CiBjbGFzcyBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQ7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lVmlldzsKQEAgLTEwMjYsMTAgKzEwMjcsMTEg
QEAgcHVibGljOgogICAgIGJvb2wgY29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzOyB9CiAgICAgdm9pZCBzZXRDb250
YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpIHsgbV9jb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcyA9
IHRydWU7IH0KIAotICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKyAg
ICB2b2lkIGVucXVldWVXaW5kb3dFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CiAgICAgdm9pZCBl
bnF1ZXVlUGFnZXNob3dFdmVudChQYWdlc2hvd0V2ZW50UGVyc2lzdGVuY2UpOwogICAgIHZvaWQg
ZW5xdWV1ZUhhc2hjaGFuZ2VFdmVudChjb25zdCBTdHJpbmcmIG9sZFVSTCwgY29uc3QgU3RyaW5n
JiBuZXdVUkwpOwogICAgIHZvaWQgZW5xdWV1ZVBvcHN0YXRlRXZlbnQoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IHN0YXRlT2JqZWN0KTsKKyAgICBFdmVudFF1ZXVlKiBldmVudFF1
ZXVlKCkgY29uc3QgeyByZXR1cm4gbV9ldmVudFF1ZXVlLmdldCgpOyB9CiAKICAgICB2b2lkIGFk
ZE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNhblN0YXJ0TGlzdGVuZXIqKTsKICAgICB2b2lk
IHJlbW92ZU1lZGlhQ2FuU3RhcnRMaXN0ZW5lcihNZWRpYUNhblN0YXJ0TGlzdGVuZXIqKTsKQEAg
LTExMjgsOCArMTEzMCw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNyZWF0ZVN0eWxlU2VsZWN0
b3IoKTsKIAotICAgIHZvaWQgcGVuZGluZ0V2ZW50VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4q
KTsKLQogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IGhhbmRsZVplcm9QYWRkaW5nKGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYpIGNvbnN0OwogCiAgICAgdm9pZCBsb2FkRXZl
bnREZWxheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7CkBAIC0xMzUyLDkgKzEzNTIsOCBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIG1fdXNpbmdHZW9sb2NhdGlvbjsKLQotICAg
IFRpbWVyPERvY3VtZW50PiBtX3BlbmRpbmdFdmVudFRpbWVyOwotICAgIFZlY3RvcjxSZWZQdHI8
RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRRdWV1ZTsKKyAgICAKKyAgICBPd25QdHI8RXZlbnRRdWV1
ZT4gbV9ldmVudFF1ZXVlOwogCiAjaWYgRU5BQkxFKFdNTCkKICAgICBib29sIG1fY29udGFpbnNX
TUxDb250ZW50OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnRRdWV1ZS5jcHAgYi9XZWJD
b3JlL2RvbS9FdmVudFF1ZXVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2NkODAyYmJiMDRiMjg4NTE0OWE3
ZTU3MTVhZTgwZmRjZDEzZDVmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRR
dWV1ZS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50UXVldWUuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRXZlbnRRdWV1ZTo6RXZlbnRRdWV1
ZSgpCisgICAgOiBtX3BlbmRpbmdFdmVudFRpbWVyKHRoaXMsICZFdmVudFF1ZXVlOjpwZW5kaW5n
RXZlbnRUaW1lckZpcmVkKQoreworfQorCit2b2lkIEV2ZW50UXVldWU6OmVucXVldWVFdmVudChQ
YXNzUmVmUHRyPEV2ZW50PiBldmVudCkKK3sKKyAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpLT50
b05vZGUoKSB8fCBldmVudC0+dGFyZ2V0KCktPnRvRE9NV2luZG93KCkpOworICAgIG1fcXVldWVk
RXZlbnRzLmFwcGVuZChldmVudCk7CisgICAgCisgICAgaWYgKCFtX3BlbmRpbmdFdmVudFRpbWVy
LmlzQWN0aXZlKCkpCisgICAgICAgIG1fcGVuZGluZ0V2ZW50VGltZXIuc3RhcnRPbmVTaG90KDAp
OworfQorCit2b2lkIEV2ZW50UXVldWU6OnBlbmRpbmdFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZl
bnRRdWV1ZT4qKQoreworICAgIEFTU0VSVCghbV9wZW5kaW5nRXZlbnRUaW1lci5pc0FjdGl2ZSgp
KTsKKworICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gcXVldWVkRXZlbnRzOworICAgIHF1ZXVl
ZEV2ZW50cy5zd2FwKG1fcXVldWVkRXZlbnRzKTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgcXVldWVkRXZlbnRzLnNpemUoKTsgaSsrKQorICAgICAgICBkaXNwYXRjaEV2ZW50KHF1ZXVl
ZEV2ZW50c1tpXS5yZWxlYXNlKCkpOworfQorCit2b2lkIEV2ZW50UXVldWU6OmRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCit7CisgICAgRXZlbnRUYXJnZXQqIGV2ZW50VGFy
Z2V0ID0gZXZlbnQtPnRhcmdldCgpOworICAgIGlmIChldmVudFRhcmdldC0+dG9Ob2RlKCkpCisg
ICAgICAgIGV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBlbHNlIGlmIChl
dmVudFRhcmdldC0+dG9ET01XaW5kb3coKSkKKyAgICAgICAgZXZlbnRUYXJnZXQtPnRvRE9NV2lu
ZG93KCktPmRpc3BhdGNoRXZlbnQoZXZlbnQsIDApOworICAgIGVsc2UKKyAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50UXVl
dWUuaCBiL1dlYkNvcmUvZG9tL0V2ZW50UXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGQ3ZWM5YmIwNTMy
ZTdlOWQ2ODE1YzExMTNkYTg2YTIxOTU3MjM1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9k
b20vRXZlbnRRdWV1ZS5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKgorICovCisKKyNpZm5kZWYg
RXZlbnRRdWV1ZV9oCisjZGVmaW5lIEV2ZW50UXVldWVfaAorCisjaW5jbHVkZSAiVGltZXIuaCIK
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEV2
ZW50OworY2xhc3MgTm9kZTsKKworY2xhc3MgRXZlbnRRdWV1ZSB7CisgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRXZlbnRRdWV1ZSk7CisKK3B1YmxpYzoKKyAgICBFdmVudFF1ZXVlKCk7CisKKyAg
ICB2b2lkIGVucXVldWVFdmVudChQYXNzUmVmUHRyPEV2ZW50Pik7CisKK3ByaXZhdGU6CisgICAg
dm9pZCBwZW5kaW5nRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50UXVldWU+Kik7CisgICAgdm9p
ZCBkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+KTsKKworICAgIFRpbWVyPEV2ZW50UXVl
dWU+IG1fcGVuZGluZ0V2ZW50VGltZXI7CisgICAgVmVjdG9yPFJlZlB0cjxFdmVudD4gPiBtX3F1
ZXVlZEV2ZW50czsKK307CisKK30KKworI2VuZGlmIC8vIEV2ZW50UXVldWVfaApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGIvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwCmluZGV4IDU4MzNjNTlmMDQ2MmQ5YjMw
N2FjZWU4MWRlNjE5YThjNmQyY2FiNGQuLjVjZTU2YzYzM2QxOTEwNGFlMWQ3ZGNlZDJhZWNkYWVl
NDE1ZDcxZDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlRXZlbnREaXNwYXRj
aGVyLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAK
QEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBTdG9yYWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaChj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwKICAgICAgICAgICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICAgICAgU3RvcmFnZSogc3RvcmFnZSA9IGZyYW1l
c1tpXS0+ZG9tV2luZG93KCktPnNlc3Npb25TdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlmICgh
ZWMpCi0gICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZlbnQo
U3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRW
YWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkp
OworICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRvd0V2
ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtleSwg
b2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0b3Jh
Z2UpKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFNlbmQgZXZlbnRzIHRv
IGV2ZXJ5IHBhZ2UuCkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgU3RvcmFnZUV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2goY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsCiAg
ICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgICAgIFN0b3JhZ2UqIHN0
b3JhZ2UgPSBmcmFtZXNbaV0tPmRvbVdpbmRvdygpLT5sb2NhbFN0b3JhZ2UoZWMpOwogICAgICAg
ICAgICAgaWYgKCFlYykKLSAgICAgICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVu
cXVldWVFdmVudChTdG9yYWdlRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50
LCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgp
LCBzdG9yYWdlKSk7CisgICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1
ZXVlV2luZG93RXZlbnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VF
dmVudCwga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSwgc3RvcmFnZSkpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDAz
MjVjOTk5YTRjNWZjMWYzNGZhYTI0OTRkZWJlYzZkMDU4MWUzZC4uMDA4ZDkwMWNhZWM2MjYyNDZi
MTlhNzQyZTMyNGU1Y2QwMTk4MDlkMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTAtMTItMTQgIE1paGFpIFBhcnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgorCisgICAgICAgIE1vdmUgYXN5bmNocm9u
b3VzIGV2ZW50IGRpc3BhdGNoaW5nIG91dCBvZiBEb2N1bWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk3ODUKKyAgICAgICAgCisgICAgICAgIENo
YW5nZSBlbnF1ZXVlRXZlbnQgY2FsbHNpdGUuCisKKyAgICAgICAgKiBzcmMvU3RvcmFnZUFyZWFQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlQXJlYVByb3h5OjpzdG9yYWdlRXZl
bnQpOgorCiAyMDEwLTEyLTEzICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9TdG9yYWdlQXJlYVByb3h5LmNwcAppbmRleCA1MzExYjY1YjExODVkNzkwODUwMmI5NDVi
NjA3YzNkM2QwY2IxZmQ2Li5lZDg5YjJjOGNmN2NhOWJhYzY4YWQ3NGVhNjBjZWMzZWUzOWU2NmNk
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1N0b3JhZ2VBcmVhUHJveHkuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvU3RvcmFnZUFyZWFQcm94eS5jcHAKQEAgLTEyOSw3ICsx
MjksNyBAQCB2b2lkIFN0b3JhZ2VBcmVhUHJveHk6OnN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgYwogICAgICAgICAgICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7CiAgICAgICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0gZnJhbWVzW2ldLT5kb21X
aW5kb3coKS0+c2Vzc2lvblN0b3JhZ2UoZWMpOwogICAgICAgICAgICAgaWYgKCFlYykKLSAgICAg
ICAgICAgICAgICBmcmFtZXNbaV0tPmRvY3VtZW50KCktPmVucXVldWVFdmVudChTdG9yYWdlRXZl
bnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RvcmFnZUV2ZW50LCBrZXksIG9sZFZhbHVlLCBuZXdW
YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCBzdG9yYWdlKSk7CisgICAgICAg
ICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlV2luZG93RXZlbnQoU3RvcmFn
ZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBvbGRWYWx1ZSwg
bmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFnZSkpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gU2VuZCBldmVudHMgdG8gZXZlcnkgcGFn
ZS4KQEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhUHJveHk6OnN0b3JhZ2VFdmVu
dChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgYwogICAgICAgICAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgICAgICBTdG9yYWdlKiBzdG9yYWdlID0g
ZnJhbWVzW2ldLT5kb21XaW5kb3coKS0+bG9jYWxTdG9yYWdlKGVjKTsKICAgICAgICAgICAgIGlm
ICghZWMpCi0gICAgICAgICAgICAgICAgZnJhbWVzW2ldLT5kb2N1bWVudCgpLT5lbnF1ZXVlRXZl
bnQoU3RvcmFnZUV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0b3JhZ2VFdmVudCwga2V5LCBv
bGRWYWx1ZSwgbmV3VmFsdWUsIHNvdXJjZUZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSwgc3RvcmFn
ZSkpOworICAgICAgICAgICAgICAgIGZyYW1lc1tpXS0+ZG9jdW1lbnQoKS0+ZW5xdWV1ZVdpbmRv
d0V2ZW50KFN0b3JhZ2VFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zdG9yYWdlRXZlbnQsIGtl
eSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCBzb3VyY2VGcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCksIHN0
b3JhZ2UpKTsKICAgICAgICAgfQogICAgIH0KIH0K
</data>
<flag name="review"
          id="67549"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="67548"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>